mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	Ported Slic3r::BridgeDetector to XS
This commit is contained in:
		
							parent
							
								
									36825e0134
								
							
						
					
					
						commit
						379cde30e2
					
				
					 22 changed files with 539 additions and 307 deletions
				
			
		
							
								
								
									
										13
									
								
								t/bridges.t
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								t/bridges.t
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -84,17 +84,18 @@ use Slic3r::Test;
 | 
			
		|||
sub check_angle {
 | 
			
		||||
    my ($lower, $bridge, $expected, $tolerance, $expected_coverage) = @_;
 | 
			
		||||
    
 | 
			
		||||
    if (ref($lower) eq 'ARRAY') {
 | 
			
		||||
        $lower = Slic3r::ExPolygon::Collection->new(@$lower);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    $expected_coverage //= -1;
 | 
			
		||||
    $expected_coverage = $bridge->area if $expected_coverage == -1;
 | 
			
		||||
    
 | 
			
		||||
    my $bd = Slic3r::Layer::BridgeDetector->new(
 | 
			
		||||
        expolygon       => $bridge,
 | 
			
		||||
        lower_slices    => $lower,
 | 
			
		||||
        extrusion_width => scale 0.5,
 | 
			
		||||
    );
 | 
			
		||||
    my $bd = Slic3r::BridgeDetector->new($bridge, $lower, scale 0.5);
 | 
			
		||||
    
 | 
			
		||||
    $tolerance //= rad2deg($bd->resolution) + epsilon;
 | 
			
		||||
    my $result = $bd->detect_angle;
 | 
			
		||||
    $bd->detect_angle;
 | 
			
		||||
    my $result = $bd->angle;
 | 
			
		||||
    my $coverage = $bd->coverage;
 | 
			
		||||
    is sum(map $_->area, @$coverage), $expected_coverage, 'correct coverage area';
 | 
			
		||||
    
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue