X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fzone.h;h=647a6195e2dcac73567a15d934b6ea4379f17d74;hb=d84f187ca34a6ab2f8c37d85fa13d5c113714344;hp=cee45e8d311a29bd15b39ead3e2807aff5856189;hpb=8c7fc0b79ce88e0295e0e6ea52cb7eb753158d8a;p=r2c2.git diff --git a/source/libr2c2/zone.h b/source/libr2c2/zone.h index cee45e8..647a619 100644 --- a/source/libr2c2/zone.h +++ b/source/libr2c2/zone.h @@ -22,6 +22,7 @@ public: virtual void finish(); void block(unsigned); void direction_hint(unsigned, Direction); + void preferred_direction(Direction); }; private: @@ -29,6 +30,7 @@ private: std::string qualifier; unsigned number; int up_end; + Direction preferred_dir; public: Zone(Layout &); @@ -43,12 +45,20 @@ public: 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; virtual TrackIter get_end(Direction) const; void save(std::list &) const;