#ifndef slic3r_Polyline_hpp_ #define slic3r_Polyline_hpp_ #include "Line.hpp" #include "MultiPoint.hpp" #include namespace Slic3r { class ExPolygon; class Polyline; typedef std::vector Polylines; class Polyline : public MultiPoint { public: operator Polylines() const; operator Line() const; Point last_point() const; Point leftmost_point() const; Lines lines() const; void clip_end(double distance); void clip_start(double distance); void extend_end(double distance); void extend_start(double distance); Points equally_spaced_points(double distance) const; void simplify(double tolerance); template void simplify_by_visibility(const T &area); void split_at(const Point &point, Polyline* p1, Polyline* p2) const; bool is_straight() const; std::string wkt() const; #ifdef SLIC3RXS void from_SV_check(SV* poly_sv); #endif }; } #endif