3#include "software/ai/navigator/obstacle/geom_obstacle.hpp"
4#include "software/ai/navigator/trajectory/trajectory_path.h"
5#include "software/geom/algorithms/contains.h"
6#include "software/geom/algorithms/distance.h"
7#include "software/geom/algorithms/intersects.h"
9template <
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;
33template <
typename GEOM_TYPE>
40template <
typename GEOM_TYPE>
45 return ::contains(this->geom_, p);
51 const Vector displacement = traj_.getPosition(t_sec) - traj_.getPosition(0);
52 return ::contains(this->geom_, p - displacement);
56template <
typename GEOM_TYPE>
61 return ::distance(this->geom_, p);
67 const Vector displacement = traj_.getPosition(t_sec) - traj_.getPosition(0);
68 return ::distance(this->geom_, p - displacement);
72template <
typename GEOM_TYPE>
74 const double t_sec)
const
78 return ::signedDistance(this->geom_, p);
84 const Vector displacement = traj_.getPosition(t_sec) - traj_.getPosition(0);
85 return ::signedDistance(this->geom_, p - displacement);
89template <
typename GEOM_TYPE>
91 const double t_sec)
const
95 return ::intersects(this->geom_, segment);
101 const Vector displacement = traj_.getPosition(t_sec) - traj_.getPosition(0);
102 return ::intersects(this->geom_, segment - displacement);
Definition geom_obstacle.hpp:12
Definition trajectory_obstacle.hpp:11
bool contains(const Point &p, const double t_sec=0) const override
Definition trajectory_obstacle.hpp:41
double signedDistance(const Point &p, const double t_sec=0) const override
Definition trajectory_obstacle.hpp:73
bool intersects(const Segment &segment, const double t_sec=0) const override
Definition trajectory_obstacle.hpp:90
double distance(const Point &p, const double t_sec=0) const override
Definition trajectory_obstacle.hpp:57
Definition trajectory_path.h:19