]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/engineer.h
Use maps instead of lists in Layout3D
[r2c2.git] / source / engineer / engineer.h
index 30a3825893827539c8328487e91b76e15c8037eb..61a2f59e37730c53e88a87bccbfd26bda1ea6abc 100644 (file)
@@ -20,12 +20,13 @@ Distributed under the GPL
 #include "libmarklin/train.h"
 #include "3d/layout.h"
 #include "3d/overlay.h"
+#include "3d/path.h"
 #include "network/server.h"
 #include "options.h"
 
 class MainPanel;
 class TrainPanel;
-class TrainProperties;
+class TrainView;
 
 class Engineer: public Msp::Application
 {
@@ -55,11 +56,15 @@ private:
 
        MainPanel *main_panel;
        std::list<TrainPanel *> train_panels;
+       std::list<TrainView *> train_views;
        Msp::Time::TimeStamp status_timeout;
        bool picking;
        Marklin::Track *picking_track;
        int picking_entry;
        Marklin::Path3D *picking_path;
+       int pointer_x;
+       int pointer_y;
+       bool pointer_moved;
 
 public:
        Engineer(int argc, char **argv);
@@ -69,7 +74,12 @@ public:
        Msp::GLtk::Root &get_root() const { return *root; }
        const Marklin::Catalogue &get_catalogue() const { return catalogue; }
        Marklin::Layout &get_layout() { return layout; }
+       Marklin::Layout3D &get_layout_3d() { return layout_3d; }
+       const Msp::GL::Lighting &get_lighting() const { return lighting; }
        void set_status(const std::string &);
+       void rearrange_panels();
+       void add_train_view(TrainView &);
+       void remove_train_view(TrainView &);
        void pick(bool);
        int main();
        void quit() { exit(0); }