Revert "Remove thumbnail simplification because it caused loss of very thin parts. #1327"
This reverts commit 1210b89893
.
Conflicts:
lib/Slic3r/GUI/Plater.pm
This commit is contained in:
parent
0ce7ebc4b8
commit
4438aec12c
@ -325,6 +325,11 @@ use Slic3r::Geometry qw(X1 Y1);
|
||||
|
||||
has 'expolygons' => (is => 'ro', default => sub { [] });
|
||||
|
||||
sub append {
|
||||
my $self = shift;
|
||||
push @{$self->expolygons}, @_;
|
||||
}
|
||||
|
||||
sub clone {
|
||||
my $self = shift;
|
||||
return (ref $self)->new(
|
||||
|
@ -1167,17 +1167,23 @@ sub make_thumbnail {
|
||||
my $self = shift;
|
||||
|
||||
my $mesh = $self->model_object->mesh; # $self->model_object is already aligned to origin
|
||||
my $thumbnail = Slic3r::ExPolygon::Collection->new(
|
||||
expolygons => (@{$mesh->facets} <= 5000)
|
||||
? $mesh->horizontal_projection
|
||||
: [ Slic3r::ExPolygon->new($self->convex_hull) ],
|
||||
);
|
||||
# Note: the call to simplify() was removed here because it used Clipper
|
||||
# simplification which needs integerization.
|
||||
# TODO: remove polygons with area <= 1 pixel
|
||||
my $thumbnail = Slic3r::ExPolygon::Collection->new;
|
||||
if (@{$mesh->facets} <= 5000) {
|
||||
$thumbnail->append(@{ $mesh->horizontal_projection });
|
||||
} else {
|
||||
my $convex_hull = Slic3r::ExPolygon->new($self->convex_hull)->clone;
|
||||
$convex_hull->scale(1/&Slic3r::SCALING_FACTOR);
|
||||
$thumbnail->append($convex_hull);
|
||||
}
|
||||
|
||||
# remove polygons with area <= 1mm
|
||||
my $area_threshold = Slic3r::Geometry::scale 1;
|
||||
@{$thumbnail->expolygons} =
|
||||
map $_->simplify(0.5),
|
||||
grep $_->area >= $area_threshold,
|
||||
@{$thumbnail->expolygons};
|
||||
|
||||
$thumbnail->scale(&Slic3r::SCALING_FACTOR);
|
||||
|
||||
$self->thumbnail($thumbnail); # ignored in multi-threaded environments
|
||||
$self->free_model_object;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user