Latest release


@dcoeurjo dcoeurjo released this Apr 2, 2018 · 21 commits to master since this release

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


Bug Fixes

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

Release 0.9.4

@kerautret kerautret released this Mar 19, 2018 · 42 commits to master since this release

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)


  • 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,

Bug Fixes

  • Build

    • Fix compilation by using DGtal from swift wrapping (Bertrand Kerautret,
    • 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
      (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

  • 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

@dcoeurjo dcoeurjo released this Feb 12, 2017 · 557 commits to master since this release

New Features / Critical Changes

  • Configuration/General
    • The project has a now a unique compiled library: DGtal. The DGtalIO
      target has been removed. (David Coeurjolly,
    • 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,
  • Geometry Package
    • VoronoiMap, PowerMap, (Reverse)DistanceTransformation and ReducedMedialAxis
      now work on toric domains (with per-dimension periodicity specification).
      (David Coeurjolly, Roland Denis,
  • 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)


  • 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,
    • 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

@dcoeurjo dcoeurjo released this Jun 27, 2016 · 891 commits to master since this release

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,
  • 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
      (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)


  • Configuration/General
    • Travis Continuous integration will check that doxygen raises no warnings
      and that the documented file names are valid.
      (David Coeurjolly, Roland Denis,
    • 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,
    • Add cmake configuration file NeighborhoodTablesConfig to
      decompress and install look up tables. (Pablo Hernandez-Cerdan,
    • Documentation graphs are now in SVG instead of PNG. (David Coeurjolly,
    • 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
    • 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,
    • Fixing issues raised on some algorithms when changing Euclidean ring
      for SpaceND and KhalimskySpaceND. (Jérémy Levallois,
    • Moving last concepts to concepts:: namespace. (David Coeurjolly,
  • 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,
    • 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
    • Fixing issue #899 in
      all color maps, (David Coeurjolly, Bertrand Kerautret
    • GenericReader: include longvol reader in GenericReader for 64 bit images.
      Update the test for 64 bit longvol. (Bertrand Kerautret
    • Fix the extension removal in Obj filename export in Board3D. (David
    • Fix issue when drawing DSS with both points and bounding box. (David
  • Topology Package
    • Fix wrong starting point for surface tracking in example code
      (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,
  • 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

@dcoeurjo dcoeurjo released this Jan 24, 2016 · 1567 commits to master since this release

Download links are available below

DGtal 0.9.1

New Features / Critical Changes

  • Configuration/General
    • A file has been added to describe how to contribute
      to the library. (David Coeurjolly,
    • 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,
    • DGtal with QGLViewer option activated now compiles on Microsoft Windows,
      Visual Studio (only VS14 or above). (Bertrand Kerautret,
  • Base Package
    • Traits class for containers in order to probe their category at
      compile time. (Jacques-Olivier Lachaud,
    • Generic set operations for arbitrary containers. You may use
      overloaded operators like &, |, -, ^ on arbitrary containers (list,
      vector, unordered_set, map, etc). (Jacques-Olivier Lachaud,
  • 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
    • 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
  • 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)


  • 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,
  • 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
    • In the Viewer3D, the light source position is now saved in the
      QGLViewer state file (.qglviewer.xml). (Bertrand Kerautret
    • 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,
    • 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
      (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,
    • Fixing parenthese warnings in Catch. Waiting for an official fix.
      (Roland Denis, #1069)
    • Fix constness in selfDisplay and operator<<. (Pierre Gueth
    • 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
    • Fix for swapped coordinates in TangentFromDSS2DFunctor. (Kacper
    • Update of the page. (David Coeurjolly,
  • Base Package
    • Fix wrong initialization of reverse iterators in
      SimpleRandomAccess(Const)RangeFromPoint. (Roland Denis,
  • Geometry Package
    • Fix pseudo-random number generator in KanungoNoise (David
  • 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))

Release 0.9

@dcoeurjo dcoeurjo released this Oct 6, 2015 · 2291 commits to master since this release

Merge pull request #1048 from copyme/CastingToDouble

clean ups for casting

Release 0.8

@dcoeurjo dcoeurjo released this Sep 4, 2014 · 3262 commits to master since this release

Merge pull request #918 from kerautret/fixDebianWarning

fix a warning given in debian

Release 0.7

@dcoeurjo dcoeurjo released this Dec 9, 2013 · 4334 commits to master since this release


Fixing some tests