mrs_lib
Various reusable classes, functions and utilities for use in MRS projects
safety_zone.h
1 // clang: TomasFormat
2 #ifndef MRS_LIB_SAFETYZONE_H
3 #define MRS_LIB_SAFETYZONE_H
4 
5 #include <mrs_lib/safety_zone/polygon.h>
6 #include <visualization_msgs/Marker.h>
7 #include <eigen3/Eigen/Eigen>
8 #include <vector>
9 
10 namespace mrs_lib
11 {
12 class SafetyZone {
13 public:
14  SafetyZone(Polygon outerBorder);
15  ~SafetyZone();
16 
17  SafetyZone(const Eigen::MatrixXd& outerBorderMatrix);
18 
19  bool isPointValid(const double px, const double py);
20  bool isPathValid(const double p1x, const double p1y, const double p2x, const double p2y);
21 
22  Polygon getBorder();
23 
24 private:
25  Polygon* outerBorder;
26 
27 public:
28  struct BorderError : public std::exception
29  {
30  const char* what() const throw() {
31  return "SafeZone: Wrong configuration for the border";
32  }
33  };
34 };
35 } // namespace mrs_lib
36 
37 #endif // MRS_LIB_SAFETYZONE_H
mrs_lib
All mrs_lib functions, classes, variables and definitions are contained in this namespace.
Definition: attitude_converter.h:29
mrs_lib::SafetyZone::BorderError
Definition: safety_zone.h:28
mrs_lib::Polygon
Definition: polygon.h:13
mrs_lib::SafetyZone
Definition: safety_zone.h:12