ScanlineLineGrid Class Reference

Grid of scan lines. More...

#include <models/scanlines/line_grid.h>

Inheritance diagram for ScanlineLineGrid:

List of all members.


Public Member Functions

 ScanlineLineGrid (unsigned int width, unsigned int height, unsigned int offset_hor, unsigned int offset_ver, ROI *roi=NULL, unsigned int gap=0)
 Constructor.
virtual ~ScanlineLineGrid ()
 Destructor.
fawkes::point_t operator* ()
 Get the current coordinate.
fawkes::point_toperator-> ()
 Get pointer to current point.
fawkes::point_toperator++ ()
 Postfix ++ operator.
fawkes::point_toperator++ (int)
 Prefix ++ operator.
bool finished ()
 Check if all desired points have been processed.
void reset ()
 Reset model.
const char * get_name ()
 Get name of scanline model.
unsigned int get_margin ()
 Get margin around points.
virtual void set_robot_pose (float x, float y, float ori)
 Set the robot's pose.
virtual void set_pan_tilt (float pan, float tilt)
 Set camera's pan/tilt values.
virtual void set_dimensions (unsigned int width, unsigned int height, ROI *roi=NULL)
 Sets the dimensions of the grid.
virtual void set_offset (unsigned int offset_x, unsigned int offset_y)
 Sets offset.
virtual void set_grid_params (unsigned int width, unsigned int height, unsigned int offset_hor, unsigned int offset_ver, ROI *roi=NULL)
 Set all grid parameters.
virtual void set_roi (ROI *roi=NULL)
 Sets the region-of-interest.

Detailed Description

Grid of scan lines.

A grid of scan lines (i.e. horizontal and/or vertical lines) instead of only points on the grid crossings. The behavior of the ScanlineGrid (grid.h) class can be modeled if offset_hor is set to the same value as offset_x in the Grid class, offset_ver = 0 and gap is set to offset_y - 1. The advantage of doing this is a performance gain as the LineGrid is pre-calculated and getting the next point is only an iterator increment.

Definition at line 36 of file line_grid.h.


Constructor & Destructor Documentation

ScanlineLineGrid::ScanlineLineGrid ( unsigned int  width,
unsigned int  height,
unsigned int  offset_hor,
unsigned int  offset_ver,
ROI roi = NULL,
unsigned int  gap = 0 
)

Constructor.

Parameters:
width Width of grid (most likely equal to image_width)
height Height of grid (most likely equal to image_height)
offset_hor Offset between horizontal lines (set to 0 to get only vertical lines)
offset_ver Offset between vertical lines (set to 0 to get only horizontal lines)
roi The grid will only be calculated within the roi (if NULL the grid gets calculated over the complete width/height). The provided object will be deleted by ScanlineLineGrid!
gap Gap between two points on the line

Definition at line 55 of file line_grid.cpp.

References set_grid_params().

ScanlineLineGrid::~ScanlineLineGrid (  )  [virtual]

Destructor.

Definition at line 68 of file line_grid.cpp.


Member Function Documentation

bool ScanlineLineGrid::finished (  )  [virtual]

Check if all desired points have been processed.

Returns:
true if all pixels that the model defines have been iterated.

Implements ScanlineModel.

Definition at line 174 of file line_grid.cpp.

unsigned int ScanlineLineGrid::get_margin (  )  [virtual]

Get margin around points.

Models that do not use margins shall return zero. It shall be guaranteed that in this margin region around a point there is no other point that has been or will be returned in a full iteration.

Returns:
margin around a point.

Implements ScanlineModel.

Definition at line 193 of file line_grid.cpp.

const char * ScanlineLineGrid::get_name (  )  [virtual]

Get name of scanline model.

Returns:
name of scanline model.

Implements ScanlineModel.

Definition at line 186 of file line_grid.cpp.

point_t ScanlineLineGrid::operator* (  )  [virtual]

Get the current coordinate.

Returns:
current point in image that is shall be processed.

Implements ScanlineModel.

Definition at line 74 of file line_grid.cpp.

point_t * ScanlineLineGrid::operator++ ( int   )  [virtual]

Prefix ++ operator.

Advances to the next point but returns the old point.

Implements ScanlineModel.

Definition at line 164 of file line_grid.cpp.

point_t * ScanlineLineGrid::operator++ (  )  [virtual]

Postfix ++ operator.

Advances to the next point and returns the new point.

Returns:
pointer to new point

Implements ScanlineModel.

Definition at line 157 of file line_grid.cpp.

point_t * ScanlineLineGrid::operator-> (  )  [virtual]

Get pointer to current point.

Returns:
pointer to current point
See also:
operator*()

Implements ScanlineModel.

Definition at line 80 of file line_grid.cpp.

void ScanlineLineGrid::reset (  )  [virtual]

Reset model.

Resets the set of processed points.

Implements ScanlineModel.

Definition at line 180 of file line_grid.cpp.

void ScanlineLineGrid::set_dimensions ( unsigned int  width,
unsigned int  height,
ROI roi = NULL 
) [virtual]

Sets the dimensions of the grid.

Set width and height of scanline grid. Implicitly resets the grid.

Parameters:
width Width of grid (most likely equal to image_width)
height Height of grid (most likely equal to image_height)
roi The grid will only be calculated within the roi (if NULL the grid gets calculated over the complete width/height). The provided object will be deleted by ScanlineLineGrid!

Definition at line 223 of file line_grid.cpp.

References set_roi().

Referenced by set_grid_params().

void ScanlineLineGrid::set_grid_params ( unsigned int  width,
unsigned int  height,
unsigned int  offset_hor,
unsigned int  offset_ver,
ROI roi = NULL 
) [virtual]

Set all grid parameters.

Set width, height, horizontal and vertical offset by which the pointer in the grid is advanced. Implicitly resets the grid.

Parameters:
width Width of grid (most likely equal to image_width)
height Height of grid (most likely equal to image_height)
offset_hor Offset between horizontal lines (set to 0 to get only vertical lines)
offset_ver Offset between vertical lines (set to 0 to get only horizontal lines)
roi The grid will only be calculated within the roi (if NULL the grid gets calculated over the complete width/height). The provided object will be deleted by ScanlineLineGrid!

Definition at line 289 of file line_grid.cpp.

References set_dimensions().

Referenced by ScanlineLineGrid().

void ScanlineLineGrid::set_offset ( unsigned int  offset_hor,
unsigned int  offset_ver 
) [virtual]

Sets offset.

Set horizontal and vertical offset by which the pointer in the grid is advanced. This function implicitly resets the grid.

Parameters:
offset_hor Offset between horizontal lines (set to 0 to get only vertical lines)
offset_ver Offset between vertical lines (set to 0 to get only horizontal lines)

Definition at line 266 of file line_grid.cpp.

void ScanlineLineGrid::set_pan_tilt ( float  pan,
float  tilt 
) [virtual]

Set camera's pan/tilt values.

Parameters:
pan camera's current pan
tilt camera's current tilt

Implements ScanlineModel.

Definition at line 207 of file line_grid.cpp.

void ScanlineLineGrid::set_robot_pose ( float  x,
float  y,
float  ori 
) [virtual]

Set the robot's pose.

Parameters:
x robot's x coordinate on field in meters
y robot's y coordinate on field in meters
ori robot's orientation. Looking towards the opponent goal is zero rad, with positive values pointing to the right, negative to the left.

Implements ScanlineModel.

Definition at line 200 of file line_grid.cpp.

void ScanlineLineGrid::set_roi ( ROI roi = NULL  )  [virtual]

Sets the region-of-interest.

Parameters:
roi The grid will only be calculated within the roi (if NULL the grid gets calculated over the complete width/height). The provided object will be deleted by ScanlineLineGrid!

Reimplemented from ScanlineModel.

Definition at line 237 of file line_grid.cpp.

References ROI::height, ROI::image_height, ROI::image_width, ROI::set_image_height(), ROI::set_image_width(), ROI::start, ROI::width, fawkes::point_t::x, and fawkes::point_t::y.

Referenced by set_dimensions().


The documentation for this class was generated from the following files: