mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-18 03:09:18 +02:00
vehicle params window, aware system rewrite, sifa
This commit is contained in:
@@ -7,66 +7,72 @@
|
||||
#include "widgets/map_objects.h"
|
||||
#include "widgets/popup.h"
|
||||
|
||||
namespace ui {
|
||||
namespace ui
|
||||
{
|
||||
|
||||
class disambiguation_popup : public popup {
|
||||
class disambiguation_popup : public popup
|
||||
{
|
||||
map::sorted_object_list m_list;
|
||||
|
||||
public:
|
||||
public:
|
||||
disambiguation_popup(ui_panel &panel, map::sorted_object_list &&list);
|
||||
|
||||
virtual void render_content() override;
|
||||
};
|
||||
|
||||
class semaphore_window : public popup {
|
||||
class semaphore_window : public popup
|
||||
{
|
||||
std::shared_ptr<map::semaphore> m_sem;
|
||||
command_relay m_relay;
|
||||
|
||||
public:
|
||||
public:
|
||||
semaphore_window(ui_panel &panel, std::shared_ptr<map::semaphore> &&sem);
|
||||
|
||||
virtual void render_content() override;
|
||||
};
|
||||
|
||||
class switch_window : public popup {
|
||||
class switch_window : public popup
|
||||
{
|
||||
std::shared_ptr<map::track_switch> m_switch;
|
||||
command_relay m_relay;
|
||||
|
||||
public:
|
||||
public:
|
||||
switch_window(ui_panel &panel, std::shared_ptr<map::track_switch> &&sw);
|
||||
|
||||
virtual void render_content() override;
|
||||
};
|
||||
|
||||
class obstacle_window : public popup {
|
||||
class obstacle_window : public popup
|
||||
{
|
||||
glm::dvec3 m_position;
|
||||
std::vector<std::pair<std::string, std::string>> m_obstacles;
|
||||
|
||||
public:
|
||||
public:
|
||||
obstacle_window(ui_panel &panel, glm::dvec3 const &pos);
|
||||
|
||||
virtual void render_content() override;
|
||||
};
|
||||
|
||||
class map_panel : public ui_panel {
|
||||
class map_panel : public ui_panel
|
||||
{
|
||||
std::unique_ptr<gl::program> m_shader;
|
||||
std::unique_ptr<gl::framebuffer> m_msaa_fb;
|
||||
std::unique_ptr<gl::framebuffer> m_msaa_fb;
|
||||
std::unique_ptr<gl::renderbuffer> m_msaa_rb;
|
||||
|
||||
std::unique_ptr<gl::framebuffer> m_fb;
|
||||
std::unique_ptr<opengl_texture> m_tex;
|
||||
std::unique_ptr<gl::framebuffer> m_fb;
|
||||
std::unique_ptr<opengl_texture> m_tex;
|
||||
|
||||
std::unique_ptr<gl::ubo> scene_ubo;
|
||||
gl::scene_ubs scene_ubs;
|
||||
std::unique_ptr<gl::ubo> scene_ubo;
|
||||
gl::scene_ubs scene_ubs;
|
||||
|
||||
std::vector<gfx::geometrybank_handle> m_section_handles;
|
||||
std::vector<gfx::geometrybank_handle> m_section_handles;
|
||||
std::vector<gfx::geometrybank_handle> m_switch_handles;
|
||||
|
||||
const int fb_size = 1024;
|
||||
const int fb_size = 1024;
|
||||
|
||||
glm::vec2 translate;
|
||||
float zoom = 1.0f / 1000.0f;
|
||||
float get_vehicle_rotation();
|
||||
glm::vec2 translate;
|
||||
float zoom = 1.0f / 1000.0f;
|
||||
float get_vehicle_rotation();
|
||||
void render_map_texture(glm::mat4 transform, glm::vec2 surface_size);
|
||||
void render_labels(glm::mat4 transform, ImVec2 origin, glm::vec2 surface_size);
|
||||
|
||||
@@ -74,11 +80,11 @@ class map_panel : public ui_panel {
|
||||
|
||||
std::optional<map::semaphore> active;
|
||||
|
||||
public:
|
||||
public:
|
||||
map_panel();
|
||||
void render_contents() override;
|
||||
};
|
||||
|
||||
void handle_map_object_click(ui_panel &parent, std::shared_ptr<map::map_object> &obj);
|
||||
void handle_map_object_hover(std::shared_ptr<map::map_object> &obj);
|
||||
}
|
||||
} // namespace ui
|
||||
|
||||
Reference in New Issue
Block a user