diff --git a/xs/src/libslic3r/PrintObject.cpp b/xs/src/libslic3r/PrintObject.cpp index 1faadab9b..4bea641e5 100644 --- a/xs/src/libslic3r/PrintObject.cpp +++ b/xs/src/libslic3r/PrintObject.cpp @@ -335,12 +335,12 @@ PrintObject::has_support_material() const void PrintObject::detect_surfaces_type() { - // prerequisites - this->slice(); - if (this->state.is_done(posDetectSurfaces)) return; this->state.set_started(posDetectSurfaces); + // prerequisites + this->slice(); + parallelize( std::queue(std::deque(this->layers.begin(), this->layers.end())), // cast LayerPtrs to std::queue boost::bind(&Slic3r::Layer::detect_surfaces_type, _1), @@ -1187,12 +1187,12 @@ PrintObject::make_perimeters() void PrintObject::infill() { - // prerequisites - this->prepare_infill(); - if (this->state.is_done(posInfill)) return; this->state.set_started(posInfill); + // prerequisites + this->prepare_infill(); + parallelize( std::queue(std::deque(this->layers.begin(), this->layers.end())), // cast LayerPtrs to std::queue boost::bind(&Slic3r::Layer::make_fills, _1),