1 | import { RenderingContext2D } from '../types';
|
2 | import { PathParser, CommandType } from '../PathParser';
|
3 | import { Document } from './Document';
|
4 | import { TextElement } from './TextElement';
|
5 | import { PathElement } from './PathElement';
|
6 | export interface IPoint {
|
7 | x: number;
|
8 | y: number;
|
9 | }
|
10 | export interface IPathCommand {
|
11 | type: CommandType;
|
12 | points: number[];
|
13 | start?: IPoint;
|
14 | pathLength: number;
|
15 | }
|
16 | interface ICachedPoint extends IPoint {
|
17 | distance: number;
|
18 | }
|
19 | interface IGlyphInfo {
|
20 | text: string;
|
21 | rotation: number;
|
22 | p0: ICachedPoint;
|
23 | p1: ICachedPoint;
|
24 | }
|
25 | export declare 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 | }
|
72 | export {};
|
73 |
|
\ | No newline at end of file |