Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Ranellucci <aar@cpan.org>2013-07-06 14:15:17 +0400
committerAlessandro Ranellucci <aar@cpan.org>2013-07-06 14:15:17 +0400
commit0bb4a5649a6bb10d0084a0e70cb6ddda6cb9d660 (patch)
tree56e5f9bfc5f67a2a00b4c74070e2be876bbc05e9
parentab584babf6bcc1e4520cf60a663e6006298a5c1b (diff)
parent8d1069766bf82c8caf6b2d9012d4b082106b7150 (diff)
Merge branch 'master' into xs
-rw-r--r--lib/Slic3r/ExPolygon.pm7
-rw-r--r--lib/Slic3r/Point.pm5
-rw-r--r--lib/Slic3r/Polyline.pm5
-rw-r--r--lib/Slic3r/TriangleMesh.pm2
4 files changed, 17 insertions, 2 deletions
diff --git a/lib/Slic3r/ExPolygon.pm b/lib/Slic3r/ExPolygon.pm
index fd1af58b0..c58af979f 100644
--- a/lib/Slic3r/ExPolygon.pm
+++ b/lib/Slic3r/ExPolygon.pm
@@ -32,6 +32,11 @@ sub clone {
Storable::dclone($_[0])
}
+sub threadsafe_clone {
+ my $self = shift;
+ return (ref $self)->new(map $_->threadsafe_clone, @$self);
+}
+
sub contour {
my $self = shift;
return $self->[0];
@@ -303,7 +308,7 @@ has 'expolygons' => (is => 'ro', default => sub { [] });
sub clone {
my $self = shift;
return (ref $self)->new(
- expolygons => [ map $_->clone, @{$self->expolygons} ],
+ expolygons => [ map $_->threadsafe_clone, @{$self->expolygons} ],
);
}
diff --git a/lib/Slic3r/Point.pm b/lib/Slic3r/Point.pm
index 233f60f34..4e86995e1 100644
--- a/lib/Slic3r/Point.pm
+++ b/lib/Slic3r/Point.pm
@@ -24,6 +24,11 @@ sub clone {
Storable::dclone($_[0])
}
+sub threadsafe_clone {
+ my $self = shift;
+ return (ref $self)->new(@$self);
+}
+
sub coincides_with {
my $self = shift;
my ($point) = @_;
diff --git a/lib/Slic3r/Polyline.pm b/lib/Slic3r/Polyline.pm
index f2a9cbd7f..fd4bd571f 100644
--- a/lib/Slic3r/Polyline.pm
+++ b/lib/Slic3r/Polyline.pm
@@ -22,6 +22,11 @@ sub clone {
Storable::dclone($_[0])
}
+sub threadsafe_clone {
+ my $self = shift;
+ return (ref $self)->new(map $_->threadsafe_clone, @$self);
+}
+
sub serialize {
my $self = shift;
return pack 'l*', map @$_, @$self;
diff --git a/lib/Slic3r/TriangleMesh.pm b/lib/Slic3r/TriangleMesh.pm
index b4624250d..e0698b4a6 100644
--- a/lib/Slic3r/TriangleMesh.pm
+++ b/lib/Slic3r/TriangleMesh.pm
@@ -607,7 +607,7 @@ sub horizontal_projection {
my @f = ();
foreach my $facet (@{$self->facets}) {
- push @f, Slic3r::Polygon->new([ map [ @{$self->vertices->[$_]}[X,Y] ], @$facet ]);
+ push @f, Slic3r::Polygon->new(map [ @{$self->vertices->[$_]}[X,Y] ], @$facet);
}
my $scale_vector = Math::Clipper::integerize_coordinate_sets({ bits => 32 }, @f);