OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
PrintConfig.hpp File Reference
#include "Point.hpp"
#include "libslic3r.h"
#include "CommonDefs.hpp"
#include "Config.hpp"
#include "Polygon.hpp"
#include <boost/container_hash/hash.hpp>
#include <algorithm>
#include <boost/preprocessor/facilities/empty.hpp>
#include <boost/preprocessor/punctuation/comma_if.hpp>
#include <boost/preprocessor/seq/for_each.hpp>
#include <boost/preprocessor/seq/for_each_i.hpp>
#include <boost/preprocessor/stringize.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <set>
#include <unordered_map>
#include <string>
#include <vector>
#include <map>
#include <utility>
#include <cstddef>
#include <cassert>
#include <cstdint>
#include <cereal/access.hpp>
#include <cmath>
#include <cereal/specialize.hpp>
#include <stdexcept>
Include dependency graph for PrintConfig.hpp:

Go to the source code of this file.

Classes

class  Slic3r::PrintConfigDef
struct  Slic3r::FilamentVariantUse
class  Slic3r::DynamicPrintConfig
class  Slic3r::StaticPrintConfig
class  Slic3r::StaticPrintConfig::StaticCacheBase
class  Slic3r::StaticPrintConfig::StaticCache< T >
class  Slic3r::CLITransformConfigDef
class  Slic3r::CLIMiscConfigDef
class  Slic3r::ReadOnlySlicingStatesConfigDef
class  Slic3r::ReadWriteSlicingStatesConfigDef
class  Slic3r::OtherSlicingStatesConfigDef
class  Slic3r::PrintStatisticsConfigDef
class  Slic3r::ObjectsInfoConfigDef
class  Slic3r::DimensionsConfigDef
class  Slic3r::TemperaturesConfigDef
class  Slic3r::TimestampsConfigDef
class  Slic3r::OtherPresetsConfigDef
class  Slic3r::CustomGcodeSpecificConfigDef
class  Slic3r::DynamicPrintAndCLIConfig
class  Slic3r::DynamicPrintAndCLIConfig::PrintAndCLIConfigDef
struct  Slic3r::BedExcludeRegion
class  Slic3r::ModelConfig
struct  cereal::specialize< Archive, Slic3r::DynamicPrintConfig, cereal::specialization::non_member_load_save >

Namespaces

namespace  Slic3r
 |/ Copyright (c) Prusa Research 2020 - 2023 Enrico Turri @enricoturri1966 |/ |/ PrusaSlicer is released under the terms of the AGPLv3 or higher |/
namespace  cereal
 External Cereal serialization of ExPolygons.

Macros

#define CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(NAME)
#define STATIC_PRINT_CONFIG_CACHE_BASE(CLASS_NAME)
#define STATIC_PRINT_CONFIG_CACHE(CLASS_NAME)
#define STATIC_PRINT_CONFIG_CACHE_DERIVED(CLASS_NAME)
#define PRINT_CONFIG_CLASS_ELEMENT_DEFINITION(r, data, elem)
#define PRINT_CONFIG_CLASS_ELEMENT_VISIT(r, data, elem)
#define PRINT_CONFIG_CLASS_ELEMENT_VISIT_SELF(r, data, elem)
#define PRINT_CONFIG_CLASS_COMMON_BODY(CLASS_NAME)
#define PRINT_CONFIG_CLASS_DEFINE(CLASS_NAME, PARAMETER_DEFINITION_SEQ)
#define PRINT_CONFIG_CLASS_DERIVED_CLASS_LIST_ITEM(r, data, i, elem)
#define PRINT_CONFIG_CLASS_DERIVED_CLASS_LIST(CLASSES_PARENTS_TUPLE)
#define PRINT_CONFIG_CLASS_DERIVED_INITIALIZER_ITEM(r, VALUE, i, elem)
#define PRINT_CONFIG_CLASS_DERIVED_INITIALIZER(CLASSES_PARENTS_TUPLE, VALUE)
#define PRINT_CONFIG_CLASS_DERIVED_INITCACHE_ITEM(r, data, elem)
#define PRINT_CONFIG_CLASS_DERIVED_INITCACHE(CLASSES_PARENTS_TUPLE)
#define PRINT_CONFIG_CLASS_DERIVED_HASH(r, data, elem)
#define PRINT_CONFIG_CLASS_DERIVED_EQUAL(r, data, elem)
#define PRINT_CONFIG_CLASS_DERIVED_DEFINE1(CLASS_NAME, CLASSES_PARENTS_TUPLE, PARAMETER_DEFINITION, PARAMETER_VISIT)
#define PRINT_CONFIG_CLASS_DERIVED_DEFINE0(CLASS_NAME, CLASSES_PARENTS_TUPLE)
#define PRINT_CONFIG_CLASS_DERIVED_DEFINE(CLASS_NAME, CLASSES_PARENTS_TUPLE, PARAMETER_DEFINITION_SEQ)

Typedefs

typedef std::string Slic3r::t_custom_gcode_key

Enumerations

enum  Slic3r::GCodeFlavor : unsigned char {
  Slic3r::gcfMarlinLegacy , Slic3r::gcfKlipper , Slic3r::gcfRepRapFirmware , Slic3r::gcfRepetier ,
  Slic3r::gcfMarlinFirmware , Slic3r::gcfRepRapSprinter , Slic3r::gcfTeacup , Slic3r::gcfMakerWare ,
  Slic3r::gcfSailfish , Slic3r::gcfMach3 , Slic3r::gcfMachinekit , Slic3r::gcfSmoothie ,
  Slic3r::gcfNoExtrusion
}
enum  Slic3r::FilamentUsageType { Slic3r::SupportOnly , Slic3r::ModelOnly , Slic3r::Hybrid }
enum class  Slic3r::FuzzySkinType {
  Slic3r::None , Slic3r::External , Slic3r::Hole , Slic3r::All ,
  Slic3r::AllWalls , Slic3r::Disabled_fuzzy
}
enum class  Slic3r::FuzzySkinMode { Slic3r::Displacement , Slic3r::Extrusion , Slic3r::Combined }
enum class  Slic3r::TopSurfaceExpansionDirection { Slic3r::InwardAndOutward , Slic3r::Inward , Slic3r::Outward }
enum class  Slic3r::CenterOfSurfacePattern { Slic3r::Each_Surface , Slic3r::Each_Model , Slic3r::Each_Assembly }
enum class  Slic3r::NoiseType {
  Slic3r::Classic , Slic3r::Perlin , Slic3r::Billow , Slic3r::RidgedMulti ,
  Slic3r::Voronoi , Slic3r::Ripple
}
enum class  Slic3r::WipeTowerType { Slic3r::Type1 , Slic3r::Type2 }
enum  Slic3r::PrintHostType {
  Slic3r::htPrusaLink , Slic3r::htPrusaConnect , Slic3r::htOctoPrint , Slic3r::htDuet ,
  Slic3r::htUltiMaker , Slic3r::htFlashAir , Slic3r::htAstroBox , Slic3r::htRepetier ,
  Slic3r::htMKS , Slic3r::htESP3D , Slic3r::htCrealityPrint , Slic3r::htObico ,
  Slic3r::htFlashforge , Slic3r::htSimplyPrint , Slic3r::htElegooLink , Slic3r::ht3DPrinterOS ,
  Slic3r::htMoonraker
}
enum  Slic3r::AuthorizationType { Slic3r::atKeyPassword , Slic3r::atUserPassword }
enum  Slic3r::InfillPattern : int {
  Slic3r::ipMonotonic , Slic3r::ipMonotonicLine , Slic3r::ipRectilinear , Slic3r::ipAlignedRectilinear ,
  Slic3r::ipZigZag , Slic3r::ipCrossZag , Slic3r::ipLockedZag , Slic3r::ipLine ,
  Slic3r::ipGrid , Slic3r::ipTriangles , Slic3r::ipStars , Slic3r::ipCubic ,
  Slic3r::ipAdaptiveCubic , Slic3r::ipQuarterCubic , Slic3r::ipSupportCubic , Slic3r::ipLightning ,
  Slic3r::ipHoneycomb , Slic3r::ip3DHoneycomb , Slic3r::ipLateralHoneycomb , Slic3r::ipLateralLattice ,
  Slic3r::ipCrossHatch , Slic3r::ipTpmsD , Slic3r::ipTpmsFK , Slic3r::ipGyroid ,
  Slic3r::ipConcentric , Slic3r::ipSpiralInset , Slic3r::ipHilbertCurve , Slic3r::ipArchimedeanChords ,
  Slic3r::ipOctagramSpiral , Slic3r::ipSupportBase , Slic3r::ipConcentricInternal , Slic3r::ipCount
}
enum class  Slic3r::IroningType {
  Slic3r::NoIroning , Slic3r::TopSurfaces , Slic3r::TopmostOnly , Slic3r::AllSolid ,
  Slic3r::Count
}
enum class  Slic3r::WallInfillOrder {
  Slic3r::InnerOuterInfill , Slic3r::OuterInnerInfill , Slic3r::InfillInnerOuter , Slic3r::InfillOuterInner ,
  Slic3r::InnerOuterInnerInfill , Slic3r::Count
}
enum class  Slic3r::BedTempFormula { Slic3r::btfFirstFilament , Slic3r::btfHighestTemp , Slic3r::count }
enum class  Slic3r::PowerLossRecoveryMode { Slic3r::PrinterConfiguration , Slic3r::Enable , Slic3r::Disable }
enum class  Slic3r::ArcFittingMode { Slic3r::Disabled , Slic3r::Enabled , Slic3r::SparseInfill }
enum class  Slic3r::WallSequence { Slic3r::InnerOuter , Slic3r::OuterInner , Slic3r::InnerOuterInner , Slic3r::Count }
enum class  Slic3r::WallDirection { Slic3r::CounterClockwise , Slic3r::Clockwise , Slic3r::Count }
enum class  Slic3r::ImexToolLayout {
  Slic3r::FrontLeft , Slic3r::FrontRight , Slic3r::RearLeft , Slic3r::RearRight ,
  Slic3r::Count
}
enum class  Slic3r::ImexVizTheme {
  Slic3r::Standard , Slic3r::Deuteranopia , Slic3r::Tritanopia , Slic3r::HighContrast ,
  Slic3r::Count
}
enum class  Slic3r::SurfaceFillOrder { Slic3r::Default , Slic3r::Outward , Slic3r::Inward , Slic3r::Count }
enum class  Slic3r::AdaptiveInfillMode {
  Slic3r::Disabled , Slic3r::DistanceWarp , Slic3r::SmoothBlend , Slic3r::SteppedShells ,
  Slic3r::Lobes , Slic3r::NormalZ , Slic3r::NormalY , Slic3r::NormalX ,
  Slic3r::Count
}
enum class  Slic3r::AdaptiveInfillGradient { Slic3r::Linear , Slic3r::Quadratic , Slic3r::Exponential }
enum class  Slic3r::PrintSequence { Slic3r::ByLayer , Slic3r::ByObject , Slic3r::ByDefault , Slic3r::Count }
enum class  Slic3r::PrintOrder {
  Slic3r::Default , Slic3r::AsObjectList , Slic3r::BestOfStrategies , Slic3r::Snake ,
  Slic3r::Count
}
enum class  Slic3r::SlicingMode { Slic3r::Regular , Slic3r::EvenOdd , Slic3r::CloseHoles }
enum class  Slic3r::BeltRotationAxis { Slic3r::None = 0 , Slic3r::X = 1 , Slic3r::Y = 2 , Slic3r::Z = 3 }
enum class  Slic3r::RemapAxis {
  Slic3r::PosX = 0 , Slic3r::PosY = 1 , Slic3r::PosZ = 2 , Slic3r::NegX = 3 ,
  Slic3r::NegY = 4 , Slic3r::NegZ = 5 , Slic3r::RevX = 6 , Slic3r::RevY = 7 ,
  Slic3r::RevZ = 8
}
enum  Slic3r::SupportMaterialPattern {
  Slic3r::smpDefault , Slic3r::smpRectilinear , Slic3r::smpRectilinearGrid , Slic3r::smpHoneycomb ,
  Slic3r::smpLightning , Slic3r::smpNone
}
enum  Slic3r::SupportMaterialStyle {
  Slic3r::smsDefault , Slic3r::smsGrid , Slic3r::smsSnug , Slic3r::smsTreeOrganic ,
  Slic3r::smsTreeSlim , Slic3r::smsTreeStrong , Slic3r::smsTreeHybrid
}
enum  Slic3r::LongRectrationLevel { Slic3r::Disabled =0 , Slic3r::EnableMachine , Slic3r::EnableFilament }
enum  Slic3r::SupportMaterialInterfacePattern {
  Slic3r::smipAuto , Slic3r::smipRectilinear , Slic3r::smipConcentric , Slic3r::smipSpiralInset ,
  Slic3r::smipRectilinearInterlaced , Slic3r::smipGrid
}
enum  Slic3r::SupportType { Slic3r::stNormalAuto , Slic3r::stTreeAuto , Slic3r::stNormal , Slic3r::stTree }
enum  Slic3r::SeamPosition {
  Slic3r::spNearest , Slic3r::spAligned , Slic3r::spAlignedBack , Slic3r::spRear ,
  Slic3r::spRandom
}
enum class  Slic3r::SeamScarfType { Slic3r::None , Slic3r::External , Slic3r::All }
enum  Slic3r::EnsureVerticalShellThickness { Slic3r::evstNone , Slic3r::evstCriticalOnly , Slic3r::evstModerate , Slic3r::evstAll }
enum  Slic3r::InternalBridgeFilter { Slic3r::ibfDisabled , Slic3r::ibfLimited , Slic3r::ibfNofilter }
enum  Slic3r::EnableExtraBridgeLayer { Slic3r::eblDisabled , Slic3r::eblExternalBridgeOnly , Slic3r::eblInternalBridgeOnly , Slic3r::eblApplyToAll }
enum  Slic3r::GapFillTarget { Slic3r::gftEverywhere , Slic3r::gftTopBottom , Slic3r::gftNowhere }
enum  Slic3r::LiftType { Slic3r::NormalLift , Slic3r::SpiralLift , Slic3r::SlopeLift }
enum  Slic3r::SLAMaterial {
  Slic3r::slamTough , Slic3r::slamFlex , Slic3r::slamCasting , Slic3r::slamDental ,
  Slic3r::slamHeatResistant
}
enum  Slic3r::SLADisplayOrientation { Slic3r::sladoLandscape , Slic3r::sladoPortrait }
enum  Slic3r::SLAPillarConnectionMode { Slic3r::slapcmZigZag , Slic3r::slapcmCross , Slic3r::slapcmDynamic }
enum  Slic3r::BrimType {
  Slic3r::btAutoBrim , Slic3r::btEar , Slic3r::btPainted , Slic3r::btOuterOnly ,
  Slic3r::btInnerOnly , Slic3r::btOuterAndInner , Slic3r::btNoBrim , Slic3r::btLeadingEdgeOnly
}
enum  Slic3r::TimelapseType : int { Slic3r::tlTraditional = 0 , Slic3r::tlSmooth }
enum  Slic3r::SkirtType { Slic3r::stCombined , Slic3r::stPerObject }
enum  Slic3r::DraftShield { Slic3r::dsDisabled , Slic3r::dsEnabled }
enum class  Slic3r::PerimeterGeneratorType { Slic3r::Classic , Slic3r::Arachne }
enum class  Slic3r::ToolChangeOrderingType { Slic3r::Default , Slic3r::Cyclic }
enum  Slic3r::OverhangFanThreshold {
  Slic3r::Overhang_threshold_none = 0 , Slic3r::Overhang_threshold_1_4 , Slic3r::Overhang_threshold_2_4 , Slic3r::Overhang_threshold_3_4 ,
  Slic3r::Overhang_threshold_4_4 , Slic3r::Overhang_threshold_bridge
}
enum  Slic3r::BedType {
  Slic3r::btDefault = 0 , Slic3r::btPC , Slic3r::btEP , Slic3r::btPEI ,
  Slic3r::btPTE , Slic3r::btPCT , Slic3r::btSuperTack , Slic3r::btCount
}
enum class  Slic3r::ExtruderOnlyAreaType : unsigned char { Slic3r::btNoArea = 0 , Slic3r::Engilish , Slic3r::Chinese , Slic3r::btAreaCount }
enum  Slic3r::LayerSeq { Slic3r::flsAuto , Slic3r::flsCustomize }
enum  Slic3r::FanDirection { Slic3r::fdUndefine = 0 , Slic3r::fdLeft , Slic3r::fdRight , Slic3r::fdBoth }
enum  Slic3r::PrinterStructure {
  Slic3r::psUndefine =0 , Slic3r::psCoreXY , Slic3r::psI3 , Slic3r::psHbot ,
  Slic3r::psDelta
}
enum class  Slic3r::InputShaperType : unsigned char {
  Slic3r::Default = 0 , Slic3r::MZV , Slic3r::ZV , Slic3r::ZVD ,
  Slic3r::ZVDD , Slic3r::ZVDDD , Slic3r::EI , Slic3r::EI2 ,
  Slic3r::TwoHumpEI , Slic3r::EI3 , Slic3r::ThreeHumpEI , Slic3r::DAA ,
  Slic3r::Disable
}
enum  Slic3r::ZHopType {
  Slic3r::zhtAuto = 0 , Slic3r::zhtNormal , Slic3r::zhtSlope , Slic3r::zhtSpiral ,
  Slic3r::zhtCount
}
enum  Slic3r::RetractLiftEnforceType { Slic3r::rletAllSurfaces = 0 , Slic3r::rletTopOnly , Slic3r::rletBottomOnly , Slic3r::rletTopAndBottom }
enum class  Slic3r::GCodeThumbnailsFormat {
  Slic3r::PNG , Slic3r::JPG , Slic3r::QOI , Slic3r::BTT_TFT ,
  Slic3r::ColPic
}
enum  Slic3r::CounterboreHoleBridgingOption { Slic3r::chbNone , Slic3r::chbBridges , Slic3r::chbFilled }
enum  Slic3r::WipeTowerWallType { Slic3r::wtwRectangle = 0 , Slic3r::wtwCone , Slic3r::wtwRib }
enum  Slic3r::ExtruderType { Slic3r::etDirectDrive = 0 , Slic3r::etBowden , Slic3r::etMaxExtruderType = etBowden }
enum  Slic3r::NozzleVolumeType {
  Slic3r::nvtStandard = 0 , Slic3r::nvtHighFlow , Slic3r::nvtHybrid , Slic3r::nvtTPUHighFlow ,
  Slic3r::nvtE3DHighFlow = 5 , Slic3r::nvtExtraHighFlow = 6 , Slic3r::nvtMaxNozzleVolumeType = nvtExtraHighFlow
}
enum  Slic3r::FilamentMapMode {
  Slic3r::fmmAutoForFlush , Slic3r::fmmAutoForMatch , Slic3r::fmmManual , Slic3r::fmmNozzleManual ,
  Slic3r::fmmDefault
}
enum class  Slic3r::BedExcludeVolumeMode { Slic3r::Shared = 0 , Slic3r::ToolheadOffset , Slic3r::PerExtruder }
enum  Slic3r::PrimeVolumeMode { Slic3r::pvmDefault = 0 , Slic3r::pvmSaving , Slic3r::pvmFast }

Functions

bool Slic3r::is_separable_infill_pattern (InfillPattern pattern)
bool Slic3r::is_octree_infill_pattern (InfillPattern pattern)
bool Slic3r::is_adaptive_infill_pattern (InfillPattern pattern)
bool Slic3r::is_smoothable_infill_pattern (InfillPattern pattern, int multiline=1)
bool Slic3r::is_tree (SupportType stype)
bool Slic3r::is_tree_slim (SupportType type, SupportMaterialStyle style)
bool Slic3r::is_auto (SupportType stype)
bool Slic3r::is_auto_filament_map_mode (FilamentMapMode mode)
std::string Slic3r::get_extruder_variant_string (ExtruderType extruder_type, NozzleVolumeType nozzle_volume_type)
int Slic3r::find_variant_index (const std::string &variant, int variant_id_1based, const std::vector< std::string > &variant_list, const std::vector< int > &variant_ids_1based)
std::vector< int > Slic3r::map_variant_indices (const std::vector< std::string > &variants, const std::vector< int > &ids, const std::vector< std::string > &from_variants, const std::vector< int > &from_ids)
int Slic3r::get_config_index_base (NozzleVolumeType volume_type, ExtruderType extruder_type, int variant_id_1based, const std::vector< std::string > &variant_list, const std::vector< int > &variant_ids_1based)
static std::set< NozzleVolumeType > Slic3r::get_valid_nozzle_volume_type ()
std::set< NozzleVolumeType > Slic3r::get_extruder_supported_nozzle_volume_types (const DynamicPrintConfig &printer_config, int extruder_id)
std::string Slic3r::get_nozzle_volume_type_string (NozzleVolumeType nozzle_volume_type)
static std::string Slic3r::bed_type_to_gcode_string (const BedType type)
static std::string Slic3r::get_bed_temp_key (const BedType type)
static std::string Slic3r::get_bed_temp_1st_layer_key (const BedType type)
bool Slic3r::is_filament_extruder_override_key (const std::string &opt_key)
std::vector< std::map< int, int > > Slic3r::get_extruder_ams_count (const std::vector< std::string > &strs)
std::vector< std::string > Slic3r::save_extruder_ams_count_to_string (const std::vector< std::map< int, int > > &extruder_ams_count)
NozzleVolumeType Slic3r::convert_to_nvt_type (const std::string &variant_str)
std::vector< std::map< NozzleVolumeType, int > > Slic3r::get_extruder_nozzle_stats (const std::vector< std::string > &strs)
std::vector< std::string > Slic3r::save_extruder_nozzle_stats_to_string (const std::vector< std::map< NozzleVolumeType, int > > &extruder_nozzle_stats)
double Slic3r::min_object_distance (const ConfigBase &cfg)
template<bool NULLABLE>
bool Slic3r::any_enabled (const ConfigOptionBoolsTempl< NULLABLE > &option)
void Slic3r::set_variant_override (ConfigOptionVectorBase &target, const ConfigOptionVectorBase &source, const std::vector< int > &variant_index, int stride)
void Slic3r::normalize_filament_values_to_variants (DynamicPrintConfig &config)
void Slic3r::set_filament_dev_options (DynamicPrintConfig &config, const std::vector< const DynamicPrintConfig * > &filament_configs)
void Slic3r::resize_mixed_filament_metadata (DynamicPrintConfig &config, size_t old_slot_count, size_t new_slot_count)
void Slic3r::update_static_print_config_from_dynamic (ConfigBase &config, const DynamicPrintConfig &dest_config, std::vector< int > variant_index, std::set< std::string > &key_set1, int stride)
void Slic3r::compute_filament_override_value (const std::string &opt_key, const ConfigOption *opt_old_machine, const ConfigOption *opt_new_machine, const ConfigOption *opt_new_filament, const DynamicPrintConfig &new_full_config, t_config_option_keys &diff_keys, DynamicPrintConfig &filament_overrides, std::vector< int > &f_map_indices)
void Slic3r::handle_legacy_sla (DynamicPrintConfig &config)
 Slic3r::PRINT_CONFIG_CLASS_DEFINE (PrintObjectConfig,((ConfigOptionFloat, brim_object_gap))((ConfigOptionFloat, brim_flow_ratio))((ConfigOptionBool, brim_use_efc_outline))((ConfigOptionEnum< BrimType >, brim_type))((ConfigOptionFloat, brim_width))((ConfigOptionFloat, leading_brim_length))((ConfigOptionFloat, extra_brim_width))((ConfigOptionFloat, brim_ears_detection_length))((ConfigOptionFloat, brim_ears_max_angle))((ConfigOptionBool, brim_ears_outer_only))((ConfigOptionFloat, skirt_start_angle))((ConfigOptionBool, bridge_no_support))((ConfigOptionFloat, elefant_foot_compensation))((ConfigOptionInt, elefant_foot_compensation_layers))((ConfigOptionPercent, elefant_foot_layers_density))((ConfigOptionFloat, max_bridge_length))((ConfigOptionFloatOrPercent, line_width))((ConfigOptionBool, interface_shells))((ConfigOptionFloat, layer_height))((ConfigOptionFloat, mmu_segmented_region_max_width))((ConfigOptionFloat, mmu_segmented_region_interlocking_depth))((ConfigOptionFloat, raft_contact_distance))((ConfigOptionFloat, raft_expansion))((ConfigOptionPercent, raft_first_layer_density))((ConfigOptionFloat, raft_first_layer_expansion))((ConfigOptionInt, raft_layers))((ConfigOptionEnum< SeamPosition >, seam_position))((ConfigOptionBool, staggered_inner_seams))((ConfigOptionFloat, slice_closing_radius))((ConfigOptionEnum< SlicingMode >, slicing_mode))((ConfigOptionBool, enable_support))((ConfigOptionEnum< SupportType >, support_type))((ConfigOptionFloat, support_angle))((ConfigOptionBool, support_on_build_plate_only))((ConfigOptionBool, support_critical_regions_only))((ConfigOptionBool, support_remove_small_overhang))((ConfigOptionFloat, support_top_z_distance))((ConfigOptionFloat, support_bottom_z_distance))((ConfigOptionInt, enforce_support_layers))((ConfigOptionInt, support_filament))((ConfigOptionFloatOrPercent, support_line_width))((ConfigOptionBool, support_interface_not_for_body))((ConfigOptionBool, support_interface_loop_pattern))((ConfigOptionInt, support_interface_filament))((ConfigOptionInt, support_interface_top_layers))((ConfigOptionInt, support_interface_bottom_layers))((ConfigOptionFloat, support_interface_spacing))((ConfigOptionFloatsNullable, support_interface_speed))((ConfigOptionEnum< SupportMaterialPattern >, support_base_pattern))((ConfigOptionEnum< SupportMaterialInterfacePattern >, support_interface_pattern))((ConfigOptionFloat, support_base_pattern_spacing))((ConfigOptionFloat, support_expansion))((ConfigOptionFloatsNullable, support_speed))((ConfigOptionEnum< SupportMaterialStyle >, support_style))((ConfigOptionBool, set_other_flow_ratios))((ConfigOptionFloat, support_flow_ratio))((ConfigOptionFloat, support_interface_flow_ratio))((ConfigOptionBool, thick_bridges))((ConfigOptionBool, thick_internal_bridges))((ConfigOptionEnum< InternalBridgeFilter >, dont_filter_internal_bridges))((ConfigOptionEnum< EnableExtraBridgeLayer >, enable_extra_bridge_layer))((ConfigOptionPercent, internal_bridge_density))((ConfigOptionInt, support_threshold_angle))((ConfigOptionFloatOrPercent, support_threshold_overlap))((ConfigOptionFloat, support_object_xy_distance))((ConfigOptionFloat, support_object_first_layer_gap))((ConfigOptionBool, support_ironing))((ConfigOptionEnum< InfillPattern >, support_ironing_pattern))((ConfigOptionPercent, support_ironing_flow))((ConfigOptionFloat, support_ironing_spacing))((ConfigOptionFloat, xy_hole_compensation))((ConfigOptionFloat, xy_contour_compensation))((ConfigOptionBool, flush_into_objects))((ConfigOptionBool, flush_into_infill))((ConfigOptionBool, flush_into_support))((ConfigOptionBool, belt_purge_tower_object))((ConfigOptionFloat, tree_support_branch_distance))((ConfigOptionFloat, tree_support_tip_diameter))((ConfigOptionFloat, tree_support_branch_diameter))((ConfigOptionFloat, tree_support_branch_angle))((ConfigOptionFloat, tree_support_branch_diameter_angle))((ConfigOptionFloat, tree_support_angle_slow))((ConfigOptionInt, tree_support_wall_count))((ConfigOptionBool, tree_support_auto_brim))((ConfigOptionFloat, tree_support_brim_width))((ConfigOptionBool, detect_narrow_internal_solid_infill))((ConfigOptionFloat, support_bottom_interface_spacing))((ConfigOptionEnum< PerimeterGeneratorType >, wall_generator))((ConfigOptionPercent, wall_transition_length))((ConfigOptionPercent, wall_transition_filter_deviation))((ConfigOptionFloat, wall_transition_angle))((ConfigOptionInt, wall_distribution_count))((ConfigOptionPercent, min_feature_size))((ConfigOptionPercent, initial_layer_min_bead_width))((ConfigOptionPercent, min_bead_width))((ConfigOptionFloat, wall_maximum_resolution))((ConfigOptionFloat, wall_maximum_deviation))((ConfigOptionFloat, make_overhang_printable_angle))((ConfigOptionFloat, make_overhang_printable_hole_size))((ConfigOptionFloat, tree_support_branch_distance_organic))((ConfigOptionPercent, tree_support_top_rate))((ConfigOptionFloat, tree_support_branch_diameter_organic))((ConfigOptionFloat, tree_support_branch_angle_organic))((ConfigOptionEnum< GapFillTarget >, gap_fill_target))((ConfigOptionFloat, min_length_factor))((ConfigOptionFloatsNullable, default_acceleration))((ConfigOptionFloatsNullable, outer_wall_acceleration))((ConfigOptionFloatsNullable, inner_wall_acceleration))((ConfigOptionFloatsNullable, top_surface_acceleration))((ConfigOptionFloatsNullable, initial_layer_acceleration))((ConfigOptionFloatsOrPercentsNullable, bridge_acceleration))((ConfigOptionFloatsNullable, travel_acceleration))((ConfigOptionFloatsOrPercentsNullable, sparse_infill_acceleration))((ConfigOptionFloatsOrPercentsNullable, internal_solid_infill_acceleration))((ConfigOptionFloatsNullable, default_jerk))((ConfigOptionFloatsNullable, outer_wall_jerk))((ConfigOptionFloatsNullable, inner_wall_jerk))((ConfigOptionFloatsNullable, infill_jerk))((ConfigOptionFloatsNullable, top_surface_jerk))((ConfigOptionFloatsNullable, initial_layer_jerk))((ConfigOptionFloatsNullable, travel_jerk))((ConfigOptionBool, precise_z_height))((ConfigOptionFloatsNullable, default_junction_deviation))((ConfigOptionBool, interlocking_beam))((ConfigOptionFloat, interlocking_beam_width))((ConfigOptionFloat, interlocking_orientation))((ConfigOptionInt, interlocking_beam_layer_count))((ConfigOptionInt, interlocking_depth))((ConfigOptionInt, interlocking_boundary_avoidance))((ConfigOptionBool, calib_flowrate_topinfill_special_order))((ConfigOptionString, imex_parallel_mode))((ConfigOptionString, imex_head_filament_map))) PRINT_CONFIG_CLASS_DEFINE(PrintRegionConfig
 Slic3r::print_extruder_id ((ConfigOptionStrings, print_extruder_variant))((ConfigOptionInt
 Slic3r::bottom_shell_layers ((ConfigOptionFloat, bottom_shell_thickness))((ConfigOptionInt
 Slic3r::bottom_color_penetration_layers ((ConfigOptionFloat, bridge_angle))((ConfigOptionFloat
 Slic3r::internal_bridge_angle ((ConfigOptionBool, relative_bridge_angle))((ConfigOptionFloat
 Slic3r::bridge_flow ((ConfigOptionFloatOrPercent, bridge_line_width))((ConfigOptionFloat
 Slic3r::internal_bridge_flow ((ConfigOptionFloatsNullable, bridge_speed))((ConfigOptionFloatsOrPercentsNullable
 Slic3r::internal_bridge_speed ((ConfigOptionEnum< EnsureVerticalShellThickness >, ensure_vertical_shell_thickness))((ConfigOptionPercent
 Slic3r::top_surface_density ((ConfigOptionPercent, bottom_surface_density))((ConfigOptionEnum< InfillPattern >
 Slic3r::top_surface_pattern ((ConfigOptionEnum< InfillPattern >, bottom_surface_pattern))((ConfigOptionEnum< SurfaceFillOrder >
 Slic3r::top_surface_fill_order ((ConfigOptionEnum< SurfaceFillOrder >, bottom_surface_fill_order))((ConfigOptionEnum< InfillPattern >
 Slic3r::internal_solid_infill_pattern ((ConfigOptionFloatOrPercent, outer_wall_line_width))((ConfigOptionFloatsNullable
 Slic3r::outer_wall_speed ((ConfigOptionFloat, infill_direction))((ConfigOptionFloat
 Slic3r::solid_infill_direction ((ConfigOptionFloat, top_layer_direction))((ConfigOptionFloat
 Slic3r::bottom_layer_direction ((ConfigOptionString, solid_infill_rotate_template))((ConfigOptionBool
 Slic3r::symmetric_infill_y_axis ((ConfigOptionBool, infill_complete_top))((ConfigOptionFloat
 Slic3r::infill_shift_step ((ConfigOptionString, sparse_infill_rotate_template))((ConfigOptionPercent
 Slic3r::sparse_infill_density ((ConfigOptionEnum< InfillPattern >, sparse_infill_pattern))((ConfigOptionPercent
 Slic3r::sparse_infill_smooth_factor ((ConfigOptionFloat, lateral_lattice_angle_1))((ConfigOptionFloat
 Slic3r::lateral_lattice_angle_2 ((ConfigOptionFloat, infill_overhang_angle))((ConfigOptionFloat
 Slic3r::lightning_overhang_angle ((ConfigOptionFloat, lightning_prune_angle))((ConfigOptionFloat
 Slic3r::lightning_straightening_angle ((ConfigOptionBool, align_infill_direction_to_model))((ConfigOptionEnum< CenterOfSurfacePattern >
 Slic3r::center_of_surface_pattern ((ConfigOptionBool, separated_infills))((ConfigOptionString
 Slic3r::extra_solid_infills ((ConfigOptionEnum< FuzzySkinType >, fuzzy_skin))((ConfigOptionFloat
 Slic3r::fuzzy_skin_thickness ((ConfigOptionFloat, fuzzy_skin_point_distance))((ConfigOptionBool
 Slic3r::fuzzy_skin_first_layer ((ConfigOptionEnum< NoiseType >, fuzzy_skin_noise_type))((ConfigOptionEnum< FuzzySkinMode >
 Slic3r::fuzzy_skin_mode ((ConfigOptionFloat, fuzzy_skin_scale))((ConfigOptionInt
 Slic3r::fuzzy_skin_octaves ((ConfigOptionFloat, fuzzy_skin_persistence))((ConfigOptionInt
 Slic3r::fuzzy_skin_ripples_per_layer ((ConfigOptionPercent, fuzzy_skin_ripple_offset))((ConfigOptionInt
 Slic3r::fuzzy_skin_layers_between_ripple_offset ((ConfigOptionFloatsNullable, gap_infill_speed))((ConfigOptionInt
 Slic3r::sparse_infill_filament_id ((ConfigOptionFloatOrPercent, sparse_infill_line_width))((ConfigOptionPercent
 Slic3r::infill_wall_overlap ((ConfigOptionPercent, top_bottom_infill_wall_overlap))((ConfigOptionFloatsNullable
 Slic3r::sparse_infill_speed ((ConfigOptionPercent, skeleton_infill_density))((ConfigOptionPercent
 Slic3r::skin_infill_density ((ConfigOptionFloat, infill_lock_depth))((ConfigOptionFloat
 Slic3r::skin_infill_depth ((ConfigOptionFloatOrPercent, skin_infill_line_width))((ConfigOptionFloatOrPercent
 Slic3r::skeleton_infill_line_width ((ConfigOptionBool, infill_combination))((ConfigOptionFloatOrPercent
 Slic3r::infill_combination_max_layer_height ((ConfigOptionInt, fill_multiline))((ConfigOptionEnum< AdaptiveInfillMode >
 Slic3r::adaptive_infill_mode ((ConfigOptionPercent, adaptive_infill_interior_density))((ConfigOptionEnum< AdaptiveInfillGradient >
 Slic3r::adaptive_infill_gradient ((ConfigOptionBool, gyroid_optimized))((ConfigOptionEnum< IroningType >
 Slic3r::ironing_type ((ConfigOptionEnum< InfillPattern >, ironing_pattern))((ConfigOptionPercent
 Slic3r::ironing_flow ((ConfigOptionFloat, ironing_spacing))((ConfigOptionFloat
 Slic3r::ironing_inset ((ConfigOptionFloat, ironing_direction))((ConfigOptionFloat
 Slic3r::ironing_speed ((ConfigOptionFloat, ironing_angle))((ConfigOptionBool
 Slic3r::ironing_angle_fixed ((ConfigOptionPercentsNullable, filament_ironing_flow))((ConfigOptionFloatsNullable
 Slic3r::filament_ironing_spacing ((ConfigOptionFloatsNullable, filament_ironing_inset))((ConfigOptionFloatsNullable
 Slic3r::filament_ironing_speed ((ConfigOptionBool, detect_overhang_wall))((ConfigOptionBool
 Slic3r::unsupported_wall_last ((ConfigOptionInt, outer_wall_filament_id))((ConfigOptionInt
 Slic3r::inner_wall_filament_id ((ConfigOptionFloatOrPercent, inner_wall_line_width))((ConfigOptionFloatsNullable
 Slic3r::inner_wall_speed ((ConfigOptionInt, wall_loops))((ConfigOptionBool
 Slic3r::alternate_extra_wall ((ConfigOptionFloat, minimum_sparse_infill_area))((ConfigOptionInt
 Slic3r::internal_solid_filament_id ((ConfigOptionInt, top_surface_filament_id))((ConfigOptionInt
 Slic3r::bottom_surface_filament_id ((ConfigOptionFloatOrPercent, internal_solid_infill_line_width))((ConfigOptionFloatsNullable
 Slic3r::internal_solid_infill_speed ((ConfigOptionBool, detect_thin_wall))((ConfigOptionFloatOrPercent
 Slic3r::top_surface_line_width ((ConfigOptionInt, top_shell_layers))((ConfigOptionFloat
 Slic3r::top_shell_thickness ((ConfigOptionInt, top_color_penetration_layers))((ConfigOptionFloat
 Slic3r::top_surface_expansion ((ConfigOptionFloat, top_surface_expansion_margin))((ConfigOptionEnum< TopSurfaceExpansionDirection >
 Slic3r::top_surface_expansion_direction ((ConfigOptionFloatsNullable, top_surface_speed))((ConfigOptionBoolsNullable
 Slic3r::enable_overhang_speed ((ConfigOptionFloatsOrPercentsNullable, overhang_1_4_speed))((ConfigOptionFloatsOrPercentsNullable
 Slic3r::overhang_2_4_speed ((ConfigOptionFloatsOrPercentsNullable, overhang_3_4_speed))((ConfigOptionFloatsOrPercentsNullable
 Slic3r::overhang_4_4_speed ((ConfigOptionBool, only_one_wall_top))((ConfigOptionFloatOrPercent
 Slic3r::min_width_top_surface ((ConfigOptionBool, only_one_wall_first_layer))((ConfigOptionFloat
 Slic3r::print_flow_ratio ((ConfigOptionFloatOrPercent, seam_gap))((ConfigOptionBool
 Slic3r::role_based_wipe_speed ((ConfigOptionFloatOrPercent, wipe_speed))((ConfigOptionBool
 Slic3r::wipe_on_loops ((ConfigOptionBool, wipe_inward))((ConfigOptionFloatOrPercent
 Slic3r::wipe_inward_distance ((ConfigOptionBool, wipe_before_external_loop))((ConfigOptionEnum< WallInfillOrder >
 Slic3r::wall_infill_order ((ConfigOptionBool, precise_outer_wall))((ConfigOptionPercent
 Slic3r::bridge_density ((ConfigOptionFloat, filter_out_gap_fill))((ConfigOptionFloatsOrPercentsNullable
 Slic3r::small_perimeter_speed ((ConfigOptionFloatsNullable, small_perimeter_threshold))((ConfigOptionFloatsOrPercentsNullable
 Slic3r::small_support_perimeter_speed ((ConfigOptionFloatsNullable, small_support_perimeter_threshold))((ConfigOptionFloatsNullable
 Slic3r::top_solid_infill_flow_ratio ((ConfigOptionFloat, bottom_solid_infill_flow_ratio))((ConfigOptionFloatOrPercent
 Slic3r::infill_anchor ((ConfigOptionFloatOrPercent, infill_anchor_max))((ConfigOptionBool
 Slic3r::make_overhang_printable ((ConfigOptionBool, extra_perimeters_on_overhangs))((ConfigOptionBoolsNullable
 Slic3r::slowdown_for_curled_perimeters ((ConfigOptionBool, hole_to_polyhole))((ConfigOptionFloatOrPercent
 Slic3r::hole_to_polyhole_threshold ((ConfigOptionBool, hole_to_polyhole_twisted))((ConfigOptionInt
 Slic3r::hole_to_polyhole_max_edges ((ConfigOptionBool, overhang_reverse))((ConfigOptionBool
 Slic3r::overhang_reverse_internal_only ((ConfigOptionFloatOrPercent, overhang_reverse_threshold))((ConfigOptionEnum< CounterboreHoleBridgingOption >
 Slic3r::counterbore_hole_bridging ((ConfigOptionEnum< WallSequence >, wall_sequence))((ConfigOptionBool
 Slic3r::is_infill_first ((ConfigOptionBool, small_area_infill_flow_compensation))((ConfigOptionEnum< WallDirection >
 Slic3r::wall_direction ((ConfigOptionFloat, first_layer_flow_ratio))((ConfigOptionFloat
 Slic3r::outer_wall_flow_ratio ((ConfigOptionFloat, inner_wall_flow_ratio))((ConfigOptionFloat
 Slic3r::overhang_flow_ratio ((ConfigOptionFloat, sparse_infill_flow_ratio))((ConfigOptionFloat
 Slic3r::internal_solid_infill_flow_ratio ((ConfigOptionFloat, gap_fill_flow_ratio))((ConfigOptionEnum< SeamScarfType >
 Slic3r::seam_slope_type ((ConfigOptionBool, seam_slope_conditional))((ConfigOptionInt
 Slic3r::scarf_angle_threshold ((ConfigOptionFloatOrPercent, seam_slope_start_height))((ConfigOptionBool
 Slic3r::seam_slope_entire_loop ((ConfigOptionFloat, seam_slope_min_length))((ConfigOptionInt
 Slic3r::seam_slope_steps ((ConfigOptionBool, seam_slope_inner_walls))((ConfigOptionFloatOrPercent
 Slic3r::scarf_joint_speed ((ConfigOptionFloat, scarf_joint_flow_ratio))((ConfigOptionPercent
 Slic3r::scarf_overhang_threshold ((ConfigOptionBool, zaa_enabled))((ConfigOptionBool
 Slic3r::zaa_dont_alternate_fill_direction ((ConfigOptionFloat, zaa_min_z))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::PRINT_CONFIG_CLASS_DEFINE (MachineEnvelopeConfig,((ConfigOptionBool, emit_machine_limits_to_gcode))((ConfigOptionFloats, machine_max_acceleration_x))((ConfigOptionFloats, machine_max_acceleration_y))((ConfigOptionFloats, machine_max_acceleration_z))((ConfigOptionFloats, machine_max_acceleration_e))((ConfigOptionFloats, machine_max_speed_x))((ConfigOptionFloats, machine_max_speed_y))((ConfigOptionFloats, machine_max_speed_z))((ConfigOptionFloats, machine_max_speed_e))((ConfigOptionFloats, machine_max_acceleration_extruding))((ConfigOptionFloats, machine_max_acceleration_retracting))((ConfigOptionFloats, machine_max_acceleration_travel))((ConfigOptionFloats, machine_max_jerk_x))((ConfigOptionFloats, machine_max_jerk_y))((ConfigOptionFloats, machine_max_jerk_z))((ConfigOptionFloats, machine_max_jerk_e))((ConfigOptionFloats, machine_max_junction_deviation))((ConfigOptionFloats, machine_min_travel_rate))((ConfigOptionFloats, machine_min_extruding_rate))((ConfigOptionFloat, machine_max_force_Y))((ConfigOptionFloat, machine_bed_mass_Y))((ConfigOptionFloat, machine_max_printed_mass))((ConfigOptionBool, resonance_avoidance))((ConfigOptionFloat, min_resonance_avoidance_speed))((ConfigOptionFloat, max_resonance_avoidance_speed))((ConfigOptionBool, input_shaping_emit))((ConfigOptionEnum< InputShaperType >, input_shaping_type))((ConfigOptionFloat, input_shaping_freq_x))((ConfigOptionFloat, input_shaping_freq_y))((ConfigOptionFloat, input_shaping_damp_x))((ConfigOptionFloat, input_shaping_damp_y))) PRINT_CONFIG_CLASS_DEFINE(GCodeConfig
zaa_minimize_perimeter_height Slic3r::before_layer_change_gcode ((ConfigOptionString, printing_by_object_gcode))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::deretraction_speed ((ConfigOptionEnum< ArcFittingMode >, enable_arc_fitting))((ConfigOptionString
zaa_minimize_perimeter_height Slic3r::machine_end_gcode ((ConfigOptionStrings, filament_end_gcode))((ConfigOptionFloatsNullable
zaa_minimize_perimeter_height Slic3r::filament_flow_ratio ((ConfigOptionBools, enable_pressure_advance))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::pressure_advance ((ConfigOptionBools, adaptive_pressure_advance))((ConfigOptionBools
zaa_minimize_perimeter_height Slic3r::adaptive_pressure_advance_overhangs ((ConfigOptionStrings, adaptive_pressure_advance_model))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::adaptive_pressure_advance_bridges ((ConfigOptionFloat, fan_kickstart))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::fan_speedup_overhangs ((ConfigOptionFloat, fan_speedup_time))((ConfigOptionInt
zaa_minimize_perimeter_height Slic3r::part_cooling_fan_min_pwm ((ConfigOptionFloats, filament_diameter))((ConfigOptionBoolsNullable
zaa_minimize_perimeter_height Slic3r::filament_adaptive_volumetric_speed ((ConfigOptionStrings, volumetric_speed_coefficients))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::filament_adhesiveness_category ((ConfigOptionFloats, filament_density))((ConfigOptionStrings
zaa_minimize_perimeter_height Slic3r::filament_type ((ConfigOptionBools, filament_soluble))((ConfigOptionStrings
zaa_minimize_perimeter_height Slic3r::filament_ids ((ConfigOptionStrings, filament_colour))((ConfigOptionStrings
zaa_minimize_perimeter_height Slic3r::filament_vendor ((ConfigOptionBools, filament_is_support))((ConfigOptionBools
zaa_minimize_perimeter_height Slic3r::filament_is_mixed ((ConfigOptionStrings, filament_mixed_components))((ConfigOptionStrings
zaa_minimize_perimeter_height Slic3r::filament_mixed_sublayer_ratios ((ConfigOptionBools, filament_mixed_gradient))((ConfigOptionStrings
zaa_minimize_perimeter_height Slic3r::filament_mixed_gradient_range ((ConfigOptionStrings, filament_mixed_gradient_curve))((ConfigOptionBools
zaa_minimize_perimeter_height Slic3r::filament_mixed_gradient_per_part ((ConfigOptionInts, filament_printable))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::filament_extruder_compatibility ((ConfigOptionFloats, filament_change_length))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::filament_cost ((ConfigOptionStrings, default_filament_colour))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::temperature_vitrification ((ConfigOptionFloats, filament_max_volumetric_speed))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::required_nozzle_HRC ((ConfigOptionEnum< FilamentMapMode >, filament_map_mode))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::filament_map ((ConfigOptionInts, filament_volume_map))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::filament_nozzle_map ((ConfigOptionInts, filament_map_2))((ConfigOptionStrings
zaa_minimize_perimeter_height Slic3r::filament_extruder_variant ((ConfigOptionInts, filament_self_index))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::support_object_skip_flush ((ConfigOptionEnum< BedTempFormula >, bed_temperature_formula))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::physical_extruder_map ((ConfigOptionIntsNullable, nozzle_flush_dataset))((ConfigOptionFloatsNullable
zaa_minimize_perimeter_height Slic3r::filament_flush_volumetric_speed ((ConfigOptionIntsNullable, filament_flush_temp))((ConfigOptionIntsNullable
zaa_minimize_perimeter_height Slic3r::filament_flush_temp_fast ((ConfigOptionBool, scan_first_layer))((ConfigOptionEnum< PowerLossRecoveryMode >
zaa_minimize_perimeter_height Slic3r::enable_power_loss_recovery ((ConfigOptionBool, enable_wrapping_detection))((ConfigOptionInt
zaa_minimize_perimeter_height Slic3r::wrapping_detection_layers ((ConfigOptionPoints, wrapping_exclude_area))((ConfigOptionPoints
zaa_minimize_perimeter_height Slic3r::thumbnail_size ((ConfigOptionBool, gcode_add_line_number))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::high_precision_gcode ((ConfigOptionBool, bbl_bed_temperature_gcode))((ConfigOptionEnum< GCodeFlavor >
zaa_minimize_perimeter_height Slic3r::gcode_flavor ((ConfigOptionBool, gcode_skip_config_block))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::time_cost ((ConfigOptionString, layer_change_gcode))((ConfigOptionString
zaa_minimize_perimeter_height Slic3r::time_lapse_gcode ((ConfigOptionString, wrapping_detection_gcode))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::max_volumetric_extrusion_rate_slope ((ConfigOptionFloat, max_volumetric_extrusion_rate_slope_segment_length))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::extrusion_rate_smoothing_external_perimeter_only ((ConfigOptionPercents, retract_before_wipe))((ConfigOptionPercents
zaa_minimize_perimeter_height Slic3r::retract_after_wipe ((ConfigOptionFloats, retraction_length))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::retract_length_toolchange ((ConfigOptionInt, enable_long_retraction_when_cut))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::retraction_distances_when_cut ((ConfigOptionBools, long_retractions_when_cut))((ConfigOptionFloatsNullable
zaa_minimize_perimeter_height Slic3r::retraction_distances_when_ec ((ConfigOptionBoolsNullable, long_retractions_when_ec))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::z_hop ((ConfigOptionEnumsGeneric, z_hop_types))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::travel_slope ((ConfigOptionFloats, retract_lift_above))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::retract_lift_below ((ConfigOptionEnumsGeneric, retract_lift_enforce))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::retract_restart_extra ((ConfigOptionFloats, retract_restart_extra_toolchange))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::retraction_speed ((ConfigOptionString, file_start_gcode))((ConfigOptionString
zaa_minimize_perimeter_height Slic3r::machine_start_gcode ((ConfigOptionStrings, filament_start_gcode))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::single_extruder_multi_material ((ConfigOptionBool, manual_filament_change))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::is_imex ((ConfigOptionBool, imex_firmware_managed_zones))((ConfigOptionInt
zaa_minimize_perimeter_height Slic3r::imex_gantry_count ((ConfigOptionInt, imex_tools_per_gantry))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::imex_nozzle_clearance_x ((ConfigOptionFloat, imex_nozzle_clearance_y))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::imex_carriage_margin ((ConfigOptionEnum< ImexToolLayout >, imex_tool_layout))((ConfigOptionEnum< ImexVizTheme >
zaa_minimize_perimeter_height Slic3r::imex_viz_theme ((ConfigOptionStrings, imex_mode_names))((ConfigOptionStrings
zaa_minimize_perimeter_height Slic3r::imex_mode_active_tools ((ConfigOptionStrings, imex_mode_gcodes))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::single_extruder_multi_material_priming ((ConfigOptionEnum< ToolChangeOrderingType >, toolchange_ordering))((ConfigOptionString
zaa_minimize_perimeter_height Slic3r::toolchange_cyclic_order ((ConfigOptionBool, toolchange_cyclic_first_layer))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::wipe_tower_no_sparse_layers ((ConfigOptionBool, wipe_tower_sparse_layers_combination))((ConfigOptionString
zaa_minimize_perimeter_height Slic3r::change_filament_gcode ((ConfigOptionString, change_extrusion_role_gcode))((ConfigOptionString
zaa_minimize_perimeter_height Slic3r::process_change_extrusion_role_gcode ((ConfigOptionStrings, filament_change_extrusion_role_gcode))((ConfigOptionFloatsNullable
zaa_minimize_perimeter_height Slic3r::travel_speed ((ConfigOptionFloatsNullable, travel_speed_z))((ConfigOptionString
zaa_minimize_perimeter_height Slic3r::machine_pause_gcode ((ConfigOptionString, template_custom_gcode))((ConfigOptionEnumsGenericNullable
zaa_minimize_perimeter_height Slic3r::nozzle_type ((ConfigOptionInt, nozzle_hrc))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::auxiliary_fan ((ConfigOptionEnum< FanDirection >, fan_direction))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::support_air_filtration ((ConfigOptionBool, support_cooling_filter))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::cooling_filter_enabled ((ConfigOptionEnum< PrinterStructure >, printer_structure))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::support_chamber_temp_control ((ConfigOptionEnumsGeneric, extruder_type))((ConfigOptionEnumsGeneric
zaa_minimize_perimeter_height Slic3r::nozzle_volume_type ((ConfigOptionStrings, extruder_ams_count))((ConfigOptionStrings
zaa_minimize_perimeter_height Slic3r::extruder_nozzle_stats ((ConfigOptionInts, printer_extruder_id))((ConfigOptionInt
zaa_minimize_perimeter_height Slic3r::master_extruder_id ((ConfigOptionStrings, printer_extruder_variant))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::use_firmware_retraction ((ConfigOptionBool, use_relative_e_distances))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::accel_to_decel_enable ((ConfigOptionPercent, accel_to_decel_factor))((ConfigOptionFloatsOrPercentsNullable
zaa_minimize_perimeter_height Slic3r::initial_layer_travel_speed ((ConfigOptionFloatsOrPercentsNullable, initial_layer_travel_acceleration))((ConfigOptionFloatsOrPercentsNullable
zaa_minimize_perimeter_height Slic3r::initial_layer_travel_jerk ((ConfigOptionBool, bbl_calib_mark_logo))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::disable_m73 ((ConfigOptionFloat, cooling_tube_retraction))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::cooling_tube_length ((ConfigOptionBool, high_current_on_filament_swap))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::parking_pos_retraction ((ConfigOptionFloat, extra_loading_move))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::machine_load_filament_time ((ConfigOptionFloat, machine_tool_change_time))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::machine_unload_filament_time ((ConfigOptionFloats, filament_loading_speed))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::filament_loading_speed_start ((ConfigOptionFloats, filament_unloading_speed))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::filament_unloading_speed_start ((ConfigOptionFloats, filament_toolchange_delay))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::filament_cooling_moves ((ConfigOptionFloats, filament_cooling_initial_speed))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::filament_minimal_purge_on_wipe_tower ((ConfigOptionFloatsNullable, filament_cooling_before_tower))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::filament_tower_interface_pre_extrusion_dist ((ConfigOptionFloats, filament_tower_interface_pre_extrusion_length))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::filament_tower_ironing_area ((ConfigOptionFloats, filament_tower_interface_purge_volume))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::filament_tower_interface_print_temp ((ConfigOptionFloats, filament_cooling_final_speed))((ConfigOptionStrings
zaa_minimize_perimeter_height Slic3r::filament_ramming_parameters ((ConfigOptionBools, filament_multitool_ramming))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::filament_multitool_ramming_volume ((ConfigOptionFloats, filament_multitool_ramming_flow))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::filament_stamping_loading_speed ((ConfigOptionFloats, filament_stamping_distance))((ConfigOptionEnum< WipeTowerType >
zaa_minimize_perimeter_height Slic3r::wipe_tower_type ((ConfigOptionBool, purge_in_prime_tower))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::enable_filament_ramming ((ConfigOptionBool, tool_change_on_wipe_tower))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::wait_for_temp_on_wipe_tower ((ConfigOptionBool, support_multi_bed_types))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::use_3mf ((ConfigOptionStrings, small_area_infill_flow_compensation_model))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::has_scarf_joint_seam ((ConfigOptionFloat, machine_hotend_change_time))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::machine_prepare_compensation_time ((ConfigOptionBool, enable_pre_heating))((ConfigOptionFloatsNullable
zaa_minimize_perimeter_height Slic3r::hotend_cooling_rate ((ConfigOptionFloatsNullable, hotend_heating_rate))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::filament_change_length_nc ((ConfigOptionFloatsNullable, filament_ramming_travel_time))((ConfigOptionIntsNullable
zaa_minimize_perimeter_height Slic3r::filament_pre_cooling_temperature ((ConfigOptionFloatsNullable, filament_ramming_volumetric_speed))((ConfigOptionFloatsNullable
zaa_minimize_perimeter_height Slic3r::filament_ramming_travel_time_nc ((ConfigOptionIntsNullable, filament_pre_cooling_temperature_nc))((ConfigOptionFloatsNullable
zaa_minimize_perimeter_height Slic3r::filament_ramming_volumetric_speed_nc ((ConfigOptionFloatsNullable, filament_retract_length_nc))((ConfigOptionIntsNullable
zaa_minimize_perimeter_height Slic3r::extruder_max_nozzle_count ((ConfigOptionBool, support_fast_purge_mode))((ConfigOptionStrings
zaa_minimize_perimeter_height Slic3r::filament_dev_ams_drying_ams_limitations ((ConfigOptionFloats, filament_dev_ams_drying_temperature))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::filament_dev_ams_drying_time ((ConfigOptionFloats, filament_dev_ams_drying_heat_distortion_temperature))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::filament_dev_chamber_drying_bed_temperature ((ConfigOptionFloats, filament_dev_chamber_drying_time))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::filament_dev_drying_softening_temperature ((ConfigOptionFloats, filament_dev_drying_cooling_temperature))) PRINT_CONFIG_CLASS_DERIVED_DEFINE(PrintConfig
zaa_minimize_perimeter_height Slic3r::build_plate_tilt_x ((ConfigOptionFloat, build_plate_tilt_y))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::belt_printer ((ConfigOptionBool, belt_printer_infinite_y))((ConfigOptionEnum< BeltRotationAxis >
zaa_minimize_perimeter_height Slic3r::belt_slice_rotation ((ConfigOptionFloat, belt_slice_rotation_angle))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::belt_frame_tilt_decouple ((ConfigOptionFloat, belt_frame_tilt_angle))((ConfigOptionEnum< RemapAxis >
zaa_minimize_perimeter_height Slic3r::gcode_remap_x ((ConfigOptionEnum< RemapAxis >, gcode_remap_y))((ConfigOptionEnum< RemapAxis >
zaa_minimize_perimeter_height Slic3r::gcode_remap_z ((ConfigOptionFloat, belt_support_floor_offset))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::belt_purge_tower_width ((ConfigOptionBool, enable_belt_purge_tower))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::additional_cooling_fan_speed ((ConfigOptionInts, close_additional_fan_first_x_layers))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::additional_fan_full_speed_layer ((ConfigOptionFloats, first_x_layer_fan_speed))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::reduce_crossing_wall ((ConfigOptionFloatOrPercent, max_travel_detour_distance))((ConfigOptionPoints
zaa_minimize_perimeter_height Slic3r::printable_area ((ConfigOptionPointsGroups, extruder_printable_area))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::support_parallel_printheads ((ConfigOptionInt, parallel_printheads_count))((ConfigOptionStrings
zaa_minimize_perimeter_height Slic3r::parallel_printheads_bed_exclude_areas ((ConfigOptionPoints, bed_exclude_area))((ConfigOptionString
zaa_minimize_perimeter_height Slic3r::bed_exclude_volumes ((ConfigOptionEnum< BedExcludeVolumeMode >, bed_exclude_volume_mode))((ConfigOptionStrings
zaa_minimize_perimeter_height Slic3r::extruder_bed_exclude_volumes ((ConfigOptionPoints, head_wrap_detect_zone))((ConfigOptionString
zaa_minimize_perimeter_height Slic3r::bed_custom_texture ((ConfigOptionString, bed_custom_model))((ConfigOptionEnum< BedType >
zaa_minimize_perimeter_height Slic3r::curr_bed_type ((ConfigOptionInts, cool_plate_temp))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::textured_cool_plate_temp ((ConfigOptionInts, supertack_plate_temp))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::eng_plate_temp ((ConfigOptionInts, hot_plate_temp))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::textured_plate_temp ((ConfigOptionInts, supertack_plate_temp_initial_layer))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::cool_plate_temp_initial_layer ((ConfigOptionInts, textured_cool_plate_temp_initial_layer))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::eng_plate_temp_initial_layer ((ConfigOptionInts, hot_plate_temp_initial_layer))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::textured_plate_temp_initial_layer ((ConfigOptionBools, enable_overhang_bridge_fan))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::overhang_fan_speed ((ConfigOptionEnumsGeneric, overhang_fan_threshold))((ConfigOptionEnum< PrintSequence >
zaa_minimize_perimeter_height Slic3r::print_sequence ((ConfigOptionEnum< PrintOrder >, print_order))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::first_layer_print_sequence ((ConfigOptionInts, other_layers_print_sequence))((ConfigOptionInt
zaa_minimize_perimeter_height Slic3r::other_layers_print_sequence_nums ((ConfigOptionBools, slow_down_for_layer_cooling))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::close_fan_the_first_x_layers ((ConfigOptionEnum< DraftShield >, draft_shield))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::extruder_clearance_dist_to_rod ((ConfigOptionFloat, extruder_clearance_height_to_rod))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::extruder_clearance_height_to_lid ((ConfigOptionFloat, extruder_clearance_radius))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::nozzle_height ((ConfigOptionStrings, extruder_colour))((ConfigOptionPoints
zaa_minimize_perimeter_height Slic3r::extruder_offset ((ConfigOptionBools, reduce_fan_stop_start_freq))((ConfigOptionBools
zaa_minimize_perimeter_height Slic3r::dont_slow_down_outer_wall ((ConfigOptionFloats, fan_cooling_layer_time))((ConfigOptionBools
zaa_minimize_perimeter_height Slic3r::activate_air_filtration ((ConfigOptionBools, activate_air_filtration_during_print))((ConfigOptionBools
zaa_minimize_perimeter_height Slic3r::activate_air_filtration_on_completion ((ConfigOptionInts, during_print_exhaust_fan_speed))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::complete_print_exhaust_fan_speed ((ConfigOptionFloatOrPercent, initial_layer_line_width))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::initial_layer_print_height ((ConfigOptionFloatsNullable, initial_layer_speed))((ConfigOptionFloatsNullable
zaa_minimize_perimeter_height Slic3r::initial_layer_infill_speed ((ConfigOptionInts, nozzle_temperature_initial_layer))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::full_fan_speed_layer ((ConfigOptionInts, initial_layer_fan_speed))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::fan_max_speed ((ConfigOptionFloats, max_layer_height))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::fan_min_speed ((ConfigOptionFloats, min_layer_height))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::printable_height ((ConfigOptionFloatsNullable, extruder_printable_height))((ConfigOptionPoint
zaa_minimize_perimeter_height Slic3r::best_object_pos ((ConfigOptionFloats, slow_down_min_speed))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::nozzle_diameter ((ConfigOptionBool, reduce_infill_retraction))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::ooze_prevention ((ConfigOptionString, filename_format))((ConfigOptionStrings
zaa_minimize_perimeter_height Slic3r::post_process ((ConfigOptionStrings, slicing_pipeline_plugin))((ConfigOptionString
zaa_minimize_perimeter_height Slic3r::print_plugin_config_overrides ((ConfigOptionString, printer_model))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::resolution ((ConfigOptionFloats, retraction_minimum_travel))((ConfigOptionBools
zaa_minimize_perimeter_height Slic3r::retract_when_changing_layer ((ConfigOptionFloat, skirt_distance))((ConfigOptionInt
zaa_minimize_perimeter_height Slic3r::skirt_height ((ConfigOptionInt, skirt_loops))((ConfigOptionEnum< SkirtType >
zaa_minimize_perimeter_height Slic3r::skirt_type ((ConfigOptionFloat, skirt_speed))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::single_loop_draft_shield ((ConfigOptionFloat, min_skirt_length))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::slow_down_layer_time ((ConfigOptionBool, spiral_mode))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::spiral_mode_smooth ((ConfigOptionFloatOrPercent, spiral_mode_max_xy_smoothing))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::spiral_finishing_flow_ratio ((ConfigOptionFloat, spiral_starting_flow_ratio))((ConfigOptionInt
zaa_minimize_perimeter_height Slic3r::standby_temperature_delta ((ConfigOptionFloat, preheat_time))((ConfigOptionInt
zaa_minimize_perimeter_height Slic3r::preheat_steps ((ConfigOptionInts, nozzle_temperature))((ConfigOptionBools
zaa_minimize_perimeter_height Slic3r::wipe ((ConfigOptionInts, nozzle_temperature_range_low))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::nozzle_temperature_range_high ((ConfigOptionFloats, wipe_distance))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::enable_mixed_color_sublayer ((ConfigOptionBool, enable_prime_tower))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::prime_tower_enable_framework ((ConfigOptionFloats, wipe_tower_x))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::wipe_tower_y ((ConfigOptionFloat, prime_tower_width))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::wipe_tower_per_color_wipe ((ConfigOptionFloat, wipe_tower_rotation_angle))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::prime_tower_brim_width ((ConfigOptionPercent, prime_tower_infill_gap))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::prime_tower_skip_points ((ConfigOptionBool, prime_tower_flat_ironing))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::enable_tower_interface_features ((ConfigOptionBool, enable_tower_interface_cooldown_during_tower))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::wipe_tower_bridging ((ConfigOptionPercent, wipe_tower_extra_flow))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::flush_volumes_matrix ((ConfigOptionFloats, flush_volumes_vector))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::wipe_tower_cone_angle ((ConfigOptionPercent, wipe_tower_extra_spacing))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::wipe_tower_max_purge_speed ((ConfigOptionEnum< WipeTowerWallType >, wipe_tower_wall_type))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::wipe_tower_extra_rib_length ((ConfigOptionFloat, wipe_tower_rib_width))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::wipe_tower_fillet_wall ((ConfigOptionInt, wipe_tower_filament))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::wiping_volumes_extruders ((ConfigOptionInts, idle_temperature))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::prime_volume ((ConfigOptionFloats, filament_prime_volume))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::filament_prime_volume_nc ((ConfigOptionFloatsNullable, filament_preheat_temperature_delta))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::flush_multiplier ((ConfigOptionEnum< PrimeVolumeMode >, prime_volume_mode))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::flush_multiplier_fast ((ConfigOptionFloat, z_offset))((ConfigOptionFloats
zaa_minimize_perimeter_height Slic3r::filament_colour_new ((ConfigOptionFloatsNullable, nozzle_volume))((ConfigOptionPoints
zaa_minimize_perimeter_height Slic3r::start_end_points ((ConfigOptionEnum< TimelapseType >, timelapse_type))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::farthest_point_timelapse ((ConfigOptionString, thumbnails))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::independent_support_layer_height ((ConfigOptionBool, combine_brims))((ConfigOptionPercents
zaa_minimize_perimeter_height Slic3r::filament_shrink ((ConfigOptionPercents, filament_shrinkage_compensation_z))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::gcode_label_objects ((ConfigOptionBool, exclude_object))((ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::exclude_object_tolerance ((ConfigOptionFloats, grab_length))((ConfigOptionBool
zaa_minimize_perimeter_height Slic3r::gcode_comments ((ConfigOptionInt, slow_down_layers))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::support_material_interface_fan_speed ((ConfigOptionInts, internal_bridge_fan_speed))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::ironing_fan_speed ((ConfigOptionStrings, filament_notes))((ConfigOptionString
zaa_minimize_perimeter_height Slic3r::notes ((ConfigOptionString, printer_notes))((ConfigOptionBools
zaa_minimize_perimeter_height Slic3r::activate_chamber_temp_control ((ConfigOptionInts, chamber_temperature))((ConfigOptionInts
zaa_minimize_perimeter_height Slic3r::chamber_minimal_temperature ((ConfigOptionFloat, preferred_orientation))((ConfigOptionPoint
zaa_minimize_perimeter_height Slic3r::bed_mesh_min ((ConfigOptionPoint, bed_mesh_max))((ConfigOptionPoint
zaa_minimize_perimeter_height Slic3r::bed_mesh_probe_distance ((ConfigOptionFloat, adaptive_bed_mesh_margin))) PRINT_CONFIG_CLASS_DERIVED_DEFINE0(FullPrintConfig
std::map< std::string, std::string > Slic3r::validate (const FullPrintConfig &cfg, bool under_cli)
 Slic3r::PRINT_CONFIG_CLASS_DEFINE (SLAPrintConfig,((ConfigOptionString, filename_format))) PRINT_CONFIG_CLASS_DEFINE(SLAPrintObjectConfig
 Slic3r::layer_height ((ConfigOptionInt, faded_layers))((ConfigOptionFloat
 Slic3r::slice_closing_radius ((ConfigOptionBool, supports_enable))((ConfigOptionFloat
 Slic3r::support_head_front_diameter ((ConfigOptionFloat, support_head_penetration))((ConfigOptionFloat
 Slic3r::support_head_width ((ConfigOptionFloat, support_pillar_diameter))((ConfigOptionPercent
 Slic3r::support_small_pillar_diameter_percent ((ConfigOptionInt, support_max_bridges_on_pillar))((ConfigOptionEnum< SLAPillarConnectionMode >
 Slic3r::support_pillar_connection_mode ((ConfigOptionBool, support_buildplate_only))((ConfigOptionFloat
 Slic3r::support_pillar_widening_factor ((ConfigOptionFloat, support_base_diameter))((ConfigOptionFloat
 Slic3r::support_base_height ((ConfigOptionFloat, support_base_safety_distance))((ConfigOptionFloat
 Slic3r::support_critical_angle ((ConfigOptionFloat, support_max_bridge_length))((ConfigOptionFloat
 Slic3r::support_max_pillar_link_distance ((ConfigOptionFloat, support_object_elevation))((ConfigOptionInt
 Slic3r::support_points_density_relative ((ConfigOptionFloat, support_points_minimal_distance))((ConfigOptionBool
 Slic3r::pad_enable ((ConfigOptionFloat, pad_wall_thickness))((ConfigOptionFloat
 Slic3r::pad_wall_height ((ConfigOptionFloat, pad_brim_size))((ConfigOptionFloat
 Slic3r::pad_max_merge_distance ((ConfigOptionFloat, pad_wall_slope))((ConfigOptionBool
 Slic3r::pad_around_object ((ConfigOptionBool, pad_around_object_everywhere))((ConfigOptionFloat
 Slic3r::pad_object_gap ((ConfigOptionFloat, pad_object_connector_stride))((ConfigOptionFloat
 Slic3r::pad_object_connector_width ((ConfigOptionFloat, pad_object_connector_penetration))((ConfigOptionBool
 Slic3r::hollowing_enable ((ConfigOptionFloat, hollowing_min_thickness))((ConfigOptionFloat
 Slic3r::hollowing_quality ((ConfigOptionFloat, hollowing_closing_distance))) enum SLAMaterialSpeed
 Slic3r::PRINT_CONFIG_CLASS_DEFINE (SLAMaterialConfig,((ConfigOptionFloat, initial_layer_height))((ConfigOptionFloat, bottle_cost))((ConfigOptionFloat, bottle_volume))((ConfigOptionFloat, bottle_weight))((ConfigOptionFloat, material_density))((ConfigOptionFloat, exposure_time))((ConfigOptionFloat, initial_exposure_time))((ConfigOptionFloats, material_correction))((ConfigOptionFloat, material_correction_x))((ConfigOptionFloat, material_correction_y))((ConfigOptionFloat, material_correction_z))((ConfigOptionEnum< SLAMaterialSpeed >, material_print_speed))) PRINT_CONFIG_CLASS_DEFINE(SLAPrinterConfig
 Slic3r::printer_technology ((ConfigOptionPoints, printable_area))((ConfigOptionFloat
 Slic3r::printable_height ((ConfigOptionFloat, display_width))((ConfigOptionFloat
 Slic3r::display_height ((ConfigOptionInt, display_pixels_x))((ConfigOptionInt
 Slic3r::display_pixels_y ((ConfigOptionEnum< SLADisplayOrientation >, display_orientation))((ConfigOptionBool
 Slic3r::display_mirror_x ((ConfigOptionBool, display_mirror_y))((ConfigOptionFloats
 Slic3r::relative_correction ((ConfigOptionFloat, relative_correction_x))((ConfigOptionFloat
 Slic3r::relative_correction_y ((ConfigOptionFloat, relative_correction_z))((ConfigOptionFloat
 Slic3r::absolute_correction ((ConfigOptionFloat, elefant_foot_compensation))((ConfigOptionFloat
 Slic3r::elefant_foot_min_width ((ConfigOptionFloat, gamma_correction))((ConfigOptionFloat
 Slic3r::fast_tilt_time ((ConfigOptionFloat, slow_tilt_time))((ConfigOptionFloat
 Slic3r::area_fill ((ConfigOptionFloat, min_exposure_time))((ConfigOptionFloat
 Slic3r::max_exposure_time ((ConfigOptionFloat, min_initial_exposure_time))((ConfigOptionFloat
const std::map< t_custom_gcode_key, t_config_option_keys > & Slic3r::custom_gcode_specific_placeholders ()
bool Slic3r::is_XL_printer (const DynamicPrintConfig &cfg)
bool Slic3r::is_XL_printer (const PrintConfig &cfg)
Polygon Slic3r::get_shared_poly (const std::vector< Pointfs > &extruder_polys)
Points Slic3r::get_bed_shape (const DynamicPrintConfig &config, bool use_share)
Points Slic3r::get_bed_shape (const PrintConfig &cfg, bool use_share)
Points Slic3r::get_bed_shape (const SLAPrinterConfig &cfg)
std::vector< BedExcludeRegion > Slic3r::get_bed_excluded_regions (const DynamicPrintConfig &cfg)
std::vector< BedExcludeRegion > Slic3r::get_bed_excluded_regions (const PrintConfig &cfg)
std::vector< BedExcludeRegion > Slic3r::get_bed_excluded_regions (const DynamicPrintConfig &cfg, const size_t extruder_id)
std::vector< BedExcludeRegion > Slic3r::get_bed_excluded_regions (const PrintConfig &cfg, const size_t extruder_id)
std::vector< std::vector< BedExcludeRegion > > Slic3r::get_bed_excluded_regions_by_extruder (const DynamicPrintConfig &cfg)
std::vector< std::vector< BedExcludeRegion > > Slic3r::get_bed_excluded_regions_by_extruder (const PrintConfig &cfg)
int Slic3r::bed_exclusion_extruder_for_filament (const size_t filament_id, const std::vector< int > &configured_map, const FilamentMapMode map_mode, const bool is_bambu, const bool automatic_map_resolved, const size_t extruder_count)
bool Slic3r::is_bed_exclusion_volume_syntax (const std::string &value)
bool Slic3r::is_valid_bed_exclude_volumes_string (const std::string &value, const double printable_height)
void Slic3r::append_bed_exclude_volumes (DynamicPrintConfig &config, const std::string &definition)
bool Slic3r::has_bed_exclude_volumes (const DynamicPrintConfig &cfg)
bool Slic3r::has_bed_exclude_volumes (const PrintConfig &cfg)
BedExcludeVolumeMode Slic3r::active_bed_exclude_volume_mode (const DynamicPrintConfig &cfg)
BedExcludeVolumeMode Slic3r::active_bed_exclude_volume_mode (const PrintConfig &cfg)
Polygons Slic3r::get_bed_excluded_area (const PrintConfig &cfg)
Polygon Slic3r::get_bed_shape_with_excluded_area (const PrintConfig &cfg, bool use_share)
bool Slic3r::has_skirt (const DynamicPrintConfig &cfg)
float Slic3r::get_real_skirt_dist (const DynamicPrintConfig &cfg)
template<class T>
static std::vector< T > Slic3r::get_flush_volumes_matrix (const std::vector< T > &fv_matrix, size_t extruder_id=-1, size_t nozzle_nums=1)
template<class T>
static void Slic3r::set_flush_volumes_matrix (std::vector< T > &out_matrix, const std::vector< T > &fv_matrix, size_t extruder_id=-1, size_t nozzle_nums=1)
template<class T>
static bool Slic3r::has_zero_flush_volume_for_used_filaments (const std::vector< T > &fv_matrix, const std::vector< T > &flush_multipliers, const std::vector< int > &used_filaments)
size_t Slic3r::get_extruder_index (const GCodeConfig &config, unsigned int filament_id)
double Slic3r::nozzle_diameter_for_filament (const PrintConfig &config, int filament_id, bool is_bbl_printer)
template<class Archive>
void cereal::load (Archive &archive, Slic3r::DynamicPrintConfig &config)
template<class Archive>
void cereal::save (Archive &archive, const Slic3r::DynamicPrintConfig &config)

Variables

constexpr double Slic3r::IRONING_SPACING_MIN = 0.05
static std::unordered_map< NozzleType, std::string > Slic3r::NozzleTypeEumnToStr
static std::unordered_map< std::string, NozzleType > Slic3r::NozzleTypeStrToEumn
zaa_minimize_perimeter_height Slic3r::ConfigOptionString
zaa_minimize_perimeter_height Slic3r::MachineEnvelopeConfig
zaa_minimize_perimeter_height Slic3r::GCodeConfig
zaa_minimize_perimeter_height Slic3r::ConfigOptionFloat
zaa_minimize_perimeter_height Slic3r::PrintObjectConfig
zaa_minimize_perimeter_height Slic3r::PrintRegionConfig
 Slic3r::ConfigOptionEnum< PrinterTechnology >

Class Documentation

◆ cereal::specialize< Archive, Slic3r::DynamicPrintConfig, cereal::specialization::non_member_load_save >

struct cereal::specialize< Archive, Slic3r::DynamicPrintConfig, cereal::specialization::non_member_load_save >
template<class Archive>
struct cereal::specialize< Archive, Slic3r::DynamicPrintConfig, cereal::specialization::non_member_load_save >

Macro Definition Documentation

◆ CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS

#define CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS ( NAME)
Value:
template<> const t_config_enum_names& ConfigOptionEnum<NAME>::get_enum_names(); \
template<> const t_config_enum_values& ConfigOptionEnum<NAME>::get_enum_values();
793#define CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(NAME) \
794 template<> const t_config_enum_names& ConfigOptionEnum<NAME>::get_enum_names(); \
795 template<> const t_config_enum_values& ConfigOptionEnum<NAME>::get_enum_values();

◆ PRINT_CONFIG_CLASS_COMMON_BODY

#define PRINT_CONFIG_CLASS_COMMON_BODY ( CLASS_NAME)
Value:
size_t hash() const throw() \
{ \
size_t seed = 0; \
this->for_each_option_pair(*this, [&seed](const char*, const auto &a, const auto&) { boost::hash_combine(seed, a.hash()); return true; }); \
return seed; \
} \
bool operator==(const CLASS_NAME &rhs) const throw() \
{ \
bool eq = true; \
this->for_each_option_pair(rhs, [&eq](const char*, const auto &a, const auto &b) { eq = (a == b); return eq; }); \
return eq; \
} \
bool operator!=(const CLASS_NAME &rhs) const throw() { return ! (*this == rhs); } \
bool operator<(const CLASS_NAME &rhs) const throw() \
{ \
int c = 0; \
this->for_each_option_pair(rhs, [&c](const char*, const auto &a, const auto &b) { if (a < b) c = -1; else if (! (a == b)) c = 1; return c == 0; }); \
return c < 0; \
} \
protected: \
void initialize(StaticCacheBase &cache, const char *base_ptr) \
{ \
this->for_each_option_pair(*this, [&cache, base_ptr](const char *key, const auto &a, const auto&) { cache.opt_add(key, base_ptr, a); return true; }); \
}
static bool operator<(wxColour const &l, wxColour const &r)
Definition StateColor.cpp:11
bool operator!=(const clonable_ptr< T > &l, const clonable_ptr< U > &r) noexcept
Definition clonable_ptr.hpp:149
bool operator==(const clonable_ptr< T > &l, const clonable_ptr< U > &r) noexcept
Definition clonable_ptr.hpp:145
1180#define PRINT_CONFIG_CLASS_COMMON_BODY(CLASS_NAME) \
1181 size_t hash() const throw() \
1182 { \
1183 size_t seed = 0; \
1184 this->for_each_option_pair(*this, [&seed](const char*, const auto &a, const auto&) { boost::hash_combine(seed, a.hash()); return true; }); \
1185 return seed; \
1186 } \
1187 bool operator==(const CLASS_NAME &rhs) const throw() \
1188 { \
1189 bool eq = true; \
1190 this->for_each_option_pair(rhs, [&eq](const char*, const auto &a, const auto &b) { eq = (a == b); return eq; }); \
1191 return eq; \
1192 } \
1193 bool operator!=(const CLASS_NAME &rhs) const throw() { return ! (*this == rhs); } \
1194 bool operator<(const CLASS_NAME &rhs) const throw() \
1195 { \
1196 int c = 0; \
1197 this->for_each_option_pair(rhs, [&c](const char*, const auto &a, const auto &b) { if (a < b) c = -1; else if (! (a == b)) c = 1; return c == 0; }); \
1198 return c < 0; \
1199 } \
1200protected: \
1201 void initialize(StaticCacheBase &cache, const char *base_ptr) \
1202 { \
1203 this->for_each_option_pair(*this, [&cache, base_ptr](const char *key, const auto &a, const auto&) { cache.opt_add(key, base_ptr, a); return true; }); \
1204 }

◆ PRINT_CONFIG_CLASS_DEFINE

#define PRINT_CONFIG_CLASS_DEFINE ( CLASS_NAME,
PARAMETER_DEFINITION_SEQ )
Value:
class CLASS_NAME : public StaticPrintConfig { \
STATIC_PRINT_CONFIG_CACHE(CLASS_NAME) \
public: \
BOOST_PP_SEQ_FOR_EACH(PRINT_CONFIG_CLASS_ELEMENT_DEFINITION, _, PARAMETER_DEFINITION_SEQ) \
template<typename F> void for_each_option_pair(const CLASS_NAME &rhs, F &&f) const { visit_option_pairs(*this, rhs, f); } \
/* Defined in PrintConfig.cpp. */ \
bool apply_to(ConfigBase &target) const override; \
PRINT_CONFIG_CLASS_COMMON_BODY(CLASS_NAME) \
private: \
/* The one expansion of the option list, for a const self and for apply_to()'s mutable target. */ \
template<typename Self, typename F> static void visit_option_pairs(Self &self, const CLASS_NAME &rhs, F &&f) \
{ \
BOOST_PP_SEQ_FOR_EACH(PRINT_CONFIG_CLASS_ELEMENT_VISIT_SELF, _, PARAMETER_DEFINITION_SEQ) \
} \
};
#define _(s)
Definition 3mf.cpp:306
#define PRINT_CONFIG_CLASS_ELEMENT_VISIT_SELF(r, data, elem)
Definition PrintConfig.hpp:1176
#define PRINT_CONFIG_CLASS_ELEMENT_DEFINITION(r, data, elem)
Definition PrintConfig.hpp:1174
1206#define PRINT_CONFIG_CLASS_DEFINE(CLASS_NAME, PARAMETER_DEFINITION_SEQ) \
1207class CLASS_NAME : public StaticPrintConfig { \
1208 STATIC_PRINT_CONFIG_CACHE(CLASS_NAME) \
1209public: \
1210 BOOST_PP_SEQ_FOR_EACH(PRINT_CONFIG_CLASS_ELEMENT_DEFINITION, _, PARAMETER_DEFINITION_SEQ) \
1211 template<typename F> void for_each_option_pair(const CLASS_NAME &rhs, F &&f) const { visit_option_pairs(*this, rhs, f); } \
1212 /* Defined in PrintConfig.cpp. */ \
1213 bool apply_to(ConfigBase &target) const override; \
1214 PRINT_CONFIG_CLASS_COMMON_BODY(CLASS_NAME) \
1215private: \
1216 /* The one expansion of the option list, for a const self and for apply_to()'s mutable target. */ \
1217 template<typename Self, typename F> static void visit_option_pairs(Self &self, const CLASS_NAME &rhs, F &&f) \
1218 { \
1219 BOOST_PP_SEQ_FOR_EACH(PRINT_CONFIG_CLASS_ELEMENT_VISIT_SELF, _, PARAMETER_DEFINITION_SEQ) \
1220 } \
1221};

◆ PRINT_CONFIG_CLASS_DERIVED_CLASS_LIST

#define PRINT_CONFIG_CLASS_DERIVED_CLASS_LIST ( CLASSES_PARENTS_TUPLE)
Value:
BOOST_PP_SEQ_FOR_EACH_I(PRINT_CONFIG_CLASS_DERIVED_CLASS_LIST_ITEM, _, BOOST_PP_TUPLE_TO_SEQ(CLASSES_PARENTS_TUPLE))
#define PRINT_CONFIG_CLASS_DERIVED_CLASS_LIST_ITEM(r, data, i, elem)
Definition PrintConfig.hpp:1223

◆ PRINT_CONFIG_CLASS_DERIVED_CLASS_LIST_ITEM

#define PRINT_CONFIG_CLASS_DERIVED_CLASS_LIST_ITEM ( r,
data,
i,
elem )
Value:
BOOST_PP_COMMA_IF(i) public elem

◆ PRINT_CONFIG_CLASS_DERIVED_DEFINE

#define PRINT_CONFIG_CLASS_DERIVED_DEFINE ( CLASS_NAME,
CLASSES_PARENTS_TUPLE,
PARAMETER_DEFINITION_SEQ )
Value:
PRINT_CONFIG_CLASS_DERIVED_DEFINE1(CLASS_NAME, CLASSES_PARENTS_TUPLE, \
BOOST_PP_SEQ_FOR_EACH(PRINT_CONFIG_CLASS_ELEMENT_DEFINITION, _, PARAMETER_DEFINITION_SEQ), \
BOOST_PP_SEQ_FOR_EACH(PRINT_CONFIG_CLASS_ELEMENT_VISIT, _, PARAMETER_DEFINITION_SEQ))
#define PRINT_CONFIG_CLASS_ELEMENT_VISIT(r, data, elem)
Definition PrintConfig.hpp:1175
#define PRINT_CONFIG_CLASS_DERIVED_DEFINE1(CLASS_NAME, CLASSES_PARENTS_TUPLE, PARAMETER_DEFINITION, PARAMETER_VISIT)
Definition PrintConfig.hpp:1234
1269#define PRINT_CONFIG_CLASS_DERIVED_DEFINE(CLASS_NAME, CLASSES_PARENTS_TUPLE, PARAMETER_DEFINITION_SEQ) \
1270 PRINT_CONFIG_CLASS_DERIVED_DEFINE1(CLASS_NAME, CLASSES_PARENTS_TUPLE, \
1271 BOOST_PP_SEQ_FOR_EACH(PRINT_CONFIG_CLASS_ELEMENT_DEFINITION, _, PARAMETER_DEFINITION_SEQ), \
1272 BOOST_PP_SEQ_FOR_EACH(PRINT_CONFIG_CLASS_ELEMENT_VISIT, _, PARAMETER_DEFINITION_SEQ))

Referenced by Slic3r::filament_dev_drying_softening_temperature().

◆ PRINT_CONFIG_CLASS_DERIVED_DEFINE0

#define PRINT_CONFIG_CLASS_DERIVED_DEFINE0 ( CLASS_NAME,
CLASSES_PARENTS_TUPLE )
Value:
PRINT_CONFIG_CLASS_DERIVED_DEFINE1(CLASS_NAME, CLASSES_PARENTS_TUPLE, BOOST_PP_EMPTY(), BOOST_PP_EMPTY())
1266#define PRINT_CONFIG_CLASS_DERIVED_DEFINE0(CLASS_NAME, CLASSES_PARENTS_TUPLE) \
1267 PRINT_CONFIG_CLASS_DERIVED_DEFINE1(CLASS_NAME, CLASSES_PARENTS_TUPLE, BOOST_PP_EMPTY(), BOOST_PP_EMPTY())

Referenced by Slic3r::bed_mesh_probe_distance().

◆ PRINT_CONFIG_CLASS_DERIVED_DEFINE1

#define PRINT_CONFIG_CLASS_DERIVED_DEFINE1 ( CLASS_NAME,
CLASSES_PARENTS_TUPLE,
PARAMETER_DEFINITION,
PARAMETER_VISIT )
Value:
class CLASS_NAME : PRINT_CONFIG_CLASS_DERIVED_CLASS_LIST(CLASSES_PARENTS_TUPLE) { \
STATIC_PRINT_CONFIG_CACHE_DERIVED(CLASS_NAME) \
CLASS_NAME() : PRINT_CONFIG_CLASS_DERIVED_INITIALIZER(CLASSES_PARENTS_TUPLE, 0) { assert(s_cache_##CLASS_NAME.initialized()); *this = s_cache_##CLASS_NAME.defaults(); } \
public: \
PARAMETER_DEFINITION \
template<typename F> void for_each_option_pair(const CLASS_NAME &rhs, F &&f) const { PARAMETER_VISIT } \
/* Its parents each apply themselves to a target member by member, so this one keeps the lookup by name. */ \
bool apply_to(ConfigBase &/*target*/) const override { return false; } \
size_t hash() const throw() \
{ \
size_t seed = 0; \
BOOST_PP_SEQ_FOR_EACH(PRINT_CONFIG_CLASS_DERIVED_HASH, _, BOOST_PP_TUPLE_TO_SEQ(CLASSES_PARENTS_TUPLE)) \
this->for_each_option_pair(*this, [&seed](const char*, const auto &a, const auto&) { boost::hash_combine(seed, a.hash()); return true; }); \
return seed; \
} \
bool operator==(const CLASS_NAME &rhs) const throw() \
{ \
BOOST_PP_SEQ_FOR_EACH(PRINT_CONFIG_CLASS_DERIVED_EQUAL, _, BOOST_PP_TUPLE_TO_SEQ(CLASSES_PARENTS_TUPLE)) \
bool eq = true; \
this->for_each_option_pair(rhs, [&eq](const char*, const auto &a, const auto &b) { eq = (a == b); return eq; }); \
return eq; \
} \
bool operator!=(const CLASS_NAME &rhs) const throw() { return ! (*this == rhs); } \
protected: \
CLASS_NAME(int) : PRINT_CONFIG_CLASS_DERIVED_INITIALIZER(CLASSES_PARENTS_TUPLE, 1) {} \
void initialize(StaticCacheBase &cache, const char* base_ptr) { \
PRINT_CONFIG_CLASS_DERIVED_INITCACHE(CLASSES_PARENTS_TUPLE) \
this->for_each_option_pair(*this, [&cache, base_ptr](const char *key, const auto &a, const auto&) { cache.opt_add(key, base_ptr, a); return true; }); \
} \
};
#define PRINT_CONFIG_CLASS_DERIVED_CLASS_LIST(CLASSES_PARENTS_TUPLE)
Definition PrintConfig.hpp:1224
#define PRINT_CONFIG_CLASS_DERIVED_INITIALIZER(CLASSES_PARENTS_TUPLE, VALUE)
Definition PrintConfig.hpp:1226
#define PRINT_CONFIG_CLASS_DERIVED_EQUAL(r, data, elem)
Definition PrintConfig.hpp:1230
#define PRINT_CONFIG_CLASS_DERIVED_HASH(r, data, elem)
Definition PrintConfig.hpp:1229
1234#define PRINT_CONFIG_CLASS_DERIVED_DEFINE1(CLASS_NAME, CLASSES_PARENTS_TUPLE, PARAMETER_DEFINITION, PARAMETER_VISIT) \
1235class CLASS_NAME : PRINT_CONFIG_CLASS_DERIVED_CLASS_LIST(CLASSES_PARENTS_TUPLE) { \
1236 STATIC_PRINT_CONFIG_CACHE_DERIVED(CLASS_NAME) \
1237 CLASS_NAME() : PRINT_CONFIG_CLASS_DERIVED_INITIALIZER(CLASSES_PARENTS_TUPLE, 0) { assert(s_cache_##CLASS_NAME.initialized()); *this = s_cache_##CLASS_NAME.defaults(); } \
1238public: \
1239 PARAMETER_DEFINITION \
1240 template<typename F> void for_each_option_pair(const CLASS_NAME &rhs, F &&f) const { PARAMETER_VISIT } \
1241 /* Its parents each apply themselves to a target member by member, so this one keeps the lookup by name. */ \
1242 bool apply_to(ConfigBase &/*target*/) const override { return false; } \
1243 size_t hash() const throw() \
1244 { \
1245 size_t seed = 0; \
1246 BOOST_PP_SEQ_FOR_EACH(PRINT_CONFIG_CLASS_DERIVED_HASH, _, BOOST_PP_TUPLE_TO_SEQ(CLASSES_PARENTS_TUPLE)) \
1247 this->for_each_option_pair(*this, [&seed](const char*, const auto &a, const auto&) { boost::hash_combine(seed, a.hash()); return true; }); \
1248 return seed; \
1249 } \
1250 bool operator==(const CLASS_NAME &rhs) const throw() \
1251 { \
1252 BOOST_PP_SEQ_FOR_EACH(PRINT_CONFIG_CLASS_DERIVED_EQUAL, _, BOOST_PP_TUPLE_TO_SEQ(CLASSES_PARENTS_TUPLE)) \
1253 bool eq = true; \
1254 this->for_each_option_pair(rhs, [&eq](const char*, const auto &a, const auto &b) { eq = (a == b); return eq; }); \
1255 return eq; \
1256 } \
1257 bool operator!=(const CLASS_NAME &rhs) const throw() { return ! (*this == rhs); } \
1258protected: \
1259 CLASS_NAME(int) : PRINT_CONFIG_CLASS_DERIVED_INITIALIZER(CLASSES_PARENTS_TUPLE, 1) {} \
1260 void initialize(StaticCacheBase &cache, const char* base_ptr) { \
1261 PRINT_CONFIG_CLASS_DERIVED_INITCACHE(CLASSES_PARENTS_TUPLE) \
1262 this->for_each_option_pair(*this, [&cache, base_ptr](const char *key, const auto &a, const auto&) { cache.opt_add(key, base_ptr, a); return true; }); \
1263 } \
1264};

◆ PRINT_CONFIG_CLASS_DERIVED_EQUAL

#define PRINT_CONFIG_CLASS_DERIVED_EQUAL ( r,
data,
elem )
Value:
if (! (*static_cast<const elem*>(this) == static_cast<const elem&>(rhs))) return false;
1230#define PRINT_CONFIG_CLASS_DERIVED_EQUAL(r, data, elem) \
1231 if (! (*static_cast<const elem*>(this) == static_cast<const elem&>(rhs))) return false;

◆ PRINT_CONFIG_CLASS_DERIVED_HASH

#define PRINT_CONFIG_CLASS_DERIVED_HASH ( r,
data,
elem )
Value:
boost::hash_combine(seed, static_cast<const elem*>(this)->hash());

◆ PRINT_CONFIG_CLASS_DERIVED_INITCACHE

#define PRINT_CONFIG_CLASS_DERIVED_INITCACHE ( CLASSES_PARENTS_TUPLE)
Value:
BOOST_PP_SEQ_FOR_EACH(PRINT_CONFIG_CLASS_DERIVED_INITCACHE_ITEM, _, BOOST_PP_TUPLE_TO_SEQ(CLASSES_PARENTS_TUPLE))
#define PRINT_CONFIG_CLASS_DERIVED_INITCACHE_ITEM(r, data, elem)
Definition PrintConfig.hpp:1227

◆ PRINT_CONFIG_CLASS_DERIVED_INITCACHE_ITEM

#define PRINT_CONFIG_CLASS_DERIVED_INITCACHE_ITEM ( r,
data,
elem )
Value:
this->elem::initialize(cache, base_ptr);

◆ PRINT_CONFIG_CLASS_DERIVED_INITIALIZER

#define PRINT_CONFIG_CLASS_DERIVED_INITIALIZER ( CLASSES_PARENTS_TUPLE,
VALUE )
Value:
BOOST_PP_SEQ_FOR_EACH_I(PRINT_CONFIG_CLASS_DERIVED_INITIALIZER_ITEM, VALUE, BOOST_PP_TUPLE_TO_SEQ(CLASSES_PARENTS_TUPLE))
#define PRINT_CONFIG_CLASS_DERIVED_INITIALIZER_ITEM(r, VALUE, i, elem)
Definition PrintConfig.hpp:1225

◆ PRINT_CONFIG_CLASS_DERIVED_INITIALIZER_ITEM

#define PRINT_CONFIG_CLASS_DERIVED_INITIALIZER_ITEM ( r,
VALUE,
i,
elem )
Value:
BOOST_PP_COMMA_IF(i) elem(VALUE)

◆ PRINT_CONFIG_CLASS_ELEMENT_DEFINITION

#define PRINT_CONFIG_CLASS_ELEMENT_DEFINITION ( r,
data,
elem )
Value:
BOOST_PP_TUPLE_ELEM(0, elem) BOOST_PP_TUPLE_ELEM(1, elem);

◆ PRINT_CONFIG_CLASS_ELEMENT_VISIT

#define PRINT_CONFIG_CLASS_ELEMENT_VISIT ( r,
data,
elem )
Value:
if (! f(BOOST_PP_STRINGIZE(BOOST_PP_TUPLE_ELEM(1, elem)), this->BOOST_PP_TUPLE_ELEM(1, elem), rhs.BOOST_PP_TUPLE_ELEM(1, elem))) return;

◆ PRINT_CONFIG_CLASS_ELEMENT_VISIT_SELF

#define PRINT_CONFIG_CLASS_ELEMENT_VISIT_SELF ( r,
data,
elem )
Value:
if (! f(BOOST_PP_STRINGIZE(BOOST_PP_TUPLE_ELEM(1, elem)), self.BOOST_PP_TUPLE_ELEM(1, elem), rhs.BOOST_PP_TUPLE_ELEM(1, elem))) return;

◆ STATIC_PRINT_CONFIG_CACHE

#define STATIC_PRINT_CONFIG_CACHE ( CLASS_NAME)
Value:
public: \
/* Public default constructor will initialize the key/option cache and the default object copy if needed. */ \
CLASS_NAME() { assert(s_cache_##CLASS_NAME.initialized()); *this = s_cache_##CLASS_NAME.defaults(); } \
protected: \
/* Protected constructor to be called when compounded. */ \
CLASS_NAME(int) {}
#define STATIC_PRINT_CONFIG_CACHE_BASE(CLASS_NAME)
Definition PrintConfig.hpp:1130
1156#define STATIC_PRINT_CONFIG_CACHE(CLASS_NAME) \
1157 STATIC_PRINT_CONFIG_CACHE_BASE(CLASS_NAME) \
1158public: \
1159 /* Public default constructor will initialize the key/option cache and the default object copy if needed. */ \
1160 CLASS_NAME() { assert(s_cache_##CLASS_NAME.initialized()); *this = s_cache_##CLASS_NAME.defaults(); } \
1161protected: \
1162 /* Protected constructor to be called when compounded. */ \
1163 CLASS_NAME(int) {}

◆ STATIC_PRINT_CONFIG_CACHE_BASE

#define STATIC_PRINT_CONFIG_CACHE_BASE ( CLASS_NAME)
Value:
public: \
/* Overrides ConfigBase::optptr(). Find ando/or create a ConfigOption instance for a given name. */ \
const ConfigOption* optptr(const t_config_option_key &opt_key) const override \
{ return s_cache_##CLASS_NAME.optptr(opt_key, this); } \
/* Overrides ConfigBase::optptr(). Find ando/or create a ConfigOption instance for a given name. */ \
ConfigOption* optptr(const t_config_option_key &opt_key, bool create = false) override \
{ return s_cache_##CLASS_NAME.optptr(opt_key, this); } \
/* Overrides ConfigBase::keys(). Collect names of all configuration values maintained by this configuration store. */ \
t_config_option_keys keys() const override { return s_cache_##CLASS_NAME.keys(); } \
const t_config_option_keys& keys_ref() const override { return s_cache_##CLASS_NAME.keys(); } \
static const CLASS_NAME& defaults() { assert(s_cache_##CLASS_NAME.initialized()); return s_cache_##CLASS_NAME.defaults(); } \
private: \
friend int print_config_static_initializer(); \
static void initialize_cache() \
{ \
assert(! s_cache_##CLASS_NAME.initialized()); \
if (! s_cache_##CLASS_NAME.initialized()) { \
CLASS_NAME *inst = new CLASS_NAME(1); \
inst->initialize(s_cache_##CLASS_NAME, (const char*)inst); \
s_cache_##CLASS_NAME.finalize(inst, inst->def()); \
} \
} \
/* Cache object holding a key/option map, a list of option keys and a copy of this static config initialized with the defaults. */ \
static StaticPrintConfig::StaticCache<CLASS_NAME> s_cache_##CLASS_NAME;
std::vector< std::string > t_config_option_keys
Definition Config.hpp:97
1130#define STATIC_PRINT_CONFIG_CACHE_BASE(CLASS_NAME) \
1131public: \
1132 /* Overrides ConfigBase::optptr(). Find ando/or create a ConfigOption instance for a given name. */ \
1133 const ConfigOption* optptr(const t_config_option_key &opt_key) const override \
1134 { return s_cache_##CLASS_NAME.optptr(opt_key, this); } \
1135 /* Overrides ConfigBase::optptr(). Find ando/or create a ConfigOption instance for a given name. */ \
1136 ConfigOption* optptr(const t_config_option_key &opt_key, bool create = false) override \
1137 { return s_cache_##CLASS_NAME.optptr(opt_key, this); } \
1138 /* Overrides ConfigBase::keys(). Collect names of all configuration values maintained by this configuration store. */ \
1139 t_config_option_keys keys() const override { return s_cache_##CLASS_NAME.keys(); } \
1140 const t_config_option_keys& keys_ref() const override { return s_cache_##CLASS_NAME.keys(); } \
1141 static const CLASS_NAME& defaults() { assert(s_cache_##CLASS_NAME.initialized()); return s_cache_##CLASS_NAME.defaults(); } \
1142private: \
1143 friend int print_config_static_initializer(); \
1144 static void initialize_cache() \
1145 { \
1146 assert(! s_cache_##CLASS_NAME.initialized()); \
1147 if (! s_cache_##CLASS_NAME.initialized()) { \
1148 CLASS_NAME *inst = new CLASS_NAME(1); \
1149 inst->initialize(s_cache_##CLASS_NAME, (const char*)inst); \
1150 s_cache_##CLASS_NAME.finalize(inst, inst->def()); \
1151 } \
1152 } \
1153 /* Cache object holding a key/option map, a list of option keys and a copy of this static config initialized with the defaults. */ \
1154 static StaticPrintConfig::StaticCache<CLASS_NAME> s_cache_##CLASS_NAME;

◆ STATIC_PRINT_CONFIG_CACHE_DERIVED

#define STATIC_PRINT_CONFIG_CACHE_DERIVED ( CLASS_NAME)
Value:
public: \
/* Overrides ConfigBase::def(). Static configuration definition. Any value stored into this ConfigBase shall have its definition here. */ \
const ConfigDef* def() const override { return &print_config_def; } \
/* Handle legacy and obsoleted config keys */ \
void handle_legacy(t_config_option_key &opt_key, std::string &value) const override \
{ PrintConfigDef::handle_legacy(opt_key, value); }
1165#define STATIC_PRINT_CONFIG_CACHE_DERIVED(CLASS_NAME) \
1166 STATIC_PRINT_CONFIG_CACHE_BASE(CLASS_NAME) \
1167public: \
1168 /* Overrides ConfigBase::def(). Static configuration definition. Any value stored into this ConfigBase shall have its definition here. */ \
1169 const ConfigDef* def() const override { return &print_config_def; } \
1170 /* Handle legacy and obsoleted config keys */ \
1171 void handle_legacy(t_config_option_key &opt_key, std::string &value) const override \
1172 { PrintConfigDef::handle_legacy(opt_key, value); }