X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Fvehicle.h;h=75ae85954c4ef1e4b2f5fb128873c41aa767140c;hb=975ea87cc7be179618b06291cb2506a2523cad1f;hp=303c6686a339d6fc938823f6e80ac2d0426b373b;hpb=7ff28ec88dedc3a2327feb4a507ae622cb953113;p=r2c2.git diff --git a/source/libmarklin/vehicle.h b/source/libmarklin/vehicle.h index 303c668..75ae859 100644 --- a/source/libmarklin/vehicle.h +++ b/source/libmarklin/vehicle.h @@ -49,6 +49,8 @@ private: Point position; float direction; std::vector 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;