]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/block.h
Support more complex article numbers
[r2c2.git] / source / libmarklin / block.h
index abcd87cd9b02221edba66d33955eca56abe8c7ad..2aed9a40df680f3a769befd02cbe0357b30dd5fd 100644 (file)
@@ -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<Track *> &get_tracks() const { return tracks; }
+       bool has_track(Track &) const;
        const std::vector<Endpoint> &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<Track *> &);
+       void find_paths(TrackIter, unsigned);
        void determine_id();
 };