]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/track.h
Introduce a tilt (vertical angle) property to Object
[r2c2.git] / source / libr2c2 / track.h
index 13409d5e753a75b0b9345f6d072a621e75dc56e5..916ea1966183c8ce5a87ec97a0c2297570a29c4a 100644 (file)
@@ -25,10 +25,13 @@ public:
                void position(float, float, float);
                void rotation(float);
                void sensor_id(unsigned);
+               void slope(float);
+               void tilt(float);
                void turnout_id(unsigned);
        };
 
        sigc::signal<void, unsigned, Track *> signal_link_changed;
+       sigc::signal<void, unsigned> signal_path_changing;
        sigc::signal<void, unsigned> signal_path_changed;
 
 private:
@@ -54,12 +57,12 @@ public:
        void set_block(Block *);
        Block &get_block() const;
        virtual void set_position(const Vector &);
-       virtual void set_rotation(float);
-       void set_slope(float);
+       virtual void set_rotation(const Angle &);
+       virtual void set_tilt(const Angle &);
        void set_flex(bool);
-       float get_slope() const { return slope; }
        bool get_flex() const { return flex; }
 private:
+       void propagate_slope();
        void check_slope();
 
 public:
@@ -89,8 +92,6 @@ public:
        using Object::break_link;
        virtual bool break_link(unsigned);
 
-       virtual bool collide_ray(const Vector &, const Vector &) const;
-
        void save(std::list<Msp::DataFile::Statement> &) const;
 private:
        void turnout_event(unsigned, unsigned);