mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2026-01-08 15:57:47 -07:00
ENH: Add limited filament maps to slice info
jira: none Change-Id: I7b08943ba5f4e7fa9be18ba3f64caee182888d45 (cherry picked from commit 85ebb469959499d5c2d7fe349e0d8e92045c9fab)
This commit is contained in:
parent
71b4962b83
commit
444d7fa81a
5 changed files with 31 additions and 1 deletions
|
|
@ -699,8 +699,11 @@ GCodeProcessor::GCodeProcessor()
|
|||
|
||||
bool GCodeProcessor::check_multi_extruder_gcode_valid(const std::vector<Polygons> &unprintable_areas, const std::vector<int> &filament_map)
|
||||
{
|
||||
m_result.limit_filament_maps.clear();
|
||||
m_result.gcode_check_result.reset();
|
||||
|
||||
m_result.limit_filament_maps.resize(filament_map.size(), 0);
|
||||
|
||||
auto to_2d = [](const Vec3d &pos) -> Point {
|
||||
Point ps(scale_(pos.x()), scale_(pos.y()));
|
||||
return ps;
|
||||
|
|
@ -735,6 +738,15 @@ bool GCodeProcessor::check_multi_extruder_gcode_valid(const std::vector<Polygons
|
|||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < unprintable_areas.size(); ++i) {
|
||||
for (const Polygon &poly : unprintable_areas[i]) {
|
||||
if (!poly.bounding_box().overlap(bbox))
|
||||
continue;
|
||||
|
||||
m_result.limit_filament_maps[iter->first] |= (1 << i);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
// Accurate calculation is not efficient
|
||||
for (const Polygon& poly : unprintable_areas[extruder_id]) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue