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