// 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);
}
}