-
-
Notifications
You must be signed in to change notification settings - Fork 117
DGtal dev meeting (June 25th, 2014)
-
namespace policy
- create functors::, gathers all functors into this namespace
- create functions::, gathers all functions into this namespace
- remove detail::, keep details::
- put all standalone functions into functions:: or details::
- question: namespace concepts:: ?
DGtal::functions
DGtal::functors
DGtal::concepts
DGtal::details
DGtal::experimental:: (concepts/functions/functors/details)
DGtal::deprecated::(concepts/functions/functors/details)
-
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
-
Changelog
(S) Action Changelog -> Changelog.md(S) Action: refactor into "New features / Improvements / Bug fixes"
-
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
-
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)
- everything except PointVector moved to math/linalg package.
-
sets, domains
- characteristic set concept
-
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 ?
-
primitive / recognition algorithms
- Action (S1) : philosophy of primitive / recognition algorithms, concepts, models
- Action () : upgrade some recognition algorithms to return primitives: StabbingLineComputer, StabbingCircleComputer,StandardDSS6Computer,OneBalancedWordComputer
- Action (M) : general 3D straight segment primitive (for now only standard DSS 3D)
-
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 ?
-
(S)Volumetric/Distances: update the concepts
-
skeletonization / thinning
- doc
- backport from tools
-
user tools => DGtalTools
-
package divided into directory according to input. Add digitalset (volume for now), pointcloud ?
-
rename Shapes to Shapes and Digitization (if other digitization schemes are implemented)
-
ShapeFactory
- Action (S1) remove it
- Action (S2) refactor ShapeFactory to really produce shapes according parameters
- Action (?) create object facade to many shape types
-
shapes:
- Action () : add list of implicit/parametric shapes
- think again about concepts
- half-planes, rotations/affine transformations (do we keep strong typing here)
- add 3D (euclidean or digital) curves
- Action (S) add principal curvatures and directions (to implicit polynomial shape)
- polytope (with dep)
-
mesh:
- add a user documentation for Mesh
- Action (S1) MeshHelper to build a mesh from a digital surface (primal and dual mesh)
-
digitization:
- Action (M) other digitization schemes
- Action (?) 2d and 3d curve digitization scheme
-
cubical complex
- (S) missing CubicalComplex structure, iterators, so on, update KhalimskySpaceND ?
- (M) builders of CubicalComplex from set of linels, surfels, digital surfaces
-
(M) fast version of KhalimskySpaceND
-
topology invariants (doc)
- Action (M) linking number
- Action (L) homology generators
- (VL) persistent homology
-
dependency to Lemon for graph algorithms
- wrapper (DGtal graph to Lemon graph) ?
- doc, examples
-
boost::graph
- DigitalSurface is wrapped for boost::graph
- Action (M) wrap Object
-
algorithms
- (S) add watershed
-
statistics
- (?) missing user doc for Histogram, Statistic, SimpleRegression
- (S) add generic least-square fitting
-
linalg
- concept CLinearAlgebra : Matrix, Vector, mult
- concepts related to dynamic matrices, vectors and static matrices, vectors.
- concept CLinearAlgebraSolver (solve linear problem, factorization)
- full model with Eigen
- move EigenDecomposition to math/linalg and check concepts.
-
image transformations
- Action (M) (quasi)affine/rotations/shears
-
visiting images
- Action (S) update doc on image to point on space Domain iterators when one wish to visit images on subdomains
- (S) add example of subdomain traversal for images
- question: have specialized span iterators for ImageContainerBySTLVector
- smart foreach generic function
-
image processing
- concepts : algorithms, morphers, (look at milena)
- add image adapters (local neighborhoods)
- (S) create other doc page with image adapters
- (M) image filtering (FFTw dependency)
-
large image handling
- (S) identity 2-3 image/volume tools and migrate them to huge images
-
math morphology
- erosion, dilation, opening as image processing algorithms
-
export, visualization
- Action (M) embedding in Display3D
- GLFW: to remove dependency with Qt
-
interaction
- RIP: OGRE branch
- RAS
- (S) 2D vectorization tool
- (SM) Add DT, RDT, and so-forth
- change name of LUTxxx
- are tangentBC and curvatureBC included in 2dLocalEstimators ?
- refactoring of 2dLocalEstimators and 3dLocalEstimators
- upgrade vol2normalField with newer estimators
- add generic3dCurvaturexxx
- need 3d vol generator (ball, ellipsoid, etc)
- implicit polynomial x gridstep -> volume (2d and 3d)
- tool : mesh x gridstep -> volume
- a simple volume slice viewer
- a simple image viewer
- vol2off and 3dVolMarchingCubes are the same, keep second in volumetric
- affine transformations
- 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