Browse Source

Move ObjectLayerToPrint from GCodeGenerator to outside to allow using forward declaration.

Lukáš Hejl 1 year ago
parent
commit
317db5fab4
1 changed files with 17 additions and 12 deletions
  1. 17 12
      src/libslic3r/GCode.hpp

+ 17 - 12
src/libslic3r/GCode.hpp

@@ -89,6 +89,21 @@ struct LayerResult {
     static LayerResult make_nop_layer_result() { return {"", std::numeric_limits<coord_t>::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 <key, value> items
     static void encode_full_config(const Print& print, std::vector<std::pair<std::string, std::string>>& 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<ObjectLayerToPrint>;
+    using ObjectLayerToPrint  = GCode::ObjectLayerToPrint;
+    using ObjectsLayerToPrint = std::vector<GCode::ObjectLayerToPrint>;
 
     std::optional<Point> last_position;