DGtal  1.5.beta
DGtal::MaximalSegmentSliceEstimation< TSurface > Class Template Reference

Aim: More...

#include <DGtal/geometry/surfaces/estimation/MaximalSegmentSliceEstimation.h>

Inheritance diagram for DGtal::MaximalSegmentSliceEstimation< TSurface >:
[legend]

Public Types

using Surface = TSurface
 
using Tracker = typename Surface::DigitalSurfaceTracker
 
using SurfaceSlice = DigitalSurface2DSlice< Tracker >
 
using Scalar = double
 
using KSpace = typename Surface::KSpace
 
using SCell = typename KSpace::SCell
 
using Cell = typename KSpace::Cell
 
using Point = typename Surface::Point
 
using Vector = Point
 
using Integer = typename Point::Coordinate
 
using Space = typename KSpace::Space
 
using RealPoint = typename Space::RealPoint
 
using RealVector = RealPoint
 
using Surfel = typename Surface::Surfel
 
using Quantity = RealVector
 

Public Member Functions

 MaximalSegmentSliceEstimation ()
 
 MaximalSegmentSliceEstimation (ConstAlias< Surface > aSurface)
 
 ~MaximalSegmentSliceEstimation ()
 
 MaximalSegmentSliceEstimation (const MaximalSegmentSliceEstimation &other)
 
MaximalSegmentSliceEstimationoperator= (const MaximalSegmentSliceEstimation &other)
 
template<typename SurfelConstIterator >
void init (Scalar const &h, SurfelConstIterator itb, SurfelConstIterator ite)
 
template<typename SurfelConstIterator >
Quantity eval (SurfelConstIterator it) const
 
template<typename SurfelConstIterator , typename OutputIterator >
OutputIterator eval (SurfelConstIterator itb, SurfelConstIterator ite, OutputIterator out) const
 
Scalar h () const
 
void attach (ConstAlias< Surface > aSurface)
 
void selfDisplay (std::ostream &out) const
 
bool isValid () const
 

Private Types

using Point2 = PointVector< 2, Integer >
 
using RealPoint2 = PointVector< 2, double >
 
using Container = std::deque< SCell >
 
using Iterator = typename Container::const_iterator
 
using DSSComputer = ArithmeticalDSSComputerOnSurfels< KSpace, Circulator< Iterator >, Integer >
 

Private Member Functions

 BOOST_CONCEPT_ASSERT ((concepts::CDigitalSurfaceContainer< typename TSurface::DigitalSurfaceContainer >))
 
KSpace const & space () const
 
std::pair< Point2, Point2getExtremalPoints (SurfaceSlice const &aSlice, Dimension const &aProjectDir1, Dimension const &aProjectDir2) const
 
Vector trivialNormal (Surfel const &aSurfel) const
 

Private Attributes

CountedConstPtrOrConstPtr< SurfacemySurface
 
Scalar myH
 

Detailed Description

template<typename TSurface>
class DGtal::MaximalSegmentSliceEstimation< TSurface >

Aim:

Description of template class 'MaximalSegmentSliceEstimation'

Template Parameters
TSurfacethe digital surface type.

Models: A MaximalSegmentSliceEstimation is a model of concepts::CSurfelLocalEstimator and concepts::CDigitalSurfaceLocalEstimator.

Definition at line 65 of file MaximalSegmentSliceEstimation.h.

Member Typedef Documentation

◆ Cell

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::Cell = typename KSpace::Cell

Definition at line 79 of file MaximalSegmentSliceEstimation.h.

◆ Container

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::Container = std::deque<SCell>
private

Definition at line 95 of file MaximalSegmentSliceEstimation.h.

◆ DSSComputer

Definition at line 97 of file MaximalSegmentSliceEstimation.h.

◆ Integer

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::Integer = typename Point::Coordinate

Definition at line 82 of file MaximalSegmentSliceEstimation.h.

◆ Iterator

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::Iterator = typename Container::const_iterator
private

Definition at line 96 of file MaximalSegmentSliceEstimation.h.

◆ KSpace

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::KSpace = typename Surface::KSpace

Definition at line 77 of file MaximalSegmentSliceEstimation.h.

◆ Point

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::Point = typename Surface::Point

Definition at line 80 of file MaximalSegmentSliceEstimation.h.

◆ Point2

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::Point2 = PointVector<2, Integer>
private

Definition at line 93 of file MaximalSegmentSliceEstimation.h.

◆ Quantity

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::Quantity = RealVector

Definition at line 89 of file MaximalSegmentSliceEstimation.h.

◆ RealPoint

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::RealPoint = typename Space::RealPoint

Definition at line 84 of file MaximalSegmentSliceEstimation.h.

◆ RealPoint2

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::RealPoint2 = PointVector<2, double>
private

Definition at line 94 of file MaximalSegmentSliceEstimation.h.

◆ RealVector

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::RealVector = RealPoint

Definition at line 85 of file MaximalSegmentSliceEstimation.h.

◆ Scalar

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::Scalar = double

Definition at line 74 of file MaximalSegmentSliceEstimation.h.

◆ SCell

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::SCell = typename KSpace::SCell

Definition at line 78 of file MaximalSegmentSliceEstimation.h.

◆ Space

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::Space = typename KSpace::Space

Definition at line 83 of file MaximalSegmentSliceEstimation.h.

◆ Surface

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::Surface = TSurface

Definition at line 71 of file MaximalSegmentSliceEstimation.h.

◆ SurfaceSlice

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::SurfaceSlice = DigitalSurface2DSlice<Tracker>

Definition at line 73 of file MaximalSegmentSliceEstimation.h.

◆ Surfel

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::Surfel = typename Surface::Surfel

Definition at line 88 of file MaximalSegmentSliceEstimation.h.

◆ Tracker

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::Tracker = typename Surface::DigitalSurfaceTracker

Definition at line 72 of file MaximalSegmentSliceEstimation.h.

◆ Vector

template<typename TSurface >
using DGtal::MaximalSegmentSliceEstimation< TSurface >::Vector = Point

Definition at line 81 of file MaximalSegmentSliceEstimation.h.

Constructor & Destructor Documentation

◆ MaximalSegmentSliceEstimation() [1/3]

template<typename TSurface >
DGtal::MaximalSegmentSliceEstimation< TSurface >::MaximalSegmentSliceEstimation ( )

Default constructor.

◆ MaximalSegmentSliceEstimation() [2/3]

template<typename TSurface >
DGtal::MaximalSegmentSliceEstimation< TSurface >::MaximalSegmentSliceEstimation ( ConstAlias< Surface aSurface)

Constructor.

Parameters
aSurfacea digiral surface.

◆ ~MaximalSegmentSliceEstimation()

template<typename TSurface >
DGtal::MaximalSegmentSliceEstimation< TSurface >::~MaximalSegmentSliceEstimation ( )

Destructor.

◆ MaximalSegmentSliceEstimation() [3/3]

template<typename TSurface >
DGtal::MaximalSegmentSliceEstimation< TSurface >::MaximalSegmentSliceEstimation ( const MaximalSegmentSliceEstimation< TSurface > &  other)

Copy constructor.

Parameters
otherthe object to clone.

Member Function Documentation

◆ attach()

template<typename TSurface >
void DGtal::MaximalSegmentSliceEstimation< TSurface >::attach ( ConstAlias< Surface aSurface)

◆ BOOST_CONCEPT_ASSERT()

template<typename TSurface >
DGtal::MaximalSegmentSliceEstimation< TSurface >::BOOST_CONCEPT_ASSERT ( (concepts::CDigitalSurfaceContainer< typename TSurface::DigitalSurfaceContainer >)  )
private

◆ eval() [1/2]

template<typename TSurface >
template<typename SurfelConstIterator >
Quantity DGtal::MaximalSegmentSliceEstimation< TSurface >::eval ( SurfelConstIterator  it) const

Estimates the quantity on a surfel.

Parameters
itan iterator whose value type is a Surfel.
Returns
the estimated quantity.

◆ eval() [2/2]

template<typename TSurface >
template<typename SurfelConstIterator , typename OutputIterator >
OutputIterator DGtal::MaximalSegmentSliceEstimation< TSurface >::eval ( SurfelConstIterator  itb,
SurfelConstIterator  ite,
OutputIterator  out 
) const

Estimates the quantity on a range of surfels.

Parameters
itban iterator on the start of the range of surfels.
itea past-the-end iterator of the range of surfels.
outan output iterator to store the results.
Returns
the modified output iterator.

◆ getExtremalPoints()

template<typename TSurface >
std::pair<Point2, Point2> DGtal::MaximalSegmentSliceEstimation< TSurface >::getExtremalPoints ( SurfaceSlice const &  aSlice,
Dimension const &  aProjectDir1,
Dimension const &  aProjectDir2 
) const
private

Computes the extremal points of a set of 2D digital points using maximal segments.

Parameters
aSlicea slice of the digital surface.
aProjectDir1the first direction of projection.
aProjectDir2the second direction of projection.
Returns
the two extremities of the maximal segment on the left and on the right.

◆ h()

template<typename TSurface >
Scalar DGtal::MaximalSegmentSliceEstimation< TSurface >::h ( ) const
Returns
the gridstep.

◆ init()

template<typename TSurface >
template<typename SurfelConstIterator >
void DGtal::MaximalSegmentSliceEstimation< TSurface >::init ( Scalar const &  h,
SurfelConstIterator  itb,
SurfelConstIterator  ite 
)

Initializes the estimator (in this case, do nothing apart from storing the gridstep).

Parameters
hthe grdstep.
itban iterator on the start of the range of surfels.
itea past-the-end iterator of the range of surfels.

◆ isValid()

template<typename TSurface >
bool DGtal::MaximalSegmentSliceEstimation< TSurface >::isValid ( ) const

Checks the validity/consistency of the object.

Returns
'true' if the object is valid, 'false' otherwise.

◆ operator=()

template<typename TSurface >
MaximalSegmentSliceEstimation& DGtal::MaximalSegmentSliceEstimation< TSurface >::operator= ( const MaximalSegmentSliceEstimation< TSurface > &  other)

Copy assignment operator.

Parameters
otherthe object to copy.
Returns
a reference on 'this'.

◆ selfDisplay()

template<typename TSurface >
void DGtal::MaximalSegmentSliceEstimation< TSurface >::selfDisplay ( std::ostream &  out) const

Writes/Displays the object on an output stream.

Parameters
outthe output stream where the object is written.

◆ space()

template<typename TSurface >
KSpace const& DGtal::MaximalSegmentSliceEstimation< TSurface >::space ( ) const
private

Khalimsky space associated to the digital surface.

Returns
a const reference to the Khalimsky space.

◆ trivialNormal()

template<typename TSurface >
Vector DGtal::MaximalSegmentSliceEstimation< TSurface >::trivialNormal ( Surfel const &  aSurfel) const
private
Parameters
aSurfela surfel.
Returns
the trivial normal vector of a surfel.

Field Documentation

◆ myH

template<typename TSurface >
Scalar DGtal::MaximalSegmentSliceEstimation< TSurface >::myH
private

The gridstep

Definition at line 193 of file MaximalSegmentSliceEstimation.h.

◆ mySurface

template<typename TSurface >
CountedConstPtrOrConstPtr<Surface> DGtal::MaximalSegmentSliceEstimation< TSurface >::mySurface
private

A pointer to the digital surface.

Definition at line 192 of file MaximalSegmentSliceEstimation.h.


The documentation for this class was generated from the following file: