KiteMatrix
2D affine transformation matrix as PDF uses it (ISO 32000-1 §8.3.4).
PDF carries matrices as a flat 6-element row vector [a b c d e f] meaning
┌ a b 0 ┐
│ c d 0 │
└ e f 1 ┘Applied to a point (x, y, 1) to give (x·a + y·c + e, x·b + y·d + f, 1).
The cm content-stream operator multiplies "new = operand × current", so the new origin lands at the operand's translation rather than the current one. See concat.
Immutable: every operation returns a fresh KiteMatrix. The page renderer keeps a single state per gsave level and re-assigns rather than mutating.
Constructors
Properties
Functions
PDF cm semantics: returns other × this.
Inverse transform, or null when the matrix is singular (det ≈ 0).
Whether this matrix maps every circle onto a circle: it only moves, turns, mirrors and scales both axes by one factor. A stroke under such a matrix has a round pen on the device as well (ISO 32000-1, 8.4.3.2). See strokePen.
Both transformed coordinates, retained for callers that need a Pair. Rendering loops should use transformX and transformY to avoid the intermediate tuple and boxed coordinates (ISO 32000-1, 8.3.4).
Transformed X coordinate (ISO 32000-1, 8.3.4). Use with transformY in path and glyph loops to avoid allocating and boxing a Pair per point. The arithmetic order matches transformPoint, including rounding.
Transformed Y coordinate (ISO 32000-1, 8.3.4). Like transformX, this returns a scalar so platform path builders can consume it without a tuple.