points теперь слайс

This commit is contained in:
2026-03-03 20:38:57 +03:00
parent 9a795c22f1
commit 446cd80616
10 changed files with 86 additions and 67 deletions

View File

@@ -1,11 +1,11 @@
const std = @import("std");
const Object = @import("../Object.zig");
const Property = @import("../Property.zig").Property;
const PropertyData = @import("../Property.zig").Data;
const Rect_f = @import("../basic_models.zig").Rect_f;
const common = @import("common.zig");
const shape_mod = @import("shape.zig");
/// Свойства фигуры по умолчанию.
/// Свойства фигуры по умолчанию (добавляются к общим).
pub const default_shape_properties = [_]Property{
.{ .data = .{ .radii = .{ .x = 50, .y = 50 } } },
.{ .data = .{ .arc_percent = 100.0 } },
@@ -14,15 +14,8 @@ pub const default_shape_properties = [_]Property{
.{ .data = .{ .fill_rgba = 0x000000FF } },
};
/// Теги обязательных свойств.
pub fn getRequiredTags() []const std.meta.Tag(PropertyData) {
return &([_]std.meta.Tag(PropertyData){std.meta.activeTag(default_shape_properties[0].data)});
}
/// Добавляет к объекту свойства по умолчанию для эллипса.
pub fn appendDefaultShapeProperties(allocator: std.mem.Allocator, obj: *Object) !void {
for (default_shape_properties) |prop| try obj.properties.append(allocator, prop);
}
/// Теги обязательных свойств = теги из default_shape_properties.
pub const required_tags = common.tagsFromProperties(&default_shape_properties);
/// Локальные границы эллипса: [-radii.x, -radii.y] .. [radii.x, radii.y].
pub fn getLocalBounds(obj: *const Object) !Rect_f {