lemon/concept/undir_graph.h
changeset 1630 f67737f5727a
parent 1627 3fd1ba6e9872
child 1631 e15162d8eca1
equal deleted inserted replaced
4:6b8f2ffd4d6b 5:bbc211a25d64
    30 #include <lemon/utility.h>
    30 #include <lemon/utility.h>
    31 
    31 
    32 namespace lemon {
    32 namespace lemon {
    33   namespace concept {
    33   namespace concept {
    34 
    34 
    35     /// Skeleton class which describes an edge with direction in \ref
    35 //     /// Skeleton class which describes an edge with direction in \ref
    36     /// UndirGraph "undirected graph".
    36 //     /// UndirGraph "undirected graph".
    37     template <typename UndirGraph>
    37     template <typename UndirGraph>
    38     class UndirGraphEdge : public UndirGraph::UndirEdge {
    38     class UndirGraphEdge : public UndirGraph::UndirEdge {
    39       typedef typename UndirGraph::UndirEdge UndirEdge;
    39       typedef typename UndirGraph::UndirEdge UndirEdge;
    40       typedef typename UndirGraph::Node Node;
    40       typedef typename UndirGraph::Node Node;
    41     public:
    41     public:
   672       /// 
   672       /// 
   673       /// ReadWrite map of the nodes to type \c T.
   673       /// ReadWrite map of the nodes to type \c T.
   674       /// \sa Reference
   674       /// \sa Reference
   675       /// \warning Making maps that can handle bool type (NodeMap<bool>)
   675       /// \warning Making maps that can handle bool type (NodeMap<bool>)
   676       /// needs some extra attention!
   676       /// needs some extra attention!
       
   677       /// \todo Wrong documentation
   677       template<class T> 
   678       template<class T> 
   678       class NodeMap : public ReadWriteMap< Node, T >
   679       class NodeMap : public ReadWriteMap< Node, T >
   679       {
   680       {
   680       public:
   681       public:
   681 
   682 
   695       ///
   696       ///
   696       /// Reference map of the directed edges to type \c T.
   697       /// Reference map of the directed edges to type \c T.
   697       /// \sa Reference
   698       /// \sa Reference
   698       /// \warning Making maps that can handle bool type (EdgeMap<bool>)
   699       /// \warning Making maps that can handle bool type (EdgeMap<bool>)
   699       /// needs some extra attention!
   700       /// needs some extra attention!
       
   701       /// \todo Wrong documentation
   700       template<class T> 
   702       template<class T> 
   701       class EdgeMap : public ReadWriteMap<Edge,T>
   703       class EdgeMap : public ReadWriteMap<Edge,T>
   702       {
   704       {
   703       public:
   705       public:
   704 
   706 
   717 
   719 
   718       /// Reference map of the edges to type \c T.
   720       /// Reference map of the edges to type \c T.
   719       /// \sa Reference
   721       /// \sa Reference
   720       /// \warning Making maps that can handle bool type (UndirEdgeMap<bool>)
   722       /// \warning Making maps that can handle bool type (UndirEdgeMap<bool>)
   721       /// needs some extra attention!
   723       /// needs some extra attention!
       
   724       /// \todo Wrong documentation
   722       template<class T> 
   725       template<class T> 
   723       class UndirEdgeMap : public ReadWriteMap<UndirEdge,T>
   726       class UndirEdgeMap : public ReadWriteMap<UndirEdge,T>
   724       {
   727       {
   725       public:
   728       public:
   726 
   729 
   788       Node source(Edge) const { return INVALID; }
   791       Node source(Edge) const { return INVALID; }
   789 
   792 
   790       /// \brief Target node of the directed edge.
   793       /// \brief Target node of the directed edge.
   791       Node target(Edge) const { return INVALID; }
   794       Node target(Edge) const { return INVALID; }
   792 
   795 
   793       /// \brief First node of the graph
   796 //       /// \brief First node of the graph
   794       ///
   797 //       ///
   795       /// \note This method is part of so called \ref
   798 //       /// \note This method is part of so called \ref
   796       /// developpers_interface "Developpers' interface", so it shouldn't
   799 //       /// developpers_interface "Developpers' interface", so it shouldn't
   797       /// be used in an end-user program.
   800 //       /// be used in an end-user program.
   798       void first(Node&) const {}
   801       void first(Node&) const {}
   799       /// \brief Next node of the graph
   802 //       /// \brief Next node of the graph
   800       ///
   803 //       ///
   801       /// \note This method is part of so called \ref
   804 //       /// \note This method is part of so called \ref
   802       /// developpers_interface "Developpers' interface", so it shouldn't
   805 //       /// developpers_interface "Developpers' interface", so it shouldn't
   803       /// be used in an end-user program.
   806 //       /// be used in an end-user program.
   804       void next(Node&) const {}
   807       void next(Node&) const {}
   805 
   808 
   806       /// \brief First undirected edge of the graph
   809 //       /// \brief First undirected edge of the graph
   807       ///
   810 //       ///
   808       /// \note This method is part of so called \ref
   811 //       /// \note This method is part of so called \ref
   809       /// developpers_interface "Developpers' interface", so it shouldn't
   812 //       /// developpers_interface "Developpers' interface", so it shouldn't
   810       /// be used in an end-user program.
   813 //       /// be used in an end-user program.
   811       void first(UndirEdge&) const {}
   814       void first(UndirEdge&) const {}
   812       /// \brief Next undirected edge of the graph
   815 //       /// \brief Next undirected edge of the graph
   813       ///
   816 //       ///
   814       /// \note This method is part of so called \ref
   817 //       /// \note This method is part of so called \ref
   815       /// developpers_interface "Developpers' interface", so it shouldn't
   818 //       /// developpers_interface "Developpers' interface", so it shouldn't
   816       /// be used in an end-user program.
   819 //       /// be used in an end-user program.
   817       void next(UndirEdge&) const {}
   820       void next(UndirEdge&) const {}
   818 
   821 
   819       /// \brief First directed edge of the graph
   822 //       /// \brief First directed edge of the graph
   820       ///
   823 //       ///
   821       /// \note This method is part of so called \ref
   824 //       /// \note This method is part of so called \ref
   822       /// developpers_interface "Developpers' interface", so it shouldn't
   825 //       /// developpers_interface "Developpers' interface", so it shouldn't
   823       /// be used in an end-user program.
   826 //       /// be used in an end-user program.
   824       void first(Edge&) const {}
   827       void first(Edge&) const {}
   825       /// \brief Next directed edge of the graph
   828 //       /// \brief Next directed edge of the graph
   826       ///
   829 //       ///
   827       /// \note This method is part of so called \ref
   830 //       /// \note This method is part of so called \ref
   828       /// developpers_interface "Developpers' interface", so it shouldn't
   831 //       /// developpers_interface "Developpers' interface", so it shouldn't
   829       /// be used in an end-user program.
   832 //       /// be used in an end-user program.
   830       void next(Edge&) const {}
   833       void next(Edge&) const {}
   831 
   834 
   832       /// \brief First outgoing edge from a given node
   835 //       /// \brief First outgoing edge from a given node
   833       ///
   836 //       ///
   834       /// \note This method is part of so called \ref
   837 //       /// \note This method is part of so called \ref
   835       /// developpers_interface "Developpers' interface", so it shouldn't
   838 //       /// developpers_interface "Developpers' interface", so it shouldn't
   836       /// be used in an end-user program.
   839 //       /// be used in an end-user program.
   837       void firstOut(Edge&, Node) const {}
   840       void firstOut(Edge&, Node) const {}
   838       /// \brief Next outgoing edge to a node
   841 //       /// \brief Next outgoing edge to a node
   839       ///
   842 //       ///
   840       /// \note This method is part of so called \ref
   843 //       /// \note This method is part of so called \ref
   841       /// developpers_interface "Developpers' interface", so it shouldn't
   844 //       /// developpers_interface "Developpers' interface", so it shouldn't
   842       /// be used in an end-user program.
   845 //       /// be used in an end-user program.
   843       void nextOut(Edge&) const {}
   846       void nextOut(Edge&) const {}
   844 
   847 
   845       /// \brief First incoming edge to a given node
   848 //       /// \brief First incoming edge to a given node
   846       ///
   849 //       ///
   847       /// \note This method is part of so called \ref
   850 //       /// \note This method is part of so called \ref
   848       /// developpers_interface "Developpers' interface", so it shouldn't
   851 //       /// developpers_interface "Developpers' interface", so it shouldn't
   849       /// be used in an end-user program.
   852 //       /// be used in an end-user program.
   850       void firstIn(Edge&, Node) const {}
   853       void firstIn(Edge&, Node) const {}
   851       /// \brief Next incoming edge to a node
   854 //       /// \brief Next incoming edge to a node
   852       ///
   855 //       ///
   853       /// \note This method is part of so called \ref
   856 //       /// \note This method is part of so called \ref
   854       /// developpers_interface "Developpers' interface", so it shouldn't
   857 //       /// developpers_interface "Developpers' interface", so it shouldn't
   855       /// be used in an end-user program.
   858 //       /// be used in an end-user program.
   856       void nextIn(Edge&) const {}
   859       void nextIn(Edge&) const {}
   857 
   860 
   858 
   861 
   859       /// \brief Base node of the iterator
   862       /// \brief Base node of the iterator
   860       ///
   863       ///