DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Display3DFactory.h
1 
17 #pragma once
18 
31 #if defined(Display3DFactory_RECURSES)
32 #error Recursive header files inclusion detected in Display3DFactory.h
33 #else // defined(Display3DFactory_RECURSES)
34 
35 #define Display3DFactory_RECURSES
36 
37 #if !defined Display3DFactory_h
38 
39 #define Display3DFactory_h
40 
42 // Inclusions
43 
44 
45 #include "DGtal/base/Common.h"
46 
47 #include "DGtal/io/DrawWithDisplay3DModifier.h"
48 #include "DGtal/io/Display3D.h"
49 #include "DGtal/geometry/curves/ArithmeticalDSS3d.h"
50 #include "DGtal/kernel/sets/DigitalSetBySTLSet.h"
51 #include "DGtal/kernel/sets/DigitalSetBySTLVector.h"
52 #include "DGtal/kernel/domains/HyperRectDomain.h"
53 #include "DGtal/topology/KhalimskySpaceND.h"
54 #include "DGtal/topology/Object.h"
55 #include "DGtal/kernel/PointVector.h"
56 #include "DGtal/geometry/curves/GridCurve.h"
57 #include "DGtal/shapes/fromPoints/MeshFromPoints.h"
58 #include "DGtal/geometry/tools/SphericalAccumulator.h"
59 #include "DGtal/io/colormaps/HueShadeColorMap.h"
60 #include "DGtal/io/colormaps/CColorMap.h"
61 
62 
63 
65 
66 namespace DGtal
67 {
69  // struct Display3DFactory
75  {
76 
77  // SphericalAccumulator
89  template <typename TVector>
90  static void draw( Display3D & display, const DGtal::SphericalAccumulator<TVector> & accumulator,
93  const double radius=1.0);
94  // SphericalAccumulator
95 
96  // MeshFromPoints
97  template <typename TPoint>
98  static void drawAsFaces( Display3D & display, const DGtal::MeshFromPoints<TPoint> & );
99 
100  template <typename TPoint>
101  static void draw( Display3D & display, const DGtal::MeshFromPoints<TPoint> & );
102  // MeshFromPoints
103 
104 
105 
106  // ArithmeticalDSS3d
111  template <typename TIterator, typename TInteger, int connectivity>
113 
114  template <typename TIterator, typename TInteger, int connectivity>
116 
117  template <typename TIterator, typename TInteger, int connectivity>
119 
120  template <typename TIterator, typename TInteger, int connectivity>
122  // ArithmeticalDSS3d
123 
124 
125  // DigitalSetBySTLSet
130  template<typename Domain>
132 
133  template<typename Domain>
134  static void drawAsPavingTransparent( Display3D & display, const DGtal::DigitalSetBySTLSet<Domain> & );
135 
136  template<typename Domain>
137  static void drawAsPaving( Display3D & display, const DGtal::DigitalSetBySTLSet<Domain> & );
138 
139  template<typename Domain>
140  static void drawAsGrid( Display3D & display, const DGtal::DigitalSetBySTLSet<Domain> & );
141 
142  template<typename Domain>
143  static void draw( Display3D & display, const DGtal::DigitalSetBySTLSet<Domain> & );
144  // DigitalSetBySTLSet
145 
146 
147  // DigitalSetBySTLVector
152  template<typename Domain>
154 
155  template<typename Domain>
157 
158  template<typename Domain>
159  static void drawAsPaving( Display3D & display, const DGtal::DigitalSetBySTLVector<Domain> & );
160 
161  template<typename Domain>
162  static void drawAsGrid( Display3D & display, const DGtal::DigitalSetBySTLVector<Domain> & );
163 
164  template<typename Domain>
165  static void draw( Display3D & display, const DGtal::DigitalSetBySTLVector<Domain> & );
166  // DigitalSetBySTLVector
167 
168 
169  // HyperRectDomain
174  template<typename TSpace>
176 
177  template<typename TSpace>
178  static void drawAsBoundingBox( Display3D & display, const DGtal::HyperRectDomain<TSpace> & );
179 
180  template<typename TSpace>
181  static void drawAsGrid( Display3D & display, const DGtal::HyperRectDomain<TSpace> & );
182 
183  template<typename TSpace>
184  static void drawAsPavingPoints( Display3D & display, const DGtal::HyperRectDomain<TSpace> & );
185 
186  template<typename TSpace>
187  static void drawAsPaving( Display3D & display, const DGtal::HyperRectDomain<TSpace> & );
188 
189  template<typename TSpace>
190  static void draw( Display3D & display, const DGtal::HyperRectDomain<TSpace> & );
191  // HyperRectDomain
192 
193 
194  // KhalimskyCell
199  template < Dimension dim, typename TInteger >
201 
202  template < Dimension dim, typename TInteger >
203  static void draw( Display3D & display, const DGtal::KhalimskyCell<dim, TInteger> & );
204  // KhalimskyCell
205 
206 
207  // Object
208  template <typename TDigitalTopology, typename TDigitalSet>
210 
211  template <typename TDigitalTopology, typename TDigitalSet>
213 
214  template <typename TDigitalTopology, typename TDigitalSet>
215  static void draw( Display3D & display, const DGtal::Object<TDigitalTopology, TDigitalSet> & );
216  // Object
217 
218 
219  // PointVector
224  template<Dimension dim, typename TComponent>
226 
227  template<Dimension dim, typename TComponent>
228  static void drawAsGrid( Display3D & display, const DGtal::PointVector<dim,TComponent> & );
229 
230  template<Dimension dim, typename TComponent>
231  static void drawAsPaving( Display3D & display, const DGtal::PointVector<dim,TComponent> & );
232 
233  template<Dimension dim, typename TComponent>
234  static void drawAsPavingWired( Display3D & display, const DGtal::PointVector<dim,TComponent> & );
235 
236  template<Dimension dim, typename TComponent>
237  static void draw( Display3D & display, const DGtal::PointVector<dim,TComponent> & );
238 
239  template<Dimension dim, typename TComponent>
240  static void draw( Display3D & display, const DGtal::PointVector<dim,TComponent> & , const DGtal::PointVector<dim,TComponent> & );
241  // PointVector
242 
243 
244  // SignedKhalimskyCell
249  template< Dimension dim, typename TInteger >
251 
252  template< Dimension dim, typename TInteger >
253  static void draw( Display3D & display, const DGtal::SignedKhalimskyCell<dim, TInteger> & );
254  // SignedKhalimskyCell
255 
256  // GridCurve
257  template< typename TKSpace >
258  static void draw( Display3D & display, const DGtal::GridCurve<TKSpace> & );
259  // GridCurve
260 
261  // SCellsRange
262  template < typename TIterator, typename TSCell >
263  static void draw( DGtal::Display3D & display,
265  // SCellsRange
266 
267  // PointsRange
268  template <typename TIterator, typename TKSpace>
269  static void draw( Display3D & display,
270  const DGtal::ConstRangeAdapter<TIterator, SCellToPoint<TKSpace>, typename TKSpace::Point> & );
271  // PointsRange
272 
273  // MidPointsRange
274  template <typename TIterator, typename TKSpace>
275  static void draw( Display3D & display,
277  typename TKSpace::Space::RealPoint> & );
278  // MidPointsRange
279 
280  // ArrowsRange
281  template <typename TIterator, typename TKSpace>
282  static void draw( Display3D & display,
284  std::pair<typename TKSpace::Point, typename TKSpace::Vector > > & );
285  // ArrowsRange
286 
287  // InnerPointsRange
288  template <typename TIterator, typename TKSpace>
289  static void draw( Display3D & display,
290  const DGtal::ConstRangeAdapter<TIterator, SCellToInnerPoint<TKSpace>, typename TKSpace::Point> & );
291  // InnerPointsRange
292 
293  // OuterPointsRange
294  template <typename TIterator, typename TKSpace>
295  static void draw( Display3D & display,
296  const DGtal::ConstRangeAdapter<TIterator, SCellToOuterPoint<TKSpace>, typename TKSpace::Point> & );
297  // OuterPointsRange
298 
299  // IncidentPointsRange
300  template <typename TIterator, typename TKSpace>
301  static void draw( Display3D & display,
303  std::pair<typename TKSpace::Point, typename TKSpace::Point > > & );
304  // IncidentPointsRange
305 
306  //
307 
308 
309  static void draw( Display3D & display, const DGtal::SetMode3D & );
310  static void draw( Display3D & display, const DGtal::CustomStyle3D & );
311  static void draw( Display3D & display, const DGtal::CustomColors3D & );
312 
313  static void draw( Display3D & display, const DGtal::ClippingPlane & );
314 
315  static void draw( Display3D & display, const DGtal::CameraPosition & );
316  static void draw( Display3D & display, const DGtal::CameraDirection & );
317  static void draw( Display3D & display, const DGtal::CameraUpVector & );
318  static void draw( Display3D & display, const DGtal::CameraZNearFar & );
319 
320  static void draw( Display3D & display, const DGtal::TransformedKSSurfel & aTransformedKSSurfel);
321 
322  }; // end of struct Display3DFactory
323 
324 } // namespace DGtal
325 
326 
328 // Includes inline functions/methods
329 #include "DGtal/io/Display3DFactory.ih"
330 
331 
332 // //
334 
335 #endif // !defined Display3DFactory_h
336 
337 #undef Display3DFactory_RECURSES
338 #endif // else defined(Display3DFactory_RECURSES)