- Block &block = track->get_block();
- TrackIter iter(track, ep);
-
- while(block.has_track(*iter))
- {
- const vector<Block::Endpoint> &eps = block.get_endpoints();
- bool ok = false;
- for(unsigned i=0; (!ok && i<eps.size()); ++i)
- if(eps[i].track==iter.track() && eps[i].track_ep==iter.entry())
- {
- train.place(block, i);
- ok = true;
- }
-
- if(ok)
- break;
-
- iter = iter.flip().reverse();
- }