mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	New AMF-to-STL and STL-to-AMF converters
This commit is contained in:
		
							parent
							
								
									79ebb13bdb
								
							
						
					
					
						commit
						776d985b26
					
				
					 6 changed files with 170 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
package Slic3r::STL;
 | 
			
		||||
use Moo;
 | 
			
		||||
 | 
			
		||||
use Slic3r::Geometry qw(X Y Z);
 | 
			
		||||
use Slic3r::Geometry qw(X Y Z triangle_normal);
 | 
			
		||||
use XXX;
 | 
			
		||||
 | 
			
		||||
sub read_file {
 | 
			
		||||
| 
						 | 
				
			
			@ -181,7 +181,10 @@ sub _write_binary {
 | 
			
		|||
    print $fh pack 'x80';
 | 
			
		||||
    print $fh pack 'L', scalar(@{$mesh->facets});
 | 
			
		||||
    foreach my $facet (@{$mesh->facets}) {
 | 
			
		||||
        print $fh pack '(f<3)4S', @{$facet->[0]}, (map @{$mesh->vertices->[$_]}, @$facet[1,2,3]), 0;
 | 
			
		||||
        print $fh pack '(f<3)4S',
 | 
			
		||||
            @{_facet_normal($mesh, $facet)},
 | 
			
		||||
            (map @{$mesh->vertices->[$_]}, @$facet[1,2,3]),
 | 
			
		||||
            0;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -190,7 +193,7 @@ sub _write_ascii {
 | 
			
		|||
    
 | 
			
		||||
    printf $fh "solid\n";
 | 
			
		||||
    foreach my $facet (@{$mesh->facets}) {
 | 
			
		||||
        printf $fh "   facet normal %f %f %f\n", @{$facet->[0]};
 | 
			
		||||
        printf $fh "   facet normal %f %f %f\n", @{_facet_normal($mesh, $facet)};
 | 
			
		||||
        printf $fh "      outer loop\n";
 | 
			
		||||
        printf $fh "         vertex %f %f %f\n", @{$mesh->vertices->[$_]} for @$facet[1,2,3];
 | 
			
		||||
        printf $fh "      endloop\n";
 | 
			
		||||
| 
						 | 
				
			
			@ -199,4 +202,9 @@ sub _write_ascii {
 | 
			
		|||
    printf $fh "endsolid\n";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub _facet_normal {
 | 
			
		||||
    my ($mesh, $facet) = @_;
 | 
			
		||||
    return triangle_normal(map $mesh->vertices->[$_], @$facet[1,2,3]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
1;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue