ScanlineBeams Class Reference

Raytraced beams scanline model. More...

#include <models/scanlines/beams.h>

Inheritance diagram for ScanlineBeams:

List of all members.


Public Member Functions

 ScanlineBeams (unsigned int image_width, unsigned int image_height, unsigned int start_x, unsigned int start_y, unsigned int stop_y, unsigned int offset_y, bool distribute_start_x, float angle_from, float angle_range, unsigned int num_beams)
 Construtor.
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.

Detailed Description

Raytraced beams scanline model.

This model uses a defined number of beams shot from the bottom of the image towards the top using Bresenham. With this you can have kind of a radar-like scanline model. Additionally the starting points at the bottom can be distributed over the full width of the image which alles for a scan aligned to the image.

To ease the calculation of the finished state the very last point is traversed twice.

Author:
Tim Niemueller

Definition at line 32 of file beams.h.


Constructor & Destructor Documentation

ScanlineBeams::ScanlineBeams ( unsigned int  image_width,
unsigned int  image_height,
unsigned int  start_x,
unsigned int  start_y,
unsigned int  stop_y,
unsigned int  offset_y,
bool  distribute_start_x,
float  angle_from,
float  angle_range,
unsigned int  num_beams 
)

Construtor.

Parameters:
image_width image width
image_height image height
start_x x coordinate of the starting point, ignored if distributed (see below)
start_y y coordinate of the starting point, this is the lowest points of the the lines and should thus be close to the bottom of the image
stop_y Y coordinate for stopping the traversal
offset_y number of pixel to advance in Y-direction per iteration
distribute_start_x set to true, to distribute the start x coordinates equidistant over the whole width of the image.
angle_from angle to start the scan at, a straight vertical line means zero rad, clock-wise positive, in radians
angle_range the range to use to distribute the beams, clockwise positive, in radians
num_beams number of beams to use
Exceptions:
Exception thrown if parameters are out of bounds

Definition at line 62 of file beams.cpp.

References reset().


Member Function Documentation

bool ScanlineBeams::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 103 of file beams.cpp.

unsigned int ScanlineBeams::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 263 of file beams.cpp.

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

Get name of scanline model.

Returns:
name of scanline model.

Implements ScanlineModel.

Definition at line 256 of file beams.cpp.

point_t ScanlineBeams::operator* (  )  [virtual]

Get the current coordinate.

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

Implements ScanlineModel.

Definition at line 90 of file beams.cpp.

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

Prefix ++ operator.

Advances to the next point but returns the old point.

Implements ScanlineModel.

Definition at line 209 of file beams.cpp.

References fawkes::point_t::x, and fawkes::point_t::y.

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

Postfix ++ operator.

Advances to the next point and returns the new point.

Returns:
pointer to new point

Implements ScanlineModel.

Definition at line 201 of file beams.cpp.

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

Get pointer to current point.

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

Implements ScanlineModel.

Definition at line 96 of file beams.cpp.

void ScanlineBeams::reset (  )  [virtual]

Reset model.

Resets the set of processed points.

Implements ScanlineModel.

Definition at line 219 of file beams.cpp.

References fawkes::point_t::x, and fawkes::point_t::y.

Referenced by ScanlineBeams().

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

Set camera's pan/tilt values.

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

Implements ScanlineModel.

Definition at line 54 of file beams.h.

virtual void ScanlineBeams::set_robot_pose ( float  x,
float  y,
float  ori 
) [inline, 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 53 of file beams.h.


The documentation for this class was generated from the following files:
  • src/firevision/models/scanlines/beams.h
  • src/firevision/models/scanlines/beams.cpp