Docsv3.10.0
Back to API Reference
Class

CurveModifier

sealed
Inherits:BaselineCurveModifier<float,Bend>

Bends the baseline into an authored curve while preserving each glyph's shape.

Remarks

Curve runs across the range, from its start at 0 to its end at 1, and Height is what one unit of the curve stands for in pixels — so a shape authored once reads the same however wide the text turns out. Each glyph is lifted to the curve and turned to sit on it, keeping its horizontal place, so letter spacing is untouched. Every line of the range takes the same shape over its own baseline. Ranges of every curve modifier resolve into one per-cluster axis, so a glyph rides the curve of the range applied last rather than being bent once per modifier.

Nested Types

public float Height{ get; set }

Peak displacement of the baseline in pixels, where the curve stands at one; negative bends the other way.

public Ease Curve{ get; set }

Shape the baseline takes across the range, read from its start at 0 to its end at 1.

public Rect Frame{ get }

The box Curve is read into, in the text's own coordinates: the baseline span of the range prepared last by the rebuild that reached this modifier, with its first line's baseline for y and the height one unit of the curve stood for. Empty until a rebuild has bent one of its ranges — an editor drawing the curve then has nowhere to put it.

protected string AttributeKey{ get }
protected override float ResolveShape()
protected override bool Bends()
protected override void BeginPrepare()
protected override bool BeginRange()
protected override Bend AddLine()
protected override void Place()

See Also