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>
 
  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)
 
TKSpace KSpace
KSpace type.
 
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)
 
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)