14 #define OMERLE_SENSORGRID_DEBUG
57 const double & y_min_,
const double & y_width_,
const double & y_pitch_,
int n_y_)
58 :
SensorGridBase(), x_min(x_min_), x_width(x_width_), x_pitch(x_pitch_),
59 y_min(y_min_), y_width(y_width_), y_pitch(y_pitch_), n_x(n_x_), n_y(n_y_)
74 #ifdef OMERLE_SENSORGRID_DEBUG
75 std::cout <<
"BasicGrid::EnumerateGrids\n";
104 if(x<x_min || x>
x_max || y<y_min || y>
y_max)
return false;
107 double x_coord = floor(x_coord_fp);
111 double y_coord = floor(y_coord_fp);
155 std::vector<SensorGridBase*>::const_iterator it;
156 for(it =
grids.begin(); it !=
grids.end(); ++it)
delete *it;
161 grids.push_back(grid);
166 #ifdef OMERLE_SENSORGRID_DEBUG
167 std::cout <<
"MultipleGrids::EnumerateGrids\n";
171 std::vector<SensorGridBase*>::const_iterator it;
172 for(it =
grids.begin(); it !=
grids.end(); ++it) {
174 #ifdef OMERLE_SENSORGRID_DEBUG
175 std::cout <<
"After Enum cycle" <<
id <<
"\t" << pixel_offset << std::endl;
183 std::vector<SensorGridBase*>::const_iterator it;
184 for(it =
grids.begin(); it !=
grids.end(); ++it) {
185 if((*it)->PositionToPixel(x, y, pixel_info))
return true;
192 std::vector<SensorGridBase*>::const_iterator it;
198 std::vector<SensorGridBase*>::const_iterator it;
199 for(it =
grids.begin(); it !=
grids.end(); ++it) {
200 if((*it)->PixelToPosition(pixel_info, x, y))
return true;
bool locked
The total number of pixels in this grid (or its childs)
int user_row_offset
The pixel number of the first pixel in this grid (or its childs)
virtual void EnumerateGrids(int &id, int &pixel_offset)
Common base class for sensor grids.
virtual bool PixelToPosition(PixelInfo &pixel_number, double &x, double &y) const
int number_of_pixels
user prowided offset to add to column on grid value in PixelInfo
virtual void EnumerateGrids(int &id, int &pixel_offset)
void EnumerateGridsProxy(SensorGridBase *b, int &grid_id, int &pixel_number)
void LockGrid(bool lock)
Lock the grid:
double x_width_over_two_pitch
virtual bool PositionToPixel(const double &x, const double &y, PixelInfo &pixel_info) const
virtual bool PositionToPixel(const double &x, const double &y, PixelInfo &pixel_info) const
Convert a hit position to a pixel number.
virtual bool PixelToPosition(PixelInfo &pixel_info, double &x, double &y) const
Compute the center-position of a pixel on this grid and update the pixel_info structure.
void SetXDivision(const double &x_min, const double &x_width, const double &x_pitch, int n_x)
virtual void LockChilds(bool)
friend F32vec4 fabs(const F32vec4 &a)
virtual bool PixelToPosition(PixelInfo &pixel_info, double &x, double &y) const =0
double y_width_over_two_pitch
virtual bool NextPixel(double &x, double &y, PixelInfo &pixel_number) const
Return information of the next pixel (pixel iteration)
virtual void LockChilds(bool lock)
int user_col_offset
user prowided offset to add to row on grid value in PixelInfo
virtual void EnumerateGrids(int &id, int &pixel_offset)=0
void AddGrid(SensorGridBase *grid)
std::vector< SensorGridBase * > grids
void LockChildsProxy(SensorGridBase *b, bool lock)
void SetYDivision(const double &y_min, const double &y_width, const double &y_pitch, int n_y)