#pragma once #include #include "../DrawData.hpp" #include "../DrawComponents/DrawComponent.hpp" class DrawingProgram; class EraserTool { public: EraserTool(DrawingProgram& initDrawP); void gui_toolbox(); void tool_update(); void reset_tool(); void draw(SkCanvas* canvas, const DrawData& drawData); private: std::unordered_set, ServerClientID>::ObjectInfoPtr> erasedComponents; std::unordered_set> erasedBVHNodes; void move_erased_components_from_bvh_nodes_recursive(const std::shared_ptr& bvhNode); DrawingProgram& drawP; };