]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/engineer.h
Add Track::get_endpoint_position to avoid duplicating calculations
[r2c2.git] / source / engineer / engineer.h
index 112e52f3a0209277cdda571d158abc235e147c6c..ac5ce2c94d45d3b1fbef42162e075d71a5ccea9e 100644 (file)
@@ -7,6 +7,7 @@
 #include "libmarklin/catalogue.h"
 #include "libmarklin/control.h"
 #include "libmarklin/trafficmanager.h"
+#include "libmarklin/train.h"
 #include "3d/layout.h"
 
 class MainPanel;
@@ -19,10 +20,6 @@ public:
        ~Engineer();
 
        Marklin::Control &get_control()    { return control; }
-       unsigned get_screen_width() const  { return screen_w; }
-       unsigned get_screen_height() const { return screen_h; }
-       unsigned get_font_size() const     { return font_size; }
-       Msp::GL::Font &get_font()          { return *font; }
        void     add_train(unsigned);
        int      main();
        void     quit() { exit(0); }
@@ -31,9 +28,7 @@ private:
 
        unsigned           screen_w;
        unsigned           screen_h;
-       unsigned           font_size;
        bool               fullscreen;
-       Msp::GL::Font      *font;
        Marklin::Catalogue catalogue;
        Marklin::Layout    layout;
        Marklin::Layout3D  layout_3d;
@@ -46,7 +41,10 @@ private:
        std::string        status_text;
        bool               no_lighting;
        Marklin::TrafficManager *trfc_mgr;
-       Train              *placing_train;
+       Marklin::Train     *placing_train;
+       Marklin::Block     *placing_block;
+       const Marklin::Block::Endpoint *placing_entry;
+       bool               simulate;
 
        void tick();
        void key_press(unsigned, unsigned);
@@ -54,8 +52,9 @@ private:
        void button_release(int, int, unsigned);
        void pointer_motion(int, int);
        void view_all();
-       void turnout_route_changed(unsigned);
-       void sensor_state_changed(bool, unsigned);
+       void set_block_color(const Marklin::Block &, const Marklin::Color &);
+       void sensor_event(unsigned, bool);
+       void block_reserved(const Marklin::Block &, const Marklin::Train *);
        void project_3d();
        Marklin::Track3D *pick_track(int, int);