Thunderbots Project
Loading...
Searching...
No Matches
obstacle_visitor.h
1#pragma once
2
3#include "software/ai/navigator/obstacle/obstacle.hpp"
4#include "software/geom/circle.h"
5#include "software/geom/polygon.h"
6#include "software/geom/rectangle.h"
7#include "software/geom/stadium.h"
8
9// We forward-declare GeomObstacle because if we include them we induce a
10// circular dependency between the Individual library for each obstacle and this
11// visitor.
12template <typename GEOM_TYPE>
13class GeomObstacle;
14
23{
24 public:
25 ObstacleVisitor() = default;
26 virtual ~ObstacleVisitor() = default;
27
33 virtual void visit(const GeomObstacle<Circle> &geom_obstacle) = 0;
34 virtual void visit(const GeomObstacle<Polygon> &geom_obstacle) = 0;
35 virtual void visit(const GeomObstacle<Rectangle> &geom_obstacle) = 0;
36 virtual void visit(const GeomObstacle<Stadium> &geom_obstacle) = 0;
37};
Definition geom_obstacle.hpp:12
Definition obstacle_visitor.h:23
virtual void visit(const GeomObstacle< Circle > &geom_obstacle)=0