1035 } |
1035 } |
1036 // KEEP_MAPS(Parent, BidirGraphWrapper); |
1036 // KEEP_MAPS(Parent, BidirGraphWrapper); |
1037 }; |
1037 }; |
1038 |
1038 |
1039 |
1039 |
1040 /// \brief A bidirected graph template. |
|
1041 /// |
|
1042 ///\warning Graph wrappers are in even more experimental state than the other |
|
1043 ///parts of the lib. Use them at you own risk. |
|
1044 /// |
|
1045 /// A bidirected graph template. |
|
1046 /// Such a bidirected graph stores each pair of oppositely directed edges |
|
1047 /// ones in the memory, i.e. a directed graph of type |
|
1048 /// \c Graph is used for that. |
|
1049 /// As the oppositely directed edges are logically different ones |
|
1050 /// the maps are able to attach different values for them. |
|
1051 /// \ingroup graphs |
|
1052 template<typename Graph> |
|
1053 class BidirGraph : public BidirGraphWrapper<Graph> { |
|
1054 public: |
|
1055 typedef UndirGraphWrapper<Graph> Parent; |
|
1056 protected: |
|
1057 Graph gr; |
|
1058 public: |
|
1059 BidirGraph() : BidirGraphWrapper<Graph>() { |
|
1060 Parent::setGraph(gr); |
|
1061 } |
|
1062 // KEEP_MAPS(Parent, BidirGraph); |
|
1063 }; |
|
1064 |
|
1065 |
|
1066 |
|
1067 template<typename Graph, typename Number, |
1040 template<typename Graph, typename Number, |
1068 typename CapacityMap, typename FlowMap> |
1041 typename CapacityMap, typename FlowMap> |
1069 class ResForwardFilter { |
1042 class ResForwardFilter { |
1070 // const Graph* graph; |
1043 // const Graph* graph; |
1071 const CapacityMap* capacity; |
1044 const CapacityMap* capacity; |