3#include "software/ai/navigator/obstacle/obstacle.hpp"
4#include "software/geom/algorithms/closest_point.h"
5#include "software/geom/algorithms/contains.h"
6#include "software/geom/algorithms/distance.h"
7#include "software/geom/algorithms/intersects.h"
8#include "software/geom/algorithms/rasterize.h"
10template <
typename GEOM_TYPE>
23 bool contains(
const Point& p,
const double t_sec = 0)
const override;
24 double distance(
const Point& p,
const double t_sec = 0)
const override;
30 std::string
toString(
void)
const override;
32 std::vector<Point>
rasterize(
const double resolution_size)
const override;
39 const GEOM_TYPE
getGeom(
void)
const;
42 const GEOM_TYPE geom_;
46template <
typename GEOM_TYPE>
51template <
typename GEOM_TYPE>
54 return ::contains(geom_, p);
57template <
typename GEOM_TYPE>
60 return ::distance(geom_, p);
63template <
typename GEOM_TYPE>
66 return ::signedDistance(geom_, p);
69template <
typename GEOM_TYPE>
72 return ::intersects(geom_, segment);
75template <
typename GEOM_TYPE>
78 return ::closestPoint(geom_, p);
81template <
typename GEOM_TYPE>
84 return ::rasterize(geom_, resolution_size);
87template <
typename GEOM_TYPE>
90 return ::createObstacleProto(geom_);
93template <
typename GEOM_TYPE>
95 const double inflation_radius)
const
97 return ::axisAlignedBoundingBox(geom_, inflation_radius);
100template <
typename GEOM_TYPE>
103 std::ostringstream ss;
104 ss <<
"Obstacle with shape " << geom_;
108template <
typename GEOM_TYPE>
114template <
typename GEOM_TYPE>
117 visitor.
visit(*
this);
Definition geom_obstacle.hpp:12
std::string toString(void) const override
Definition geom_obstacle.hpp:101
Rectangle axisAlignedBoundingBox(double inflation_radius=0) const override
Definition geom_obstacle.hpp:94
bool contains(const Point &p, const double t_sec=0) const override
Definition geom_obstacle.hpp:52
double signedDistance(const Point &p, const double t_sec=0) const override
Definition geom_obstacle.hpp:64
void accept(ObstacleVisitor &visitor) const override
Definition geom_obstacle.hpp:115
const GEOM_TYPE getGeom(void) const
Definition geom_obstacle.hpp:109
bool intersects(const Segment &segment, const double t_sec=0) const override
Definition geom_obstacle.hpp:70
double distance(const Point &p, const double t_sec=0) const override
Definition geom_obstacle.hpp:58
Point closestPoint(const Point &p) const override
Definition geom_obstacle.hpp:76
std::vector< Point > rasterize(const double resolution_size) const override
Definition geom_obstacle.hpp:82
TbotsProto::Obstacle createObstacleProto() const override
Definition geom_obstacle.hpp:88
Definition obstacle_visitor.h:23
virtual void visit(const GeomObstacle< Circle > &geom_obstacle)=0
Definition obstacle.hpp:19
Definition rectangle.h:10