I-Seed drone's onboard service
0.0.9
|
Mission polygon with a particular direction attached to it. More...
#include <mission_directed_polygon.h>
Public Types | |
using | kernel = CGAL::Exact_predicates_exact_constructions_kernel |
using | polygon = CGAL::Polygon_2< kernel > |
Public Member Functions | |
mission_directed_polygon (const utils::direction &dir, const utils::polygon &polygon) | |
~mission_directed_polygon () | |
std::size_t | waypoint_count () const |
double | distance (const utils::point &start) const |
Distance from start to the closest cell. More... | |
void | build_path (const utils::point &start, std::vector< utils::point > *result) |
Build mission path. More... | |
Mission polygon with a particular direction attached to it.
Polygon will be transformed in a way that attached direction became vertical. Then vertical decomposition algorithm will be applied to split polygon into trapezoids and rectangles, collectively called mission_cell
Considering the direct polygon above: {A0, A1, A2, A3, A4} and vector {A4, A0}, it can be decomposed into cells: {A0, A3', A3, A4}, {A1, A1', A3, A3'} and {A1, A1', A2}
using mission_directed_polygon::kernel = CGAL::Exact_predicates_exact_constructions_kernel |
using mission_directed_polygon::polygon = CGAL::Polygon_2<kernel> |
|
explicit |
|
default |
auto mission_directed_polygon::waypoint_count | ( | ) | const |
auto mission_directed_polygon::distance | ( | const utils::point & | start | ) | const |
Distance from start
to the closest cell.
void mission_directed_polygon::build_path | ( | const utils::point & | start, |
std::vector< utils::point > * | result | ||
) |
Build mission path.
start | Starting point of the mission path |
result | vector where mission path will be saved |