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

github.com/Ultimaker/CuraEngine.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGhostkeeper <rubend@tutanota.com>2021-05-03 18:10:50 +0300
committerGhostkeeper <rubend@tutanota.com>2021-05-03 18:10:50 +0300
commit25bface523fd20a17097c10888324efe50e05395 (patch)
tree3422b72fcdfd9cd2cb5b1cae645b1f9de4115c35
parent145d83a528b706ef617007358386d32e45c7c65b (diff)
Fix interpretation of getExtrudersUsed4.9.14.9
It returns a vector of bools describing for each extruders whether or not they are used. It was previously being interpreted as a vector of extruder numbers that were being used. Contributes to issue CURA-8188.
-rw-r--r--src/FffGcodeWriter.cpp8
-rw-r--r--src/sliceDataStorage.cpp2
2 files changed, 7 insertions, 3 deletions
diff --git a/src/FffGcodeWriter.cpp b/src/FffGcodeWriter.cpp
index a782163aa..4608012f2 100644
--- a/src/FffGcodeWriter.cpp
+++ b/src/FffGcodeWriter.cpp
@@ -1182,9 +1182,13 @@ void FffGcodeWriter::calculatePrimeLayerPerExtruder(const SliceDataStorage& stor
{
for(LayerIndex layer_nr = -Raft::getTotalExtraLayers(); layer_nr < static_cast<LayerIndex>(storage.print_layer_count); ++layer_nr)
{
- for(size_t extruder_nr : storage.getExtrudersUsed(layer_nr))
+ const std::vector<bool> used_extruders = storage.getExtrudersUsed(layer_nr);
+ for(size_t extruder_nr = 0; extruder_nr < used_extruders.size(); ++extruder_nr)
{
- extruder_prime_layer_nr[extruder_nr] = std::min(extruder_prime_layer_nr[extruder_nr], layer_nr);
+ if(used_extruders[extruder_nr])
+ {
+ extruder_prime_layer_nr[extruder_nr] = std::min(extruder_prime_layer_nr[extruder_nr], layer_nr);
+ }
}
}
}
diff --git a/src/sliceDataStorage.cpp b/src/sliceDataStorage.cpp
index e63facc34..d7936d76e 100644
--- a/src/sliceDataStorage.cpp
+++ b/src/sliceDataStorage.cpp
@@ -547,7 +547,7 @@ std::vector<bool> SliceDataStorage::getExtrudersUsed(LayerIndex layer_nr) const
{ // process brim/skirt
for (size_t extruder_nr = 0; extruder_nr < Application::getInstance().current_slice->scene.extruders.size(); extruder_nr++)
{
- if (skirt_brim[extruder_nr].size() > 0)
+ if(!skirt_brim[extruder_nr].empty())
{
ret[extruder_nr] = true;
continue;