Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Ranellucci <aar@cpan.org>2014-12-24 12:20:55 +0300
committerAlessandro Ranellucci <aar@cpan.org>2014-12-24 12:20:55 +0300
commit4848cb7606a3f1f0741bcff9cae0cc19764c59f0 (patch)
treecd4f73bd786f10391fd561ec10f32987606eb413 /xs/src/libslic3r/SurfaceCollection.cpp
parentea40c4d1b0d7d67464f7cebdd98a669b4b8ffb4b (diff)
Ported PrintObject::bridge_over_infill() to XS
Diffstat (limited to 'xs/src/libslic3r/SurfaceCollection.cpp')
-rw-r--r--xs/src/libslic3r/SurfaceCollection.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/xs/src/libslic3r/SurfaceCollection.cpp b/xs/src/libslic3r/SurfaceCollection.cpp
index 027138818..ccf1eaa4e 100644
--- a/xs/src/libslic3r/SurfaceCollection.cpp
+++ b/xs/src/libslic3r/SurfaceCollection.cpp
@@ -80,6 +80,27 @@ SurfaceCollection::any_internal_contains(const T &item) const
template bool SurfaceCollection::any_internal_contains<Line>(const Line &item) const;
template bool SurfaceCollection::any_internal_contains<Polyline>(const Polyline &item) const;
+SurfacesPtr
+SurfaceCollection::filter_by_type(SurfaceType type)
+{
+ SurfacesPtr ss;
+ for (Surfaces::iterator surface = this->surfaces.begin(); surface != this->surfaces.end(); ++surface) {
+ if (surface->surface_type == type) ss.push_back(&*surface);
+ }
+ return ss;
+}
+
+void
+SurfaceCollection::filter_by_type(SurfaceType type, Polygons* polygons)
+{
+ for (Surfaces::iterator surface = this->surfaces.begin(); surface != this->surfaces.end(); ++surface) {
+ if (surface->surface_type == type) {
+ Polygons pp = surface->expolygon;
+ polygons->insert(polygons->end(), pp.begin(), pp.end());
+ }
+ }
+}
+
#ifdef SLIC3RXS
REGISTER_CLASS(SurfaceCollection, "Surface::Collection");
#endif