From f200781436c0a0e22f0ff697597e44c0113e1a49 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Wed, 8 Mar 2017 14:22:49 +0100 Subject: [PATCH] C++ compiler suppressed default constructor and assignment operator for Surface after the move operators were implemented. Added those operators manually. --- xs/src/libslic3r/Surface.hpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/xs/src/libslic3r/Surface.hpp b/xs/src/libslic3r/Surface.hpp index b142471662..c2cec37931 100644 --- a/xs/src/libslic3r/Surface.hpp +++ b/xs/src/libslic3r/Surface.hpp @@ -39,6 +39,12 @@ public: double bridge_angle; // in radians, ccw, 0 = East, only 0+ (negative means undefined) unsigned short extra_perimeters; + Surface(const Slic3r::Surface &rhs) + : surface_type(rhs.surface_type), expolygon(rhs.expolygon), + thickness(rhs.thickness), thickness_layers(rhs.thickness_layers), + bridge_angle(rhs.bridge_angle), extra_perimeters(rhs.extra_perimeters) + {}; + Surface(SurfaceType _surface_type, const ExPolygon &_expolygon) : surface_type(_surface_type), expolygon(_expolygon), thickness(-1), thickness_layers(1), bridge_angle(-1), extra_perimeters(0) @@ -63,6 +69,17 @@ public: bridge_angle(other.bridge_angle), extra_perimeters(other.extra_perimeters) {}; + Surface& operator=(const Surface &rhs) + { + surface_type = rhs.surface_type; + expolygon = rhs.expolygon; + thickness = rhs.thickness; + thickness_layers = rhs.thickness_layers; + bridge_angle = rhs.bridge_angle; + extra_perimeters = rhs.extra_perimeters; + return *this; + } + Surface& operator=(Surface &&rhs) { surface_type = rhs.surface_type; @@ -71,6 +88,7 @@ public: thickness_layers = rhs.thickness_layers; bridge_angle = rhs.bridge_angle; extra_perimeters = rhs.extra_perimeters; + return *this; } operator Polygons() const;