//! Общий интерфейс инструмента. Реализации живут в каталоге tools/. const Point2_f = @import("models/basic_models.zig").Point2_f; /// Контекст вызова: холст и точка в координатах документа. pub const ToolContext = struct { canvas: *anyopaque, document_point: Point2_f, }; /// Интерфейс инструмента: один метод — клик по холсту в позиции курсора. pub const Tool = struct { onClick: *const fn (*const ToolContext) void, };