refactor: Удалена нереализованная фигура "Дуга"

Полностью удалены модель, инструменты, рендеринг и связанные UI-элементы для фигуры "Дуга", поскольку она не была реализована в системе.
Также обновлены иконки для инструментов "Линия" и "Ломаная линия".
This commit is contained in:
2026-03-03 20:07:03 +03:00
parent 4bb98f1f41
commit 84c9a55ee5
10 changed files with 2 additions and 60 deletions

View File

@@ -1,9 +1,8 @@
const dvui = @import("dvui"); const dvui = @import("dvui");
pub const line = dvui.entypo.line_graph; pub const line = dvui.entypo.flow_line;
pub const ellipse = dvui.entypo.circle; pub const ellipse = dvui.entypo.circle;
pub const arc = dvui.entypo.loop; pub const broken = dvui.entypo.line_graph;
pub const broken = dvui.entypo.flow_line;
pub const trash = dvui.entypo.trash; pub const trash = dvui.entypo.trash;
pub const cross = dvui.entypo.cross; pub const cross = dvui.entypo.cross;
pub const plus = dvui.entypo.plus; pub const plus = dvui.entypo.plus;

View File

@@ -6,7 +6,6 @@ const Object = @This();
pub const ShapeKind = enum { pub const ShapeKind = enum {
line, line,
ellipse, ellipse,
arc,
broken, broken,
}; };

View File

@@ -1,23 +0,0 @@
const std = @import("std");
const Object = @import("../Object.zig");
const PropertyData = @import("../Property.zig").Data;
const Rect_f = @import("../basic_models.zig").Rect_f;
const shape_mod = @import("shape.zig");
/// Теги обязательных свойств (arc не реализован).
pub fn getRequiredTags() []const std.meta.Tag(PropertyData) {
return &[_]std.meta.Tag(PropertyData){};
}
/// Добавляет свойства по умолчанию для дуги.
pub fn appendDefaultShapeProperties(allocator: std.mem.Allocator, obj: *Object) !void {
_ = allocator;
_ = obj;
return error.ArcNotImplemented;
}
/// Локальные границы дуги (не реализовано).
pub fn getLocalBounds(obj: *const Object) !Rect_f {
try shape_mod.ensure(obj, .arc);
return error.ArcNotImplemented;
}

View File

@@ -7,8 +7,6 @@ const basic_models = @import("../basic_models.zig");
const line = @import("line.zig"); const line = @import("line.zig");
const ellipse = @import("ellipse.zig"); const ellipse = @import("ellipse.zig");
const broken = @import("broken.zig"); const broken = @import("broken.zig");
const arc = @import("arc.zig");
pub const Rect = basic_models.Rectf; pub const Rect = basic_models.Rectf;
/// Создаёт объект с дефолтными общими и фигурными свойствами. /// Создаёт объект с дефолтными общими и фигурными свойствами.
@@ -19,7 +17,6 @@ pub fn createObject(allocator: std.mem.Allocator, shape_kind: Object.ShapeKind)
.line => try line.appendDefaultShapeProperties(allocator, &obj), .line => try line.appendDefaultShapeProperties(allocator, &obj),
.ellipse => try ellipse.appendDefaultShapeProperties(allocator, &obj), .ellipse => try ellipse.appendDefaultShapeProperties(allocator, &obj),
.broken => try broken.appendDefaultShapeProperties(allocator, &obj), .broken => try broken.appendDefaultShapeProperties(allocator, &obj),
.arc => try arc.appendDefaultShapeProperties(allocator, &obj),
} }
return obj; return obj;
} }
@@ -50,7 +47,6 @@ fn requiredTagsFor(kind: Object.ShapeKind) []const std.meta.Tag(PropertyData) {
.line => line.getRequiredTags(), .line => line.getRequiredTags(),
.ellipse => ellipse.getRequiredTags(), .ellipse => ellipse.getRequiredTags(),
.broken => broken.getRequiredTags(), .broken => broken.getRequiredTags(),
.arc => arc.getRequiredTags(),
}; };
} }
@@ -60,7 +56,6 @@ pub fn getLocalBounds(obj: *const Object) !Rect {
.line => line.getLocalBounds(obj), .line => line.getLocalBounds(obj),
.ellipse => ellipse.getLocalBounds(obj), .ellipse => ellipse.getLocalBounds(obj),
.broken => broken.getLocalBounds(obj), .broken => broken.getLocalBounds(obj),
.arc => arc.getLocalBounds(obj),
}; };
} }

View File

@@ -85,7 +85,6 @@ fn randomizeObjectProperties(allocator: std.mem.Allocator, doc_size: *const Size
} }
try obj.setProperty(allocator, .{ .data = .{ .points = points } }); try obj.setProperty(allocator, .{ .data = .{ .points = points } });
}, },
.arc => {},
} }
} }

View File

@@ -1,8 +0,0 @@
const Document = @import("../../models/Document.zig");
const pipeline = @import("pipeline.zig");
const DrawContext = pipeline.DrawContext;
const Object = Document.Object;
/// Дуга (не реализовано).
pub fn draw(_: *DrawContext, _: *const Object) void {}

View File

@@ -4,7 +4,6 @@ const pipeline = @import("pipeline.zig");
const line = @import("line.zig"); const line = @import("line.zig");
const ellipse = @import("ellipse.zig"); const ellipse = @import("ellipse.zig");
const broken = @import("broken.zig"); const broken = @import("broken.zig");
const arc = @import("arc.zig");
const basic_models = @import("../../models/basic_models.zig"); const basic_models = @import("../../models/basic_models.zig");
const Rect_i = basic_models.Rect_i; const Rect_i = basic_models.Rect_i;
const Size_i = basic_models.Size_i; const Size_i = basic_models.Size_i;
@@ -32,7 +31,6 @@ fn drawObject(
.line => line.draw(ctx, obj), .line => line.draw(ctx, obj),
.ellipse => try ellipse.draw(ctx, obj, allocator), .ellipse => try ellipse.draw(ctx, obj, allocator),
.broken => try broken.draw(ctx, obj, allocator), .broken => try broken.draw(ctx, obj, allocator),
.arc => arc.draw(ctx, obj),
} }
for (obj.children.items) |*child| { for (obj.children.items) |*child| {

View File

@@ -1,7 +1,6 @@
const Toolbar = @import("Toolbar.zig"); const Toolbar = @import("Toolbar.zig");
const line = @import("tools/line.zig"); const line = @import("tools/line.zig");
const ellipse = @import("tools/ellipse.zig"); const ellipse = @import("tools/ellipse.zig");
const arc = @import("tools/arc.zig");
const broken = @import("tools/broken.zig"); const broken = @import("tools/broken.zig");
const icons = @import("../icons.zig"); const icons = @import("../icons.zig");
@@ -16,11 +15,6 @@ pub const default_tools = [_]Toolbar.ToolDescriptor{
.icon_tvg = icons.ellipse, .icon_tvg = icons.ellipse,
.implementation = &ellipse.tool, .implementation = &ellipse.tool,
}, },
.{
.name = "Arc",
.icon_tvg = icons.arc,
.implementation = &arc.tool,
},
.{ .{
.name = "Broken line", .name = "Broken line",
.icon_tvg = icons.broken, .icon_tvg = icons.broken,

View File

@@ -1,10 +0,0 @@
const Tool = @import("../Tool.zig");
const shape = @import("../../models/shape/shape.zig");
fn onCanvasClick(ctx: *const Tool.ToolContext) !void {
const canvas = ctx.canvas;
var obj = shape.createObject(canvas.allocator, .arc) catch return;
defer obj.deinit(canvas.allocator);
try ctx.addObject(obj);
}
pub const tool = Tool.Tool{ .onCanvasClick = onCanvasClick };

View File

@@ -19,7 +19,6 @@ fn shapeLabel(shape: Object.ShapeKind) []const u8 {
return switch (shape) { return switch (shape) {
.line => "Line", .line => "Line",
.ellipse => "Ellipse", .ellipse => "Ellipse",
.arc => "Arc",
.broken => "Broken line", .broken => "Broken line",
}; };
} }