103 |
103 |
104 }; |
104 }; |
105 |
105 |
106 |
106 |
107 template <typename _Base> |
107 template <typename _Base> |
108 class ExtendableUBipartiteGraphExtender : public _Base { |
108 class ExtendableBpUGraphExtender : public _Base { |
109 public: |
109 public: |
110 |
110 |
111 typedef _Base Parent; |
111 typedef _Base Parent; |
112 typedef ExtendableUBipartiteGraphExtender Graph; |
112 typedef ExtendableBpUGraphExtender Graph; |
113 |
113 |
114 typedef typename Parent::Node Node; |
114 typedef typename Parent::Node Node; |
115 typedef typename Parent::LowerNode LowerNode; |
115 typedef typename Parent::BNode BNode; |
116 typedef typename Parent::UpperNode UpperNode; |
116 typedef typename Parent::ANode ANode; |
117 typedef typename Parent::Edge Edge; |
117 typedef typename Parent::Edge Edge; |
118 typedef typename Parent::UEdge UEdge; |
118 typedef typename Parent::UEdge UEdge; |
119 |
119 |
120 Node addUpperNode() { |
120 Node addANode() { |
121 Node node = Parent::addUpperNode(); |
121 Node node = Parent::addANode(); |
122 Parent::getNotifier(UpperNode()).add(node); |
122 Parent::getNotifier(ANode()).add(node); |
123 Parent::getNotifier(Node()).add(node); |
123 Parent::getNotifier(Node()).add(node); |
124 return node; |
124 return node; |
125 } |
125 } |
126 |
126 |
127 Node addLowerNode() { |
127 Node addBNode() { |
128 Node node = Parent::addLowerNode(); |
128 Node node = Parent::addBNode(); |
129 Parent::getNotifier(LowerNode()).add(node); |
129 Parent::getNotifier(BNode()).add(node); |
130 Parent::getNotifier(Node()).add(node); |
130 Parent::getNotifier(Node()).add(node); |
131 return node; |
131 return node; |
132 } |
132 } |
133 |
133 |
134 UEdge addEdge(const Node& source, const Node& target) { |
134 UEdge addEdge(const Node& source, const Node& target) { |