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 Laser1080Interface;
35 class ObjectPositionInterface;
36 class CairoRobotDrawer;
37 class LegtrackerTrackinterface;
38 class SwitchInterface;
39 class VisualDisplay2DInterface;
45 :
public Gtk::DrawingArea
57 const Glib::RefPtr<Gtk::Builder> &builder);
60 void set_laser_ifs(
const std::list<fawkes::Interface*>& laser_if);
62 void set_objpos_if(std::list<fawkes::ObjectPositionInterface*>* l_objpos_if_persons,
63 std::list<fawkes::ObjectPositionInterface*>* l_objpos_if_legs,
64 std::list<fawkes::ObjectPositionInterface*>* l_objpos_if_misc,
66 std::list<fawkes::Position2DTrackInterface*>* l_track_if,
84 #if GTK_VERSION_GE(3,0) 85 virtual bool on_draw(
const Cairo::RefPtr<Cairo::Context> &cr);
94 Glib::RefPtr<Gdk::Window> &window,
95 const Cairo::RefPtr<Cairo::Context> &cr);
97 Glib::RefPtr<Gdk::Window> &window,
98 const Cairo::RefPtr<Cairo::Context> &cr);
100 const Cairo::RefPtr<Cairo::Context> &cr);
102 const Cairo::RefPtr<Cairo::Context> &cr);
114 typedef std::pair<fawkes::Interface*, Color> InterfaceColorPair;
115 typedef std::list<InterfaceColorPair> InterfaceColorPairList;
117 bool all_laser_ifs_have_writer()
const;
119 InterfaceColorPairList __laser_ifs;
126 std::list<fawkes::ObjectPositionInterface*>* __l_objpos_if_persons;
127 std::list<fawkes::ObjectPositionInterface*>* __l_objpos_if_legs;
128 std::list<fawkes::ObjectPositionInterface*>* __l_objpos_if_misc;
129 std::list<fawkes::Position2DTrackInterface*>* __l_track_if;
135 unsigned int __resolution;
137 bool __break_drawing;
139 double __last_mouse_x;
140 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.
void set_laser_ifs(const std::list< fawkes::Interface *> &laser_if)
Set new laser interfaces.
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.
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_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.
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.
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.