COIN-OR::LEMON - Graph Library

Changeset 2163:bef3457be038 in lemon-0.x for lemon/concept/bpugraph.h


Ignore:
Timestamp:
07/24/06 18:08:34 (16 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2878
Message:

Improving UGraph and BpUGraph concept classes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lemon/concept/bpugraph.h

    r2126 r2163  
    5656    ///
    5757    /// The bipartite graph stores two types of nodes which are named
    58     /// ANode and BNode. The graph type contains two types ANode and BNode
    59     /// which are inherited from Node type. Moreover they have
    60     /// constructor which converts Node to either ANode or BNode when it is
    61     /// possible. Therefor everywhere the Node type can be used instead of
    62     /// ANode and BNode. So the usage of the ANode and BNode is suggested. 
     58    /// ANode and BNode. The graph type contains two types ANode and
     59    /// BNode which are inherited from Node type. Moreover they have
     60    /// constructor which converts Node to either ANode or BNode when
     61    /// it is possible. Therefor everywhere the Node type can be used
     62    /// instead of ANode and BNode. So the usage of the ANode and
     63    /// BNode is not suggested.
    6364    ///
    6465    /// The iteration on the partition can be done with the ANodeIt and
     
    6970    class BpUGraph {
    7071    public:
    71       /// \todo undocumented
    72       ///
     72      /// \brief The undirected graph should be tagged by the
     73      /// UndirectedTag.
     74      ///
     75      /// The undirected graph should be tagged by the UndirectedTag. This
     76      /// tag helps the enable_if technics to make compile time
     77      /// specializations for undirected graphs. 
    7378      typedef True UndirectedTag;
    7479
     
    123128      };
    124129
    125       /// \brief The base type of anode iterators,
    126       /// or in other words, the trivial anode iterator.
    127       ///
    128       /// This is the base type of each anode iterator,
    129       /// thus each kind of anode iterator converts to this.
    130       /// More precisely each kind of node iterator should be inherited
    131       /// from the trivial anode iterator. The ANode class should be used
    132       /// only in special cases. Usually the Node type should be used insted
    133       /// of it.
     130      /// \brief Helper class for ANodes.
     131      ///
     132      /// This class is just a helper class for ANodes, it is not
     133      /// suggested to use it directly. It can be converted easily to
     134      /// node and vice versa. The usage of this class is limited
     135      /// two use just as template parameters for special map types.
    134136      class ANode {
    135137      public:
     
    180182      };
    181183
    182       /// \brief The base type of bnode iterators,
    183       /// or in other words, the trivial bnode iterator.
    184       ///
    185       /// This is the base type of each anode iterator,
    186       /// thus each kind of anode iterator converts to this.
    187       /// More precisely each kind of node iterator should be inherited
    188       /// from the trivial anode iterator. The BNode class should be used
    189       /// only in special cases. Usually the Node type should be used insted
    190       /// of it.
     184      /// \brief Helper class for BNodes.
     185      ///
     186      /// This class is just a helper class for BNodes, it is not
     187      /// suggested to use it directly. It can be converted easily to
     188      /// node and vice versa. The usage of this class is limited
     189      /// two use just as template parameters for special map types.
    191190      class BNode {
    192191      public:
     
    291290      /// for (Graph::ANodeIt n(g); n!=INVALID; ++n) ++count;
    292291      ///\endcode
    293       class ANodeIt : public ANode {
     292      class ANodeIt : public Node {
    294293      public:
    295294        /// Default constructor
     
    336335      /// for (Graph::BNodeIt n(g); n!=INVALID; ++n) ++count;
    337336      ///\endcode
    338       class BNodeIt : public BNode {
     337      class BNodeIt : public Node {
    339338      public:
    340339        /// Default constructor
     
    819818      ///
    820819      /// Direct the given undirected edge. The returned edge source
    821       /// will be the given edge.
     820      /// will be the given node.
    822821      Edge direct(const UEdge&, const Node&) const {
    823822        return INVALID;
     
    826825      /// \brief Direct the given undirected edge.
    827826      ///
    828       /// Direct the given undirected edge. The returned edge source
    829       /// will be the source of the undirected edge if the given bool
    830       /// is true.
     827      /// Direct the given undirected edge. The returned edge
     828      /// represents the given undireted edge and the direction comes
     829      /// from the given bool.  The source of the undirected edge and
     830      /// the directed edge is the same when the given bool is true.
    831831      Edge direct(const UEdge&, bool) const {
    832832        return INVALID;
     
    856856      ///
    857857      /// Returns whether the given directed edge is same orientation as
    858       /// the corresponding undirected edge.
     858      /// the corresponding undirected edge's default orientation.
    859859      bool direction(Edge) const { return true; }
    860860
     
    866866      /// \brief Opposite node on an edge
    867867      ///
    868       /// \return the opposite of the given Node on the given Edge
     868      /// \return the opposite of the given Node on the given UEdge
    869869      Node oppositeNode(Node, UEdge) const { return INVALID; }
    870870
     
    873873      /// \return the first node of the given UEdge.
    874874      ///
    875       /// Naturally uectected edges don't have direction and thus
     875      /// Naturally undirected edges don't have direction and thus
    876876      /// don't have source and target node. But we use these two methods
    877877      /// to query the two endnodes of the edge. The direction of the edge
Note: See TracChangeset for help on using the changeset viewer.