DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Data Structures | Public Types | Public Member Functions | Private Member Functions | Private Attributes
DGtal::SetOfSurfels< TKSpace, TSurfelSet > Class Template Reference

#include <SetOfSurfels.h>

Collaboration diagram for DGtal::SetOfSurfels< TKSpace, TSurfelSet >:
Collaboration graph
[legend]

Data Structures

class  Tracker

Public Types

typedef SetOfSurfels< TKSpace,
TSurfelSet > 
Self
typedef TKSpace KSpace
typedef KSpace::SCell Surfel
typedef KSpace::Size Size
typedef TSurfelSet SurfelSet
typedef SurfelSet::const_iterator SurfelConstIterator
typedef KSpace::Space Space
typedef KSpace::Point Point
typedef Tracker DigitalSurfaceTracker
typedef SurfelAdjacency
< KSpace::dimension > 
Adjacency
typedef KSpace::Cell Cell
typedef KSpace::SCell SCell
typedef KSpace::CellSet CellSet
typedef KSpace::SCellSet SCellSet
typedef SurfelSetPredicate
< SurfelSet, Surfel
SurfelPredicate

Public Member Functions

 ~SetOfSurfels ()
 SetOfSurfels (const SetOfSurfels &other)
 SetOfSurfels (const KSpace &aKSpace, const Adjacency &adj, SurfelSet aSetOfSurfels=SurfelSet())
SurfelSetsurfelSet ()
const SurfelSetsurfelSet () const
const AdjacencysurfelAdjacency () const
AdjacencysurfelAdjacency ()
const SurfelPredicatesurfelPredicate () const
const KSpacespace () const
bool isInside (const Surfel &s) const
SurfelConstIterator begin () const
SurfelConstIterator end () const
Size nbSurfels () const
bool empty () const
DigitalSurfaceTrackernewTracker (const Surfel &s) const
Connectedness connectedness () const
void selfDisplay (std::ostream &out) const
bool isValid () const

Private Member Functions

SetOfSurfelsoperator= (const SetOfSurfels &other)

Private Attributes

const KSpacemyKSpace
SurfelSet mySurfelSet
SurfelPredicate mySurfelPredicate
Adjacency mySurfelAdjacency

Detailed Description

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
class DGtal::SetOfSurfels< TKSpace, TSurfelSet >

Aim: A model of CDigitalSurfaceContainer which defines the digital surface as connected surfels. The shape is determined by the set of surfels that composed the surface. The set of surfels is stored in this container.

Description of template class 'SetOfSurfels'

Template Parameters:
TKSpacea model of CCellularGridSpaceND: the type chosen for the cellular grid space.
TSurfelSeta model of CSurfelSet: the type chosen for representing the set of surfels in the space.
Examples:
topology/volToOFF.cpp.

Definition at line 72 of file SetOfSurfels.h.


Member Typedef Documentation

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
typedef SurfelAdjacency<KSpace::dimension> DGtal::SetOfSurfels< TKSpace, TSurfelSet >::Adjacency

Definition at line 176 of file SetOfSurfels.h.

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
typedef KSpace::Cell DGtal::SetOfSurfels< TKSpace, TSurfelSet >::Cell

Definition at line 177 of file SetOfSurfels.h.

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
typedef KSpace::CellSet DGtal::SetOfSurfels< TKSpace, TSurfelSet >::CellSet

Definition at line 179 of file SetOfSurfels.h.

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
typedef Tracker DGtal::SetOfSurfels< TKSpace, TSurfelSet >::DigitalSurfaceTracker

Definition at line 172 of file SetOfSurfels.h.

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
typedef TKSpace DGtal::SetOfSurfels< TKSpace, TSurfelSet >::KSpace

Model of cellular grid space.

Definition at line 157 of file SetOfSurfels.h.

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
typedef KSpace::Point DGtal::SetOfSurfels< TKSpace, TSurfelSet >::Point

Definition at line 171 of file SetOfSurfels.h.

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
typedef KSpace::SCell DGtal::SetOfSurfels< TKSpace, TSurfelSet >::SCell

Definition at line 178 of file SetOfSurfels.h.

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
typedef KSpace::SCellSet DGtal::SetOfSurfels< TKSpace, TSurfelSet >::SCellSet

Definition at line 180 of file SetOfSurfels.h.

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
typedef SetOfSurfels<TKSpace,TSurfelSet> DGtal::SetOfSurfels< TKSpace, TSurfelSet >::Self

Definition at line 155 of file SetOfSurfels.h.

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
typedef KSpace::Size DGtal::SetOfSurfels< TKSpace, TSurfelSet >::Size

Type for sizes (unsigned integral type).

Definition at line 161 of file SetOfSurfels.h.

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
typedef KSpace::Space DGtal::SetOfSurfels< TKSpace, TSurfelSet >::Space

Definition at line 170 of file SetOfSurfels.h.

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
typedef KSpace::SCell DGtal::SetOfSurfels< TKSpace, TSurfelSet >::Surfel

Type for surfels.

Definition at line 159 of file SetOfSurfels.h.

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
typedef SurfelSet::const_iterator DGtal::SetOfSurfels< TKSpace, TSurfelSet >::SurfelConstIterator

Definition at line 169 of file SetOfSurfels.h.

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
typedef SurfelSetPredicate<SurfelSet, Surfel> DGtal::SetOfSurfels< TKSpace, TSurfelSet >::SurfelPredicate

Definition at line 181 of file SetOfSurfels.h.

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
typedef TSurfelSet DGtal::SetOfSurfels< TKSpace, TSurfelSet >::SurfelSet

Definition at line 163 of file SetOfSurfels.h.


Constructor & Destructor Documentation

template<typename TKSpace , typename TSurfelSet >
DGtal::SetOfSurfels< TKSpace, TSurfelSet >::~SetOfSurfels ( )
inline

Destructor.

Definition at line 120 of file SetOfSurfels.ih.

{
}
template<typename TKSpace , typename TSurfelSet >
DGtal::SetOfSurfels< TKSpace, TSurfelSet >::SetOfSurfels ( const SetOfSurfels< TKSpace, TSurfelSet > &  other)
inline

Copy constructor.

Parameters:
otherthe object to clone.

NB: Complexity depends on the type chosen for SurfelSet.

Definition at line 127 of file SetOfSurfels.ih.

template<typename TKSpace , typename TSurfelSet >
DGtal::SetOfSurfels< TKSpace, TSurfelSet >::SetOfSurfels ( const KSpace aKSpace,
const Adjacency adj,
SurfelSet  aSetOfSurfels = SurfelSet() 
)
inline

Constructor from digital set.

Parameters:
aKSpacea cellular grid space (referenced).
adjthe surfel adjacency (for instance Adjacency( true ) is interior to exterior adjacency ).
aSetOfSurfelsany set of surfels that is cloned in this object (default is empty)

NB: Complexity depends on the type chosen for SurfelSet.

Definition at line 138 of file SetOfSurfels.ih.

: myKSpace( aKSpace ), mySurfelSet( aSetOfSurfels ),
{
}

Member Function Documentation

template<typename TKSpace , typename TSurfelSet >
DGtal::SetOfSurfels< TKSpace, TSurfelSet >::SurfelConstIterator DGtal::SetOfSurfels< TKSpace, TSurfelSet >::begin ( ) const
inline
Returns:
an iterator pointing on the first surfel of the digital surface (unspecified order).

Definition at line 213 of file SetOfSurfels.ih.

References DGtal::SetOfSurfels< TKSpace, TSurfelSet >::mySurfelSet.

{
return mySurfelSet.begin();
}
template<typename TKSpace , typename TSurfelSet >
DGtal::Connectedness DGtal::SetOfSurfels< TKSpace, TSurfelSet >::connectedness ( ) const
inline
Returns:
the connectedness of this surface. Either CONNECTED, DISCONNECTED, or UNKNOWN.

Definition at line 254 of file SetOfSurfels.ih.

References DGtal::UNKNOWN.

{
return UNKNOWN;
}
template<typename TKSpace , typename TSurfelSet >
bool DGtal::SetOfSurfels< TKSpace, TSurfelSet >::empty ( ) const
inline
Returns:
'true' is the surface has no surfels, 'false' otherwise. NB: O(1) operation.

Definition at line 237 of file SetOfSurfels.ih.

References DGtal::SetOfSurfels< TKSpace, TSurfelSet >::mySurfelSet.

{
return mySurfelSet.empty();
}
template<typename TKSpace , typename TSurfelSet >
DGtal::SetOfSurfels< TKSpace, TSurfelSet >::SurfelConstIterator DGtal::SetOfSurfels< TKSpace, TSurfelSet >::end ( ) const
inline
Returns:
an iterator after the last surfel of the digital surface (unspecified order).

Definition at line 221 of file SetOfSurfels.ih.

References DGtal::SetOfSurfels< TKSpace, TSurfelSet >::mySurfelSet.

{
return mySurfelSet.end();
}
template<typename TKSpace , typename TSurfelSet >
bool DGtal::SetOfSurfels< TKSpace, TSurfelSet >::isInside ( const Surfel s) const
inline
Parameters:
sany surfel of the space.
Returns:
'true' if s belongs to this digital surface.

Definition at line 205 of file SetOfSurfels.ih.

References DGtal::SetOfSurfels< TKSpace, TSurfelSet >::mySurfelPredicate.

Referenced by DGtal::SetOfSurfels< TKSpace, TSurfelSet >::Tracker::move().

{
return mySurfelPredicate( s );
}
template<typename TKSpace , typename TSurfelSet >
bool DGtal::SetOfSurfels< TKSpace, TSurfelSet >::isValid ( ) const
inline

Checks the validity/consistency of the object.

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

Definition at line 283 of file SetOfSurfels.ih.

{
return true;
}
template<typename TKSpace , typename TSurfelSet >
DGtal::SetOfSurfels< TKSpace, TSurfelSet >::Size DGtal::SetOfSurfels< TKSpace, TSurfelSet >::nbSurfels ( ) const
inline
Returns:
the number of surfels of this digital surface. NB: O(1)

Definition at line 229 of file SetOfSurfels.ih.

References DGtal::SetOfSurfels< TKSpace, TSurfelSet >::mySurfelSet.

{
return (unsigned int)mySurfelSet.size();
}
template<typename TKSpace , typename TSurfelSet >
DGtal::SetOfSurfels< TKSpace, TSurfelSet >::DigitalSurfaceTracker * DGtal::SetOfSurfels< TKSpace, TSurfelSet >::newTracker ( const Surfel s) const
inline
Parameters:
sany surfel of the space.
Precondition:
'isInside( s )'
Returns:
a dyn. alloc. pointer on a tracker positionned at s.

Definition at line 246 of file SetOfSurfels.ih.

{
return new Tracker( *this, s );
}
template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
SetOfSurfels& DGtal::SetOfSurfels< TKSpace, TSurfelSet >::operator= ( const SetOfSurfels< TKSpace, TSurfelSet > &  other)
private

Assignment.

Parameters:
otherthe object to copy.
Returns:
a reference on 'this'. Forbidden by default.
template<typename TKSpace , typename TSurfelSet >
void DGtal::SetOfSurfels< TKSpace, TSurfelSet >::selfDisplay ( std::ostream &  out) const
inline

Writes/Displays the object on an output stream.

Parameters:
outthe output stream where the object is written.

Definition at line 271 of file SetOfSurfels.ih.

{
out << "[SetOfSurfels]";
}
template<typename TKSpace , typename TSurfelSet >
const DGtal::SetOfSurfels< TKSpace, TSurfelSet >::KSpace & DGtal::SetOfSurfels< TKSpace, TSurfelSet >::space ( ) const
inline
Returns:
the cellular space in which lives the surface.

Definition at line 196 of file SetOfSurfels.ih.

References DGtal::SetOfSurfels< TKSpace, TSurfelSet >::myKSpace.

Referenced by DGtal::SetOfSurfels< TKSpace, TSurfelSet >::Tracker::Tracker().

{
return myKSpace;
}
template<typename TKSpace , typename TSurfelSet >
const DGtal::SetOfSurfels< TKSpace, TSurfelSet >::Adjacency & DGtal::SetOfSurfels< TKSpace, TSurfelSet >::surfelAdjacency ( ) const
inline
template<typename TKSpace , typename TSurfelSet >
DGtal::SetOfSurfels< TKSpace, TSurfelSet >::Adjacency & DGtal::SetOfSurfels< TKSpace, TSurfelSet >::surfelAdjacency ( )
inline

mutator to surfel adjacency.

Definition at line 176 of file SetOfSurfels.ih.

References DGtal::SetOfSurfels< TKSpace, TSurfelSet >::mySurfelAdjacency.

{
}
template<typename TKSpace , typename TSurfelSet >
const DGtal::SetOfSurfels< TKSpace, TSurfelSet >::SurfelPredicate & DGtal::SetOfSurfels< TKSpace, TSurfelSet >::surfelPredicate ( ) const
inline
template<typename TKSpace , typename TSurfelSet >
DGtal::SetOfSurfels< TKSpace, TSurfelSet >::SurfelSet & DGtal::SetOfSurfels< TKSpace, TSurfelSet >::surfelSet ( )
inline

Definition at line 150 of file SetOfSurfels.ih.

References DGtal::SetOfSurfels< TKSpace, TSurfelSet >::mySurfelSet.

{
return mySurfelSet;
}
template<typename TKSpace , typename TSurfelSet >
const DGtal::SetOfSurfels< TKSpace, TSurfelSet >::SurfelSet & DGtal::SetOfSurfels< TKSpace, TSurfelSet >::surfelSet ( ) const
inline

Definition at line 159 of file SetOfSurfels.ih.

References DGtal::SetOfSurfels< TKSpace, TSurfelSet >::mySurfelSet.

{
return mySurfelSet;
}

Field Documentation

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
const KSpace& DGtal::SetOfSurfels< TKSpace, TSurfelSet >::myKSpace
private

a reference to the cellular space.

Definition at line 287 of file SetOfSurfels.h.

Referenced by DGtal::SetOfSurfels< TKSpace, TSurfelSet >::space().

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
Adjacency DGtal::SetOfSurfels< TKSpace, TSurfelSet >::mySurfelAdjacency
private

the surfel adjacency used to determine neighbors.

Definition at line 293 of file SetOfSurfels.h.

Referenced by DGtal::SetOfSurfels< TKSpace, TSurfelSet >::surfelAdjacency().

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
SurfelPredicate DGtal::SetOfSurfels< TKSpace, TSurfelSet >::mySurfelPredicate
private

the surfel predicate defining the shape (related to mySurfelSet).

Definition at line 291 of file SetOfSurfels.h.

Referenced by DGtal::SetOfSurfels< TKSpace, TSurfelSet >::isInside(), and DGtal::SetOfSurfels< TKSpace, TSurfelSet >::surfelPredicate().

template<typename TKSpace, typename TSurfelSet = typename TKSpace::SurfelSet>
SurfelSet DGtal::SetOfSurfels< TKSpace, TSurfelSet >::mySurfelSet
private

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