]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/vehicle.h
Introduce a tilt (vertical angle) property to Object
[r2c2.git] / source / libr2c2 / vehicle.h
index e7427b1e92ef6bb61b95ae48b9241664997b7413..94ae2b1683e648cc8f07cb9edfc1ff56d107ecdf 100644 (file)
@@ -9,6 +9,7 @@
 namespace R2C2 {
 
 class Layout;
+class Train;
 
 class attachment_error: public std::logic_error
 {
@@ -69,6 +70,7 @@ private:
        };
 
        const VehicleType &type;
+       Train *train;
        Vehicle *next;
        Vehicle *prev;
        TrackPosition track_pos;
@@ -85,6 +87,8 @@ public:
        virtual Vehicle *clone(Layout * = 0) const;
        virtual const VehicleType &get_type() const { return type; }
 
+       void set_train(Train *);
+       Train *get_train() const { return train; }
        void attach_back(Vehicle &);
        void attach_front(Vehicle &);
        void detach_back();
@@ -95,6 +99,7 @@ public:
        // TODO implement these - should call place() with suitable parameters
        virtual void set_position(const Vector &) { }
        virtual void set_rotation(const Angle &) { }
+       virtual void set_tilt(const Angle &) { }
        void place(const TrackIter &, float, PlaceMode = CENTER);
        void unplace();
        void advance(float);