DGtal  1.2.0
Public Types | Public Member Functions | Protected Attributes | Private Member Functions
DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder > Class Template Reference

Aim: a cellular embedder for implicit functions, (default constructible, copy constructible, assignable). Model of CCellEmbedder and CWithGradientMap. More...

#include <DGtal/shapes/implicit/ImplicitFunctionDiff1LinearCellEmbedder.h>

Inheritance diagram for DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >:
[legend]

Public Types

typedef TKSpace KSpace
 
typedef TImplicitFunctionDiff1 ImplicitFunctionDiff1
 
typedef TEmbedder Embedder
 
typedef KSpace::Cell Cell
 
typedef KSpace::SCell SCell
 
typedef KSpace::Space Space
 
typedef Space::Point Point
 
typedef Space::RealPoint RealPoint
 
typedef Space::RealVector RealVector
 
typedef ImplicitFunctionDiff1::Value ImplicitFctValue
 
typedef Cell Argument
 
typedef RealPoint Value
 
typedef ImplicitFunctionDiff1LinearCellEmbedderGradientMap< KSpace, ImplicitFunctionDiff1, EmbedderGradientMap
 

Public Member Functions

 ImplicitFunctionDiff1LinearCellEmbedder ()
 
 ~ImplicitFunctionDiff1LinearCellEmbedder ()
 
 ImplicitFunctionDiff1LinearCellEmbedder (const ImplicitFunctionDiff1LinearCellEmbedder &other)
 
ImplicitFunctionDiff1LinearCellEmbedderoperator= (const ImplicitFunctionDiff1LinearCellEmbedder &other)
 
void init (ConstAlias< KSpace > K, ConstAlias< ImplicitFunctionDiff1 > f, ConstAlias< Embedder > e)
 
GradientMap gradientMap () const
 
RealPoint embed (const Point &p) const
 
RealPoint embedCell (const Cell &cell) const
 
RealPoint embedSCell (const SCell &scell) const
 
RealPoint operator() (const Cell &cell) const
 
void embed (const Point &p, RealPoint &x, RealVector &grad) const
 
void embedCell (const Cell &cell, RealPoint &x, RealVector &grad) const
 
void embedSCell (const SCell &scell, RealPoint &x, RealVector &grad) const
 
void selfDisplay (std::ostream &out) const
 
bool isValid () const
 

Protected Attributes

const KSpacemyPtrK
 A pointer on the cellular grid space. More...
 
const ImplicitFunctionDiff1myPtrFct
 A pointer on the implicit function. More...
 
const EmbeddermyPtrEmbedder
 A pointer on the digital embedder. More...
 

Private Member Functions

 BOOST_CONCEPT_ASSERT ((concepts::CCellularGridSpaceND< TKSpace >))
 
 BOOST_CONCEPT_ASSERT ((concepts::CImplicitFunctionDiff1< TImplicitFunctionDiff1 >))
 
 BOOST_CONCEPT_ASSERT ((concepts::CPointEmbedder< TEmbedder >))
 

Detailed Description

template<typename TKSpace, typename TImplicitFunctionDiff1, typename TEmbedder>
class DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >

Aim: a cellular embedder for implicit functions, (default constructible, copy constructible, assignable). Model of CCellEmbedder and CWithGradientMap.

Description of template class 'ImplicitFunctionDiff1LinearCellEmbedder'

Template Parameters
TKSpacethe cellular grid space definition, a model of CCellularGridSpaceND.
TImplicitFunctionDiff1the type of implicit function, a model of CImplicitFunctionDiff1.
TEmbedderthe type of digital embedder, a model of CPointEmbedder.
Todo:
assert dimensions of space, embedder and implicit function.

Definition at line 79 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

Member Typedef Documentation

◆ Argument

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
typedef Cell DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::Argument

Definition at line 96 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

◆ Cell

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
typedef KSpace::Cell DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::Cell

Definition at line 89 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

◆ Embedder

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
typedef TEmbedder DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::Embedder

Definition at line 88 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

◆ GradientMap

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
typedef ImplicitFunctionDiff1LinearCellEmbedderGradientMap< KSpace, ImplicitFunctionDiff1, Embedder > DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::GradientMap

Definition at line 99 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

◆ ImplicitFctValue

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
typedef ImplicitFunctionDiff1::Value DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::ImplicitFctValue

Definition at line 95 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

◆ ImplicitFunctionDiff1

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
typedef TImplicitFunctionDiff1 DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::ImplicitFunctionDiff1

Definition at line 87 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

◆ KSpace

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
typedef TKSpace DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::KSpace

Definition at line 86 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

◆ Point

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
typedef Space::Point DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::Point

Definition at line 92 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

◆ RealPoint

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
typedef Space::RealPoint DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::RealPoint

Definition at line 93 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

◆ RealVector

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
typedef Space::RealVector DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::RealVector

Definition at line 94 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

◆ SCell

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
typedef KSpace::SCell DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::SCell

Definition at line 90 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

◆ Space

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
typedef KSpace::Space DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::Space

Definition at line 91 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

◆ Value

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
typedef RealPoint DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::Value

Definition at line 97 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

Constructor & Destructor Documentation

◆ ImplicitFunctionDiff1LinearCellEmbedder() [1/2]

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::ImplicitFunctionDiff1LinearCellEmbedder ( )

Constructor. The object is not valid.

◆ ~ImplicitFunctionDiff1LinearCellEmbedder()

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::~ImplicitFunctionDiff1LinearCellEmbedder ( )

Destructor.

◆ ImplicitFunctionDiff1LinearCellEmbedder() [2/2]

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::ImplicitFunctionDiff1LinearCellEmbedder ( const ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder > &  other)

Copy constructor.

Parameters
otherthe object to copy.

Member Function Documentation

◆ BOOST_CONCEPT_ASSERT() [1/3]

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::BOOST_CONCEPT_ASSERT ( (concepts::CCellularGridSpaceND< TKSpace >)  )
private

◆ BOOST_CONCEPT_ASSERT() [2/3]

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::BOOST_CONCEPT_ASSERT ( (concepts::CImplicitFunctionDiff1< TImplicitFunctionDiff1 >)  )
private

◆ BOOST_CONCEPT_ASSERT() [3/3]

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::BOOST_CONCEPT_ASSERT ( (concepts::CPointEmbedder< TEmbedder >)  )
private

◆ embed() [1/2]

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
RealPoint DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::embed ( const Point p) const

Maps a digital point to its corresponding point in the Euclidean space.

Parameters
pany digital point in the digital space.
Returns
its embedding by the current embedder in the Euclidean space.

◆ embed() [2/2]

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
void DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::embed ( const Point p,
RealPoint x,
RealVector grad 
) const

Maps a digital point to its corresponding embedding position and gradient vector in the Euclidean space.

Parameters
pany digital point in the digital space.
xits embedding in the Euclidean space.
grad(returns) its gradient vector at the point given by the current embedder in the Euclidean space.

◆ embedCell() [1/2]

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
RealPoint DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::embedCell ( const Cell cell) const

Maps a cell to its corresponding point in the Euclidean space, by a linear guess of its position.

Parameters
cellany cell in the cellular grid space.
Returns
its embedding in the Euclidean space.

◆ embedCell() [2/2]

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
void DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::embedCell ( const Cell cell,
RealPoint x,
RealVector grad 
) const

Maps a cell to its corresponding gradient vector in the Euclidean space, by a linear guess of its position.

Parameters
cellany cell in the cellular grid space.
xits embedding in the Euclidean space.
grad(returns) its gradient vector at the point given by the current embedder in the Euclidean space.

◆ embedSCell() [1/2]

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
RealPoint DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::embedSCell ( const SCell scell) const

Maps a signed cell to its corresponding point in the Euclidean space, by a linear guess of its position. NB: the signed is not used.

Parameters
scellany cell in the cellular grid space.
Returns
its embedding in the Euclidean space.

◆ embedSCell() [2/2]

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
void DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::embedSCell ( const SCell scell,
RealPoint x,
RealVector grad 
) const

Maps a signed cell to its corresponding gradient vector in the Euclidean space, by a linear guess of its position. NB: the signed is not used.

Parameters
scellany cell in the cellular grid space.
xits embedding in the Euclidean space.
grad(returns) its gradient vector at the point given by the current embedder in the Euclidean space.

◆ gradientMap()

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
GradientMap DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::gradientMap ( ) const
Returns
the corresponding gradient map.

◆ init()

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
void DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::init ( ConstAlias< KSpace K,
ConstAlias< ImplicitFunctionDiff1 f,
ConstAlias< Embedder e 
)

Initializes the embedder with the space K, the implicit function f, the digital embedder e.

Parameters
Kany cellular grid space.
fan implicit function
ea digital embedder (like a GaussDigitizer).

◆ isValid()

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
bool DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::isValid ( ) const

Checks the validity/consistency of the object.

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

◆ operator()()

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
RealPoint DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::operator() ( const Cell cell) const

Maps a cell to its corresponding point in the Euclidean space, by a linear guess of its position.

Parameters
cellany cell in the cellular grid space.
Returns
its embedding in the Euclidean space.

Referenced by DGtal::ImplicitFunctionDiff1LinearCellEmbedderGradientMap< TKSpace, TImplicitFunctionDiff1, TEmbedder >::operator()().

◆ operator=()

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
ImplicitFunctionDiff1LinearCellEmbedder& DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::operator= ( const ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder > &  other)

Assignment.

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

Referenced by DGtal::ImplicitFunctionDiff1LinearCellEmbedderGradientMap< TKSpace, TImplicitFunctionDiff1, TEmbedder >::operator=().

◆ selfDisplay()

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
void DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::selfDisplay ( std::ostream &  out) const

Writes/Displays the object on an output stream.

Parameters
outthe output stream where the object is written.

Field Documentation

◆ myPtrEmbedder

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
const Embedder* DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::myPtrEmbedder
protected

A pointer on the digital embedder.

Definition at line 240 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

◆ myPtrFct

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
const ImplicitFunctionDiff1* DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::myPtrFct
protected

A pointer on the implicit function.

Definition at line 238 of file ImplicitFunctionDiff1LinearCellEmbedder.h.

◆ myPtrK

template<typename TKSpace , typename TImplicitFunctionDiff1 , typename TEmbedder >
const KSpace* DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >::myPtrK
protected

A pointer on the cellular grid space.

Definition at line 236 of file ImplicitFunctionDiff1LinearCellEmbedder.h.


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