GlyphOutline 클래스
글리프의 전체 윤곽(outline)을 나타냅니다. 하나 이상의 닫힌 윤곽(GlyphContour)으로 구성됩니다. 예를 들어 'B' 글리프는 바깥 윤곽과 안쪽 구멍 윤곽 2개로 이루어집니다. glyf 테이블의 simple glyph에 해당합니다. contour의 감김 방향(winding direction)은 이 구현에서 검증하지 않으며, 렌더러는 nonzero fill rule로 구멍을 처리합니다. IList<T>를 구현해 contour를 인덱스로 접근하거나 중간에 삽입/제거할 수 있습니다.
상속
네임스페이스: VagabondK.OpenType.Geometry
어셈블리: VagabondK.OpenType.dll
구문
public class GlyphOutline : IList<GlyphContour>, ICollection<GlyphContour>, IEnumerable<GlyphContour>, IEnumerable
생성자
| 이름 | 설명 |
|---|---|
| GlyphOutline() | GlyphOutline의 새 인스턴스를 생성합니다. |
속성
| 이름 | 설명 |
|---|---|
| Contours | 이 윤곽에 포함된 contour 목록을 반환합니다. |
| Count | contour 개수를 반환합니다. |
| IsReadOnly | 읽기 전용 여부를 반환합니다. 항상 false입니다. |
| this[int] | 지정된 인덱스의 contour를 가져오거나 설정합니다. |
메서드
| 이름 | 설명 |
|---|---|
| Add(GlyphContour) | contour를 목록 끝에 추가합니다. AddContour(GlyphContour)와 동일합니다. |
| AddCircle(double, double, double, int, bool) | 원 contour를 추가하고 그 contour를 반환합니다.
3차 베지어 곡선으로 근사하며, 각 세그먼트의 제어점은
(4/3)·tan(세그먼트 각도/4)·반지름으로 계산됩니다.
꼭대기(상단)에서 시작해 |
| AddContour(GlyphContour) | 기존 contour를 이 윤곽에 추가합니다. 여러 글리프가 같은 contour 인스턴스를 참조하면 CFF에서는 서브루틴으로 추출됩니다. |
| AddEllipse(double, double, double, double, int, bool) | 타원 contour를 추가하고 그 contour를 반환합니다.
3차 베지어 곡선으로 근사하며, 각 세그먼트의 제어점은
(4/3)·tan(세그먼트 각도/4)·반지름으로 계산됩니다.
꼭대기(상단)에서 시작해 |
| AddRectangle(double, double, double, double) | 직사각형 contour를 추가하고 그 contour를 반환합니다. (x, y)를 왼쪽 아래 꼭짓점으로 하는 직사각형을 그립니다. |
| BeginContour() | 새로운 닫힌 윤곽(contour)을 시작하고 그 contour를 반환합니다.
반환된 GlyphContour에 |
| Clear() | 모든 contour를 제거합니다. 로드한 글리프의 윤곽을 비운 후 BeginContour() 등으로 다시 그릴 때 사용합니다. |
| ComputeBoundingBox(out int, out int, out int, out int) | 윤곽의 바운딩 박스를 계산합니다. 각 contour의 정확한 바운딩 박스(곡선 극값 포함)를 통합하며, min은 내림(Floor), max는 올림(Ceiling)하여 모든 곡선 극값이 박스에 포함되도록 합니다. head의 xMin/yMin/xMax/yMax 계산과 동일한 규칙입니다. |
| Contains(GlyphContour) | contour가 목록에 있는지 확인합니다. |
| CopyTo(GlyphContour[], int) | contour를 배열에 복사합니다. |
| GetEnumerator() | contour를 순회하는 enumerators를 반환합니다. |
| IndexOf(GlyphContour) | contour의 인덱스를 반환합니다. 없으면 -1입니다. |
| Insert(int, GlyphContour) | 지정된 인덱스에 contour를 삽입합니다. |
| Remove(GlyphContour) | contour를 목록에서 제거합니다. 제거되면 true, 없으면 false입니다. |
| RemoveAt(int) | 지정된 인덱스의 contour를 제거합니다. |
| RemoveContour(int) | 지정된 인덱스의 contour를 제거합니다. |