playtest-unity/playtest/Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_FontFeatureTable.cs

55 lines
1.9 KiB
C#
Raw Normal View History

2023-06-19 23:21:21 -04:00
using System;
using System.Linq;
using System.Collections.Generic;
using UnityEngine;
namespace TMPro
{
/// <summary>
/// Table that contains the various font features available for the given font asset.
/// </summary>
[Serializable]
public class TMP_FontFeatureTable
{
/// <summary>
/// List that contains the glyph pair adjustment records.
/// </summary>
public List<TMP_GlyphPairAdjustmentRecord> glyphPairAdjustmentRecords
{
get { return m_GlyphPairAdjustmentRecords; }
set { m_GlyphPairAdjustmentRecords = value; }
}
[SerializeField]
internal List<TMP_GlyphPairAdjustmentRecord> m_GlyphPairAdjustmentRecords;
/// <summary>
///
/// </summary>
internal Dictionary<uint, TMP_GlyphPairAdjustmentRecord> m_GlyphPairAdjustmentRecordLookupDictionary;
// =============================================
// Constructor(s)
// =============================================
public TMP_FontFeatureTable()
{
m_GlyphPairAdjustmentRecords = new List<TMP_GlyphPairAdjustmentRecord>();
m_GlyphPairAdjustmentRecordLookupDictionary = new Dictionary<uint, TMP_GlyphPairAdjustmentRecord>();
}
// =============================================
// Utility Functions
// =============================================
/// <summary>
/// Sort the glyph pair adjustment records by glyph index.
/// </summary>
public void SortGlyphPairAdjustmentRecords()
{
// Sort List of Kerning Info
if (m_GlyphPairAdjustmentRecords.Count > 0)
m_GlyphPairAdjustmentRecords = m_GlyphPairAdjustmentRecords.OrderBy(s => s.firstAdjustmentRecord.glyphIndex).ThenBy(s => s.secondAdjustmentRecord.glyphIndex).ToList();
}
}
}