From 197db2084ff81653c6b8e38c495df9c0fec5e1af Mon Sep 17 00:00:00 2001 From: "Lukas K." Date: Thu, 25 Jul 2024 00:05:08 +0200 Subject: [PATCH] wip --- .../tools/tool_helper_save_placements.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/core/tools/tool_helper_save_placements.cpp b/src/core/tools/tool_helper_save_placements.cpp index b5c9f78f1..cbc8203bd 100644 --- a/src/core/tools/tool_helper_save_placements.cpp +++ b/src/core/tools/tool_helper_save_placements.cpp @@ -1,6 +1,7 @@ #include "tool_helper_save_placements.hpp" #include "document/idocument_board.hpp" #include "document/idocument_package.hpp" +#include "document/idocument_padstack.hpp" #include "board/board.hpp" #include "pool/package.hpp" #include "util/text_renderer.hpp" @@ -24,6 +25,8 @@ bool ToolHelperSavePlacements::type_is_supported(ObjectType type) case ObjectType::BOARD_DECAL: case ObjectType::PICTURE: case ObjectType::PAD: + case ObjectType::HOLE: + case ObjectType::SHAPE: return true; default: @@ -89,6 +92,16 @@ void ToolHelperSavePlacements::save_placements() std::piecewise_construct, std::forward_as_tuple(it), std::forward_as_tuple(pad.placement, pad.placement.transform_bb(pad.padstack.get_bbox()))); } break; + case ObjectType::HOLE: { + const auto &hole = doc.a->get_padstack().holes.at(it.uuid); + placements.emplace(std::piecewise_construct, std::forward_as_tuple(it), + std::forward_as_tuple(hole.placement, hole.placement.transform_bb(hole.get_bbox()))); + } break; + case ObjectType::SHAPE: { + const auto &shape = doc.a->get_padstack().shapes.at(it.uuid); + placements.emplace(std::piecewise_construct, std::forward_as_tuple(it), + std::forward_as_tuple(shape.placement, shape.placement.transform_bb(shape.get_bbox()))); + } break; default:; } } @@ -122,6 +135,12 @@ void ToolHelperSavePlacements::apply_placements(Callback fn) case ObjectType::PAD: doc.k->get_package().pads.at(sel.uuid).placement = fn(sel, it); break; + case ObjectType::HOLE: + doc.a->get_padstack().holes.at(sel.uuid).placement = fn(sel, it); + break; + case ObjectType::SHAPE: + doc.a->get_padstack().shapes.at(sel.uuid).placement = fn(sel, it); + break; default:; } }