Vixen
02b45cc4
csharp
public sealed class GlyphOutline

A glyph's contours, in the font's design units.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Curves are kept as curves. How finely to flatten one depends on how large it will be on screen, and a distance field wants the curve itself — the exact distance to a Bézier is a closed form, and a flattened one is a polygon whose facets show up as ripples in the field.

⚠ Both quadratic and cubic segments appear, and neither is converted to the other. TrueType draws in quadratics and CFF in cubics. A quadratic promotes to a cubic exactly, so that direction would be lossless — but it doubles the control points a distance function has to solve against for no gain, and the other direction is an approximation. A consumer handles both verbs.

Fields and properties (3)

  • public static GlyphOutline Empty

    An outline with nothing in it — a space, or a glyph the font does not draw.

  • public ImmutableArray<OutlineSegment> Segments

    The segments, in order, contour by contour.

  • public bool IsEmpty

    Whether the glyph draws nothing.

Methods (2)

  • public static GlyphOutline FromSegments(IEnumerable<OutlineSegment> segments)

    Builds an outline from segments that did not come from a font.

  • public GlyphBounds Bounds(int samples = 32)

    The bounds of the drawn curve, in design units.

Used by (20)

  • CffOutlinesVixen.Ui.Text
  • DistanceFieldVixen.Ui.Text
  • DistanceFieldTestsVixen.Ui.Text.Tests
  • EdgeColoringVixen.Ui.Text
  • FontFaceVixen.Ui.Text
  • GlyfOutlinesVixen.Ui.Text
  • GlyphAtlasTestsVixen.Ui.Text.Tests
  • GlyphFieldCacheVixen.Ui.Text
  • GlyphFieldCacheTestsVixen.Ui.Text.Tests
  • GlyphOutlineSourceVixen.Ui.Text
  • GlyphRasterizerVixen.Ui.Text
  • IconAtlasVixen.Ui
  • OutlineBuilderVixen.Ui.Text
  • OutlineFlattenerVixen.Ui.Text
  • OutlineTestsVixen.Ui.Text.Tests
  • RasterizerTestsVixen.Ui.Text.Tests
  • UiGeometryBuilderVixen.Ui
  • UiGeometryTestsVixen.Ui.Tests
  • VariationConformanceTestsVixen.Ui.Text.Tests
  • FontAtlasViewVixen.Editor.AssetEditors