File failed to load: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/config/TeX-MML-AM_CHTML/MathJax.js
DGtal 2.0.0
DGtal::FreemanChain< TInteger >::CodesRange Class Reference

Aim: model of CRange that provides services to (circularly)iterate over the letters of the freeman chain. More...

#include <DGtal/geometry/curves/FreemanChain.h>

Public Types

typedef std::string::const_iterator ConstIterator
typedef std::string::const_reverse_iterator ConstReverseIterator
typedef Circulator< ConstIteratorConstCirculator
typedef boost::reverse_iterator< ConstCirculatorConstReverseCirculator

Public Member Functions

 CodesRange ()
 CodesRange (const std::string &aChain)
 CodesRange (const CodesRange &aOther)
CodesRangeoperator= (const CodesRange &other)
 ~CodesRange ()
std::string::size_type size () const
bool isValid () const
void selfDisplay (std::ostream &out) const
ConstIterator begin () const
ConstIterator end () const
ConstReverseIterator rbegin () const
ConstReverseIterator rend () const
ConstCirculator c () const
ConstReverseCirculator rc () const

Private Attributes

std::string myChain

Friends

std::ostream & operator<< (std::ostream &out, const CodesRange &object)

Detailed Description

template<typename TInteger>
class DGtal::FreemanChain< TInteger >::CodesRange

Aim: model of CRange that provides services to (circularly)iterate over the letters of the freeman chain.

See also
FreemanChain.h testFreemanChain.cpp

Definition at line 395 of file FreemanChain.h.

Member Typedef Documentation

◆ ConstCirculator

template<typename TInteger>
typedef Circulator<ConstIterator> DGtal::FreemanChain< TInteger >::CodesRange::ConstCirculator

Definition at line 403 of file FreemanChain.h.

◆ ConstIterator

template<typename TInteger>
typedef std::string::const_iterator DGtal::FreemanChain< TInteger >::CodesRange::ConstIterator

Definition at line 401 of file FreemanChain.h.

◆ ConstReverseCirculator

template<typename TInteger>
typedef boost::reverse_iterator<ConstCirculator> DGtal::FreemanChain< TInteger >::CodesRange::ConstReverseCirculator

Definition at line 404 of file FreemanChain.h.

◆ ConstReverseIterator

template<typename TInteger>
typedef std::string::const_reverse_iterator DGtal::FreemanChain< TInteger >::CodesRange::ConstReverseIterator

Definition at line 402 of file FreemanChain.h.

Constructor & Destructor Documentation

◆ CodesRange() [1/3]

template<typename TInteger>
DGtal::FreemanChain< TInteger >::CodesRange::CodesRange ( )
inline

Default Constructor.

Definition at line 411 of file FreemanChain.h.

411{}

Referenced by CodesRange(), operator<<, and operator=().

◆ CodesRange() [2/3]

template<typename TInteger>
DGtal::FreemanChain< TInteger >::CodesRange::CodesRange ( const std::string & aChain)
inline

Constructor.

Definition at line 416 of file FreemanChain.h.

References myChain.

◆ CodesRange() [3/3]

template<typename TInteger>
DGtal::FreemanChain< TInteger >::CodesRange::CodesRange ( const CodesRange & aOther)
inline

Copy constructor.

Parameters
aOtherthe iterator to clone.

Definition at line 422 of file FreemanChain.h.

423 : myChain( aOther.myChain ){}

References CodesRange(), and myChain.

◆ ~CodesRange()

template<typename TInteger>
DGtal::FreemanChain< TInteger >::CodesRange::~CodesRange ( )
inline

Destructor. Does nothing.

Definition at line 442 of file FreemanChain.h.

442{}

Member Function Documentation

◆ begin()

template<typename TInteger>
ConstIterator DGtal::FreemanChain< TInteger >::CodesRange::begin ( ) const
inline

Iterator service.

Returns
begin iterator

Definition at line 496 of file FreemanChain.h.

496 {
497 return myChain.begin();
498 }

References myChain.

Referenced by c(), and selfDisplay().

◆ c()

template<typename TInteger>
ConstCirculator DGtal::FreemanChain< TInteger >::CodesRange::c ( ) const
inline

Circulator service.

Returns
a circulator

Definition at line 528 of file FreemanChain.h.

528 {
529 return ConstCirculator( this->begin(), this->begin(), this->end() );
530 }
ConstIterator end() const
Circulator< ConstIterator > ConstCirculator
ConstIterator begin() const

References begin(), and end().

Referenced by rc().

◆ end()

template<typename TInteger>
ConstIterator DGtal::FreemanChain< TInteger >::CodesRange::end ( ) const
inline

Iterator service.

Returns
end iterator

Definition at line 504 of file FreemanChain.h.

504 {
505 return myChain.end();
506 }

References myChain.

Referenced by c(), and selfDisplay().

◆ isValid()

template<typename TInteger>
bool DGtal::FreemanChain< TInteger >::CodesRange::isValid ( ) const
inline

Checks the validity/consistency of the object.

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

Definition at line 456 of file FreemanChain.h.

456{ return true; }

◆ operator=()

template<typename TInteger>
CodesRange & DGtal::FreemanChain< TInteger >::CodesRange::operator= ( const CodesRange & other)
inline

Assignment.

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

Definition at line 430 of file FreemanChain.h.

431 {
432 if ( this != &other )
433 {
434 myChain = other.myChain;
435 }
436 return *this;
437 }

References CodesRange(), and myChain.

◆ rbegin()

template<typename TInteger>
ConstReverseIterator DGtal::FreemanChain< TInteger >::CodesRange::rbegin ( ) const
inline

Iterator service.

Returns
rbegin iterator

Definition at line 512 of file FreemanChain.h.

512 {
513 return myChain.rbegin();
514 }

References myChain.

◆ rc()

template<typename TInteger>
ConstReverseCirculator DGtal::FreemanChain< TInteger >::CodesRange::rc ( ) const
inline

Circulator service.

Returns
a reverse circulator

Definition at line 536 of file FreemanChain.h.

536 {
537 return ConstReverseCirculator( this->c() );
538 }
boost::reverse_iterator< ConstCirculator > ConstReverseCirculator
ConstCirculator c() const

References c().

◆ rend()

template<typename TInteger>
ConstReverseIterator DGtal::FreemanChain< TInteger >::CodesRange::rend ( ) const
inline

Iterator service.

Returns
rend iterator

Definition at line 520 of file FreemanChain.h.

520 {
521 return myChain.rend();
522 }

References myChain.

◆ selfDisplay()

template<typename TInteger>
void DGtal::FreemanChain< TInteger >::CodesRange::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 463 of file FreemanChain.h.

464 {
466 out << "[FreemanChainCodes]" << std::endl;
467 out << "\t";
468 std::copy( this->begin(), this->end(), std::ostream_iterator<Value>(out, "") );
469 out << std::endl;
470 }

References begin(), and end().

◆ size()

template<typename TInteger>
std::string::size_type DGtal::FreemanChain< TInteger >::CodesRange::size ( ) const
inline
Returns
the size of the range

Definition at line 447 of file FreemanChain.h.

448 {
449 return myChain.size();
450 }

References myChain.

◆ operator<<

template<typename TInteger>
std::ostream & operator<< ( std::ostream & out,
const CodesRange & object )
friend

Overloads 'operator<<' for displaying objects of class 'CodesRange'.

Parameters
outthe output stream where the object is written.
objectthe object of class 'CodesRange' to write.
Returns
the output stream after the writing.

Definition at line 478 of file FreemanChain.h.

479 {
480 object.selfDisplay( out );
481 return out;
482 }

References CodesRange().

Field Documentation

◆ myChain

template<typename TInteger>
std::string DGtal::FreemanChain< TInteger >::CodesRange::myChain
private

Private member myChain is a string of letters

Definition at line 488 of file FreemanChain.h.

Referenced by begin(), CodesRange(), CodesRange(), end(), operator=(), rbegin(), rend(), and size().


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