/** @ignore */ /** */ import type { IBounds } from "../../util/IBounds"; import type { IPoint } from "../../util/IPoint"; import type { IGradient, IPattern } from "../backend/Renderer"; import { Color } from "../../util/Color"; /** * Where path ops trace their geometry. `CanvasRenderingContext2D` is one. * * @ignore */ export interface IPathSink { moveTo(x: number, y: number): void; lineTo(x: number, y: number): void; closePath(): void; rect(x: number, y: number, width: number, height: number): void; arc(cx: number, cy: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void; arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void; ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void; bezierCurveTo(cpX: number, cpY: number, cpX2: number, cpY2: number, toX: number, toY: number): void; quadraticCurveTo(cpX: number, cpY: number, toX: number, toY: number): void; } /** * A CSS color string, or a gradient/pattern made by the renderer. * * @ignore */ export declare type GraphicsPaint = string | IGradient | IPattern; /** * @ignore */ export declare function setPoint(bounds: IBounds, point: IPoint): void; /** * @ignore */ declare abstract class Op { path(_sink: IPathSink): void; addBounds(_bounds: IBounds): void; } /** * @ignore */ export declare class BeginPath extends Op { readonly type = "beginPath"; } /** * @ignore */ export declare class BeginFill extends Op { color: GraphicsPaint; readonly type = "beginFill"; constructor(color: GraphicsPaint); } /** * @ignore */ export declare class EndFill extends Op { clearShadow: boolean; readonly type = "endFill"; constructor(clearShadow: boolean); } /** * @ignore */ export declare class EndStroke extends Op { readonly type = "endStroke"; } /** * @ignore */ export declare class LineStyle extends Op { width: number; color: GraphicsPaint; lineJoin?: "miter" | "round" | "bevel" | undefined; lineCap?: "round" | "butt" | "square" | undefined; readonly type = "lineStyle"; constructor(width: number, color: GraphicsPaint, lineJoin?: "miter" | "round" | "bevel" | undefined, lineCap?: "round" | "butt" | "square" | undefined); } /** * @ignore */ export declare class LineDash extends Op { dash: number[]; readonly type = "lineDash"; constructor(dash: number[]); } /** * @ignore */ export declare class LineDashOffset extends Op { dashOffset: number; readonly type = "lineDashOffset"; constructor(dashOffset: number); } /** * @ignore */ export declare class DrawRect extends Op { x: number; y: number; width: number; height: number; readonly type = "drawRect"; constructor(x: number, y: number, width: number, height: number); path(sink: IPathSink): void; addBounds(bounds: IBounds): void; } /** * @ignore */ export declare class DrawCircle extends Op { x: number; y: number; radius: number; readonly type = "drawCircle"; constructor(x: number, y: number, radius: number); path(sink: IPathSink): void; addBounds(bounds: IBounds): void; } /** * @ignore */ export declare class DrawEllipse extends Op { x: number; y: number; radiusX: number; radiusY: number; readonly type = "drawEllipse"; constructor(x: number, y: number, radiusX: number, radiusY: number); path(sink: IPathSink): void; addBounds(bounds: IBounds): void; } /** * @ignore */ export declare class Arc extends Op { cx: number; cy: number; radius: number; startAngle: number; endAngle: number; anticlockwise: boolean; readonly type = "arc"; constructor(cx: number, cy: number, radius: number, startAngle: number, endAngle: number, anticlockwise: boolean); path(sink: IPathSink): void; addBounds(bounds: IBounds): void; } /** * @ignore */ export declare class ArcTo extends Op { x1: number; y1: number; x2: number; y2: number; radius: number; readonly type = "arcTo"; constructor(x1: number, y1: number, x2: number, y2: number, radius: number); path(sink: IPathSink): void; } /** * @ignore */ export declare class LineTo extends Op { x: number; y: number; readonly type = "lineTo"; constructor(x: number, y: number); path(sink: IPathSink): void; addBounds(bounds: IBounds): void; } /** * @ignore */ export declare class MoveTo extends Op { x: number; y: number; readonly type = "moveTo"; constructor(x: number, y: number); path(sink: IPathSink): void; addBounds(bounds: IBounds): void; } /** * @ignore */ export declare class ClosePath extends Op { readonly type = "closePath"; path(sink: IPathSink): void; } /** * @ignore */ export declare class BezierCurveTo extends Op { cpX: number; cpY: number; cpX2: number; cpY2: number; toX: number; toY: number; readonly type = "bezierCurveTo"; constructor(cpX: number, cpY: number, cpX2: number, cpY2: number, toX: number, toY: number); path(sink: IPathSink): void; addBounds(bounds: IBounds): void; } /** * @ignore */ export declare class QuadraticCurveTo extends Op { cpX: number; cpY: number; toX: number; toY: number; readonly type = "quadraticCurveTo"; constructor(cpX: number, cpY: number, toX: number, toY: number); path(sink: IPathSink): void; addBounds(bounds: IBounds): void; } /** * @ignore */ export declare class Shadow extends Op { color: string; blur: number; offsetX: number; offsetY: number; opacity?: number | undefined; readonly type = "shadow"; constructor(color: string, blur: number, offsetX: number, offsetY: number, opacity?: number | undefined); } /** * Drawn by the backend while tracing, in op order. * * @ignore */ export declare class GraphicsImage extends Op { image: HTMLImageElement | HTMLCanvasElement; width: number; height: number; x: number; y: number; readonly type = "image"; constructor(image: HTMLImageElement | HTMLCanvasElement, width: number, height: number, x: number, y: number); addBounds(bounds: IBounds): void; } /** * Opens a named group of the shapes that follow. Draws nothing; SVG writes it * as a ``. * * @ignore */ export declare class BeginGroup extends Op { id?: string | undefined; name?: string | undefined; readonly type = "beginGroup"; constructor(id?: string | undefined, name?: string | undefined); } /** * @ignore */ export declare class EndGroup extends Op { readonly type = "endGroup"; } /** * @ignore */ export declare type GraphicsOp = BeginPath | BeginFill | EndFill | EndStroke | LineStyle | LineDash | LineDashOffset | DrawRect | DrawCircle | DrawEllipse | Arc | ArcTo | LineTo | MoveTo | ClosePath | BezierCurveTo | QuadraticCurveTo | Shadow | GraphicsImage | BeginGroup | EndGroup; /** * What an `IGraphics` records: geometry and paint ops, in call order. * * Renderer-neutral: backends replay `ops`. * * @ignore */ export declare class GraphicsData { ops: Array; version: number; protected _hasShadows: boolean; protected _fillAlpha?: number; protected _strokeAlpha?: number; protected _strokeWidth: number; clear(): void; beginFill(color?: Color | IGradient | IPattern, alpha?: number): void; endFill(): void; endStroke(): void; beginPath(): void; lineStyle(width?: number, color?: Color | IGradient | IPattern, alpha?: number, lineJoin?: "miter" | "round" | "bevel", lineCap?: "butt" | "round" | "square"): void; setLineDash(dash?: number[]): void; setLineDashOffset(dashOffset?: number): void; drawRect(x: number, y: number, width: number, height: number): void; drawCircle(x: number, y: number, radius: number): void; drawEllipse(x: number, y: number, radiusX: number, radiusY: number): void; arc(cx: number, cy: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void; arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void; lineTo(x: number, y: number): void; moveTo(x: number, y: number): void; bezierCurveTo(cpX: number, cpY: number, cpX2: number, cpY2: number, toX: number, toY: number): void; quadraticCurveTo(cpX: number, cpY: number, toX: number, toY: number): void; closePath(): void; shadow(color: Color, blur?: number, offsetX?: number, offsetY?: number, opacity?: number): void; image(image: HTMLImageElement | HTMLCanvasElement, width: number, height: number, x: number, y: number): void; beginGroup(id?: string, name?: string): void; endGroup(): void; svgPath(path: string): void; addBounds(bounds: IBounds): void; } export {}; //# sourceMappingURL=GraphicsData.d.ts.map