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:
authorbubnikv <bubnikv@gmail.com>2017-03-08 17:58:40 +0300
committerbubnikv <bubnikv@gmail.com>2017-03-08 17:58:40 +0300
commit20796b89c12d77d19f2feb3a22672093d835f4b8 (patch)
treef8153a544db856a72923a36f3b4222f3745e5dc0 /xs/src/libslic3r/PrintObject.cpp
parentb5e45bccf9b442fff95f8e15ab7642efe8b58e97 (diff)
Improved debugging of slicing.
Diffstat (limited to 'xs/src/libslic3r/PrintObject.cpp')
-rw-r--r--xs/src/libslic3r/PrintObject.cpp28
1 files changed, 14 insertions, 14 deletions
diff --git a/xs/src/libslic3r/PrintObject.cpp b/xs/src/libslic3r/PrintObject.cpp
index a74b523d7..65cd66522 100644
--- a/xs/src/libslic3r/PrintObject.cpp
+++ b/xs/src/libslic3r/PrintObject.cpp
@@ -1092,22 +1092,23 @@ void PrintObject::_slice()
}
}
- if (this->print()->regions.size() == 1) {
- // Optimized for a single region. Slice the single non-modifier mesh.
- std::vector<ExPolygons> expolygons_by_layer = this->_slice_region(0, slice_zs, false);
+ // Slice all non-modifier volumes.
+ for (size_t region_id = 0; region_id < this->print()->regions.size(); ++ region_id) {
+ BOOST_LOG_TRIVIAL(debug) << "Slicing objects - region " << region_id;
+ std::vector<ExPolygons> expolygons_by_layer = this->_slice_region(region_id, slice_zs, false);
+ BOOST_LOG_TRIVIAL(debug) << "Slicing objects - append slices " << region_id << " start";
for (size_t layer_id = 0; layer_id < expolygons_by_layer.size(); ++ layer_id)
- this->layers[layer_id]->regions.front()->slices.append(std::move(expolygons_by_layer[layer_id]), stInternal);
- } else {
- // Slice all non-modifier volumes.
- for (size_t region_id = 0; region_id < this->print()->regions.size(); ++ region_id) {
- std::vector<ExPolygons> expolygons_by_layer = this->_slice_region(region_id, slice_zs, false);
- for (size_t layer_id = 0; layer_id < expolygons_by_layer.size(); ++ layer_id)
- this->layers[layer_id]->regions[region_id]->slices.append(std::move(expolygons_by_layer[layer_id]), stInternal);
- }
- // Slice all modifier volumes.
+ this->layers[layer_id]->regions[region_id]->slices.append(std::move(expolygons_by_layer[layer_id]), stInternal);
+ BOOST_LOG_TRIVIAL(debug) << "Slicing objects - append slices " << region_id << " end";
+ }
+
+ // Slice all modifier volumes.
+ if (this->print()->regions.size() > 1) {
for (size_t region_id = 0; region_id < this->print()->regions.size(); ++ region_id) {
+ BOOST_LOG_TRIVIAL(debug) << "Slicing modifier volumes - region " << region_id;
std::vector<ExPolygons> expolygons_by_layer = this->_slice_region(region_id, slice_zs, true);
// loop through the other regions and 'steal' the slices belonging to this one
+ BOOST_LOG_TRIVIAL(debug) << "Slicing modifier volumes - stealing " << region_id << " start";
for (size_t other_region_id = 0; other_region_id < this->print()->regions.size(); ++ other_region_id) {
if (region_id == other_region_id)
continue;
@@ -1127,6 +1128,7 @@ void PrintObject::_slice()
layerm->slices.append(std::move(my_parts), stInternal);
}
}
+ BOOST_LOG_TRIVIAL(debug) << "Slicing modifier volumes - stealing " << region_id << " end";
}
}
@@ -1185,8 +1187,6 @@ end:
std::vector<ExPolygons> PrintObject::_slice_region(size_t region_id, const std::vector<float> &z, bool modifier)
{
- BOOST_LOG_TRIVIAL(debug) << "Slicing region " << region_id;
-
std::vector<ExPolygons> layers;
assert(region_id < this->region_volumes.size());
std::vector<int> &volumes = this->region_volumes[region_id];