Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Slic3r::LayerTools Class Reference

#include <src/libslic3r/GCode/ToolOrdering.hpp>

+ Collaboration diagram for Slic3r::LayerTools:

Public Member Functions

bool operator< (const LayerTools &rhs) const
 
bool operator== (const LayerTools &rhs) const
 
bool is_extruder_order (unsigned int a, unsigned int b) const
 
bool has_extruder (unsigned int extruder) const
 
unsigned int perimeter_extruder (const PrintRegion &region) const
 
unsigned int infill_extruder (const PrintRegion &region) const
 
unsigned int solid_infill_extruder (const PrintRegion &region) const
 
unsigned int extruder (const ExtrusionEntityCollection &extrusions, const PrintRegion &region) const
 
WipingExtrusionswiping_extrusions_nonconst ()
 
const WipingExtrusionswiping_extrusions () const
 

Public Attributes

coordf_t print_z = 0.
 
bool has_object = false
 
bool has_support = false
 
std::vector< unsigned int > extruders
 
unsigned int extruder_override = 0
 
bool has_skirt = false
 
bool has_wipe_tower = false
 
size_t wipe_tower_partitions = 0
 
coordf_t wipe_tower_layer_height = 0.
 
const CustomGCode::Itemcustom_gcode = nullptr
 

Private Member Functions

 LayerTools (const coordf_t z)
 

Private Attributes

WipingExtrusions m_wiping_extrusions
 

Friends

class ToolOrdering
 

Detailed Description

Constructor & Destructor Documentation

◆ LayerTools()

Slic3r::LayerTools::LayerTools ( const coordf_t  z)
inlineprivate
117: print_z(z) {}
coordf_t print_z
Definition ToolOrdering.hpp:89

Member Function Documentation

◆ extruder()

unsigned int Slic3r::LayerTools::extruder ( const ExtrusionEntityCollection extrusions,
const PrintRegion region 
) const
61{
62 assert(region.config().perimeter_extruder.value > 0);
63 assert(region.config().infill_extruder.value > 0);
64 assert(region.config().solid_infill_extruder.value > 0);
65 // 1 based extruder ID.
66 unsigned int extruder = this->extruder_override == 0 ?
67 (extrusions.role().is_infill() ?
68 (extrusions.entities.front()->role().is_solid_infill() ? region.config().solid_infill_extruder : region.config().infill_extruder) :
69 region.config().perimeter_extruder.value) :
71 return (extruder == 0) ? 0 : extruder - 1;
72}
unsigned int extruder_override
Definition ToolOrdering.hpp:96
unsigned int extruder(const ExtrusionEntityCollection &extrusions, const PrintRegion &region) const
Definition ToolOrdering.cpp:60
unsigned int perimeter_extruder(const PrintRegion &region) const
Definition ToolOrdering.cpp:41

References Slic3r::PrintRegion::config(), Slic3r::ExtrusionEntityCollection::entities, extruder(), extruder_override, Slic3r::ExtrusionRole::is_infill(), and Slic3r::ExtrusionEntityCollection::role().

Referenced by extruder(), has_extruder(), is_extruder_order(), Slic3r::is_overriddable(), and Slic3r::GCode::process_layer_single_object().

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

◆ has_extruder()

bool Slic3r::LayerTools::has_extruder ( unsigned int  extruder) const
inline
80{ return std::find(this->extruders.begin(), this->extruders.end(), extruder) != this->extruders.end(); }
std::vector< unsigned int > extruders
Definition ToolOrdering.hpp:93

References extruder(), and extruders.

Referenced by Slic3r::WipingExtrusions::ensure_perimeters_infills_order(), and Slic3r::GCode::process_layer_single_object().

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

◆ infill_extruder()

unsigned int Slic3r::LayerTools::infill_extruder ( const PrintRegion region) const
48{
49 assert(region.config().infill_extruder.value > 0);
50 return ((this->extruder_override == 0) ? region.config().infill_extruder.value : this->extruder_override) - 1;
51}

References Slic3r::PrintRegion::config(), and extruder_override.

Referenced by Slic3r::WipingExtrusions::ensure_perimeters_infills_order().

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

◆ is_extruder_order()

bool Slic3r::LayerTools::is_extruder_order ( unsigned int  a,
unsigned int  b 
) const
26{
27 if (a == b)
28 return false;
29
30 for (auto extruder : extruders) {
31 if (extruder == a)
32 return true;
33 if (extruder == b)
34 return false;
35 }
36
37 return false;
38}

References extruder(), and extruders.

Referenced by Slic3r::WipingExtrusions::ensure_perimeters_infills_order(), and Slic3r::WipingExtrusions::mark_wiping_extrusions().

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

◆ operator<()

bool Slic3r::LayerTools::operator< ( const LayerTools rhs) const
inline
76{ return print_z < rhs.print_z; }

References print_z.

◆ operator==()

bool Slic3r::LayerTools::operator== ( const LayerTools rhs) const
inline
77{ return print_z == rhs.print_z; }

References print_z.

◆ perimeter_extruder()

unsigned int Slic3r::LayerTools::perimeter_extruder ( const PrintRegion region) const
42{
43 assert(region.config().perimeter_extruder.value > 0);
44 return ((this->extruder_override == 0) ? region.config().perimeter_extruder.value : this->extruder_override) - 1;
45}

References Slic3r::PrintRegion::config(), and extruder_override.

Referenced by Slic3r::WipingExtrusions::ensure_perimeters_infills_order(), and Slic3r::WipingExtrusions::mark_wiping_extrusions().

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

◆ solid_infill_extruder()

unsigned int Slic3r::LayerTools::solid_infill_extruder ( const PrintRegion region) const
54{
55 assert(region.config().solid_infill_extruder.value > 0);
56 return ((this->extruder_override == 0) ? region.config().solid_infill_extruder.value : this->extruder_override) - 1;
57}

References Slic3r::PrintRegion::config(), and extruder_override.

+ Here is the call graph for this function:

◆ wiping_extrusions()

const WipingExtrusions & Slic3r::LayerTools::wiping_extrusions ( ) const
inline
112{ return m_wiping_extrusions; }
WipingExtrusions m_wiping_extrusions
Definition ToolOrdering.hpp:120

References m_wiping_extrusions.

Referenced by Slic3r::GCode::process_layer(), and Slic3r::GCode::process_layer_single_object().

+ Here is the caller graph for this function:

◆ wiping_extrusions_nonconst()

WipingExtrusions & Slic3r::LayerTools::wiping_extrusions_nonconst ( )
inline
111{ return m_wiping_extrusions; }

References m_wiping_extrusions.

Friends And Related Symbol Documentation

◆ ToolOrdering

friend class ToolOrdering
friend

Member Data Documentation

◆ custom_gcode

const CustomGCode::Item* Slic3r::LayerTools::custom_gcode = nullptr

◆ extruder_override

unsigned int Slic3r::LayerTools::extruder_override = 0

◆ extruders

◆ has_object

bool Slic3r::LayerTools::has_object = false

◆ has_skirt

◆ has_support

bool Slic3r::LayerTools::has_support = false

◆ has_wipe_tower

◆ m_wiping_extrusions

WipingExtrusions Slic3r::LayerTools::m_wiping_extrusions
private

◆ print_z

◆ wipe_tower_layer_height

coordf_t Slic3r::LayerTools::wipe_tower_layer_height = 0.

◆ wipe_tower_partitions

size_t Slic3r::LayerTools::wipe_tower_partitions = 0

The documentation for this class was generated from the following files: