5 #include <msp/core/application.h>
6 #include <msp/gl/font.h>
7 #include <msp/time/timestamp.h>
8 #include "libmarklin/catalogue.h"
9 #include "libmarklin/layout.h"
10 #include "3d/layout.h"
18 class Designer: public Msp::Application
33 Marklin::Catalogue catalogue;
34 Marklin::Layout *layout;
35 Marklin::Layout3D *layout_3d;
36 Marklin::Layout *cat_layout;
37 Marklin::Layout3D *cat_layout_3d;
39 Manipulator *manipulator;
45 Marklin::Point cam_pos;
57 Msp::Time::TimeStamp tooltip_timeout;
58 Msp::Time::TimeStamp last_tick;
61 Designer(int, char **);
64 Marklin::Layout *get_layout() { return layout; }
65 Marklin::Layout3D *get_layout_3d() { return layout_3d; }
66 Msp::GL::Font &get_font() { return *font; }
68 void map_pointer_coords(int, int, float &, float &);
71 void key_press(unsigned, unsigned, wchar_t);
72 void key_release(unsigned, unsigned);
73 void button_press(int, int, float, float, unsigned);
74 void pointer_motion(int, int, float, float);
78 Marklin::Track3D *pick_track(int, int);
79 void manipulation_status(const std::string &);
80 void manipulation_done(bool);
81 void measure_changed();
83 void move_tooltip(int, int);
85 void turnout_id_accept();
86 void sensor_id_accept();
89 static Msp::Application::RegApp<Designer> reg;