mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-16 13:45:54 +08:00
stubbing in functions.
This commit is contained in:
parent
eab034434a
commit
7c0b807518
@ -952,6 +952,21 @@ PrintObject::_slice_region(size_t region_id, std::vector<float> z, bool modifier
|
||||
return layers;
|
||||
}
|
||||
|
||||
void
|
||||
PrintObject::make_perimeters()
|
||||
{
|
||||
if (this->state.is_done(posPerimeters)) return;
|
||||
if (this->typed_slices)
|
||||
this->state.invalidate(posSlice);
|
||||
this->slice();
|
||||
this->_make_perimeters();
|
||||
}
|
||||
|
||||
void
|
||||
PrintObject::slice()
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
PrintObject::_make_perimeters()
|
||||
{
|
||||
@ -1095,6 +1110,52 @@ PrintObject::_infill()
|
||||
this->state.set_done(posInfill);
|
||||
}
|
||||
|
||||
void
|
||||
PrintObject::prepare_infill()
|
||||
{
|
||||
if (this->state.is_done(posInfill)) return;
|
||||
// This prepare_infill() is not really idempotent.
|
||||
// TODO: It should clear and regenerate fill_surfaces at every run
|
||||
// instead of modifying it in place.
|
||||
|
||||
this->state.invalidate(posPerimeters);
|
||||
this->make_perimeters();
|
||||
|
||||
this->state.set_started(posPrepareInfill);
|
||||
|
||||
// prerequisites
|
||||
this->detect_surfaces_type();
|
||||
|
||||
if (this->print()->status_cb != nullptr)
|
||||
this->print()->status_cb(30, "Preparing infill");
|
||||
|
||||
|
||||
// decide what surfaces are to be filled
|
||||
for (auto& layer : this->layers) {
|
||||
for (auto& region : layer->regions) {
|
||||
region->prepare_fill_surfaces();
|
||||
}
|
||||
}
|
||||
|
||||
// this will detect bridges and reverse bridges
|
||||
// and rearrange top/bottom/internal surfaces
|
||||
this->process_external_surfaces();
|
||||
|
||||
// detect which fill surfaces are near external layers
|
||||
// they will be split in internal and internal-solid surfaces
|
||||
this->discover_horizontal_shells();
|
||||
this->clip_fill_surfaces();
|
||||
|
||||
// the following step needs to be done before combination because it may need
|
||||
// to remove only half of the combined infill
|
||||
this->bridge_over_infill();
|
||||
|
||||
// combine fill surfaces to honor the "infill every N layers" option
|
||||
this->combine_infill();
|
||||
|
||||
this->state.set_done(posPrepareInfill);
|
||||
}
|
||||
|
||||
void
|
||||
PrintObject::combine_infill()
|
||||
{
|
||||
@ -1201,6 +1262,15 @@ PrintObject::combine_infill()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
PrintObject::infill()
|
||||
{
|
||||
this->prepare_infill();
|
||||
this->_infill();
|
||||
}
|
||||
|
||||
SupportMaterial *
|
||||
PrintObject::_support_material()
|
||||
{
|
||||
@ -1288,6 +1358,13 @@ PrintObject::generate_support_material()
|
||||
|
||||
}
|
||||
#endif // SLIC3RXS
|
||||
|
||||
|
||||
void PrintObject::discover_horizontal_shells()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void PrintObject::clip_fill_surfaces()
|
||||
{
|
||||
if (! this->config.infill_only_where_needed.value ||
|
||||
|
Loading…
x
Reference in New Issue
Block a user