Fixed incorrect filtering of extrusions during gcode generation

The behaviour resulted in duplicate extrusions in some cases
Fix of #3665
This commit is contained in:
Lukas Matena 2020-02-17 15:41:35 +01:00
parent 526d37a076
commit b1145df566

View file

@ -11,18 +11,10 @@ void filter_by_extrusion_role_in_place(ExtrusionEntitiesPtr &extrusion_entities,
if (role != erMixed) {
auto first = extrusion_entities.begin();
auto last = extrusion_entities.end();
auto result = first;
while (first != last) {
// The caller wants only paths with a specific extrusion role.
auto role2 = (*first)->role();
if (role != role2) {
// This extrusion entity does not match the role asked.
assert(role2 != erMixed);
*result = *first;
++ result;
}
++ first;
}
extrusion_entities.erase(
std::remove_if(first, last, [&role](const ExtrusionEntity* ee) {
return ee->role() != role; }),
last);
}
}