24 #include <fvmodels/scanlines/grid.h>
25 #include <core/exceptions/software.h>
31 namespace firevision {
51 ScanlineGrid::ScanlineGrid(
unsigned int width,
unsigned int height,
52 unsigned int offset_x,
unsigned int offset_y,
53 ROI* roi,
bool horizontal_grid)
56 setGridParams(width, height,
58 roi, horizontal_grid);
64 ScanlineGrid::~ScanlineGrid()
69 ScanlineGrid::operator*()
75 ScanlineGrid::operator->()
81 ScanlineGrid::calc_next_coord()
88 if (static_cast<int>(coord.x) < static_cast<int>(roi->image_width - offset_x))
94 if (static_cast<int>(coord.y) < static_cast<int>(roi->image_height - offset_y))
96 coord.x = roi->start.x;
101 more_to_come =
false;
107 if (static_cast<int>(coord.y) < static_cast<int>(roi->image_height - offset_y))
113 if (static_cast<int>(coord.x) < static_cast<int>(roi->image_width - offset_x))
116 coord.y = roi->start.y;
120 more_to_come =
false;
127 ScanlineGrid::operator++()
134 ScanlineGrid::operator++(
int)
136 memcpy(&tmp_coord, &coord,
sizeof(
point_t));
142 ScanlineGrid::finished()
144 return !more_to_come;
148 ScanlineGrid::reset()
150 coord.x = roi->start.x;
151 coord.y = roi->start.y;
157 ScanlineGrid::get_name()
159 return "ScanlineModel::Grid";
164 ScanlineGrid::get_margin()
166 return (offset_x > offset_y) ? offset_x : offset_y;
171 ScanlineGrid::set_robot_pose(
float x,
float y,
float ori)
178 ScanlineGrid::set_pan_tilt(
float pan,
float tilt)
184 ScanlineGrid::set_roi(
ROI *roi)
186 if (!roi) this->roi =
new ROI(0, 0, this->width, this->height, this->width, this->height);
212 ScanlineGrid::setDimensions(
unsigned int width,
unsigned int height,
ROI* roi)
215 this->height = height;
227 ScanlineGrid::setOffset(
unsigned int offset_x,
unsigned int offset_y)
229 this->offset_x = offset_x;
230 this->offset_y = offset_y;
249 ScanlineGrid::setGridParams(
unsigned int width,
unsigned int height,
250 unsigned int offset_x,
unsigned int offset_y,
251 ROI* roi,
bool horizontal_grid)
253 this->horizontal_grid = horizontal_grid;
255 setDimensions(width, height, roi);
256 setOffset (offset_x, offset_y);
fawkes::point_t start
ROI start.
unsigned int x
x coordinate
unsigned int width
ROI width.
unsigned int image_width
width of image that contains this ROI
Point with cartesian coordinates as unsigned integers.
unsigned int image_height
height of image that contains this ROI
unsigned int y
y coordinate
unsigned int height
ROI height.