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::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor > Class Template Reference

Aim: model of CBidirectionalRangeFromPoint that adapts any range of elements bounded by two iterators [itb, ite) and provides services to (circularly)iterate over it (in a read-only manner). More...

#include <DGtal/base/SimpleRandomAccessRangeFromPoint.h>

Inheritance diagram for DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >:
[legend]

Public Types

typedef DistanceFunctor::Point Point
typedef TIterator Iterator
typedef TConstIterator ConstIterator
typedef boost::reverse_iterator< IteratorReverseIterator
typedef boost::reverse_iterator< ConstIteratorConstReverseIterator
typedef TIterator OutputIterator
typedef boost::reverse_iterator< IteratorReverseOutputIterator
typedef DGtal::Circulator< IteratorCirculator
typedef boost::reverse_iterator< CirculatorReverseCirculator
typedef DGtal::Circulator< ConstIteratorConstCirculator
typedef boost::reverse_iterator< ConstCirculatorConstReverseCirculator

Public Member Functions

 SimpleRandomAccessRangeFromPoint (const TIterator &itb, const TIterator &ite, const DistanceFunctor &aDistance)
 SimpleRandomAccessRangeFromPoint (const SimpleRandomAccessRangeFromPoint &other)
SimpleRandomAccessRangeFromPointoperator= (const SimpleRandomAccessRangeFromPoint &other)
 ~SimpleRandomAccessRangeFromPoint ()
bool isValid () const
void selfDisplay (std::ostream &out) const
std::string className () const
Iterator begin ()
Iterator begin (const Point &aPoint)
ConstIterator begin () const
ConstIterator begin (const Point &aPoint) const
Iterator end ()
ConstIterator end () const
OutputIterator outputIterator ()
OutputIterator outputIterator (const Point &aPoint)
ReverseOutputIterator routputIterator ()
ReverseOutputIterator routputIterator (const Point &aPoint)
ReverseIterator rbegin ()
ReverseIterator rbegin (const Point &aPoint)
ReverseIterator rend ()
ConstReverseIterator rbegin () const
ConstReverseIterator rbegin (const Point &aPoint) const
ConstReverseIterator rend () const
Circulator c ()
ReverseCirculator rc ()
ConstCirculator c () const
ConstReverseCirculator rc () const

Private Member Functions

 BOOST_CONCEPT_ASSERT ((boost::RandomAccessIterator< TIterator >))
 BOOST_CONCEPT_ASSERT ((boost::RandomAccessIterator< TConstIterator >))
 BOOST_CONCEPT_ASSERT ((boost::UnaryFunction< DistanceFunctor, typename DistanceFunctor::Difference, typename DistanceFunctor::Point >))

Private Attributes

TIterator myBegin
TIterator myEnd
DistanceFunctor myDistance

Detailed Description

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
class DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >

Aim: model of CBidirectionalRangeFromPoint that adapts any range of elements bounded by two iterators [itb, ite) and provides services to (circularly)iterate over it (in a read-only manner).

Template Parameters
TIteratorthe type of the iterator to adapt (at least bidirectional)
DistanceFunctortype of distance from point functor for random access container models. Models must have a Point and a Difference inner types. operator() returns a number of type Difference on instances of Point)
See also
RangeAdapter

Definition at line 74 of file SimpleRandomAccessRangeFromPoint.h.

Member Typedef Documentation

◆ Circulator

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
typedef DGtal::Circulator<Iterator> DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::Circulator

Definition at line 96 of file SimpleRandomAccessRangeFromPoint.h.

◆ ConstCirculator

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
typedef DGtal::Circulator<ConstIterator> DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::ConstCirculator

Definition at line 99 of file SimpleRandomAccessRangeFromPoint.h.

◆ ConstIterator

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
typedef TConstIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::ConstIterator

Definition at line 88 of file SimpleRandomAccessRangeFromPoint.h.

◆ ConstReverseCirculator

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
typedef boost::reverse_iterator<ConstCirculator> DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::ConstReverseCirculator

Definition at line 100 of file SimpleRandomAccessRangeFromPoint.h.

◆ ConstReverseIterator

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
typedef boost::reverse_iterator<ConstIterator> DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::ConstReverseIterator

Definition at line 91 of file SimpleRandomAccessRangeFromPoint.h.

◆ Iterator

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
typedef TIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::Iterator

Definition at line 87 of file SimpleRandomAccessRangeFromPoint.h.

◆ OutputIterator

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
typedef TIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::OutputIterator

Definition at line 93 of file SimpleRandomAccessRangeFromPoint.h.

◆ Point

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
typedef DistanceFunctor::Point DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::Point

Definition at line 85 of file SimpleRandomAccessRangeFromPoint.h.

◆ ReverseCirculator

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
typedef boost::reverse_iterator<Circulator> DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::ReverseCirculator

Definition at line 97 of file SimpleRandomAccessRangeFromPoint.h.

◆ ReverseIterator

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
typedef boost::reverse_iterator<Iterator> DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::ReverseIterator

Definition at line 90 of file SimpleRandomAccessRangeFromPoint.h.

◆ ReverseOutputIterator

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
typedef boost::reverse_iterator<Iterator> DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::ReverseOutputIterator

Definition at line 94 of file SimpleRandomAccessRangeFromPoint.h.

Constructor & Destructor Documentation

◆ SimpleRandomAccessRangeFromPoint() [1/2]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::SimpleRandomAccessRangeFromPoint ( const TIterator & itb,
const TIterator & ite,
const DistanceFunctor & aDistance )
inline

Standard constructor from two iterators and one functor.

Parameters
itbbegin iterator.
iteend iterator.
aDistancefunctor used to adapt on-the-fly the elements of the range

Definition at line 112 of file SimpleRandomAccessRangeFromPoint.h.

◆ SimpleRandomAccessRangeFromPoint() [2/2]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::SimpleRandomAccessRangeFromPoint ( const SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor > & other)
inline

Copy constructor.

Parameters
otherthe iterator to clone.

Definition at line 121 of file SimpleRandomAccessRangeFromPoint.h.

◆ ~SimpleRandomAccessRangeFromPoint()

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::~SimpleRandomAccessRangeFromPoint ( )
inline

Destructor. Does nothing.

Definition at line 145 of file SimpleRandomAccessRangeFromPoint.h.

145{}

Member Function Documentation

◆ begin() [1/4]

◆ begin() [2/4]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
ConstIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::begin ( ) const
inline

Iterator service.

Returns
begin iterator

Definition at line 224 of file SimpleRandomAccessRangeFromPoint.h.

◆ begin() [3/4]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
Iterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::begin ( const Point & aPoint)
inline

Iterator service.

Parameters
aPointa Point
Returns
begin iterator at aPoint

Definition at line 215 of file SimpleRandomAccessRangeFromPoint.h.

216 {
217 return Iterator ( myBegin ) + myDistance ( aPoint );
218 }

◆ begin() [4/4]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
ConstIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::begin ( const Point & aPoint) const
inline

Iterator service.

Parameters
aPointa Point
Returns
begin iterator at aPoint

Definition at line 235 of file SimpleRandomAccessRangeFromPoint.h.

236 {
237 return ConstIterator ( myBegin ) + myDistance ( aPoint );
238 }

◆ BOOST_CONCEPT_ASSERT() [1/3]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::BOOST_CONCEPT_ASSERT ( (boost::RandomAccessIterator< TConstIterator >) )
private

◆ BOOST_CONCEPT_ASSERT() [2/3]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::BOOST_CONCEPT_ASSERT ( (boost::RandomAccessIterator< TIterator >) )
private

◆ BOOST_CONCEPT_ASSERT() [3/3]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::BOOST_CONCEPT_ASSERT ( (boost::UnaryFunction< DistanceFunctor, typename DistanceFunctor::Difference, typename DistanceFunctor::Point >) )
private

◆ c() [1/2]

◆ c() [2/2]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
ConstCirculator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::c ( ) const
inline

Constant circulator service.

Returns
a constant circulator

Definition at line 377 of file SimpleRandomAccessRangeFromPoint.h.

378 {
379 return ConstCirculator ( this->begin(), this->begin(), this->end() );
380 }

◆ className()

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
std::string DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::className ( ) const
inline
Returns
the style name used for drawing this object.

Definition at line 173 of file SimpleRandomAccessRangeFromPoint.h.

174 {
175 return "SimpleRandomAccessRangeFromPoint";
176 }

◆ end() [1/2]

◆ end() [2/2]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
ConstIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::end ( ) const
inline

Iterator service.

Returns
end iterator

Definition at line 253 of file SimpleRandomAccessRangeFromPoint.h.

254 {
255 return ConstIterator ( myEnd );
256 }

◆ isValid()

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
bool DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::isValid ( ) const
inline

Checks the validity/consistency of the object.

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

Definition at line 151 of file SimpleRandomAccessRangeFromPoint.h.

152 {
153 return true;
154 }

◆ operator=()

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
SimpleRandomAccessRangeFromPoint & DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::operator= ( const SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor > & other)
inline

Assignment.

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

Definition at line 130 of file SimpleRandomAccessRangeFromPoint.h.

131 {
132 if ( this != &other )
133 {
135 myEnd = other.myEnd;
137 }
138
139 return *this;
140 }

◆ outputIterator() [1/2]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
OutputIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::outputIterator ( )
inline

OutputIterator service.

Returns
an output iterator on the first elements

Definition at line 262 of file SimpleRandomAccessRangeFromPoint.h.

Referenced by main(), and testImage().

◆ outputIterator() [2/2]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
OutputIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::outputIterator ( const Point & aPoint)
inline

OutputIterator service.

Parameters
aPointa point
Returns
an output iterator on the point

Definition at line 272 of file SimpleRandomAccessRangeFromPoint.h.

273 {
274 return OutputIterator ( myBegin ) + myDistance ( aPoint ) ;
275 }

◆ rbegin() [1/4]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
ReverseIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::rbegin ( )
inline

Iterator service.

Returns
rbegin iterator

Definition at line 300 of file SimpleRandomAccessRangeFromPoint.h.

301 {
302 return ReverseIterator ( this->end() );
303 }
boost::reverse_iterator< Iterator > ReverseIterator

Referenced by drawingTestStabbingCircleComputer(), main(), and testCodesIterators().

◆ rbegin() [2/4]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
ConstReverseIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::rbegin ( ) const
inline

Iterator service.

Returns
rbegin iterator

Definition at line 330 of file SimpleRandomAccessRangeFromPoint.h.

331 {
332 return ConstReverseIterator ( this->end() );
333 }
boost::reverse_iterator< ConstIterator > ConstReverseIterator

◆ rbegin() [3/4]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
ReverseIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::rbegin ( const Point & aPoint)
inline

Iterator service.

Parameters
aPointa Point
Returns
rbegin iterator at aPoint

Definition at line 310 of file SimpleRandomAccessRangeFromPoint.h.

311 {
312 return ReverseIterator ( myBegin + myDistance ( aPoint ) + 1 );
313 }

◆ rbegin() [4/4]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
ConstReverseIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::rbegin ( const Point & aPoint) const
inline

Iterator service.

Parameters
aPointa Point
Returns
rbegin iterator at aPoint

Definition at line 340 of file SimpleRandomAccessRangeFromPoint.h.

341 {
342 return ConstReverseIterator ( myBegin + myDistance ( aPoint ) + 1 );
343 }

◆ rc() [1/2]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
ReverseCirculator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::rc ( )
inline

Reverse mutable circulator service.

Returns
a reverse circulator

Definition at line 368 of file SimpleRandomAccessRangeFromPoint.h.

369 {
370 return ReverseCirculator ( this->c() );
371 }
boost::reverse_iterator< Circulator > ReverseCirculator

◆ rc() [2/2]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
ConstReverseCirculator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::rc ( ) const
inline

Reverse constant circulator service.

Returns
a reverse constant circulator

Definition at line 386 of file SimpleRandomAccessRangeFromPoint.h.

387 {
388 return ConstReverseCirculator ( this->c() );
389 }
boost::reverse_iterator< ConstCirculator > ConstReverseCirculator

◆ rend() [1/2]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
ReverseIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::rend ( )
inline

Iterator service.

Returns
rend iterator

Definition at line 320 of file SimpleRandomAccessRangeFromPoint.h.

321 {
322 return ReverseIterator ( myBegin );
323 }

Referenced by drawingTestStabbingCircleComputer(), main(), testCodesIterators(), and testStabbingLineComputer().

◆ rend() [2/2]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
ConstReverseIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::rend ( ) const
inline

Iterator service.

Returns
rend iterator

Definition at line 350 of file SimpleRandomAccessRangeFromPoint.h.

351 {
352 return ConstReverseIterator ( myBegin );
353 }

◆ routputIterator() [1/2]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
ReverseOutputIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::routputIterator ( )
inline

ReverseOutputIterator service.

Returns
an output itertor on the first elements

Definition at line 281 of file SimpleRandomAccessRangeFromPoint.h.

282 {
283 return ReverseOutputIterator ( this->end() );
284 }
boost::reverse_iterator< Iterator > ReverseOutputIterator

◆ routputIterator() [2/2]

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
ReverseOutputIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::routputIterator ( const Point & aPoint)
inline

ReverseOutputIterator service.

Parameters
aPointa point
Returns
an output iterator on the point

Definition at line 291 of file SimpleRandomAccessRangeFromPoint.h.

292 {
293 return ReverseOutputIterator ( myBegin + myDistance ( aPoint ) + 1 ) ;
294 }

◆ selfDisplay()

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
void DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::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 161 of file SimpleRandomAccessRangeFromPoint.h.

162 {
164 out << "[SimpleRandomAccessRangeFromPoint]" << std::endl;
165 out << "\t";
167 out << std::endl;
168 }

Field Documentation

◆ myBegin

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
TIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::myBegin
private

◆ myDistance

◆ myEnd

template<typename TConstIterator, typename TIterator, typename DistanceFunctor>
TIterator DGtal::SimpleRandomAccessRangeFromPoint< TConstIterator, TIterator, DistanceFunctor >::myEnd
private

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