Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'xs/src/libslic3r/Config.cpp')
-rw-r--r--xs/src/libslic3r/Config.cpp228
1 files changed, 0 insertions, 228 deletions
diff --git a/xs/src/libslic3r/Config.cpp b/xs/src/libslic3r/Config.cpp
index 102a07a2f..71b38c994 100644
--- a/xs/src/libslic3r/Config.cpp
+++ b/xs/src/libslic3r/Config.cpp
@@ -149,219 +149,6 @@ ConfigBase::setenv_()
#endif
}
-#ifdef SLIC3RXS
-SV*
-ConfigBase::as_hash() {
- HV* hv = newHV();
-
- t_config_option_keys opt_keys = this->keys();
- for (t_config_option_keys::const_iterator it = opt_keys.begin(); it != opt_keys.end(); ++it)
- (void)hv_store( hv, it->c_str(), it->length(), this->get(*it), 0 );
-
- return newRV_noinc((SV*)hv);
-}
-
-SV*
-ConfigBase::get(t_config_option_key opt_key) {
- ConfigOption* opt = this->option(opt_key);
- if (opt == NULL) return &PL_sv_undef;
-
- const ConfigOptionDef* def = this->def->get(opt_key);
- if (def->type == coFloat) {
- ConfigOptionFloat* optv = dynamic_cast<ConfigOptionFloat*>(opt);
- return newSVnv(optv->value);
- } else if (def->type == coFloats) {
- ConfigOptionFloats* optv = dynamic_cast<ConfigOptionFloats*>(opt);
- AV* av = newAV();
- av_fill(av, optv->values.size()-1);
- for (std::vector<double>::iterator it = optv->values.begin(); it != optv->values.end(); ++it)
- av_store(av, it - optv->values.begin(), newSVnv(*it));
- return newRV_noinc((SV*)av);
- } else if (def->type == coPercent) {
- ConfigOptionPercent* optv = dynamic_cast<ConfigOptionPercent*>(opt);
- return newSVnv(optv->value);
- } else if (def->type == coInt) {
- ConfigOptionInt* optv = dynamic_cast<ConfigOptionInt*>(opt);
- return newSViv(optv->value);
- } else if (def->type == coInts) {
- ConfigOptionInts* optv = dynamic_cast<ConfigOptionInts*>(opt);
- AV* av = newAV();
- av_fill(av, optv->values.size()-1);
- for (std::vector<int>::iterator it = optv->values.begin(); it != optv->values.end(); ++it)
- av_store(av, it - optv->values.begin(), newSViv(*it));
- return newRV_noinc((SV*)av);
- } else if (def->type == coString) {
- ConfigOptionString* optv = dynamic_cast<ConfigOptionString*>(opt);
- // we don't serialize() because that would escape newlines
- return newSVpvn_utf8(optv->value.c_str(), optv->value.length(), true);
- } else if (def->type == coStrings) {
- ConfigOptionStrings* optv = dynamic_cast<ConfigOptionStrings*>(opt);
- AV* av = newAV();
- av_fill(av, optv->values.size()-1);
- for (std::vector<std::string>::iterator it = optv->values.begin(); it != optv->values.end(); ++it)
- av_store(av, it - optv->values.begin(), newSVpvn_utf8(it->c_str(), it->length(), true));
- return newRV_noinc((SV*)av);
- } else if (def->type == coPoint) {
- ConfigOptionPoint* optv = dynamic_cast<ConfigOptionPoint*>(opt);
- return perl_to_SV_clone_ref(optv->value);
- } else if (def->type == coPoints) {
- ConfigOptionPoints* optv = dynamic_cast<ConfigOptionPoints*>(opt);
- AV* av = newAV();
- av_fill(av, optv->values.size()-1);
- for (Pointfs::iterator it = optv->values.begin(); it != optv->values.end(); ++it)
- av_store(av, it - optv->values.begin(), perl_to_SV_clone_ref(*it));
- return newRV_noinc((SV*)av);
- } else if (def->type == coBool) {
- ConfigOptionBool* optv = dynamic_cast<ConfigOptionBool*>(opt);
- return newSViv(optv->value ? 1 : 0);
- } else if (def->type == coBools) {
- ConfigOptionBools* optv = dynamic_cast<ConfigOptionBools*>(opt);
- AV* av = newAV();
- av_fill(av, optv->values.size()-1);
- for (std::vector<bool>::iterator it = optv->values.begin(); it != optv->values.end(); ++it)
- av_store(av, it - optv->values.begin(), newSViv(*it ? 1 : 0));
- return newRV_noinc((SV*)av);
- } else {
- std::string serialized = opt->serialize();
- return newSVpvn_utf8(serialized.c_str(), serialized.length(), true);
- }
-}
-
-SV*
-ConfigBase::get_at(t_config_option_key opt_key, size_t i) {
- ConfigOption* opt = this->option(opt_key);
- if (opt == NULL) return &PL_sv_undef;
-
- const ConfigOptionDef* def = this->def->get(opt_key);
- if (def->type == coFloats) {
- ConfigOptionFloats* optv = dynamic_cast<ConfigOptionFloats*>(opt);
- return newSVnv(optv->get_at(i));
- } else if (def->type == coInts) {
- ConfigOptionInts* optv = dynamic_cast<ConfigOptionInts*>(opt);
- return newSViv(optv->get_at(i));
- } else if (def->type == coStrings) {
- ConfigOptionStrings* optv = dynamic_cast<ConfigOptionStrings*>(opt);
- // we don't serialize() because that would escape newlines
- std::string val = optv->get_at(i);
- return newSVpvn_utf8(val.c_str(), val.length(), true);
- } else if (def->type == coPoints) {
- ConfigOptionPoints* optv = dynamic_cast<ConfigOptionPoints*>(opt);
- return perl_to_SV_clone_ref(optv->get_at(i));
- } else if (def->type == coBools) {
- ConfigOptionBools* optv = dynamic_cast<ConfigOptionBools*>(opt);
- return newSViv(optv->get_at(i) ? 1 : 0);
- } else {
- return &PL_sv_undef;
- }
-}
-
-bool
-ConfigBase::set(t_config_option_key opt_key, SV* value) {
- ConfigOption* opt = this->option(opt_key, true);
- if (opt == NULL) CONFESS("Trying to set non-existing option");
-
- const ConfigOptionDef* def = this->def->get(opt_key);
- if (def->type == coFloat) {
- if (!looks_like_number(value)) return false;
- ConfigOptionFloat* optv = dynamic_cast<ConfigOptionFloat*>(opt);
- optv->value = SvNV(value);
- } else if (def->type == coFloats) {
- ConfigOptionFloats* optv = dynamic_cast<ConfigOptionFloats*>(opt);
- std::vector<double> values;
- AV* av = (AV*)SvRV(value);
- const size_t len = av_len(av)+1;
- for (size_t i = 0; i < len; i++) {
- SV** elem = av_fetch(av, i, 0);
- if (elem == NULL || !looks_like_number(*elem)) return false;
- values.push_back(SvNV(*elem));
- }
- optv->values = values;
- } else if (def->type == coInt) {
- if (!looks_like_number(value)) return false;
- ConfigOptionInt* optv = dynamic_cast<ConfigOptionInt*>(opt);
- optv->value = SvIV(value);
- } else if (def->type == coInts) {
- ConfigOptionInts* optv = dynamic_cast<ConfigOptionInts*>(opt);
- std::vector<int> values;
- AV* av = (AV*)SvRV(value);
- const size_t len = av_len(av)+1;
- for (size_t i = 0; i < len; i++) {
- SV** elem = av_fetch(av, i, 0);
- if (elem == NULL || !looks_like_number(*elem)) return false;
- values.push_back(SvIV(*elem));
- }
- optv->values = values;
- } else if (def->type == coString) {
- ConfigOptionString* optv = dynamic_cast<ConfigOptionString*>(opt);
- optv->value = std::string(SvPV_nolen(value), SvCUR(value));
- } else if (def->type == coStrings) {
- ConfigOptionStrings* optv = dynamic_cast<ConfigOptionStrings*>(opt);
- optv->values.clear();
- AV* av = (AV*)SvRV(value);
- const size_t len = av_len(av)+1;
- for (size_t i = 0; i < len; i++) {
- SV** elem = av_fetch(av, i, 0);
- if (elem == NULL) return false;
- optv->values.push_back(std::string(SvPV_nolen(*elem), SvCUR(*elem)));
- }
- } else if (def->type == coPoint) {
- ConfigOptionPoint* optv = dynamic_cast<ConfigOptionPoint*>(opt);
- return optv->value.from_SV_check(value);
- } else if (def->type == coPoints) {
- ConfigOptionPoints* optv = dynamic_cast<ConfigOptionPoints*>(opt);
- std::vector<Pointf> values;
- AV* av = (AV*)SvRV(value);
- const size_t len = av_len(av)+1;
- for (size_t i = 0; i < len; i++) {
- SV** elem = av_fetch(av, i, 0);
- Pointf point;
- if (elem == NULL || !point.from_SV_check(*elem)) return false;
- values.push_back(point);
- }
- optv->values = values;
- } else if (def->type == coBool) {
- ConfigOptionBool* optv = dynamic_cast<ConfigOptionBool*>(opt);
- optv->value = SvTRUE(value);
- } else if (def->type == coBools) {
- ConfigOptionBools* optv = dynamic_cast<ConfigOptionBools*>(opt);
- optv->values.clear();
- AV* av = (AV*)SvRV(value);
- const size_t len = av_len(av)+1;
- for (size_t i = 0; i < len; i++) {
- SV** elem = av_fetch(av, i, 0);
- if (elem == NULL) return false;
- optv->values.push_back(SvTRUE(*elem));
- }
- } else {
- if (!opt->deserialize( std::string(SvPV_nolen(value)) )) return false;
- }
- return true;
-}
-
-/* This method is implemented as a workaround for this typemap bug:
- https://rt.cpan.org/Public/Bug/Display.html?id=94110 */
-bool
-ConfigBase::set_deserialize(const t_config_option_key &opt_key, SV* str) {
- size_t len;
- const char * c = SvPV(str, len);
- std::string value(c, len);
-
- return this->set_deserialize(opt_key, value);
-}
-
-void
-ConfigBase::set_ifndef(t_config_option_key opt_key, SV* value, bool deserialize)
-{
- if (!this->has(opt_key)) {
- if (deserialize) {
- this->set_deserialize(opt_key, value);
- } else {
- this->set(opt_key, value);
- }
- }
-}
-#endif
-
DynamicConfig& DynamicConfig::operator= (DynamicConfig other)
{
this->swap(other);
@@ -491,19 +278,4 @@ StaticConfig::option(const t_config_option_key &opt_key) const
return const_cast<StaticConfig*>(this)->option(opt_key, false);
}
-#ifdef SLIC3RXS
-bool
-StaticConfig::set(t_config_option_key opt_key, SV* value) {
- const ConfigOptionDef* optdef = this->def->get(opt_key);
- if (!optdef->shortcut.empty()) {
- for (std::vector<t_config_option_key>::const_iterator it = optdef->shortcut.begin(); it != optdef->shortcut.end(); ++it) {
- if (!this->set(*it, value)) return false;
- }
- return true;
- }
-
- return static_cast<ConfigBase*>(this)->set(opt_key, value);
-}
-#endif
-
}