31 #if defined(Display2DFactory_RECURSES)
32 #error Recursive header files inclusion detected in Display2DFactory.h
33 #else // defined(Display2DFactory_RECURSES)
35 #define Display2DFactory_RECURSES
37 #if !defined Display2DFactory_h
39 #define Display2DFactory_h
44 #include "DGtal/base/Common.h"
46 #include "DGtal/kernel/sets/DigitalSetByAssociativeContainer.h"
47 #include "DGtal/kernel/sets/DigitalSetBySTLSet.h"
48 #include "DGtal/kernel/sets/DigitalSetBySTLVector.h"
50 #include "DGtal/math/AngleLinearMinimizer.h"
51 #include "DGtal/geometry/curves/ArithmeticalDSS.h"
52 #include "DGtal/geometry/curves/ArithmeticalDSSComputer.h"
53 #include "DGtal/geometry/curves/AlphaThickSegmentComputer.h"
54 #include "DGtal/shapes/fromPoints/CircleFrom2Points.h"
55 #include "DGtal/shapes/fromPoints/CircleFrom3Points.h"
56 #include "DGtal/kernel/sets/DigitalSetBySTLSet.h"
57 #include "DGtal/kernel/sets/DigitalSetBySTLVector.h"
58 #include "DGtal/geometry/curves/GridCurve.h"
59 #include "DGtal/geometry/curves/FP.h"
60 #include "DGtal/geometry/curves/FreemanChain.h"
61 #include "DGtal/geometry/curves/StabbingLineComputer.h"
62 #include "DGtal/geometry/curves/StabbingCircleComputer.h"
63 #include "DGtal/geometry/curves/FrechetShortcut.h"
64 #include "DGtal/kernel/domains/HyperRectDomain.h"
65 #include "DGtal/images/ImageContainerByHashTree.h"
66 #include "DGtal/images/ImageContainerBySTLVector.h"
67 #include "DGtal/images/ImageAdapter.h"
68 #include "DGtal/topology/KhalimskySpaceND.h"
69 #include "DGtal/topology/KhalimskyPreSpaceND.h"
70 #include "DGtal/topology/Object.h"
71 #include "DGtal/topology/CubicalComplex.h"
72 #include "DGtal/kernel/PointVector.h"
73 #include "DGtal/geometry/tools/Preimage2D.h"
74 #include "DGtal/shapes/fromPoints/StraightLineFrom2Points.h"
75 #include "DGtal/arithmetic/LatticePolytope2D.h"
76 #include "DGtal/topology/CanonicSCellEmbedder.h"
77 #include "DGtal/dec/VectorField.h"
78 #include "DGtal/dec/KForm.h"
79 #include "DGtal/dec/DiscreteExteriorCalculus.h"
81 #include "DGtal/helpers/StdDefs.h"
99 template <Dimension dim,
typename TInteger>
104 template <Dimension dim,
typename TInteger>
110 template <Dimension dimEmbedded, Dimension dimAmbient,
typename TLinearAlgebraBackend,
typename TInteger>
117 template <
typename TCalculus, DGtal::Order order, DGtal::Duality duality>
122 template <
typename TCalculus, DGtal::Order order, DGtal::Duality duality,
typename TColorMap>
129 template <
typename TCalculus, DGtal::Duality duality>
140 template <
typename TCoordinate,
typename TInteger,
unsigned short adjacency>
144 template <
typename TCoordinate,
typename TInteger,
unsigned short adjacency>
148 template <
typename TCoordinate,
typename TInteger,
unsigned short adjacency>
154 template <
typename TIterator,
typename TInteger,
int connectivity>
158 template <
typename TIterator,
typename TInteger,
int connectivity>
162 template <
typename TIterator,
typename TInteger,
int connectivity>
168 template <
typename TInputPo
int,
typename TConstIterator>
172 template <
typename TInputPo
int,
typename TConstIterator>
176 template <
typename TInputPo
int,
typename TConstIterator>
183 template <
typename TPo
int>
189 template <
typename Po
int>
192 template <
typename Po
int>
195 template <
typename Po
int>
198 template <
typename Po
int>
201 template <
typename TPo
int>
207 template<
typename Domain,
typename Compare>
213 template<
typename Domain,
typename Container>
219 template<
typename Domain>
225 template <
typename TIterator,
typename TInteger,
int connectivity>
228 template <
typename TIterator,
typename TInteger,
int connectivity>
234 template <
typename TInteger>
237 template <
typename TInteger>
240 template <
typename TInteger>
246 template <
typename TConstIterator>
251 template <
typename TConstIterator>
257 template <
typename TIterator,
typename TInteger>
263 template <
typename TKSpace>
266 template <
typename TKSpace>
271 template <
typename TIterator,
typename TSCell>
277 template <
typename TIterator,
typename TKSpace>
283 template <
typename TIterator,
typename TKSpace>
286 typename TKSpace::Space::RealPoint> &
object );
290 template <
typename TIterator,
typename TKSpace>
293 std::pair<typename TKSpace::Point, typename TKSpace::Vector > > &
object );
297 template <
typename TIterator,
typename TKSpace>
300 typename TKSpace::Point > &
object );
304 template <
typename TIterator,
typename TKSpace>
307 typename TKSpace::Point > &
object );
311 template <
typename TIterator,
typename TKSpace>
314 std::pair<typename TKSpace::Point, typename TKSpace::Point> > &
object );
318 template<
typename TSpace>
321 template<
typename TSpace>
324 template<
typename TSpace>
330 template <
typename C,
typename Domain,
typename Value,
typename HashKey>
339 template <
typename C,
typename Domain,
typename Value,
typename HashKey>
342 const Value &,
const Value & );
348 template <
typename Colormap,
typename Image>
357 template < Dimension dim,
typename TInteger >
362 template < Dimension dim,
typename TInteger >
367 template <
typename TDigitalTopology,
typename TDigitalSet>
370 template <
typename TDigitalTopology,
typename TDigitalSet>
376 template <
typename TKSpace,
typename TCellContainer >
383 template<Dimension dim,
typename TComponent,
typename TContainer>
386 template<Dimension dim,
typename TComponent,
typename TContainer>
389 template<Dimension dim,
typename TComponent,
typename TContainer>
393 template<Dimension dim,
typename TComponent1,
typename TComponent2,
typename TContainer1,
typename TContainer2>
401 template <
typename Shape>
407 template < Dimension dim,
typename TInteger >
412 template < Dimension dim,
typename TInteger >
417 template <
typename TPo
int>
435 template <
typename TSpace,
typename TSequence>
448 #include "DGtal/io/Display2DFactory.ih"
453 #endif // !defined Display2DFactory_h
455 #undef Display2DFactory_RECURSES
456 #endif // else defined(Display2DFactory_RECURSES)
Aim: An object (or digital object) represents a set in some digital space associated with a digital t...
Aim: DiscreteExteriorCalculus represents a calculus in the dec package. This is the main structure in...
Aim: On-line computation Computation of the longest shortcut according to the Fréchet distance for a ...
static void drawAsInterGrid(DGtal::Board2D &aBoard, const DGtal::FreemanChain< TInteger > &)
Aim: Computes the preimage of the 2D Euclidean shapes crossing a sequence of n straigth segments in O...
Aim: implements association bewteen points lying in a digital domain and values.
static void drawDECSignedKhalimskyCell(DGtal::Board2D &board, const DGtal::SignedKhalimskyCell< dim, TInteger > &cell)
static void drawAsGrid(DGtal::Board2D &aBoard, const DGtal::FreemanChain< TInteger > &)
Class for EPS, FIG or SVG drawings.
Aim: Represents a straight line uniquely defined by two 2D points and that is able to return for any ...
static void drawArc(Board2D &aBoard, const DGtal::CircleFrom3Points< Point > &, const Point &, const Point &, bool anOrientation=true)
static void drawAsDigitalPoints(DGtal::Board2D &aBoard, const DGtal::ArithmeticalDSS< TCoordinate, TInteger, adjacency > &)
static void drawAsBoundingBox(DGtal::Board2D &aBoard, const DGtal::ArithmeticalDSS< TCoordinate, TInteger, adjacency > &)
Aim: Parallelepidec region of a digital space, model of a 'CDomain'.
static void drawImage(DGtal::Board2D &board, const Image &i, const typename Image::Value &minV, const typename Image::Value &maxV)
Aim: Implements basic operations that will be used in Point and Vector classes.
Aim: On-line recognition of a digital straight segment (DSS) defined as a sequence of connected grid ...
Aim: This class is a wrapper around ArithmeticalDSS that is devoted to the dynamic recognition of dig...
Aim: On-line recognition of a digital circular arcs (DCA) defined as a sequence of connected grid edg...
Aim: transforms a signed cell into an arrow, ie. a pair point-vector.
static void draw(DGtal::Board2D &board, const DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger > &calculus)
Aim: transforms a scell into a point.
static void drawImageHashTree(Board2D &board, const DGtal::experimental::ImageContainerByHashTree< Domain, Value, HashKey > &, const Value &, const Value &)
Aim: This class represents an arbitrary cubical complex living in some Khalimsky space. Cubical complexes are sets of cells of different dimensions related together with incidence relations. Two cells in a cubical complex are incident if and only if they are incident in the surrounding Khalimsky space. In other words, cubical complexes are defined here as subsets of Khalimsky spaces.
Aim: This class represents a naive (resp. standard) digital straight segment (DSS), ie. the sequence of simply 8- (resp. 4-)connected digital points contained in a naive (resp. standard) digital straight line (DSL) between two points of it.
static void drawAsPaving(DGtal::Board2D &aboard, const DGtal::HyperRectDomain< TSpace > &)
Model of CImageContainer implementing the association key<->Value using a hash tree. This class provides a built-in iterator.
Aim: A trivial embedder for signed cell, which corresponds to the canonic injection of cell centroids...
DGtal is the top-level namespace which contains all DGtal functions and types.
Aim: A wrapper class around a STL associative container for storing sets of digital points within som...
Aim: transforms a signed cell c into a point corresponding to the signed cell of greater dimension th...
Aim: model of CConstBidirectionalRange that adapts any range of elements bounded by two iterators [it...
Aim: Computes the faithful polygon (FP) of a range of 4/8-connected 2D Points.
static void drawFill(DGtal::Board2D &aBoard, const GridCurve< TKSpace > &object)
static void drawWithAdjacencies(DGtal::Board2D &aBoard, const DGtal::Object< TDigitalTopology, TDigitalSet > &)
Represents a signed cell in a cellular grid space by its Khalimsky coordinates and a boolean value...
static void drawAsPolygon(DGtal::Board2D &aBoard, const DGtal::FP< TIterator, TInteger, connectivity > &)
Aim: Used to minimize the angle variation between different angles while taking into accounts min and...
Aim: Realizes the concept CDigitalSet by using the STL container std::vector.
Modifier class in a Board2D stream. Useful to choose your own mode for a given class. Realizes the concept CDrawableWithBoard2D.
static void drawAnnulus(Board2D &aBoard, const DGtal::CircleFrom3Points< Point > &, const Point &, const Point &, bool anOrientation=true, const double &w=1.0)
Aim: This class is devoted to the recognition of alpha thick segments as described in ...
Aim: Represents a circle that passes through a given point and that is thus uniquely defined by two o...
Aim: describes, in a cellular space of dimension n, a closed or open sequence of signed d-cells (or d...
static void drawSector(Board2D &aBoard, const DGtal::CircleFrom3Points< Point > &, const Point &, const Point &, bool anOrientation=true)
static void drawWithColorMap(DGtal::Board2D &board, const DGtal::KForm< TCalculus, order, duality > &kform, const TColorMap &colormap)
Represents an (unsigned) cell in a cellular grid space by its Khalimsky coordinates.
Aim: transforms a signed cell c into a point corresponding to the signed cell of greater dimension th...
Aim: Represents a 2D polytope, i.e. a convex polygon, in the two-dimensional digital plane...
Aim: VectorField represents a discrete vector field in the dec package. Vector field values are attac...
Aim: A container class for storing sets of digital points within some given domain.
Aim: This class specializes a 'Board' class so as to display DGtal objects more naturally (with <<)...
static void drawImageRecursive(DGtal::Board2D &aBoard, const DGtal::experimental::ImageContainerByHashTree< Domain, Value, HashKey > &i, HashKey key, const double p[2], const double len, LibBoard::Board &board, const C &cmap)
Aim: transforms a signed cell c into a pair of points corresponding to the signed cells of greater di...