OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::ConfigOptionVector< T > Class Template Referenceabstract

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/Config.hpp>

Inheritance diagram for Slic3r::ConfigOptionVector< T >:
Collaboration diagram for Slic3r::ConfigOptionVector< T >:

Public Member Functions

 ConfigOptionVector ()
 ConfigOptionVector (size_t n, const T &value)
 ConfigOptionVector (std::initializer_list< T > il)
 ConfigOptionVector (const std::vector< T > &values)
 ConfigOptionVector (std::vector< T > &&values)
void set (const ConfigOption *rhs) override
void set (const std::vector< const ConfigOption * > &rhs) override
void set_at (const ConfigOption *rhs, size_t i, size_t j) override
virtual void set_at_to_nil (size_t i) override
void append (const ConfigOption *rhs) override
void set (const ConfigOption *rhs, size_t start, size_t len) override
virtual void set_with_restore (const ConfigOptionVectorBase *rhs, std::vector< int > &restore_index, int stride) override
virtual void set_with_restore_2 (const ConfigOptionVectorBase *rhs, std::vector< int > &restore_index, int start, int len, bool skip_error=false) override
virtual void set_only_diff (const ConfigOptionVectorBase *rhs, std::vector< int > &diff_index, int stride, bool keep_nil) override
virtual void set_to_index (const ConfigOptionVectorBase *rhs, std::vector< int > &dest_index, int stride) override
virtual void set_with_nil (const ConfigOptionVectorBase *rhs, const ConfigOptionVectorBase *inherits, int stride) override
const T & get_at (size_t i) const
T & get_at (size_t i)
void resize (size_t n, const ConfigOption *opt_default=nullptr) override
void clear () override
size_t size () const override
bool empty () const override
bool operator== (const ConfigOption &rhs) const override
bool operator== (const std::vector< T > &rhs) const throw ()
bool operator!= (const std::vector< T > &rhs) const throw ()
size_t hash () const override throw ()
bool overriden_by (const ConfigOption *rhs) const override
bool apply_override (const ConfigOption *rhs, std::vector< int > &default_index) override
virtual std::vector< std::string > vserialize () const =0
virtual bool is_nil (size_t idx) const =0
virtual bool is_nil () const
virtual ConfigOptionType type () const =0
virtual std::string serialize () const =0
virtual bool deserialize (const std::string &str, bool append=false)=0
virtual ConfigOption * clone () const =0
virtual int getInt () const
virtual double getFloat () const
virtual bool getBool () const
virtual void setInt (int)
bool operator!= (const ConfigOption &rhs) const
bool is_scalar () const
bool is_vector () const
virtual bool nullable () const

Public Attributes

std::vector< T > values

Protected Member Functions

ConfigOptionType scalar_type () const

Private Member Functions

template<class Archive>
void serialize (Archive &ar)

Friends

class cereal::access

Detailed Description

template<class T>
class Slic3r::ConfigOptionVector< T >

Constructor & Destructor Documentation

◆ ConfigOptionVector() [1/5]

template<class T>
Slic3r::ConfigOptionVector< T >::ConfigOptionVector ( )
inline
413{}

Referenced by append(), apply_override(), operator==(), overriden_by(), resize(), set(), set(), set(), set_at(), set_only_diff(), set_to_index(), set_with_nil(), set_with_restore(), and set_with_restore_2().

Here is the caller graph for this function:

◆ ConfigOptionVector() [2/5]

template<class T>
Slic3r::ConfigOptionVector< T >::ConfigOptionVector ( size_t n,
const T & value )
inlineexplicit
414: values(n, value) {}
Definition Config.hpp:411
std::vector< T > values
Definition Config.hpp:418

References values.

◆ ConfigOptionVector() [3/5]

template<class T>
Slic3r::ConfigOptionVector< T >::ConfigOptionVector ( std::initializer_list< T > il)
inlineexplicit
415: values(std::move(il)) {}

References values.

◆ ConfigOptionVector() [4/5]

template<class T>
Slic3r::ConfigOptionVector< T >::ConfigOptionVector ( const std::vector< T > & values)
inlineexplicit
416: values(values) {}

References values.

◆ ConfigOptionVector() [5/5]

template<class T>
Slic3r::ConfigOptionVector< T >::ConfigOptionVector ( std::vector< T > && values)
inlineexplicit

References values.

Member Function Documentation

◆ append()

template<class T>
void Slic3r::ConfigOptionVector< T >::append ( const ConfigOption * rhs)
inlineoverridevirtual

Implements Slic3r::ConfigOptionVectorBase.

478 {
479 if (rhs->type() == this->type()) {
480 // Assign the first value of the rhs vector.
481 auto other = static_cast<const ConfigOptionVector<T>*>(rhs);
482 if (other->values.empty())
483 throw ConfigurationError("ConfigOptionVector::append(): append an empty vector");
484 this->values.insert(this->values.end(), other->values.begin(), other->values.end());
485 } else if (rhs->type() == this->scalar_type())
486 this->values.push_back(static_cast<const ConfigOptionSingle<T>*>(rhs)->value);
487 else
488 throw ConfigurationError("ConfigOptionVector::append(): append an incompatible type");
489 }
ConfigOptionType scalar_type() const
Definition Config.hpp:405
ConfigOptionVector()
Definition Config.hpp:413
virtual ConfigOptionType type() const =0

References ConfigOptionVector(), and Slic3r::ConfigOption::type().

Here is the call graph for this function:

◆ apply_override()

template<class T>
bool Slic3r::ConfigOptionVector< T >::apply_override ( const ConfigOption * rhs,
std::vector< int > & default_index )
inlineoverridevirtual

Reimplemented from Slic3r::ConfigOption.

767 {
768 if (this->nullable())
769 throw ConfigurationError("Cannot override a nullable ConfigOption.");
770 if (rhs->type() != this->type())
771 throw ConfigurationError("ConfigOptionVector.apply_override() applied to different types.");
772 auto rhs_vec = static_cast<const ConfigOptionVector<T>*>(rhs);
773 if (! rhs->nullable()) {
774 // Overridding a non-nullable object with another non-nullable object.
775 if (this->values != rhs_vec->values) {
776 this->values = rhs_vec->values;
777 return true;
778 }
779 return false;
780 }
781
782 size_t cnt = std::min(this->size(), rhs_vec->size());
783 if (cnt < 1)
784 return false;
785
787
788 if (this->values.empty())
789 this->values.resize(rhs_vec->size());
790 else {
791 T v = this->values.front();
792 this->values.resize(rhs_vec->size(), v);
793 }
794
796
797 bool modified = false;
798
799 for (size_t i = 0; i < rhs_vec->size(); ++i) {
800 if (!rhs_vec->is_nil(i)) {
801 this->values[i] = rhs_vec->values[i];
802 modified = true;
803 } else {
804 // Orca: a negative slot (failed variant lookup) must not silently collapse the
805 // whole array to the first slot's value — the int-vs-size_t comparison used to
806 // promote -1 past the bounds check. Keep the slot's own value (get_at-style
807 // clamp) when no valid index is available.
808 if ((i < default_index.size()) && (default_index[i] >= 0) && (size_t(default_index[i]) < default_value.size()))
810 else
812 }
813 }
814 return modified;
815 }
virtual bool is_nil(size_t idx) const =0
size_t size() const override
Definition Config.hpp:722
virtual bool nullable() const
Definition Config.hpp:304

References ConfigOptionVector(), Slic3r::ConfigOption::nullable(), size(), and Slic3r::ConfigOption::type().

Here is the call graph for this function:

◆ clear()

template<class T>
void Slic3r::ConfigOptionVector< T >::clear ( )
inlineoverridevirtual

Implements Slic3r::ConfigOptionVectorBase.

721{ this->values.clear(); }

Referenced by Slic3r::PresetBundle::load_config_file_config(), and Slic3r::load_mixed_filament_settings().

Here is the caller graph for this function:

◆ clone()

virtual ConfigOption * Slic3r::ConfigOption::clone ( ) const
pure virtualinherited

Implemented in Slic3r::ConfigOptionBool, Slic3r::ConfigOptionBoolsTempl< NULLABLE >, Slic3r::ConfigOptionBoolsTempl< false >, Slic3r::ConfigOptionBoolsTempl< true >, Slic3r::ConfigOptionEnum< T >, Slic3r::ConfigOptionEnum< BrimType >, Slic3r::ConfigOptionEnumGeneric, Slic3r::ConfigOptionEnumsGenericTempl< NULLABLE >, Slic3r::ConfigOptionEnumsGenericTempl< false >, Slic3r::ConfigOptionEnumsGenericTempl< true >, Slic3r::ConfigOptionFloat, Slic3r::ConfigOptionFloatOrPercent, Slic3r::ConfigOptionFloatsOrPercentsTempl< NULLABLE >, Slic3r::ConfigOptionFloatsOrPercentsTempl< false >, Slic3r::ConfigOptionFloatsOrPercentsTempl< true >, Slic3r::ConfigOptionFloatsTempl< NULLABLE >, Slic3r::ConfigOptionFloatsTempl< false >, Slic3r::ConfigOptionFloatsTempl< true >, Slic3r::ConfigOptionInt, Slic3r::ConfigOptionIntsGroups, Slic3r::ConfigOptionIntsTempl< NULLABLE >, Slic3r::ConfigOptionIntsTempl< false >, Slic3r::ConfigOptionIntsTempl< true >, Slic3r::ConfigOptionPercent, Slic3r::ConfigOptionPercentsTempl< NULLABLE >, Slic3r::ConfigOptionPercentsTempl< false >, Slic3r::ConfigOptionPercentsTempl< true >, Slic3r::ConfigOptionPoint3, Slic3r::ConfigOptionPoint, Slic3r::ConfigOptionPoints, Slic3r::ConfigOptionPointsGroups, Slic3r::ConfigOptionString, and Slic3r::ConfigOptionStrings.

Referenced by Slic3r::DynamicConfig::DynamicConfig(), Slic3r::GUI::ObjectList::add_category_to_settings_from_frequent(), Slic3r::GUI::ObjectList::add_category_to_settings_from_selection(), Slic3r::GUI::TabFilament::add_filament_overrides_page(), Slic3r::GUI::ObjectSettings::add_missed_options(), Slic3r::GUI::ObjectTableSettings::add_missed_options(), Slic3r::GUI::ConfigManipulation::apply(), Slic3r::SLAPrint::apply(), Slic3r::PlaceholderParser::apply_config(), Slic3r::PlaceholderParser::apply_only(), Slic3r::compute_filament_override_value(), Slic3r::GUI::Tab::load_config(), Slic3r::PresetCollection::load_user_preset(), Slic3r::GUI::ObjectList::merge(), Slic3r::GUI::ObjectList::paste_settings_into_list(), Slic3r::CLI::run(), Slic3r::GUI::PartPlate::set_vase_mode_related_object_config(), Slic3r::GUI::ObjectGridTable::update_filament_to_config(), Slic3r::DynamicPrintConfig::update_non_diff_values_to_base_config(), Slic3r::GUI::ObjectGridTable::update_value_to_config(), and Slic3r::client::MyContext::vector_variable_new_from_copy().

Here is the caller graph for this function:

◆ deserialize()

virtual bool Slic3r::ConfigOption::deserialize ( const std::string & str,
bool append = false )
pure virtualinherited

Implemented in Slic3r::ConfigOptionBool, Slic3r::ConfigOptionBoolsTempl< NULLABLE >, Slic3r::ConfigOptionBoolsTempl< false >, Slic3r::ConfigOptionBoolsTempl< true >, Slic3r::ConfigOptionEnum< T >, Slic3r::ConfigOptionEnum< BrimType >, Slic3r::ConfigOptionEnumGeneric, Slic3r::ConfigOptionEnumsGenericTempl< NULLABLE >, Slic3r::ConfigOptionEnumsGenericTempl< false >, Slic3r::ConfigOptionEnumsGenericTempl< true >, Slic3r::ConfigOptionFloat, Slic3r::ConfigOptionFloatOrPercent, Slic3r::ConfigOptionFloatsOrPercentsTempl< NULLABLE >, Slic3r::ConfigOptionFloatsOrPercentsTempl< false >, Slic3r::ConfigOptionFloatsOrPercentsTempl< true >, Slic3r::ConfigOptionFloatsTempl< NULLABLE >, Slic3r::ConfigOptionFloatsTempl< false >, Slic3r::ConfigOptionFloatsTempl< true >, Slic3r::ConfigOptionInt, Slic3r::ConfigOptionIntsGroups, Slic3r::ConfigOptionIntsTempl< NULLABLE >, Slic3r::ConfigOptionIntsTempl< false >, Slic3r::ConfigOptionIntsTempl< true >, Slic3r::ConfigOptionPercent, Slic3r::ConfigOptionPoint3, Slic3r::ConfigOptionPoint, Slic3r::ConfigOptionPoints, Slic3r::ConfigOptionPointsGroups, Slic3r::ConfigOptionString, and Slic3r::ConfigOptionStrings.

References Slic3r::append().

Referenced by Slic3r::DynamicConfig::read_cli().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ empty()

template<class T>
bool Slic3r::ConfigOptionVector< T >::empty ( ) const
inlineoverridevirtual

Implements Slic3r::ConfigOptionVectorBase.

723{ return this->values.empty(); }

Referenced by Slic3r::GUI::TextCtrl::BUILD(), Slic3r::GUI::Tab::compatible_widget_create(), Slic3r::GUI::Tab::compatible_widget_reload(), Slic3r::GUI::get_string_value(), Slic3r::GUI::Tab::on_roll_back_value(), and Slic3r::GUI::Sidebar::update_mixed_filament_list().

Here is the caller graph for this function:

◆ get_at() [1/2]

template<class T>
T & Slic3r::ConfigOptionVector< T >::get_at ( size_t i)
inline
682{ return const_cast<T&>(std::as_const(*this).get_at(i)); }
const T & get_at(size_t i) const
Definition Config.hpp:676

◆ get_at() [2/2]

template<class T>
const T & Slic3r::ConfigOptionVector< T >::get_at ( size_t i) const
inline
677 {
678 assert(! this->values.empty());
679 return (i < this->values.size()) ? this->values[i] : this->values.front();
680 }

References values.

Referenced by Slic3r::GUI::ColourPicker::BUILD(), Slic3r::GUI::TextCtrl::BUILD(), Slic3r::Print::collect_filament_variant_uses(), Slic3r::GUI::ConfigOptionsGroup::get_config_value(), Slic3r::DynamicPrintConfig::get_index_for_extruder(), Slic3r::GUI::get_string_value(), Slic3r::PresetBundle::load_config_file_config(), and Slic3r::CLI::run().

Here is the caller graph for this function:

◆ getBool()

virtual bool Slic3r::ConfigOption::getBool ( ) const
inlinevirtualinherited

Reimplemented in Slic3r::ConfigOptionBool.

296{ throw BadOptionTypeException("Calling ConfigOption::getBool on a non-boolean ConfigOption"); }

Referenced by Slic3r::_BBS_3MF_Exporter::_add_model_config_file_to_archive(), Slic3r::GUI::MenuFactory::append_menu_items_flush_options(), Slic3r::Print::apply(), Slic3r::GUI::PartPlate::estimate_wipe_tower_footprint(), Slic3r::GUI::PartPlate::get_extruders(), Slic3r::GUI::PartPlate::get_extruders_under_cli(), Slic3r::GUI::PartPlate::get_object_filament_extruders(), and Slic3r::GUI::ArrangeJob::prepare_wipe_tower().

Here is the caller graph for this function:

◆ getFloat()

virtual double Slic3r::ConfigOption::getFloat ( ) const
inlinevirtualinherited

Reimplemented in Slic3r::ConfigOptionFloat.

295{ throw BadOptionTypeException("Calling ConfigOption::getFloat on a non-float ConfigOption"); }

Referenced by Slic3r::estimate_wipe_tower_first_layer_outline(), Slic3r::GUI::PartPlate::estimate_wipe_tower_footprint(), Slic3r::GUI::PartPlate::get_object_filament_extruders(), Slic3r::GUI::get_string_value(), Slic3r::CLI::run(), Slic3r::client::MyContext::scalar_variable_to_expr(), Slic3r::client::MyContext::vector_element_to_expr(), and Slic3r::GUI::PartPlate::wipe_tower_obstacles().

Here is the caller graph for this function:

◆ getInt()

virtual int Slic3r::ConfigOption::getInt ( ) const
inlinevirtualinherited

Reimplemented in Slic3r::ConfigOptionEnum< T >, Slic3r::ConfigOptionEnum< BrimType >, and Slic3r::ConfigOptionInt.

294{ throw BadOptionTypeException("Calling ConfigOption::getInt on a non-int ConfigOption"); }

Referenced by Slic3r::_BBS_3MF_Exporter::_add_model_config_file_to_archive(), Slic3r::estimate_wipe_tower_first_layer_outline(), Slic3r::GUI::PartPlate::estimate_wipe_tower_footprint(), Slic3r::GUI::ConfigOptionsGroup::get_config_value(), Slic3r::GUI::ConfigOptionsGroup::get_config_value2(), Slic3r::GUI::PartPlate::get_extruders(), Slic3r::GUI::PartPlate::get_extruders_under_cli(), Slic3r::get_instance_arrange_poly(), Slic3r::GUI::PartPlate::get_object_filament_extruders(), Slic3r::GUI::get_string_from_enum(), Slic3r::PrintConfigDef::handle_legacy_composite(), Slic3r::client::MyContext::legacy_variable_expansion2(), Slic3r::GUI::Plater::priv::load_files(), Slic3r::DynamicPrintConfig::normalize_fdm(), Slic3r::DynamicPrintConfig::normalize_fdm_1(), Slic3r::ConfigOptionEnum< T >::operator==(), Slic3r::ConfigOptionEnumGeneric::operator==(), Slic3r::DynamicConfig::opt_enum(), Slic3r::prime_tower_is_printed(), Slic3r::GUI::GLGizmoMmuSegmentation::remap_filament_assignments(), Slic3r::resolve_wipe_tower_type(), Slic3r::ConfigOptionEnum< T >::set(), Slic3r::ConfigOptionEnumGeneric::set(), Slic3r::GUI::GCodeViewer::update_layers_slider_mode(), and Slic3r::GUI::PartPlate::wipe_tower_obstacles().

Here is the caller graph for this function:

◆ hash()

template<class T>
size_t Slic3r::ConfigOptionVector< T >::hash ( ) const
throw ( )
inlineoverridevirtual

Implements Slic3r::ConfigOption.

736 {
738 size_t seed = 0;
739 for (const auto &v : this->values)
741 return seed;
742 }

◆ is_nil() [1/2]

virtual bool Slic3r::ConfigOption::is_nil ( ) const
inlinevirtualinherited

Reimplemented from Slic3r::ConfigOption.

306{ return false; }

◆ is_nil() [2/2]

◆ is_scalar()

bool Slic3r::ConfigOption::is_scalar ( ) const
inlineinherited

◆ is_vector()

bool Slic3r::ConfigOption::is_vector ( ) const
inlineinherited
302{ return ! this->is_scalar(); }
bool is_scalar() const
Definition Config.hpp:301

References is_scalar().

Referenced by Slic3r::client::MyContext::copy_vector_variable_to_vector_variable(), Slic3r::PresetBundle::load_config_file_config(), Slic3r::GUI::Tab::options_list_storage_key(), Slic3r::DynamicConfig::read_cli(), Slic3r::client::MyContext::scalar_variable_new_from_scalar_expression(), Slic3r::client::MyContext::vector_variable_element_assign_scalar(), and Slic3r::client::MyContext::vector_variable_new_from_copy().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nullable()

◆ operator!=() [1/2]

bool Slic3r::ConfigOption::operator!= ( const ConfigOption & rhs) const
inlineinherited
299{ return ! (*this == rhs); }

◆ operator!=() [2/2]

template<class T>
bool Slic3r::ConfigOptionVector< T >::operator!= ( const std::vector< T > & rhs) const
throw ( )
inline
734{ return this->values != rhs; }

◆ operator==() [1/2]

template<class T>
bool Slic3r::ConfigOptionVector< T >::operator== ( const ConfigOption & rhs) const
inlineoverridevirtual

Implements Slic3r::ConfigOption.

726 {
727 if (rhs.type() != this->type())
728 throw ConfigurationError("ConfigOptionVector: Comparing incompatible types");
729 assert(dynamic_cast<const ConfigOptionVector<T>*>(&rhs));
730 return this->values == static_cast<const ConfigOptionVector<T>*>(&rhs)->values;
731 }

References ConfigOptionVector(), Slic3r::ConfigOption::type(), and values.

Here is the call graph for this function:

◆ operator==() [2/2]

template<class T>
bool Slic3r::ConfigOptionVector< T >::operator== ( const std::vector< T > & rhs) const
throw ( )
inline
733{ return this->values == rhs; }

◆ overriden_by()

template<class T>
bool Slic3r::ConfigOptionVector< T >::overriden_by ( const ConfigOption * rhs) const
inlineoverridevirtual

Reimplemented from Slic3r::ConfigOption.

746 {
747 if (this->nullable())
748 throw ConfigurationError("Cannot override a nullable ConfigOption.");
749 if (rhs->type() != this->type())
750 throw ConfigurationError("ConfigOptionVector.overriden_by() applied to different types.");
751 auto rhs_vec = static_cast<const ConfigOptionVector<T>*>(rhs);
752 if (! rhs->nullable())
753 // Overridding a non-nullable object with another non-nullable object.
754 return this->values != rhs_vec->values;
755 size_t i = 0;
756 size_t cnt = std::min(this->size(), rhs_vec->size());
757 for (; i < cnt; ++ i)
758 if (! rhs_vec->is_nil(i) && this->values[i] != rhs_vec->values[i])
759 return true;
760 for (; i < rhs_vec->size(); ++ i)
761 if (! rhs_vec->is_nil(i))
762 return true;
763 return false;
764 }

References ConfigOptionVector(), Slic3r::ConfigOption::nullable(), size(), and Slic3r::ConfigOption::type().

Here is the call graph for this function:

◆ resize()

template<class T>
void Slic3r::ConfigOptionVector< T >::resize ( size_t n,
const ConfigOption * opt_default = nullptr )
inlineoverridevirtual

Implements Slic3r::ConfigOptionVectorBase.

688 {
689 //assert(opt_default == nullptr || opt_default->is_vector());
690// assert(opt_default == nullptr || dynamic_cast<ConfigOptionVector<T>>(opt_default));
691 assert(! this->values.empty() || opt_default != nullptr);
692
693 if (n == 0)
694 this->values.clear();
695 else if (n < this->values.size())
696 this->values.erase(this->values.begin() + n, this->values.end());
697 else if (n > this->values.size()) {
698 if (this->values.empty()) {
699 if (opt_default == nullptr) {
700 throw ConfigurationError("ConfigOptionVector::resize(): No default value provided.");
701 }
702 else if (opt_default->is_vector()) {
703 if (opt_default->type() != this->type())
704 throw ConfigurationError("ConfigOptionVector::resize(): Extending with an incompatible type.");
705 this->values.resize(n, static_cast<const ConfigOptionVector<T>*>(opt_default)->values.front());
706 }
707 else {
708 if (opt_default->type() != this->scalar_type())
709 throw ConfigurationError("ConfigOptionVector::resize(): Extending with an incompatible type.");
710 this->values.resize(n, static_cast<const ConfigOptionSingle<T>*>(opt_default)->value);
711 }
712 } else {
713 // Resize by duplicating the last value.
714 T v = this->values./*back*/front();
715 this->values.resize(n, v);
716 }
717 }
718 }
bool is_vector() const
Definition Config.hpp:302

References ConfigOptionVector(), and values.

Referenced by Slic3r::DynamicPrintConfig::get_extruder_nozzle_volume_count(), Slic3r::PresetBundle::load_config_file_config(), Slic3r::PresetBundle::load_selections(), Slic3r::Preset::normalize(), Slic3r::GUI::Plater::open_filament_map_setting_dialog(), Slic3r::CLI::run(), Slic3r::PresetBundle::set_num_filaments(), Slic3r::PresetBundle::update_filament_multi_color(), and Slic3r::PresetBundle::update_selections().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ scalar_type()

ConfigOptionType Slic3r::ConfigOptionVectorBase::scalar_type ( ) const
inlineprotectedinherited
405{ return static_cast<ConfigOptionType>(this->type() - coVectorType); }
ConfigOptionType
Definition Config.hpp:180

References Slic3r::coVectorType, and Slic3r::ConfigOption::type().

Here is the call graph for this function:

◆ serialize() [1/2]

virtual std::string Slic3r::ConfigOption::serialize ( ) const
pure virtualinherited

Implemented in Slic3r::ConfigOptionBool, Slic3r::ConfigOptionBoolsTempl< NULLABLE >, Slic3r::ConfigOptionBoolsTempl< false >, Slic3r::ConfigOptionBoolsTempl< true >, Slic3r::ConfigOptionEnum< T >, Slic3r::ConfigOptionEnum< BrimType >, Slic3r::ConfigOptionEnumGeneric, Slic3r::ConfigOptionEnumsGenericTempl< NULLABLE >, Slic3r::ConfigOptionEnumsGenericTempl< false >, Slic3r::ConfigOptionEnumsGenericTempl< true >, Slic3r::ConfigOptionFloat, Slic3r::ConfigOptionFloatOrPercent, Slic3r::ConfigOptionFloatsOrPercentsTempl< NULLABLE >, Slic3r::ConfigOptionFloatsOrPercentsTempl< false >, Slic3r::ConfigOptionFloatsOrPercentsTempl< true >, Slic3r::ConfigOptionFloatsTempl< NULLABLE >, Slic3r::ConfigOptionFloatsTempl< false >, Slic3r::ConfigOptionFloatsTempl< true >, Slic3r::ConfigOptionInt, Slic3r::ConfigOptionIntsGroups, Slic3r::ConfigOptionIntsTempl< NULLABLE >, Slic3r::ConfigOptionIntsTempl< false >, Slic3r::ConfigOptionIntsTempl< true >, Slic3r::ConfigOptionPercent, Slic3r::ConfigOptionPercentsTempl< NULLABLE >, Slic3r::ConfigOptionPercentsTempl< false >, Slic3r::ConfigOptionPercentsTempl< true >, Slic3r::ConfigOptionPoint3, Slic3r::ConfigOptionPoint, Slic3r::ConfigOptionPoints, Slic3r::ConfigOptionPointsGroups, Slic3r::ConfigOptionSingle< T >, Slic3r::ConfigOptionSingle< bool >, Slic3r::ConfigOptionSingle< BrimType >, Slic3r::ConfigOptionSingle< double >, Slic3r::ConfigOptionSingle< int >, Slic3r::ConfigOptionSingle< std::string >, Slic3r::ConfigOptionSingle< Vec2d >, Slic3r::ConfigOptionSingle< Vec3d >, Slic3r::ConfigOptionString, and Slic3r::ConfigOptionStrings.

Referenced by Slic3r::PresetCollection::get_differed_values_to_update(), Slic3r::anonymous_namespace{PrintConfig.cpp}::log_normalize_legacy_vector_size(), Slic3r::CLI::run(), Slic3r::DynamicPrintConfig::update_diff_values_to_child_config(), and Slic3r::DynamicPrintConfig::update_non_diff_values_to_base_config().

Here is the caller graph for this function:

◆ serialize() [2/2]

template<class T>
template<class Archive>
void Slic3r::ConfigOptionVector< T >::serialize ( Archive & ar)
inlineprivate
821{ ar(this->values); }

◆ set() [1/3]

template<class T>
void Slic3r::ConfigOptionVector< T >::set ( const ConfigOption * rhs)
inlineoverridevirtual

Implements Slic3r::ConfigOption.

421 {
422 if (rhs->type() != this->type())
423 throw ConfigurationError("ConfigOptionVector: Assigning an incompatible type");
424 assert(dynamic_cast<const ConfigOptionVector<T>*>(rhs));
425 this->values = static_cast<const ConfigOptionVector<T>*>(rhs)->values;
426 }

References ConfigOptionVector(), Slic3r::ConfigOption::type(), and values.

Here is the call graph for this function:

◆ set() [2/3]

template<class T>
void Slic3r::ConfigOptionVector< T >::set ( const ConfigOption * rhs,
size_t start,
size_t len )
inlineoverridevirtual

Implements Slic3r::ConfigOptionVectorBase.

494 {
495 // It is expected that the vector value has at least one value, which is the default, if not overwritten.
496 assert(!this->values.empty());
497 T v = this->values.front();
498 this->values.resize(len, v);
499 if (rhs->type() == this->type()) {
500 // Assign the first value of the rhs vector.
501 auto other = static_cast<const ConfigOptionVector<T>*>(rhs);
502 if (other->values.size() < (start+len))
503 throw ConfigurationError("ConfigOptionVector::set_with(): Assigning from an vector with invalid size");
504 for (size_t i = 0; i < len; i++)
505 this->values[i] = other->get_at(start+i);
506 }
507 else
508 throw ConfigurationError("ConfigOptionVector::set_with(): Assigning an incompatible type");
509 }

References ConfigOptionVector(), and Slic3r::ConfigOption::type().

Here is the call graph for this function:

◆ set() [3/3]

template<class T>
void Slic3r::ConfigOptionVector< T >::set ( const std::vector< const ConfigOption * > & rhs)
inlineoverridevirtual

Implements Slic3r::ConfigOptionVectorBase.

433 {
434 this->values.clear();
435 this->values.reserve(rhs.size());
436 for (const ConfigOption *opt : rhs) {
437 if (opt->type() == this->type()) {
438 auto other = static_cast<const ConfigOptionVector<T>*>(opt);
439 if (other->values.empty())
440 throw ConfigurationError("ConfigOptionVector::set(): Assigning from an empty vector");
441 this->values.emplace_back(other->values.front());
442 } else if (opt->type() == this->scalar_type())
443 this->values.emplace_back(static_cast<const ConfigOptionSingle<T>*>(opt)->value);
444 else
445 throw ConfigurationError("ConfigOptionVector::set():: Assigning an incompatible type");
446 }
447 }

References ConfigOptionVector().

Here is the call graph for this function:

◆ set_at()

template<class T>
void Slic3r::ConfigOptionVector< T >::set_at ( const ConfigOption * rhs,
size_t i,
size_t j )
inlineoverridevirtual

Implements Slic3r::ConfigOptionVectorBase.

452 {
453 // It is expected that the vector value has at least one value, which is the default, if not overwritten.
454 assert(! this->values.empty());
455 if (this->values.size() <= i) {
456 // Resize this vector, fill in the new vector fields with the copy of the first field.
457 T v = this->values.front();
458 this->values.resize(i + 1, v);
459 }
460 if (rhs->type() == this->type()) {
461 // Assign the first value of the rhs vector.
462 auto other = dynamic_cast<const ConfigOptionVector<T>*>(rhs);
463 if (other == nullptr)
464 throw ConfigurationError("ConfigOptionVector::set_at(): Assigning an incompatible type");
465 if (other->values.empty())
466 throw ConfigurationError("ConfigOptionVector::set_at(): Assigning from an empty vector");
467 this->values[i] = other->get_at(j);
468 } else if (rhs->type() == this->scalar_type())
469 this->values[i] = static_cast<const ConfigOptionSingle<T>*>(rhs)->value;
470 else
471 throw ConfigurationError("ConfigOptionVector::set_at(): Assigning an incompatible type");
472 }

References ConfigOptionVector(), and Slic3r::ConfigOption::type().

Referenced by Slic3r::CLI::run().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_at_to_nil()

◆ set_only_diff()

template<class T>
virtual void Slic3r::ConfigOptionVector< T >::set_only_diff ( const ConfigOptionVectorBase * rhs,
std::vector< int > & diff_index,
int stride,
bool keep_nil )
inlineoverridevirtual

Implements Slic3r::ConfigOptionVectorBase.

588 {
589 if (rhs->type() == this->type()) {
590 // Assign the first value of the rhs vector.
591 auto other = static_cast<const ConfigOptionVector<T>*>(rhs);
592
593 if (this->values.size() != (diff_index.size()*stride))
594 throw ConfigurationError("ConfigOptionVector::set_only_diff(): Assigning from an vector with invalid diff_index size");
595
596 for (size_t i = 0; i < diff_index.size(); i++) {
597 if (diff_index[i] != -1) {
598 for (size_t j = 0; j < stride; j++) {
599 if (keep_nil || !other->is_nil(diff_index[i] * stride))
600 this->values[i * stride + j] = other->values[diff_index[i] * stride + j];
601 }
602 }
603 }
604 }
605 else
606 throw ConfigurationError("ConfigOptionVector::set_only_diff(): Assigning an incompatible type");
607 }

References ConfigOptionVector(), and Slic3r::ConfigOption::type().

Here is the call graph for this function:

◆ set_to_index()

template<class T>
virtual void Slic3r::ConfigOptionVector< T >::set_to_index ( const ConfigOptionVectorBase * rhs,
std::vector< int > & dest_index,
int stride )
inlineoverridevirtual

Implements Slic3r::ConfigOptionVectorBase.

613 {
614 if (rhs->type() == this->type()) {
615 // Assign the first value of the rhs vector.
616 auto other = static_cast<const ConfigOptionVector<T>*>(rhs);
617 T v = other->values.front();
618 this->values.resize(dest_index.size() * stride, v);
619
620 for (size_t i = 0; i < dest_index.size(); i++) {
621 if (dest_index[i] < 0)
622 continue;
623 for (size_t j = 0; j < size_t(stride); j++)
624 {
625 const size_t src_idx = size_t(dest_index[i]) * size_t(stride) + j;
626 if (src_idx < other->values.size() && !other->is_nil(size_t(dest_index[i]) * size_t(stride)))
627 this->values[i * size_t(stride) + j] = other->values[src_idx];
628 }
629 }
630 }
631 else
632 throw ConfigurationError("ConfigOptionVector::set_to_index(): Assigning an incompatible type");
633 }

References ConfigOptionVector(), Slic3r::ConfigOption::type(), and values.

Here is the call graph for this function:

◆ set_with_nil()

template<class T>
virtual void Slic3r::ConfigOptionVector< T >::set_with_nil ( const ConfigOptionVectorBase * rhs,
const ConfigOptionVectorBase * inherits,
int stride )
inlineoverridevirtual

Implements Slic3r::ConfigOptionVectorBase.

640 {
641 if ((rhs->type() == this->type()) && (inherits->type() == this->type())) {
642 auto rhs_opt = static_cast<const ConfigOptionVector<T>*>(rhs);
643 auto inherits_opt = static_cast<const ConfigOptionVector<T>*>(inherits);
644
645 if (stride <= 0)
646 throw ConfigurationError("ConfigOptionVector::set_with_nil(): invalid stride");
647
648 // Tolerate legacy/transitional presets where vector sizes may diverge
649 // (for example after reducing extruder/variant count).
650 // Keep rhs as source of truth and nil-mark only on overlapping range.
651 this->values = rhs_opt->values;
652
653 const size_t overlap_size = std::min(rhs_opt->size(), inherits_opt->size());
654
655 for (size_t i = 0; i < overlap_size; i += size_t(stride)) {
656 const size_t group_size = std::min(size_t(stride), overlap_size - i);
657 bool set_nil = true;
658 for (size_t j = 0; j < group_size; ++j) {
659 if (inherits_opt->values[i + j] != rhs_opt->values[i + j]) {
660 set_nil = false;
661 break;
662 }
663 }
664
665 for (size_t j = 0; j < group_size; ++j) {
666 if (set_nil) {
667 this->set_at_to_nil(i + j);
668 }
669 }
670 }
671 }
672 else
673 throw ConfigurationError("ConfigOptionVector::set_with_nil(): Assigning an incompatible type");
674 }
virtual void set_at_to_nil(size_t i) override
Definition Config.hpp:475

References ConfigOptionVector(), set_at_to_nil(), size(), Slic3r::ConfigOption::type(), and values.

Here is the call graph for this function:

◆ set_with_restore()

template<class T>
virtual void Slic3r::ConfigOptionVector< T >::set_with_restore ( const ConfigOptionVectorBase * rhs,
std::vector< int > & restore_index,
int stride )
inlineoverridevirtual

Implements Slic3r::ConfigOptionVectorBase.

515 {
516 if (rhs->type() == this->type()) {
517 //backup original ones
519 // Assign the first value of the rhs vector.
520 auto other = static_cast<const ConfigOptionVector<T>*>(rhs);
521 this->values = other->values;
522
523 if (other->values.size() != (restore_index.size()*stride))
524 throw ConfigurationError("ConfigOptionVector::set_with_restore(): Assigning from an vector with invalid restore_index size");
525
526 for (size_t i = 0; i < restore_index.size(); i++) {
527 if (restore_index[i] != -1) {
528 for (size_t j = 0; j < stride; j++)
530 }
531 }
532 }
533 else
534 throw ConfigurationError("ConfigOptionVector::set_with_restore(): Assigning an incompatible type");
535 }

References ConfigOptionVector(), and Slic3r::ConfigOption::type().

Here is the call graph for this function:

◆ set_with_restore_2()

template<class T>
virtual void Slic3r::ConfigOptionVector< T >::set_with_restore_2 ( const ConfigOptionVectorBase * rhs,
std::vector< int > & restore_index,
int start,
int len,
bool skip_error = false )
inlineoverridevirtual

Implements Slic3r::ConfigOptionVectorBase.

543 {
544 if (rhs->type() == this->type()) {
545 //backup original ones
547
548 if (this->values.size() < start) {
549 throw ConfigurationError("ConfigOptionVector::set_with_restore_2(): invalid size found");
550 }
551 else {
552 if (this->values.size() < start + len)
553 len = this->values.size() - start;
554
555 //erase the original ones
556 if (len > 0)
557 this->values.erase(this->values.begin() + start, this->values.begin() + start + len);
558 }
559
560 // Assign the new value from the rhs vector.
561 auto other = const_cast<ConfigOptionVector<T>*>(static_cast<const ConfigOptionVector<T>*>(rhs));
562
563 if (other->values.size() != (restore_index.size())) {
564 if (skip_error) {
565 T default_v = other->values.front();
567 }
568 else
569 throw ConfigurationError("ConfigOptionVector::set_with_restore_2(): Assigning from an vector with invalid restore_index size");
570 }
571
572 for (size_t i = 0; i < restore_index.size(); i++) {
573 if ((restore_index[i] != -1)&&(restore_index[i] < backup_values.size())) {
574 this->values.insert(this->values.begin() + start + i, backup_values[restore_index[i]]);
575 }
576 else
577 this->values.insert(this->values.begin() + start + i, other->values[i]);
578 }
579 }
580 else
581 throw ConfigurationError("ConfigOptionVector::set_with_restore_2(): Assigning an incompatible type");
582 }

References ConfigOptionVector(), and Slic3r::ConfigOption::type().

Here is the call graph for this function:

◆ setInt()

virtual void Slic3r::ConfigOption::setInt ( int )
inlinevirtualinherited

Reimplemented in Slic3r::ConfigOptionEnum< T >, Slic3r::ConfigOptionEnum< BrimType >, and Slic3r::ConfigOptionInt.

297{ throw BadOptionTypeException("Calling ConfigOption::setInt on a non-int ConfigOption"); }

Referenced by Slic3r::DynamicPrintConfig::normalize_fdm(), and Slic3r::DynamicPrintConfig::normalize_fdm_1().

Here is the caller graph for this function:

◆ size()

template<class T>
size_t Slic3r::ConfigOptionVector< T >::size ( ) const
inlineoverridevirtual

Implements Slic3r::ConfigOptionVectorBase.

722{ return this->values.size(); }

Referenced by apply_override(), Slic3r::GUI::Sidebar::auto_calc_flushing_volumes(), Slic3r::GUI::create_mixed_filament_from_result(), Slic3r::GUI::Sidebar::edit_mixed_filament(), WipingDialog::ExpandToFullMatrix(), Slic3r::GUI::filament_color_picker_value(), Slic3r::get_bed_shape(), Slic3r::PresetBundle::get_full_flush_matrix(), Slic3r::GUI::get_string_value(), is_flush_config_modified(), Slic3r::PresetBundle::load_config_file_config(), Slic3r::GUI::Plater::priv::load_files(), Slic3r::PresetCollection::load_user_preset(), Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::mixed_slot_signature(), Slic3r::normalize_filament_values_to_variants(), Slic3r::PresetBundle::num_mixed_filaments(), Slic3r::GUI::Plater::open_filament_map_setting_dialog(), overriden_by(), Slic3r::GUI::anonymous_namespace{Plater.cpp}::parse_mixed_gradient_slots(), Slic3r::GCodeProcessor::process_file(), Slic3r::GUI::recompute_mixed_slot_colors(), Slic3r::GUI::IMEXModesCtrl::reset_row_to_parent(), Slic3r::CLI::run(), Slic3r::GUI::Plater::priv::run_textured_mesh_import_dialog(), set_with_nil(), Slic3r::GUI::ObjectList::split(), Slic3r::PresetBundle::sync_ams_list(), Slic3r::GUI::sync_loaded_project_filament_config(), Slic3r::GUI::Plater::update_flush_volume_matrix(), Slic3r::GUI::Sidebar::update_mixed_filament_list(), Slic3r::GUI::DiffPresetDialog::update_tree(), and Slic3r::DynamicPrintConfig::update_values_from_single_to_multi().

Here is the caller graph for this function:

◆ type()

virtual ConfigOptionType Slic3r::ConfigOption::type ( ) const
pure virtualinherited

Implemented in Slic3r::ConfigOptionBool, Slic3r::ConfigOptionBoolsTempl< NULLABLE >, Slic3r::ConfigOptionBoolsTempl< false >, Slic3r::ConfigOptionBoolsTempl< true >, Slic3r::ConfigOptionEnum< T >, Slic3r::ConfigOptionEnum< BrimType >, Slic3r::ConfigOptionEnumGeneric, Slic3r::ConfigOptionEnumsGenericTempl< NULLABLE >, Slic3r::ConfigOptionEnumsGenericTempl< false >, Slic3r::ConfigOptionEnumsGenericTempl< true >, Slic3r::ConfigOptionFloat, Slic3r::ConfigOptionFloatOrPercent, Slic3r::ConfigOptionFloatsOrPercentsTempl< NULLABLE >, Slic3r::ConfigOptionFloatsOrPercentsTempl< false >, Slic3r::ConfigOptionFloatsOrPercentsTempl< true >, Slic3r::ConfigOptionFloatsTempl< NULLABLE >, Slic3r::ConfigOptionFloatsTempl< false >, Slic3r::ConfigOptionFloatsTempl< true >, Slic3r::ConfigOptionInt, Slic3r::ConfigOptionIntsGroups, Slic3r::ConfigOptionIntsTempl< NULLABLE >, Slic3r::ConfigOptionIntsTempl< false >, Slic3r::ConfigOptionIntsTempl< true >, Slic3r::ConfigOptionPercent, Slic3r::ConfigOptionPercentsTempl< NULLABLE >, Slic3r::ConfigOptionPercentsTempl< false >, Slic3r::ConfigOptionPercentsTempl< true >, Slic3r::ConfigOptionPoint3, Slic3r::ConfigOptionPoint, Slic3r::ConfigOptionPoints, Slic3r::ConfigOptionPointsGroups, Slic3r::ConfigOptionString, and Slic3r::ConfigOptionStrings.

Referenced by Slic3r::ConfigOptionVector< T >::append(), Slic3r::Search::SettingsIndex::append_options(), Slic3r::ConfigOptionVector< T >::apply_override(), Slic3r::client::MyContext::copy_vector_variable_to_vector_variable(), Slic3r::deep_diff(), Slic3r::ConfigBase::get_abs_value(), Slic3r::ConfigBase::get_abs_value(), Slic3r::ConfigBase::get_abs_value_at(), Slic3r::GUI::ObjectGridTable::GetValue(), is_scalar(), Slic3r::client::MyContext::legacy_variable_expansion2(), Slic3r::PresetBundle::load_config_file_config(), Slic3r::ConfigOptionEnum< T >::operator==(), Slic3r::ConfigOptionEnumGeneric::operator==(), Slic3r::ConfigOptionFloat::operator==(), Slic3r::ConfigOptionFloatOrPercent::operator==(), Slic3r::ConfigOptionFloatsOrPercentsTempl< false >::operator==(), Slic3r::ConfigOptionFloatsTempl< false >::operator==(), Slic3r::ConfigOptionIntsGroups::operator==(), Slic3r::ConfigOptionPointsGroups::operator==(), Slic3r::ConfigOptionSingle< T >::operator==(), Slic3r::ConfigOptionVector< T >::operator==(), Slic3r::ConfigOptionVector< T >::overriden_by(), Slic3r::DynamicConfig::read_cli(), Slic3r::ConfigOptionVectorBase::scalar_type(), Slic3r::client::MyContext::scalar_variable_assign_scalar(), Slic3r::client::MyContext::scalar_variable_to_expr(), Slic3r::ConfigOptionEnum< T >::set(), Slic3r::ConfigOptionEnumGeneric::set(), Slic3r::ConfigOptionEnumsGenericTempl< false >::set(), Slic3r::ConfigOptionFloatOrPercent::set(), Slic3r::ConfigOptionSingle< T >::set(), Slic3r::ConfigOptionVector< T >::set(), Slic3r::ConfigOptionVector< T >::set(), Slic3r::ConfigOptionVector< T >::set_at(), Slic3r::ConfigOptionVector< T >::set_only_diff(), Slic3r::ConfigOptionVector< T >::set_to_index(), Slic3r::ConfigOptionVector< T >::set_with_nil(), Slic3r::ConfigOptionVector< T >::set_with_restore(), Slic3r::ConfigOptionVector< T >::set_with_restore_2(), Slic3r::DynamicPrintConfig::update_non_diff_values_to_base_config(), Slic3r::client::MyContext::vector_element_to_expr(), Slic3r::client::MyContext::vector_variable_assign_expr_with_count(), Slic3r::client::MyContext::vector_variable_assign_initializer_list(), Slic3r::client::MyContext::vector_variable_element_assign_scalar(), and Slic3r::client::MyContext::vector_variable_new_from_copy().

Here is the caller graph for this function:

◆ vserialize()

◆ cereal::access

template<class T>
friend class cereal::access
friend

References cereal::access.

Referenced by cereal::access.

Member Data Documentation

◆ values

template<class T>
std::vector<T> Slic3r::ConfigOptionVector< T >::values

Referenced by ConfigOptionVector(), ConfigOptionVector(), ConfigOptionVector(), ConfigOptionVector(), Slic3r::GUI::PageBedShape::PageBedShape(), Slic3r::PresetBundle::PresetBundle(), Slic3r::_BBS_3MF_Importer::_extract_project_embedded_presets_from_archive(), Slic3r::any_enabled(), Slic3r::append_bed_exclude_volumes(), Slic3r::GCodeProcessor::apply_config(), Slic3r::GUI::Plater::priv::apply_textured_mesh_import_result(), Slic3r::GUI::PluginField::BUILD(), Slic3r::GUI::TextCtrl::BUILD(), Slic3r::GUI::GuideFrame::BuildProfileJson(), Slic3r::PresetBundle::check_filament_temp_equation_by_printer_type_and_nozzle_for_mas_tray(), Slic3r::GUI::ConfigManipulation::check_nozzle_recommended_temperature_range(), Slic3r::PresetBundle::check_printer_default_materials(), Slic3r::PresetCollection::clone_presets_for_printer(), Slic3r::Print::collect_filament_variant_uses(), Slic3r::PresetBundle::construct_full_config(), Slic3r::GUI::TabPrinter::create_bed_shape_widget(), Slic3r::GUI::create_mixed_filament_from_result(), Slic3r::GUI::Bed3D::detect_type(), Slic3r::GUI::Sidebar::edit_mixed_filament(), Slic3r::GUI::ensure_belt_purge_tower(), Slic3r::ensure_process_variant_columns(), Slic3r::execute_capabilities_from_refs(), Slic3r::PresetBundle::export_selections(), Slic3r::GUI::find_existing_decompose_component(), Slic3r::find_fixed_mixed_filament(), Slic3r::GUI::Plater::force_filament_colors_update(), Slic3r::PresetBundle::full_fff_config(), get_at(), Slic3r::get_bed_excluded_regions_by_extruder(), Slic3r::get_bed_shape(), Slic3r::GUI::ConfigOptionsGroup::get_config_value(), Slic3r::GUI::ConfigOptionsGroup::get_config_value2(), Slic3r::get_extruder_supported_nozzle_volume_types(), Slic3r::GUI::Plater::get_filament_gradient_ramps(), Slic3r::Print::get_filament_unprintable_flow(), Slic3r::DynamicPrintConfig::get_index_for_extruder(), Slic3r::GUI::PartPlate::get_plate_wrapping_detection_area(), Slic3r::GUI::get_string_value(), Slic3r::GUI::PresetComboBox::get_tooltip(), Slic3r::anonymous_namespace{IMEXHelpers.cpp}::imex_mode_at(), Slic3r::GUI::CrealityPrintHostSendDialog::init(), Slic3r::GUI::ObjectTablePanel::init_filaments_and_colors(), Slic3r::GUI::MainFrame::init_tabpanel(), Slic3r::is_compatible_with_parent_printer(), Slic3r::is_compatible_with_print(), Slic3r::is_compatible_with_printer(), legacy_bed_exclude_area_points(), Slic3r::PresetBundle::load_config_file_config(), Slic3r::GUI::Plater::priv::load_files(), Slic3r::GUI::mixed_gradient_ramp(), Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::mixed_slot_signature(), Slic3r::PresetBundle::num_physical_filaments(), operator==(), Slic3r::Print::output_filename(), Slic3r::GUI::anonymous_namespace{Plater.cpp}::parse_mixed_gradient_slots(), Slic3r::GUI::ArrangeJob::prepare_belt_regions(), Slic3r::GUI::CalibUtils::process_and_store_3mf(), Slic3r::ImexArrangeInput::read_config(), Slic3r::GUI::recompute_mixed_slot_colors(), Slic3r::refresh_missing_plugins(), Slic3r::refresh_missing_plugins(), Slic3r::GUI::GLCanvas3D::reload_scene(), Slic3r::GUI::GCodeViewer::render_markers(), Slic3r::GUI::IMEXModesCtrl::reset_row_to_parent(), resize(), Slic3r::GUI::IMEXModesCtrl::row_differs_from_parent(), Slic3r::GUI::IMEXModesCtrl::row_has_parent_counterpart(), Slic3r::CLI::run(), Slic3r::run_post_process_scripts(), Slic3r::GUI::Plater::priv::run_textured_mesh_import_dialog(), Slic3r::GUI::Tab::save_preset(), Slic3r::GUI::sCheckFilamentInfo(), Slic3r::GUI::Tab::select_preset(), anonymous_namespace{OrcaSlicer_profile_validator.cpp}::select_printer_default_presets(), set(), Slic3r::GUI::Plater::set_bed_shape(), Slic3r::GUI::TabFilament::set_custom_gcode(), Slic3r::ConfigBase::set_deserialize_raw(), Slic3r::PresetBundle::set_num_filaments(), set_to_index(), Slic3r::GUI::PointCtrl::set_value(), set_with_nil(), Slic3r::GUI::Sidebar::sync_ams_list(), Slic3r::PresetBundle::sync_ams_list(), Slic3r::GUI::PlaterPresetComboBox::sync_colour_config(), Slic3r::GUI::sync_loaded_project_filament_config(), Slic3r::GUI::PresetComboBox::update_ams_color(), Slic3r::GLVolumeCollection::update_colors_by_extruder(), Slic3r::GUI::Plater::update_filament_colors_in_full_config(), Slic3r::MachineObject::update_filament_list(), Slic3r::PresetBundle::update_filament_multi_color(), Slic3r::GUI::Sidebar::update_mixed_filament_list(), Slic3r::PresetBundle::update_num_filaments(), Slic3r::GUI::DiffPresetDialog::update_tree(), Slic3r::DynamicPrintConfig::update_values_from_multi_to_multi(), Slic3r::DynamicPrintConfig::update_values_from_single_to_multi(), and Slic3r::client::MyContext::vector_element_to_expr().


The documentation for this class was generated from the following file:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/Config.hpp