DGtal  1.5.beta
Board3DTo2DFactory.ih
1 /**
2  * This program is free software: you can redistribute it and/or modify
3  * it under the terms of the GNU Lesser General Public License as
4  * published by the Free Software Foundation, either version 3 of the
5  * License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program. If not, see <http://www.gnu.org/licenses/>.
14  *
15  **/
16 
17 /**
18 * @file Board3DTo2DFactory.ih
19 * @author Aline Martin <aline.martin@insa-lyon.fr>
20 * @date mardi 2 juillet 2013
21  *
22  * @brief
23  *
24  * Implementation of inline methods defined in Board3DTo2DFactory.h
25  *
26  * This file is part of the DGtal library.
27  */
28 
29 
30 #include "DGtal/helpers/StdDefs.h"
31 #include "DGtal/images/ImageHelper.h"
32 
33 
34 ///////////////////////////////////////////////////////////////////////////////
35 // Implementation of inline methods //
36 
37 
38 ///////////////////////////////////////////////////////////////////////////////
39 // Implementation of inline functions and external operators //
40 
41 
42 template < typename Space, typename KSpace>
43 inline
44 void DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board,
45  const DGtal::CameraPosition & cp )
46 {
47  board.setCameraPosition(cp.eyex, cp.eyey, cp.eyez);
48 }
49 
50 template < typename Space, typename KSpace>
51 inline
52 void DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board,
53  const DGtal::CameraDirection & cd )
54 {
55  board.setCameraDirection(cd.dirx, cd.diry, cd.dirz);
56 }
57 
58 template < typename Space, typename KSpace>
59 inline
60 void DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::CameraUpVector & cuv )
61 {
62 
63  board.setCameraUpVector(cuv.upx, cuv.upy, cuv.upz);
64 }
65 
66 template < typename Space, typename KSpace>
67 inline
68 void DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board,
69  const DGtal::CameraZNearFar & cz )
70 {
71  board.setNearFar(cz.ZNear, cz.ZFar);
72 }
73 
74 //----------------------------------------------------------------------------------------------
75 // heritage of methods
76 
77 
78 // SphericalAccumulator
79 /**
80  * Display an spherical accumulator in 3D. Bin values are mapped
81  * using a default HueShadeColorMap.
82  *
83  * @param board current board
84  * @param accumulator the accumulator to board
85  * @param shift translate vector for board purposes (default:
86  * zero vector)
87  * @param radius scale factor for the unit sphere radius (default:1)
88  * @tparam TVector a vector model
89  */
90 template <typename Space, typename KSpace>
91 template <typename TVector>
92 inline
93 void
94 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::SphericalAccumulator<TVector> & accumulator,
95  const typename DGtal::SphericalAccumulator<TVector>::RealVector & shift,
96  const double radius)
97 {
98  DGtal::Display3DFactory<Space,KSpace>::draw ( board, accumulator, shift, radius);
99 }
100 
101 // SphericalAccumulator
102 
103 // Mesh
104 template <typename Space, typename KSpace>
105 template <typename TPoint>
106 inline
107 void
108 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsFaces( Board3DTo2D<Space, KSpace> & board, const DGtal::Mesh<TPoint> & aMesh )
109 {
110  DGtal::Display3DFactory<Space,KSpace>::drawAsFaces( board, aMesh);
111 }
112 
113 template <typename Space, typename KSpace>
114 template <typename TPoint>
115 inline
116 void
117 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::Mesh<TPoint> & aMesh )
118 {
119  DGtal::Display3DFactory<Space,KSpace>::draw (board, aMesh);
120 }
121 
122 // Mesh
123 
124 // StandardDSS6Computer
125 /**
126  * Default DGtal::Board3DTo2DFactory<Space,KSpace>::drawing style object.
127  * @return the dyn. alloc. default style for this object.
128  */
129 template <typename Space, typename KSpace>
130 template <typename TIterator, typename TInteger, int connectivity>
131 inline
132 DGtal::DrawableWithBoard3DTo2D *
133 DGtal::Board3DTo2DFactory<Space,KSpace>::defaultStyle( std::string str, const DGtal::StandardDSS6Computer<TIterator,TInteger,connectivity> & arithm )
134 {
135  return DGtal::Display3DFactory<Space,KSpace>::defaultStyle(str, arithm);
136 }
137 
138 template <typename Space, typename KSpace>
139 template <typename TIterator, typename TInteger, int connectivity>
140 inline
141 void
142 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsBalls( Board3DTo2D<Space, KSpace> & board, const DGtal::StandardDSS6Computer<TIterator,TInteger,connectivity> & arithm )
143 {
144  DGtal::Display3DFactory<Space,KSpace>::drawAsBalls(board, arithm);
145 }
146 template <typename Space, typename KSpace>
147 template <typename TIterator, typename TInteger, int connectivity>
148 inline
149 void
150 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsBoundingBox( Board3DTo2D<Space, KSpace> & board, const DGtal::StandardDSS6Computer<TIterator,TInteger,connectivity> & arithm )
151 {
152  DGtal::Display3DFactory<Space,KSpace>::drawAsBoundingBox(board, arithm);
153 }
154 template <typename Space, typename KSpace>
155 template <typename TIterator, typename TInteger, int connectivity>
156 inline
157 void
158 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::StandardDSS6Computer<TIterator,TInteger,connectivity> & arithm )
159 {
160  DGtal::Display3DFactory<Space,KSpace>::draw(board , arithm);
161 }
162 
163 // StandardDSS6Computer
164 
165 
166 ////
167 
168 // Naive3DDSSComputer
169 /**
170  * Default DGtal::Board3DTo2DFactory<Space,KSpace>::drawing style object.
171  * @return the dyn. alloc. default style for this object.
172  */
173 template <typename Space, typename KSpace>
174 template <typename TIterator, typename TInteger, int connectivity>
175 inline
176 DGtal::DrawableWithBoard3DTo2D *
177 DGtal::Board3DTo2DFactory<Space,KSpace>::defaultStyle( std::string str, const DGtal::Naive3DDSSComputer<TIterator,TInteger,connectivity> & arithm )
178 {
179  return DGtal::Display3DFactory<Space,KSpace>::defaultStyle(str, arithm);
180 }
181 
182 template <typename Space, typename KSpace>
183 template <typename TIterator, typename TInteger, int connectivity>
184 inline
185 void
186 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsBalls( Board3DTo2D<Space, KSpace> & board, const DGtal::Naive3DDSSComputer<TIterator,TInteger,connectivity> & arithm )
187 {
188  DGtal::Display3DFactory<Space,KSpace>::drawAsBalls(board, arithm);
189 }
190 template <typename Space, typename KSpace>
191 template <typename TIterator, typename TInteger, int connectivity>
192 inline
193 void
194 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsBoundingBox( Board3DTo2D<Space, KSpace> & board, const DGtal::Naive3DDSSComputer<TIterator,TInteger,connectivity> & arithm )
195 {
196  DGtal::Display3DFactory<Space,KSpace>::drawAsBoundingBox(board, arithm);
197 }
198 template <typename Space, typename KSpace>
199 template <typename TIterator, typename TInteger, int connectivity>
200 inline
201 void
202 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::Naive3DDSSComputer<TIterator,TInteger,connectivity> & arithm )
203 {
204  DGtal::Display3DFactory<Space,KSpace>::draw(board , arithm);
205 }
206 
207 // Naive3DDSSComputer
208 
209 
210 // DigitalSetBySTLSet
211 /**
212  * Default DGtal::Board3DTo2DFactory<Space,KSpace>::drawing style object.
213  * @return the dyn. alloc. default style for this object.
214  */
215 template <typename Space, typename KSpace>
216 template<typename Domain, typename Compare>
217 inline
218 DGtal::DrawableWithBoard3DTo2D *
219 DGtal::Board3DTo2DFactory<Space,KSpace>::defaultStyle( std::string str, const DGtal::DigitalSetBySTLSet<Domain, Compare> & aSet )
220 {
221  return DGtal::Display3DFactory<Space,KSpace>::defaultStyle(str, aSet);
222 }
223 
224 template <typename Space, typename KSpace>
225 template<typename Domain, typename Compare>
226 inline
227 void
228 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsPavingTransparent( Board3DTo2D<Space, KSpace> & board, const DGtal::DigitalSetBySTLSet<Domain, Compare> & aSet )
229 {
230  DGtal::Display3DFactory<Space,KSpace>::drawAsPavingTransparent(board, aSet);
231 }
232 
233 template <typename Space, typename KSpace>
234 template<typename Domain, typename Compare>
235 inline
236 void
237 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsPaving( Board3DTo2D<Space, KSpace> & board, const DGtal::DigitalSetBySTLSet<Domain, Compare> & aSet )
238 {
239  DGtal::Display3DFactory<Space,KSpace>::drawAsPaving( board, aSet);
240 }
241 
242 template <typename Space, typename KSpace>
243 template<typename Domain, typename Compare>
244 inline
245 void
246 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsGrid( Board3DTo2D<Space, KSpace> & board, const DGtal::DigitalSetBySTLSet<Domain, Compare> & aSet )
247 {
248  DGtal::Display3DFactory<Space,KSpace>::drawAsGrid(board, aSet);
249 }
250 
251 template <typename Space, typename KSpace>
252 template<typename Domain, typename Compare>
253 inline
254 void
255 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::DigitalSetBySTLSet<Domain, Compare> & aSet )
256 {
257  DGtal::Display3DFactory<Space,KSpace>::draw( board, aSet);
258 }
259 
260 // DigitalSetBySTLSet
261 
262 
263 // DigitalSetByAssociativeContainer
264 /**
265  * Default DGtal::Board3DTo2DFactory<Space,KSpace>::drawing style object.
266  * @return the dyn. alloc. default style for this object.
267  */
268 template <typename Space, typename KSpace>
269 template<typename Domain, typename Container>
270 inline
271 DGtal::DrawableWithBoard3DTo2D *
272 DGtal::Board3DTo2DFactory<Space,KSpace>::defaultStyle( std::string str, const DGtal::DigitalSetByAssociativeContainer<Domain, Container> & aSet )
273 {
274  return DGtal::Display3DFactory<Space,KSpace>::defaultStyle(str, aSet);
275 }
276 
277 template <typename Space, typename KSpace>
278 template<typename Domain, typename Container>
279 inline
280 void
281 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsPavingTransparent( Board3DTo2D<Space, KSpace> & board, const DGtal::DigitalSetByAssociativeContainer<Domain, Container> & aSet )
282 {
283  DGtal::Display3DFactory<Space,KSpace>::drawAsPavingTransparent(board, aSet);
284 }
285 
286 template <typename Space, typename KSpace>
287 template<typename Domain, typename Container>
288 inline
289 void
290 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsPaving( Board3DTo2D<Space, KSpace> & board, const DGtal::DigitalSetByAssociativeContainer<Domain, Container> & aSet )
291 {
292  DGtal::Display3DFactory<Space,KSpace>::drawAsPaving( board, aSet);
293 }
294 
295 template <typename Space, typename KSpace>
296 template<typename Domain, typename Container>
297 inline
298 void
299 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsGrid( Board3DTo2D<Space, KSpace> & board, const DGtal::DigitalSetByAssociativeContainer<Domain, Container> & aSet )
300 {
301  DGtal::Display3DFactory<Space,KSpace>::drawAsGrid(board, aSet);
302 }
303 
304 template <typename Space, typename KSpace>
305 template<typename Domain, typename Container>
306 inline
307 void
308 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::DigitalSetByAssociativeContainer<Domain, Container> & aSet )
309 {
310  DGtal::Display3DFactory<Space,KSpace>::draw( board, aSet);
311 }
312 
313 // DigitalSetByAssociativeContainer
314 
315 
316 
317 // DigitalSetBySTLVector
318 /**
319  * Default DGtal::Board3DTo2DFactory<Space,KSpace>::drawing style object.
320  * @return the dyn. alloc. default style for this object.
321  */
322 template <typename Space, typename KSpace>
323 template<typename Domain>
324 inline
325 DGtal::DrawableWithBoard3DTo2D *
326 DGtal::Board3DTo2DFactory<Space,KSpace>::defaultStyle( std::string str, const DGtal::DigitalSetBySTLVector<Domain> & aSet )
327 {
328  return DGtal::Display3DFactory<Space,KSpace>::defaultStyle(str, aSet);
329 }
330 
331 template <typename Space, typename KSpace>
332 template<typename Domain>
333 inline
334 void
335 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsPavingTransparent( Board3DTo2D<Space, KSpace> & board, const DGtal::DigitalSetBySTLVector<Domain> & aSet )
336 {
337  DGtal::Display3DFactory<Space,KSpace>::drawAsPavingTransparent( board, aSet);
338 }
339 
340 template <typename Space, typename KSpace>
341 template<typename Domain>
342 inline
343 void
344 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsPaving( Board3DTo2D<Space, KSpace> & board, const DGtal::DigitalSetBySTLVector<Domain> & aSet )
345 {
346  DGtal::Display3DFactory<Space,KSpace>::drawAsPaving( board, aSet);
347 }
348 
349 template <typename Space, typename KSpace>
350 template<typename Domain>
351 inline
352 void
353 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsGrid( Board3DTo2D<Space, KSpace> & board, const DGtal::DigitalSetBySTLVector<Domain> & aSet )
354 {
355  DGtal::Display3DFactory<Space,KSpace>::drawAsGrid(board, aSet);
356 }
357 
358 template <typename Space, typename KSpace>
359 template<typename Domain>
360 inline
361 void
362 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::DigitalSetBySTLVector<Domain> & aSet )
363 {
364  DGtal::Display3DFactory<Space,KSpace>::draw( board, aSet);
365 }
366 
367 // DigitalSetBySTLVector
368 
369 
370 // HyperRectDomain
371 /**
372  * Default DGtal::Board3DTo2DFactory<Space,KSpace>::drawing style object.
373  * @return the dyn. alloc. default style for this object.
374  */
375 template <typename Space, typename KSpace>
376 template<typename TSpace>
377 inline
378 DGtal::DrawableWithBoard3DTo2D *
379 DGtal::Board3DTo2DFactory<Space,KSpace>::defaultStyle( std::string str, const DGtal::HyperRectDomain<TSpace> & aDomain )
380 {
381  return DGtal::Display3DFactory<Space,KSpace>::defaultStyle( str, aDomain);
382 }
383 
384 template <typename Space, typename KSpace>
385 template<typename TSpace>
386 inline
387 void
388 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsBoundingBox( Board3DTo2D<Space, KSpace> & board, const DGtal::HyperRectDomain<TSpace> & aDomain )
389 {
390  DGtal::Display3DFactory<Space,KSpace>::drawAsBoundingBox( board, aDomain);
391 }
392 
393 template <typename Space, typename KSpace>
394 template<typename TSpace>
395 inline
396 void
397 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsGrid( Board3DTo2D<Space, KSpace> & board, const DGtal::HyperRectDomain<TSpace> & aDomain )
398 {
399  DGtal::Display3DFactory<Space,KSpace>::drawAsGrid( board, aDomain);
400 }
401 
402 template <typename Space, typename KSpace>
403 template<typename TSpace>
404 inline
405 void
406 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsPavingBalls( Board3DTo2D<Space, KSpace> & board, const DGtal::HyperRectDomain<TSpace> & aDomain )
407 {
408  DGtal::Display3DFactory<Space,KSpace>::drawAsPavingBalls( board, aDomain);
409 }
410 
411 template <typename Space, typename KSpace>
412 template<typename TSpace>
413 inline
414 void
415 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsPaving( Board3DTo2D<Space, KSpace> & board, const DGtal::HyperRectDomain<TSpace> & aDomain )
416 {
417  DGtal::Display3DFactory<Space,KSpace>::drawAsPaving( board, aDomain);
418 }
419 
420 
421 template <typename Space, typename KSpace>
422 template<typename TSpace>
423 inline
424 void
425 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::HyperRectDomain<TSpace> & aDomain )
426 {
427  DGtal::Display3DFactory<Space,KSpace>::draw( board, aDomain);
428 }
429 
430 
431 // HyperRectDomain
432 
433 
434 // KhalimskyCell
435 template <typename Space, typename KSpace>
436 inline
437 DGtal::DrawableWithBoard3DTo2D *
438 DGtal::Board3DTo2DFactory<Space,KSpace>::defaultStyle( std::string str, const typename KSpace::Cell & aCell )
439 {
440  return DGtal::Display3DFactory<Space,KSpace>::defaultStyle(str, aCell);
441 }
442 
443 template <typename Space, typename KSpace>
444 inline
445 void
446 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const typename KSpace::Cell & aCell )
447 {
448  DGtal::Display3DFactory<Space,KSpace>::draw( board, aCell);
449 }
450 
451 // KhalimskyCell
452 
453 
454 // Object
455 template <typename Space, typename KSpace>
456 template <typename TDigitalTopology, typename TDigitalSet>
457 inline
458 DGtal::DrawableWithBoard3DTo2D *
459 DGtal::Board3DTo2DFactory<Space,KSpace>::defaultStyle( std::string str, const DGtal::Object<TDigitalTopology, TDigitalSet> & anObject )
460 {
461  return DGtal::Display3DFactory<Space,KSpace>::defaultStyle( str, anObject);
462 }
463 
464 template <typename Space, typename KSpace>
465 template <typename TDigitalTopology, typename TDigitalSet>
466 inline
467 void
468 DGtal::Board3DTo2DFactory<Space,KSpace>::drawWithAdjacencies( Board3DTo2D<Space, KSpace> & board, const DGtal::Object<TDigitalTopology, TDigitalSet> & anObject )
469 {
470  DGtal::Display3DFactory<Space,KSpace>::drawWithAdjacencies( board, anObject);
471 }
472 template <typename Space, typename KSpace>
473 template <typename TDigitalTopology, typename TDigitalSet>
474 inline
475 void
476 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::Object<TDigitalTopology, TDigitalSet> & anObject )
477 {
478  DGtal::Display3DFactory<Space,KSpace>::draw( board, anObject);
479 }
480 
481 // Object
482 
483 
484 // PointVector
485 /**
486  * Default DGtal::Board3DTo2DFactory<Space,KSpace>::drawing style object.
487  * @return the dyn. alloc. default style for this object.
488  */
489 template <typename Space, typename KSpace>
490 template< DGtal::Dimension dim, typename TComponent, typename TContainer>
491 inline
492 DGtal::DrawableWithBoard3DTo2D *
493 DGtal::Board3DTo2DFactory<Space,KSpace>::defaultStyle( std::string str, const DGtal::PointVector<dim, TComponent, TContainer> & aPoint )
494 {
495  return DGtal::Display3DFactory<Space,KSpace>::defaultStyle( str, aPoint);
496 }
497 
498 template <typename Space, typename KSpace>
499 template< DGtal::Dimension dim, typename TComponent, typename TContainer>
500 inline
501 void
502 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsGrid( Board3DTo2D<Space, KSpace> & board, const DGtal::PointVector<dim, TComponent, TContainer> & aPoint )
503 {
504  DGtal::Display3DFactory<Space,KSpace>::drawAsGrid( board, aPoint);
505 }
506 
507 template <typename Space, typename KSpace>
508 template< DGtal::Dimension dim, typename TComponent, typename TContainer>
509 inline
510 void
511 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsPaving( Board3DTo2D<Space, KSpace> & board, const DGtal::PointVector<dim, TComponent, TContainer> & aPoint )
512 {
513  DGtal::Display3DFactory<Space,KSpace>::drawAsPaving( board, aPoint);
514 }
515 
516 template <typename Space, typename KSpace>
517 template< DGtal::Dimension dim, typename TComponent, typename TContainer>
518 inline
519 void
520 DGtal::Board3DTo2DFactory<Space,KSpace>::drawAsPavingWired( Board3DTo2D<Space, KSpace> & board, const DGtal::PointVector<dim, TComponent, TContainer> & aPoint )
521 {
522  DGtal::Display3DFactory<Space,KSpace>::drawAsPavingWired( board, aPoint);
523 }
524 
525 template <typename Space, typename KSpace>
526 template< DGtal::Dimension dim, typename TComponent, typename TContainer>
527 inline
528 void
529 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::PointVector<dim, TComponent, TContainer> & aPoint )
530 {
531  DGtal::Display3DFactory<Space,KSpace>::draw( board, aPoint);
532 }
533 
534 template <typename Space, typename KSpace>
535 template< DGtal::Dimension dim, typename TComponent1, typename TComponent2, typename TContainer1, typename TContainer2>
536 inline
537 void
538 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::PointVector<dim, TComponent1, TContainer1> & aPoint, const DGtal::PointVector<dim, TComponent2, TContainer2> & aPoint2 )
539 {
540  DGtal::Display3DFactory<Space,KSpace>::draw( board, aPoint, aPoint2);
541 }
542 
543 // PointVector
544 
545 
546 // SignedKhalimskyCell
547 /**
548  * Default DGtal::Board3DTo2DFactory<Space,KSpace>::drawing style object.
549  * @return the dyn. alloc. default style for this object.
550  */
551 template <typename Space, typename KSpace>
552 inline
553 DGtal::DrawableWithBoard3DTo2D *
554 DGtal::Board3DTo2DFactory<Space,KSpace>::defaultStyle( std::string str, const typename KSpace::SCell & aSCell )
555 {
556  return DGtal::Display3DFactory<Space,KSpace>::defaultStyle( str, aSCell);
557 }
558 
559 template <typename Space, typename KSpace>
560 inline
561 void
562 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const typename KSpace::SCell &aSCell )
563 {
564  DGtal::Display3DFactory<Space,KSpace>::draw( board, aSCell);
565 }
566 
567 // SignedKhalimskyCell
568 
569 // GridCurve
570 template <typename Space, typename KSpace>
571 inline
572 void
573 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::GridCurve<KSpace> & aGrid )
574 {
575  DGtal::Display3DFactory<Space,KSpace>::draw( board, aGrid);
576 }
577 
578 // GridCurve
579 
580 // SCellsRange
581 template <typename Space, typename KSpace>
582 template < typename TIterator, typename TSCell>
583 inline
584 void
585 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( DGtal::Board3DTo2D<Space, KSpace> & board,
586  const DGtal::ConstRangeAdapter<TIterator, DGtal::functors::Identity, TSCell> & aRangeAdapter )
587 {
588  DGtal::Display3DFactory<Space,KSpace>::draw( board, aRangeAdapter);
589 }
590 
591 // SCellsRange
592 
593 // PointsRange
594 template <typename Space, typename KSpace>
595 template <typename TIterator>
596 inline
597 void
598 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board,
599  const DGtal::ConstRangeAdapter<TIterator, functors::SCellToPoint<KSpace>, typename KSpace::Point> & aRangeAdapter )
600 {
601  DGtal::Display3DFactory<Space,KSpace>::draw( board, aRangeAdapter);
602 }
603 
604 // PointsRange
605 
606 // MidPointsRange
607 template <typename Space, typename KSpace>
608 template <typename TIterator>
609 inline
610 void
611 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board,
612  const DGtal::ConstRangeAdapter<TIterator, CanonicSCellEmbedder<KSpace>, typename KSpace::Space::RealPoint> & aRangeAdapter )
613 {
614  DGtal::Display3DFactory<Space,KSpace>::draw( board, aRangeAdapter);
615 }
616 
617 // MidPointsRange
618 
619 // ArrowsRange
620 template <typename Space, typename KSpace>
621 template <typename TIterator>
622 inline
623 void
624 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board,
625  const DGtal::ConstRangeAdapter<TIterator, functors::SCellToArrow<KSpace>, std::pair<typename KSpace::Point, typename KSpace::Vector > > & aRangeAdapter )
626 {
627  DGtal::Display3DFactory<Space,KSpace>::draw( board, aRangeAdapter);
628 }
629 
630 // ArrowsRange
631 
632 // InnerPointsRange
633 template <typename Space, typename KSpace>
634 template <typename TIterator>
635 inline
636 void
637 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board,
638  const DGtal::ConstRangeAdapter<TIterator, functors::SCellToInnerPoint<KSpace>, typename KSpace::Point> & aRangeAdapter )
639 {
640  DGtal::Display3DFactory<Space,KSpace>::draw( board, aRangeAdapter);
641 }
642 
643 // InnerPointsRange
644 
645 // OuterPointsRange
646 template< typename Space, typename KSpace>
647 template <typename TIterator>
648 inline
649 void
650 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board,
651  const DGtal::ConstRangeAdapter<TIterator, functors::SCellToOuterPoint<KSpace>, typename KSpace::Point> & aRangeAdapter )
652 {
653  DGtal::Display3DFactory<Space,KSpace>::draw( board, aRangeAdapter);
654 }
655 
656 // OuterPointsRange
657 
658 // IncidentPointsRange
659 template< typename Space, typename KSpace>
660 template <typename TIterator>
661 inline
662 void
663 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board,
664  const DGtal::ConstRangeAdapter<TIterator, functors::SCellToIncidentPoints<KSpace>,std::pair<typename KSpace::Point, typename KSpace::Point > > & aRangeAdapter )
665 {
666  DGtal::Display3DFactory<Space,KSpace>::draw( board, aRangeAdapter);
667 }
668 
669 // IncidentPointsRange
670 
671 
672 template< typename Space, typename KSpace>
673 inline
674 void
675 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::SetMode3D & aMode)
676 {
677  DGtal::Display3DFactory<Space,KSpace>::draw( board, aMode);
678 }
679 
680 
681 template < typename Space, typename KSpace>
682 inline
683 void
684 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::CustomStyle3D & aStyle)
685 {
686  DGtal::Display3DFactory<Space,KSpace>::draw( board, aStyle);
687 }
688 
689 template < typename Space, typename KSpace>
690 inline
691 void
692 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::CustomColors3D & aColor)
693 {
694  DGtal::Display3DFactory<Space,KSpace>::draw( board, aColor);
695 }
696 
697 template < typename Space, typename KSpace>
698 inline
699 void
700 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::ClippingPlane & aClipping)
701 {
702  DGtal::Display3DFactory<Space,KSpace>::draw( board, aClipping);
703 }
704 
705 
706 template < typename Space, typename KSpace>
707 inline
708 void
709 DGtal::Board3DTo2DFactory<Space,KSpace>::draw( Board3DTo2D<Space, KSpace> & board, const DGtal::TransformedPrism & aTransformedPrism)
710 {
711  DGtal::Display3DFactory<Space,KSpace>::draw( board, aTransformedPrism);
712 }
713 
714 
715 // end heritage
716 //----------------------------------------------------------------------------------------------