// Copyright (c) Six Labors.
// Licensed under the Six Labors Split License.
namespace SixLabors.Fonts.Tables.Cff {
///
/// Represents the Top DICT data from a CFF or CFF2 font, containing font-wide
/// metadata such as name strings, bounding box, underline metrics, and the FontMatrix.
///
internal class CffTopDictionary
{
///
/// Initializes a new instance of the class.
///
public CffTopDictionary() => this.CidFontInfo = new();
///
/// Gets or sets the font version string (SID).
///
public string? Version { get; set; }
///
/// Gets or sets the font notice/trademark string (SID).
///
public string? Notice { get; set; }
///
/// Gets or sets the font copyright string (SID).
///
public string? CopyRight { get; set; }
///
/// Gets or sets the font full name string (SID).
///
public string? FullName { get; set; }
///
/// Gets or sets the font family name string (SID).
///
public string? FamilyName { get; set; }
///
/// Gets or sets the font weight string (SID), e.g. "Bold".
///
public string? Weight { get; set; }
///
/// Gets or sets the underline position in design units.
///
public double UnderlinePosition { get; set; }
///
/// Gets or sets the underline thickness in design units.
///
public double UnderlineThickness { get; set; }
///
/// Gets or sets the font bounding box [xMin, yMin, xMax, yMax] in design units.
///
public double[] FontBBox { get; set; } = [];
///
/// Gets or sets the font matrix that transforms charstring coordinates to user space.
/// Default is [0.001, 0, 0, 0.001, 0, 0] which maps 1000 charstring units to 1 user-space unit.
///
public double[] FontMatrix { get; set; } = [0.001, 0, 0, 0.001, 0, 0];
///
/// Gets or sets the CIDFont-specific information (ROS, FDSelect, FDArray).
///
public CidFontInfo CidFontInfo { get; set; }
}
}