diff --git a/src/libslic3r/Config.hpp b/src/libslic3r/Config.hpp index ef3dc32c81..a0425bfee4 100644 --- a/src/libslic3r/Config.hpp +++ b/src/libslic3r/Config.hpp @@ -1793,7 +1793,7 @@ public: enum_values.reserve(il.size()); enum_labels.clear(); enum_labels.reserve(il.size()); - for (const std::pair p : il) { + for (const std::pair &p : il) { enum_values.emplace_back(p.first); enum_labels.emplace_back(p.second); } diff --git a/src/libslic3r/Point.cpp b/src/libslic3r/Point.cpp index 794b27c444..09afcc3993 100644 --- a/src/libslic3r/Point.cpp +++ b/src/libslic3r/Point.cpp @@ -94,6 +94,19 @@ BoundingBox get_extents(const Points &pts) template BoundingBox get_extents(const Points &pts); template BoundingBox get_extents(const Points &pts); +// if IncludeBoundary, then a bounding box is defined even for a single point. +// otherwise a bounding box is only defined if it has a positive area. +template +BoundingBox get_extents(const std::vector &pts) +{ + BoundingBox bbox; + for (const Points &p : pts) + bbox.merge(get_extents(p)); + return bbox; +} +template BoundingBox get_extents(const std::vector &pts); +template BoundingBox get_extents(const std::vector &pts); + BoundingBoxf get_extents(const std::vector &pts) { BoundingBoxf bbox; diff --git a/src/libslic3r/Point.hpp b/src/libslic3r/Point.hpp index 389fa313b5..e86cdcceda 100644 --- a/src/libslic3r/Point.hpp +++ b/src/libslic3r/Point.hpp @@ -233,19 +233,15 @@ inline Point lerp(const Point &a, const Point &b, double t) // otherwise a bounding box is only defined if it has a positive area. template BoundingBox get_extents(const Points &pts); -extern template BoundingBox get_extents(const Points& pts); -extern template BoundingBox get_extents(const Points& pts); +extern template BoundingBox get_extents(const Points &pts); +extern template BoundingBox get_extents(const Points &pts); // if IncludeBoundary, then a bounding box is defined even for a single point. // otherwise a bounding box is only defined if it has a positive area. template -BoundingBox get_extents(const std::vector &pts) -{ - BoundingBox bbox; - for (const Points &p : pts) - bbox.merge(get_extents(p)); - return bbox; -} +BoundingBox get_extents(const std::vector &pts); +extern template BoundingBox get_extents(const std::vector &pts); +extern template BoundingBox get_extents(const std::vector &pts); BoundingBoxf get_extents(const std::vector &pts);