#ifndef slic3r_PolylineCollection_hpp_ #define slic3r_PolylineCollection_hpp_ #include "libslic3r.h" #include "Polyline.hpp" namespace Slic3r { class PolylineCollection { public: Polylines polylines; void chained_path(PolylineCollection* retval, bool no_reverse = false) const { retval->polylines = chained_path(this->polylines, no_reverse); } void chained_path_from(Point start_near, PolylineCollection* retval, bool no_reverse = false) const { retval->polylines = chained_path_from(this->polylines, start_near, no_reverse); } Point leftmost_point() const { return leftmost_point(polylines); } void append(const Polylines &polylines); static Point leftmost_point(const Polylines &polylines); #if SLIC3R_CPPVER > 11 static Polylines chained_path(Polylines &&src, bool no_reverse = false); static Polylines chained_path_from(Polylines &&src, Point start_near, bool no_reverse = false); static Polylines chained_path(Polylines src, bool no_reverse = false); static Polylines chained_path_from(Polylines src, Point start_near, bool no_reverse = false); #else static Polylines chained_path(const Polylines &src, bool no_reverse = false); static Polylines chained_path_from(const Polylines &src, Point start_near, bool no_reverse = false); #endif }; } #endif