]> 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 7dfa7528081593a8982dd3975a25ab4d5fcef801..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:
@@ -55,11 +58,11 @@ public:
        Block &get_block() const;
        virtual void set_position(const Vector &);
        virtual void set_rotation(const Angle &);
-       void set_slope(float);
+       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);