22 #include "field_lines.h"
24 #include <core/exceptions/software.h>
25 #include <fvutils/draw/drawer.h>
34 namespace firevision {
93 : std::list<field_line_t>(), _field_name(field_name)
133 cart_coord_2d_t mins(0, 0);
134 cart_coord_2d_t maxs(0, 0);
138 for (FieldLines::iterator it = begin(); it != end(); ++it) {
140 f = min(it->start.x, it->end.x);
143 f = max(it->start.x, it->end.x);
148 f = min(it->start.y, it->end.y);
151 f = max(it->start.y, it->end.y);
172 :
FieldLines(
"FieldLines6x4", length, width, 0.05f)
178 FieldLines6x4::~FieldLines6x4()
183 FieldLines6x4::init()
186 push_back(field_line_t(3.f, 2.f, 3.f, -2.f));
188 push_back(field_line_t(2.4f, 1.5f, 2.4f, -1.5f));
190 push_back(field_line_t(3.f, 1.5f, 2.4f, 1.5f));
191 push_back(field_line_t(3.f, -1.5f, 2.4f, -1.5f));
194 push_back(field_line_t(1.2f, 0.05f, 1.2f, -0.05f));
195 push_back(field_line_t(1.15f, 0.f, 1.25f, 0.f));
198 push_back(field_line_t(0.f, 2.f, 0.f, -2.f));
200 push_back(field_line_t(3.f, 2.f, -3.f, 2.f));
201 push_back(field_line_t(3.f, -2.f, -3.f, -2.f));
207 push_back(field_line_t(-3.f, 2.f, -3.f, -2.f));
209 push_back(field_line_t(-2.4f, 1.5f, -2.4f, -1.5f));
211 push_back(field_line_t(-3.f, 1.5f, -2.4f, 1.5f));
212 push_back(field_line_t(-3.f, -1.5f, -2.4f, -1.5f));
215 push_back(field_line_t(-1.2f, 0.05f, -1.2f, -0.05f));
216 push_back(field_line_t(-1.15f, 0.f, -1.25f, 0.f));
232 :
FieldLines(
"FieldLinesCityTower", length, width, 0.09f)
238 FieldLinesCityTower::~FieldLinesCityTower()
243 FieldLinesCityTower::init()
246 push_back(field_line_t(4.97f, 2.455f, 4.97f, -2.455f));
248 push_back(field_line_t(3.82f, 1.49f, 3.82f, -1.49f));
250 push_back(field_line_t(4.97f, 1.49f, 3.82f, 1.49f));
251 push_back(field_line_t(4.97f, -1.49f, 3.82f, -1.49f));
254 push_back(field_line_t(0.f, 2.455f, 0.f, -2.455f));
256 push_back(field_line_t(4.97f, 2.455f, -1.44f, 2.455f));
257 push_back(field_line_t(4.97f, -2.455f, -1.44f, -2.455f));
286 :
FieldLines(
"FieldLinesCityTowerSeminar", length, width, 0.05f)
292 FieldLinesCityTowerSeminar::~FieldLinesCityTowerSeminar()
297 FieldLinesCityTowerSeminar::init()
300 push_back(field_line_t(2.725f, 1.825f, 2.725f, -1.825f));
302 push_back(field_line_t(2.125f, 1.5f, 2.125f, -1.5f));
304 push_back(field_line_t(2.725f, 1.5f, 2.125f, 1.5f));
305 push_back(field_line_t(2.725f, -1.5f, 2.125f, -1.5f));
308 push_back(field_line_t(0.925f, 0.05f, 0.925f, -0.05f));
309 push_back(field_line_t(0.875f, 0.f, 0.975f, 0.f));
312 push_back(field_line_t(0.f, 1.825f, 0.f, -1.825f));
314 push_back(field_line_t(2.725f, 1.825f, -2.725f, 1.825f));
315 push_back(field_line_t(2.725f, -1.825f, -2.725f, -1.825f));
321 push_back(field_line_t(-2.725f, 1.825f, -2.725f, -1.825f));
323 push_back(field_line_t(-2.125f, 1.5f, -2.125f, -1.5f));
325 push_back(field_line_t(-2.725f, 1.5f, -2.125f, 1.5f));
326 push_back(field_line_t(-2.725f, -1.5f, -2.125f, -1.5f));
329 push_back(field_line_t(-0.925f, 0.05f, -0.925f, -0.05f));
330 push_back(field_line_t(-0.875f, 0.f, -0.975f, 0.f));
FieldLines6x4(float length, float width)
Contructor.
FieldLinesCityTowerSeminar(float length, float width)
Constructor.
FieldLinesCityTower(float length, float width)
Constructor.
This class acts as a container for lines on a soccer field.
float _field_width
The total width of the field (actually of the field lines)
void calc_offsets()
Calculates the field's offsets.
float get_line_width() const
Line width getter.
field_circles_t _field_circles
A std::list of arcs and/or circles on the field.
virtual ~FieldLines()
Destructor.
fawkes::cart_coord_2d_t _field_offsets
The center offset (used to draw unsymmetrically fields - usually zero)
float _field_length
The total length of the field (actually of the field lines)
const std::string & get_name() const
Returns the field name.
float _line_width
The width of the field lines.
std::string _field_name
The name of the field.
FieldLines(std::string field_name, float field_length, float field_width, float line_width)
Creates a new FieldLines container.
struct fawkes::field_line_struct field_line_t
Describes a field line.
struct fawkes::cart_coord_2d_struct cart_coord_2d_t
Cartesian coordinates (2D).
Defines an arc (or circle)