23 #ifndef __TOOLS_LASERGUI_LASER_DRAWING_AREA_H_ 24 #define __TOOLS_LASERGUI_LASER_DRAWING_AREA_H_ 28 #include <interfaces/Position2DTrackInterface.h> 29 #include <interfaces/SwitchInterface.h> 32 class Laser360Interface;
33 class Laser720Interface;
34 class ObjectPositionInterface;
35 class CairoRobotDrawer;
36 class LegtrackerTrackinterface;
37 class SwitchInterface;
38 class VisualDisplay2DInterface;
44 :
public Gtk::DrawingArea
56 const Glib::RefPtr<Gtk::Builder> &builder);
59 void set_laser_ifs(
const std::list<fawkes::Interface*>& laser_if);
60 void reset_laser_ifs();
61 void set_objpos_if(std::list<fawkes::ObjectPositionInterface*>* l_objpos_if_persons,
62 std::list<fawkes::ObjectPositionInterface*>* l_objpos_if_legs,
63 std::list<fawkes::ObjectPositionInterface*>* l_objpos_if_misc,
65 std::list<fawkes::Position2DTrackInterface*>* l_track_if,
71 void set_resolution(
unsigned int resolution);
76 void set_rotation(
float rot_rad);
77 void set_draw_mode(draw_mode_t mode);
78 void set_connected(
bool connected);
80 void toggle_break_drawing();
83 #if GTK_VERSION_GE(3,0) 84 virtual bool on_draw(
const Cairo::RefPtr<Cairo::Context> &cr);
86 virtual bool on_expose_event(GdkEventExpose *event);
88 virtual bool on_scroll_event(GdkEventScroll *event);
89 virtual bool on_motion_notify_event(GdkEventMotion *event);
90 virtual bool on_button_press_event(GdkEventButton *event);
93 Glib::RefPtr<Gdk::Window> &window,
94 const Cairo::RefPtr<Cairo::Context> &cr);
96 Glib::RefPtr<Gdk::Window> &window,
97 const Cairo::RefPtr<Cairo::Context> &cr);
98 void draw_scalebox(Glib::RefPtr<Gdk::Window> &window,
99 const Cairo::RefPtr<Cairo::Context> &cr);
100 void draw_persons_legs(Glib::RefPtr<Gdk::Window> &window,
101 const Cairo::RefPtr<Cairo::Context> &cr);
102 std::pair<float,float> transform_coords_from_fawkes(
float p_x,
float p_y);
113 typedef std::pair<fawkes::Interface*, Color> InterfaceColorPair;
114 typedef std::list<InterfaceColorPair> InterfaceColorPairList;
116 bool all_laser_ifs_have_writer()
const;
118 InterfaceColorPairList __laser_ifs;
125 std::list<fawkes::ObjectPositionInterface*>* __l_objpos_if_persons;
126 std::list<fawkes::ObjectPositionInterface*>* __l_objpos_if_legs;
127 std::list<fawkes::ObjectPositionInterface*>* __l_objpos_if_misc;
128 std::list<fawkes::Position2DTrackInterface*>* __l_track_if;
131 draw_mode_t __draw_mode;
134 unsigned int __resolution;
136 bool __break_drawing;
138 double __last_mouse_x;
139 double __last_mouse_y;
Only draw beam end points.
ObjectPositionInterface Fawkes BlackBoard Interface.
2D visualization processor for VisualDisplay2DInterface.
Fawkes library namespace.
Base class for all Fawkes BlackBoard interfaces.
SwitchInterface Fawkes BlackBoard Interface.
VisualDisplay2DInterface Fawkes BlackBoard Interface.
Laser720Interface Fawkes BlackBoard Interface.