#include <string>
#include <msp/core/application.h>
#include <msp/gbase/simplewindow.h>
+#include <msp/gl/camera.h>
#include <msp/gl/font.h>
#include <msp/gl/light.h>
#include <msp/gl/lighting.h>
#include "libmarklin/layout.h"
#include "3d/layout.h"
#include "3d/track.h"
+#include "cameracontroller.h"
#include "manipulator.h"
#include "measure.h"
#include "selection.h"
Msp::GL::Object *base_object;
Marklin::Route *cur_route;
Msp::GL::Pipeline *pipeline;
+ Msp::GL::Camera camera;
Msp::GL::Lighting lighting;
Msp::GL::Light light;
Manipulator manipulator;
Measure measure;
Input *input;
-
- float cam_yaw;
- float cam_pitch;
- Marklin::Point cam_pos;
+ CameraController camera_ctl;
bool shift;
- int move_x;
- int move_y;
- int zoom;
- int rotate;
- int pitch;
int pointer_x;
int pointer_y;
Marklin::Route *get_current_route() const { return cur_route; }
void add_selection_to_route();
- void map_pointer_coords(int, int, float &, float &);
+ Marklin::Point map_pointer_coords(int, int);
private:
void tick();
void key_press(unsigned, unsigned, wchar_t);
void key_release(unsigned, unsigned);
void button_press(int, int, unsigned, unsigned);
void pointer_motion(int, int);
- void project_3d();
void apply_camera();
void render();
Marklin::Track3D *pick_track(int, int);
void turnout_id_accept();
void sensor_id_accept();
void input_dismiss();
+ void view_all();
};
#endif