// Copyright (c) Six Labors. // Licensed under the Six Labors Split License. using SixLabors.Fonts.Tables.AdvancedTypographic; namespace SixLabors.Fonts { /// /// Defines the contract for glyph shaping collections. /// internal interface IGlyphShapingCollection { /// /// Gets the collection count. /// public int Count { get; } /// /// Gets the text options used by this collection. /// public TextOptions TextOptions { get; } /// /// Gets the glyph shaping data at the specified index. /// /// The zero-based index of the elements to get. /// The . public GlyphShapingData this[int index] { get; } /// /// Adds the shaping feature to the collection which should be applied to the glyph at a specified index. /// /// The zero-based index of the element. /// The feature to apply. public void AddShapingFeature(int index, TagEntry feature); /// /// Enables a previously added shaping feature. /// /// The zero-based index of the element. /// The feature to enable. public void EnableShapingFeature(int index, Tag feature); /// /// Disables a previously added shaping feature. /// /// The zero-based index of the element. /// The feature to disable. public void DisableShapingFeature(int index, Tag feature); } }