mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-20 13:17:54 -06:00
Fix of re-slicing with multiple regions.
This is a fix of a bug, which was in Slic3r forever, where raw slices were not cached, but recalculated from classified regions, where merging the regions did not produce the original contour reliably. Fixes [2.3.0-beta2] Odd bad slicing related to infill (?) percentage #5407
This commit is contained in:
parent
cc7dbf8925
commit
a2959ec944
5 changed files with 38 additions and 20 deletions
|
@ -28,6 +28,10 @@ public:
|
|||
// collection of surfaces generated by slicing the original geometry
|
||||
// divided by type top/bottom/internal
|
||||
SurfaceCollection slices;
|
||||
// Backed up slices before they are split into top/bottom/internal.
|
||||
// Only backed up for multi-region layers or layers with elephant foot compensation.
|
||||
//FIXME Review whether not to simplify the code by keeping the raw_slices all the time.
|
||||
ExPolygons raw_slices;
|
||||
|
||||
// collection of extrusion paths/loops filling gaps
|
||||
// These fills are generated by the perimeter generator.
|
||||
|
@ -125,8 +129,10 @@ public:
|
|||
// Test whether whether there are any slices assigned to this layer.
|
||||
bool empty() const;
|
||||
void make_slices();
|
||||
// Merge typed slices into untyped slices. This method is used to revert the effects of detect_surfaces_type() called for posPrepareInfill.
|
||||
void merge_slices();
|
||||
// Backup and restore raw sliced regions if needed.
|
||||
//FIXME Review whether not to simplify the code by keeping the raw_slices all the time.
|
||||
void backup_untyped_slices();
|
||||
void restore_untyped_slices();
|
||||
// Slices merged into islands, to be used by the elephant foot compensation to trim the individual surfaces with the shrunk merged slices.
|
||||
ExPolygons merged(float offset) const;
|
||||
template <class T> bool any_internal_region_slice_contains(const T &item) const {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue