123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- using System;
- using System.Collections.Generic;
- [Serializable]
- public class BMGlyph
- {
- public int GetKerning(int previousChar)
- {
- if (this.kerning != null && previousChar != 0)
- {
- int i = 0;
- int count = this.kerning.Count;
- while (i < count)
- {
- if (this.kerning[i] == previousChar)
- {
- return this.kerning[i + 1];
- }
- i += 2;
- }
- }
- return 0;
- }
- public void SetKerning(int previousChar, int amount)
- {
- if (this.kerning == null)
- {
- this.kerning = new List<int>();
- }
- for (int i = 0; i < this.kerning.Count; i += 2)
- {
- if (this.kerning[i] == previousChar)
- {
- this.kerning[i + 1] = amount;
- return;
- }
- }
- this.kerning.Add(previousChar);
- this.kerning.Add(amount);
- }
- public void Trim(int xMin, int yMin, int xMax, int yMax)
- {
- int num = this.x + this.width;
- int num2 = this.y + this.height;
- if (this.x < xMin)
- {
- int num3 = xMin - this.x;
- this.x += num3;
- this.width -= num3;
- this.offsetX += num3;
- }
- if (this.y < yMin)
- {
- int num4 = yMin - this.y;
- this.y += num4;
- this.height -= num4;
- this.offsetY += num4;
- }
- if (num > xMax)
- {
- this.width -= num - xMax;
- }
- if (num2 > yMax)
- {
- this.height -= num2 - yMax;
- }
- }
- public int index;
- public int x;
- public int y;
- public int width;
- public int height;
- public int offsetX;
- public int offsetY;
- public int advance;
- public int channel;
- public List<int> kerning;
- }
|