diff --git a/lib/Slic3r/GUI/Projector.pm b/lib/Slic3r/GUI/Projector.pm index 2feba3413b..b6d1cb5a63 100644 --- a/lib/Slic3r/GUI/Projector.pm +++ b/lib/Slic3r/GUI/Projector.pm @@ -914,9 +914,10 @@ sub _repaint { if ($self->print->layer_solid($self->layer_num)) { $self->_paint_expolygon($_, $dc) for @{$self->print->layer_slices($self->layer_num)}; } else { + # perimeters first, because their "hole" is painted black $self->_paint_expolygon($_, $dc) for - @{$self->print->layer_solid_infill($self->layer_num)}, - @{$self->print->layer_perimeters($self->layer_num)}; + @{$self->print->layer_perimeters($self->layer_num)}, + @{$self->print->layer_solid_infill($self->layer_num)}; $self->_paint_expolygon($_, $dc) for @{union_ex($self->print->layer_infill($self->layer_num)->grow)}; diff --git a/xs/src/libslic3r/Fill/FillRectilinear.hpp b/xs/src/libslic3r/Fill/FillRectilinear.hpp index f6c633e3a4..d2bd8d7775 100644 --- a/xs/src/libslic3r/Fill/FillRectilinear.hpp +++ b/xs/src/libslic3r/Fill/FillRectilinear.hpp @@ -42,6 +42,7 @@ protected: class FillLine : public FillRectilinear { public: + virtual Fill* clone() const { return new FillLine(*this); }; virtual ~FillLine() {} protected: @@ -62,6 +63,7 @@ protected: class FillGrid : public FillRectilinear { public: + virtual Fill* clone() const { return new FillGrid(*this); }; virtual ~FillGrid() {} protected: @@ -74,11 +76,12 @@ protected: class FillAlignedRectilinear : public FillRectilinear { public: + virtual Fill* clone() const { return new FillAlignedRectilinear(*this); }; virtual ~FillAlignedRectilinear() {}; protected: // Keep the angle constant in all layers. - virtual float _layer_angle(size_t idx) const { printf("ALIGNED\n"); return 0.f; }; + virtual float _layer_angle(size_t idx) const { return 0.f; }; }; }; // namespace Slic3r diff --git a/xs/xsp/SLAPrint.xsp b/xs/xsp/SLAPrint.xsp index 98823ff06f..6526f713c3 100644 --- a/xs/xsp/SLAPrint.xsp +++ b/xs/xsp/SLAPrint.xsp @@ -21,7 +21,7 @@ ExPolygons layer_slices(size_t i) %code%{ RETVAL = THIS->layers[i].slices; %}; ExPolygons layer_solid_infill(size_t i) - %code%{ RETVAL = THIS->layers[i].solid_infill.expolygons; %}; + %code%{ RETVAL = THIS->layers[i].solid_infill; %}; ExPolygons layer_perimeters(size_t i) %code%{ RETVAL = THIS->layers[i].perimeters; %}; Ref layer_infill(size_t i)