@antv/util
Version:
> AntV 底层依赖的工具库,不建议在自己业务中使用。
128 lines (127 loc) • 5.38 kB
TypeScript
export declare type Point = {
x: number;
y: number;
};
export declare type MCommand = 'M';
export declare type mCommand = 'm';
export declare type LCommand = 'L';
export declare type lCommand = 'l';
export declare type VCommand = 'V';
export declare type vCommand = 'v';
export declare type HCommand = 'H';
export declare type hCommand = 'h';
export declare type ZCommand = 'Z';
export declare type zCommand = 'z';
export declare type CCommand = 'C';
export declare type cCommand = 'c';
export declare type SCommand = 'S';
export declare type sCommand = 's';
export declare type QCommand = 'Q';
export declare type qCommand = 'q';
export declare type TCommand = 'T';
export declare type tCommand = 't';
export declare type ACommand = 'A';
export declare type aCommand = 'a';
export declare type AbsoluteCommand = MCommand | LCommand | VCommand | HCommand | ZCommand | CCommand | SCommand | QCommand | TCommand | ACommand;
export declare type RelativeCommand = mCommand | lCommand | vCommand | hCommand | zCommand | cCommand | sCommand | qCommand | tCommand | aCommand;
export declare type PathCommand = AbsoluteCommand | RelativeCommand;
export declare type MSegment = [MCommand, number, number];
export declare type mSegment = [mCommand, number, number];
export declare type MoveSegment = MSegment | mSegment;
export declare type LSegment = [LCommand, number, number];
export declare type lSegment = [lCommand, number, number];
export declare type LineSegment = LSegment | lSegment;
export declare type VSegment = [VCommand, number];
export declare type vSegment = [vCommand, number];
export declare type VertLineSegment = vSegment | VSegment;
export declare type HSegment = [HCommand, number];
export declare type hSegment = [hCommand, number];
export declare type HorLineSegment = HSegment | hSegment;
export declare type ZSegment = [ZCommand];
export declare type zSegment = [zCommand];
export declare type CloseSegment = ZSegment | zSegment;
export declare type CSegment = [CCommand, number, number, number, number, number, number];
export declare type cSegment = [cCommand, number, number, number, number, number, number];
export declare type CubicSegment = CSegment | cSegment;
export declare type SSegment = [SCommand, number, number, number, number];
export declare type sSegment = [sCommand, number, number, number, number];
export declare type ShortCubicSegment = SSegment | sSegment;
export declare type QSegment = [QCommand, number, number, number, number];
export declare type qSegment = [qCommand, number, number, number, number];
export declare type QuadSegment = QSegment | qSegment;
export declare type TSegment = [TCommand, number, number];
export declare type tSegment = [tCommand, number, number];
export declare type ShortQuadSegment = TSegment | tSegment;
export declare type ASegment = [ACommand, number, number, number, number, number, number, number];
export declare type aSegment = [aCommand, number, number, number, number, number, number, number];
export declare type ArcSegment = ASegment | aSegment;
export declare type PathSegment = MoveSegment | LineSegment | VertLineSegment | HorLineSegment | CloseSegment | CubicSegment | ShortCubicSegment | QuadSegment | ShortQuadSegment | ArcSegment;
export interface SegmentProperties {
/** the segment */
segment: PathSegment;
/** the segment index */
index: number;
/** the segment length */
length: number;
/** the length including the segment length */
lengthAtSegment: number;
[key: string]: any;
}
export declare type ShortSegment = VertLineSegment | HorLineSegment | ShortCubicSegment | ShortQuadSegment | CloseSegment;
export declare type AbsoluteSegment = MSegment | LSegment | VSegment | HSegment | CSegment | SSegment | QSegment | TSegment | ASegment | ZSegment;
export declare type RelativeSegment = mSegment | lSegment | vSegment | hSegment | cSegment | sSegment | qSegment | tSegment | aSegment | zSegment;
export declare type NormalSegment = MSegment | LSegment | CSegment | QSegment | ASegment | ZSegment;
export declare type PathArray = [MSegment | mSegment, ...PathSegment[]];
export declare type AbsoluteArray = [MSegment, ...AbsoluteSegment[]];
export declare type RelativeArray = [MSegment, ...RelativeSegment[]];
export declare type NormalArray = [MSegment, ...NormalSegment[]];
export declare type CurveArray = [MSegment, ...CSegment[]];
export declare type PolygonArray = [MSegment, ...LSegment[], ZSegment];
export declare type PolylineArray = [MSegment, ...LSegment[]];
export interface ParserParams {
x1: number;
y1: number;
x2: number;
y2: number;
x: number;
y: number;
qx: number | null;
qy: number | null;
}
export interface PathBBox {
width: number;
height: number;
x: number;
y: number;
x2: number;
y2: number;
cx: number;
cy: number;
cz: number;
}
export interface PathBBoxTotalLength extends PathBBox {
length: number;
}
export interface PathLengthFactoryOptions {
bbox: boolean;
length: boolean;
sampleSize: number;
}
export interface SegmentLimits {
min: Point;
max: Point;
}
export interface PointProperties {
closest: {
x: number;
y: number;
};
distance: number;
segment?: SegmentProperties;
}
export interface LengthFactory {
length: number;
point: Point;
min: Point;
max: Point;
}