Fix infill projection

This commit is contained in:
Alessandro Ranellucci 2016-12-01 16:57:47 +01:00
parent 92845300be
commit 3232350ffd
3 changed files with 8 additions and 4 deletions

View File

@ -914,9 +914,10 @@ sub _repaint {
if ($self->print->layer_solid($self->layer_num)) { if ($self->print->layer_solid($self->layer_num)) {
$self->_paint_expolygon($_, $dc) for @{$self->print->layer_slices($self->layer_num)}; $self->_paint_expolygon($_, $dc) for @{$self->print->layer_slices($self->layer_num)};
} else { } else {
# perimeters first, because their "hole" is painted black
$self->_paint_expolygon($_, $dc) for $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) $self->_paint_expolygon($_, $dc)
for @{union_ex($self->print->layer_infill($self->layer_num)->grow)}; for @{union_ex($self->print->layer_infill($self->layer_num)->grow)};

View File

@ -42,6 +42,7 @@ protected:
class FillLine : public FillRectilinear class FillLine : public FillRectilinear
{ {
public: public:
virtual Fill* clone() const { return new FillLine(*this); };
virtual ~FillLine() {} virtual ~FillLine() {}
protected: protected:
@ -62,6 +63,7 @@ protected:
class FillGrid : public FillRectilinear class FillGrid : public FillRectilinear
{ {
public: public:
virtual Fill* clone() const { return new FillGrid(*this); };
virtual ~FillGrid() {} virtual ~FillGrid() {}
protected: protected:
@ -74,11 +76,12 @@ protected:
class FillAlignedRectilinear : public FillRectilinear class FillAlignedRectilinear : public FillRectilinear
{ {
public: public:
virtual Fill* clone() const { return new FillAlignedRectilinear(*this); };
virtual ~FillAlignedRectilinear() {}; virtual ~FillAlignedRectilinear() {};
protected: protected:
// Keep the angle constant in all layers. // 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 }; // namespace Slic3r

View File

@ -21,7 +21,7 @@
ExPolygons layer_slices(size_t i) ExPolygons layer_slices(size_t i)
%code%{ RETVAL = THIS->layers[i].slices; %}; %code%{ RETVAL = THIS->layers[i].slices; %};
ExPolygons layer_solid_infill(size_t i) 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) ExPolygons layer_perimeters(size_t i)
%code%{ RETVAL = THIS->layers[i].perimeters; %}; %code%{ RETVAL = THIS->layers[i].perimeters; %};
Ref<ExtrusionEntityCollection> layer_infill(size_t i) Ref<ExtrusionEntityCollection> layer_infill(size_t i)