Assigning of wiping extrusions improved

This commit is contained in:
Lukas Matena 2018-06-21 10:16:52 +02:00
parent 8a47852be2
commit bc5bd1b42b
6 changed files with 101 additions and 78 deletions

View file

@ -24,6 +24,7 @@ class Print;
class PrintObject;
class ModelObject;
// Print step IDs for keeping track of the print state.
enum PrintStep {
psSkirt, psBrim, psWipeTower, psCount,
@ -323,6 +324,15 @@ private:
tbb::atomic<bool> m_canceled;
};
// Returns extruder this eec should be printed with, according to PrintRegion config
static int get_extruder(const ExtrusionEntityCollection* fill, const PrintRegion &region) {
return is_infill(fill->role()) ? std::max<int>(0, (is_solid_infill(fill->entities.front()->role()) ? region.config.solid_infill_extruder : region.config.infill_extruder) - 1) :
std::max<int>(region.config.perimeter_extruder.value - 1, 0);
}
#define FOREACH_BASE(type, container, iterator) for (type::const_iterator iterator = (container).begin(); iterator != (container).end(); ++iterator)
#define FOREACH_REGION(print, region) FOREACH_BASE(PrintRegionPtrs, (print)->regions, region)
#define FOREACH_OBJECT(print, object) FOREACH_BASE(PrintObjectPtrs, (print)->objects, object)