Layer-aware nozzle-grouping result. Used by the back-end slicing code; supports per-layer nozzle mapping. More...
#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/MultiNozzleUtils.hpp>
Public Member Functions | |
| LayeredNozzleGroupResult (bool support_dynamic_map=false) | |
| bool | are_filaments_same_extruder (int filament_id1, int filament_id2, int layer_id=-1) const |
| bool | are_filaments_same_nozzle (int filament_id1, int filament_id2, int layer_id=-1) const |
| int | get_extruder_count () const override |
| std::vector< NozzleInfo > | get_used_nozzles_in_extruder (int target_extruder_id=-1) const override |
| std::vector< NozzleInfo > | get_used_nozzles_in_extruder (int target_extruder_id, int layer_id) const |
| std::vector< int > | get_used_extruders () const override |
| std::vector< int > | get_used_extruders (int layer_id) const |
| std::vector< int > | get_extruder_map (bool zero_based=true, int layer_id=-1) const |
| std::vector< int > | get_nozzle_map (int layer_id=-1) const |
| std::vector< int > | get_volume_map (int layer_id=-1) const |
| std::vector< unsigned int > | get_used_filaments () const override |
| std::vector< unsigned int > | get_used_filaments (int layer_id) const |
| std::optional< NozzleInfo > | get_nozzle_for_filament (int filament_id, int layer_id=-1) const |
| std::vector< NozzleInfo > | get_nozzles_for_filament (int filament_id) const override |
| std::optional< NozzleInfo > | get_nozzle_from_id (int nozzle_id) const override |
| std::optional< NozzleInfo > | get_first_nozzle_for_filament (int filament_id) const override |
| int | get_extruder_id (int filament_id, int layer_id=-1) const |
| int | get_nozzle_id (int filament_id, int layer_id=-1) const |
| size_t | get_layer_count () const |
| const std::vector< int > & | get_layer_filament_nozzle_map (int layer_id) const |
| const std::vector< std::vector< int > > & | get_layer_filament_nozzle_maps () const |
| const std::vector< std::vector< unsigned int > > & | get_layer_filament_sequences () const |
| int | estimate_seq_flush_weight (const std::vector< std::vector< std::vector< float > > > &flush_matrix, const std::vector< int > &filament_change_seq) const |
| bool | is_support_dynamic_nozzle_map () const |
Static Public Member Functions | |
| static std::optional< LayeredNozzleGroupResult > | create (const std::vector< int > &filament_nozzle_map, const std::vector< NozzleInfo > &nozzle_list, const std::vector< unsigned int > &used_filaments) |
| static std::optional< LayeredNozzleGroupResult > | create (const std::vector< std::vector< int > > &layer_filament_nozzle_maps, const std::vector< NozzleInfo > &nozzle_list, const std::vector< unsigned int > &used_filaments, const std::vector< std::vector< unsigned int > > &layer_filament_sequences) |
| static std::optional< LayeredNozzleGroupResult > | create (const std::vector< unsigned int > &used_filaments, const std::vector< int > &filament_map, const std::vector< int > &filament_volume_map, const std::vector< int > &filament_nozzle_map, const std::vector< std::map< NozzleVolumeType, int > > &nozzle_count, float diameter) |
Protected Attributes | |
| bool | support_dynamic_nozzle_map {false} |
Private Attributes | |
| std::vector< std::vector< int > > | _layer_filament_nozzle_maps |
| std::vector< std::vector< unsigned int > > | _layer_filament_sequences |
| std::vector< int > | _default_filament_nozzle_map |
| std::vector< unsigned int > | _used_filaments |
| std::vector< NozzleInfo > | _nozzle_list |
Layer-aware nozzle-grouping result. Used by the back-end slicing code; supports per-layer nozzle mapping.
|
inline |
References Slic3r::MultiNozzleUtils::NozzleGroupResultBase::NozzleGroupResultBase().
Referenced by create(), and create().
| bool Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::are_filaments_same_extruder | ( | int | filament_id1, |
| int | filament_id2, | ||
| int | layer_id = -1 ) const |
References get_nozzle_for_filament().
| bool Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::are_filaments_same_nozzle | ( | int | filament_id1, |
| int | filament_id2, | ||
| int | layer_id = -1 ) const |
References get_nozzle_for_filament().
|
static |
References LayeredNozzleGroupResult(), _default_filament_nozzle_map, _nozzle_list, _used_filaments, and Slic3r::filament_nozzle_map().
Referenced by Slic3r::ToolOrdering::build_sequential_group_result(), create(), Slic3r::GCodeProcessor::ensure_nozzle_group_result(), Slic3r::full_evaluate(), and Slic3r::refine_groups_by_Nozzle_State().
|
static |
References LayeredNozzleGroupResult(), _default_filament_nozzle_map, _layer_filament_nozzle_maps, _layer_filament_sequences, _nozzle_list, _used_filaments, Slic3r::MultiNozzleUtils::has_filament_mapped_to_multiple_nozzles(), and Slic3r::MultiNozzleUtils::NozzleGroupResultBase::support_dynamic_nozzle_map.
|
static |
References Slic3r::MultiNozzleUtils::build_nozzle_list(), create(), Slic3r::MultiNozzleUtils::NozzleGroupInfo::diameter, Slic3r::MultiNozzleUtils::NozzleGroupInfo::extruder_id, Slic3r::filament_map(), Slic3r::filament_nozzle_map(), Slic3r::format_diameter_to_str(), Slic3r::MultiNozzleUtils::NozzleGroupInfo::nozzle_count, and Slic3r::MultiNozzleUtils::NozzleGroupInfo::volume_type.
| int Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::estimate_seq_flush_weight | ( | const std::vector< std::vector< std::vector< float > > > & | flush_matrix, |
| const std::vector< int > & | filament_change_seq ) const |
References Slic3r::MultiNozzleUtils::NozzleStatusRecorder::get_filament_in_nozzle(), get_nozzle_for_filament(), and Slic3r::MultiNozzleUtils::NozzleStatusRecorder::set_nozzle_status().
|
overridevirtual |
Implements Slic3r::MultiNozzleUtils::NozzleGroupResultBase.
References _nozzle_list.
| int Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::get_extruder_id | ( | int | filament_id, |
| int | layer_id = -1 ) const |
References get_nozzle_for_filament().
| std::vector< int > Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::get_extruder_map | ( | bool | zero_based = true, |
| int | layer_id = -1 ) const |
References _nozzle_list, Slic3r::filament_nozzle_map(), and get_layer_filament_nozzle_map().
Referenced by Slic3r::Print::update_to_config_by_nozzle_group_result().
|
overridevirtual |
Implements Slic3r::MultiNozzleUtils::NozzleGroupResultBase.
References _default_filament_nozzle_map, _layer_filament_nozzle_maps, get_nozzle_from_id(), get_used_filaments(), and Slic3r::MultiNozzleUtils::NozzleGroupResultBase::support_dynamic_nozzle_map.
|
inline |
References _layer_filament_nozzle_maps.
| const std::vector< int > & Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::get_layer_filament_nozzle_map | ( | int | layer_id | ) | const |
References _default_filament_nozzle_map, and _layer_filament_nozzle_maps.
Referenced by get_extruder_map(), get_nozzle_for_filament(), get_nozzle_map(), get_volume_map(), and Slic3r::refine_groups_by_Nozzle_State().
|
inline |
References _layer_filament_nozzle_maps.
|
inline |
References _layer_filament_sequences.
Referenced by Slic3r::FilamentGroupUtils::get_estimate_extruder_filament_change_count().
| std::optional< NozzleInfo > Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::get_nozzle_for_filament | ( | int | filament_id, |
| int | layer_id = -1 ) const |
References Slic3r::filament_nozzle_map(), get_layer_filament_nozzle_map(), and get_nozzle_from_id().
Referenced by Slic3r::Print::_make_wipe_tower(), are_filaments_same_extruder(), are_filaments_same_nozzle(), Slic3r::calc_filament_change_info_by_toolorder(), Slic3r::Print::collect_filament_variant_uses(), estimate_seq_flush_weight(), Slic3r::Print::get_config_index(), Slic3r::Print::get_config_index(), get_extruder_id(), get_nozzle_id(), get_used_extruders(), get_used_nozzles_in_extruder(), and Slic3r::reorder_filaments_for_multi_nozzle_extruder().
|
overridevirtual |
Implements Slic3r::MultiNozzleUtils::NozzleGroupResultBase.
References _nozzle_list.
Referenced by get_first_nozzle_for_filament(), and get_nozzle_for_filament().
| int Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::get_nozzle_id | ( | int | filament_id, |
| int | layer_id = -1 ) const |
References get_nozzle_for_filament().
| std::vector< int > Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::get_nozzle_map | ( | int | layer_id = -1 | ) | const |
References _nozzle_list, Slic3r::filament_nozzle_map(), and get_layer_filament_nozzle_map().
Referenced by Slic3r::Print::update_to_config_by_nozzle_group_result().
|
overridevirtual |
Implements Slic3r::MultiNozzleUtils::NozzleGroupResultBase.
References _default_filament_nozzle_map, _layer_filament_nozzle_maps, _nozzle_list, and Slic3r::MultiNozzleUtils::NozzleGroupResultBase::support_dynamic_nozzle_map.
Referenced by Slic3r::Print::collect_filament_variant_uses(), get_used_extruders(), and get_used_nozzles_in_extruder().
|
overridevirtual |
Implements Slic3r::MultiNozzleUtils::NozzleGroupResultBase.
References get_used_extruders().
Referenced by Slic3r::FilamentGroupUtils::get_estimate_extruder_change_count(), Slic3r::FilamentGroupUtils::get_estimate_extruder_filament_change_count(), Slic3r::FilamentGroupUtils::get_estimate_nozzle_change_count(), and get_used_extruders().
| std::vector< int > Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::get_used_extruders | ( | int | layer_id | ) | const |
References get_nozzle_for_filament(), get_nozzles_for_filament(), and get_used_filaments().
|
inlineoverridevirtual |
Implements Slic3r::MultiNozzleUtils::NozzleGroupResultBase.
References _used_filaments.
Referenced by get_first_nozzle_for_filament(), get_used_extruders(), get_used_nozzles_in_extruder(), Slic3r::refine_groups_by_Nozzle_State(), and Slic3r::Print::update_to_config_by_nozzle_group_result().
| std::vector< unsigned int > Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::get_used_filaments | ( | int | layer_id | ) | const |
References _layer_filament_nozzle_maps, _layer_filament_sequences, and _used_filaments.
| std::vector< NozzleInfo > Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::get_used_nozzles_in_extruder | ( | int | target_extruder_id, |
| int | layer_id ) const |
References _nozzle_list, get_nozzle_for_filament(), get_nozzles_for_filament(), and get_used_filaments().
|
overridevirtual |
Implements Slic3r::MultiNozzleUtils::NozzleGroupResultBase.
References get_used_nozzles_in_extruder().
Referenced by Slic3r::FilamentGroupUtils::get_estimate_extruder_filament_change_count(), Slic3r::FilamentGroupUtils::get_estimate_nozzle_change_count(), and get_used_nozzles_in_extruder().
| std::vector< int > Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::get_volume_map | ( | int | layer_id = -1 | ) | const |
References _nozzle_list, Slic3r::filament_nozzle_map(), and get_layer_filament_nozzle_map().
Referenced by Slic3r::Print::update_to_config_by_nozzle_group_result().
|
inlineinherited |
References support_dynamic_nozzle_map.
Referenced by Slic3r::Print::update_to_config_by_nozzle_group_result().
|
private |
Referenced by create(), create(), get_first_nozzle_for_filament(), get_layer_filament_nozzle_map(), and get_nozzles_for_filament().
|
private |
|
private |
Referenced by create(), get_layer_filament_sequences(), and get_used_filaments().
|
private |
|
private |
Referenced by create(), create(), get_used_filaments(), and get_used_filaments().
|
protectedinherited |
Referenced by NozzleGroupResultBase(), Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::create(), Slic3r::MultiNozzleUtils::StaticNozzleGroupResult::create(), Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::get_first_nozzle_for_filament(), Slic3r::MultiNozzleUtils::LayeredNozzleGroupResult::get_nozzles_for_filament(), and is_support_dynamic_nozzle_map().