feat: Добавил толщину линий, унифицировал геометрию

Переименовал основные геометрические модели (Point, Size, Rect, Scale, Radii), явно разделив их на типы с плавающей точкой (_f) и целочисленные (_i). Обновил использование этих типов во всем проекте для улучшения типобезопасности и ясности.

Ввел новое свойство thickness для объектов и реализовал его применение при отрисовке линий и ломаных. Добавил Point2_i для целочисленных координат буфера в конвейере отрисовки.
This commit is contained in:
2026-02-25 00:57:55 +03:00
parent 1d995995e7
commit 0114db1f48
19 changed files with 124 additions and 106 deletions

View File

@@ -1,37 +1,43 @@
pub const ImageRect = struct {
pub const Rect_i = struct {
x: u32,
y: u32,
w: u32,
h: u32,
};
pub const ImageSize = struct {
pub const Size_i = struct {
w: u32,
h: u32,
};
pub const Size = struct {
width: f32,
height: f32,
pub const Size_f = struct {
w: f32,
h: f32,
};
pub const Point2 = struct {
pub const Point2_f = struct {
x: f32 = 0,
y: f32 = 0,
};
pub const Radii = struct {
/// Целочисленная точка (например, координаты в буфере пикселей).
pub const Point2_i = struct {
x: i32 = 0,
y: i32 = 0,
};
pub const Radii_f = struct {
x: f32,
y: f32,
};
pub const Scale2 = struct {
pub const Scale2_f = struct {
scale_x: f32 = 1,
scale_y: f32 = 1,
};
/// Прямоугольник в координатах документа (f32), например локальные границы объекта.
pub const Rect = struct {
pub const Rect_f = struct {
x: f32 = 0,
y: f32 = 0,
w: f32 = 0,