mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-04 06:11:02 +00:00
Every libslic3r source and header now directly includes the headers declaring what it uses, rather than relying on the precompiled header or transitive includes. Generated with clang-tidy misc-include-cleaner, with libslic3r headers spelled libslic3r/... so they resolve outside the library's private include paths. MultiMaterialSegmentation.hpp, Support/SupportParameters.hpp and Format/STEP.hpp are made self-contained by hand.
45 lines
1.2 KiB
C++
45 lines
1.2 KiB
C++
#ifndef slic3r_ExPolygonCollection_hpp_
|
|
#define slic3r_ExPolygonCollection_hpp_
|
|
|
|
#include "Point.hpp"
|
|
#include "Polygon.hpp"
|
|
#include "libslic3r.h"
|
|
#include "ExPolygon.hpp"
|
|
#include "Line.hpp"
|
|
#include "Polyline.hpp"
|
|
#include <vector>
|
|
|
|
namespace Slic3r {
|
|
|
|
class ExPolygonCollection;
|
|
typedef std::vector<ExPolygonCollection> ExPolygonCollections;
|
|
|
|
class ExPolygonCollection
|
|
{
|
|
public:
|
|
ExPolygons expolygons;
|
|
|
|
ExPolygonCollection() {}
|
|
explicit ExPolygonCollection(const ExPolygon &expolygon);
|
|
explicit ExPolygonCollection(const ExPolygons &expolygons) : expolygons(expolygons) {}
|
|
explicit operator Points() const;
|
|
explicit operator Polygons() const;
|
|
explicit 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
|