using CommunityToolkit.Mvvm.Input; namespace DelauneyTriangulation.Models; public static class Geometries { public sealed class Point(double x, double y, double z = 3) { public double X { get; } = x; public double Y { get; } = y; public double R { get; } = z; public double Left => X - R; public double Top => Y - R; public double Size => 2 * R; } public sealed class Edge(double x1, double y1, double x2, double y2) { public double X1 { get; } = x1; public double X2 { get; } = x2; public double Y1 { get; } = y1; public double Y2 { get; } = y2; public Avalonia.Point Start => new(X1, Y1); public Avalonia.Point End => new(X2, Y2); } public sealed class Circle(double x, double y, double r) { public double X { get; } = x; public double Y { get; } = y; public double R { get; } = r; public double Left => X - R; public double Top => Y - R; public double Diameter => 2 * R; } }