Class RectanglePolygon
- Namespace
- SixLabors.ImageSharp.Drawing
- Assembly
- SixLabors.ImageSharp.Drawing.dll
A closed rectangular path defined by four straight edges.
public sealed class RectanglePolygon : IPath, ISimplePath
- Inheritance
-
RectanglePolygon
- Implements
- Inherited Members
- Extension Methods
Constructors
RectanglePolygon(PointF, PointF)
Initializes a new instance of the RectanglePolygon class.
public RectanglePolygon(PointF topLeft, PointF bottomRight)
Parameters
topLeftPointFThe PointF which specifies the rectangle's top-left point in a two-dimensional plane.
bottomRightPointFThe PointF which specifies the rectangle's bottom-right point in a two-dimensional plane.
RectanglePolygon(PointF, SizeF)
Initializes a new instance of the RectanglePolygon class.
public RectanglePolygon(PointF point, SizeF size)
Parameters
pointPointFThe PointF which specifies the rectangle's point in a two-dimensional plane.
sizeSizeFThe SizeF which specifies the rectangle's height and width.
RectanglePolygon(RectangleF)
Initializes a new instance of the RectanglePolygon class.
public RectanglePolygon(RectangleF rectangle)
Parameters
rectangleRectangleFThe rectangle.
RectanglePolygon(float, float, float, float)
Initializes a new instance of the RectanglePolygon class.
public RectanglePolygon(float x, float y, float width, float height)
Parameters
xfloatThe horizontal position of the rectangle.
yfloatThe vertical position of the rectangle.
widthfloatThe width of the rectangle.
heightfloatThe height of the rectangle.
Properties
Bottom
Gets the y-coordinate of the bottom edge.
public float Bottom { get; }
Property Value
Bounds
Gets the bounds enclosing the path.
public RectangleF Bounds { get; }
Property Value
Center
Gets the center point.
public PointF Center { get; }
Property Value
Height
Gets the height.
public float Height { get; }
Property Value
IsClosed
Gets a value indicating whether this instance is a closed path.
public bool IsClosed { get; }
Property Value
Left
Gets the x-coordinate of the left edge.
public float Left { get; }
Property Value
Location
Gets the top-left location of the rectangle.
public PointF Location { get; }
Property Value
PathType
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; }
Property Value
Points
Gets the points that make this up as a simple linear path.
public ReadOnlyMemory<PointF> Points { get; }
Property Value
Right
Gets the x-coordinate of the right edge.
public float Right { get; }
Property Value
Size
Gets the size.
public SizeF Size { get; }
Property Value
Top
Gets the y-coordinate of the top edge.
public float Top { get; }
Property Value
Width
Gets the width.
public float Width { get; }
Property Value
X
Gets the x-coordinate of the top-left corner.
public float X { get; }
Property Value
Y
Gets the y-coordinate of the top-left corner.
public float Y { get; }
Property Value
Methods
AsClosedPath()
Returns this path with all figures closed.
public IPath AsClosedPath()
Returns
ComputeArea(Vector2)
Calculates the non-negative path area after flattening curves at the supplied scale.
public float ComputeArea(Vector2 scale)
Parameters
scaleVector2The X/Y scale at which curves are flattened for area measurement.
Returns
- float
The path area.
ComputeLength(Vector2)
Calculates the path length after flattening curves at the supplied scale.
public float ComputeLength(Vector2 scale)
Parameters
scaleVector2The X/Y scale at which curves are flattened for length measurement.
Returns
- float
The path length.
Contains(PointF, IntersectionRule, Vector2)
Returns whether the supplied point is inside the path.
public bool Contains(PointF point, IntersectionRule intersectionRule, Vector2 scale)
Parameters
pointPointFThe point to test.
intersectionRuleIntersectionRuleThe fill rule used for containment.
scaleVector2The X/Y scale at which curves are flattened for the containment test.
Returns
Flatten()
Converts the IPath into a simple linear path.
public IEnumerable<ISimplePath> Flatten()
Returns
- IEnumerable<ISimplePath>
Returns the current IPath as simple linear path.
ToLinearGeometry(Vector2)
Converts this path into a retained LinearGeometry, flattening curves at the precision of
the supplied device-space scale.
public LinearGeometry ToLinearGeometry(Vector2 scale)
Parameters
scaleVector2The X/Y scale at which curves are flattened.
Returns
- LinearGeometry
The retained linear geometry.
Transform(Matrix4x4)
Transforms the path using the specified matrix.
public IPath Transform(Matrix4x4 matrix)
Parameters
matrixMatrix4x4The matrix.
Returns
- IPath
A new path with the matrix applied to it.
TryGetPathPointAtDistance(float, Vector2, out PathPoint)
Gets path information at the specified distance along the path.
public bool TryGetPathPointAtDistance(float distance, Vector2 scale, out PathPoint pathPoint)
Parameters
distancefloatThe distance along the path.
scaleVector2The X/Y scale at which curves are flattened for distance measurement.
pathPointPathPointWhen this method returns, contains the path information at
distanceif the distance resolves to a point on the path; otherwise, the default value.
Returns
TryGetPathPointAtDistanceUnbounded(float, Vector2, out PathPoint)
Gets path information at the specified distance along the path, extrapolating along the boundary tangents when the distance falls before the start or beyond the end of an open path.
public bool TryGetPathPointAtDistanceUnbounded(float distance, Vector2 scale, out PathPoint pathPoint)
Parameters
distancefloatThe distance along the path.
scaleVector2The X/Y scale at which curves are flattened for distance measurement.
pathPointPathPointWhen this method returns, contains the path information at
distanceif the path is measurable; otherwise, the default value.
Returns
Remarks
Unlike TryGetPathPointAtDistance(float, Vector2, out PathPoint), out-of-range distances resolve to a point on the virtual straight-line continuation of the path's first or last segment. Text layout uses this to place aligned glyphs that overflow their layout path. The method returns false only when the distance is not a finite number or the path has no measurable length.
TryGetSegment(float, float, bool, Vector2, out IPath)
Creates a path segment between two distances along the path.
public bool TryGetSegment(float startDistance, float stopDistance, bool startOnBeginFigure, Vector2 scale, out IPath path)
Parameters
startDistancefloatThe segment start distance.
stopDistancefloatThe segment stop distance.
startOnBeginFigureboolWhether the returned segment starts a new figure at the first segment point.
scaleVector2The X/Y scale at which curves are flattened for segment extraction.
pathIPathWhen this method returns, contains the segment path if one was created; otherwise, an empty path.
Returns
Operators
explicit operator RectanglePolygon(Polygon)
Converts a polygon to a rectangle polygon from its bounds.
public static explicit operator RectanglePolygon(Polygon polygon)
Parameters
polygonPolygonThe polygon to convert.
Returns
- RectanglePolygon
The rectangle polygon covering the source polygon's bounds.