void TrainRoutePlanner::TrainRoutingState::advance_track(unsigned next_path)
{
float distance = occupied_tracks->path_length-offset;
+
track = track.next(path);
path = next_path;
occupied_tracks = new OccupiedTrack(*track, path, occupied_tracks);
+
advance(distance);
offset = 0;
}
return TrackIter();
}
-TrackIter Zone::get_end(Direction dir) const
-{
- if(dir==UNSPECIFIED)
- return ends[0];
- if(up_end<0)
- return TrackIter();
-
- return ends[up_end^(dir==DOWN)];
-}
-
TrackIter Zone::next_iter(const TrackIter &iter) const
{
TrackIter next_outside;
return next_outside;
}
+TrackIter Zone::get_end(Direction dir) const
+{
+ if(dir==UNSPECIFIED)
+ return ends[0];
+ if(up_end<0)
+ return TrackIter();
+
+ return ends[up_end^(dir==DOWN)];
+}
+
void Zone::save(list<DataFile::Statement> &st) const
{
st.push_back((DataFile::Statement("group"), group));