22 #include "field_lines.h" 23 #include <fvutils/draw/drawer.h> 24 #include <core/exceptions/software.h> 92 std::list<field_line_t>(),
93 _field_name(field_name)
134 cart_coord_2d_t mins(0, 0);
135 cart_coord_2d_t maxs(0, 0);
139 for (FieldLines::iterator it = begin(); it != end(); ++it) {
141 f = min(it->start.x, it->end.x);
142 if (f < mins.x) mins.x = f;
143 f = max(it->start.x, it->end.x);
144 if (f > maxs.x) maxs.x = f;
147 f = min(it->start.y, it->end.y);
148 if (f < mins.y) mins.y = f;
149 f = max(it->start.y, it->end.y);
150 if (f > maxs.y) maxs.y = f;
175 FieldLines(
"FieldLines6x4", length, width, 0.05f)
181 FieldLines6x4::~FieldLines6x4()
186 FieldLines6x4::init()
189 push_back(field_line_t(3.f, 2.f, 3.f, -2.f));
191 push_back(field_line_t(2.4f, 1.5f, 2.4f, -1.5f));
193 push_back(field_line_t(3.f, 1.5f, 2.4f, 1.5f));
194 push_back(field_line_t(3.f, -1.5f, 2.4f, -1.5f));
197 push_back(field_line_t(1.2f, 0.05f, 1.2f, -0.05f));
198 push_back(field_line_t(1.15f, 0.f, 1.25f, 0.f));
201 push_back(field_line_t(0.f, 2.f, 0.f, -2.f));
203 push_back(field_line_t(3.f, 2.f, -3.f, 2.f));
204 push_back(field_line_t(3.f, -2.f, -3.f, -2.f));
210 push_back(field_line_t(-3.f, 2.f, -3.f, -2.f));
212 push_back(field_line_t(-2.4f, 1.5f, -2.4f, -1.5f));
214 push_back(field_line_t(-3.f, 1.5f, -2.4f, 1.5f));
215 push_back(field_line_t(-3.f, -1.5f, -2.4f, -1.5f));
218 push_back(field_line_t(-1.2f, 0.05f, -1.2f, -0.05f));
219 push_back(field_line_t(-1.15f, 0.f, -1.25f, 0.f));
242 FieldLines(
"FieldLinesCityTower", length, width, 0.09f)
248 FieldLinesCityTower::~FieldLinesCityTower()
253 FieldLinesCityTower::init()
256 push_back(field_line_t(4.97f, 2.455f, 4.97f, -2.455f));
258 push_back(field_line_t(3.82f, 1.49f, 3.82f, -1.49f));
260 push_back(field_line_t(4.97f, 1.49f, 3.82f, 1.49f));
261 push_back(field_line_t(4.97f, -1.49f, 3.82f, -1.49f));
264 push_back(field_line_t(0.f, 2.455f, 0.f, -2.455f));
266 push_back(field_line_t(4.97f, 2.455f, -1.44f, 2.455f));
267 push_back(field_line_t(4.97f, -2.455f, -1.44f, -2.455f));
304 FieldLines(
"FieldLinesCityTowerSeminar", length, width, 0.05f)
310 FieldLinesCityTowerSeminar::~FieldLinesCityTowerSeminar()
315 FieldLinesCityTowerSeminar::init()
318 push_back(field_line_t(2.725f, 1.825f, 2.725f, -1.825f));
320 push_back(field_line_t(2.125f, 1.5f, 2.125f, -1.5f));
322 push_back(field_line_t(2.725f, 1.5f, 2.125f, 1.5f));
323 push_back(field_line_t(2.725f, -1.5f, 2.125f, -1.5f));
326 push_back(field_line_t(0.925f, 0.05f, 0.925f, -0.05f));
327 push_back(field_line_t(0.875f, 0.f, 0.975f, 0.f));
330 push_back(field_line_t(0.f, 1.825f, 0.f, -1.825f));
332 push_back(field_line_t(2.725f, 1.825f, -2.725f, 1.825f));
333 push_back(field_line_t(2.725f, -1.825f, -2.725f, -1.825f));
340 push_back(field_line_t(-2.725f, 1.825f, -2.725f, -1.825f));
342 push_back(field_line_t(-2.125f, 1.5f, -2.125f, -1.5f));
344 push_back(field_line_t(-2.725f, 1.5f, -2.125f, 1.5f));
345 push_back(field_line_t(-2.725f, -1.5f, -2.125f, -1.5f));
348 push_back(field_line_t(-0.925f, 0.05f, -0.925f, -0.05f));
349 push_back(field_line_t(-0.875f, 0.f, -0.975f, 0.f));
FieldLines6x4(float length, float width)
Contructor.
float _line_width
The width of the field lines.
field_circles_t _field_circles
A std::list of arcs and/or circles on the field.
float _field_width
The total width of the field (actually of the field lines)
virtual ~FieldLines()
Destructor.
float _field_length
The total length of the field (actually of the field lines)
void calc_offsets()
Calculates the field's offsets.
FieldLinesCityTowerSeminar(float length, float width)
Constructor.
fawkes::cart_coord_2d_t _field_offsets
The center offset (used to draw unsymmetrically fields - usually zero)
Defines an arc (or circle)
struct fawkes::cart_coord_2d_struct cart_coord_2d_t
Cartesian coordinates (2D).
FieldLinesCityTower(float length, float width)
Constructor.
float get_line_width() const
Line width getter.
struct fawkes::field_line_struct field_line_t
Describes a field line.
FieldLines(std::string field_name, float field_length, float field_width, float line_width)
Creates a new FieldLines container.
This class acts as a container for lines on a soccer field.
std::string _field_name
The name of the field.
const std::string & get_name() const
Returns the field name.