mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	Incomplete commit broke the plater on threaded perls
This commit is contained in:
		
							parent
							
								
									0990a9418c
								
							
						
					
					
						commit
						33b1970b95
					
				
					 1 changed files with 11 additions and 11 deletions
				
			
		| 
						 | 
				
			
			@ -301,7 +301,7 @@ sub load_file {
 | 
			
		|||
            name                    => basename($input_file),
 | 
			
		||||
            input_file              => $input_file,
 | 
			
		||||
            input_file_object_id    => $i,
 | 
			
		||||
            mesh                    => $model->objects->[$i]->mesh,
 | 
			
		||||
            model_object            => $model->objects->[$i],
 | 
			
		||||
            instances               => [
 | 
			
		||||
                $model->objects->[$i]->instances
 | 
			
		||||
                    ? (map $_->offset, @{$model->objects->[$i]->instances})
 | 
			
		||||
| 
						 | 
				
			
			@ -722,7 +722,7 @@ sub on_thumbnail_made {
 | 
			
		|||
    my $self = shift;
 | 
			
		||||
    my ($obj_idx) = @_;
 | 
			
		||||
    
 | 
			
		||||
    $self->{objects}[$obj_idx]->free_mesh;
 | 
			
		||||
    $self->{objects}[$obj_idx]->free_model_object;
 | 
			
		||||
    $self->recenter;
 | 
			
		||||
    $self->{canvas}->Refresh;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1017,31 +1017,31 @@ use Slic3r::Geometry qw(X Y remove_coinciding_points);
 | 
			
		|||
 | 
			
		||||
has 'name'                  => (is => 'rw', required => 1);
 | 
			
		||||
has 'input_file'            => (is => 'rw', required => 1);
 | 
			
		||||
has 'input_file_object_id'  => (is => 'rw');  # undef means keep mesh
 | 
			
		||||
has 'mesh'                  => (is => 'rw', required => 1, trigger => 1);
 | 
			
		||||
has 'input_file_object_id'  => (is => 'rw');  # undef means keep model object
 | 
			
		||||
has 'model_object'          => (is => 'rw', required => 1, trigger => 1);
 | 
			
		||||
has 'size'                  => (is => 'rw');
 | 
			
		||||
has 'scale'                 => (is => 'rw', default => sub { 1 });
 | 
			
		||||
has 'rotate'                => (is => 'rw', default => sub { 0 });
 | 
			
		||||
has 'instances'             => (is => 'rw', default => sub { [] }); # upward Y axis
 | 
			
		||||
has 'thumbnail'             => (is => 'rw');
 | 
			
		||||
 | 
			
		||||
sub _trigger_mesh {
 | 
			
		||||
sub _trigger_model_object {
 | 
			
		||||
    my $self = shift;
 | 
			
		||||
    $self->size([$self->mesh->size]) if $self->mesh;
 | 
			
		||||
    $self->size([$self->model_object->mesh->size]) if $self->model_object;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub free_mesh {
 | 
			
		||||
sub free_model_object {
 | 
			
		||||
    my $self = shift;
 | 
			
		||||
    
 | 
			
		||||
    # only delete mesh from memory if we can retrieve it from the original file
 | 
			
		||||
    return unless $self->input_file && $self->input_file_object_id;
 | 
			
		||||
    $self->mesh(undef);
 | 
			
		||||
    $self->model_object(undef);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub get_model_object {
 | 
			
		||||
    my $self = shift;
 | 
			
		||||
    
 | 
			
		||||
    return $self->mesh->clone if $self->mesh;
 | 
			
		||||
    return $self->model_object if $self->model_object;
 | 
			
		||||
    my $model = Slic3r::Model->read_from_file($self->input_file);
 | 
			
		||||
    return $model->objects->[$self->input_file_object_id];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1055,7 +1055,7 @@ sub make_thumbnail {
 | 
			
		|||
    my $self = shift;
 | 
			
		||||
    my %params = @_;
 | 
			
		||||
    
 | 
			
		||||
    my @points = map [ @$_[X,Y] ], @{$self->mesh->vertices};
 | 
			
		||||
    my @points = map [ @$_[X,Y] ], @{$self->model_object->mesh->vertices};
 | 
			
		||||
    remove_coinciding_points(\@points);
 | 
			
		||||
    my $convex_hull = Slic3r::Polygon->new(convex_hull(\@points));
 | 
			
		||||
    for (@$convex_hull) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1067,7 +1067,7 @@ sub make_thumbnail {
 | 
			
		|||
    $convex_hull->align_to_origin;
 | 
			
		||||
    
 | 
			
		||||
    $self->thumbnail($convex_hull);  # ignored in multi-threaded environments
 | 
			
		||||
    $self->mesh(undef) if defined $self->input_file_object_id;
 | 
			
		||||
    $self->free_model_object;
 | 
			
		||||
    
 | 
			
		||||
    return $convex_hull;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue