mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-11-02 04:31:17 -07:00
Adopt XS containers everywhere (incomplete work)
This commit is contained in:
parent
339ba9e5c3
commit
9b582a11ff
30 changed files with 130 additions and 311 deletions
|
|
@ -16,7 +16,7 @@ use Slic3r;
|
|||
[5,0], [10,0], [15,0], [20,0], [20,10], [20,30], [0,0],
|
||||
);
|
||||
|
||||
$polygon->merge_continuous_lines;
|
||||
$polygon = $polygon->merge_continuous_lines;
|
||||
is scalar(@$polygon), 3, 'merge_continuous_lines';
|
||||
}
|
||||
|
||||
|
|
@ -69,7 +69,7 @@ use Slic3r;
|
|||
[180.595,296.0487], [161.7854,297.4248], [156.8058,297.6214], [154.3395,317.8592],
|
||||
];
|
||||
my $polygon = Slic3r::Polygon->new(@$gear);
|
||||
$polygon->merge_continuous_lines;
|
||||
$polygon = $polygon->merge_continuous_lines;
|
||||
note sprintf "original points: %d\nnew points: %d", scalar(@$gear), scalar(@$polygon);
|
||||
ok @$polygon < @$gear, 'gear was simplified using merge_continuous_lines';
|
||||
|
||||
|
|
@ -114,7 +114,7 @@ use Slic3r;
|
|||
];
|
||||
|
||||
my $polygon = Slic3r::Polygon->new(@$circle);
|
||||
$polygon->merge_continuous_lines;
|
||||
$polygon = $polygon->merge_continuous_lines;
|
||||
note sprintf "original points: %d\nnew points: %d", scalar(@$circle), scalar(@$polygon);
|
||||
ok @$polygon >= @$circle/3, 'circle was simplified using merge_continuous_lines';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ sub scale_points (@) { map [scale $_->[X], scale $_->[Y]], @_ }
|
|||
is scalar @{$layerm->thin_fills} ? 1 : 0, $widths{$width}{gaps},
|
||||
($widths{$width}{gaps} ? 'gaps were filled' : 'no gaps detected'); # TODO: we should check the exact number of gaps, but we need a better medial axis algorithm
|
||||
|
||||
my @gaps = map $_->unpack, @{$layerm->thin_fills};
|
||||
my @gaps = map $_, @{$layerm->thin_fills};
|
||||
if (@gaps) {
|
||||
ok +(!first { abs($_->flow_spacing - $widths{$width}{gap_flow_spacing}) > epsilon } @gaps),
|
||||
'flow spacing was dynamically adjusted';
|
||||
|
|
|
|||
10
t/fill.t
10
t/fill.t
|
|
@ -33,7 +33,7 @@ sub scale_points (@) { map [scale $_->[X], scale $_->[Y]], @_ }
|
|||
}
|
||||
|
||||
{
|
||||
my $expolygon = Slic3r::ExPolygon::XS->new([ scale_points [0,0], [50,0], [50,50], [0,50] ]);
|
||||
my $expolygon = Slic3r::ExPolygon->new([ scale_points [0,0], [50,0], [50,50], [0,50] ]);
|
||||
my $filler = Slic3r::Fill::Rectilinear->new(
|
||||
bounding_box => $expolygon->bounding_box,
|
||||
);
|
||||
|
|
@ -72,24 +72,24 @@ sub scale_points (@) { map [scale $_->[X], scale $_->[Y]], @_ }
|
|||
|
||||
{
|
||||
my $collection = Slic3r::ExtrusionPath::Collection->new(paths => [
|
||||
map Slic3r::ExtrusionPath->pack(polyline => $_, role => 0),
|
||||
map Slic3r::ExtrusionPath->new(polyline => $_, role => 0),
|
||||
Slic3r::Polyline->new([0,15], [0,18], [0,20]),
|
||||
Slic3r::Polyline->new([0,10], [0,8], [0,5]),
|
||||
]);
|
||||
is_deeply
|
||||
[ map $_->[Y], map @{$_->unpack->polyline}, $collection->chained_path(Slic3r::Point->new(0,30)) ],
|
||||
[ map $_->[Y], map @{$_->polyline}, $collection->chained_path(Slic3r::Point->new(0,30)) ],
|
||||
[20, 18, 15, 10, 8, 5],
|
||||
'chained path';
|
||||
}
|
||||
|
||||
{
|
||||
my $collection = Slic3r::ExtrusionPath::Collection->new(paths => [
|
||||
map Slic3r::ExtrusionPath->pack(polyline => $_, role => 0),
|
||||
map Slic3r::ExtrusionPath->new(polyline => $_, role => 0),
|
||||
Slic3r::Polyline->new([15,0], [10,0], [4,0]),
|
||||
Slic3r::Polyline->new([10,5], [15,5], [20,5]),
|
||||
]);
|
||||
is_deeply
|
||||
[ map $_->[X], map @{$_->unpack->polyline}, $collection->chained_path(Slic3r::Point->new(30,0)) ],
|
||||
[ map $_->[X], map @{$_->polyline}, $collection->chained_path(Slic3r::Point->new(30,0)) ],
|
||||
[reverse 4, 10, 15, 10, 15, 20],
|
||||
'chained path';
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue