// Copyright (c) Six Labors.
// Licensed under the Six Labors Split License.
namespace SixLabors.ImageSharp.Drawing {
///
/// Describes a single contour within a .
///
///
/// A contour identifies a contiguous point run in and the corresponding range in
/// the derived segment stream exposed by .
///
public readonly struct LinearContour
{
///
/// Gets the zero-based index of the first point belonging to this contour in .
///
public required int PointStart { get; init; }
///
/// Gets the number of stored points belonging to this contour.
///
public required int PointCount { get; init; }
///
/// Gets the zero-based index of the first derived segment belonging to this contour.
///
public required int SegmentStart { get; init; }
///
/// Gets the number of derived segments belonging to this contour.
///
public required int SegmentCount { get; init; }
///
/// Gets a value indicating whether the contour is closed.
///
///
/// When , the final derived segment for the contour joins the last stored point back to
/// the first stored point. Closed contours do not duplicate the first point at the end of their stored point run.
///
public required bool IsClosed { get; init; }
}
}