OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::ImexArrangeInput Struct Reference

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

Collaboration diagram for Slic3r::ImexArrangeInput:

Public Member Functions

void read_config (const DynamicPrintConfig &full_config)

Public Attributes

std::vector< std::optional< ImexArrangeZones > > beds
bool adds_plates = false
std::optional< ImexArrangeZones > added_plate
double brim = 0.

Detailed Description

Member Function Documentation

◆ read_config()

void Slic3r::ImexArrangeInput::read_config ( const DynamicPrintConfig & full_config)
76{
77 // A plate the arrange adds has no mode of its own, so it takes the process preset's.
78 added_plate.reset();
79 if (adds_plates) {
80 const auto* mode = full_config.option<ConfigOptionString>("imex_parallel_mode");
81 added_plate = imex_arrange_zones(compute_imex_zone_layout(full_config, kImexPrimaryMode, mode ? mode->value : std::string(),
82 get_extents(full_config.opt<ConfigOptionPoints>("printable_area")->values)));
83 }
84
85 // An estimate: auto brim picks its own width, which brim_width stands in for.
86 const auto* brim_type = full_config.option<ConfigOptionEnum<BrimType>>("brim_type");
87 brim = !brim_type || brim_type->value == btNoBrim || brim_type->value == btInnerOnly ?
88 0. :
89 full_config.opt_float("brim_width") + full_config.opt_float("brim_object_gap");
90}
std::optional< ImexArrangeZones > imex_arrange_zones(const ImexZoneLayout &layout)
Definition IMEXArrange.cpp:65
@ btInnerOnly
Definition PrintConfig.hpp:459
@ btNoBrim
Definition PrintConfig.hpp:461
BoundingBox get_extents(const ExPolygonsWithIds &e)
Definition Emboss.cpp:1374
constexpr const char * kImexPrimaryMode
Definition IMEXHelpers.hpp:27
zaa_minimize_perimeter_height ConfigOptionString
Definition PrintConfig.hpp:1702
ImexZoneLayout compute_imex_zone_layout(const DynamicPrintConfig &printer_cfg, const std::string &plate_mode, const std::string &process_mode, const BoundingBoxf &bed_extents)
Definition IMEXZones.cpp:17
bool adds_plates
Definition IMEXArrange.hpp:33
double brim
Definition IMEXArrange.hpp:36
std::optional< ImexArrangeZones > added_plate
Definition IMEXArrange.hpp:34

References added_plate, adds_plates, brim, Slic3r::btInnerOnly, Slic3r::btNoBrim, Slic3r::compute_imex_zone_layout(), Slic3r::get_extents(), Slic3r::imex_arrange_zones(), Slic3r::kImexPrimaryMode, Slic3r::DynamicConfig::opt(), Slic3r::DynamicConfig::opt_float(), Slic3r::ConfigBase::option(), and Slic3r::ConfigOptionVector< T >::values.

Here is the call graph for this function:

Member Data Documentation

◆ added_plate

std::optional<ImexArrangeZones> Slic3r::ImexArrangeInput::added_plate

◆ adds_plates

bool Slic3r::ImexArrangeInput::adds_plates = false

◆ beds

std::vector<std::optional<ImexArrangeZones> > Slic3r::ImexArrangeInput::beds

◆ brim

double Slic3r::ImexArrangeInput::brim = 0.

The documentation for this struct was generated from the following files: