OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::SupportGeneratorLayer Class Reference

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

Collaboration diagram for Slic3r::SupportGeneratorLayer:

Public Member Functions

void reset ()
bool operator== (const SupportGeneratorLayer &layer2) const
bool operator< (const SupportGeneratorLayer &layer2) const
void merge (SupportGeneratorLayer &&rhs)
coordf_t bottom_print_z () const
coordf_t extreme_z () const

Public Attributes

SupporLayerType layer_type { SupporLayerType::Unknown }
coordf_t print_z { 0 }
coordf_t bottom_z { 0 }
coordf_t height { 0 }
size_t idx_object_layer_above { size_t(-1) }
size_t idx_object_layer_below { size_t(-1) }
bool bridging { false }
Polygons polygons
std::unique_ptr< Polygons > contact_polygons
std::unique_ptr< Polygons > overhang_polygons
std::unique_ptr< Polygons > enforcer_polygons

Detailed Description

Member Function Documentation

◆ bottom_print_z()

coordf_t Slic3r::SupportGeneratorLayer::bottom_print_z ( ) const
inline
88{ return print_z - height; }
coordf_t print_z
Definition SupportLayer.hpp:95
coordf_t height
Definition SupportLayer.hpp:100

References height, and print_z.

Referenced by Slic3r::generate_raft_base().

Here is the caller graph for this function:

◆ extreme_z()

coordf_t Slic3r::SupportGeneratorLayer::extreme_z ( ) const
inline
91{ return (this->layer_type == SupporLayerType::TopContact) ? this->bottom_z : this->print_z; }
SupporLayerType layer_type
Definition SupportLayer.hpp:93
coordf_t bottom_z
Definition SupportLayer.hpp:98
@ TopContact
Definition SupportLayer.hpp:36

References bottom_z, layer_type, print_z, and Slic3r::TopContact.

Referenced by Slic3r::PrintObjectSupportMaterial::raft_and_intermediate_support_layers().

Here is the caller graph for this function:

◆ merge()

void Slic3r::SupportGeneratorLayer::merge ( SupportGeneratorLayer && rhs)
inline
71 {
72 // The union_() does not support move semantic yet, but maybe one day it will.
73 this->polygons = union_(this->polygons, std::move(rhs.polygons));
74 auto merge = [](std::unique_ptr<Polygons> &dst, std::unique_ptr<Polygons> &src) {
75 if (! dst || dst->empty())
76 dst = std::move(src);
77 else if (src && ! src->empty())
78 *dst = union_(*dst, std::move(*src));
79 };
80 merge(this->contact_polygons, rhs.contact_polygons);
81 merge(this->overhang_polygons, rhs.overhang_polygons);
82 merge(this->enforcer_polygons, rhs.enforcer_polygons);
83 rhs.reset();
84 }
Polygons polygons
Definition SupportLayer.hpp:111
std::unique_ptr< Polygons > enforcer_polygons
Definition SupportLayer.hpp:116
std::unique_ptr< Polygons > contact_polygons
Definition SupportLayer.hpp:113
void merge(SupportGeneratorLayer &&rhs)
Definition SupportLayer.hpp:71
std::unique_ptr< Polygons > overhang_polygons
Definition SupportLayer.hpp:114
Slic3r::Polygons union_(const Slic3r::Polygons &subject)
Definition ClipperUtils.cpp:801

References contact_polygons, enforcer_polygons, merge(), overhang_polygons, polygons, and Slic3r::union_().

Referenced by merge(), and Slic3r::merge_contact_layers().

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

◆ operator<()

bool Slic3r::SupportGeneratorLayer::operator< ( const SupportGeneratorLayer & layer2) const
inline
56 {
57 if (print_z < layer2.print_z) {
58 return true;
59 } else if (print_z == layer2.print_z) {
60 if (height > layer2.height)
61 return true;
62 else if (height == layer2.height) {
63 // Bridging layers first.
64 return bridging && ! layer2.bridging;
65 } else
66 return false;
67 } else
68 return false;
69 }
bool bridging
Definition SupportLayer.hpp:108

References bridging, height, and print_z.

◆ operator==()

bool Slic3r::SupportGeneratorLayer::operator== ( const SupportGeneratorLayer & layer2) const
inline
51 {
52 return print_z == layer2.print_z && height == layer2.height && bridging == layer2.bridging;
53 }

References bridging, height, and print_z.

◆ reset()

void Slic3r::SupportGeneratorLayer::reset ( )
inline
47 {
48 *this = SupportGeneratorLayer();
49 }

Member Data Documentation

◆ bottom_z

◆ bridging

◆ contact_polygons

◆ enforcer_polygons

◆ height

◆ idx_object_layer_above

size_t Slic3r::SupportGeneratorLayer::idx_object_layer_above { size_t(-1) }
103{ size_t(-1) };

Referenced by Slic3r::new_contact_layer().

◆ idx_object_layer_below

size_t Slic3r::SupportGeneratorLayer::idx_object_layer_below { size_t(-1) }
106{ size_t(-1) };

Referenced by Slic3r::detect_belt_floor_bottom_contacts().

◆ layer_type

◆ overhang_polygons

◆ polygons

◆ print_z


The documentation for this class was generated from the following file:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/Support/SupportLayer.hpp