]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/vehicle.h
Framework for supporting multiple control protocols in a single driver
[r2c2.git] / source / libmarklin / vehicle.h
index 303c6686a339d6fc938823f6e80ac2d0426b373b..75ae85954c4ef1e4b2f5fb128873c41aa767140c 100644 (file)
@@ -49,6 +49,8 @@ private:
        Point position;
        float direction;
        std::vector<float> bogie_dirs;
+       unsigned front_sensor;
+       unsigned back_sensor;
 
 public:
        Vehicle(Layout &, const VehicleType &);
@@ -63,7 +65,8 @@ public:
        Vehicle *get_next() const { return next; }
        Vehicle *get_previous() const { return prev; }
 
-       void place(Track *, unsigned, float, PlaceMode = CENTER);
+       void place(Track &, unsigned, float, PlaceMode = CENTER);
+       void unplace();
        void advance(float);
        Track *get_track() const { return track_pos.track; }
        unsigned get_entry() const { return track_pos.ep; }
@@ -77,6 +80,7 @@ private:
        void propagate_position();
        void propagate_forward();
        void propagate_backward();
+       void check_sensor(float, unsigned &);
 
        void adjust_for_distance(TrackPosition &, TrackPosition &, float, float = 0.5) const;
        TrackPoint get_point(const Point &, const Point &, float = 0.5) const;