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_;
void draw_scalebox(Glib::RefPtr< Gdk::Window > &window, const Cairo::RefPtr< Cairo::Context > &cr)
Draw scale box.
void draw_persons_legs(Glib::RefPtr< Gdk::Window > &window, const Cairo::RefPtr< Cairo::Context > &cr)
Draw person legs.
void set_robot_drawer(fawkes::CairoRobotDrawer *robot_drawer)
Set robot drawer.
@ MODE_HULL
Draw hull of beams.
@ MODE_POINTS
Only draw beam end points.
@ MODE_LINES
Draw beams as lines.
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_resolution(unsigned int resolution)
Set resolution.
LaserDrawingArea()
Constructor.
virtual bool on_motion_notify_event(GdkEventMotion *event)
Mouse motion notify event handler.
virtual bool on_button_press_event(GdkEventButton *event)
Button press event handler.
void set_rotation(float rot_rad)
Set rotation.
void set_visdisp_if(fawkes::VisualDisplay2DInterface *visdisp_if)
Set visual display interface.
void set_laser_ifs(const std::list< fawkes::Interface * > &laser_if)
Set new laser interfaces.
virtual bool on_scroll_event(GdkEventScroll *event)
Scroll event handler.
virtual bool on_expose_event(GdkEventExpose *event)
Expose event handler.
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.
void set_draw_mode(draw_mode_t mode)
Set the drawing mode.
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.
~LaserDrawingArea()
Destructor.
void reset_laser_ifs()
Reset laser interfaces to "no laser available".
void toggle_break_drawing()
Set a member for breaking the drawing.
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_connected(bool connected)
Set connection status.
void set_line_if(fawkes::ObjectPositionInterface *line_if)
Set line interface.
2D visualization processor for VisualDisplay2DInterface.
Base class for all Fawkes BlackBoard interfaces.
Laser720Interface Fawkes BlackBoard Interface.
ObjectPositionInterface Fawkes BlackBoard Interface.
SwitchInterface Fawkes BlackBoard Interface.
VisualDisplay2DInterface Fawkes BlackBoard Interface.
Fawkes library namespace.