mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 12:11:15 -06:00 
			
		
		
		
	Only put ExtrusionPath objects in ExtrusionPath::Collection (no ExtrusionLoop objects)
This commit is contained in:
		
							parent
							
								
									d4ccd39ad3
								
							
						
					
					
						commit
						554d10c854
					
				
					 3 changed files with 14 additions and 22 deletions
				
			
		|  | @ -60,14 +60,6 @@ sub split_at_first_point { | |||
|     return $self->split_at_index(0); | ||||
| } | ||||
| 
 | ||||
| # although a loop doesn't have endpoints, this method is provided to allow | ||||
| # ExtrusionLoop objects to be added to an ExtrusionPath::Collection and | ||||
| # sorted by the ->shortest_path() method | ||||
| sub endpoints { | ||||
|     my $self = shift; | ||||
|     return ($self->polygon->[0], $self->polygon->[-1]); | ||||
| } | ||||
| 
 | ||||
| package Slic3r::ExtrusionLoop::Packed; | ||||
| sub unpack { | ||||
|     my $self = shift; | ||||
|  |  | |||
|  | @ -359,20 +359,15 @@ sub make_perimeters { | |||
|     } | ||||
|      | ||||
|     # add thin walls as perimeters | ||||
|     { | ||||
|         my @thin_paths = (); | ||||
|         my %properties = ( | ||||
|             role            => EXTR_ROLE_EXTERNAL_PERIMETER, | ||||
|             flow_spacing    => $self->perimeter_flow->spacing, | ||||
|         ); | ||||
|         for (@{ $self->thin_walls }) { | ||||
|             push @thin_paths, $_->isa('Slic3r::Polygon') | ||||
|                 ? Slic3r::ExtrusionLoop->pack(polygon => $_, %properties) | ||||
|                 : Slic3r::ExtrusionPath->pack(polyline => $_, %properties); | ||||
|         } | ||||
|         my $collection = Slic3r::ExtrusionPath::Collection->new(paths => \@thin_paths); | ||||
|         push @{ $self->perimeters }, $collection->shortest_path; | ||||
|     } | ||||
|     push @{ $self->perimeters }, Slic3r::ExtrusionPath::Collection->new(paths => [ | ||||
|         map { | ||||
|             Slic3r::ExtrusionPath->pack( | ||||
|                 polyline        => ($_->isa('Slic3r::Polygon') ? $_->split_at_first_point : $_), | ||||
|                 role            => EXTR_ROLE_EXTERNAL_PERIMETER, | ||||
|                 flow_spacing    => $self->perimeter_flow->spacing, | ||||
|             ); | ||||
|         } @{ $self->thin_walls } | ||||
|     ])->shortest_path; | ||||
| } | ||||
| 
 | ||||
| sub _add_perimeter { | ||||
|  |  | |||
|  | @ -146,4 +146,9 @@ sub split_at { | |||
|     return $self->split_at_index($i); | ||||
| } | ||||
| 
 | ||||
| sub split_at_first_point { | ||||
|     my $self = shift; | ||||
|     return $self->split_at_index(0); | ||||
| } | ||||
| 
 | ||||
| 1; | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Alessandro Ranellucci
						Alessandro Ranellucci