%module{Slic3r::XS}; %{ #include #include "PrintConfig.hpp" %} %name{Slic3r::Config} class DynamicPrintConfig { DynamicPrintConfig(); ~DynamicPrintConfig(); SV* get(t_config_option_key opt_key); void set(t_config_option_key opt_key, SV* value); void set_deserialize(t_config_option_key opt_key, std::string str); std::string serialize(t_config_option_key opt_key); float get_abs_value(t_config_option_key opt_key); %{ %} }; %name{Slic3r::Config::Print} class PrintConfig { PrintConfig(); ~PrintConfig(); SV* get(t_config_option_key opt_key); void set(t_config_option_key opt_key, SV* value); void set_deserialize(t_config_option_key opt_key, std::string str); std::string serialize(t_config_option_key opt_key); float get_abs_value(t_config_option_key opt_key); void apply_dynamic(DynamicPrintConfig* other, bool ignore_nonexistent = false) %code{% THIS->apply(*other, ignore_nonexistent); %}; %{ %} };