Horizon
model_editor.hpp
1 #pragma once
2 #include <gtkmm.h>
3 #include "pool/package.hpp"
4 #include <glm/glm.hpp>
5 #include "util/changeable.hpp"
6 #include "util/xyz_container.hpp"
7 
8 namespace horizon {
9 
10 glm::dmat4 mat_from_model(const Package::Model &model, double scale = 1);
11 
12 class ModelEditor : public Gtk::Box, public Changeable {
13 public:
14  ModelEditor(class ImpPackage &iimp, const UUID &iuu);
15  const UUID uu;
16 
17  void set_is_current(const UUID &iuu);
18  void set_is_default(const UUID &iuu);
19  void make_current();
20  void reload();
21 
22 private:
23  ImpPackage &imp;
24  Package::Model &model;
25  Gtk::CheckButton *default_cb = nullptr;
26  Gtk::CheckButton *origin_cb = nullptr;
27  Gtk::Label *current_label = nullptr;
28  std::vector<Gtk::Widget *> widgets_insenstive_without_model;
29  void update_widgets_insenstive();
30 
33 
34  std::vector<sigc::connection> sp_connections;
35 };
36 } // namespace horizon
Definition: changeable.hpp:5
Definition: imp_package.hpp:15
Definition: model_editor.hpp:12
Definition: package.hpp:45
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
Definition: xyz_container.hpp:5