virtual void finish();
void block(unsigned);
void direction_hint(unsigned, Direction);
+ void preferred_direction(Direction);
};
private:
std::string qualifier;
unsigned number;
int up_end;
+ Direction preferred_dir;
public:
Zone(Layout &);
const std::string &get_qualifier() const { return qualifier; }
unsigned get_number() const { return number; }
+private:
+ virtual void on_track_added(Track &);
+
+public:
void set_direction_towards(Track &, Direction);
+ bool has_direction() const { return up_end>=0; }
+ void set_preferred_direction(Direction);
+ Direction get_preferred_direction() const { return preferred_dir; }
void clear_direction();
virtual TrackIter iter_for(Track &, Direction) const;
private:
TrackIter next_iter(const TrackIter &) const;
public:
using TrackChain::get_end;
- TrackIter get_end(Direction) const;
+ virtual TrackIter get_end(Direction) const;
void save(std::list<Msp::DataFile::Statement> &) const;
virtual Msp::DataFile::Statement save_reference() const;