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);
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);
99 const Cairo::RefPtr<Cairo::Context> &cr);
101 const Cairo::RefPtr<Cairo::Context> &cr);
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;
134 unsigned int __resolution;
136 bool __break_drawing;
138 double __last_mouse_x;
139 double __last_mouse_y;
void draw_scalebox(Glib::RefPtr< Gdk::Window > &window, const Cairo::RefPtr< Cairo::Context > &cr)
Draw scale box.
Only draw beam end points.
virtual bool on_expose_event(GdkEventExpose *event)
Expose event handler.
void reset_laser_ifs()
Reset laser interfaces to "no laser available".
ObjectPositionInterface Fawkes BlackBoard Interface.
2D visualization processor for VisualDisplay2DInterface.
void set_robot_drawer(fawkes::CairoRobotDrawer *robot_drawer)
Set robot drawer.
Fawkes library namespace.
std::pair< float, float > transform_coords_from_fawkes(float p_x, float p_y)
Transform a position from the fawkes coordinate system to the Cairo coordinate system.
void set_visdisp_if(fawkes::VisualDisplay2DInterface *visdisp_if)
Set visual display interface.
void set_objpos_if(std::list< fawkes::ObjectPositionInterface * > *l_objpos_if_persons, std::list< fawkes::ObjectPositionInterface * > *l_objpos_if_legs, std::list< fawkes::ObjectPositionInterface * > *l_objpos_if_misc, fawkes::Laser720Interface *laser_segmentation_if, std::list< fawkes::Position2DTrackInterface * > *l_track_if, fawkes::ObjectPositionInterface *target_if, fawkes::SwitchInterface *switch_if)
Set ObjectPosition interfaces.
Base class for all Fawkes BlackBoard interfaces.
void set_line_if(fawkes::ObjectPositionInterface *line_if)
Set line interface.
virtual bool on_scroll_event(GdkEventScroll *event)
Scroll event handler.
void toggle_break_drawing()
Set a member for breaking the drawing.
void set_draw_mode(draw_mode_t mode)
Set the drawing mode.
~LaserDrawingArea()
Destructor.
SwitchInterface Fawkes BlackBoard Interface.
void set_resolution(unsigned int resolution)
Set resolution.
void set_laser_ifs(const std::list< fawkes::Interface * > &laser_if)
Set new laser interfaces.
void set_rotation(float rot_rad)
Set rotation.
void draw_beams(const fawkes::Interface *itf, Glib::RefPtr< Gdk::Window > &window, const Cairo::RefPtr< Cairo::Context > &cr)
Draw Beams of an interface.
virtual bool on_button_press_event(GdkEventButton *event)
Button press event handler.
void draw_segments(const fawkes::Interface *itf, Glib::RefPtr< Gdk::Window > &window, const Cairo::RefPtr< Cairo::Context > &cr)
Draw laser segments as produced by leg tracker application.
void draw_persons_legs(Glib::RefPtr< Gdk::Window > &window, const Cairo::RefPtr< Cairo::Context > &cr)
Draw person legs.
VisualDisplay2DInterface Fawkes BlackBoard Interface.
virtual bool on_motion_notify_event(GdkEventMotion *event)
Mouse motion notify event handler.
void set_connected(bool connected)
Set connection status.
Laser720Interface Fawkes BlackBoard Interface.
LaserDrawingArea()
Constructor.