X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Fblock.h;h=2aed9a40df680f3a769befd02cbe0357b30dd5fd;hb=e392d397f6b86a49a05e9738357ccbfc2a922f01;hp=abcd87cd9b02221edba66d33955eca56abe8c7ad;hpb=651698847d5293cfb15b6fb23a394701388c0151;p=r2c2.git diff --git a/source/libmarklin/block.h b/source/libmarklin/block.h index abcd87c..2aed9a4 100644 --- a/source/libmarklin/block.h +++ b/source/libmarklin/block.h @@ -15,6 +15,8 @@ Distributed under the GPL namespace Marklin { class Layout; +class Route; +class TrackIter; class Train; class Block @@ -47,9 +49,10 @@ public: unsigned get_sensor_id() const { return sensor_id; } unsigned get_turnout_id() const { return turnout_id; } const std::set &get_tracks() const { return tracks; } + bool has_track(Track &) const; const std::vector &get_endpoints() const { return endpoints; } - int get_endpoint_by_link(const Block &) const; - unsigned traverse(unsigned, float * =0) const; + int get_endpoint_by_link(Block &) const; + float get_path_length(unsigned, const Route * = 0) const; void check_link(Block &); void break_link(Block &); Block *get_link(unsigned) const; @@ -57,7 +60,7 @@ public: Train *get_train() const { return train; } void print_debug(); private: - void find_paths(Track &, unsigned, unsigned, std::set &); + void find_paths(TrackIter, unsigned); void determine_id(); };