// Copyright (c) Six Labors. // Licensed under the Six Labors Split License. using System.Collections.Generic; using System.Numerics; namespace SixLabors.ImageSharp.Drawing { /// /// Represents a logic path that can be drawn. /// public interface IPath { /// /// Gets a value indicating whether this instance is closed, open or a composite path with a mixture of open and closed figures. /// public PathTypes PathType { get; } /// /// Gets the bounds enclosing the path. /// public RectangleF Bounds { get; } /// /// Converts the into a simple linear path. /// /// Returns the current as simple linear path. public IEnumerable Flatten(); /// /// Converts this path into a retained , flattening curves at the precision of /// the supplied device-space . /// /// The X/Y scale at which curves are flattened. /// The retained linear geometry. public LinearGeometry ToLinearGeometry(Vector2 scale); /// /// Transforms the path using the specified matrix. /// /// The matrix. /// A new path with the matrix applied to it. public IPath Transform(Matrix4x4 matrix); /// /// Returns this path with all figures closed. /// /// A new close . public IPath AsClosedPath(); } }