%module{Slic3r::XS}; %{ #include #include "libslic3r/Flow.hpp" %} %name{Slic3r::Flow} class Flow { ~Flow(); %name{_new} Flow(float width, float height, float nozzle_diameter); void set_height(float height) %code{% THIS->height = height; %}; void set_bridge(bool bridge) %code{% THIS->bridge = bridge; %}; Clone clone() %code{% RETVAL = THIS; %}; float width() %code{% RETVAL = THIS->width; %}; float height() %code{% RETVAL = THIS->height; %}; float nozzle_diameter() %code{% RETVAL = THIS->nozzle_diameter; %}; bool bridge() %code{% RETVAL = THIS->bridge; %}; float spacing(); float spacing_to(Flow* other) %code{% RETVAL = THIS->spacing(*other); %}; int scaled_width(); int scaled_spacing(); double mm3_per_mm(); %{ Flow* _new_from_width(CLASS, role, width, nozzle_diameter, height, bridge_flow_ratio) char* CLASS; FlowRole role; std::string width; float nozzle_diameter; float height; float bridge_flow_ratio; CODE: ConfigOptionFloatOrPercent optwidth; optwidth.deserialize(width, ForwardCompatibilitySubstitutionRule::Disable); RETVAL = new Flow(Flow::new_from_config_width(role, optwidth, nozzle_diameter, height, bridge_flow_ratio)); OUTPUT: RETVAL %} }; %package{Slic3r::Flow}; %{ IV _constant() ALIAS: FLOW_ROLE_EXTERNAL_PERIMETER = frExternalPerimeter FLOW_ROLE_PERIMETER = frPerimeter FLOW_ROLE_INFILL = frInfill FLOW_ROLE_SOLID_INFILL = frSolidInfill FLOW_ROLE_TOP_SOLID_INFILL = frTopSolidInfill FLOW_ROLE_SUPPORT_MATERIAL = frSupportMaterial FLOW_ROLE_SUPPORT_MATERIAL_INTERFACE = frSupportMaterialInterface PROTOTYPE: CODE: RETVAL = ix; OUTPUT: RETVAL %}