Refactor: Перенёс логику создания фигур

Я перенёс логику создания объектов фигур из `Document.zig` и `Object.zig` в новый модуль `shape.zig`. Это упрощает добавление новых фигур и улучшает организацию кода.
This commit is contained in:
2026-02-24 19:59:57 +03:00
parent 1a94cc8bfd
commit f1a0e84272
9 changed files with 245 additions and 49 deletions

21
src/models/shape/arc.zig Normal file
View File

@@ -0,0 +1,21 @@
const std = @import("std");
const Object = @import("../Object.zig");
const PropertyData = @import("../Property.zig").Data;
const Rect = @import("../basic_models.zig").Rect;
/// Теги обязательных свойств (заглушка: 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;
}
/// Локальные границы дуги (заглушка: возвращает null).
pub fn getLocalBounds(_: *const Object) ?Rect {
return null;
}