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
- DGtal now has a python binding
-
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)
- New normal vector estimation using plane-probing approaches.
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)
- Add azure-pipelines in
-
Documentation
-
General
-
Arithmetic
- Add default constructor to ClosedIntegerHalfSpace
(Jacques-Olivier Lachaud,#1531)
- Add default constructor to ClosedIntegerHalfSpace
-
IO
Bug fixes
-
Documentation
-
IO
- Removing the default grey background and raising an error if CAIRO has not between
set for the Board3DTo2D export (David Coeurjolly,
#1537)
- Removing the default grey background and raising an error if CAIRO has not between
-
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)
- Small fixes and updates in BoundedLatticePolytope and BoundedRationalPolytope
-
Shapes package
- Fix the use of uninitialized variable in NGon2D.
(Daniel Antunes,#1540)
- Fix the use of uninitialized variable in NGon2D.
-
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)
- We now use cmake Fetch_Content to download the stable release of
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 cleangit 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 theDGtal-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. theorigin
remote correspond to your fork and not the DGtal-team one), Fetch
the DGtal-team remote (nammedDGtal
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
-
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)
- Add discrete calculus model of Ambrosio-Tortorelli functional in
-
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)
- New piecewise smooth digital surface regularization class (David Coeurjolly,
-
Shapes package
- Add a new surface mesh representation for manifold or non-manifold polygonal
surfaces in R^3 (Jacques-Olivier Lachaud,
#1503)
- Add a new surface mesh representation for manifold or non-manifold polygonal
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)
- DGtal can be compiled and used as a project (git) submodule (David
-
Geometry
-
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)
- The GenericWriter can now export in 3D ITK format (nii, mha, mhd, tiff).
-
Kernel package
-
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)
- Add vector field output as OBJ to module Shortcuts (Jacques-Olivier Lachaud,
-
Tests
-
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)
- Provides partial flip, split and merge operations for half-edge data structures
-
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)
- Add a moveTo(const RealPoint& point) method to implicit and star shapes
-
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)
- When the 3D built-in viewer is enabled (libqglviewer), the default
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
whenWITH_OPENMP=ON
(Pablo Hernandez-Cerdan, #1495)
- Fix compilation error/warnings with gcc 9.1.1 and clang 9.0
-
Mathematics
- Put SimpleMatrix * scalar operation in DGtal namespace (Jacques-Olivier Lachaud,
#1412)
- Put SimpleMatrix * scalar operation in DGtal namespace (Jacques-Olivier Lachaud,
-
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)
- Bugfix in the
-
Kernel
- Point2DEmbedderIn3D edit to recover behavior of version 0.9.4 in
the origin point placement. (Florian Delconte and Bertrand Kerautret
#1520)
- Point2DEmbedderIn3D edit to recover behavior of version 0.9.4 in
-
Helpers
- Fix Metric problem due to implicit RealPoint toward Point conversion when computing
convolved trivial normals in ShortcutsGeometry (Jacques-Olivier Lachaud,
#1412) - Fixing double conversion bug in class Parameters, related to
English/French decimal point inconsistency betweenatof
and
boost::program_options
(Jacques-Olivier Lachaud,
#1411) - Fix bug in Shortcuts::saveVectorFieldOBJ
(Jacques-Olivier Lachaud,#1421) - Fixing OBJ export: .mtl file written with relative path (Johanna
Delanoy #1420) - Unify pointel ordering in Shortcuts and MeshHelper so that
Shortcuts::getPointelRange, Shortcuts::saveOBJ and
Shortcuts::makePrimalPolygonalSurface, as well as
MeshHelpers::digitalSurface2PrimalPolygonalSurface, all use the
CCW ordering by default (in 3D).
(Jacques-Olivier Lachaud,#1445)
- Fix Metric problem due to implicit RealPoint toward Point conversion when computing
-
images
-
IO
-
Topology
- Add missing constraint to flips in HalfEdgeDataStructure
(Jacques-Olivier Lachaud,#1498)
- Add missing constraint to flips in HalfEdgeDataStructure
-
Shapes
-
DEC
-
Documentation
- Promoting the
Shortcuts
documentation page on the main page. (David
Coeurjolly #1417) - Fixing the
doxyfiles
to have the table of contents of module pages (David
Coeurjolly #1424) - New illustration in the volumetric analysis documentation page (David
Coeurjolly #1432) - Using SourceForge to download doxygen sources during Travis CI jobs.
(Roland Denis #1424) - CSS edit to enhance the readability of code snippets (David
Coeurjolly #1438) - Fixing various links in moduleCellularTopology. Fixing #1454.
Removing dead links to ImaGene project.
(Roland Denis #1455)
- Promoting the
-
Build
- Fix issue (#1478),
that is a Visual Studio 2019 build error related to befriend
template specializations
(Jacques-Olivier Lachaud #1481) - Removing the homemade CPP11 checks, using cmake macro instead
(David Coeurjolly, #1446) - Removes the check for CPP11 when building WITH_ITK
(Pablo Hernandez-Cerdan, #1453) - Fix apple clang compilation issue with a workaround to the
ConstIteratorAdapter class that does not satisfy the _is_forward concept of the STL:
using boost::first_max_element instead std::max_element.
(Bertrand Kerautret, #1437) - Abort compilation at configure time when the compiler is gcc 10.1 due to compiler bug.
Fix issue #1501.
(Pablo Hernandez-Cerdan, #1506)
- Fix issue (#1478),
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
New Features / Critical Changes
-
Base package
-
Documentation
- Module page about functions, functors and lambdas in DGtal.
(Roland Denis, #1332)
- Module page about functions, functors and lambdas in DGtal.
-
Image package
-
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)
- Adding PointFunctorHolder to transform any callable object (e.g. function,
-
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)
- Classes Shortcuts and ShortcutsGeometry to simplify coding with
-
Shapes package
- Add two new star shapes: Astroid and Lemniscate
(Adrien Krähenbühl, Chouaib Fellah,
#1325)
- Add two new star shapes: Astroid and Lemniscate
-
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)
- Parametric 3D curve digitization see (UglyNaiveParametricCurveDigitizer3D)
-
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)
- Replacing html internal links by ref command in Digital Topology module
Changes
-
Configuration/General
- Simplifying Travis CI scripts (David Coeurjolly,
#1371)
- Simplifying Travis CI scripts (David Coeurjolly,
-
Kernel package
- Fix NumberTraits for
long long int
types and refactor it.
(Roland Denis, #1397)
- Fix NumberTraits for
-
Topology
- Remove the internal object from VoxelComplex, improving performance
(Pablo Hernandez, #1369)
- Remove the internal object from VoxelComplex, improving performance
-
Documentation
- Improving KhalimskySpace related classes documentations by displaying
a short description in the member list.
(Roland Denis, #1398)
- Improving KhalimskySpace related classes documentations by displaying
-
Helpers
- Small fixes in Shortcuts and ShortcutsGeometry, doc, and colormaps.
(Jacques-Olivier Lachaud, #1364)
- Small fixes in Shortcuts and ShortcutsGeometry, doc, and colormaps.
-
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)
- Specializes the method DigitalSurface::facesAroundVertex in the
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)
- Continuous integration AppVeyor fix
-
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
-
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)
- Fixing openmp flags (David Coeurjolly,
-
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)
- Improve ITKReader, testITKio and testITKReader (Boris Mansencal,
-
Geometry
-
DEC package
- Adding missing headers in some files of DEC.
(Roland Denis, #1349)
- Adding missing headers in some files of DEC.
-
Image
- Fix bug in ImageLinearCellEmbedder.
(Jacques-Olivier Lachaud, #1356)
- Fix bug in ImageLinearCellEmbedder.
-
Miscellaneous
-
Math packages
- Fix possible division by zero in the MultiStatistics class.
(Kacper Pluta, #1358)
- Fix possible division by zero in the MultiStatistics class.
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)
- Fixing path to Mathjax CDN in documentation (David Coeurjolly,
DGtal 0.9.4
New Features / Critical Changes
-
Shapes
- Mesh Voxelizer using 6- or 26-separability templated
(David Coeurjolly, Monir Hadji, #1209)
- Mesh Voxelizer using 6- or 26-separability templated
-
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)
- Adding the half-edge data structure to represent arbitrary
-
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)
- Adding classes and helpers to create triangulated surfaces and
-
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)
- New SimpleMatrix constructor with a initializer_list argument
-
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)
- New simple way to extend the QGLViewer-based Viewer3D interface,
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)
- Fix compilation by using DGtal from swift wrapping (Bertrand Kerautret,
-
Shapes Package
- Fix ImplicitPolynomial3Shape and TrueDigitalSurfaceLocalEstimator.
Improves projection operator on implicit surface and curvature
computations. (Jacques-Olivier Lachaud, #1279)
- Fix ImplicitPolynomial3Shape and TrueDigitalSurfaceLocalEstimator.
-
Configuration/General
-
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)
- Fix for compilation with 2.7.0 QGLViewer version.
-
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)
- Fix invalid KhalimskyCell coordinates in ctopo-fillContours.cpp example.
-
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)
- Add import with functors in GenericReader in the main default reader.
-
DEC
- Fix dependencies flags for DEC examples.
(Jean-David Génevaux, #1310)
- Fix dependencies flags for DEC examples.
New Features / Critical Changes
- Configuration/General
- Topology Package
- Implementation of ParDirCollapse with CollapseSurface and CollapseIsthmus.
(Mohamad ONAYSSI, Bibiana MARTINEZ, Mohamed MELLOULI, Kacper PLUTA,
#1199)
- Implementation of ParDirCollapse with CollapseSurface and CollapseIsthmus.
- Geometry Package
- VoronoiMap, PowerMap, (Reverse)DistanceTransformation and ReducedMedialAxis
now work on toric domains (with per-dimension periodicity specification).
(David Coeurjolly, Roland Denis,
#1206)
- VoronoiMap, PowerMap, (Reverse)DistanceTransformation and ReducedMedialAxis
- 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)
- New version (3) for the VOL file format that allows (zlib) compressed volumetric
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)
- Continuous integration Travis bots are now based on ubunutu/trusty containers.
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)
- Fixing errors and warnings raised by g++ 4.7.x.
- Geometry Package
- IO Package
- Documentation
- Fixing various BibTeX references.
(Bertrand Kerautret, ##1237)
- Fixing various BibTeX references.
DGtal 0.9.2
New Features / Critical Changes
- Documentation
- Geometry Package
- New robust normal vector estimator using spherical accumulators and statistical
voting (Boulc'h & Marlet, SGP 2012).
(David Coeurjolly, #1149)
- New robust normal vector estimator using spherical accumulators and statistical
- Math Package
- New RealFFT class for in-place real-complex Fast Fourier Transform using
fftw3 library.
(Roland Denis, #1185)
- New RealFFT class for in-place real-complex Fast Fourier Transform using
- 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)
- Adding periodic closure for KhalimskySpaceND and per-dimension closure
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)))
- Travis Continuous integration will check that doxygen raises no warnings
- 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)
- Alias and ConstAlias now raise compilation error when using invalid
- 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)
- Viewer3D: improvement of the viewer state record by saving the rendering
- Topology Package
- Add pre-calculated look up tables to speed up Object::isSimple calculations.
(Pablo Hernandez-Cerdan, #1155)
- Add pre-calculated look up tables to speed up Object::isSimple calculations.
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)
- Simplification of the windows build instructions. (David
- DEC Package
- Fixing warnings in DiscreteExteriorCalculus and DiscreteExteriorCalculusFactory.
(Roland Denis, #1139)
- Fixing warnings in DiscreteExteriorCalculus and DiscreteExteriorCalculusFactory.
- 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)
- VoronoiCovarianceMeasure: fix dimension-specific code.
- Image Package
- 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))
- Display3D: Fix embedder usage when using default constructor in Debug mode.
- 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)
- Fix wrong starting point for surface tracking in example code
- 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)
- Fix a tubular mesh construction problem (missing faces) which appears
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)
- A CONTRIBUTING.md file has been added to describe how to contribute
- 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)
- Traits class for containers in order to probe their category at
- 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)
- Hull2DHelpers: implementation of the rotating caliper algorithm to compute
- Image Package
- ArrayImageAdapter adds a read-write image adapter from any random-access iterator,
e.g. from a C-array.
(Roland Denis, #1029)
- ArrayImageAdapter adds a read-write image adapter from any random-access iterator,
- Math Package
- 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)
- New class CubicalComplex and functions associated to
Changes
- Configuration
- Types and classes in helper namespaces
Z2i
andZ3i
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)
- Types and classes in helper namespaces
- DEC Package
- Base Package
- Enabling circulators in SimpleRandomAccessRangeFromPoint.
(Roland Denis, #1060)
- Enabling circulators in SimpleRandomAccessRangeFromPoint.
- Base
- Deprecated OldAlias, OldClone, OldConstAlias have been removed. (David
Coeurjolly, #1074)
- Deprecated OldAlias, OldClone, OldConstAlias have been removed. (David
- 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)
- By default, closing a Viewer3D does not save automatically the viewer
- Shapes Package
- New methods to remove faces from a Mesh or to obtain the barycenter of a
face.
(Bertrand Kerautret #1091)
- New methods to remove faces from a Mesh or to obtain the barycenter of a
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
runningmake 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)
- catch unit test framework upgraded to the develop version. (David
- Base Package
- Fix wrong initialization of reverse iterators in
SimpleRandomAccess(Const)RangeFromPoint. (Roland Denis,
#1060)
- Fix wrong initialization of reverse iterators in
- Geometry Package
- Fix pseudo-random number generator in KanungoNoise (David
Coeurjolly,
#1078)
- Fix pseudo-random number generator in KanungoNoise (David
- IO Package