X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fzone.h;h=647a6195e2dcac73567a15d934b6ea4379f17d74;hb=7bb91be43af2af92cc1cc16035b8fe97f9e14384;hp=fc44d4f205de91ad88bc3b7458310f2a39287996;hpb=1c15570729bbce44f0518373ca5bf8bf41cfa3b3;p=r2c2.git diff --git a/source/libr2c2/zone.h b/source/libr2c2/zone.h index fc44d4f..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,14 +45,21 @@ 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; - TrackIter get_end(Direction) const; + virtual TrackIter get_end(Direction) const; void save(std::list &) const; virtual Msp::DataFile::Statement save_reference() const;