/
docNemo
/
clothes-graph
Обзор
Документация
Войти
/
docNemo
/
clothes-graph
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/ClothesGraph.Model/Drafting/NodeId.cs
47 строк
1 KB
docNemo
Фундамент продукта: параметрическое построение выкроек, печать, установщик
08 авг 2026, 22:17
08 авг 2026, 22:17
cd47cce
Код
Авторство
О чём код?
using System; namespace ClothesGraph.Model.Drafting; /// <summary> /// Устойчивый идентификатор построения в графе чертежа. /// </summary> public readonly struct NodeId : IEquatable<NodeId> { private readonly Guid _value; private NodeId(Guid value) => _value = value; public static NodeId New() => new(Guid.NewGuid()); public static NodeId FromGuid(Guid value) => new(value); public Guid Value => _value; public bool IsEmpty => _value == Guid.Empty; public bool Equals(NodeId other) => _value == other._value; public override bool Equals(object? obj) => obj is NodeId other && Equals(other); public override int GetHashCode() => _value.GetHashCode(); public override string ToString() => _value.ToString("N")[..8]; public static bool operator ==(NodeId left, NodeId right) => left.Equals(right); public static bool operator !=(NodeId left, NodeId right) => !left.Equals(right); } /// <summary> /// Измеримое свойство построения, доступное в формулах. /// </summary> public enum NodeProperty { /// <summary>Длина отрезка или кривой.</summary> Length, /// <summary>Угол наклона отрезка в градусах.</summary> Angle, /// <summary>Координата точки по горизонтали.</summary> X, /// <summary>Координата точки по вертикали.</summary> Y }