#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/Support/TreeSupport3D.hpp>
Public Member Functions | |
| bool | result_on_layer_is_set () const |
| void | result_on_layer_reset () |
| void | set_pending_roof_recovery (uint32_t pending_layers, uint32_t recovery_depth) |
| bool | locked () const |
| bool | has_pending_roof_recovery () const |
Static Public Member Functions | |
| static SupportElementState | propagate_down (const SupportElementState &src) |
Public Attributes | |
| int | type = 0 |
| coordf_t | radius = 0 |
| float | print_z = 0 |
| LayerIndex | target_height |
| The layer this support elements wants reach. | |
| Point | target_position |
| The position this support elements wants to support on layer=target_height. | |
| Point | next_position |
| The next position this support elements wants to reach. NOTE: This is mainly a suggestion regarding direction inside the influence area. | |
| LayerIndex | layer_idx |
| The next height this support elements wants to reach. | |
| uint32_t | effective_radius_height |
| The Effective distance to top of this element regarding radius increases and collision calculations. | |
| uint32_t | distance_to_top |
| The amount of layers this element is below the topmost layer of this branch. | |
| Point | result_on_layer { std::numeric_limits<coord_t>::max(), std::numeric_limits<coord_t>::max() } |
| The resulting center point around which a circle will be drawn later. Will be set by setPointsOnAreas. | |
| coord_t | increased_to_model_radius |
| The amount of extra radius we got from merging branches that could have reached the buildplate, but merged with ones that can not. | |
| double | elephant_foot_increases |
| Counter about the times the elephant foot was increased. Can be fractions for merge reasons. | |
| uint32_t | dont_move_until |
| The element tries to not move until this dtt is reached, is set to 0 if the element had to move. | |
| AreaIncreaseSettings | last_area_increase |
| Settings used to increase the influence area to its current state. | |
| uint32_t | missing_roof_layers = 0 |
| Number of pending roof/contact recovery slices from this node downward, including this node. | |
| uint32_t | roof_recovery_dtt = 0 |
| Contact/interface depth that this node should recover when missing_roof_layers > 0. | |
| bool | to_buildplate: 1 |
| The element trys to reach the buildplate. | |
| bool | to_model_gracious: 1 |
| Will the branch be able to rest completely on a flat surface, be it buildplate or model ? | |
| bool | use_min_xy_dist: 1 |
| Whether the min_xy_distance can be used to get avoidance or similar. Will only be true if support_xy_overrides_z=Z overrides X/Y. | |
| bool | supports_roof: 1 |
| True if this Element or any parent (element above) provides support to a support roof. | |
| bool | can_use_safe_radius: 1 |
| An influence area is considered safe when it can use the holefree avoidance <=> It will not have to encounter holes on its way downward. | |
| bool | skip_ovalisation: 1 |
| Skip the ovalisation to parent and children when generating the final circles. | |
| bool | lost: 1 |
| bool | verylost: 1 |
| bool | deleted: 1 |
| bool | marked: 1 |
|
inlinenodiscard |
Referenced by propagate_down(), and Slic3r::TreeSupport3D::recover_pending_branch_roofs().
|
inlinenodiscard |
|
inlinestaticnodiscard |
References distance_to_top, has_pending_roof_recovery(), layer_idx, missing_roof_layers, result_on_layer_reset(), roof_recovery_dtt, and Slic3r::TreeSupport3D::SupportElementStateBits::skip_ovalisation.
Referenced by Slic3r::TreeSupport3D::increase_single_area().
|
inline |
Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), Slic3r::TreeSupport3D::create_nodes_from_area(), Slic3r::TreeSupport3D::organic_draw_branches(), and Slic3r::TreeSupport3D::set_points_on_areas().
|
inline |
Referenced by propagate_down().
|
inline |
Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), and Slic3r::TreeSupport3D::merge_support_element_states().
|
inherited |
An influence area is considered safe when it can use the holefree avoidance <=> It will not have to encounter holes on its way downward.
Referenced by SupportElementStateBits(), Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), Slic3r::TreeSupport3D::merge_influence_areas_two_elements(), and Slic3r::TreeSupport3D::merge_support_element_states().
|
inherited |
| uint32_t Slic3r::TreeSupport3D::SupportElementState::distance_to_top |
The amount of layers this element is below the topmost layer of this branch.
Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), Slic3r::TreeSupport3D::getEffectiveDTT(), Slic3r::TreeSupport3D::increase_single_area(), Slic3r::TreeSupport3D::merge_influence_areas_two_elements(), Slic3r::TreeSupport3D::merge_support_element_states(), and propagate_down().
| uint32_t Slic3r::TreeSupport3D::SupportElementState::dont_move_until |
The element tries to not move until this dtt is reached, is set to 0 if the element had to move.
Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), and Slic3r::TreeSupport3D::merge_support_element_states().
| uint32_t Slic3r::TreeSupport3D::SupportElementState::effective_radius_height |
The Effective distance to top of this element regarding radius increases and collision calculations.
Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), Slic3r::TreeSupport3D::getEffectiveDTT(), Slic3r::TreeSupport3D::increase_single_area(), Slic3r::TreeSupport3D::merge_support_element_states(), and Slic3r::TreeSupport3D::support_element_collision_radius().
| double Slic3r::TreeSupport3D::SupportElementState::elephant_foot_increases |
Counter about the times the elephant foot was increased. Can be fractions for merge reasons.
Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), Slic3r::TreeSupport3D::increase_single_area(), Slic3r::TreeSupport3D::merge_support_element_states(), Slic3r::TreeSupport3D::support_element_collision_radius(), and Slic3r::TreeSupport3D::support_element_radius().
| coord_t Slic3r::TreeSupport3D::SupportElementState::increased_to_model_radius |
The amount of extra radius we got from merging branches that could have reached the buildplate, but merged with ones that can not.
Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), and Slic3r::TreeSupport3D::merge_influence_areas_two_elements().
| AreaIncreaseSettings Slic3r::TreeSupport3D::SupportElementState::last_area_increase |
Settings used to increase the influence area to its current state.
Referenced by Slic3r::TreeSupport3D::merge_support_element_states().
| LayerIndex Slic3r::TreeSupport3D::SupportElementState::layer_idx |
The next height this support elements wants to reach.
Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), Slic3r::TreeSupport3D::extrude_branch(), Slic3r::TreeSupport3D::merge_support_element_states(), Slic3r::TreeSupport3D::organic_draw_branches(), Slic3r::TreeSupport3D::organic_smooth_branches_avoid_collisions(), propagate_down(), Slic3r::TreeSupport3D::recover_pending_branch_roofs(), Slic3r::TreeSupport3D::set_to_model_contact_simple(), and Slic3r::TreeSupport3D::set_to_model_contact_to_model_gracious().
|
inherited |
Referenced by SupportElementStateBits().
|
inherited |
| uint32_t Slic3r::TreeSupport3D::SupportElementState::missing_roof_layers = 0 |
Number of pending roof/contact recovery slices from this node downward, including this node.
Referenced by Slic3r::TreeSupport3D::merge_support_element_states(), and propagate_down().
| Point Slic3r::TreeSupport3D::SupportElementState::next_position |
The next position this support elements wants to reach. NOTE: This is mainly a suggestion regarding direction inside the influence area.
Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), Slic3r::TreeSupport3D::merge_influence_areas_two_elements(), Slic3r::TreeSupport3D::merge_support_element_states(), Slic3r::TreeSupport3D::set_to_model_contact_simple(), and Slic3r::TreeSupport3D::set_to_model_contact_to_model_gracious().
| float Slic3r::TreeSupport3D::SupportElementState::print_z = 0 |
| coordf_t Slic3r::TreeSupport3D::SupportElementState::radius = 0 |
| Point Slic3r::TreeSupport3D::SupportElementState::result_on_layer { std::numeric_limits<coord_t>::max(), std::numeric_limits<coord_t>::max() } |
The resulting center point around which a circle will be drawn later. Will be set by setPointsOnAreas.
Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), Slic3r::TreeSupport3D::create_nodes_from_area(), Slic3r::TreeSupport3D::extrude_branch(), Slic3r::TreeSupport3D::organic_smooth_branches_avoid_collisions(), Slic3r::TreeSupport3D::set_points_on_areas(), Slic3r::TreeSupport3D::set_to_model_contact_simple(), and Slic3r::TreeSupport3D::set_to_model_contact_to_model_gracious().
| uint32_t Slic3r::TreeSupport3D::SupportElementState::roof_recovery_dtt = 0 |
Contact/interface depth that this node should recover when missing_roof_layers > 0.
Referenced by Slic3r::TreeSupport3D::merge_support_element_states(), propagate_down(), and Slic3r::TreeSupport3D::recover_pending_branch_roofs().
|
inherited |
Skip the ovalisation to parent and children when generating the final circles.
Referenced by SupportElementStateBits(), Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), Slic3r::TreeSupport3D::merge_support_element_states(), and Slic3r::TreeSupport3D::SupportElementState::propagate_down().
|
inherited |
True if this Element or any parent (element above) provides support to a support roof.
Referenced by SupportElementStateBits(), Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), Slic3r::TreeSupport3D::merge_influence_areas_two_elements(), and Slic3r::TreeSupport3D::merge_support_element_states().
| LayerIndex Slic3r::TreeSupport3D::SupportElementState::target_height |
The layer this support elements wants reach.
Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), Slic3r::TreeSupport3D::increase_single_area(), Slic3r::TreeSupport3D::merge_support_element_states(), and Slic3r::TreeSupport3D::organic_draw_branches().
| Point Slic3r::TreeSupport3D::SupportElementState::target_position |
The position this support elements wants to support on layer=target_height.
Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), and Slic3r::TreeSupport3D::merge_support_element_states().
|
inherited |
The element trys to reach the buildplate.
Referenced by SupportElementStateBits(), Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), Slic3r::TreeSupport3D::increase_single_area(), Slic3r::TreeSupport3D::merge_influence_areas_two_elements(), and Slic3r::TreeSupport3D::merge_support_element_states().
|
inherited |
Will the branch be able to rest completely on a flat surface, be it buildplate or model ?
Referenced by SupportElementStateBits(), Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), Slic3r::TreeSupport3D::increase_single_area(), Slic3r::TreeSupport3D::merge_influence_areas_two_elements(), Slic3r::TreeSupport3D::merge_support_element_states(), and Slic3r::TreeSupport3D::set_to_model_contact_to_model_gracious().
| int Slic3r::TreeSupport3D::SupportElementState::type = 0 |
|
inherited |
Whether the min_xy_distance can be used to get avoidance or similar. Will only be true if support_xy_overrides_z=Z overrides X/Y.
Referenced by SupportElementStateBits(), Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), Slic3r::TreeSupport3D::increase_single_area(), Slic3r::TreeSupport3D::merge_influence_areas_two_elements(), and Slic3r::TreeSupport3D::merge_support_element_states().
|
inherited |
Referenced by SupportElementStateBits().