diff options
Diffstat (limited to 'src/libslic3r/ExPolygonCollection.hpp')
-rw-r--r-- | src/libslic3r/ExPolygonCollection.hpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/libslic3r/ExPolygonCollection.hpp b/src/libslic3r/ExPolygonCollection.hpp new file mode 100644 index 000000000..4c181cd6a --- /dev/null +++ b/src/libslic3r/ExPolygonCollection.hpp @@ -0,0 +1,41 @@ +#ifndef slic3r_ExPolygonCollection_hpp_ +#define slic3r_ExPolygonCollection_hpp_ + +#include "libslic3r.h" +#include "ExPolygon.hpp" +#include "Line.hpp" +#include "Polyline.hpp" + +namespace Slic3r { + +class ExPolygonCollection; +typedef std::vector<ExPolygonCollection> ExPolygonCollections; + +class ExPolygonCollection +{ + public: + ExPolygons expolygons; + + ExPolygonCollection() {}; + ExPolygonCollection(const ExPolygon &expolygon); + ExPolygonCollection(const ExPolygons &expolygons) : expolygons(expolygons) {}; + operator Points() const; + operator Polygons() const; + operator ExPolygons&(); + void scale(double factor); + void translate(double x, double y); + void rotate(double angle, const Point ¢er); + template <class T> bool contains(const T &item) const; + bool contains_b(const Point &point) const; + void simplify(double tolerance); + Polygon convex_hull() const; + Lines lines() const; + Polygons contours() const; + void append(const ExPolygons &expolygons); +}; + +extern BoundingBox get_extents(const ExPolygonCollection &expolygon); + +} + +#endif |