Refactor: Переместил модуль shape

Я переместил модуль shape в подкаталог shape/ для лучшей организации кода.

Изменил пути импорта в связанных файлах, чтобы соответствовать новому местоположению модуля.

Удалил возвраты null из `getLocalBounds` и заменил их на обработку ошибок для улучшения надежности.
This commit is contained in:
2026-02-24 20:34:14 +03:00
parent f1a0e84272
commit 4f386c981c
7 changed files with 46 additions and 42 deletions

View File

@@ -3,6 +3,7 @@ const Object = @import("../Object.zig");
const Property = @import("../Property.zig").Property;
const PropertyData = @import("../Property.zig").Data;
const Rect = @import("../basic_models.zig").Rect;
const shape_mod = @import("shape.zig");
/// Свойства фигуры по умолчанию (для создания и проверки типа). Теги для ensure выводятся отсюда.
pub const default_shape_properties = [_]Property{
@@ -20,8 +21,9 @@ pub fn appendDefaultShapeProperties(allocator: std.mem.Allocator, obj: *Object)
}
/// Локальные границы линии: от (0,0) до end_point.
pub fn getLocalBounds(obj: *const Object) ?Rect {
const ep = obj.getProperty(.end_point) orelse return null;
pub fn getLocalBounds(obj: *const Object) !Rect {
try shape_mod.ensure(obj, .line);
const ep = obj.getProperty(.end_point).?;
const min_x = @min(0, ep.end_point.x);
const max_x = @max(0, ep.end_point.x);
const min_y = @min(0, ep.end_point.y);