From 22b312395af4196e0ed1088fe434d17cd3681a26 Mon Sep 17 00:00:00 2001
From: Alessandro Ranellucci <aar@cpan.org>
Date: Fri, 28 Sep 2012 16:32:53 +0200
Subject: [PATCH] Fix SVG/DLP support material. #673

---
 lib/Slic3r/Print.pm | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/lib/Slic3r/Print.pm b/lib/Slic3r/Print.pm
index cd383c4aa..9231fa9cc 100644
--- a/lib/Slic3r/Print.pm
+++ b/lib/Slic3r/Print.pm
@@ -453,6 +453,10 @@ sub export_svg {
     my $self = shift;
     my %params = @_;
     
+    # this shouldn't be needed, but we're currently relying on ->make_surfaces() which
+    # calls ->perimeter_flow
+    $self->init_extruders;
+    
     $_->slice(keep_meshes => $params{keep_meshes}) for @{$self->objects};
     $self->arrange_objects;
     
@@ -489,10 +493,10 @@ EOF
             my $layer = $self->objects->[$obj_idx]->layers->[$layer_id] or next;
             
             # sort slices so that the outermost ones come first
-            my @slices = sort { $a->expolygon->contour->encloses_point($b->expolygon->contour->[0]) ? 0 : 1 } @{$layer->slices};
+            my @slices = sort { $a->contour->encloses_point($b->contour->[0]) ? 0 : 1 } @{$layer->slices};
             foreach my $copy (@{$self->objects->[$obj_idx]->copies}) {
                 foreach my $slice (@slices) {
-                    my $expolygon = $slice->expolygon->clone;
+                    my $expolygon = $slice->clone;
                     $expolygon->translate(@$copy);
                     $print_polygon->($expolygon->contour, 'contour');
                     $print_polygon->($_, 'hole') for $expolygon->holes;
@@ -518,7 +522,7 @@ EOF
                 # supported points
                 my $support_point = nearest_point($expolygon->contour->[0], \@supported_points)
                     or next;
-                my $anchor_point = nearest_point($support_point, $expolygon->contour->[0]);
+                my $anchor_point = nearest_point($support_point, $expolygon->contour);
                 printf $fh qq{    <line x1="%s" y1="%s" x2="%s" y2="%s" style="stroke-width: 2; stroke: white" />\n},
                     map @$_, $support_point, $anchor_point;
             }