This struct contains settings used in the tree support. Thanks to this most functions do not need to know of meshes etc. Also makes the code shorter. More...
#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/Support/TreeSupportCommon.hpp>
Public Member Functions | |
| TreeSupportSettings ()=default | |
| TreeSupportSettings (const TreeSupportMeshGroupSettings &mesh_group_settings, const SlicingParameters &slicing_params) | |
| bool | operator== (const TreeSupportSettings &other) const |
| coord_t | getRadius (size_t distance_to_top, const double elephant_foot_increases=0) const |
| Get the Radius part will have based on numeric values. | |
| coord_t | recommendedMinRadius (LayerIndex layer_idx) const |
| Get the Radius an element should at least have at a given layer. | |
Public Attributes | |
| coord_t | support_line_width |
| Width of a single line of support. | |
| coord_t | layer_height |
| Height of a single layer. | |
| coord_t | branch_radius |
| Radius of a branch when it has left the tip. | |
| coord_t | min_radius |
| smallest allowed radius, required to ensure that even at DTT 0 every circle will still be printed | |
| coord_t | maximum_move_distance |
| How far an influence area may move outward every layer at most. | |
| coord_t | maximum_move_distance_slow |
| How far every influence area will move outward every layer if possible. | |
| size_t | support_bottom_layers |
| Amount of bottom layers. 0 if disabled. | |
| size_t | tip_layers |
| Amount of effectiveDTT increases are required to reach branch radius. | |
| double | branch_radius_increase_per_layer |
| How much a branch radius increases with each layer to guarantee the prescribed tree widening. | |
| coord_t | max_to_model_radius_increase |
| How much a branch resting on the model may grow in radius by merging with branches that can reach the buildplate. | |
| size_t | min_dtt_to_model |
| If smaller (in layers) than that, all branches to model will be deleted. | |
| coord_t | increase_radius_until_radius |
| Increase radius in the resulting drawn branches, even if the avoidance does not allow it. Will be cut later to still fit. | |
| size_t | increase_radius_until_layer |
| Same as increase_radius_until_radius, but contains the DTT at which the radius will be reached. | |
| bool | support_rests_on_model |
| True if the branches may connect to the model. | |
| coord_t | xy_distance |
| How far should support be from the model. | |
| coord_t | bp_radius |
| A minimum radius a tree trunk should expand to at the buildplate if possible. | |
| LayerIndex | layer_start_bp_radius |
| The layer index at which an increase in radius may be required to reach the bp_radius. | |
| double | bp_radius_increase_per_layer |
| How much one is allowed to increase the tree branch radius close to print bed to reach the required bp_radius at layer 0. Note that this radius increase will not happen in the tip, to ensure the tip is structurally sound. | |
| coord_t | xy_min_distance |
| minimum xy_distance. Only relevant when Z overrides XY, otherwise equal to xy_distance- | |
| size_t | z_distance_top_layers |
| Amount of layers distance required the top of the support to the model. | |
| size_t | z_distance_bottom_layers |
| Amount of layers distance required from the top of the model to the bottom of a support structure. | |
| std::vector< double > | support_roof_angles |
| User specified angles for the support infill. | |
| SupportMaterialInterfacePattern | roof_pattern |
| Pattern used in the support roof. May contain non relevant data if support roof is disabled. | |
| SupportMaterialPattern | support_pattern |
| Pattern used in the support infill. | |
| coord_t | support_roof_line_width |
| Line width of the support roof. | |
| coord_t | support_line_spacing |
| Distance between support infill lines. | |
| coord_t | support_bottom_offset |
| Offset applied to the support floor area. | |
| int | support_wall_count |
| coord_t | resolution |
| coord_t | support_roof_line_distance |
| InterfacePreference | interface_preference |
| TreeSupportMeshGroupSettings | settings |
| coord_t | min_feature_size |
| std::vector< coordf_t > | raft_layers |
Static Public Attributes | |
| static bool | zero_top_z_gap = false |
This struct contains settings used in the tree support. Thanks to this most functions do not need to know of meshes etc. Also makes the code shorter.
|
default |
|
inlineexplicit |
References Slic3r::SlicingParameters::base_raft_layer_height, Slic3r::SlicingParameters::base_raft_layers, bp_radius, bp_radius_increase_per_layer, branch_radius, branch_radius_increase_per_layer, EPSILON, Slic3r::SlicingParameters::first_print_layer_height, increase_radius_until_layer, increase_radius_until_radius, interface_preference, Slic3r::SlicingParameters::interface_raft_layer_height, Slic3r::SlicingParameters::interface_raft_layers, Slic3r::TreeSupport3D::InterfaceAreaOverwritesSupport, layer_height, layer_start_bp_radius, M_PI, Slic3r::SlicingParameters::max_suport_layer_height, max_to_model_radius_increase, maximum_move_distance, maximum_move_distance_slow, min_dtt_to_model, min_feature_size, min_radius, Slic3r::SlicingParameters::object_print_z_min, Slic3r::SlicingParameters::raft_contact_top_z, Slic3r::SlicingParameters::raft_layers(), raft_layers, resolution, roof_pattern, Slic3r::round_up_divide(), Slic3r::scaled(), settings, support_bottom_layers, support_bottom_offset, support_line_spacing, support_line_width, support_pattern, support_rests_on_model, support_roof_angles, support_roof_line_distance, support_roof_line_width, support_wall_count, tip_layers, xy_distance, xy_min_distance, z_distance_bottom_layers, z_distance_top_layers, and zero_top_z_gap.
|
inlinenodiscard |
Get the Radius part will have based on numeric values.
| distance_to_top[in] | The effective distance_to_top of the element |
| elephant_foot_increases[in] | The elephant_foot_increases of the element. |
References bp_radius_increase_per_layer, branch_radius, branch_radius_increase_per_layer, min_radius, and tip_layers.
Referenced by Slic3r::TreeSupport3D::TreeModelVolumes::TreeModelVolumes(), Slic3r::TreeSupport3D::convert_lines_to_internal(), Slic3r::TreeSupport3D::evaluate_point_for_next_layer_function(), Slic3r::TreeSupport3D::increase_single_area(), Slic3r::TreeSupport3D::TreeModelVolumes::precalculate(), Slic3r::TreeSupport3D::sample_overhang_area(), Slic3r::TreeSupport3D::support_element_collision_radius(), and Slic3r::TreeSupport3D::support_element_radius().
|
inline |
References TreeSupportSettings(), bp_radius, bp_radius_increase_per_layer, branch_radius, branch_radius_increase_per_layer, increase_radius_until_layer, increase_radius_until_radius, interface_preference, Slic3r::TreeSupport3D::InterfaceAreaOverwritesSupport, layer_height, layer_start_bp_radius, max_to_model_radius_increase, maximum_move_distance, maximum_move_distance_slow, min_dtt_to_model, min_feature_size, min_radius, raft_layers, resolution, roof_pattern, settings, support_bottom_layers, support_bottom_offset, support_line_spacing, support_line_width, support_pattern, support_rests_on_model, support_roof_angles, support_roof_line_distance, support_roof_line_width, support_wall_count, Slic3r::TreeSupport3D::SupportAreaOverwritesInterface, tip_layers, xy_distance, xy_min_distance, z_distance_bottom_layers, and z_distance_top_layers.
|
inlinenodiscard |
Get the Radius an element should at least have at a given layer.
| layer_idx[in] | The layer. |
References bp_radius_increase_per_layer, branch_radius, and layer_start_bp_radius.
Referenced by Slic3r::TreeSupport3D::increase_single_area(), and Slic3r::TreeSupport3D::TreeModelVolumes::precalculate().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::bp_radius |
A minimum radius a tree trunk should expand to at the buildplate if possible.
Referenced by TreeSupportSettings(), and operator==().
| double Slic3r::TreeSupport3D::TreeSupportSettings::bp_radius_increase_per_layer |
How much one is allowed to increase the tree branch radius close to print bed to reach the required bp_radius at layer 0. Note that this radius increase will not happen in the tip, to ensure the tip is structurally sound.
Referenced by TreeSupportSettings(), getRadius(), Slic3r::TreeSupport3D::increase_single_area(), Slic3r::TreeSupport3D::merge_support_element_states(), operator==(), and recommendedMinRadius().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::branch_radius |
Radius of a branch when it has left the tip.
Referenced by TreeSupportSettings(), getRadius(), Slic3r::TreeSupport3D::increase_single_area(), operator==(), Slic3r::TreeSupport3D::TreeModelVolumes::precalculate(), and recommendedMinRadius().
| double Slic3r::TreeSupport3D::TreeSupportSettings::branch_radius_increase_per_layer |
How much a branch radius increases with each layer to guarantee the prescribed tree widening.
Referenced by TreeSupportSettings(), getRadius(), Slic3r::TreeSupport3D::increase_single_area(), Slic3r::TreeSupport3D::merge_support_element_states(), and operator==().
| size_t Slic3r::TreeSupport3D::TreeSupportSettings::increase_radius_until_layer |
Same as increase_radius_until_radius, but contains the DTT at which the radius will be reached.
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::getEffectiveDTT(), and operator==().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::increase_radius_until_radius |
Increase radius in the resulting drawn branches, even if the avoidance does not allow it. Will be cut later to still fit.
Referenced by Slic3r::TreeSupport3D::TreeModelVolumes::TreeModelVolumes(), TreeSupportSettings(), Slic3r::TreeSupport3D::increase_single_area(), and operator==().
| InterfacePreference Slic3r::TreeSupport3D::TreeSupportSettings::interface_preference |
Referenced by TreeSupportSettings(), and operator==().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::layer_height |
Height of a single layer.
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::create_layer_pathing(), Slic3r::TreeSupport3D::generate_initial_areas(), Slic3r::TreeSupport::move_bounds_to_contact_nodes(), and operator==().
| LayerIndex Slic3r::TreeSupport3D::TreeSupportSettings::layer_start_bp_radius |
The layer index at which an increase in radius may be required to reach the bp_radius.
Referenced by TreeSupportSettings(), operator==(), and recommendedMinRadius().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::max_to_model_radius_increase |
How much a branch resting on the model may grow in radius by merging with branches that can reach the buildplate.
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::merge_influence_areas_two_elements(), and operator==().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::maximum_move_distance |
How far an influence area may move outward every layer at most.
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::create_layer_pathing(), Slic3r::TreeSupport3D::generate_support_areas(), and operator==().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::maximum_move_distance_slow |
How far every influence area will move outward every layer if possible.
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::create_layer_pathing(), Slic3r::TreeSupport3D::generate_support_areas(), operator==(), and Slic3r::TreeSupport3D::organic_smooth_branches_avoid_collisions().
| size_t Slic3r::TreeSupport3D::TreeSupportSettings::min_dtt_to_model |
If smaller (in layers) than that, all branches to model will be deleted.
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::create_nodes_from_area(), Slic3r::TreeSupport3D::merge_influence_areas_two_elements(), and operator==().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::min_feature_size |
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::increase_single_area(), and operator==().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::min_radius |
smallest allowed radius, required to ensure that even at DTT 0 every circle will still be printed
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::generate_initial_areas(), getRadius(), operator==(), and Slic3r::TreeSupport3D::sample_overhang_area().
| std::vector<coordf_t> Slic3r::TreeSupport3D::TreeSupportSettings::raft_layers |
Referenced by Slic3r::TreeSupport3D::TreeModelVolumes::TreeModelVolumes(), TreeSupportSettings(), Slic3r::TreeSupport3D::generate_initial_areas(), Slic3r::TreeSupport3D::generate_raft_contact(), Slic3r::TreeSupport3D::generate_support_areas(), Slic3r::TreeSupport3D::layer_idx_ceil(), Slic3r::TreeSupport3D::layer_idx_floor(), Slic3r::TreeSupport3D::layer_z(), operator==(), and Slic3r::TreeSupport3D::precalculate().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::resolution |
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::generate_support_infill_lines(), and operator==().
| SupportMaterialInterfacePattern Slic3r::TreeSupport3D::TreeSupportSettings::roof_pattern |
Pattern used in the support roof. May contain non relevant data if support roof is disabled.
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::generate_support_infill_lines(), and operator==().
| TreeSupportMeshGroupSettings Slic3r::TreeSupport3D::TreeSupportSettings::settings |
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::generate_support_infill_lines(), and operator==().
| size_t Slic3r::TreeSupport3D::TreeSupportSettings::support_bottom_layers |
Amount of bottom layers. 0 if disabled.
Referenced by TreeSupportSettings(), and operator==().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::support_bottom_offset |
Offset applied to the support floor area.
Referenced by TreeSupportSettings(), and operator==().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::support_line_spacing |
Distance between support infill lines.
Referenced by TreeSupportSettings(), and operator==().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::support_line_width |
Width of a single line of support.
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::generate_initial_areas(), Slic3r::TreeSupport3D::generate_support_infill_lines(), operator==(), and Slic3r::TreeSupport3D::sample_overhang_area().
| SupportMaterialPattern Slic3r::TreeSupport3D::TreeSupportSettings::support_pattern |
Pattern used in the support infill.
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::generate_support_infill_lines(), and operator==().
| bool Slic3r::TreeSupport3D::TreeSupportSettings::support_rests_on_model |
True if the branches may connect to the model.
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::convert_lines_to_internal(), Slic3r::TreeSupport3D::evaluate_point_for_next_layer_function(), Slic3r::TreeSupport3D::get_avoidance_status(), Slic3r::TreeSupport3D::increase_single_area(), Slic3r::TreeSupport3D::merge_influence_areas_two_elements(), operator==(), and Slic3r::TreeSupport3D::sample_overhang_area().
| std::vector<double> Slic3r::TreeSupport3D::TreeSupportSettings::support_roof_angles |
User specified angles for the support infill.
User specified angles for the support roof infill.
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::generate_support_infill_lines(), and operator==().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::support_roof_line_distance |
Referenced by TreeSupportSettings(), and operator==().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::support_roof_line_width |
Line width of the support roof.
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::generate_support_infill_lines(), and operator==().
| int Slic3r::TreeSupport3D::TreeSupportSettings::support_wall_count |
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::generate_support_infill_lines(), and operator==().
| size_t Slic3r::TreeSupport3D::TreeSupportSettings::tip_layers |
Amount of effectiveDTT increases are required to reach branch radius.
Referenced by TreeSupportSettings(), getRadius(), operator==(), and Slic3r::TreeSupport3D::TreeModelVolumes::precalculate().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::xy_distance |
How far should support be from the model.
Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::RichInterfacePlacer(), Slic3r::TreeSupport3D::TreeModelVolumes::TreeModelVolumes(), TreeSupportSettings(), Slic3r::TreeSupport3D::convert_lines_to_internal(), Slic3r::TreeSupport3D::evaluate_point_for_next_layer_function(), Slic3r::TreeSupport3D::generate_initial_areas(), Slic3r::TreeSupport3D::get_avoidance_status(), Slic3r::TreeSupport3D::increase_single_area(), Slic3r::TreeSupport3D::merge_influence_areas_two_elements(), operator==(), and Slic3r::TreeSupport3D::sample_overhang_area().
| coord_t Slic3r::TreeSupport3D::TreeSupportSettings::xy_min_distance |
minimum xy_distance. Only relevant when Z overrides XY, otherwise equal to xy_distance-
Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::RichInterfacePlacer(), Slic3r::TreeSupport3D::TreeModelVolumes::TreeModelVolumes(), TreeSupportSettings(), Slic3r::TreeSupport3D::convert_lines_to_internal(), Slic3r::TreeSupport3D::evaluate_point_for_next_layer_function(), Slic3r::TreeSupport3D::generate_initial_areas(), Slic3r::TreeSupport3D::get_avoidance_status(), Slic3r::TreeSupport3D::increase_single_area(), operator==(), and Slic3r::TreeSupport3D::sample_overhang_area().
| size_t Slic3r::TreeSupport3D::TreeSupportSettings::z_distance_bottom_layers |
Amount of layers distance required from the top of the model to the bottom of a support structure.
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::increase_single_area(), and operator==().
| size_t Slic3r::TreeSupport3D::TreeSupportSettings::z_distance_top_layers |
Amount of layers distance required the top of the support to the model.
Referenced by TreeSupportSettings(), Slic3r::TreeSupport3D::generate_initial_areas(), Slic3r::TreeSupport3D::increase_single_area(), operator==(), and Slic3r::TreeSupport3D::precalculate().
|
inlinestatic |
Referenced by TreeSupportSettings(), and Slic3r::TreeSupport3D::group_meshes().