Skip to content

Type Alias: GeometryCommand ​

GeometryCommand = { cmd: "moveTo"; x: GeometryCoordinate; y: GeometryCoordinate; } | { cmd: "lnTo"; x: GeometryCoordinate; y: GeometryCoordinate; } | { cmd: "cubicBezTo"; x: GeometryCoordinate; x1: GeometryCoordinate; x2: GeometryCoordinate; y: GeometryCoordinate; y1: GeometryCoordinate; y2: GeometryCoordinate; } | { cmd: "quadBezTo"; x: GeometryCoordinate; x1: GeometryCoordinate; y: GeometryCoordinate; y1: GeometryCoordinate; } | { cmd: "arcTo"; hR: GeometryCoordinate; stAng: GeometryCoordinate; swAng: GeometryCoordinate; wR: GeometryCoordinate; } | { cmd: "close"; }

One segment of a custom-geometry path (a:path), as read from a shape. The command verbs mirror the write-side GeometryPoint DSL (src/types/) so a consumer can map a GeometryCommand[] to GeometryPoint[] one-to-one.

Coordinates (x/y/x1…) are raw path-unit integers in the path's own 0..w / 0..h space (see CustomGeometryPath.w); they are not EMU and must be scaled by the consumer against the shape's box. arcTo angles are in degrees (the raw 60000ths-of-a-degree values divided by 60000), matching the write DSL's degree input.

Any of them may instead be the name of a guide whose value it takes (ST_AdjCoordinate / ST_AdjAngle): one of the geometry's own CustomGeometry.guides, or a built-in such as w, hc or cd4. A name is returned as written, never resolved.