mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	Skeining algorithm totally rewritten
This commit is contained in:
		
							parent
							
								
									3274f3978b
								
							
						
					
					
						commit
						ad27f25c71
					
				
					 8 changed files with 180 additions and 144 deletions
				
			
		
							
								
								
									
										47
									
								
								t/geometry.t
									
										
									
									
									
								
							
							
						
						
									
										47
									
								
								t/geometry.t
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -2,7 +2,7 @@ use Test::More;
 | 
			
		|||
use strict;
 | 
			
		||||
use warnings;
 | 
			
		||||
 | 
			
		||||
plan tests => 6;
 | 
			
		||||
plan tests => 15;
 | 
			
		||||
 | 
			
		||||
BEGIN {
 | 
			
		||||
    use FindBin;
 | 
			
		||||
| 
						 | 
				
			
			@ -10,6 +10,7 @@ BEGIN {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
use Slic3r;
 | 
			
		||||
use Slic3r::Geometry qw(PI);
 | 
			
		||||
 | 
			
		||||
#==========================================================
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -43,15 +44,19 @@ is_deeply Slic3r::Geometry::polygon_segment_having_point($polyline, $point),
 | 
			
		|||
 | 
			
		||||
#==========================================================
 | 
			
		||||
 | 
			
		||||
$point = [ 736310778.185108, 5017423926.8924 ];
 | 
			
		||||
my $line = [ [627484000, 3695776000], [750000000, 3720147000] ];
 | 
			
		||||
is Slic3r::Geometry::point_in_segment($point, $line), 0, 'point_in_segment';
 | 
			
		||||
{
 | 
			
		||||
    my $point = [ 736310778.185108, 5017423926.8924 ];
 | 
			
		||||
    my $line = [ [627484000, 3695776000], [750000000, 3720147000] ];
 | 
			
		||||
    is Slic3r::Geometry::point_in_segment($point, $line), 0, 'point_in_segment';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#==========================================================
 | 
			
		||||
 | 
			
		||||
$point = [ 736310778.185108, 5017423926.8924 ];
 | 
			
		||||
my $line = [ [627484000, 3695776000], [750000000, 3720147000] ];
 | 
			
		||||
is Slic3r::Geometry::point_in_segment($point, $line), 0, 'point_in_segment';
 | 
			
		||||
{
 | 
			
		||||
    my $point = [ 736310778.185108, 5017423926.8924 ];
 | 
			
		||||
    my $line = [ [627484000, 3695776000], [750000000, 3720147000] ];
 | 
			
		||||
    is Slic3r::Geometry::point_in_segment($point, $line), 0, 'point_in_segment';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#==========================================================
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -81,3 +86,31 @@ my $points = [
 | 
			
		|||
is Slic3r::Geometry::can_connect_points(@$points, $polygons), 0, 'can_connect_points';
 | 
			
		||||
 | 
			
		||||
#==========================================================
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    my $p1 = [10, 10];
 | 
			
		||||
    my $p2 = [10, 20];
 | 
			
		||||
    my $p3 = [10, 30];
 | 
			
		||||
    my $p4 = [20, 20];
 | 
			
		||||
    my $p5 = [0,  20];
 | 
			
		||||
    
 | 
			
		||||
    is Slic3r::Geometry::angle3points($p2, $p3, $p1),  PI(),   'angle3points';
 | 
			
		||||
    is Slic3r::Geometry::angle3points($p2, $p1, $p3),  PI(),   'angle3points';
 | 
			
		||||
    is Slic3r::Geometry::angle3points($p2, $p3, $p4),  PI()/2*3, 'angle3points';
 | 
			
		||||
    is Slic3r::Geometry::angle3points($p2, $p4, $p3),  PI()/2, 'angle3points';
 | 
			
		||||
    is Slic3r::Geometry::angle3points($p2, $p1, $p4),  PI()/2, 'angle3points';
 | 
			
		||||
    is Slic3r::Geometry::angle3points($p2, $p1, $p5),  PI()/2*3, 'angle3points';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    my $p1 = [30, 30];
 | 
			
		||||
    my $p2 = [20, 20];
 | 
			
		||||
    my $p3 = [10, 10];
 | 
			
		||||
    my $p4 = [30, 10];
 | 
			
		||||
    
 | 
			
		||||
    is Slic3r::Geometry::angle3points($p2, $p1, $p3), PI(),       'angle3points';
 | 
			
		||||
    is Slic3r::Geometry::angle3points($p2, $p1, $p4), PI()/2*3,   'angle3points';
 | 
			
		||||
    is Slic3r::Geometry::angle3points($p2, $p1, $p1), 2*PI(),     'angle3points';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#==========================================================
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue