]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/block.h
Make LCD output selectable at runtime through an extra I/O pin
[r2c2.git] / source / libmarklin / block.h
index deaf4c48170f3286d296f88b1fff8e5b5428fa3a..41f904096c0820a33c95bb96cce1df0cd1a60f77 100644 (file)
@@ -16,6 +16,7 @@ namespace Marklin {
 
 class Layout;
 class Route;
+class TrackIter;
 class Train;
 
 class Block
@@ -48,10 +49,11 @@ 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; }
+       const Endpoint &get_endpoint(unsigned) const;
        int get_endpoint_by_link(Block &) const;
-       unsigned traverse(unsigned, float * =0) const;
-       unsigned traverse(unsigned, const Route *, float * =0) const;
+       float get_path_length(unsigned, const Route * = 0) const;
        void check_link(Block &);
        void break_link(Block &);
        Block *get_link(unsigned) const;
@@ -59,7 +61,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();
 };