Reworked the algorithm for avoid crossing perimeters for multiple objects

This commit is contained in:
Lukáš Hejl 2020-10-16 01:57:26 +02:00
parent 69658a57d8
commit c16aad7e0b
4 changed files with 167 additions and 35 deletions

View file

@ -88,10 +88,19 @@ private:
const Point &intersection_last);
static ExPolygons get_boundary(const Layer &layer);
Polyline simplify_travel(const Polyline &travel, const GCode &gcodegen);
static ExPolygons get_boundary_external(const Layer &layer);
Polygons m_boundaries;
static Polyline simplify_travel(const EdgeGrid::Grid &edge_grid, const Polyline &travel);
static Polyline avoid_perimeters(const Polygons &boundaries, const EdgeGrid::Grid &grid, const Point &start, const Point &end);
Polygons m_boundaries;
Polygons m_boundaries_external;
BoundingBox m_bbox;
BoundingBox m_bbox_external;
EdgeGrid::Grid m_grid;
EdgeGrid::Grid m_grid_external;
public:
AvoidCrossingPerimeters2() : AvoidCrossingPerimeters() {}