33{
34
35
36 const coord_t optimal_width = max_bead_count <= 2 ? preferred_bead_width_outer : preferred_bead_width_inner;
37 BeadingStrategyPtr ret = std::make_unique<DistributedBeadingStrategy>(optimal_width, preferred_transition_length, transitioning_angle,
38 wall_split_middle_threshold, wall_add_middle_threshold,
39 inward_distributed_center_wall_count);
40
41 BOOST_LOG_TRIVIAL(
trace) <<
"Applying the Redistribute meta-strategy with outer-wall width = " << preferred_bead_width_outer <<
", inner-wall width = " << preferred_bead_width_inner <<
".";
42 ret = std::make_unique<RedistributeBeadingStrategy>(preferred_bead_width_outer, minimum_variable_line_ratio, std::move(ret));
43
44 if (print_thin_walls) {
45 BOOST_LOG_TRIVIAL(
trace) <<
"Applying the Widening Beading meta-strategy with minimum input width " << min_feature_size <<
" and minimum output width " << min_bead_width <<
".";
46 ret = std::make_unique<WideningBeadingStrategy>(std::move(ret), min_feature_size, min_bead_width);
47 }
48
49 if (outer_wall_offset != 0) {
50 BOOST_LOG_TRIVIAL(
trace) <<
"Applying the OuterWallOffset meta-strategy with offset = " << outer_wall_offset <<
".";
51 ret = std::make_unique<OuterWallInsetBeadingStrategy>(outer_wall_offset, std::move(ret));
52 }
53
54
55 BOOST_LOG_TRIVIAL(
trace) <<
"Applying the Limited Beading meta-strategy with maximum bead count = " << max_bead_count <<
".";
56 ret = std::make_unique<LimitedBeadingStrategy>(max_bead_count, std::move(ret));
57 return ret;
58}
int64_t coord_t
Definition libslic3r.h:48
std::unique_ptr< BeadingStrategy > BeadingStrategyPtr
Definition BeadingStrategy.hpp:118
void trace(unsigned int level, const char *message)
Definition utils.cpp:247