VagabondK.OpenType.Geometry 네임스페이스
클래스
ContourCommand
윤곽 그리기 커맨드의 기본 클래스입니다. 각 커맨드는 이전 위치에서 종점까지의 세그먼트를 나타냅니다. 좌표는 pen 기원점 기준 절대 좌표(폰트 단위)이며, Y 양수 방향은 위쪽입니다.
CubicBezierCommand
3차 베지어 곡선을 그리는 커맨드입니다. CFF(Type 2 charstring)는 3차 베지어를 네이티브로 지원하며, TTF(glyf)는 2차 베지어만 지원하므로 직렬화 시 ToQuadraticBezierCommands(double, double)로 2차 베지어 시퀀스로 변환됩니다.
Glyph
폰트의 단일 글리프를 나타냅니다. 윤곽(outline)과 수평 메트릭(advance width, left side bearing)을 포함합니다. advance width와 left side bearing은 hmtx 테이블에 기록되며, right side bearing은 advance width - left side bearing - (xMax - xMin)으로 계산됩니다.
GlyphContour
글리프 윤곽선의 닫힌 윤곽(contour)을 나타냅니다. 그리기 커맨드(ContourCommand)의 집합으로 관리되며, 마지막 세그먼트는 자동으로 첫 점과 연결되어 닫힙니다. 좌표는 pen 기원점 기준 절대 좌표(폰트 단위)이며, Y 양수 방향은 위쪽입니다. IList<T>를 구현해 커맨드를 인덱스로 접근하거나 중간에 삽입/제거할 수 있습니다.
GlyphOutline
글리프의 전체 윤곽(outline)을 나타냅니다. 하나 이상의 닫힌 윤곽(GlyphContour)으로 구성됩니다. 예를 들어 'B' 글리프는 바깥 윤곽과 안쪽 구멍 윤곽 2개로 이루어집니다. glyf 테이블의 simple glyph에 해당합니다. contour의 감김 방향(winding direction)은 이 구현에서 검증하지 않으며, 렌더러는 nonzero fill rule로 구멍을 처리합니다. IList<T>를 구현해 contour를 인덱스로 접근하거나 중간에 삽입/제거할 수 있습니다.
GlyphPoint
글리프 윤곽선의 단일 점을 나타냅니다. 좌표는 폰트 단위(font unit)로 표현되며 소수가 허용됩니다. TTF(glyf)는 정수 전용이라 직렬화 시 반올림되고, OTF(CFF)는 16.16 fixed point로 저장됩니다.
LineToCommand
직선을 그리는 커맨드입니다. CFF에서는 rlineto(상대 오프셋), glyf에서는 on-curve 점으로 직렬화됩니다.
MoveToCommand
윤곽의 시작점으로 이동하는 커맨드입니다. CFF에서는 hmoveto/vmoveto/rmoveto, glyf에서는 첫 점(on-curve)으로 직렬화됩니다.
QuadraticBezierCommand
2차 베지어 곡선을 그리는 커맨드입니다. glyf는 2차 베지어를 네이티브로 지원하며, CFF에서는 quad를 3차 베지어로 변환해 rrcurveto로 기록합니다.