FFF background slicing for a single object only:

Generalized the "enabled milestone" from SLA
to both SLA and FFF.
Merged the "milestone enabled" flag into the milestone status.
Fixed some potential threading issues in SLAPrint::finalize()
when resetting the "milestone enabled" flags.
This commit is contained in:
Vojtech Bubnik 2022-03-29 11:19:50 +02:00
parent 26d1b2a5cd
commit 60d7564942
7 changed files with 174 additions and 130 deletions

View file

@ -45,7 +45,7 @@ namespace FillLightning {
// Print step IDs for keeping track of the print state.
// The Print steps are applied in this order.
enum PrintStep {
enum PrintStep : unsigned int {
psWipeTower,
// Ordering of the tools on PrintObjects for a multi-material print.
// psToolOrdering is a synonym to psWipeTower, as the Wipe Tower calculates and modifies the ToolOrdering,
@ -59,7 +59,7 @@ enum PrintStep {
psCount,
};
enum PrintObjectStep {
enum PrintObjectStep : unsigned int {
posSlice, posPerimeters, posPrepareInfill,
posInfill, posIroning, posSupportMaterial, posCount,
};
@ -350,6 +350,7 @@ public:
private:
// to be called from Print only.
friend class Print;
friend class PrintBaseWithState<PrintStep, psCount>;
PrintObject(Print* print, ModelObject* model_object, const Transform3d& trafo, PrintInstances&& instances);
~PrintObject() override {
@ -537,8 +538,10 @@ public:
std::vector<ObjectID> print_object_ids() const override;
ApplyStatus apply(const Model &model, DynamicPrintConfig config) override;
void set_task(const TaskParams &params) override { PrintBaseWithState<PrintStep, psCount>::set_task_impl(params, m_objects); }
void process() override;
void finalize() override { PrintBaseWithState<PrintStep, psCount>::finalize_impl(m_objects); }
// Exports G-code into a file name based on the path_template, returns the file path of the generated G-code file.
// If preview_data is not null, the preview_data is filled in for the G-code visualization (not used by the command line Slic3r).
std::string export_gcode(const std::string& path_template, GCodeProcessorResult* result, ThumbnailsGeneratorCallback thumbnail_cb = nullptr);