X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fzone.h;h=647a6195e2dcac73567a15d934b6ea4379f17d74;hb=9a2fd67cec715e371e293be638b126e0d1b2148d;hp=9688c3419540bcf17173bcfbd49d853875f426ff;hpb=1ac853ffc606b29ffd88b923ed3551ee6282afb2;p=r2c2.git diff --git a/source/libr2c2/zone.h b/source/libr2c2/zone.h index 9688c34..647a619 100644 --- a/source/libr2c2/zone.h +++ b/source/libr2c2/zone.h @@ -21,12 +21,16 @@ public: private: virtual void finish(); void block(unsigned); + void direction_hint(unsigned, Direction); + void preferred_direction(Direction); }; private: std::string group; std::string qualifier; unsigned number; + int up_end; + Direction preferred_dir; public: Zone(Layout &); @@ -41,6 +45,22 @@ 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; virtual Msp::DataFile::Statement save_reference() const; };