31#if defined(Viewer3DFactory_RECURSES)
32#error Recursive header files inclusion detected in Viewer3DFactory.h
35#define Viewer3DFactory_RECURSES
37#if !defined Viewer3DFactory_h
39#define Viewer3DFactory_h
44#include "DGtal/helpers/StdDefs.h"
45#include "DGtal/base/Common.h"
47#include "DGtal/io/Display3DFactory.h"
48#include "DGtal/io/viewers/DrawWithViewer3DModifier.h"
49#include "DGtal/geometry/curves/StandardDSS6Computer.h"
50#include "DGtal/geometry/curves/Naive3DDSSComputer.h"
51#include "DGtal/kernel/sets/DigitalSetBySTLSet.h"
52#include "DGtal/kernel/sets/DigitalSetBySTLVector.h"
53#include "DGtal/kernel/sets/DigitalSetByAssociativeContainer.h"
54#include "DGtal/kernel/domains/HyperRectDomain.h"
55#include "DGtal/topology/KhalimskySpaceND.h"
56#include "DGtal/topology/Object.h"
57#include "DGtal/kernel/PointVector.h"
58#include "DGtal/geometry/curves/GridCurve.h"
59#include "DGtal/shapes/Mesh.h"
60#include "DGtal/geometry/tools/SphericalAccumulator.h"
61#include "DGtal/io/colormaps/HueShadeColorMap.h"
62#include "DGtal/io/colormaps/CColorMap.h"
63#include "DGtal/images/ImageContainerBySTLVector.h"
64#include "DGtal/images/ImageContainerBySTLMap.h"
65#include "DGtal/images/ConstImageAdapter.h"
66#include "DGtal/images/ImageAdapter.h"
67#include "DGtal/helpers/StdDefs.h"
78 template <
typename TSpace = Z3i::Space,
typename TKSpace = Z3i::KSpace>
133 template <
typename TVector>
135 const DGtal::Z3i::RealVector & shift = Z3i::RealVector(0,0,0),
136 const double radius=1.0);
145 template <
typename TPo
int>
153 template <
typename TPo
int>
166 template <
typename TIterator,
typename TInteger,
int connectivity>
174 template <
typename TIterator,
typename TInteger,
int connectivity>
182 template <
typename TIterator,
typename TInteger,
int connectivity>
190 template <
typename TIterator,
typename TInteger,
int connectivity>
202 template <
typename TIterator,
typename TInteger,
int connectivity>
210 template <
typename TIterator,
typename TInteger,
int connectivity>
218 template <
typename TIterator,
typename TInteger,
int connectivity>
226 template <
typename TIterator,
typename TInteger,
int connectivity>
238 template<
typename Domain,
typename Compare>
246 template<
typename Domain,
typename Compare>
254 template<
typename Domain,
typename Compare>
262 template<
typename Domain,
typename Compare>
270 template<
typename Domain,
typename Compare>
281 template<
typename Domain,
typename Container>
289 template<
typename Domain,
typename Container>
297 template<
typename Domain,
typename Container>
305 template<
typename Domain,
typename Container>
313 template<
typename Domain,
typename Container>
325 template<
typename Domain>
333 template<
typename Domain>
341 template<
typename Domain>
349 template<
typename Domain>
357 template<
typename Domain>
369 template <
typename SpaceDom>
377 template <
typename SpaceDom>
385 template <
typename SpaceDom>
393 template <
typename SpaceDom>
401 template <
typename SpaceDom>
409 template <
typename SpaceDom>
439 template <
typename TDigitalTopology,
typename TDigitalSet>
447 template <
typename TDigitalTopology,
typename TDigitalSet>
455 template <
typename TDigitalTopology,
typename TDigitalSet>
467 template<Dimension dim,
typename TComponent,
typename TContainer>
475 template<Dimension dim,
typename TComponent,
typename TContainer>
483 template<Dimension dim,
typename TComponent,
typename TContainer>
491 template<Dimension dim,
typename TComponent,
typename TContainer>
499 template<Dimension dim,
typename TComponent,
typename TContainer>
508 template<Dimension dim,
typename TComponent1,
typename TComponent2,
typename TContainer1,
typename TContainer2>
545 template <
typename TIterator,
typename TSCell>
556 template <
typename TIterator>
567 template <
typename TIterator>
578 template <
typename TIterator>
589 template <
typename TIterator>
600 template <
typename TIterator>
611 template <
typename TIterator>
623 template <
typename TValue>
633 template <
typename TValue>
643 template <
typename TImageContainer,
typename TFunctorD,
typename TNewValue,
typename TFunctorValue>
653 template <
typename TImageContainer,
typename TFunctorD,
typename TNewValue,
typename TFunctorValue,
typename TFunctorValueVm1>
655 TNewValue, TFunctorValue, TFunctorValueVm1> & anImage );
665 template <
typename TValue>
676 template <
typename TValue>
686 template <
typename TImageContainer,
typename TFunctorD,
typename TNewValue,
typename TFunctorValue>
688 TNewValue, TFunctorValue> & anImage );
697 template <
typename TImageContainer,
typename TFunctorD,
typename TNewValue,
typename TFunctorValue,
typename TFunctorValueVm1>
699 TNewValue, TFunctorValue, TFunctorValueVm1> & anImage );
710 template <
typename TImageType2D,
typename TFunctor>
722 template <
typename TImageType3D,
typename TFunctor>
766 template<
typename TImageType,
typename TFunctor>
777 template<
typename TImageType,
typename TFunctor>
828 template<
typename TImageType,
typename TFunctor>
868#include "DGtal/io/viewers/Viewer3DFactory.ih"
876#undef Viewer3DFactory_RECURSES
Aim: implements a const image adapter with a given domain (i.e. a subdomain) and 2 functors : g for d...
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: 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: implements an image adapter with a given domain (i.e. a subdomain) and 3 functors : g for domain...
SignedKhalimskyCell< dim, Integer > SCell
KhalimskyCell< dim, Integer > Cell
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)
TextureMode
the modes of representation of an image
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.
class to insert a custom 2D textured image by using a conversion functor and allows to change the def...
class to insert a custom 3D textured image by using a conversion functor and allows to change the def...
CameraDirection class to set camera direction.
CameraPosition class to set camera position.
CameraUpVector class to set camera up-vector.
CameraZNearFar class to set near and far distance.
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:
Modifier class in a Display3D stream. Useful to choose your own mode for a given class....
class to modify the data of an given image and also the possibility to translate it (optional).
class to modify the position and orientation of an 2D domain.
class to modify the 3d embedding of the image (useful to display not only 2D slice images)....
class to modify the data of an given image and also the possibility to translate it (optional).
class to modify the position and orientation of an textured 2D image.
class to modify the position and orientation of an textured 2D image.
Factory for GPL Viewer3D:
static void draw(Viewer3D< Space, KSpace > &viewer, const ImageContainerBySTLVector< DGtal::Z3i::Domain, TValue > &anImage)
static void drawAsGrid(Viewer3D< Space, KSpace > &viewer, const DGtal::DigitalSetByAssociativeContainer< Domain, Container > &aSet)
static void draw(Viewer3D< Space, KSpace > &viewer, const typename KSpace::SCell &aSCell)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::ConstRangeAdapter< TIterator, functors::SCellToArrow< TKSpace >, std::pair< typename TKSpace::Point, typename TKSpace::Vector > > &aRangeAdapter)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::DigitalSetBySTLSet< Domain, Compare > &aSet)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::SetName3D &aName3d)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::ConstRangeAdapter< TIterator, functors::SCellToInnerPoint< TKSpace >, typename TKSpace::Point > &aRangeAdapter)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::HyperRectDomain< SpaceDom > &aDomain)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::DigitalSetByAssociativeContainer< Domain, Container > &aSet)
static void drawAsPavingTransparent(Viewer3D< Space, KSpace > &viewer, const DGtal::DigitalSetBySTLSet< Domain, Compare > &aSet)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::CustomColors3D &aColor)
static void draw(Viewer3D< Space, KSpace > &viewer, const ImageContainerBySTLVector< DGtal::Z2i::Domain, TValue > &anImage)
static void drawAsPaving(Viewer3D< Space, KSpace > &viewer, const DGtal::DigitalSetByAssociativeContainer< Domain, Container > &aSet)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::Mesh< TPoint > &aMesh)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::PointVector< dim, TComponent, TContainer > &aPoint)
static void drawAsFaces(Viewer3D< Space, KSpace > &viewer, const DGtal::Mesh< TPoint > &aMesh)
static DGtal::DrawableWithViewer3D * defaultStyle(std::string str, const DGtal::Object< TDigitalTopology, TDigitalSet > &anObject)
static DGtal::DrawableWithViewer3D * defaultStyle(std::string str, const DGtal::DigitalSetBySTLVector< Domain > &aSet)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::GridCurve< KSpace > &aGrid)
static void drawAsPaving(Viewer3D< Space, KSpace > &viewer, const DGtal::DigitalSetBySTLSet< Domain, Compare > &aSet)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::CustomStyle3D &aStyle)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::SetSelectCallback3D &aFct)
static void drawAsPaving(Viewer3D< Space, KSpace > &viewer, const DGtal::HyperRectDomain< SpaceDom > &aDomain)
static void drawAsBoundingBox(Viewer3D< Space, KSpace > &viewer, const DGtal::HyperRectDomain< SpaceDom > &aDomain)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::ClippingPlane &aClipping)
static void draw(Viewer3D< Space, KSpace > &board, const DGtal::CameraUpVector &aThing)
static void draw(Viewer3D< Space, KSpace > &viewer, const ImageContainerBySTLMap< DGtal::Z2i::Domain, TValue > &anImage)
static void drawAsBalls(Viewer3D< Space, KSpace > &viewer, const DGtal::StandardDSS6Computer< TIterator, TInteger, connectivity > &arithm)
static void drawAsBalls(Viewer3D< Space, KSpace > &viewer, const DGtal::Naive3DDSSComputer< TIterator, TInteger, connectivity > &arithm)
static void draw(Viewer3D< Space, KSpace > &board, const DGtal::CameraPosition &aThing)
static void draw(DGtal::Viewer3D< Space, KSpace > &viewer, const DGtal::ConstRangeAdapter< TIterator, DGtal::functors::Identity, TSCell > &aRangeAdapter)
static DGtal::DrawableWithViewer3D * defaultStyle(std::string str, const DGtal::StandardDSS6Computer< TIterator, TInteger, connectivity > &arithm)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::PointVector< dim, TComponent1, TContainer1 > &aPoint, const DGtal::PointVector< dim, TComponent2, TContainer2 > &aPoint2)
static DGtal::DrawableWithViewer3D * defaultStyle(std::string str, const DGtal::HyperRectDomain< SpaceDom > &aDomain)
static void draw(Viewer3D< Space, KSpace > &board, const DGtal::CameraZNearFar &aThing)
static DGtal::DrawableWithViewer3D * defaultStyle(std::string str, const typename KSpace::Cell &aCell)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::SphericalAccumulator< TVector > &accumulator, const DGtal::Z3i::RealVector &shift=Z3i::RealVector(0, 0, 0), const double radius=1.0)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::AddTextureImage2DWithFunctor< TImageType, TFunctor, Space, KSpace > &aFunctor)
static void draw(Viewer3D< Space, KSpace > &viewer, const typename KSpace::Cell &aCell)
static void drawAsPaving(Viewer3D< Space, KSpace > &viewer, const DGtal::DigitalSetBySTLVector< Domain > &aSet)
static void draw(Viewer3D< Space, KSpace > &viewer, const ImageAdapter< TImageContainer, DGtal::Z3i::Domain, TFunctorD, TNewValue, TFunctorValue, TFunctorValueVm1 > &anImage)
static void draw(Viewer3D< Space, KSpace > &viewer, const ConstImageAdapter< TImageContainer, DGtal::Z3i::Domain, TFunctorD, TNewValue, TFunctorValue > &anImage)
static void drawAsPavingWired(Viewer3D< Space, KSpace > &viewer, const DGtal::PointVector< dim, TComponent, TContainer > &aPoint)
static DGtal::DrawableWithViewer3D * defaultStyle(std::string str, const DGtal::DigitalSetByAssociativeContainer< Domain, Container > &aSet)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::DigitalSetBySTLVector< Domain > &aSet)
static void drawImage2D(Viewer3D< Space, KSpace > &viewer, const TImageType2D &anImage, const TFunctor &aFunctor, typename Viewer3D< Space, KSpace >::TextureMode aTextureMode)
static DGtal::DrawableWithViewer3D * defaultStyle(std::string str, const typename KSpace::SCell &aSCell)
static void drawAsPaving(Viewer3D< Space, KSpace > &viewer, const DGtal::PointVector< dim, TComponent, TContainer > &aPoint)
static void drawAsPavingBalls(Viewer3D< Space, KSpace > &viewer, const DGtal::HyperRectDomain< SpaceDom > &aDomain)
static void draw(Viewer3D< Space, KSpace > &viewer, const ConstImageAdapter< TImageContainer, DGtal::Z2i::Domain, TFunctorD, TNewValue, TFunctorValue > &anImage)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::ConstRangeAdapter< TIterator, functors::SCellToPoint< TKSpace >, typename TKSpace::Point > &aRangeAdapter)
static void draw(Viewer3D< Space, KSpace > &board, const DGtal::CameraDirection &aThing)
static DGtal::DrawableWithViewer3D * defaultStyle(std::string str, const DGtal::DigitalSetBySTLSet< Domain, Compare > &aSet)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::Update2DDomainPosition< Space, KSpace > &anUpdate)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::UpdateImageData< TImageType, TFunctor > &anUpdate)
static void drawWithAdjacencies(Viewer3D< Space, KSpace > &viewer, const DGtal::Object< TDigitalTopology, TDigitalSet > &anObject)
static void drawAsGrid(Viewer3D< Space, KSpace > &viewer, const DGtal::DigitalSetBySTLSet< Domain, Compare > &aSet)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::ConstRangeAdapter< TIterator, functors::SCellToIncidentPoints< TKSpace >, std::pair< typename TKSpace::Point, typename TKSpace::Point > > &aRangeAdapter)
static void drawAsBoundingBox(Viewer3D< Space, KSpace > &viewer, const DGtal::Naive3DDSSComputer< TIterator, TInteger, connectivity > &arithm)
static void drawAsBoundingBox(Viewer3D< Space, KSpace > &viewer, const DGtal::StandardDSS6Computer< TIterator, TInteger, connectivity > &arithm)
static void drawAsPavingTransparent(Viewer3D< Space, KSpace > &viewer, const DGtal::DigitalSetBySTLVector< Domain > &aSet)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::TransformedPrism &aTransformedPrism)
static void draw(Viewer3D< Space, KSpace > &viewer, const ImageContainerBySTLMap< DGtal::Z3i::Domain, TValue > &anImage)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::Object< TDigitalTopology, TDigitalSet > &anObject)
static DGtal::DrawableWithViewer3D * defaultStyle(std::string str, const DGtal::Naive3DDSSComputer< TIterator, TInteger, connectivity > &arithm)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::AddTextureImage3DWithFunctor< TImageType, TFunctor, Space, KSpace > &aFunctor)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::ConstRangeAdapter< TIterator, functors::SCellToOuterPoint< TKSpace >, typename TKSpace::Point > &aRangeAdapter)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::SetMode3D &aMode)
static void draw(Viewer3D< Space, KSpace > &viewer, const ImageAdapter< TImageContainer, DGtal::Z2i::Domain, TFunctorD, TNewValue, TFunctorValue, TFunctorValueVm1 > &anImage)
static void drawImage3D(Viewer3D< Space, KSpace > &viewer, const TImageType3D &anImage3D, const TFunctor &aFunctor, typename Viewer3D< Space, KSpace >::TextureMode aTextureMode)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::StandardDSS6Computer< TIterator, TInteger, connectivity > &arithm)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::Naive3DDSSComputer< TIterator, TInteger, connectivity > &arithm)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::UpdateImagePosition< Space, KSpace > &anUpdate)
static void drawAsGrid(Viewer3D< Space, KSpace > &viewer, const DGtal::DigitalSetBySTLVector< Domain > &aSet)
TKSpace KSpace
KSpace type.
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::ConstRangeAdapter< TIterator, CanonicSCellEmbedder< TKSpace >, typename TKSpace::Space::RealPoint > &aRangeAdapter)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::Translate2DDomain &anTranslation)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::UpdateLastImagePosition< Space, KSpace > &anUpdate)
static DGtal::DrawableWithViewer3D * defaultStyle(std::string str, const DGtal::PointVector< dim, TComponent, TContainer > &aPoint)
static void drawAsGrid(Viewer3D< Space, KSpace > &viewer, const DGtal::HyperRectDomain< SpaceDom > &aDomain)
static void draw(Viewer3D< Space, KSpace > &viewer, const DGtal::UpdateImage3DEmbedding< Space, KSpace > &anUpdate)
static void drawAsGrid(Viewer3D< Space, KSpace > &viewer, const DGtal::PointVector< dim, TComponent, TContainer > &aPoint)
static void drawAsPavingTransparent(Viewer3D< Space, KSpace > &viewer, const DGtal::DigitalSetByAssociativeContainer< Domain, Container > &aSet)