31 #if defined(DistanceBreadthFirstVisitor_RECURSES) 32 #error Recursive header files inclusion detected in DistanceBreadthFirstVisitor.h 33 #else // defined(DistanceBreadthFirstVisitor_RECURSES) 35 #define DistanceBreadthFirstVisitor_RECURSES 37 #if !defined DistanceBreadthFirstVisitor_h 39 #define DistanceBreadthFirstVisitor_h 45 #include "DGtal/base/Common.h" 46 #include "DGtal/base/ConstAlias.h" 47 #include "DGtal/base/CountedPtr.h" 48 #include "DGtal/graph/CUndirectedSimpleLocalGraph.h" 202 template <
typename TGraph,
203 typename TVertexFunctor,
204 typename TMarkSet =
typename TGraph::VertexSet >
213 typedef typename Graph::Size
Size;
229 struct Node :
public std::pair< Vertex, Scalar >
231 typedef std::pair< Vertex, Scalar >
Base;
236 :
std::pair< Vertex, Scalar >()
239 :
std::pair< Vertex, Scalar >( other )
241 inline Node(
const Vertex & v, Scalar d )
242 :
std::pair< Vertex, Scalar >( v, d )
246 return other.second < second;
250 return other.second <= second;
254 return other.second == second;
258 return other.second != second;
291 const VertexFunctor & distance,
307 template <
typename VertexIterator>
309 const VertexFunctor & distance,
310 VertexIterator b, VertexIterator e );
316 const Graph &
graph()
const;
345 template <
typename TBackInsertionSequence>
392 template <
typename VertexPredicate>
393 void expand(
const VertexPredicate & authorized_vtx );
406 template <
typename VertexPredicate>
407 void expandLayer(
const VertexPredicate & authorized_vtx );
534 template <
typename TGraph,
typename TVertexFunctor,
typename TMarkSet >
544 #include "DGtal/graph/DistanceBreadthFirstVisitor.ih" 549 #endif // !defined DistanceBreadthFirstVisitor_h 551 #undef DistanceBreadthFirstVisitor_RECURSES 552 #endif // else defined(DistanceBreadthFirstVisitor_RECURSES) Aim: This class is useful to perform an exploration of a graph given a starting point or set (called ...
~DistanceBreadthFirstVisitor()
TVertexFunctor VertexFunctor
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
const Node & current() const
bool operator<=(const Node &other) const
void pushAgain(const Node &node)
std::vector< Vertex > VertexList
Internal data structure for storing vertices.
const Graph & graph() const
MarkSet visitedVertices() const
bool operator!=(const Node &other) const
VertexFunctor::Value Scalar
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
bool operator<(const Node &other) const
void selfDisplay(std::ostream &out) const
std::pair< Vertex, Scalar > Base
DGtal is the top-level namespace which contains all DGtal functions and types.
void getCurrentLayer(TBackInsertionSequence &layer)
DistanceBreadthFirstVisitor & operator=(const DistanceBreadthFirstVisitor &other)
MyDigitalSurface::Vertex Vertex
const MarkSet & markedVertices() const
Node(const Vertex &v, Scalar d)
DistanceBreadthFirstVisitor< TGraph, TVertexFunctor, TMarkSet > Self
DistanceBreadthFirstVisitor()
std::priority_queue< Node > NodeQueue
Internal data structure for computing the distance ordering expansion.
bool operator==(const Node &other) const
void swap(DistanceBreadthFirstVisitor &other)