Changeset 239:7b7e3f20bcec in lemon
 Timestamp:
 07/29/08 14:54:08 (12 years ago)
 Branch:
 default
 Parents:
 238:79643f6e8c52 (diff), 235:b46d2787e9c2 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.  Phase:
 public
 Files:

 2 edited
Legend:
 Unmodified
 Added
 Removed

lemon/list_graph.h
r235 r239 843 843 844 844 public: 845 operator Edge() const { return edgeFromId(id / 2); } 845 operator Edge() const { 846 return id != 1 ? edgeFromId(id / 2) : INVALID; 847 } 846 848 847 849 Arc() {} 
lemon/list_graph.h
r238 r239 396 396 bool valid(Arc a) const { return Parent::valid(a); } 397 397 398 /// Change the target of \c eto \c n399 400 /// Change the target of \c eto \c n398 /// Change the target of \c a to \c n 399 400 /// Change the target of \c a to \c n 401 401 /// 402 402 ///\note The <tt>ArcIt</tt>s and <tt>OutArcIt</tt>s referencing … … 406 406 ///\warning This functionality cannot be used together with the Snapshot 407 407 ///feature. 408 void changeTarget(Arc e, Node n) {409 Parent::changeTarget( e,n);410 } 411 /// Change the source of \c eto \c n412 413 /// Change the source of \c eto \c n414 /// 415 ///\note The <tt> ArcIt</tt>s and <tt>InArcIt</tt>s referencing416 /// the changed arc remain valid. However<tt>OutArcIt</tt>s are408 void changeTarget(Arc a, Node n) { 409 Parent::changeTarget(a,n); 410 } 411 /// Change the source of \c a to \c n 412 413 /// Change the source of \c a to \c n 414 /// 415 ///\note The <tt>InArcIt</tt>s referencing the changed arc remain 416 ///valid. However the <tt>ArcIt<tt>s and <tt>OutArcIt</tt>s are 417 417 ///invalidated. 418 418 /// 419 419 ///\warning This functionality cannot be used together with the Snapshot 420 420 ///feature. 421 void changeSource(Arc e, Node n) {422 Parent::changeSource( e,n);421 void changeSource(Arc a, Node n) { 422 Parent::changeSource(a,n); 423 423 } 424 424 … … 1117 1117 protected: 1118 1118 1119 void change Target(Edge e, Node n) {1119 void changeV(Edge e, Node n) { 1120 1120 if(arcs[2 * e.id].next_out != 1) { 1121 1121 arcs[arcs[2 * e.id].next_out].prev_out = arcs[2 * e.id].prev_out; … … 1138 1138 } 1139 1139 1140 void change Source(Edge e, Node n) {1140 void changeU(Edge e, Node n) { 1141 1141 if(arcs[(2 * e.id)  1].next_out != 1) { 1142 1142 arcs[arcs[(2 * e.id)  1].next_out].prev_out = … … 1261 1261 /// added to the graph. 1262 1262 bool valid(Edge e) const { return Parent::valid(e); } 1263 /// \brief Change the source of \c e to \c n 1264 /// 1265 /// This function changes the source of \c e to \c n. 1266 /// 1267 ///\note The <tt>ArcIt</tt>s and <tt>InArcIt</tt>s 1268 ///referencing the changed arc remain 1269 ///valid. However <tt>OutArcIt</tt>s are invalidated. 1263 /// \brief Change the end \c u of \c e to \c n 1264 /// 1265 /// This function changes the end \c u of \c e to node \c n. 1266 /// 1267 ///\note The <tt>EdgeIt</tt>s and <tt>ArcIt</tt>s referencing the 1268 ///changed edge are invalidated and if the changed node is the 1269 ///base node of an iterator then this iterator is also 1270 ///invalidated. 1270 1271 /// 1271 1272 ///\warning This functionality cannot be used together with the 1272 1273 ///Snapshot feature. 1273 void changeSource(Edge e, Node n) { 1274 Parent::changeSource(e,n); 1275 } 1276 /// \brief Change the target of \c e to \c n 1277 /// 1278 /// This function changes the target of \c e to \c n. 1279 /// 1280 /// \note The <tt>ArcIt</tt>s referencing the changed arc remain 1281 /// valid. However the other iterators may be invalidated. 1274 void changeU(Edge e, Node n) { 1275 Parent::changeU(e,n); 1276 } 1277 /// \brief Change the end \c v of \c e to \c n 1278 /// 1279 /// This function changes the end \c v of \c e to \c n. 1280 /// 1281 ///\note The <tt>EdgeIt</tt>s referencing the changed edge remain 1282 ///valid, however <tt>ArcIt</tt>s and if the changed node is the 1283 ///base node of an iterator then this iterator is invalidated. 1282 1284 /// 1283 1285 ///\warning This functionality cannot be used together with the 1284 1286 ///Snapshot feature. 1285 void changeTarget(Edge e, Node n) { 1286 Parent::changeTarget(e,n); 1287 } 1288 /// \brief Change the source of \c e to \c n 1289 /// 1290 /// This function changes the source of \c e to \c n. 1291 /// It also changes the proper node of the represented edge. 1292 /// 1293 ///\note The <tt>ArcIt</tt>s and <tt>InArcIt</tt>s 1294 ///referencing the changed arc remain 1295 ///valid. However <tt>OutArcIt</tt>s are invalidated. 1296 /// 1297 ///\warning This functionality cannot be used together with the 1298 ///Snapshot feature. 1299 void changeSource(Arc e, Node n) { 1300 if (Parent::direction(e)) { 1301 Parent::changeSource(e,n); 1302 } else { 1303 Parent::changeTarget(e,n); 1304 } 1305 } 1306 /// \brief Change the target of \c e to \c n 1307 /// 1308 /// This function changes the target of \c e to \c n. 1309 /// It also changes the proper node of the represented edge. 1310 /// 1311 ///\note The <tt>ArcIt</tt>s and <tt>OutArcIt</tt>s 1312 ///referencing the changed arc remain 1313 ///valid. However <tt>InArcIt</tt>s are invalidated. 1314 /// 1315 ///\warning This functionality cannot be used together with the 1316 ///Snapshot feature. 1317 void changeTarget(Arc e, Node n) { 1318 if (Parent::direction(e)) { 1319 Parent::changeTarget(e,n); 1320 } else { 1321 Parent::changeSource(e,n); 1322 } 1287 void changeV(Edge e, Node n) { 1288 Parent::changeV(e,n); 1323 1289 } 1324 1290 /// \brief Contract two nodes. … … 1340 1306 if (r && runningNode(e) == a) { 1341 1307 erase(e); 1342 } else if ( source(e) == b) {1343 change Source(e, a);1308 } else if (u(e) == b) { 1309 changeU(e, a); 1344 1310 } else { 1345 change Target(e, a);1311 changeV(e, a); 1346 1312 } 1347 1313 e = f;
Note: See TracChangeset
for help on using the changeset viewer.