/** * Flat 2D point array. Stores [x0, y0, x1, y1, ...] internally, * eliminating per-point array allocations. */ export class Points { /** * Create a Points from 4 coordinate pairs (the common quad case). * @param {number} x0 * @param {number} y0 * @param {number} x1 * @param {number} y1 * @param {number} x2 * @param {number} y2 * @param {number} x3 * @param {number} y3 * @returns {Points} */ static quad(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): Points; /** @param {number[]} data — flat [x0, y0, x1, y1, ...] */ constructor(data: number[]); data: number[]; /** Number of points. */ get length(): number; /** * X coordinate of point i. * @param {number} i * @returns {number} */ x(i: number): number; /** * Y coordinate of point i. * @param {number} i * @returns {number} */ y(i: number): number; /** * Iterate [x, y] pairs. Convenient for non-hot-path code; * prefer x(i)/y(i) accessors in performance-critical loops. * @returns {Iterator<[number, number]>} */ [Symbol.iterator](): Iterator<[number, number]>; }