Struct PathDataBuilder
A utility for converting parsed SVG path commands into drawing operations on an IPathDrawingContext target.
This builder supports both absolute (e.g., M
, L
, C
) and relative (e.g., m
, l
, c
) SVG commands,
and tracks the current drawing point and control points for smooth curves.
public ref struct PathDataBuilder
- Inherited Members
Constructors
PathDataBuilder(IPathDrawingContext)
Initializes a new PathDataBuilder targeting the specified drawing context.
public PathDataBuilder(IPathDrawingContext sink)
Parameters
sink
IPathDrawingContextThe drawing context that will receive the path instructions.
Fields
CurrentPoint
The current position of the pen after the last command.
public Point CurrentPoint
Field Value
NextCubicControlPoint
The reflected control point for the next cubic Bézier curve (used in S
, s
).
public Point NextCubicControlPoint
Field Value
NextQuadraticControlPoint
The reflected control point for the next quadratic Bézier curve (used in T
, t
).
public Point NextQuadraticControlPoint
Field Value
Sink
The target drawing context that receives path commands.
public readonly IPathDrawingContext Sink
Field Value
StartPoint
The starting point of the current subpath (used for Z
command).
public Point? StartPoint
Field Value
Methods
A(Vector, NFloat, ArcFlag, Winding, Point)
public PathDataBuilder A(Vector sr, NFloat xAxisRotationDeg, ArcFlag largeArcFlag, Winding sweepDirection, Point p2)
Parameters
Returns
Begin()
Begins a new path on the drawing context.
public PathDataBuilder Begin()
Returns
C(Point, Point, Point)
public PathDataBuilder C(Point cp1, Point cp2, Point to)
Parameters
Returns
H(NFloat)
public PathDataBuilder H(NFloat h)
Parameters
h
NFloat
Returns
L(Point)
public PathDataBuilder L(Point point)
Parameters
point
Point
Returns
M(Point)
public PathDataBuilder M(Point point)
Parameters
point
Point
Returns
Q(Point, Point)
public PathDataBuilder Q(Point cp, Point to)
Parameters
Returns
S(Point, Point)
public PathDataBuilder S(Point cp, Point to)
Parameters
Returns
T(Point)
public PathDataBuilder T(Point to)
Parameters
to
Point
Returns
V(NFloat)
public PathDataBuilder V(NFloat v)
Parameters
v
NFloat
Returns
Z()
public PathDataBuilder Z()
Returns
a(Vector, NFloat, ArcFlag, Winding, Vector)
public PathDataBuilder a(Vector v2, NFloat xAxisRotationDeg, ArcFlag largeArcFlag, Winding sweepDirection, Vector sr)
Parameters
Returns
c(Vector, Vector, Vector)
public PathDataBuilder c(Vector cv1, Vector cv2, Vector to)
Parameters
Returns
h(NFloat)
public PathDataBuilder h(NFloat h)
Parameters
h
NFloat
Returns
l(Vector)
public PathDataBuilder l(Vector vector)
Parameters
vector
Vector
Returns
m(Vector)
public PathDataBuilder m(Vector vector)
Parameters
vector
Vector
Returns
q(Vector, Vector)
public PathDataBuilder q(Vector cv, Vector to)
Parameters
Returns
s(Vector, Vector)
public PathDataBuilder s(Vector cv, Vector to)
Parameters
Returns
t(Vector)
public PathDataBuilder t(Vector to)
Parameters
to
Vector
Returns
v(NFloat)
public PathDataBuilder v(NFloat v)
Parameters
v
NFloat
Returns
z()
public PathDataBuilder z()