gtsam_points
Loading...
Searching...
No Matches
model_control.hpp
Go to the documentation of this file.
1#ifndef GUIK_MODEL_CONTROL_HPP
2#define GUIK_MODEL_CONTROL_HPP
3
4#include <sstream>
5
6#include <imgui.h>
7
8#include <Eigen/Core>
9#include <Eigen/Geometry>
10
11namespace guik {
12
14public:
15 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
16
17 ModelControl(const std::string& name, const Eigen::Matrix4f& init_model_matrix = Eigen::Matrix4f::Identity());
18
19 void draw_ui();
21 void draw_gizmo();
22 void draw_gizmo(int win_x, int win_y, int win_w, int win_h, const Eigen::Matrix4f& view, const Eigen::Matrix4f& projection, bool on_window = false);
23
24 bool is_guizmo_using() const;
25
26 const std::string& model_name() const;
27 Eigen::Matrix4f model_matrix() const;
28
29 void set_model_matrix(const Eigen::Matrix4f& matrix) { pose = Eigen::Affine3f(matrix); }
30 void set_model_matrix(const Eigen::Matrix4d& matrix) { pose = Eigen::Affine3f(matrix.cast<float>()); }
31 template <typename Scalar, int Mode>
32 void set_model_matrix(const Eigen::Transform<Scalar, 3, Mode>& matrix) {
33 pose = Eigen::Affine3f(matrix.template cast<float>());
34 }
35
36 void set_gizmo_enabled(bool enabled);
39
40 // "TRANSLATE", "ROTATE", "SCALE", "SCALEU", or "UNIVERSAL"
41 void set_gizmo_operation(const std::string& operation);
42 void set_gizmo_operation(int operation);
43
44 // ImGuizmo mode (LOCAL = 0, WORLD = 1)
45 void set_gizmo_mode(int mode);
46
47 // Change the gizmo size (default = 0.1f)
48 void set_gizmo_clip_scale(float space = 0.1f);
49
50private:
51 std::string name;
52 Eigen::Affine3f pose;
53
54 bool gizmo_enabled;
55 int gizmo_operation;
56 int gizmo_mode;
57 float gizmo_clip_space;
58};
59
60} // namespace guik
61
62#endif
Definition model_control.hpp:13
void set_model_matrix(const Eigen::Matrix4f &matrix)
Definition model_control.hpp:29
EIGEN_MAKE_ALIGNED_OPERATOR_NEW ModelControl(const std::string &name, const Eigen::Matrix4f &init_model_matrix=Eigen::Matrix4f::Identity())
void set_gizmo_operation(int operation)
void set_gizmo_clip_scale(float space=0.1f)
void set_gizmo_enabled(bool enabled)
const std::string & model_name() const
void draw_gizmo(int win_x, int win_y, int win_w, int win_h, const Eigen::Matrix4f &view, const Eigen::Matrix4f &projection, bool on_window=false)
bool is_guizmo_using() const
void set_gizmo_mode(int mode)
Eigen::Matrix4f model_matrix() const
void set_gizmo_operation(const std::string &operation)
void set_model_matrix(const Eigen::Transform< Scalar, 3, Mode > &matrix)
Definition model_control.hpp:32
void set_model_matrix(const Eigen::Matrix4d &matrix)
Definition model_control.hpp:30
Definition drawable_container.hpp:9