#include "../Print.hpp" #include "../ShortestPath.hpp" #include "FillLightning.hpp" #include "Lightning/Generator.hpp" namespace Slic3r::FillLightning { void Filler::_fill_surface_single( const FillParams ¶ms, unsigned int thickness_layers, const std::pair &direction, ExPolygon expolygon, Polylines &polylines_out) { const Layer &layer = generator->getTreesForLayer(this->layer_id); Polylines fill_lines = layer.convertToLines(to_polygons(expolygon), scaled(0.5 * this->spacing - this->overlap)); if (params.dont_connect() || fill_lines.size() <= 1) { append(polylines_out, chain_polylines(std::move(fill_lines))); } else connect_infill(std::move(fill_lines), expolygon, polylines_out, this->spacing, params); } void GeneratorDeleter::operator()(Generator *p) { delete p; } GeneratorPtr build_generator(const PrintObject &print_object, const std::function &throw_on_cancel_callback) { return GeneratorPtr(new Generator(print_object, throw_on_cancel_callback)); } } // namespace Slic3r::FillAdaptive