Table of Contents

Struct PathDataBuilder

Namespace
Xui.Core.Canvas.SVG
Assembly
Core.dll

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 IPathDrawingContext

The 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

Point

NextCubicControlPoint

The reflected control point for the next cubic Bézier curve (used in S, s).

public Point NextCubicControlPoint

Field Value

Point

NextQuadraticControlPoint

The reflected control point for the next quadratic Bézier curve (used in T, t).

public Point NextQuadraticControlPoint

Field Value

Point

Sink

The target drawing context that receives path commands.

public readonly IPathDrawingContext Sink

Field Value

IPathDrawingContext

StartPoint

The starting point of the current subpath (used for Z command).

public Point? StartPoint

Field Value

Point?

Methods

A(Vector, NFloat, ArcFlag, Winding, Point)

public PathDataBuilder A(Vector sr, NFloat xAxisRotationDeg, ArcFlag largeArcFlag, Winding sweepDirection, Point p2)

Parameters

sr Vector
xAxisRotationDeg NFloat
largeArcFlag ArcFlag
sweepDirection Winding
p2 Point

Returns

PathDataBuilder

Begin()

Begins a new path on the drawing context.

public PathDataBuilder Begin()

Returns

PathDataBuilder

C(Point, Point, Point)

public PathDataBuilder C(Point cp1, Point cp2, Point to)

Parameters

cp1 Point
cp2 Point
to Point

Returns

PathDataBuilder

H(NFloat)

public PathDataBuilder H(NFloat h)

Parameters

h NFloat

Returns

PathDataBuilder

L(Point)

public PathDataBuilder L(Point point)

Parameters

point Point

Returns

PathDataBuilder

M(Point)

public PathDataBuilder M(Point point)

Parameters

point Point

Returns

PathDataBuilder

Q(Point, Point)

public PathDataBuilder Q(Point cp, Point to)

Parameters

cp Point
to Point

Returns

PathDataBuilder

S(Point, Point)

public PathDataBuilder S(Point cp, Point to)

Parameters

cp Point
to Point

Returns

PathDataBuilder

T(Point)

public PathDataBuilder T(Point to)

Parameters

to Point

Returns

PathDataBuilder

V(NFloat)

public PathDataBuilder V(NFloat v)

Parameters

v NFloat

Returns

PathDataBuilder

Z()

public PathDataBuilder Z()

Returns

PathDataBuilder

a(Vector, NFloat, ArcFlag, Winding, Vector)

public PathDataBuilder a(Vector v2, NFloat xAxisRotationDeg, ArcFlag largeArcFlag, Winding sweepDirection, Vector sr)

Parameters

v2 Vector
xAxisRotationDeg NFloat
largeArcFlag ArcFlag
sweepDirection Winding
sr Vector

Returns

PathDataBuilder

c(Vector, Vector, Vector)

public PathDataBuilder c(Vector cv1, Vector cv2, Vector to)

Parameters

cv1 Vector
cv2 Vector
to Vector

Returns

PathDataBuilder

h(NFloat)

public PathDataBuilder h(NFloat h)

Parameters

h NFloat

Returns

PathDataBuilder

l(Vector)

public PathDataBuilder l(Vector vector)

Parameters

vector Vector

Returns

PathDataBuilder

m(Vector)

public PathDataBuilder m(Vector vector)

Parameters

vector Vector

Returns

PathDataBuilder

q(Vector, Vector)

public PathDataBuilder q(Vector cv, Vector to)

Parameters

cv Vector
to Vector

Returns

PathDataBuilder

s(Vector, Vector)

public PathDataBuilder s(Vector cv, Vector to)

Parameters

cv Vector
to Vector

Returns

PathDataBuilder

t(Vector)

public PathDataBuilder t(Vector to)

Parameters

to Vector

Returns

PathDataBuilder

v(NFloat)

public PathDataBuilder v(NFloat v)

Parameters

v NFloat

Returns

PathDataBuilder

z()

public PathDataBuilder z()

Returns

PathDataBuilder