UNPKG

3.55 kBTypeScriptView Raw
1import { RenderingContext2D } from '../types';
2import PathParser, { CommandType } from '../PathParser';
3import Document from './Document';
4import TextElement from './TextElement';
5import PathElement from './PathElement';
6export interface IPoint {
7 x: number;
8 y: number;
9}
10export interface IPathCommand {
11 type: CommandType;
12 points: number[];
13 start?: IPoint;
14 pathLength: number;
15}
16interface ICachedPoint extends IPoint {
17 distance: number;
18}
19interface IGlyphInfo {
20 text: string;
21 rotation: number;
22 p0: ICachedPoint;
23 p1: ICachedPoint;
24}
25export default class TextPathElement extends TextElement {
26 type: string;
27 protected textWidth: number;
28 protected textHeight: number;
29 protected pathLength: number;
30 protected glyphInfo: IGlyphInfo[];
31 protected readonly text: string;
32 protected readonly dataArray: IPathCommand[];
33 private letterSpacingCache;
34 private equidistantCache;
35 private readonly measuresCache;
36 constructor(document: Document, node: HTMLElement, captureTextNodes?: boolean);
37 getText(): string;
38 path(ctx: RenderingContext2D): void;
39 renderChildren(ctx: RenderingContext2D): void;
40 protected getLetterSpacingAt(idx?: number): number;
41 protected findSegmentToFitChar(ctx: RenderingContext2D, anchor: string, textFullWidth: number, fullPathWidth: number, spacesNumber: number, inputOffset: number, dy: number, c: string, charI: number): {
42 offset: number;
43 segment: {
44 p0: ICachedPoint;
45 p1: ICachedPoint;
46 };
47 rotation: number;
48 };
49 protected measureText(ctx: RenderingContext2D, text?: string): number;
50 protected setTextData(ctx: RenderingContext2D): void;
51 protected parsePathData(path: PathElement): IPathCommand[];
52 protected pathM(pathParser: PathParser, points: number[]): void;
53 protected pathL(pathParser: PathParser, points: number[]): 16;
54 protected pathH(pathParser: PathParser, points: number[]): 16;
55 protected pathV(pathParser: PathParser, points: number[]): 16;
56 protected pathC(pathParser: PathParser, points: number[]): void;
57 protected pathS(pathParser: PathParser, points: number[]): 32;
58 protected pathQ(pathParser: PathParser, points: number[]): void;
59 protected pathT(pathParser: PathParser, points: number[]): 128;
60 protected pathA(pathParser: PathParser): number[];
61 protected calcLength(x: number, y: number, commandType: CommandType, points: number[]): number;
62 protected getPointOnLine(dist: number, p1x: number, p1y: number, p2x: number, p2y: number, fromX?: number, fromY?: number): IPoint;
63 protected getPointOnPath(distance: number): IPoint;
64 protected getLineLength(x1: number, y1: number, x2: number, y2: number): number;
65 protected getPathLength(): number;
66 protected getPointOnCubicBezier(pct: number, p1x: number, p1y: number, p2x: number, p2y: number, p3x: number, p3y: number, p4x: number, p4y: number): IPoint;
67 protected getPointOnQuadraticBezier(pct: number, p1x: number, p1y: number, p2x: number, p2y: number, p3x: number, p3y: number): IPoint;
68 protected getPointOnEllipticalArc(cx: number, cy: number, rx: number, ry: number, theta: number, psi: number): IPoint;
69 protected buildEquidistantCache(inputStep: number, inputPrecision: number): void;
70 protected getEquidistantPointOnPath(targetDistance: number, step?: number, precision?: number): ICachedPoint;
71}
72export {};
73//# sourceMappingURL=TextPathElement.d.ts.map
\No newline at end of file