Skip to content

DGtal dev meeting (June 25th, 2014)

Jacques-Olivier Lachaud edited this page Jun 25, 2014 · 28 revisions

Package review

General remarks

  • namespace policy

    • create functors::, gathers all functors/functions into this namespace
    • remove detail::, keep details::
    • put all standalone functions into functors:: or details::
    • question: namespace concepts:: ?
  • cpp11 policy

    • Action (S1) check cpp11 features we need and check which compilers/version have them.
  • feedback from students

    • lack of documentation
    • backward compatibility
    • Action (S1) Beginner's guide to DGtal
      • look at ITK guide
      • elementary programs
      • thematic index pages

Base package

  • Iterators

    • some iterators are well standardized (STL/boost + DGtal): GridCurve, DSL, perhaps some image containers)
    • but most DGtal iterators are not standardized
    • Action (M1): standardize Image, Domain, DigitalSurface
  • "smart" pointers and parameter passing

    • use ConstAlias, Alias, Clone at most
    • Action (S2): unify some smart pointers
    • Action (M1): check other packages (DigitalSurface, etc)
  • Functors:

    • Action (S1) doc on basic functors and functors of other packages.
  • Exceptions ?

    • Action (M2) check some assertions and replace them by exception

Kernel package

  • basic linear algebra: for now it is mess

    • Point and Vector same class
    • SimpleMatrix (standalone)
    • EigenDecomposition (package math)
    • no usual linear transformation
    • but package dec is coming with a linalg package (based on Eigen library)
    • Action (S0) : wait for David
  • sets, domains

    • characteristic set concept

Arithmetic package

  • no mult and division for continued fractions
  • patterns are defined only in the first quadrant (StandardDSLQ0). Keep that ?
  • what about nD lattice polytope ?
  • link with ArithmeticalDSL, same primitive ? same package ?

Geometry package

  • primitive / recognition algorithms

    • Action (S1) : philosophy of primitive / recognition algorithms, concepts, models
    • Action () : upgrade some recognition algorithms to return primitives: StabbingLineComputer, StabbingCircleComputer,StandardDSS6Computer,OneBalancedWordComputer
  • geometric estimators

    • Action () : documentation for length estimators
    • upgrade CCurveLocalGeometricEstimator, CGlobalCurveGeometricEstimator, CSegmentComputerEstimator concepts.
    • Action (S1) : documentation page for estimators, listing them, explaining global philosophy and concepts, with pointers to specialized pages
    • Action () : upgrade of estimators
    • 3d curve ? arbitrary set of points ?
  • user tools => DGtalTools

  • package divided into directory according to input. Add digitalset (volume for now), pointcloud ?

Shapes package

Topology package

Graph package

Mathematical package

Image package

IO package

Former feature requests

  • Linear algebra (nD) => Matrix, Vector, EigenDecomposition + package dec (linalg)
    • doc missing
  • polytopes (Rn, Qn) => few things, LatticePolytope2D
  • affine transformations => only matrices
  • bindings with morpho math packages => ?
  • image processing packages => binding ITK, DICOM reader, ImageMagick reader/writer
  • geometric primitives (fuzzy, higher degree) => Plane recognition (fuzzy in the Hausdorff sense)
  • graph algorithms => visitors (depth-first, breadth-first, euclidean distance first), watershed, binding boost::graph (DGtal graphs can be wrapped as boost graphs)
  • chamfer or graph-based distances => LUT morpho math tool (not in library)
  • medial axis => DT, Voronoi by separable algos + ?
  • partition models => LabelledMap (K different characteristic functions stored compactly),
  • video => nothing