Skip to content

Releases: DGtal-team/DGtal

Release 1.4

10 Jun 15:44
d0f128b
Compare
Choose a tag to compare

We are happy to announce the release 1.4 of DGtal and its tools. As always,many new features, edits and bugfixes are listed in the Changelog, and we would like to thank all devs involved in this release. In this short review, we would like to only focus on selected new features.

  • New Features:

    • Implicit shapes can be constructed from point clouds using generalized winding numbers from libIGL.
    • SurfaceMesh instances can be updated through flip operations.
    • Lattice polytopes describing segments or triangles can be constructed in a much more efficient manner.
    • Update of the Discrete Polygonal Calculus module to construct a calculus on a corrected geometry (when the discrete tangent planes are given by user-provided normal vectors).
    • A brand new style for the DGtal documentation.
    • DGtal now requires C++17 compilers.
  • DGtalTools/DGtalTools-contrib:

    • New volscope tool in DGtalTools for quick visualization of VOL files.
    • New tools to edit and color meshes in DGtaltools-contrib (polyMeshEdit and polyMeshColorize)
  • Project Management. Many updates of the DGtal repository: new documentation style, new CI and deploy bots for the python binding (using Github Actions), easier build on Windows, many bug and warning fixes...

DGtal 1.4

New features / critical changes

  • General

    • Major update: C++17 is now required for DGtal. (David Coeurjolly, #1682)
    • Mandatory dependencies and some optional ones can be setup by conan.io, especially on Windows, new ENABLE_CONAN cmake option to activate this. (David Coeurjolly, #1689)
    • Faster build using CPM for dependency download and ccache with the cmake USE_CCACHE=YESoption (ccache must be installed). (David Coeurjolly, #1696)
    • Better documentation style using doxygen-awesome.css. (David Coeurjolly, #1697)
  • Geometry

    • New implicit shape from point cloud using LibIGL Winding Numbers. (David Coeurjolly, #1697)

Changes

  • General

    • Renaming AUTHORS→CONTRIBUTORS for HAL (David Coeurjolly, #1699)
    • Python bindings and Pypi deploy are now handled by Github-Actions (Bastien Doignies, #1721)
    • Add CMake option DGTAL_WRAP_PYTHON (Pablo Hernandez-Cerdan, #1700)
    • Upgrade of the conan scripts (for windows build) to conan 2, removing the ENABLE_CONAN option (documentation update instead) (David Coeurjolly, #1729)
  • IO

    • New method to change the mode of the light position in Viewer3D (fixed to camera or the scene) (Bertrand Kerautret, #1683)
    • Add a new method to store material information in obj file in MeshReader and MeshWriter. (Bertrand Kerautret, #1686)
    • Fix duplicate symbols on Windows due to stb_image, see issue #1714 (David Coeurjolly, #1715)
  • Shapes

    • Add flips to SurfaceMesh data structure (Jacques-Olivier Lachaud, #1702)
    • Add method to remove isolated vertices in Mesh, improve obj material reading from potential obsolete path. (Bertrand Kerautret,
      #1709)
    • Update of the WindingNumberShape constructor to allow external computation of point areas (David Coeurjolly,#1719)
    • The WindingNumberShape class can output the raw winding number values (David Coeurjolly,#1719)
  • DEC

    • New helper functor to construct an embedder to correct the PolygonalCalculs (projection onto estimated tangent planes) (David Coeurjolly, #1730)
  • Geometry package

    • Add creation of polytopes from segments and triangles in ConvexityHelper and 3-5xfaster full subconvexity tests for triangles
      in DigitalConvexity (Jacques-Olivier Lachaud, #1717)
  • Project

    • Add CMake option DGTAL_WRAP_PYTHON (Pablo Hernandez-Cerdan, #1700)
  • Github

    • New /builddoc and /fullbuild commands on PR comments (David Coeurjolly, #1683)
    • Continuous integration on windows is now performed by Github Action instead of Appeveyor (David Coeurjolly,
      #1689)

Bug fixes

  • General

    • Missing boost/next_prior.hpp includes in ReverseIterator, Melkman and Convex Hull files (David Coeurjolly, #1716)
    • Activate and fix CTest tests on windows system. (Bertrand Kerautret, #1706)
    • For now, removing Cairo deps install on windows (6hours long build with conan in the windows debug mode). (David Coeurjolly,
      #1705)
    • Fix conan file upload issue and log message. (Bertrand Kerautret, #1704)
    • Fix of couple of doxygen warnings that cause errors on Github Actions CI bots. (David Coeurjolly, #1672)
    • Removing "WITH_BENCHMARK" option as Google Benchmark is already included when building the unit tests. (David Coeurjolly, #1674)
    • Removing unnecessary includes to speed-up compilation (David Coeurjolly, #1680)
    • Upgrading pybind11 to v2.9 or python binding (David Coeurjolly, #1685)
    • Many warning fixed (due to c++17 upgrade. (David Coeurjolly, #1691)
    • WITH_COVERAGE option removed. (David Coeurjolly, #1691)
    • Cleanup of cmake targets when BUILD_TESTING is disabled (David Coeurjolly, #1698)
    • Cleanup of the cmake script for dependency discovery (David Coeurjolly, #1697)
    • Cleaning up unnecessary ModuleSRC.cmake files (David Coeurjolly, #1711)
    • Fixing install path of CPM in the DGtalConfig.cmake.in (David Coeurjolly, #1713)
    • DGTAL_LIBRARIES cmake flag now contains the Deps (David Coeurjolly, #1728)
  • Topology package

    • Fix KhalimskySpaceND to get it work with BigInteger (Tristan Roussillon, #1681
  • Geometry package

    • Fix Issue #1676 in testStabbingCircleComputer (Tristan Roussillon, #1688
    • Fix BoundedLatticePolytopeCounter::countInterior method (Jacques-Olivier Lachaud, #1717)
    • Fix const attribute that shouldn't be in FreemanChain (Colin Weill--Duflos, #1723)
  • IO

    • Fix of the getHSV method in the Color class. (David Coeurjolly, #1674)
    • Fix of SurfaceMeshWriter::writeIsoLinesOBJ (Jacques-Olivier Lachaud, #1701)
    • Fix of the PointListReader::getPolygonsFromInputStream (Xun Gong, #1708)
  • Examples

    • Fix Issue #1675, add missing SymmetricConvexExpander.h file (Jacques-Olivier Lachaud, #1675)
  • Shapes

    • Removing libIGL warnings in WindingNumber classes (David Coeurjolly, #1722)
  • DEC

    • Fix an issue with the Geodesic in Heat Poisson solver (David Coeurjolly, #1712)
    • Removing unnecessary unt-test in testPolygonalCalculus (David Coeurjolly, #1724)

Release 1.3

17 Nov 15:56
2320dba
Compare
Choose a tag to compare

DGtal 1.3

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<map> in MeshReaeder (Jeremy Fix, #1649)
    • Fix purple color. (Bertrand Kerautret and Phuc Ngo #1579)
  • Geometry package

    • The following changes have been made to fix a bug in examplePlaneProbingSurfaceLocalEstimator:
      • in PlaneProbingDigitalSurfaceLocalEstimator, the method probingFrameWithPreEstimation now returns a pair bool-frame instead of just a frame, in order to tell whether the frame will lead to a valid initialization or not. The method eval now uses this boolean value and returns the trivial normal vector if it has been set to 'False'.
      • in PlaneProbingParallelepipedEstimator: isValid does not call the isValid method of the delegate...
Read more

Release 1.2

02 Jun 08:07
3a38775
Compare
Choose a tag to compare

Blog post for this release.
TL;DR: python ! 🎉

New Features / Critical Changes

  • New Feature

    • DGtal now has a python binding pip install dgtal! For all
      details on the list of classes available in python, you can have a
      look to: Pablo Hernandez-Cerdan #1528
  • Geometry Package

    • New normal vector estimation using plane-probing approaches.
      (Jocelyn Meyron, Tristan Roussillon,
      #1547)
    • New normal vector estimation using slices of digital surfaces
      and maximal segment computation
      (Jocelyn Meyron, Tristan Roussillon,
      #1547)
    • Add an implementation of the Quick Hull convex hull algorithm. It
      works in arbitrary dimension. It provides several kernels to deal
      with lattice or rational points, and also to compute the Delaunay
      cell complex.
      (Jacques-Olivier Lachaud,#1539)

Changes

  • Project

    • Add azure-pipelines in wrap folder to kickstart python wrappings
      (Pablo Hernandez-Cerdan #1529)
    • Modernize CMake: Avoid global includes and links, use target_ commands instead
      (Pablo Hernandez-Cerdan, David Coeurjolly #1524)
    • Modernize CMake: Prefer use targets rather than directories and libraries
      (Pablo Hernandez-Cerdan #1543)
    • Add python wrappings using pybind11. Check wrap/README.md for details.
      (Pablo Hernandez-Cerdan #1543)
  • Documentation

    • Fix typos in blurred segment equation (Phuc Ngo,
      #1561)
    • Fix some small errors : includes, variable names, code example
      (adrien Krähenbühl, #1525)
    • Fix doxygen errors in DigitalConvexity, SurfaceMesh
      (Pablo Hernandez-Cerdan #1534)
    • Fix CSS errors in doxygen
      (Jérémy Levallois, #1546)
  • General

    • Only set CMAKE_CXX_STANDARD if not defined already
      (Pablo Hernandez-Cerdan #1526)
    • Add container() member function to DigitalSets and ImageContainers
      (Pablo Hernandez-Cerdan #1532)
  • Arithmetic

    • Add default constructor to ClosedIntegerHalfSpace
      (Jacques-Olivier Lachaud,#1531)
  • IO

    • Fix Color::getRGBA
      (Pablo Hernandez-Cerdan #1535)
    • Adding Quad exports in Board3DTo2D (David Coeurjolly,
      #1537)
    • Adding spacing in ImageContainerByITKImage and the possibility to export it
      through ITKWriter.
      (Bertrand Kerautret #1563)

Bug fixes

  • Documentation

    • Removing collaboration graphs in doxygen. Fixing doxygen warnings (David Coeurjolly,
      #1537)
    • Fixing the homebrew command for building on macOS (Jérémy Levallois,
      #1560)
  • IO

    • Removing the default grey background and raising an error if CAIRO has not between
      set for the Board3DTo2D export (David Coeurjolly,
      #1537)
  • Geometry

    • Small fixes and updates in BoundedLatticePolytope and BoundedRationalPolytope
      initialization when using half-spaces initialization
      (Jacques-Olivier Lachaud,#1538)
    • Fix BoundedLatticePolytope::init when using half-spaces initialization
      (Jacques-Olivier Lachaud,#1531)
    • Fix an issue in DigitalSurfaceRegularization about bad buffer init
      (David Coeurjolly, #1548)
    • Fix issue #1552 about a
      plane-probing unit test taking too long
      (Jocelyn Meyron, #1553)
    • Fix issue
      #1566: do not
      compile example checkLatticeBallQuickHull if WITH_GMP is not set
      (Jacques-Olivier Lachaud,#1567)
    • Fix AppVeyor issue on PlaneProbingParallelepipedEstimator and PlaneProbingRNeighborhood
      (Bertrand Kerautret, #1568)
  • Shapes package

    • Fix the use of uninitialized variable in NGon2D.
      (Daniel Antunes,#1540)
  • Build

    • We now use cmake Fetch_Content to download the stable release of
      Catch2 (used in our unit-tests) when building the project (David
      Coeurjolly #1524)
    • Fixing the required components for CGAL (David Coeurjolly,
      #1550)
    • Speedup of the compilation of the tests that rely on Catch2
      (Roland Denis #1551)
    • Comply with cmake Policy CMP0115 "Source file extensions must be
      explicit". (David Coeurjolly, #1557)
    • Fix AppVeyor issue using new zlib URL.
      (Bertrand Kerautret, #1571)

Release 1.1

09 Oct 14:16
977b399
Compare
Choose a tag to compare

Blog Post of the release 🎉

DGtal 1.1

New Features / Critical Changes

  • Project

    • For this release, we have cleaned up the git history (using bfg),
      removing old deprecated files or commit errors. For a complete description,
      please follow the discussion of Issue #1477.
      If you are doing a clean git clone of the project, or use the release archive,
      everything should be fine. If you have branches on the release 1.1beta, you
      would need to reset your current working copy. For instance, if
      you have cloned the DGtal-team/DGtal repository, just reset your
      master branch using:

      git fetch origin
      git reset --hard origin/master
      

      If you have cloned a fork of DGtal-team/DGtal (i.e. the origin
      remote correspond to your fork and not the DGtal-team one), Fetch
      the DGtal-team remote (nammed DGtal here):

      git fetch DGtal
      git reset --hard DGtal/master
      

      For advanced developers
      If there are some branches out there you want to "update" to the new history:
      First go to unmerged branch and copy the SHA of the commits you want to get. Or, if they are consecutive, copy the oldest and newest SHA.

      git checkout master #Updated to new history
      git checkout -b myOpenPR_after_new_history
      git cherry-pick oldestSha^..newestSha
      

      (David Coeurjolly, #1510)

  • Kernel package

    • Making HyperRectDomain_(sub)Iterator random-access iterators
      (allowing parallel scans of the domain, Roland Denis,
      #1416)
    • Fix bug in BasicDomainSubSampler for negative coordinates of the
      domain lower bound. (Bertrand Kerautret
      #1504)
  • DEC

    • Add discrete calculus model of Ambrosio-Tortorelli functional in
      order to make piecewise-smooth approximations of scalar or vector
      fields onto 2D domains like 2D images or digital surfaces
      (Jacques-Olivier Lachaud,#1421)
  • Geometry Package

    • New piecewise smooth digital surface regularization class (David Coeurjolly,
      #1440)
    • Provides support for digital full convexity and subconvexity (Jacques-Olivier Lachaud,
      #1459)
    • Implementation of Shrouds algorithm for smoothing digital surfaces:
      Nielson et al., Shrouds: optimal separating surfaces for enumerated volumes.
      In Proc. VisSym 2003, vol. 3, pp. 75-84
      (Jacques-Olivier Lachaud, #1500)
    • Updates cell geometry and digital convexity to use specialized
      unordered set data structure UnorderedSetByBlock for storing
      digital points (Jacques-Olivier Lachaud,
      #1499)
  • Shapes package

    • Add a new surface mesh representation for manifold or non-manifold polygonal
      surfaces in R^3 (Jacques-Olivier Lachaud,
      #1503)

Changes

  • General

    • DGtal can be compiled and used as a project (git) submodule (David
      Coeurjolly #1444)
    • Add .gitattributes file for github to recognize ih files as c++
      (Pablo Hernandez-Cerdan #1457)
    • Add CMake option DGTAL_ENABLE_FLOATING_POINT_EXCEPTIONS to control enabling
      feenableexcept (only applies in Linux when in Debug mode).
      (Pablo Hernandez-Cerdan, #1489)
    • Travis: Fix broken Eigen url. Update Eigen in travis to 3.3.7.
      (Pablo Hernandez, #1508)
  • Geometry

    • New Integral Invariant functor to retrieve the curvature tensor (principal curvature
      directions and values). (David Coeurjolly, #1460)
    • Add principal directions of curvature functions for implicit polynomial 3D shapes.
      (Jacques-Olivier Lachaud,#1470)
  • io

    • The GenericWriter can now export in 3D ITK format (nii, mha, mhd, tiff).
      (Bertrand Kerautret #1485)
    • New Viridis ColorGradientPreset and clean of useless template specializations in
      the GenericWriter for color image. (Bertrand Kerautret
      #1487)
    • Add the possibility to import images with a shifted domain in ITKReader.
      (Bertrand Kerautret and Pablo Hernandez-Cerdan
      #1492)
  • Kernel package

    • Add .data() function to PointVector to expose internal array data.
      (Pablo Hernandez-Cerdan, #1452)
    • Add a specialized unordered set data structure
      UnorderedSetByBlock for storing digital points, which is more
      compact and as efficient as unordered set
      (Jacques-Olivier Lachaud,#1499)
  • Helpers

    • Add vector field output as OBJ to module Shortcuts (Jacques-Olivier Lachaud,
      #1412)
    • Add shortcuts to Ambrosio-Tortorelli piecewise-smooth approximation
      (Jacques-Olivier Lachaud,#1421)
    • Add output as OFF to module Shortcuts (Bertrand Kerautret,
      #1476)
    • Add shortcuts to principal curvatures and directions of curvature for implicit polynomial
      3D shapes. (Jacques-Olivier Lachaud,#1470)
  • Tests

    • Upgrade of the unit-test framework (Catch) to the latest release Catch2.
      (David Coeurjolly #1418)
      (Roland Denis #1419)
  • Topology

    • Provides partial flip, split and merge operations for half-edge data structures
      and triangulated surfaces (Jacques-Olivier Lachaud,
      #1428)
    • Makes testVoxelComplex faster, reducing the size of the test fixture
      (Pablo Hernandez-Cerdan, #1451)
    • Fix bug in VoxelComplex masks when cell was at the boundary of kspace
      (Pablo Hernandez-Cerdan, #1488)
    • Fix loadTable not able to read compressed tables in Windows
      (Pablo Hernandez-Cerdan, #1505)
    • Fix fillData in CubicalComplex
      (Pablo Hernandez-Cerdan, #1519)
  • Shapes package

    • Add a moveTo(const RealPoint& point) method to implicit and star shapes
      (Adrien Krähenbühl,
      #1414)
    • Fix Lemniscate definition following Bernoulli's definition
      (Adrien Krähenbühl,
      #1427)
    • Homogenizes typedefs of all parametric shapes and fixes some bounding box
      computations (Adrien Krähenbühl,
      #1462)
    • Add const directives to some curve estimators on shapes.
      (Adrien Krähenbühl #1429)
  • IO

    • When the 3D built-in viewer is enabled (libqglviewer), the default
      required Qt version is now Qt5 instead of Qt4. You can revert to
      Qt4 by unsetting the WITH_QT5 cmake flag (David Coeurjolly,
      #1511)

Bug Fixes

  • Configuration/General

    • Fix compilation error/warnings with gcc 9.1.1 and clang 9.0
      (Boris Mansencal, #1431)
    • Disable some gcc/clang warnings in Qt5 raised by Apple clang compiler (David
      Coeurjolly, #1436)
    • Fixing Travis configuration due to syntax changes in v2
      (Roland Denis, #1465)
    • Compression of png files used in for the documentation
      (preparing 1.1 release), (David Coeurjolly, #1494)
    • Fix CMAKE_C_FLAGS when WITH_OPENMP=ON
      (Pablo Hernandez-Cerdan, #1495)
  • Mathematics

    • Put SimpleMatrix * scalar operation in DGtal namespace (Jacques-Olivier Lachaud,
      #1412)
  • Geometry

    • Bugfix in the testVoronoiCovarianceMeasureOnSurface (David
      Coeurjolly, #1439)
    • Defining StandardDSS4Computer & NaiveDSS8Computer as templated aliases of
      ArithmeticalDSSComputer (fix #1483). Also fixing NaiveDSS8 adjacency.
      (Roland Denis, #1491)
    • Fix initialisation in BoundedLatticePolytope when creating non full
      dimensional simplices in 3D (segments, triangles). (Jacques-Olivier Lachaud,
      #1502)
  • Kernel

    • Point2DEmbedderIn3D edit to recover behavior of version 0.9.4 in
      the origin point placement. (Florian Delconte and Bertrand Kerautret
      #1520)
  • Helpers

    • Fix Metric problem due to implicit RealPoint toward Point conversion when computing
      con...
Read more

Release 1.0

27 Mar 13:26
Compare
Choose a tag to compare

After about 10 years of developments, we are very proud to announce the DGtal 1.0 release.

Many thanks to all developers that have contributed to DGtal and its tools.

Please have a look to the release note for details.

DGtal 1.0

DGtal 1.0

New Features / Critical Changes

  • Base package

    • Adding FunctorHolder to transform any callable object (e.g. function,
      functor, lambda function,...) into a valid DGtal functor.
      (Roland Denis, #1332)
    • Adding better checks for floating point arithmetic in the test module (Kacper Pluta,
      #1352)
  • Documentation

    • Module page about functions, functors and lambdas in DGtal.
      (Roland Denis, #1332)
  • Image package

    • Adding ConstImageFunctorHolder to transform any callable object
      (e.g. function, functor, lambda function,...) into a CConstImage model.
      (Roland Denis, #1332)
    • RigidTransformation2D/3D depends on a vector functor that can be,
      for example, VectorRounding (Kacper Pluta,
      #1339)
  • Kernel package

    • Adding PointFunctorHolder to transform any callable object (e.g. function,
      functor, lambda function,...) into a CPointFunctor model.
      (Roland Denis, #1332)
    • ⚠️ The conversion between PointVector of different component types now follows
      the classical conversion rules (e.g. float to double is OK but double
      to int fails if the conversion is not explicitly specified).
      Component type after an arithmetic operation also follows the classical
      arithmetic conversion rules (e.g int * double returns a double).
      Adding some related conversion functors.
      (Roland Denis, #1345)
    • Making binary operators of PointVector (+-*/ but also dot, crossProduct,
      inf, isLower,...) available as external functions. The component type of
      the result follows the classical arithmetic conversion rules.
      (Roland Denis, #1345)
    • Adding square norm method to Point/Vector class. (David Coeurjolly,
      #1365)
  • Helpers

    • Classes Shortcuts and ShortcutsGeometry to simplify coding with
      DGtal. Integrate a lot of volume, digital surfaces, mesh,
      surface, geometry, estimators functions, with many conversion
      and input/output tools. (Jacques-Olivier Lachaud,
      #1357)
  • Shapes package

    • Add two new star shapes: Astroid and Lemniscate
      (Adrien Krähenbühl, Chouaib Fellah,
      #1325)
  • Geometry package

    • Parametric 3D curve digitization see (UglyNaiveParametricCurveDigitizer3D)
      (Kacper Pluta, #1339)
    • A set of 3D parametric curves: EllipticHelix, Knot_3_1, Knot_3_2, Knot_4_1,
      Knot_4_3, Knot_5_1, Knot_5_2, Knot_6_2, Knot_7_4 (Kacper Pluta,
      #1339)
    • DecoratorParametricCurveTransformation - a decorator to apply isometries to
      parametric curves (Kacper Pluta, #1339)
    • LambdaMST3DBy2D - a variation of 3D Lambda Maximal Segment tangent estimator
      that uses only 2D tangents along maximal axis. This estimator has only a
      research value (Kacper Pluta, #1339)
    • DSSes filtration during L-MST3D computations (Kacper Pluta,
      #1339)
    • An option for filtering DSSes during LambdaMST3D calculations (Kacper Pluta,
      #1339)
    • New LpMetric class (model of CMetricSpace) for distance computations in R^n.
      (David Coeurjolly, #1388)
  • Documentation

    • Replacing html internal links by ref command in Digital Topology module
      documentation. Also ignoring doxygen warning when ref begins with a digit.
      (Roland Denis, #1340)
    • Fix examples filenames in Digital Topology module documentation (Isabelle
      Sivignon, #1331)
    • Fix doc bug with Hull2D namespace, (Tristan Roussillon,
      #1330)
    • Checking boost version when including boost/common_factor_rt (David Coeurjolly,
      #1344)
    • Fix computational costs of separable metric predicates in the documentation.
      (David Coeurjolly, #1374)
    • Fixing doxygen warnings (typo and doxygen upgrade to v1.8.14)
      (Roland Denis, #1376)
    • Module page about functions, functors and lambdas in DGtal.
      (Roland Denis, #1332)

Changes

  • Configuration/General

    • Simplifying Travis CI scripts (David Coeurjolly,
      #1371)
  • Kernel package

    • Fix NumberTraits for long long int types and refactor it.
      (Roland Denis, #1397)
  • Topology

    • Remove the internal object from VoxelComplex, improving performance
      (Pablo Hernandez, #1369)
  • Documentation

    • Improving KhalimskySpace related classes documentations by displaying
      a short description in the member list.
      (Roland Denis, #1398)
  • Helpers

    • Small fixes in Shortcuts and ShortcutsGeometry, doc, and colormaps.
      (Jacques-Olivier Lachaud, #1364)
  • Topology

    • Specializes the method DigitalSurface::facesAroundVertex in the
      3D case, such that faces (ie pointels) are ordered
      counterclockwise with respect of the vertex (ie surfel) seen from
      the exterior. (Jacques-Olivier Lachaud,
      #1377)
    • This PR fixes two issues related to CubicalComplexFunctions:
      issue #1362 and
      issue #1381 for
      programs testCubicalComplex, testVoxelComplex and
      testParDirCollapse. (Jacques-Olivier Lachaud,
      #1390)
    • Move operators outside of functions namespace in VoxelComplexFunctions.
      (Pablo Hernandez, #1392)

Bug Fixes

  • Configuration/General

    • Continuous integration AppVeyor fix
      #1326
    • Fixing documentation checks and updating Travis scripts
      (Roland Denis, #1335)
    • Fixing warning of Clang when including GraphicsMagick v1.3.31
      (Roland Denis, #1366)
    • Fix compilation warnings with gcc 8.2.1
      (Boris Mansencal, #1384)
    • Fix compilation with Visual Studio (15.9.5) and some io tests
      (Boris Mansencal, #1380)
    • Fixing & updating Travis: documentation deployement and DGtalTools job
      (Roland Denis, #1383)
    • Various warnings fixed on Xcode (David Coeurjolly,
      #1389)
    • Fix compilation and adding debug version for the generated file with Visual Studio
      (Raphael Lenain, #1395)
    • Correct pragma pop in ITK related files
      (Boris Mansencal, #1400)
  • Kernel

  • Fixing issue #1341 about unwanted conversions between PointVector with
    different component types (like from double to int) by making explicit
    the default conversion constructor and checking type compatiblity when
    using operators.
    (Roland Denis, #1345)

  • Fixing issue #1387 about the wrong result of PointVector::crossProduct
    in 2D. Also disabling this method for dimensions other than 2 and 3.
    (Roland Denis, #1345)

  • Fixing many issues related to invalid conversion between PointVectors
    of different component types.
    (David Coeurjolly, Roland Denis, Monir Hadji, Bertrand Kerautret,
    Tristan Roussillon, #1345)

  • Base

    • Fixing wrong members in PredicateCombiner (David Coeurjolly,
      #1321)
    • Fix testClone2.cpp and efficiency issue in Clone/CountedPtr mechanism
      (Jacques-Olivier Lachaud, #1382). Fix issue
      #1203)
  • Shapes

    • Fixing openmp flags (David Coeurjolly,
      #1324)
    • Add assignment operator to ImageContainerByITKImage (Pablo Hernandez,
      #1336)
    • Fix compilation warning: const qualifier ignored in cast (Pablo Hernandez,
      #1337)
    • Filter data passed to acos in order to avoid division by zero or an argum...
Read more

Release 0.9.4.1

02 Apr 07:58
Compare
Choose a tag to compare

Minor release to fix math typesetting using mathjax in the documentation.

DGtal 0.9.4.1

Bug Fixes

  • Documentation
    • Fixing path to Mathjax CDN in documentation (David Coeurjolly,
      #1318)

Release 0.9.4

19 Mar 14:26
Compare
Choose a tag to compare

DGtal 0.9.4

New Features / Critical Changes

  • Shapes

    • Mesh Voxelizer using 6- or 26-separability templated
      (David Coeurjolly, Monir Hadji, #1209)
  • Topology Package

    • Adding the half-edge data structure to represent arbitrary
      two-dimensional combinatorial surfaces with or without boundary
      (Jacques-Olivier Lachaud #1266)
    • Add VoxelComplex, an extension for CubicalComplex, implementing the Critical-Kernels
      framework, based on the work of M.Couprie and G.Bertrand on isthmus.
      (Pablo Hernandez, #1147)
  • Shapes Package

    • Adding classes and helpers to create triangulated surfaces and
      polygonal surfaces to convert them from/to mesh, as well as a conversion from digital
      surfaces to dual triangulated or polygonal surface (Jacques-Olivier
      Lachaud #1266)
  • Geometry Package

    • Laplace-Beltrami operators on digital surfaces. (Thomas Caissard, #1303)

Changes

  • Math package

    • New SimpleMatrix constructor with a initializer_list argument
      (Nicolas Normand, #1250)
  • IO

    • New simple way to extend the QGLViewer-based Viewer3D interface,
      for instance to add callbacks to key or mouse events, or to modify
      what is drawn on the window.
      (Jacques-Olivier Lachaud, #1259)
    • TableReader can now read all elements contained in each line of a file
      with the new method getLinesElementsFromFile().
      (Bertrand Kerautret, #1260)
    • New ImageMagick writer to export images to PNG or JPG formats for
      instance. (David Coeurjolly, #1304)
    • SimpleDistanceColorMap new colormap to easily display distance maps.
      (David Coeurjolly, #1302)
    • Fix in MagicReader allowing to load colored images. (David
      Coeurjolly, #1305)
    • Include New ImageMagick writer in GenericWriter. (Bertrand Kerautret,
      #1306)

Bug Fixes

  • Build

    • Fix compilation by using DGtal from swift wrapping (Bertrand Kerautret,
      #1309)
    • Fix C++11 cmake flags and cmake >3.1 is now required (David Coeurjolly,
      Pablo H Cerdan, #1290)
    • Fix HDF5 link missing in compilation (Bertrand Kerautret, #1301)
    • Fix compilation with QGLViewer (2.7.x) and Qt5 (Boris Mansencal, #1300)
  • Shapes Package

    • Fix ImplicitPolynomial3Shape and TrueDigitalSurfaceLocalEstimator.
      Improves projection operator on implicit surface and curvature
      computations. (Jacques-Olivier Lachaud, #1279)
  • Configuration/General

    • Upgrading the benchmarks to match with the new google-benchmark API
      (David Coeurjolly, #1244
    • The documentation mainpage now refers to the DGtalTools documentation
      (David Coeurjolly, #1249
    • Fix ITK related try_compile command to work for non-default locations.
      (Pablo Hernandez, #1286
  • IO

    • Fix for compilation with 2.7.0 QGLViewer version.
      (Bertrand Kerautret, #1280)
    • Fix on the ITK reader when used with a functor which is not able to
      handle 32/16 bits images. Also includes a new testITKReader and ITK tests in
      GenericReader.
      (Bertrand Kerautret, #1255)
    • Viewer3D: fix bad light source move according X/Y mouse move and new Key_Z to
      move away/closer the light source.
      (Bertrand Kerautret, #1262)
    • Fix ImageContainerByITKImage, fill the itk image buffer with 0 when using the
      domain constructor.
      (Pablo Hernandez, #1307)
  • Kernel Package

    • Fix testBasicPointFunctor. (Bertrand Kerautret #1245)
  • Arithmetic Package

  • Fix SternBrocot and variants static instanciations. (Jacques-Olivier Lachaud
    #1293)

  • Topology Package

    • Fix invalid KhalimskyCell coordinates in ctopo-fillContours.cpp example.
      (Roland Denis, #1296)
  • Documentation

    • Add import with functors in GenericReader in the main default reader.
      (mainly motivated to show documentation of specialized version of
      importWithValueFunctor and importWithColorFunctor). The tiff format
      was also added to the generic readers when ITK is present (Bertrand
      Kerautret 1251)
    • Fix exampleArithDSS3d compilation (which was not activated).
      (Bertrand Kerautret #1254)
  • DEC

    • Fix dependencies flags for DEC examples.
      (Jean-David Génevaux, #1310)

Release 0.9.3

12 Feb 09:17
Compare
Choose a tag to compare

New Features / Critical Changes

  • Configuration/General
    • The project has a now a unique compiled library: DGtal. The DGtalIO
      target has been removed. (David Coeurjolly,
      #1226)
    • New mandatory dependency for DGtal: zlib must be installed in the system.
      (David Coeurjolly, #1228)
  • Topology Package
    • Implementation of ParDirCollapse with CollapseSurface and CollapseIsthmus.
      (Mohamad ONAYSSI, Bibiana MARTINEZ, Mohamed MELLOULI, Kacper PLUTA,
      #1199)
  • Geometry Package
    • VoronoiMap, PowerMap, (Reverse)DistanceTransformation and ReducedMedialAxis
      now work on toric domains (with per-dimension periodicity specification).
      (David Coeurjolly, Roland Denis,
      #1206)
  • IO
    • New version (3) for the VOL file format that allows (zlib) compressed volumetric
      data. VolReady and VolWriter can still manage Version 2 Vols.
      (David Coeurjolly, #1228)

Changes

  • Configuration/General
    • Continuous integration Travis bots are now based on ubunutu/trusty containers.
      (David Coeurjolly, #1227)
    • Set flag -std=c++11 only if needed. Modern compilers set compatible flags
      by default (gnu++14, etc). (Pablo H Cerdan,
      #1222)
    • Documentation
    • All the example descriptions are now in their the examples file (instead in
      dox files).
      (Bertrand Kerautret, #1240](#1240)

Bug Fixes

  • Configuration/General
    • Fixing errors and warnings raised by g++ 4.7.x.
      (Roland Denis, #1202)
    • Explicit M_PI definition if needed.
      (David Coeurjolly, #1208)
    • Continuous integration Travis bots are now based on ubunutu/trusty containers.
      (David Coeurjolly, #1227)
    • Fix usage of DESTDIR at install time for linux packagers.
      (Pablo Hernandez, #1235)
    • Fix, let CMake handle DESTDIR instead of manual manipulation.
      (Pablo Hernandez, #1238)
  • Geometry Package
    • ArithDSSIterator: fix missing postfix ++.
      (I. Sivignon, #1187)
    • ContourHelper: add a method to transform a contour into a 8 connected path.
      (B. Kerautret, #1127)
  • IO Package
    • Missing TContainer template parameter for overloaded functions/methods that
      rely on PointVector.
      (Roland Denis, #1232)
    • Viewer3D: fix bad rendering when changing the scale.
      (Bertrand Kerautret, #1217)
  • Documentation
    • Fixing various BibTeX references.
      (Bertrand Kerautret, ##1237)

Release 0.9.2

27 Jun 10:17
Compare
Choose a tag to compare

DGtal 0.9.2

New Features / Critical Changes

  • Documentation
    • Fixing all doxygen warnings.
      (Roland Denis, #1182)
    • New "@seeDGtalTools" doxygen command to cite a DGtalTools tool in
      DGtal documentation (David Coeurjolly,
      #1179)
  • Geometry Package
    • New robust normal vector estimator using spherical accumulators and statistical
      voting (Boulc'h & Marlet, SGP 2012).
      (David Coeurjolly, #1149)
  • Math Package
    • New RealFFT class for in-place real-complex Fast Fourier Transform using
      fftw3 library.
      (Roland Denis, #1185)
  • Topology Package
    • Adding periodic closure for KhalimskySpaceND and per-dimension closure
      specification.
      (Roland Denis, #1086)
    • Adding CPreCellularGridSpaceND concept and KhalimskyPreSpaceND model
      to manipulate unbounded Khalimsky space and cells.
      KhalimskySpaceND now checks that all given cells are within the bounds.
      (Roland Denis, #1086)

Changes

  • Configuration/General
    • Travis Continuous integration will check that doxygen raises no warnings
      and that the documented file names are valid.
      (David Coeurjolly, Roland Denis,
      #1182)
    • Cleaning remaining preprocessor directives related to C++11 features.
      (Roland Denis, #1141)
    • Travis Continuous integration will check that DGtalTools still compiles with
      changes in new pull-requests. (David Coeurjolly,
      #1133)
    • Add cmake configuration file NeighborhoodTablesConfig to
      decompress and install look up tables. (Pablo Hernandez-Cerdan,
      #1155)
    • Documentation graphs are now in SVG instead of PNG. (David Coeurjolly,
      #1192)
    • Check and add all DGtal examples in the Examples listing section.
      (Bertrand Kerautret,#1166)))
  • Base Package
    • Alias and ConstAlias now raise compilation error when using invalid
      constructor, like from a rvalue reference. Adding ConstAlias in many classes
      that need it.
      (Roland Denis, #1140)
      (With ITK related compilation fix, Bertrand Kerautret
      #1153)
    • Moving all base concepts into namespace concepts. Update doc and
      concepts graphs accordingly. (Jacques-Olivier Lachaud, #1164)
  • IO Package
    • Viewer3D: improvement of the viewer state record by saving the rendering
      mode. A new setter was also added to desable/enable double face rendering.
      (Bertrand Kerautret #1166)
    • Viewer3D: add a mode to display ball primitive with OpenGL point instead of
      quadrangulated mesh.
      (Bertrand Kerautret #1162)
    • Viewer3D: add a new mode to have the light source position defined from the
      camera (default) or from the scene coordinate system (key P to change
      position mode). A new lambertian rendering mode was added.
      (Bertrand Kerautret #1149)
    • Add the possibility to interact in QGLViewer Viewer3D class with the voxel
      primitive (was limited to surfel). As with surfel, the user may assign integer
      identifiers (OpenGL names) to voxel and callback functions, which are called
      when voxel are selected. The selected elements are now highlighted.
      (Bertrand Kerautret, #1146)
  • Topology Package
    • Add pre-calculated look up tables to speed up Object::isSimple calculations.
      (Pablo Hernandez-Cerdan, #1155)

Bug Fixes

  • Configuration/General
    • Simplification of the windows build instructions. (David
      Coeurjolly, #1160)
    • Various fixes in the documentation (e.g. links to concepts
      pages). (David Coeurjolly,
      #1161)
    • Fixing issues raised on some algorithms when changing Euclidean ring
      for SpaceND and KhalimskySpaceND. (Jérémy Levallois,
      #1163)
    • Moving last concepts to concepts:: namespace. (David Coeurjolly,
      #1193)
  • DEC Package
    • Fixing warnings in DiscreteExteriorCalculus and DiscreteExteriorCalculusFactory.
      (Roland Denis, #1139)
  • Geometry Package
    • VoronoiCovarianceMeasure: fix dimension-specific code.
      (Roland Denis, #1145)
    • AlphaThickSegmentComputer: fix segment display errors which could appear
      when displaying a small segment. Fix a non initialized attribute with
      some improvements on bounding box computation with orientation check.
      (B. Kerautret, #1123)
    • Frechet Shortcut: fix implicit rounding.
      (I. Sivignon, #1180)
  • Image Package
    • Fixing issue #779 by
      storing domain with smart pointer in ImageContainerBySTLMap.
      (Roland Denis #1151)
  • IO Package
    • Display3D: Fix embedder usage when using default constructor in Debug mode.
      (Roland Denis #1143)
    • Viewer3D: Fix a problem when the show() method was called at the end of the
      main program (the list creation was not called).
      (Bertrand Kerautret #1138)
    • Viewer3D: add three new modes for shape rendering (default, metallic and
      plastic). The rendering can be changed by using the key M. The user can
      also choose its own rendering with some setter/getter on the opengl
      lightning/properties. (B. Kerautret,
      #1128)
    • readers: fix a vol/pgm/raw reading bug occurring on Windows 10 due to the
      different interpretations of end of line \r\n on Window versus \n on
      unix/mac. Changing reading mode with binary mode instead text mode fix
      the issue. (Bertrand Kerautret
      #1130)
    • Fixing issue #899 in
      all color maps, (David Coeurjolly, Bertrand Kerautret
      #1134)
    • GenericReader: include longvol reader in GenericReader for 64 bit images.
      Update the test for 64 bit longvol. (Bertrand Kerautret
      #1135)
    • Fix the extension removal in Obj filename export in Board3D. (David
      Coeurjolly,#1154))
    • Fix issue when drawing DSS with both points and bounding box. (David
      Coeurjolly,#1186))
  • Topology Package
    • Fix wrong starting point for surface tracking in example code
      frontierAndBoundary.cpp.
      (Roland Denis, #1144)
    • Fix interior/exterior fill methods of topology/helpers/Surfaces class which
      was wrong on 3d and on closed Khalimsky space.
      (Bertrand Kerautret, #1156)
    • Fix issue #1168, related to bad
      linear interpolation for binary volume data in
      volMarchingCubes.cpp (Jacques-Olivier Lachaud,
      #1169)
  • Shape Package
    • Fix a tubular mesh construction problem (missing faces) which appears
      when the center line is oriented in a main axis direction (in
      createTubularMesh()). Also improves and fixes the face construction.
      (Bertrand Kerautret, #1157)

Release 0.9.1

24 Jan 14:00
Compare
Choose a tag to compare

Download links are available below

DGtal 0.9.1

New Features / Critical Changes

  • Configuration/General
    • A CONTRIBUTING.md file has been added to describe how to contribute
      to the library. (David Coeurjolly,
      #1112)
    • DGtal requires now to have a C++11 enabled compiler (gcc>4.6,
      clang>2.9, VS14, ...). This allows us to use new C++11 features in
      DGtal core and to have more generic and reliable code. (David
      Coeurjolly, #1080)
    • DGtal core now compiles on Microsoft Windows, Visual Studio (only
      VS14 or above). Many issues have been fixed for compatibility with
      'cl' compiler. (David Coeurjolly, Jérémy Levallois,
      #1074)
    • DGtal with QGLViewer option activated now compiles on Microsoft Windows,
      Visual Studio (only VS14 or above). (Bertrand Kerautret,
      #1106)
  • Base Package
    • Traits class for containers in order to probe their category at
      compile time. (Jacques-Olivier Lachaud,
      #1079)
    • Generic set operations for arbitrary containers. You may use
      overloaded operators like &, |, -, ^ on arbitrary containers (list,
      vector, unordered_set, map, etc). (Jacques-Olivier Lachaud,
      #1079)
  • Geometry Package
    • Hull2DHelpers: implementation of the rotating caliper algorithm to compute
      the width (vertical/horizontal or Euclidean) of a convex hull.
      (Bertrand Kerautret, #1052)
    • MelkmanConvexHull: new reverse method to allow point insertions and convex
      hull computation on both side of a point sequence.
      (Bertrand Kerautret, #1073)
    • LogScaleProfile: new class to represent a (multi)scale profile e.g. a sequence
      of statistics on digital lengths parameterized by a grid resolution.
      (Backport of the ScaleProfile class of
      ImaGene ).
      (Bertrand Kerautret, Jacques-Olivier Lachaud
      #1075)
    • IteratorCompletion provides iterators and ranges access from a basic set of methods.
      (Roland Denis, #1029)
  • Image Package
    • ArrayImageAdapter adds a read-write image adapter from any random-access iterator,
      e.g. from a C-array.
      (Roland Denis, #1029)
  • Math Package
    • MultiStatistics: new class to compute different statistics (like
      mean variance, median) on multiple variables. (Backport of the
      Statistics class of
      ImaGene ).
      (Bertrand Kerautret, Jacques-Olivier Lachaud
      #1076)
  • Topology Package
    • New class CubicalComplex and functions associated to
      it. Arbitrary cubical complexes can be represented, displayed and
      multiple operations are defined onto them: incidence, closing,
      opening, closure, star, link, interior, boundary, set operations
      and relations, as a collapse operation.
      (Jacques-Olivier Lachaud, #1079)

Changes

  • Configuration
    • Types and classes in helper namespaces Z2i and Z3i for
      StdDefs.h header (2D and 3D digital geometry with
      computations on 32bit integers) are now explicitly instanciated in
      the compiled library. This reduces compilation time when such types
      are used. (David Coeurjolly,
      #1117)
  • DEC Package
    • DiscreteExteriorCalculus holds both primal and dual sizes of each cell.
      Subsequent changes have been made to insertSCell.
      (Pierre Gueth #1082)
    • Convenient static members for KForm :
      KForm::ones(), KForm::zeros() and KForm::dirac(KSpace::Cell).
      (Pierre Gueth #1082)
  • Base Package
    • Enabling circulators in SimpleRandomAccessRangeFromPoint.
      (Roland Denis, #1060)
  • Base
    • Deprecated OldAlias, OldClone, OldConstAlias have been removed. (David
      Coeurjolly, #1074)
  • IO
    • By default, closing a Viewer3D does not save automatically the viewer
      state anymore (in a .qglviewer.xml file). The automatic save can be
      activated by a flag (myAutoSaveState). (Bertrand Kerautret
      #1088)
    • In the Viewer3D, the light source position is now saved in the
      QGLViewer state file (.qglviewer.xml). (Bertrand Kerautret
      #1087)
    • Minor improvements of default settings in Viewer3D. (David
      Coeurjolly, #1066)
    • change the chronological order to display primitives (in the draw
      function) in order to see the cube primitive through the
      transparency of the ball primitives. (Bertrand Kerautret,
      #1081)
    • New possibility to move the light source direction using the mouse move
      in Viewer3D (with the key SHIFT+CTRL (SHIFT+CMD on mac)). The light source
      direction is now defined according the main coordinate system (no more from
      the camera center).
      (Bertrand Kerautret #1070)
    • Adding raw I/O capabilities for non integral types and signed integers.
      (Roland Denis #1084)
  • Shapes Package
    • New methods to remove faces from a Mesh or to obtain the barycenter of a
      face.
      (Bertrand Kerautret #1091)

Bug Fixes

  • Configuration/General
    • catch unit test framework upgraded to the develop version. (David
      Coeurjolly, #1055)
    • Fixing boost include path issue when building tools using DGtal and
      its cmake DGtalConfig.cmake. (David Coeurjolly,
      #1059)
    • Fixing parenthese warnings in Catch. Waiting for an official fix.
      (Roland Denis, #1069)
    • Fix constness in selfDisplay and operator<<. (Pierre Gueth
      #1082)
    • DGtal cmake configuration scripts are now installed in the
      ${PREFIX_PATH}/lib/DGtal/ folder on linux systems (when
      running make install command). The documentation is copied to
      the folder ${PREFIX_PATH}/share/DGtal/html/. This fixes issue
      #1095. (David
      Coeurjolly,
      #1103)
    • Fix for swapped coordinates in TangentFromDSS2DFunctor. (Kacper
      Pluta,
      #1083)
    • Update of the README.md page. (David Coeurjolly,
      #1109)
  • Base Package
    • Fix wrong initialization of reverse iterators in
      SimpleRandomAccess(Const)RangeFromPoint. (Roland Denis,
      #1060)
  • Geometry Package
    • Fix pseudo-random number generator in KanungoNoise (David
      Coeurjolly,
      #1078)
  • IO Package
    • Fix line export in Board3D.
      (Bertrand Kerautret ##1119)
    • Fix viewer tests including qt4 headers even with configuring WITH_QT5=ON.
      (Pablo Hernandez-Cerdan, #1100)
    • Fix Viewer3D axis display when they are included in a transparent element.
      (issue #873)
      (Bertrand Kerautret ##1108))