update libslic3r

This commit is contained in:
QIDI TECH
2025-08-04 10:13:51 +08:00
parent e3f49c2fb5
commit 8d4d60ec48
96 changed files with 4993 additions and 1903 deletions

View File

@@ -9,6 +9,25 @@
#include "SurfaceCollection.hpp"
namespace Slic3r {
class LayerRegion;
class PrintRegion;
struct PerimeterRegion
{
const PrintRegion *region;
ExPolygons expolygons;
BoundingBox bbox;
explicit PerimeterRegion(const LayerRegion &layer_region);
// If there is any incompatibility, we don't need to create separate LayerRegions.
// Because it is enough to split perimeters by PerimeterRegions.
static bool has_compatible_perimeter_regions(const PrintRegionConfig &config, const PrintRegionConfig &other_config);
static void merge_compatible_perimeter_regions(std::vector<PerimeterRegion> &perimeter_regions);
};
using PerimeterRegions = std::vector<PerimeterRegion>;
class PerimeterGenerator {
public:
@@ -25,6 +44,7 @@ public:
const PrintRegionConfig *config;
const PrintObjectConfig *object_config;
const PrintConfig *print_config;
const PerimeterRegions *perimeter_regions;
// Outputs:
ExtrusionEntityCollection *loops;
ExtrusionEntityCollection *gap_fill;
@@ -41,10 +61,10 @@ public:
std::pair<double, double> m_external_overhang_dist_boundary;
std::pair<double, double> m_smaller_external_overhang_dist_boundary;
std::vector<LoopNode> *loop_nodes;
PerimeterGenerator(
// Input:
const SurfaceCollection* slices,
const SurfaceCollection* slices,
double layer_height,
Flow flow,
const PrintRegionConfig* config,