24 #ifndef __FIREVISION_MODELS_SCANLINES_STAR_H_
25 #define __FIREVISION_MODELS_SCANLINES_STAR_H_
27 #include <fvmodels/scanlines/scanlinemodel.h>
31 namespace firevision {
39 ScanlineStar(
unsigned int image_width,
unsigned int image_height,
40 unsigned int center_x,
unsigned int center_y,
41 unsigned int num_rays,
unsigned int radius_incr,
42 unsigned char* yuv_mask,
43 unsigned int dead_radius = 0,
unsigned int max_radius = 0,
44 unsigned int margin = 0);
56 const char* get_name();
57 unsigned int get_margin();
58 void set_robot_pose(
float x,
float y,
float ori);
59 void set_pan_tilt(
float pan,
float tilt);
60 void skip_current_ray();
61 unsigned int num_rays()
const;
62 unsigned int ray_index()
const;
63 unsigned int current_radius()
const;
64 float current_angle()
const;
65 bool first_on_ray()
const;
68 void generate_scan_points();
70 unsigned int m_image_width;
71 unsigned int m_image_height;
73 unsigned int m_num_rays;
74 unsigned int m_radius_incr;
75 unsigned int m_dead_radius;
76 unsigned int m_max_radius;
77 unsigned int m_margin;
79 unsigned char* m_mask;
86 unsigned int m_ray_index;
88 typedef std::map<unsigned int, fawkes::point_t> Ray;
89 std::map<float, Ray*> m_rays;
90 std::map<float, Ray*>::iterator m_ray_iter;
91 Ray::iterator m_point_iter;