22 #include "field_lines.h"
23 #include <fvutils/draw/drawer.h>
24 #include <core/exceptions/software.h>
33 namespace firevision {
91 FieldLines::FieldLines(std::string field_name,
float field_length,
float field_width,
float line_width):
92 std::list<field_line_t>(),
93 _field_name(field_name)
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));