OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
ToolOrderUtils.cpp File Reference
#include "ToolOrderUtils.hpp"
#include "libslic3r/MultiNozzleUtils.hpp"
#include <queue>
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <optional>
#include <memory>
#include <limits>
#include <functional>
#include <boost/multiprecision/fwd.hpp>
#include <iterator>
#include <set>
#include <map>
#include <cmath>
#include <boost/multiprecision/cpp_int.hpp>
#include <vector>
#include <unordered_map>
#include <utility>
#include <unordered_set>
Include dependency graph for ToolOrderUtils.cpp:

Go to the source code of this file.

Classes

struct  Slic3r::MaxFlowWithLowerBounds
struct  Slic3r::MinCostMaxFlow

Namespaces

namespace  Slic3r
 |/ Copyright (c) Prusa Research 2020 - 2023 Enrico Turri @enricoturri1966 |/ |/ PrusaSlicer is released under the terms of the AGPLv3 or higher |/

Functions

static std::vector< unsigned int > Slic3r::solve_extruder_order_with_greedy (const std::vector< std::vector< float > > &wipe_volumes, const std::vector< unsigned int > curr_layer_extruders, const std::optional< unsigned int > &start_extruder_id, float *min_cost)
static std::vector< unsigned int > Slic3r::solve_extruder_order_with_forcast (const std::vector< std::vector< float > > &wipe_volumes, std::vector< unsigned int > curr_layer_extruders, std::vector< unsigned int > next_layer_extruders, const std::optional< unsigned int > &start_extruder_id, float *min_cost)
static std::vector< unsigned int > Slic3r::solve_extruder_order (const std::vector< std::vector< float > > &wipe_volumes, std::vector< unsigned int > all_extruders, std::optional< unsigned int > start_extruder_id, float *min_cost)
template<class T>
static std::vector< T > Slic3r::collect_filaments_in_groups (const std::unordered_set< unsigned int > &group, const std::vector< unsigned int > &filament_list)
std::vector< unsigned int > Slic3r::get_extruders_order (const std::vector< std::vector< float > > &wipe_volumes, const std::vector< unsigned int > &curr_layer_extruders, const std::vector< unsigned int > &next_layer_extruders, const std::optional< unsigned int > &start_extruder_id, bool use_forcast, float *cost)
static int Slic3r::reorder_filaments_for_minimum_flush_volume_base (const std::vector< unsigned int > &filament_lists, const std::vector< std::vector< unsigned int > > &layer_filaments, const FlushMatrix &flush_matrix, const std::function< bool(int, std::vector< int > &)> get_custom_seq, std::vector< std::vector< unsigned int > > *filament_sequences, std::optional< unsigned int > initial_filament_id=std::nullopt)
int Slic3r::reorder_filaments_for_minimum_flush_volume (const std::vector< unsigned int > &filament_lists, const std::vector< int > &filament_maps, const std::vector< std::vector< unsigned int > > &layer_filaments, const std::vector< FlushMatrix > &flush_matrix, std::optional< std::function< bool(int, std::vector< int > &)> > get_custom_seq, std::vector< std::vector< unsigned int > > *filament_sequences, const std::unordered_map< int, int > &nozzle_status)
int Slic3r::reorder_filaments_for_multi_nozzle_extruder (const std::vector< unsigned int > &filament_lists, const MultiNozzleUtils::LayeredNozzleGroupResult &nozzle_group_result, const std::vector< std::vector< unsigned int > > &layer_filaments, const std::vector< FlushMatrix > &flush_matrix, const std::function< bool(int, std::vector< int > &)> get_custom_seq, std::vector< std::vector< unsigned int > > *filament_sequences, const MultiNozzleUtils::NozzleStatusRecorder &initial_status)