summaryrefslogtreecommitdiffhomepage
path: root/digital/io-hub/src/apbirthday/path_2013.cc
diff options
context:
space:
mode:
authorOlivier Lanneluc2013-05-03 18:34:50 +0200
committerNicolas Schodet2013-05-03 23:07:15 +0200
commitc6a8cc44fa11777a35ac329602b4a47b3145bf30 (patch)
tree6b4bffba590c3fe156e11fafef708b3d95b9a00f /digital/io-hub/src/apbirthday/path_2013.cc
parent80c332e283f7eaf02f8f2f9da792a30c8bf18f2b (diff)
digital/io-hub/src: move path stuff for apbirthday 2013 in class Path_2013
Class Path contains only the generic code to process generic obstacles, like the opponent robots. All the static obstacles of the 2013 playground, should be managed by class Path_2013.
Diffstat (limited to 'digital/io-hub/src/apbirthday/path_2013.cc')
-rw-r--r--digital/io-hub/src/apbirthday/path_2013.cc64
1 files changed, 64 insertions, 0 deletions
diff --git a/digital/io-hub/src/apbirthday/path_2013.cc b/digital/io-hub/src/apbirthday/path_2013.cc
new file mode 100644
index 00000000..1c5acdbe
--- /dev/null
+++ b/digital/io-hub/src/apbirthday/path_2013.cc
@@ -0,0 +1,64 @@
+// path_2013.cc
+// io-hub - Modular Input/Output. {{{
+//
+// Copyright (C) 2013 Olivier Lanneluc
+//
+// APBTeam:
+// Web: http://apbteam.org/
+// Email: team AT apbteam DOT org
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+// }}}
+
+#include "path_2013.hh"
+#include "bot.hh"
+#ifdef HOST
+#include "debug.host.hh"
+#endif
+
+Path_2013::Path_2013() : Path( (pg_border_distance + pg_plate_size_border*2 + BOT_SIZE_RADIUS/2),
+ (pg_border_distance),
+ (pg_width - pg_border_distance - pg_plate_size_border*2 - BOT_SIZE_RADIUS/2),
+ (pg_length - pg_border_distance))
+{
+ host_debug("Path_2013 constructor\n");
+ obstacles = new path_obstacle_t[PATH_2013_OBSTACLES_NB];
+ navpoints = new vect_t[PATH_2013_NAVPOINTS_NB];
+ navweights = new weight_t[PATH_2013_NAVPOINTS_NB];
+ astar_nodes = new struct astar_node_t[PATH_2013_NAVPOINTS_NB];
+}
+
+Path_2013::~Path_2013()
+{
+ delete[] obstacles;
+ delete[] navpoints;
+ delete[] navweights;
+ delete[] astar_nodes;
+}
+
+void Path_2013::reset()
+{
+ /* Reset the mobile obstacles */
+ Path::reset();
+
+ /* Add the cake obstacle */
+ add_obstacle( pg_cake_pos,
+ pg_cake_radius,
+ PATH_2013_CAKE_NAVPOINTS_NB * 2 /* only half the navpoints are on the playground */,
+ PATH_2013_CAKE_NAVPOINTS_LAYERS,
+ 0 /* no extra clearance radius */,
+ true /* it is allowed to target the center */);
+}