mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	Interface to a filler, ported from Perl to C++.
This commit is contained in:
		
							parent
							
								
									be3e4caf1d
								
							
						
					
					
						commit
						9716ee8eca
					
				
					 1 changed files with 68 additions and 0 deletions
				
			
		
							
								
								
									
										68
									
								
								xs/xsp/Filler.xsp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								xs/xsp/Filler.xsp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,68 @@
 | 
			
		|||
%module{Slic3r::XS};
 | 
			
		||||
 | 
			
		||||
%{
 | 
			
		||||
#include <xsinit.h>
 | 
			
		||||
#include "libslic3r/Fill/FillBase.hpp"
 | 
			
		||||
%}
 | 
			
		||||
 | 
			
		||||
%name{Slic3r::Filler} class Filler {
 | 
			
		||||
    ~Filler();
 | 
			
		||||
 | 
			
		||||
    void set_bounding_box(BoundingBox *bbox)
 | 
			
		||||
        %code{% THIS->fill->set_bounding_box(*bbox); %};
 | 
			
		||||
    void set_spacing(coordf_t spacing)
 | 
			
		||||
        %code{% THIS->fill->spacing = spacing; %};
 | 
			
		||||
    coordf_t spacing()
 | 
			
		||||
        %code{% RETVAL = THIS->fill->spacing; %};
 | 
			
		||||
    void set_layer_id(size_t layer_id)
 | 
			
		||||
        %code{% THIS->fill->layer_id = layer_id; %};
 | 
			
		||||
    void set_z(coordf_t z)
 | 
			
		||||
        %code{% THIS->fill->z = z; %};
 | 
			
		||||
    void set_angle(float angle)
 | 
			
		||||
        %code{% THIS->fill->angle = angle; %};
 | 
			
		||||
    void set_loop_clipping(coordf_t clipping)
 | 
			
		||||
        %code{% THIS->fill->loop_clipping = clipping; %};
 | 
			
		||||
 | 
			
		||||
    bool use_bridge_flow()
 | 
			
		||||
        %code{% RETVAL = THIS->fill->use_bridge_flow(); %};
 | 
			
		||||
    bool no_sort()
 | 
			
		||||
        %code{% RETVAL = THIS->fill->no_sort(); %};
 | 
			
		||||
 | 
			
		||||
    void set_width(float width)
 | 
			
		||||
        %code{% THIS->params.width = width; %};
 | 
			
		||||
    void set_density(float density)
 | 
			
		||||
        %code{% THIS->params.density = density; %};
 | 
			
		||||
    void set_distance(float distance)
 | 
			
		||||
        %code{% THIS->params.distance = distance; %};
 | 
			
		||||
    void set_dont_connect(bool dont_connect)
 | 
			
		||||
        %code{% THIS->params.dont_connect = dont_connect; %};
 | 
			
		||||
    void set_dont_adjust(bool dont_adjust)
 | 
			
		||||
        %code{% THIS->params.dont_adjust = dont_adjust; %};
 | 
			
		||||
    void set_complete(bool complete)
 | 
			
		||||
        %code{% THIS->params.complete = complete; %};
 | 
			
		||||
 | 
			
		||||
    PolylineCollection* _fill_surface(Surface *surface)
 | 
			
		||||
        %code{% 
 | 
			
		||||
            PolylineCollection *pc = NULL;
 | 
			
		||||
            if (THIS->fill != NULL) {
 | 
			
		||||
                pc = new PolylineCollection();
 | 
			
		||||
                pc->polylines = THIS->fill->fill_surface(surface, THIS->params);
 | 
			
		||||
            }
 | 
			
		||||
            RETVAL =  pc;
 | 
			
		||||
        %};
 | 
			
		||||
 | 
			
		||||
%{
 | 
			
		||||
 | 
			
		||||
Filler*
 | 
			
		||||
new_from_type(CLASS, type)
 | 
			
		||||
    char*               CLASS;
 | 
			
		||||
    std::string         type;
 | 
			
		||||
    CODE:
 | 
			
		||||
        Filler *filler = new Filler();
 | 
			
		||||
        filler->fill = Fill::new_from_type(type);
 | 
			
		||||
        RETVAL = filler;
 | 
			
		||||
    OUTPUT:
 | 
			
		||||
        RETVAL
 | 
			
		||||
 | 
			
		||||
%}
 | 
			
		||||
};
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue