lemon/bits/graph_extender.h
changeset 1996 5dc13b93f8b4
parent 1993 2115143eceea
child 1999 2ff283124dfc
equal deleted inserted replaced
11:2c0849551de9 12:d0a69f4a3f25
    14  * express or implied, and with no claim as to its suitability for any
    14  * express or implied, and with no claim as to its suitability for any
    15  * purpose.
    15  * purpose.
    16  *
    16  *
    17  */
    17  */
    18 
    18 
    19 #ifndef LEMON_GRAPH_EXTENDER_H
    19 #ifndef LEMON_BITS_GRAPH_EXTENDER_H
    20 #define LEMON_GRAPH_EXTENDER_H
    20 #define LEMON_BITS_GRAPH_EXTENDER_H
    21 
    21 
    22 #include <lemon/bits/invalid.h>
    22 #include <lemon/bits/invalid.h>
    23 #include <lemon/error.h>
    23 #include <lemon/error.h>
    24 
    24 
    25 #include <lemon/bits/default_map.h>
    25 #include <lemon/bits/default_map.h>
    26 
    26 
       
    27 ///\ingroup graphbits
       
    28 ///\file
       
    29 ///\brief Extenders for the graph types
    27 namespace lemon {
    30 namespace lemon {
    28 
    31 
       
    32   /// \ingroup graphbits
       
    33   ///
       
    34   /// \brief Extender for the Graphs
    29   template <typename Base>
    35   template <typename Base>
    30   class GraphExtender : public Base {
    36   class GraphExtender : public Base {
    31   public:
    37   public:
    32 
    38 
    33     typedef Base Parent;
    39     typedef Base Parent;
   318       getNotifier(Edge()).clear();
   324       getNotifier(Edge()).clear();
   319       getNotifier(Node()).clear();
   325       getNotifier(Node()).clear();
   320     }
   326     }
   321   };
   327   };
   322 
   328 
       
   329   /// \ingroup graphbits
       
   330   ///
       
   331   /// \brief BaseExtender for the UGraphs
   323   template <typename Base>
   332   template <typename Base>
   324   class UGraphBaseExtender : public Base {
   333   class UGraphBaseExtender : public Base {
   325 
   334 
   326   public:
   335   public:
   327 
   336 
   558       return INVALID;
   567       return INVALID;
   559     }
   568     }
   560   };
   569   };
   561 
   570 
   562 
   571 
       
   572   /// \ingroup graphbits
       
   573   ///
       
   574   /// \brief Extender for the UGraphs
   563   template <typename Base> 
   575   template <typename Base> 
   564   class UGraphExtender : public Base {
   576   class UGraphExtender : public Base {
   565   public:
   577   public:
   566     
   578     
   567     typedef Base Parent;
   579     typedef Base Parent;
   976     }
   988     }
   977 
   989 
   978   };
   990   };
   979 
   991 
   980 
   992 
       
   993   /// \ingroup graphbits
       
   994   ///
       
   995   /// \brief BaseExtender for the BpUGraphs
   981   template <typename Base>
   996   template <typename Base>
   982   class BpUGraphBaseExtender : public Base {
   997   class BpUGraphBaseExtender : public Base {
   983   public:
   998   public:
   984     typedef Base Parent;
   999     typedef Base Parent;
   985     typedef BpUGraphBaseExtender Graph;
  1000     typedef BpUGraphBaseExtender Graph;
  1165     Edge direct(const UEdge& edge, bool direction) const {
  1180     Edge direct(const UEdge& edge, bool direction) const {
  1166       return Edge(edge, direction);
  1181       return Edge(edge, direction);
  1167     }
  1182     }
  1168   };
  1183   };
  1169 
  1184 
       
  1185   /// \ingroup graphbits
       
  1186   ///
       
  1187   /// \brief Extender for the BpUGraphs
  1170   template <typename Base>
  1188   template <typename Base>
  1171   class BpUGraphExtender : public Base {
  1189   class BpUGraphExtender : public Base {
  1172   public:
  1190   public:
  1173     typedef Base Parent;
  1191     typedef Base Parent;
  1174     typedef BpUGraphExtender Graph;
  1192     typedef BpUGraphExtender Graph;
  1794 
  1812 
  1795   };
  1813   };
  1796 
  1814 
  1797 }
  1815 }
  1798 
  1816 
  1799 #endif // LEMON_UNDIR_GRAPH_EXTENDER_H
  1817 #endif