LaserDrawingArea Class Reference
Laser drawing area. More...
#include <laser_drawing_area.h>
Public Types | |
| enum | draw_mode_t { MODE_LINES, MODE_POINTS, MODE_HULL } |
| Draw modes. More... | |
Public Member Functions | |
| LaserDrawingArea () | |
| Constructor. | |
| LaserDrawingArea (BaseObjectType *cobject, const Glib::RefPtr< Gnome::Glade::Xml > &refxml) | |
| Constructor. | |
| void | set_laser360_if (fawkes::Laser360Interface *laser_if) |
| Set 360 degree laser interface. | |
| void | set_laser720_if (fawkes::Laser720Interface *laser_if) |
| Set 720 degree laser interface. | |
| void | reset_laser_ifs () |
| Reset laser interfaces to "no laser available". | |
| 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_line_if (fawkes::ObjectPositionInterface *line_if) |
| Set line interface. | |
| void | set_robot_drawer (fawkes::CairoRobotDrawer *robot_drawer) |
| Set robot drawer. | |
| void | set_resolution (unsigned int resolution) |
| Set resolution. | |
| void | zoom_in () |
| Zoom in. | |
| void | zoom_out () |
| Zoom out. | |
| void | set_rotation (float rot_rad) |
| Set rotation. | |
| void | set_draw_mode (draw_mode_t mode) |
| Set the drawing mode. | |
| void | toggle_break_drawing () |
| Set a member for breaking the drawing. | |
Protected Member Functions | |
| virtual bool | on_expose_event (GdkEventExpose *event) |
| Expose event handler. | |
| virtual bool | on_scroll_event (GdkEventScroll *event) |
| Scroll event handler. | |
| 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 | draw_beams (Glib::RefPtr< Gdk::Window > &window, Cairo::RefPtr< Cairo::Context > &cr) |
| Draw Beams. | |
| void | draw_segments (Glib::RefPtr< Gdk::Window > &window, Cairo::RefPtr< Cairo::Context > &cr) |
| Draw laser segments as produced by leg tracker application. | |
| void | draw_scalebox (Glib::RefPtr< Gdk::Window > &window, Cairo::RefPtr< Cairo::Context > &cr) |
| Draw scale box. | |
| void | draw_persons_legs (Glib::RefPtr< Gdk::Window > &window, Cairo::RefPtr< Cairo::Context > &cr) |
| Draw person legs. | |
| 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. | |
Detailed Description
Laser drawing area.Derived version of Gtk::DrawingArea that renders values of a laser interface.
Definition at line 41 of file laser_drawing_area.h.
Member Enumeration Documentation
Draw modes.
- Enumerator:
-
MODE_LINES Draw beams as lines. MODE_POINTS Only draw beam end points. MODE_HULL Draw hull of beams.
Definition at line 46 of file laser_drawing_area.h.
Constructor & Destructor Documentation
| LaserDrawingArea::LaserDrawingArea | ( | ) |
Constructor.
Definition at line 81 of file laser_drawing_area.cpp.
References MODE_LINES, on_button_press_event(), on_expose_event(), and on_motion_notify_event().
| LaserDrawingArea::LaserDrawingArea | ( | BaseObjectType * | cobject, | |
| const Glib::RefPtr< Gnome::Glade::Xml > & | refxml | |||
| ) |
Constructor.
Special ctor to be used with Glade's get_widget_derived().
- Parameters:
-
cobject Gtk C object refxml Glade's XML reference
Definition at line 48 of file laser_drawing_area.cpp.
References MODE_LINES, on_button_press_event(), on_expose_event(), and on_motion_notify_event().
Member Function Documentation
| void LaserDrawingArea::draw_beams | ( | Glib::RefPtr< Gdk::Window > & | window, | |
| Cairo::RefPtr< Cairo::Context > & | cr | |||
| ) | [protected] |
Draw Beams.
Draws the beams as lines, circles or hull, depending on draw mode.
- Parameters:
-
window Gdk window cr Cairo context to draw to. It is assumed that possible transformations have been setup before.
Definition at line 369 of file laser_drawing_area.cpp.
References fawkes::deg2rad(), fawkes::Laser720Interface::distances(), fawkes::Laser360Interface::distances(), draw_scalebox(), fawkes::Laser720Interface::maxlenof_distances(), fawkes::Laser360Interface::maxlenof_distances(), MODE_LINES, MODE_POINTS, and fawkes::normalize_rad().
Referenced by on_expose_event().
| void LaserDrawingArea::draw_persons_legs | ( | Glib::RefPtr< Gdk::Window > & | window, | |
| Cairo::RefPtr< Cairo::Context > & | cr | |||
| ) | [protected] |
Draw person legs.
Draws the legs of persons
- Parameters:
-
window Gdk window cr Cairo context to draw to. It is assumed that possible transformations have been setup before.
Definition at line 425 of file laser_drawing_area.cpp.
References fawkes::Interface::has_writer(), fawkes::ObjectPositionInterface::is_valid(), fawkes::Interface::read(), fawkes::ObjectPositionInterface::relative_x(), fawkes::ObjectPositionInterface::relative_y(), and transform_coords_from_fawkes().
Referenced by on_expose_event().
| void LaserDrawingArea::draw_scalebox | ( | Glib::RefPtr< Gdk::Window > & | window, | |
| Cairo::RefPtr< Cairo::Context > & | cr | |||
| ) | [protected] |
Draw scale box.
Draws a circle with a radius of 1m around the robot.
- Parameters:
-
window Gdk window cr Cairo context to draw to. It is assumed that possible transformations have been setup before.
Definition at line 351 of file laser_drawing_area.cpp.
Referenced by draw_beams().
| void LaserDrawingArea::draw_segments | ( | Glib::RefPtr< Gdk::Window > & | window, | |
| Cairo::RefPtr< Cairo::Context > & | cr | |||
| ) | [protected] |
Draw laser segments as produced by leg tracker application.
- Parameters:
-
window Gdk window cr Cairo context to draw to. It is assumed that possible transformations have been setup before.
Definition at line 719 of file laser_drawing_area.cpp.
References fawkes::deg2rad(), fawkes::Laser720Interface::distances(), fawkes::Laser360Interface::distances(), fawkes::Interface::has_writer(), fawkes::Laser720Interface::maxlenof_distances(), MODE_POINTS, and fawkes::Interface::read().
Referenced by on_expose_event().
| bool LaserDrawingArea::on_button_press_event | ( | GdkEventButton * | event | ) | [protected, virtual] |
Button press event handler.
- Parameters:
-
event event data
- Returns:
- true
Definition at line 806 of file laser_drawing_area.cpp.
Referenced by LaserDrawingArea().
| bool LaserDrawingArea::on_expose_event | ( | GdkEventExpose * | event | ) | [protected, virtual] |
Expose event handler.
- Parameters:
-
event event info structure.
- Returns:
- signal return value
Definition at line 255 of file laser_drawing_area.cpp.
References draw_beams(), draw_persons_legs(), fawkes::CairoRobotDrawer::draw_robot(), draw_segments(), fawkes::Interface::has_writer(), fawkes::Interface::msgq_enqueue(), fawkes::Interface::read(), fawkes::ObjectPositionInterface::relative_x(), fawkes::ObjectPositionInterface::relative_y(), fawkes::ObjectPositionInterface::world_x(), and fawkes::ObjectPositionInterface::world_y().
Referenced by LaserDrawingArea().
| bool LaserDrawingArea::on_motion_notify_event | ( | GdkEventMotion * | event | ) | [protected, virtual] |
Mouse motion notify event handler.
- Parameters:
-
event event data
- Returns:
- true
Definition at line 819 of file laser_drawing_area.cpp.
Referenced by LaserDrawingArea().
| bool LaserDrawingArea::on_scroll_event | ( | GdkEventScroll * | event | ) | [protected, virtual] |
Scroll event handler.
- Parameters:
-
event event structure
- Returns:
- signal return value
Definition at line 783 of file laser_drawing_area.cpp.
References zoom_in(), and zoom_out().
| void LaserDrawingArea::reset_laser_ifs | ( | ) |
Reset laser interfaces to "no laser available".
Definition at line 162 of file laser_drawing_area.cpp.
Referenced by LaserGuiGtkWindow::on_disconnect().
| void LaserDrawingArea::set_draw_mode | ( | draw_mode_t | mode | ) |
Set the drawing mode.
- Parameters:
-
mode the new drawing mode
Definition at line 209 of file laser_drawing_area.cpp.
Referenced by LaserGuiGtkWindow::LaserGuiGtkWindow(), and LaserGuiHildonWindow::LaserGuiHildonWindow().
| void LaserDrawingArea::set_laser360_if | ( | fawkes::Laser360Interface * | laser_if | ) |
Set 360 degree laser interface.
- Parameters:
-
laser_if laser interface
Definition at line 142 of file laser_drawing_area.cpp.
Referenced by LaserGuiGtkWindow::on_connect(), and LaserGuiGtkWindow::on_resolution_toggled().
| void LaserDrawingArea::set_laser720_if | ( | fawkes::Laser720Interface * | laser_if | ) |
Set 720 degree laser interface.
- Parameters:
-
laser_if laser interface
Definition at line 153 of file laser_drawing_area.cpp.
Referenced by LaserGuiGtkWindow::on_connect(), and LaserGuiGtkWindow::on_resolution_toggled().
| void LaserDrawingArea::set_line_if | ( | fawkes::ObjectPositionInterface * | line_if | ) |
Set line interface.
- Parameters:
-
line_if interface to use for line data to draw.
Definition at line 179 of file laser_drawing_area.cpp.
Referenced by LaserGuiGtkWindow::on_connect(), and LaserGuiGtkWindow::on_disconnect().
| void LaserDrawingArea::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.
- Parameters:
-
l_objpos_if_persons list of objectposition interfaces for persons l_objpos_if_legs list of objectposition interfaces for legs l_objpos_if_misc list of objectposition interfaces for miscellanous objects laser_segmentation_if Laser interface indicating the segmentation-borfers of the legtracker l_track_if list of track interfaces target_if the current target switch_if used to indicate that a drawing-run is finish (so e.g. new data can be sent)
Definition at line 120 of file laser_drawing_area.cpp.
Referenced by LaserGuiGtkWindow::on_legtracker_toggled().
| void LaserDrawingArea::set_resolution | ( | unsigned int | resolution | ) |
Set resolution.
Every n'th beam will be drawn where n is the resolution.
- Parameters:
-
resolution new resolution
Definition at line 199 of file laser_drawing_area.cpp.
Referenced by LaserGuiHildonWindow::on_resolution_toggled(), and LaserGuiGtkWindow::on_trimvals_toggled().
| void LaserDrawingArea::set_robot_drawer | ( | fawkes::CairoRobotDrawer * | robot_drawer | ) |
Set robot drawer.
- Parameters:
-
robot_drawer new robot drawer to use
Definition at line 189 of file laser_drawing_area.cpp.
Referenced by LaserGuiGtkWindow::LaserGuiGtkWindow(), and LaserGuiHildonWindow::LaserGuiHildonWindow().
| void LaserDrawingArea::set_rotation | ( | float | rot_rad | ) |
Set rotation.
- Parameters:
-
rot_rad rotation angle in rad
Definition at line 244 of file laser_drawing_area.cpp.
Referenced by LaserGuiHildonWindow::on_rotation_toggled(), and LaserGuiGtkWindow::on_rotation_toggled().
| void LaserDrawingArea::toggle_break_drawing | ( | ) |
Set a member for breaking the drawing.
Definition at line 795 of file laser_drawing_area.cpp.
Referenced by LaserGuiGtkWindow::on_stop_toggled().
| std::pair< float, float > LaserDrawingArea::transform_coords_from_fawkes | ( | float | p_x, | |
| float | p_y | |||
| ) | [protected] |
Transform a position from the fawkes coordinate system to the Cairo coordinate system.
- Parameters:
-
p_x input x p_y input y
- Returns:
- the transformed position
Definition at line 842 of file laser_drawing_area.cpp.
Referenced by draw_persons_legs().
| void LaserDrawingArea::zoom_in | ( | ) |
Zoom in.
Increases zoom factor by 20, no upper limit.
Definition at line 219 of file laser_drawing_area.cpp.
Referenced by LaserGuiGtkWindow::LaserGuiGtkWindow(), LaserGuiHildonWindow::LaserGuiHildonWindow(), LaserGuiHildonWindow::on_key_pressed(), and on_scroll_event().
| void LaserDrawingArea::zoom_out | ( | ) |
Zoom out.
Decreases zoom factor by 20 with a minimum of 1.
Definition at line 229 of file laser_drawing_area.cpp.
Referenced by LaserGuiGtkWindow::LaserGuiGtkWindow(), LaserGuiHildonWindow::LaserGuiHildonWindow(), LaserGuiHildonWindow::on_key_pressed(), and on_scroll_event().
The documentation for this class was generated from the following files:
- src/tools/lasergui/laser_drawing_area.h
- src/tools/lasergui/laser_drawing_area.cpp

