DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Display2DFactory.h
1 
17 #pragma once
18 
31 #if defined(Display2DFactory_RECURSES)
32 #error Recursive header files inclusion detected in Display2DFactory.h
33 #else // defined(Display2DFactory_RECURSES)
34 
35 #define Display2DFactory_RECURSES
36 
37 #if !defined Display2DFactory_h
38 
39 #define Display2DFactory_h
40 
42 // Inclusions
43 
44 #include "DGtal/base/Common.h"
45 
46 #include "DGtal/math/AngleLinearMinimizer.h"
47 #include "DGtal/geometry/curves/ArithmeticalDSS.h"
48 #include "DGtal/shapes/fromPoints/CircleFrom2Points.h"
49 #include "DGtal/shapes/fromPoints/CircleFrom3Points.h"
50 #include "DGtal/kernel/sets/DigitalSetBySTLSet.h"
51 #include "DGtal/kernel/sets/DigitalSetBySTLVector.h"
52 #include "DGtal/geometry/curves/GridCurve.h"
53 #include "DGtal/geometry/curves/FP.h"
54 #include "DGtal/geometry/curves/FreemanChain.h"
55 #include "DGtal/geometry/curves/GeometricalDSS.h"
56 #include "DGtal/geometry/curves/GeometricalDCA.h"
57 #include "DGtal/geometry/curves/FrechetShortcut.h"
58 #include "DGtal/kernel/domains/HyperRectDomain.h"
59 #include "DGtal/images/ImageContainerByHashTree.h"
60 #include "DGtal/images/ImageContainerBySTLVector.h"
61 #include "DGtal/images/ImageAdapter.h"
62 #include "DGtal/topology/KhalimskySpaceND.h"
63 #include "DGtal/topology/Object.h"
64 #include "DGtal/kernel/PointVector.h"
65 #include "DGtal/geometry/tools/Preimage2D.h"
66 #include "DGtal/shapes/fromPoints/StraightLineFrom2Points.h"
67 #include "DGtal/arithmetic/LatticePolytope2D.h"
68 
69 #include "DGtal/io/boards/Board2D.h"
70 
72 
73 
74 namespace DGtal
75 {
76 
78 // struct Display2DFactory
84  {
85 
86 
87 // AngleLinearMinimizer
88 static void draw( DGtal::Board2D & board, const DGtal::AngleLinearMinimizer & );
89 // AngleLinearMinimizer
90 
91 
92 // ArithmeticalDSS
93 template <typename TIterator, typename TInteger, int connectivity>
94  static void drawAsBoundingBox( DGtal::Board2D & aBoard,
96 
97 template <typename TIterator, typename TInteger, int connectivity>
98  static void drawAsDigitalPoints( DGtal::Board2D & aBoard,
100 
101 template <typename TIterator, typename TInteger, int connectivity>
103 // ArithmeticalDSS
104 
105 
106 // CircleFrom2Points
107 template <typename TPoint>
108 static void draw(Board2D & aBoard, const DGtal::CircleFrom2Points<TPoint> & );
109 // CircleFrom2Points
110 
111 
112 // CircleFrom3Points
113 template <typename Point>
114 static void drawArc(Board2D & aBoard, const DGtal::CircleFrom3Points<Point> &, const Point &, const Point &, bool anOrientation = true);
115 
116 template <typename Point>
117 static void drawSector(Board2D & aBoard, const DGtal::CircleFrom3Points<Point> &, const Point &, const Point &, bool anOrientation = true);
118 
119 template <typename Point>
120 static void drawAnnulus(Board2D & aBoard, const DGtal::CircleFrom3Points<Point> &, const Point &, const Point &, const double& w = 1.0, bool anOrientation = true);
121 
122 template <typename Point>
123 static void draw(Board2D & aBoard, const DGtal::CircleFrom3Points<Point> &, const Point &, const Point &, bool anOrientation = true);
124 
125 template <typename TPoint>
126 static void draw(Board2D & aBoard, const DGtal::CircleFrom3Points<TPoint> & );
127 // CircleFrom3Points
128 
129 
130 // DigitalSetBySTLSet
131 template<typename Domain>
132 static void draw( DGtal::Board2D & board, const DGtal::DigitalSetBySTLSet<Domain> & );
133 // DigitalSetBySTLSet
134 
135 
136 // DigitalSetBySTLVector
137 template<typename Domain>
138 static void draw( DGtal::Board2D & board, const DGtal::DigitalSetBySTLVector<Domain> & );
139 // DigitalSetBySTLVector
140 
141 
142 // FP
143 template <typename TIterator, typename TInteger, int connectivity>
145 
146 template <typename TIterator, typename TInteger, int connectivity>
147  static void draw( DGtal::Board2D & board, const DGtal::FP<TIterator,TInteger,connectivity> & );
148 // FP
149 
150 
151 // FreemanChain
152 template <typename TInteger>
153 static void drawAsGrid( DGtal::Board2D & aBoard, const DGtal::FreemanChain<TInteger> & );
154 
155 template <typename TInteger>
156 static void drawAsInterGrid( DGtal::Board2D & aBoard, const DGtal::FreemanChain<TInteger> & );
157 
158 template <typename TInteger>
159 static void draw( DGtal::Board2D & aBoard, const DGtal::FreemanChain<TInteger> & );
160 // FreemanChain
161 
162 
163 // GeometricalDSS
164 template <typename TConstIterator>
165 static void draw(DGtal::Board2D & aBoard, const DGtal::GeometricalDSS<TConstIterator> & );
166 // GeometricalDSS
167 
168 // GeometricalDCA
169 template <typename TConstIterator>
170 static void draw(DGtal::Board2D & aBoard, const DGtal::GeometricalDCA<TConstIterator> & );
171 // GeometricalDCA
172 
173 
174 //FrechetShortcut
175 template <typename TIterator, typename TInteger>
176 static void draw(DGtal::Board2D & aBoard, const DGtal::FrechetShortcut<TIterator,TInteger> & );
177 //FrechetShortcut
178 
179 
180 // GridCurve
181 template <typename TKSpace>
182 static void draw( DGtal::Board2D & aBoard,
183  const GridCurve<TKSpace> & object );
184 // GridCurve
185 
186 // SCellsRange
187 template <typename TIterator, typename TSCell>
188 static void draw( DGtal::Board2D & aBoard,
190 // SCellsRange
191 
192 // PointsRange
193 template <typename TIterator, typename TKSpace>
194 static void draw( DGtal::Board2D & aBoard,
195  const ConstRangeAdapter<TIterator, SCellToPoint<TKSpace>, typename TKSpace::Point> & object );
196 // PointsRange
197 
198 // MidPointsRange
199 template <typename TIterator, typename TKSpace>
200 static void draw( DGtal::Board2D & aBoard,
202  typename TKSpace::Space::RealPoint> & object );
203 // MidPointsRange
204 
205 // ArrowsRange
206 template <typename TIterator, typename TKSpace>
207 static void draw( DGtal::Board2D & aBoard,
208  const ConstRangeAdapter<TIterator, SCellToArrow<TKSpace>,
209  std::pair<typename TKSpace::Point, typename TKSpace::Vector > > & object );
210 // ArrowsRange
211 
212 // InnerPointsRange
213 template <typename TIterator, typename TKSpace>
214 static void draw( DGtal::Board2D & aBoard,
216  typename TKSpace::Point > & object );
217 // InnerPointsRange
218 
219 // OuterPointsRange
220 template <typename TIterator, typename TKSpace>
221 static void draw( DGtal::Board2D & aBoard,
223  typename TKSpace::Point > & object );
224 // OuterPointsRange
225 
226 // IncidentPointsRange
227 template <typename TIterator, typename TKSpace>
228 static void draw( DGtal::Board2D & aBoard,
230  std::pair<typename TKSpace::Point, typename TKSpace::Point> > & object );
231 // IncidentPointsRange
232 
233 // HyperRectDomain
234 template<typename TSpace>
235 static void drawAsGrid( DGtal::Board2D & aboard, const DGtal::HyperRectDomain<TSpace> & );
236 
237 template<typename TSpace>
238 static void drawAsPaving( DGtal::Board2D & aboard, const DGtal::HyperRectDomain<TSpace> & );
239 
240 template<typename TSpace>
241 static void draw( DGtal::Board2D & board, const DGtal::HyperRectDomain<TSpace> & );
242 // HyperRectDomain
243 
244 
245 // ImageContainerByHashTree
246 template <typename C, typename Domain, typename Value, typename HashKey>
247 static void drawImageRecursive( DGtal::Board2D & aBoard,
249  HashKey key,
250  const double p[2],
251  const double len,
252  LibBoard::Board & board,
253  const C& cmap );
254 
255 template <typename C, typename Domain, typename Value, typename HashKey>
256 static void drawImageHashTree( Board2D & board,
258  const Value &, const Value & );
259 // ImageContainerByHashTree
260 
261 
262 // ImageContainerBySTLVector, ImageContainerByHashTree, Image and ImageAdapter...
263 // minV and maxV are bounds values of colormap
264 template <typename Colormap, typename Image>
265  static void drawImage( DGtal::Board2D & board,
266  const Image & i,
267  const typename Image::Value & minV,
268  const typename Image::Value & maxV );
269 // ImageContainerBySTLVector, ImageContainerByHashTree, Image and ImageAdapter...
270 
271 
272 // KhalimskyCell
273 template < Dimension dim, typename TInteger >
274  static void draw( DGtal::Board2D & board, const DGtal::KhalimskyCell<dim, TInteger> & );
275 // KhalimskyCell
276 
277 
278 // Object
279 template <typename TDigitalTopology, typename TDigitalSet>
281 
282 template <typename TDigitalTopology, typename TDigitalSet>
283  static void draw( DGtal::Board2D & board, const DGtal::Object<TDigitalTopology, TDigitalSet> & );
284 // Object
285 
286 
287 // PointVector
288 template<Dimension dim, typename TComponent>
289  static void drawAsPaving( DGtal::Board2D & board, const DGtal::PointVector<dim,TComponent> & );
290 
291 template<Dimension dim, typename TComponent>
292  static void drawAsGrid( DGtal::Board2D & board, const DGtal::PointVector<dim,TComponent> & );
293 
294 template<Dimension dim, typename TComponent>
295  static void draw( DGtal::Board2D & board, const DGtal::PointVector<dim,TComponent> & );
296 
297 template<Dimension dim, typename TComponent>
298  static void draw( DGtal::Board2D & board,
301 // PointVector
302 
303 
304 // Preimage2D
305 template <typename Shape>
306 static void draw( DGtal::Board2D & aBoard, const DGtal::Preimage2D<Shape> & );
307 // Preimage2D
308 
309 
310 // SignedKhalimskyCell
311 template < Dimension dim, typename TInteger >
312  static void draw( DGtal::Board2D & board, const DGtal::SignedKhalimskyCell<dim, TInteger> & );
313 // SignedKhalimskyCell
314 
315 
316 // StraightLineFrom2Points
317 template <typename TPoint>
318 static void draw(Board2D & aBoard, const DGtal::StraightLineFrom2Points<TPoint> & );
319 // StraightLineFrom2Points
320 
321 
322 //
323 
324 
325 static void draw( DGtal::Board2D & board, const DGtal::CustomStyle & );
326 static void draw( DGtal::Board2D & board, const DGtal::SetMode & );
327 
328 
335  template <typename TSpace, typename TSequence>
336  static
337  void draw( DGtal::Board2D & aBoard,
339 
340 
341  }; // end of struct Display2DFactory
342 
343 } // namespace DGtal
344 
345 
347 // Includes inline functions/methods
348 #include "DGtal/io/Display2DFactory.ih"
349 
350 // //
352 
353 #endif // !defined Display2DFactory_h
354 
355 #undef Display2DFactory_RECURSES
356 #endif // else defined(Display2DFactory_RECURSES)