31#if defined(Display3DFactory_RECURSES)
32#error Recursive header files inclusion detected in Display3DFactory.h
35#define Display3DFactory_RECURSES
37#if !defined Display3DFactory_h
39#define Display3DFactory_h
44#include "DGtal/helpers/StdDefs.h"
45#include "DGtal/base/Common.h"
47#include "DGtal/io/DrawWithDisplay3DModifier.h"
48#include "DGtal/geometry/curves/StandardDSS6Computer.h"
49#include "DGtal/geometry/curves/Naive3DDSSComputer.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/Mesh.h"
58#include "DGtal/geometry/tools/SphericalAccumulator.h"
59#include "DGtal/io/colormaps/GradientColorMap.h"
60#include "DGtal/io/colormaps/HueShadeColorMap.h"
61#include "DGtal/io/colormaps/CColorMap.h"
62#include "DGtal/images/ImageContainerBySTLVector.h"
63#include "DGtal/images/ImageContainerBySTLMap.h"
64#include "DGtal/images/ConstImageAdapter.h"
65#include "DGtal/images/ImageAdapter.h"
66#include "DGtal/helpers/StdDefs.h"
67#include "DGtal/topology/CanonicSCellEmbedder.h"
68#include "DGtal/dec/VectorField.h"
69#include "DGtal/dec/KForm.h"
70#include "DGtal/dec/DiscreteExteriorCalculus.h"
72#include "DGtal/kernel/sets/DigitalSetByAssociativeContainer.h"
85 template <
typename TSpace=Z3i::Space,
typename TKSpace=Z3i::KSpace>
102 template <Dimension dimEmbedded, Dimension dimAmbient,
typename TLinearAlgebraBackend,
typename TInteger>
109 template <
typename Calculus, DGtal::Order order, DGtal::Duality duality>
114 template <
typename Calculus, DGtal::Order order, DGtal::Duality duality,
typename ColorMap>
121 template <
typename Calculus, DGtal::Duality duality>
139 template <
typename TVector>
142 const double radius=1.0);
151 template <
typename TPo
int>
159 template <
typename TPo
int>
171 template <
typename TIterator,
typename TInteger,
int connectivity>
179 template <
typename TIterator,
typename TInteger,
int connectivity>
187 template <
typename TIterator,
typename TInteger,
int connectivity>
195 template <
typename TIterator,
typename TInteger,
int connectivity>
207 template <
typename TIterator,
typename TInteger,
int connectivity>
215 template <
typename TIterator,
typename TInteger,
int connectivity>
223 template <
typename TIterator,
typename TInteger,
int connectivity>
231 template <
typename TIterator,
typename TInteger,
int connectivity>
243 template<
typename Domain,
typename Container>
251 template<
typename Domain,
typename Container>
259 template<
typename Domain,
typename Container>
267 template<
typename Domain,
typename Container>
275 template<
typename Domain,
typename Container>
287 template<
typename Domain,
typename Compare>
295 template<
typename Domain,
typename Compare>
303 template<
typename Domain,
typename Compare>
311 template<
typename Domain,
typename Compare>
319 template<
typename Domain,
typename Compare>
331 template<
typename Domain>
339 template<
typename Domain>
347 template<
typename Domain>
355 template<
typename Domain>
363 template<
typename Domain>
375 template <
typename SpaceDom>
383 template <
typename SpaceDom>
391 template <
typename SpaceDom>
399 template <
typename SpaceDom>
407 template <
typename SpaceDom>
416 template <
typename SpaceDom>
455 const bool enableDoubleFace =
false);
488 const bool enableDoubleFace =
false);
498 template <
typename TDigitalTopology,
typename TDigitalSet>
506 template <
typename TDigitalTopology,
typename TDigitalSet>
514 template <
typename TDigitalTopology,
typename TDigitalSet>
526 template<Dimension dim,
typename TComponent,
typename TContainer>
534 template<Dimension dim,
typename TComponent,
typename TContainer>
542 template<Dimension dim,
typename TComponent,
typename TContainer>
550 template<Dimension dim,
typename TComponent,
typename TContainer>
558 template<Dimension dim,
typename TComponent,
typename TContainer>
566 template<Dimension dim,
typename TComponent1,
typename TComponent2,
typename TContainer1,
typename TContainer2>
585 template <
typename TIterator,
typename TSCell>
596 template <
typename TIterator>
602 template <
typename TIterator>
610 typename TKSpace::Space::RealPoint> & anObject );
619 template <
typename TIterator>
622 std::pair<typename TKSpace::Point, typename TKSpace::Vector > > & anObject );
631 template <
typename TIterator>
642 template <
typename TIterator>
653 template <
typename TIterator>
656 std::pair<typename KSpace::Point, typename KSpace::Point > > & anObject );
728#include "DGtal/io/Display3DFactory.ih"
735#undef Display3DFactory_RECURSES
Structure representing an RGB triple with alpha component.
Aim: model of CConstBidirectionalRange that adapts any range of elements bounded by two iterators [it...
Aim: A wrapper class around a STL associative container for storing sets of digital points within som...
Aim: A container class for storing sets of digital points within some given domain.
Aim: Realizes the concept CDigitalSet by using the STL container std::vector.
Aim: DiscreteExteriorCalculus represents a calculus in the dec package. This is the main structure in...
Aim: This semi abstract class defines the stream mechanism to display 3d primitive (like BallVector,...
Aim: describes, in a cellular space of dimension n, a closed or open sequence of signed d-cells (or d...
Aim: Parallelepidec region of a digital space, model of a 'CDomain'.
Aim: This class is defined to represent a surface mesh through a set of vertices and faces....
Aim: Dynamic recognition of a 3d-digital straight segment (DSS)
Aim: An object (or digital object) represents a set in some digital space associated with a digital t...
Aim: Implements basic operations that will be used in Point and Vector classes.
Aim: implements an accumulator (as histograms for 1D scalars) adapted to spherical point samples.
Aim: Dynamic recognition of a 3d-digital straight segment (DSS)
Aim: VectorField represents a discrete vector field in the dec package. Vector field values are attac...
Aim: transforms a signed cell into an arrow, ie. a pair point-vector.
Aim: transforms a signed cell c into a pair of points corresponding to the signed cells of greater di...
Aim: transforms a signed cell c into a point corresponding to the signed cell of greater dimension th...
Aim: transforms a signed cell c into a point corresponding to the signed cell of greater dimension th...
Aim: transforms a scell into a point.
DGtal is the top-level namespace which contains all DGtal functions and types.
Aim: A trivial embedder for signed cell, which corresponds to the canonic injection of cell centroids...
Class for adding a Clipping plane through the Viewer3D stream. Realizes the concept CDrawableWithView...
Modifier class in a Display3D stream. Useful to choose your own style for a given class....
Factory for GPL Display3D:
BOOST_STATIC_CONSTANT(unsigned int, POINT_AS_BALL_RADIUS=5)
The ball radius (the actual radius being 1/POINT_AS_BALL_RADIUS )when used to display a 3D point.
static void draw(Display &display, const DGtal::ConstRangeAdapter< TIterator, DGtal::functors::SCellToPoint< KSpace >, typename TKSpace::Point > &anObject)
draw
static DGtal::DrawableWithDisplay3D * defaultStyle(std::string str, const DGtal::Object< TDigitalTopology, TDigitalSet > &anObject)
static void draw(Display &display, const DGtal::TransformedPrism &aTransformedPrism)
static void drawAsPaving(Display &display, const DGtal::DigitalSetByAssociativeContainer< Domain, Container > &anObject)
drawAsPaving
static DGtal::DrawableWithDisplay3D * defaultStyle(std::string str, const DGtal::Naive3DDSSComputer< TIterator, TInteger, connectivity > &anObject)
defaultStyle Default drawing style object.
static DGtal::DrawableWithDisplay3D * defaultStyle(std::string str, const DGtal::PointVector< dim, TComponent, TContainer > &anObject)
static void draw(Display &display, const DGtal::HyperRectDomain< SpaceDom > &anObject)
draw
static void drawWithAdjacencies(Display &display, const DGtal::Object< TDigitalTopology, TDigitalSet > &anObject)
drawWithAdjacencies
static void drawAsPavingTransparent(Display &display, const DGtal::DigitalSetByAssociativeContainer< Domain, Container > &anObject)
drawAsPavingTransparent
static void draw(Display &display, const DGtal::ClippingPlane &anObject)
draw
static void drawAsFaces(Display &display, const DGtal::Mesh< TPoint > &aMesh)
drawAsFaces
static void drawAsGrid(Display &display, const DGtal::PointVector< dim, TComponent, TContainer > &anObject)
drawAsGrid
static void draw(Display &display, const DGtal::ConstRangeAdapter< TIterator, DGtal::functors::SCellToArrow< KSpace >, std::pair< typename TKSpace::Point, typename TKSpace::Vector > > &anObject)
draw
static void drawAsBoundingBox(Display &display, const DGtal::HyperRectDomain< SpaceDom > &anObject)
drawAsBoundingBox
static void draw(Display &display, const DGtal::Naive3DDSSComputer< TIterator, TInteger, connectivity > &anObject)
draw
Display3D< Space, KSpace > Display
static void drawAsBalls(Display &display, const DGtal::StandardDSS6Computer< TIterator, TInteger, connectivity > &anObject)
drawAsBalls
static void draw(Display &display, const DGtal::ConstRangeAdapter< TIterator, DGtal::functors::Identity, TSCell > &anObject)
draw
static void drawAsGrid(Display &display, const DGtal::DigitalSetBySTLVector< Domain > &anObject)
drawAsGrid
static DGtal::DrawableWithDisplay3D * defaultStyle(std::string str, const DGtal::DigitalSetBySTLVector< Domain > &anObject)
Default drawing style object.
Display::RealVector RealVector
static DGtal::DrawableWithDisplay3D * defaultStyle(std::string str, const DGtal::HyperRectDomain< SpaceDom > &anObject)
static void drawWithColorMap(Display3D< Space, KSpace > &display, const DGtal::KForm< Calculus, order, duality > &kform, const ColorMap &colormap)
static void drawAsPaving(Display &display, const DGtal::PointVector< dim, TComponent, TContainer > &anObject)
drawAsPaving
static void draw(Display &display, const DGtal::PointVector< dim, TComponent, TContainer > &anObject)
draw
static void draw(Display &display, const DGtal::ConstRangeAdapter< TIterator, DGtal::functors::SCellToIncidentPoints< KSpace >, std::pair< typename KSpace::Point, typename KSpace::Point > > &anObject)
draw
static void drawAsGrid(Display &display, const DGtal::HyperRectDomain< SpaceDom > &anObject)
drawAsGrid
static void draw(Display &display, const typename KSpace::SCell &anObject)
draw
static void drawAsPaving(Display &display, const DGtal::DigitalSetBySTLVector< Domain > &anObject)
drawAsPaving
static void draw(Display &display, const DGtal::CustomColors3D &anObject)
static DGtal::DrawableWithDisplay3D * defaultStyle(std::string str, const typename KSpace::Cell &anObject)
static void draw(Display &display, const DGtal::StandardDSS6Computer< TIterator, TInteger, connectivity > &anObject)
draw
static void draw(Display &display, const DGtal::Mesh< TPoint > &aMesh)
draw
static void drawAsPavingWired(Display &display, const DGtal::PointVector< dim, TComponent, TContainer > &anObject)
drawAsPavingWired
static void drawAsBalls(Display &display, const DGtal::Naive3DDSSComputer< TIterator, TInteger, connectivity > &anObject)
drawAsBalls
static void draw(Display3D< Space, KSpace > &display, const DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger > &calculus)
static void draw(Display &display, const DGtal::ConstRangeAdapter< TIterator, CanonicSCellEmbedder< KSpace >, typename TKSpace::Space::RealPoint > &anObject)
draw
static void drawAsPaving(Display &display, const DGtal::DigitalSetBySTLSet< Domain, Compare > &anObject)
drawAsPaving
static void drawAsPaving(Display &display, const DGtal::HyperRectDomain< SpaceDom > &anObject)
drawAsPaving
static void draw(Display &display, const DGtal::DigitalSetBySTLVector< Domain > &anObject)
draw
static void draw(Display &display, const DGtal::GridCurve< KSpace > &anObject)
draw
static DGtal::DrawableWithDisplay3D * defaultStyle(std::string str, const typename KSpace::SCell &anObject)
static void drawOrientedSurfelWithNormal(Display &display, const typename KSpace::SCell &aSignedCell, const RealVector &aNormal, const bool enableDoubleFace=false)
static void drawAsGrid(Display &display, const DGtal::DigitalSetBySTLSet< Domain, Compare > &anObject)
drawAsGrid
static void drawAsBoundingBox(Display &display, const DGtal::StandardDSS6Computer< TIterator, TInteger, connectivity > &anObject)
drawAsBoundingBox
static void draw(Display &display, const DGtal::SetMode3D &anObject)
static DGtal::DrawableWithDisplay3D * defaultStyle(std::string str, const DGtal::DigitalSetBySTLSet< Domain, Compare > &anObject)
defaultStyle
static void draw(Display &display, const DGtal::ConstRangeAdapter< TIterator, DGtal::functors::SCellToOuterPoint< KSpace >, typename TKSpace::Point > &anObject)
draw
static void drawAsPavingBalls(Display &display, const DGtal::HyperRectDomain< SpaceDom > &anObject)
drawAsPavingBalls
static void draw(Display &display, const DGtal::PointVector< dim, TComponent1, TContainer1 > &, const DGtal::PointVector< dim, TComponent2, TContainer2 > &anObject)
draw
static void draw(Display3D< Space, KSpace > &display, const DGtal::KForm< Calculus, order, duality > &kform, double cmap_min=0, double cmap_max=0)
static void draw(Display &display, const DGtal::DigitalSetByAssociativeContainer< Domain, Container > &anObject)
draw
static void draw(Display &display, const DGtal::ConstRangeAdapter< TIterator, DGtal::functors::SCellToInnerPoint< KSpace >, typename TKSpace::Point > &anObject)
draw
Display3DFactory< Space, KSpace > Self
static void draw(Display &display, const DGtal::DigitalSetBySTLSet< Domain, Compare > &anObject)
draw
static void drawUnorientedSurfelWithNormal(Display &display, const typename KSpace::Cell &anObject, const RealVector &aNormal, const bool enableDoubleFace=false)
static void draw(Display &display, const DGtal::CustomStyle3D &anObject)
static void draw(Display &display, const DGtal::SphericalAccumulator< TVector > &accumulator, const DGtal::Z3i::RealVector &shift=DGtal::Z3i::RealVector(0, 0, 0), const double radius=1.0)
static void drawAsGrid(Display &display, const DGtal::DigitalSetByAssociativeContainer< Domain, Container > &anObject)
drawAsGrid
static void draw(Display &display, const typename KSpace::Cell &anObject)
draw
static void draw(Display3D< Space, KSpace > &display, const DGtal::VectorField< Calculus, duality > &vector_field, const double &scale=0.5, const double &epsilon=1e-5, const DGtal::Color color=DGtal::Color::Black)
static void drawAsPavingTransparent(Display &display, const DGtal::DigitalSetBySTLSet< Domain, Compare > &anObject)
drawAsPavingTransparent
static DGtal::DrawableWithDisplay3D * defaultStyle(std::string str, const DGtal::StandardDSS6Computer< TIterator, TInteger, connectivity > &anObject)
Display::RealPoint RealPoint
static void drawAsPavingTransparent(Display &display, const DGtal::DigitalSetBySTLVector< Domain > &anObject)
drawAsPavingTransparent
static void draw(Display &display, const DGtal::Object< TDigitalTopology, TDigitalSet > &anObject)
draw
BOOST_STATIC_CONSTANT(unsigned int, POINT_AS_BALL_RES=5)
The ball resolution when used to display a point.
static DGtal::DrawableWithDisplay3D * defaultStyle(std::string str, const DGtal::DigitalSetByAssociativeContainer< Domain, Container > &anObject)
defaultStyle
static void drawAsBoundingBox(Display &display, const DGtal::Naive3DDSSComputer< TIterator, TInteger, connectivity > &anObject)
drawAsBoundingBox
static void draw(Display &display, const DGtal::SetSelectCallback3D &aFct)
static void draw(Display &display, const DGtal::SetName3D &aName3d)
Modifier class in a Display3D stream. Useful to choose your own mode for a given class....
Represents a signed cell in a cellular grid space by its Khalimsky coordinates and a boolean value.
void display(ostream &out, const AContainer &C)