#pragma once #include #include namespace Slic3r { struct FilamentInfo; } namespace Slic3r { //Previous definitions class MachineObject; enum MappingOption { USE_LEFT_AMS = 0, USE_RIGHT_AMS, USE_LEFT_EXT, USE_RIGHT_EXT }; class DevMappingUtil { public: DevMappingUtil() = delete; ~DevMappingUtil() = delete; public: static bool is_valid_mapping_result(const MachineObject* obj, std::vector& result, bool check_empty_slot = false); static int ams_filament_mapping(const MachineObject* obj, const std::vector& filaments, std::vector& result, std::vector map_opt, std::vector exclude_id = std::vector(), bool nozzle_has_ams_then_ignore_ext = false); }; };