OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::TreeSupport3D::SupportElementState Struct Reference

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

Inheritance diagram for Slic3r::TreeSupport3D::SupportElementState:
Collaboration diagram for Slic3r::TreeSupport3D::SupportElementState:

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

Detailed Description

Member Function Documentation

◆ has_pending_roof_recovery()

bool Slic3r::TreeSupport3D::SupportElementState::has_pending_roof_recovery ( ) const
inlinenodiscard
243{ return this->missing_roof_layers > 0; }
uint32_t missing_roof_layers
Number of pending roof/contact recovery slices from this node downward, including this node.
Definition TreeSupport3D.hpp:213

Referenced by propagate_down(), and Slic3r::TreeSupport3D::recover_pending_branch_roofs().

Here is the caller graph for this function:

◆ locked()

bool Slic3r::TreeSupport3D::SupportElementState::locked ( ) const
inlinenodiscard
242{ return this->distance_to_top < this->dont_move_until; }
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.
Definition TreeSupport3D.hpp:203
uint32_t distance_to_top
The amount of layers this element is below the topmost layer of this branch.
Definition TreeSupport3D.hpp:181

◆ propagate_down()

SupportElementState Slic3r::TreeSupport3D::SupportElementState::propagate_down ( const SupportElementState & src)
inlinestaticnodiscard
228 {
229 SupportElementState dst{ src };
230 ++ dst.distance_to_top;
231 -- dst.layer_idx;
232 if (dst.has_pending_roof_recovery()) {
233 -- dst.missing_roof_layers;
234 ++ dst.roof_recovery_dtt;
235 }
236 // set to invalid as we are a new node on a new layer
237 dst.result_on_layer_reset();
238 dst.skip_ovalisation = false;
239 return dst;
240 }

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ result_on_layer_is_set()

bool Slic3r::TreeSupport3D::SupportElementState::result_on_layer_is_set ( ) const
inline
188{ return this->result_on_layer != Point{ std::numeric_limits<coord_t>::max(), std::numeric_limits<coord_t>::max() }; }
Kernel::Point_3 Point
Definition MeshRepair.cpp:81
Point result_on_layer
The resulting center point around which a circle will be drawn later. Will be set by setPointsOnAreas...
Definition TreeSupport3D.hpp:187

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().

Here is the caller graph for this function:

◆ result_on_layer_reset()

void Slic3r::TreeSupport3D::SupportElementState::result_on_layer_reset ( )
inline
189{ this->result_on_layer = Point{ std::numeric_limits<coord_t>::max(), std::numeric_limits<coord_t>::max() }; }

Referenced by propagate_down().

Here is the caller graph for this function:

◆ set_pending_roof_recovery()

void Slic3r::TreeSupport3D::SupportElementState::set_pending_roof_recovery ( uint32_t pending_layers,
uint32_t recovery_depth )
inline
221 {
222 this->missing_roof_layers = pending_layers;
223 this->roof_recovery_dtt = pending_layers > 0 ? recovery_depth : 0;
224 }
uint32_t roof_recovery_dtt
Contact/interface depth that this node should recover when missing_roof_layers > 0.
Definition TreeSupport3D.hpp:218

Referenced by Slic3r::TreeSupport3D::RichInterfacePlacer::add_point_as_influence_area(), and Slic3r::TreeSupport3D::merge_support_element_states().

Here is the caller graph for this function:

Member Data Documentation

◆ can_use_safe_radius

bool Slic3r::TreeSupport3D::SupportElementStateBits::can_use_safe_radius
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().

◆ deleted

◆ distance_to_top

◆ dont_move_until

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().

◆ effective_radius_height

uint32_t Slic3r::TreeSupport3D::SupportElementState::effective_radius_height

◆ elephant_foot_increases

double Slic3r::TreeSupport3D::SupportElementState::elephant_foot_increases

◆ increased_to_model_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().

◆ last_area_increase

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().

◆ layer_idx

◆ lost

bool Slic3r::TreeSupport3D::SupportElementStateBits::lost
inherited

Referenced by SupportElementStateBits().

◆ marked

bool Slic3r::TreeSupport3D::SupportElementStateBits::marked
inherited

◆ missing_roof_layers

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().

◆ next_position

Point Slic3r::TreeSupport3D::SupportElementState::next_position

◆ print_z

float Slic3r::TreeSupport3D::SupportElementState::print_z = 0

◆ radius

coordf_t Slic3r::TreeSupport3D::SupportElementState::radius = 0

◆ result_on_layer

Point Slic3r::TreeSupport3D::SupportElementState::result_on_layer { std::numeric_limits<coord_t>::max(), std::numeric_limits<coord_t>::max() }

◆ roof_recovery_dtt

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().

◆ skip_ovalisation

bool Slic3r::TreeSupport3D::SupportElementStateBits::skip_ovalisation
inherited

◆ supports_roof

bool Slic3r::TreeSupport3D::SupportElementStateBits::supports_roof
inherited

◆ target_height

◆ target_position

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().

◆ to_buildplate

◆ to_model_gracious

◆ type

int Slic3r::TreeSupport3D::SupportElementState::type = 0

◆ use_min_xy_dist

bool Slic3r::TreeSupport3D::SupportElementStateBits::use_min_xy_dist
inherited

◆ verylost

bool Slic3r::TreeSupport3D::SupportElementStateBits::verylost
inherited

Referenced by SupportElementStateBits().


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