ENH: optmize code structure of tool order

1.Put reorder functions in ToolOrderUtils

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I49c7b447ba1f41f3747ba3127d842c4e3957b5ff
(cherry picked from commit 0f70c81a7d5686d8e80396f8f865f25b72618907)
This commit is contained in:
xun.zhang
2024-08-09 14:14:23 +08:00
committed by Noisyfox
parent 9380260a74
commit ec98375192
7 changed files with 612 additions and 578 deletions

View File

@@ -0,0 +1,29 @@
#ifndef TOOL_ORDER_UTILS_HPP
#define TOOL_ORDER_UTILS_HPP
#include<vector>
#include<optional>
#include<functional>
namespace Slic3r {
using FlushMatrix = std::vector<std::vector<float>>;
std::vector<unsigned int> 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 = false,
float *cost = nullptr);
int 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);
}
#endif // !TOOL_ORDER_UTILS_HPP