Fixed SVG export not placing object inside the SVG viewport anymore. #2601
This commit is contained in:
parent
8605969dc5
commit
2d3fdf920b
@ -114,7 +114,8 @@ sub export_svg {
|
|||||||
print "Exporting to $output_file..." unless $params{quiet};
|
print "Exporting to $output_file..." unless $params{quiet};
|
||||||
}
|
}
|
||||||
|
|
||||||
my $print_size = $self->size;
|
my $print_bb = $self->bounding_box;
|
||||||
|
my $print_size = $print_bb->size;
|
||||||
print $fh sprintf <<"EOF", unscale($print_size->[X]), unscale($print_size->[Y]);
|
print $fh sprintf <<"EOF", unscale($print_size->[X]), unscale($print_size->[Y]);
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
@ -148,11 +149,12 @@ EOF
|
|||||||
|
|
||||||
my @current_layer_slices = ();
|
my @current_layer_slices = ();
|
||||||
# sort slices so that the outermost ones come first
|
# sort slices so that the outermost ones come first
|
||||||
my @slices = sort { $a->contour->contains_point($b->contour->[0]) ? 0 : 1 } @{$layer->slices};
|
my @slices = sort { $a->contour->contains_point($b->contour->first_point) ? 0 : 1 } @{$layer->slices};
|
||||||
foreach my $copy (@{$layer->object->copies}) {
|
foreach my $copy (@{$layer->object->_shifted_copies}) {
|
||||||
foreach my $slice (@slices) {
|
foreach my $slice (@slices) {
|
||||||
my $expolygon = $slice->clone;
|
my $expolygon = $slice->clone;
|
||||||
$expolygon->translate(@$copy);
|
$expolygon->translate(@$copy);
|
||||||
|
$expolygon->translate(-$print_bb->x_min, -$print_bb->y_min);
|
||||||
$print_polygon->($expolygon->contour, 'contour');
|
$print_polygon->($expolygon->contour, 'contour');
|
||||||
$print_polygon->($_, 'hole') for @{$expolygon->holes};
|
$print_polygon->($_, 'hole') for @{$expolygon->holes};
|
||||||
push @current_layer_slices, $expolygon;
|
push @current_layer_slices, $expolygon;
|
||||||
|
Loading…
Reference in New Issue
Block a user