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