X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fzone.h;h=647a6195e2dcac73567a15d934b6ea4379f17d74;hb=28947c087bd2d05c1850e320844f2e33fc0fc253;hp=d8488d7da1f58990e3c79f88e189b31fe4bb3f33;hpb=1124a98ce5e1edee1904eeec089976d446601afd;p=r2c2.git diff --git a/source/libr2c2/zone.h b/source/libr2c2/zone.h index d8488d7..647a619 100644 --- a/source/libr2c2/zone.h +++ b/source/libr2c2/zone.h @@ -19,13 +19,18 @@ public: public: Loader(Zone &); 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 &); @@ -33,11 +38,31 @@ public: virtual void set_name(const std::string &); void set_name(const std::string &, const std::string &, unsigned); +private: + void update_name(); +public: const std::string &get_group() const { return group; } 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; }; } // namespace R2C2