From 78ee6e5d6d8e02ac24ecd11d65f37a8aed059fbb Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Tue, 10 Sep 2013 19:25:53 +0200 Subject: [PATCH] Calls to ->repair where needed --- lib/Slic3r/GUI/Plater.pm | 2 ++ lib/Slic3r/GUI/PreviewCanvas.pm | 1 + 2 files changed, 3 insertions(+) diff --git a/lib/Slic3r/GUI/Plater.pm b/lib/Slic3r/GUI/Plater.pm index 6972d1d716..dd5929ad6d 100644 --- a/lib/Slic3r/GUI/Plater.pm +++ b/lib/Slic3r/GUI/Plater.pm @@ -1269,6 +1269,7 @@ sub _trigger_model_object { $self->bounding_box($model_object->bounding_box); my $mesh = $model_object->mesh; + $mesh->repair; $self->convex_hull(Slic3r::Polygon->new(@{Math::ConvexHull::MonotoneChain::convex_hull($mesh->used_vertices)})); $self->facets(scalar @{$mesh->facets}); $self->vertices(scalar @{$mesh->vertices}); @@ -1335,6 +1336,7 @@ sub make_thumbnail { my $mesh = $self->get_model_object->mesh; # $self->model_object is already aligned to origin my $thumbnail = Slic3r::ExPolygon::Collection->new; + $mesh->repair; if (@{$mesh->facets} <= 5000) { # remove polygons with area <= 1mm my $area_threshold = Slic3r::Geometry::scale 1; diff --git a/lib/Slic3r/GUI/PreviewCanvas.pm b/lib/Slic3r/GUI/PreviewCanvas.pm index 065027e837..6bad5552e8 100644 --- a/lib/Slic3r/GUI/PreviewCanvas.pm +++ b/lib/Slic3r/GUI/PreviewCanvas.pm @@ -37,6 +37,7 @@ sub new { $self->volumes([]); foreach my $volume (@{$object->volumes}) { my $mesh = $volume->mesh; + $mesh->repair; my $material_id = $volume->material_id // '_'; my $color_idx = first { $materials[$_] eq $material_id } 0..$#materials;