1#ifndef GUIK_HOVERED_DRAWINGS_HPP
2#define GUIK_HOVERED_DRAWINGS_HPP
8struct HoveredDrawingsData;
13 virtual void draw(ImDrawList* drawlist,
const Eigen::Vector3f& uvz) = 0;
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);
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});
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});
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);
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);
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);
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);
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);
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);
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});
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});
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});
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});
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);
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);
106 std::shared_ptr<HoveredDrawingsData> data;
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