From 317db5fab4b62952a477d9bc91e77316d75e0c89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 1 Dec 2023 11:23:30 +0100 Subject: [PATCH] Move ObjectLayerToPrint from GCodeGenerator to outside to allow using forward declaration. --- src/libslic3r/GCode.hpp | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/libslic3r/GCode.hpp b/src/libslic3r/GCode.hpp index 42e0e36647..986cf6d92e 100644 --- a/src/libslic3r/GCode.hpp +++ b/src/libslic3r/GCode.hpp @@ -89,6 +89,21 @@ struct LayerResult { static LayerResult make_nop_layer_result() { return {"", std::numeric_limits::max(), false, false, true}; } }; +namespace GCode { +// Object and support extrusions of the same PrintObject at the same print_z. +// public, so that it could be accessed by free helper functions from GCode.cpp +struct ObjectLayerToPrint +{ + ObjectLayerToPrint() : object_layer(nullptr), support_layer(nullptr) {} + const Layer* object_layer; + const SupportLayer* support_layer; + const Layer* layer() const { return (object_layer != nullptr) ? object_layer : support_layer; } + const PrintObject* object() const { return (this->layer() != nullptr) ? this->layer()->object() : nullptr; } + coordf_t print_z() const { return (object_layer != nullptr && support_layer != nullptr) ? 0.5 * (object_layer->print_z + support_layer->print_z) : this->layer()->print_z; } +}; + +} // namespace GCode + class GCodeGenerator { public: @@ -171,18 +186,8 @@ public: // translate full config into a list of items static void encode_full_config(const Print& print, std::vector>& config); - // Object and support extrusions of the same PrintObject at the same print_z. - // public, so that it could be accessed by free helper functions from GCode.cpp - struct ObjectLayerToPrint - { - ObjectLayerToPrint() : object_layer(nullptr), support_layer(nullptr) {} - const Layer* object_layer; - const SupportLayer* support_layer; - const Layer* layer() const { return (object_layer != nullptr) ? object_layer : support_layer; } - const PrintObject* object() const { return (this->layer() != nullptr) ? this->layer()->object() : nullptr; } - coordf_t print_z() const { return (object_layer != nullptr && support_layer != nullptr) ? 0.5 * (object_layer->print_z + support_layer->print_z) : this->layer()->print_z; } - }; - using ObjectsLayerToPrint = std::vector; + using ObjectLayerToPrint = GCode::ObjectLayerToPrint; + using ObjectsLayerToPrint = std::vector; std::optional last_position;