From 4860d63b01aa2dea64fba63ef15d353a1e82c7bf Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Sat, 5 May 2018 16:10:43 -0500 Subject: [PATCH] Add static method to create scaled Polygons from Pointf arrays. --- xs/src/libslic3r/Polygon.cpp | 11 +++++++++++ xs/src/libslic3r/Polygon.hpp | 2 ++ 2 files changed, 13 insertions(+) diff --git a/xs/src/libslic3r/Polygon.cpp b/xs/src/libslic3r/Polygon.cpp index b14b7d0fa..d809294f1 100644 --- a/xs/src/libslic3r/Polygon.cpp +++ b/xs/src/libslic3r/Polygon.cpp @@ -293,4 +293,15 @@ Polygon::convex_points(double angle) const return convex; } +Polygon Polygon::new_scale(const Pointfs& p) { + Points scaled_p; + for (auto i : p) { + // scale each individual point and append to a new array + scaled_p.push_back(scale_(i.x), scale_(i.y)); + } + return Slic3r::Polygon(scaled_p); +}; + + + } diff --git a/xs/src/libslic3r/Polygon.hpp b/xs/src/libslic3r/Polygon.hpp index b1576ad27..1534de40c 100644 --- a/xs/src/libslic3r/Polygon.hpp +++ b/xs/src/libslic3r/Polygon.hpp @@ -48,6 +48,8 @@ class Polygon : public MultiPoint { std::string wkt() const; Points concave_points(double angle = PI) const; Points convex_points(double angle = PI) const; + + static Polygon new_scale(const Pointfs& p); }; inline Polygons