@visactor/vrender-core
Version:
## Description
53 lines (52 loc) • 3.18 kB
TypeScript
import type { CommandStrType, CommandType, ICurve, ICustomPath2D, IDirection, ILine, IPath2D } from '../interface';
import { CurvePath } from './segment/curve/path';
import type { IPoint, IPointLike } from '@visactor/vutils';
export declare class CustomPath2D extends CurvePath implements ICustomPath2D {
commandList: CommandType[];
_boundsContext: IPath2D;
_ctx?: IPath2D;
direction?: IDirection;
protected transformCbList?: ((cmd: CommandType, x: number, y: number, sx: number, sy: number) => void)[];
protected toStringCbList?: ((cmd: CommandType) => string)[];
constructor(ctx?: IPath2D);
get curves(): ICurve<IPoint>[];
setCtx(ctx?: IPath2D): void;
moveTo(x: number, y: number): this;
lineTo(x: number, y: number): this;
quadraticCurveTo(aCPx: number, aCPy: number, aX: number, aY: number): this;
bezierCurveTo(aCP1x: number, aCP1y: number, aCP2x: number, aCP2y: number, aX: number, aY: number): this;
arcTo(aX1: number, aY1: number, aX2: number, aY2: number, aRadius: number): this;
ellipse(aX: number, aY: number, xRadius: number, yRadius: number, aRotation: number, aStartAngle: number, aEndAngle: number, aClockwise: boolean): this;
rect(x: number, y: number, w: number, h: number): this;
arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
closePath(): this;
addCurve(curve: ICurve<IPoint>): void;
clear(): void;
beginPath(): void;
tryBuildCurves(): ICurve<IPoint>[];
toString(): string;
fromString(str: string, x?: number, y?: number, sX?: number, sY?: number): this;
fromLine(line: ILine): void;
fromCustomPath2D(path: ICustomPath2D, x?: number, y?: number, sX?: number, sY?: number): this;
transform(x: number, y: number, sx: number, sy: number): void;
protected moveToTransform(cmd: CommandType, x: number, y: number, sx: number, sy: number): void;
protected lineToTransform(cmd: CommandType, x: number, y: number, sx: number, sy: number): void;
protected quadraticCurveToTransform(cmd: CommandType, x: number, y: number, sx: number, sy: number): void;
protected bezierCurveToTransform(cmd: CommandType, x: number, y: number, sx: number, sy: number): void;
arcToTransform(cmd: CommandType, x: number, y: number, sx: number, sy: number): void;
ellipseTransform(cmd: CommandType, x: number, y: number, sx: number, sy: number): void;
rectTransform(cmd: CommandType, x: number, y: number, sx: number, sy: number): void;
arcTransform(cmd: CommandType, x: number, y: number, sx: number, sy: number): void;
closePathTransform(): void;
protected _runCommandStrList(commandStrList: CommandStrType[], l?: number, t?: number, sX?: number, sY?: number): void;
protected _runCommandList(commandList: CommandType[], l?: number, t?: number, sX?: number, sY?: number): void;
private _updateBounds;
release(): void;
getLength(): number;
getYAt(x: number): number;
getAttrAt(distance: number): {
pos: IPointLike;
angle: number;
};
drawWithClipRange(ctx: IPath2D, size: number, x: number, y: number, clipRange: number): void;
}