gtsam_points
Loading...
Searching...
No Matches
hovered_drawings.hpp
Go to the documentation of this file.
1#ifndef GUIK_HOVERED_DRAWINGS_HPP
2#define GUIK_HOVERED_DRAWINGS_HPP
3
5
6namespace guik {
7
8struct HoveredDrawingsData;
9
11public:
12 virtual ~HoveredDrawing() {}
13 virtual void draw(ImDrawList* drawlist, const Eigen::Vector3f& uvz) = 0;
14};
15
17public:
19 HoveredDrawings(std::shared_ptr<guik::LightViewerContext> context);
21
22 std::uint64_t add(const Eigen::Vector3f& pt, const std::shared_ptr<HoveredDrawing>& drawing);
23 std::uint64_t add(const std::string& drawable_name, const std::shared_ptr<HoveredDrawing>& drawing);
24
25 std::uint64_t add_text(
26 const Eigen::Vector3f& pt,
27 const std::string& text,
28 const std::uint32_t fg_color = 0xFFFFFFFF,
29 const std::uint32_t bg_color = 0x80000000,
30 const Eigen::Vector2f& offset = {0.0f, 0.0f});
31 std::uint64_t add_text_on(
32 const std::string& drawable_name,
33 const std::string& text,
34 const std::uint32_t fg_color = 0xFFFFFFFF,
35 const std::uint32_t bg_color = 0x80000000,
36 const Eigen::Vector2f& offset = {0.0f, 0.0f});
37
38 std::uint64_t add_cross(const Eigen::Vector3f& pt, const std::uint32_t color = 0xFFFFFFFF, const float size = 7.07f, const float thickness = 1.0f);
39 std::uint64_t add_cross_on(const std::string& drawable_name, const std::uint32_t color = 0xFFFFFFFF, const float size = 7.07f, const float thickness = 1.0f);
40
41 std::uint64_t
42 add_circle(const Eigen::Vector3f& pt, const std::uint32_t color = 0xFFFFFFFF, const float radius = 10.0f, const int num_segments = 32, const float thickness = 1.0f);
43 std::uint64_t
44 add_circle_on(const std::string& drawable_name, const std::uint32_t color = 0xFFFFFFFF, const float radius = 10.0f, const int num_segments = 32, const float thickness = 1.0f);
45
46 std::uint64_t add_triangle(
47 const Eigen::Vector3f& pt,
48 const std::uint32_t color = 0xFFFFFFFF,
49 const float height = 20.0f,
50 const float thickness = 1.0f,
51 const bool upsidedown = true,
52 const bool centering = false);
53 std::uint64_t add_triangle_on(
54 const std::string& drawable,
55 const std::uint32_t color = 0xFFFFFFFF,
56 const float height = 20.0f,
57 const float thickness = 1.0f,
58 const bool upsidedown = true,
59 const bool centering = false);
60
61 std::uint64_t
62 add_filled_triangle(const Eigen::Vector3f& pt, const std::uint32_t color = 0xFFFFFFFF, const float height = 20.0f, const bool upsidedown = true, const bool centering = false);
64 const std::string& drawable_name,
65 const std::uint32_t color = 0xFFFFFFFF,
66 const float height = 20.0f,
67 const bool upsidedown = true,
68 const bool centering = false);
69
70 std::uint64_t
71 add_rect(const Eigen::Vector3f& pt, const std::uint32_t color = 0xFFFFFFFF, const Eigen::Vector2f& size = {15.0f, 15.0f}, const Eigen::Vector2f& offset = {0.0f, 0.0f});
72 std::uint64_t
73 add_rect_on(const std::string& drawable, const std::uint32_t color = 0xFFFFFFFF, const Eigen::Vector2f& size = {15.0f, 15.0f}, const Eigen::Vector2f& offset = {0.0f, 0.0f});
74
75 std::uint64_t
76 add_filled_rect(const Eigen::Vector3f& pt, const std::uint32_t color = 0xFFFFFFFF, const Eigen::Vector2f& size = {15.0f, 15.0f}, const Eigen::Vector2f& offset = {0.0f, 0.0f});
77 std::uint64_t add_filled_rect_on(
78 const std::string& drawable_name,
79 const std::uint32_t color = 0xFFFFFFFF,
80 const Eigen::Vector2f& size = {15.0f, 15.0f},
81 const Eigen::Vector2f& offset = {0.0f, 0.0f});
82
83 std::uint64_t add_image(
84 const Eigen::Vector3f& pt,
85 const std::shared_ptr<glk::Texture>& texture,
86 const Eigen::Vector2f& size = {0.0f, 0.0f},
87 const Eigen::Vector2f& offset = {0.0f, 0.0f},
88 const std::uint32_t bg_color = 0,
89 const std::uint32_t border_color = 0,
90 const float border_thickness = 1.0f);
91 std::uint64_t add_image_on(
92 const std::string& drawable_name,
93 const std::shared_ptr<glk::Texture>& texture,
94 const Eigen::Vector2f& size = {0.0f, 0.0f},
95 const Eigen::Vector2f& offset = {0.0f, 0.0f},
96 const std::uint32_t bg_color = 0,
97 const std::uint32_t border_color = 0,
98 const float border_thickness = 1.0f);
99
100 void remove_drawing(std::uint64_t drawing_id);
101 void clear();
102
103 std::function<void()> create_callback();
104
105private:
106 std::shared_ptr<HoveredDrawingsData> data;
107};
108} // namespace guik
109
110#endif
Definition hovered_drawings.hpp:10
virtual void draw(ImDrawList *drawlist, const Eigen::Vector3f &uvz)=0
virtual ~HoveredDrawing()
Definition hovered_drawings.hpp:12
Definition hovered_drawings.hpp:16
HoveredDrawings(guik::LightViewerContext *context=guik::LightViewer::instance())
std::uint64_t add_image(const Eigen::Vector3f &pt, const std::shared_ptr< glk::Texture > &texture, const Eigen::Vector2f &size={0.0f, 0.0f}, const Eigen::Vector2f &offset={0.0f, 0.0f}, const std::uint32_t bg_color=0, const std::uint32_t border_color=0, const float border_thickness=1.0f)
std::uint64_t add_filled_rect(const Eigen::Vector3f &pt, const std::uint32_t color=0xFFFFFFFF, const Eigen::Vector2f &size={15.0f, 15.0f}, const Eigen::Vector2f &offset={0.0f, 0.0f})
std::uint64_t add_image_on(const std::string &drawable_name, const std::shared_ptr< glk::Texture > &texture, const Eigen::Vector2f &size={0.0f, 0.0f}, const Eigen::Vector2f &offset={0.0f, 0.0f}, const std::uint32_t bg_color=0, const std::uint32_t border_color=0, const float border_thickness=1.0f)
std::uint64_t add_circle(const Eigen::Vector3f &pt, const std::uint32_t color=0xFFFFFFFF, const float radius=10.0f, const int num_segments=32, const float thickness=1.0f)
std::uint64_t add_circle_on(const std::string &drawable_name, const std::uint32_t color=0xFFFFFFFF, const float radius=10.0f, const int num_segments=32, const float thickness=1.0f)
std::uint64_t add(const Eigen::Vector3f &pt, const std::shared_ptr< HoveredDrawing > &drawing)
std::uint64_t add_cross(const Eigen::Vector3f &pt, const std::uint32_t color=0xFFFFFFFF, const float size=7.07f, const float thickness=1.0f)
std::uint64_t add_rect_on(const std::string &drawable, const std::uint32_t color=0xFFFFFFFF, const Eigen::Vector2f &size={15.0f, 15.0f}, const Eigen::Vector2f &offset={0.0f, 0.0f})
std::uint64_t add_filled_rect_on(const std::string &drawable_name, const std::uint32_t color=0xFFFFFFFF, const Eigen::Vector2f &size={15.0f, 15.0f}, const Eigen::Vector2f &offset={0.0f, 0.0f})
void remove_drawing(std::uint64_t drawing_id)
std::uint64_t add_rect(const Eigen::Vector3f &pt, const std::uint32_t color=0xFFFFFFFF, const Eigen::Vector2f &size={15.0f, 15.0f}, const Eigen::Vector2f &offset={0.0f, 0.0f})
std::uint64_t add_text_on(const std::string &drawable_name, const std::string &text, const std::uint32_t fg_color=0xFFFFFFFF, const std::uint32_t bg_color=0x80000000, const Eigen::Vector2f &offset={0.0f, 0.0f})
std::uint64_t add_triangle(const Eigen::Vector3f &pt, const std::uint32_t color=0xFFFFFFFF, const float height=20.0f, const float thickness=1.0f, const bool upsidedown=true, const bool centering=false)
std::uint64_t add_triangle_on(const std::string &drawable, const std::uint32_t color=0xFFFFFFFF, const float height=20.0f, const float thickness=1.0f, const bool upsidedown=true, const bool centering=false)
std::uint64_t add_filled_triangle_on(const std::string &drawable_name, const std::uint32_t color=0xFFFFFFFF, const float height=20.0f, const bool upsidedown=true, const bool centering=false)
std::uint64_t add(const std::string &drawable_name, const std::shared_ptr< HoveredDrawing > &drawing)
HoveredDrawings(std::shared_ptr< guik::LightViewerContext > context)
std::uint64_t add_cross_on(const std::string &drawable_name, const std::uint32_t color=0xFFFFFFFF, const float size=7.07f, const float thickness=1.0f)
std::uint64_t add_filled_triangle(const Eigen::Vector3f &pt, const std::uint32_t color=0xFFFFFFFF, const float height=20.0f, const bool upsidedown=true, const bool centering=false)
std::function< void()> create_callback()
std::uint64_t add_text(const Eigen::Vector3f &pt, const std::string &text, const std::uint32_t fg_color=0xFFFFFFFF, const std::uint32_t bg_color=0x80000000, const Eigen::Vector2f &offset={0.0f, 0.0f})
Definition light_viewer_context.hpp:34
static LightViewer * instance(const Eigen::Vector2i &size=Eigen::Vector2i(-1, -1), bool background=false, const std::string &title="screen")
Definition drawable_container.hpp:9