Skip to content

Release 1.0

Compare
Choose a tag to compare
@dcoeurjo dcoeurjo released this 27 Mar 13:26
· 2881 commits to master since this release

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 argument
      out of range. (Kacper Pluta, #1359)
  • IO

    • Improve ITKReader, testITKio and testITKReader (Boris Mansencal,
      #1379)
      #1394)
    • Fix wrong typedef for double case in ITKReader (Adrien Krähenbühl,
      #1259)
    • Fix safeguard when using ImageMagick without cmake activation (David Coeurjolly,
      #1344)
    • Fix Color::Green definition (David Coeurjolly,
      #1385)
    • Fix Visual Studio ContourHelper tests.
      (Bertrand Kerautret, #1386)
  • Geometry

    • Fix a possible tangent vector flapping during L-MST3D and L-MST3DBy2D (Kacper Pluta,
      #1339)
    • Fix a possible issue with data structures orderings in L-MST3D accumulation step (Kacper Pluta,
      #1339)
    • Add missing API to StandardDSS6Computer i.e., isInDSS (Kacper Pluta,
      #1339)
  • DEC package

    • Adding missing headers in some files of DEC.
      (Roland Denis, #1349)
  • Image

    • Fix bug in ImageLinearCellEmbedder.
      (Jacques-Olivier Lachaud, #1356)
  • Miscellaneous

    • Fix Small bug in Integral Invariant Volume Estimator in 2D
      (Thomas Caissard, #1316)
    • Change from private to public access of types Input and Output in SCellToPoint
      (Daniel Antunes, #1346)
    • Correct small typo when compiling with DEBUG defined
      (Boris Mansencal, #1401)
  • Math packages

    • Fix possible division by zero in the MultiStatistics class.
      (Kacper Pluta, #1358)