23 #ifndef _TOOLS_LASERGUI_LASER_DRAWING_AREA_H_
24 #define _TOOLS_LASERGUI_LASER_DRAWING_AREA_H_
26 #include <interfaces/Position2DTrackInterface.h>
27 #include <interfaces/SwitchInterface.h>
33 class Laser360Interface;
34 class Laser720Interface;
35 class Laser1080Interface;
36 class ObjectPositionInterface;
37 class CairoRobotDrawer;
38 class LegtrackerTrackinterface;
39 class SwitchInterface;
40 class VisualDisplay2DInterface;
56 LaserDrawingArea(BaseObjectType *cobject,
const Glib::RefPtr<Gtk::Builder> &builder);
59 void set_laser_ifs(
const std::list<fawkes::Interface *> &laser_if);
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,
83 #if GTK_VERSION_GE(3, 0)
84 virtual bool on_draw(
const Cairo::RefPtr<Cairo::Context> &cr);
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,
const Cairo::RefPtr<Cairo::Context> &cr);
100 const Cairo::RefPtr<Cairo::Context> &cr);
112 typedef std::pair<fawkes::Interface *, Color> InterfaceColorPair;
113 typedef std::list<InterfaceColorPair> InterfaceColorPairList;
115 bool all_laser_ifs_have_writer()
const;
117 InterfaceColorPairList laser_ifs_;
124 std::list<fawkes::ObjectPositionInterface *> * l_objpos_if_persons_;
125 std::list<fawkes::ObjectPositionInterface *> * l_objpos_if_legs_;
126 std::list<fawkes::ObjectPositionInterface *> * l_objpos_if_misc_;
127 std::list<fawkes::Position2DTrackInterface *> *l_track_if_;
133 unsigned int resolution_;
137 double last_mouse_x_;
138 double last_mouse_y_;