util::Circulator< Iterator > Class Template Reference

#include <Circulator.h>

List of all members.

Public Member Functions

 Circulator ()
 Circulator (Iterator begin, Iterator end, Iterator pos)
Iterator getIterator () const
bool isValid () const

Friends

class boost::iterator_core_access


Detailed Description

template<class Iterator>
class util::Circulator< Iterator >

This class converts a conventional iterator range to a circulator. This can be quite useful for structures like lists of edges around a vertex or something similar, where the arbitrary begin iterator of the list is not where you might want to start iterating. This is based on work by Dietmar Kuhl, but adapted to use the boost iterator_facade functionality. Because it's templatized on iterator type, a circulator could easily take a const_iterator as well, or a vanilla pointer or whatever. As long as there is a range, it should work. TODO: This circulator is for bidirectional iterators only right now. There's no reason it couldn't be adapted for forward or random access iterators based on the iterator's category.


Constructor & Destructor Documentation

template<class Iterator>
util::Circulator< Iterator >::Circulator  )  [inline]
 

template<class Iterator>
util::Circulator< Iterator >::Circulator Iterator  begin,
Iterator  end,
Iterator  pos
[inline, explicit]
 


Member Function Documentation

template<class Iterator>
Iterator util::Circulator< Iterator >::getIterator  )  const [inline]
 

template<class Iterator>
bool util::Circulator< Iterator >::isValid  )  const [inline]
 


Friends And Related Function Documentation

template<class Iterator>
friend class boost::iterator_core_access [friend]
 


The documentation for this class was generated from the following file:
Generated on Tue Jan 29 21:37:58 2008 for VoluMill Universal Client by  doxygen 1.4.6