// Copyright (c) Six Labors. // Licensed under the Six Labors Split License. namespace SixLabors.ImageSharp.Drawing { /// /// Describes geometry-wide metadata for a instance. /// /// /// This metadata is computed eagerly during lowering so backends do not need to enumerate the geometry again to /// discover basic information such as total segment count or bounds. /// public readonly struct LinearGeometryInfo { /// /// Gets the bounds of all points stored in the containing . /// public required RectangleF Bounds { get; init; } /// /// Gets the total number of contours in the containing . /// public required int ContourCount { get; init; } /// /// Gets the total number of stored points across all contours. /// public required int PointCount { get; init; } /// /// Gets the total number of derived linear segments across all contours. /// public required int SegmentCount { get; init; } /// /// Gets the number of derived segments that remain non-horizontal when sampled on pixel boundaries. /// /// /// A segment contributes to this count when its start and end sample into different rows under /// pixel-boundary sampling. /// public required int NonHorizontalSegmentCountPixelBoundary { get; init; } /// /// Gets the number of derived segments that remain non-horizontal when sampled at pixel centers. /// /// /// A segment contributes to this count when its start and end sample into different rows after the /// half-pixel center-sampling offset is applied. /// public required int NonHorizontalSegmentCountPixelCenter { get; init; } } }