OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
IMEXHelpers.hpp File Reference
#include <cassert>
#include <cstddef>
#include <map>
#include <optional>
#include <string>
#include <utility>
#include <vector>
#include <Eigen/Geometry>
#include "Config.hpp"
#include "libslic3r/BoundingBox.hpp"
#include "libslic3r/PrintConfig.hpp"
#include "libslic3r/Point.hpp"
#include "libslic3r/Polygon.hpp"
Include dependency graph for IMEXHelpers.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Slic3r::ImexMode
struct  Slic3r::ImexRoleDesc
struct  Slic3r::ImexRouting
struct  Slic3r::ImexGantryGroup
struct  Slic3r::ImexGantryGrouping

Namespaces

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

Enumerations

enum class  Slic3r::ImexRole { Slic3r::Primary , Slic3r::Copy , Slic3r::Mirror , Slic3r::Span }
enum class  Slic3r::ImexModeKind { Slic3r::Primary , Slic3r::Copy , Slic3r::Mirror , Slic3r::Custom }
enum class  Slic3r::ImexMirrorAxis { Slic3r::X , Slic3r::Y }

Functions

ImexMode Slic3r::find_imex_mode (const ConfigBase &cfg, const std::string &name)
std::vector< ImexMode > Slic3r::imex_mode_table (const ConfigBase &cfg)
std::vector< std::string > Slic3r::imex_plate_mode_choices (const ConfigBase &cfg)
ConfigOptionInts Slic3r::effective_physical_extruder_map (const ConfigOptionInts *explicit_pem, int nozzle_count)
ConfigOptionInts Slic3r::effective_physical_extruder_map (const PresetBundle &pb)
int Slic3r::imex_pem_tool_for (int filament_id, const std::string &parallel_mode, const ConfigOptionInts &pem)
int Slic3r::imex_physical_heater_for (bool is_imex, const ConfigOptionInts &pem, int logical_id)
bool Slic3r::imex_suppresses_bare_toolchange (const std::string &parallel_mode, unsigned int toolchange_count)
std::string Slic3r::imex_multicolor_block_reason (const std::string &parallel_mode, const std::string &active_tools_str, int tools_per_gantry, const std::vector< int > &used_filaments_0b, const ConfigOptionInts &pem)
int Slic3r::first_filament_for_physical_head (const ConfigOptionInts &pem, int physical)
bool Slic3r::has_mmu (const ConfigOptionInts &pem)
bool Slic3r::has_non_primary_mmu (const ConfigOptionInts &pem, int primary_physical)
int Slic3r::imex_primary_tool_for_mode (const std::string &active_tools_for_mode)
std::map< int, int > Slic3r::parse_imex_head_filament_map (const std::string &s)
int Slic3r::resolve_filament_for_head (const std::map< int, int > &plate_map, const ConfigOptionInts &pem, int physical)
int Slic3r::imex_primary_logical_from_objects (const std::vector< int > &used_slots_1b, const ConfigOptionInts &pem, int primary_physical)
std::vector< int > Slic3r::imex_secondary_logical_slots (const std::vector< int > &active_physicals, int primary_physical, const std::map< int, int > &plate_head_filament_map, const ConfigOptionInts &pem)
int Slic3r::imex_cfg_int (const ConfigBase &cfg, const std::string &key)
double Slic3r::imex_cfg_float (const ConfigBase &cfg, const std::string &key)
bool Slic3r::imex_cfg_bool (const ConfigBase &cfg, const std::string &key)
void Slic3r::imex_cfg_report_unregistered (const char *fn, const std::string &key)
template<class T>
T Slic3r::imex_cfg_enum (const ConfigBase &cfg, const std::string &key)
char Slic3r::imex_role_letter (ImexRole role)
ImexRole Slic3r::imex_role_from_suffix (const std::string &suffix)
std::vector< std::pair< int, ImexRole > > Slic3r::parse_imex_active_tools (const std::string &active_tools_for_mode)
ImexModeKind Slic3r::imex_mode_kind (const std::string &active_tools_for_mode)
ImexRouting Slic3r::imex_resolve_routing (const ConfigBase &cfg, const std::string &parallel_mode, const std::vector< int > &used_slots_1b, const ConfigOptionInts &pem)
ImexGantryGrouping Slic3r::group_imex_active_tools_by_gantry (const std::string &active_tools_for_mode, int tools_per_gantry)
ImexMirrorAxis Slic3r::imex_mirror_axis_for (int primary_phys, int target_phys, int tools_per_gantry)
Transform3d Slic3r::imex_head_transform (int, int, ImexRole role, const Vec2d &gantry_offset, const Vec2d &primary_zone_center, ImexMirrorAxis mirror_axis)
Vec2d Slic3r::compute_imex_slice_offset (bool firmware_managed, const std::string &parallel_mode, const std::optional< BoundingBoxf > &primary_zone_box)
bool Slic3r::imex_hull_violates_zones (const std::vector< BoundingBoxf3 > &zones, const Polygon &hull)

Variables

constexpr const char * Slic3r::kImexPrimaryMode = "primary"
constexpr ImexRoleDesc Slic3r::kImexRoleTable []
constexpr size_t Slic3r::kImexModeKindCount = 4

Class Documentation

◆ Slic3r::ImexRoleDesc

struct Slic3r::ImexRoleDesc
Class Members
char letter
ImexRole role

◆ Slic3r::ImexGantryGroup

struct Slic3r::ImexGantryGroup
Collaboration diagram for Slic3r::ImexGantryGroup:
Class Members
bool aggregate = false
int gantry_index = -1
int representative_phys = -1
ImexRole representative_role = ImexRole::Copy
vector< pair< int, ImexRole > > tools

◆ Slic3r::ImexGantryGrouping

struct Slic3r::ImexGantryGrouping
Collaboration diagram for Slic3r::ImexGantryGrouping:
Class Members
vector< ImexGantryGroup > groups
int primary_gantry = -1
int primary_phys = -1
bool span_on_primary = false