modern-path2d 1.3.2 → 1.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +362 -268
- package/dist/index.d.cts +83 -68
- package/dist/index.d.mts +83 -68
- package/dist/index.d.ts +83 -68
- package/dist/index.js +2 -2
- package/dist/index.mjs +361 -269
- package/package.json +11 -11
package/dist/index.d.cts
CHANGED
|
@@ -3,54 +3,6 @@ interface DrawPointOptions {
|
|
|
3
3
|
}
|
|
4
4
|
declare function drawPoint(ctx: CanvasRenderingContext2D, x: number, y: number, options?: DrawPointOptions): void;
|
|
5
5
|
|
|
6
|
-
declare function catmullRom(t: number, p0: number, p1: number, p2: number, p3: number): number;
|
|
7
|
-
|
|
8
|
-
declare function cubicBezier(t: number, p0: number, p1: number, p2: number, p3: number): number;
|
|
9
|
-
|
|
10
|
-
interface FillTriangulateOptions {
|
|
11
|
-
holes?: number[];
|
|
12
|
-
vertices?: number[];
|
|
13
|
-
indices?: number[];
|
|
14
|
-
verticesStride?: number;
|
|
15
|
-
verticesOffset?: number;
|
|
16
|
-
indicesOffset?: number;
|
|
17
|
-
style?: Partial<Path2DStyle>;
|
|
18
|
-
}
|
|
19
|
-
interface FillTriangulatedResult {
|
|
20
|
-
vertices: number[];
|
|
21
|
-
indices: number[];
|
|
22
|
-
}
|
|
23
|
-
declare function fillTriangulate(points: number[], options?: FillTriangulateOptions): FillTriangulatedResult;
|
|
24
|
-
|
|
25
|
-
declare function getAdaptiveCubicBezierCurvePoints(sX: number, sY: number, x1: number, y1: number, x2: number, y2: number, x: number, y: number, smoothness?: number, points?: number[]): number[];
|
|
26
|
-
|
|
27
|
-
declare function getAdaptiveQuadraticBezierCurvePoints(sX: number, sY: number, x1: number, y1: number, x: number, y: number, smoothness?: number, points?: number[]): number[];
|
|
28
|
-
|
|
29
|
-
declare function quadraticBezier(t: number, p0: number, p1: number, p2: number): number;
|
|
30
|
-
|
|
31
|
-
type LineCap = 'butt' | 'round' | 'square';
|
|
32
|
-
type LineJoin = 'round' | 'bevel' | 'miter';
|
|
33
|
-
interface StrokeTriangulateOptions {
|
|
34
|
-
vertices?: number[];
|
|
35
|
-
indices?: number[];
|
|
36
|
-
lineStyle?: LineStyle;
|
|
37
|
-
flipAlignment?: boolean;
|
|
38
|
-
closed?: boolean;
|
|
39
|
-
style?: Partial<Path2DStyle>;
|
|
40
|
-
}
|
|
41
|
-
interface StrokeTriangulatedResult {
|
|
42
|
-
vertices: number[];
|
|
43
|
-
indices: number[];
|
|
44
|
-
}
|
|
45
|
-
interface LineStyle {
|
|
46
|
-
width: number;
|
|
47
|
-
alignment: number;
|
|
48
|
-
join: LineJoin;
|
|
49
|
-
cap: LineCap;
|
|
50
|
-
miterLimit: number;
|
|
51
|
-
}
|
|
52
|
-
declare function strokeTriangulate(points: number[], options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
|
|
53
|
-
|
|
54
6
|
declare class Matrix3 {
|
|
55
7
|
elements: number[];
|
|
56
8
|
constructor(n11?: number, n12?: number, n13?: number, n21?: number, n22?: number, n23?: number, n31?: number, n32?: number, n33?: number);
|
|
@@ -132,6 +84,58 @@ declare class BoundingBox {
|
|
|
132
84
|
clone(): BoundingBox;
|
|
133
85
|
}
|
|
134
86
|
|
|
87
|
+
declare function catmullRom(t: number, p0: number, p1: number, p2: number, p3: number): number;
|
|
88
|
+
|
|
89
|
+
declare function cubicBezier(t: number, p0: number, p1: number, p2: number, p3: number): number;
|
|
90
|
+
|
|
91
|
+
interface FillTriangulateOptions {
|
|
92
|
+
holes?: number[];
|
|
93
|
+
vertices?: number[];
|
|
94
|
+
indices?: number[];
|
|
95
|
+
verticesStride?: number;
|
|
96
|
+
verticesOffset?: number;
|
|
97
|
+
indicesOffset?: number;
|
|
98
|
+
style?: Partial<Path2DStyle>;
|
|
99
|
+
}
|
|
100
|
+
interface FillTriangulatedResult {
|
|
101
|
+
vertices: number[];
|
|
102
|
+
indices: number[];
|
|
103
|
+
}
|
|
104
|
+
declare function fillTriangulate(pointArray: number[], options?: FillTriangulateOptions): FillTriangulatedResult;
|
|
105
|
+
|
|
106
|
+
declare function getAdaptiveCubicBezierCurvePoints(sX: number, sY: number, x1: number, y1: number, x2: number, y2: number, x: number, y: number, smoothness?: number, points?: number[]): number[];
|
|
107
|
+
|
|
108
|
+
declare function getAdaptiveQuadraticBezierCurvePoints(sX: number, sY: number, x1: number, y1: number, x: number, y: number, smoothness?: number, points?: number[]): number[];
|
|
109
|
+
|
|
110
|
+
declare function getDirectedArea(vertices: number[]): number;
|
|
111
|
+
|
|
112
|
+
declare function pointInPolygon(point: number[], polygon: number[]): boolean;
|
|
113
|
+
|
|
114
|
+
declare function quadraticBezier(t: number, p0: number, p1: number, p2: number): number;
|
|
115
|
+
|
|
116
|
+
type LineCap = 'butt' | 'round' | 'square';
|
|
117
|
+
type LineJoin = 'round' | 'bevel' | 'miter';
|
|
118
|
+
interface StrokeTriangulateOptions {
|
|
119
|
+
vertices?: number[];
|
|
120
|
+
indices?: number[];
|
|
121
|
+
lineStyle?: LineStyle;
|
|
122
|
+
flipAlignment?: boolean;
|
|
123
|
+
closed?: boolean;
|
|
124
|
+
style?: Partial<Path2DStyle>;
|
|
125
|
+
}
|
|
126
|
+
interface StrokeTriangulatedResult {
|
|
127
|
+
vertices: number[];
|
|
128
|
+
indices: number[];
|
|
129
|
+
}
|
|
130
|
+
interface LineStyle {
|
|
131
|
+
width: number;
|
|
132
|
+
alignment: number;
|
|
133
|
+
join: LineJoin;
|
|
134
|
+
cap: LineCap;
|
|
135
|
+
miterLimit: number;
|
|
136
|
+
}
|
|
137
|
+
declare function strokeTriangulate(points: number[], options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
|
|
138
|
+
|
|
135
139
|
declare abstract class Curve {
|
|
136
140
|
arcLengthDivision: number;
|
|
137
141
|
protected _arcLengths?: number[];
|
|
@@ -140,10 +144,10 @@ declare abstract class Curve {
|
|
|
140
144
|
isClockwise(): boolean;
|
|
141
145
|
getControlPointRefs(): Vector2[];
|
|
142
146
|
applyTransform(transform: Matrix3 | ((point: Vector2) => void)): this;
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
protected
|
|
147
|
+
getUnevenVertices(count?: number, output?: number[]): number[];
|
|
148
|
+
getSpacedVertices(count?: number, output?: number[]): number[];
|
|
149
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
150
|
+
protected _verticesToPoints(vertices: number[], output?: Vector2[]): Vector2[];
|
|
147
151
|
getSpacedPoints(count?: number, output?: Vector2[]): Vector2[];
|
|
148
152
|
getUnevenPoints(count?: number, output?: Vector2[]): Vector2[];
|
|
149
153
|
getAdaptivePoints(output?: Vector2[]): Vector2[];
|
|
@@ -162,6 +166,7 @@ declare abstract class Curve {
|
|
|
162
166
|
max: Vector2;
|
|
163
167
|
};
|
|
164
168
|
getBoundingBox(): BoundingBox;
|
|
169
|
+
getFillVertices(_options?: FillTriangulateOptions): number[];
|
|
165
170
|
fillTriangulate(options?: FillTriangulateOptions): FillTriangulatedResult;
|
|
166
171
|
strokeTriangulate(options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
|
|
167
172
|
toCommands(): Path2DCommand[];
|
|
@@ -199,8 +204,9 @@ declare class RoundCurve extends Curve {
|
|
|
199
204
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
200
205
|
applyTransform(matrix: Matrix3): this;
|
|
201
206
|
getControlPointRefs(): Vector2[];
|
|
202
|
-
|
|
203
|
-
|
|
207
|
+
protected _getAdaptiveVerticesByArc(output?: number[]): number[];
|
|
208
|
+
protected _getAdaptiveVerticesByCircle(output?: number[]): number[];
|
|
209
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
204
210
|
getMinMax(min?: Vector2, max?: Vector2): {
|
|
205
211
|
min: Vector2;
|
|
206
212
|
max: Vector2;
|
|
@@ -211,7 +217,7 @@ declare class RoundCurve extends Curve {
|
|
|
211
217
|
declare class ArcCurve extends RoundCurve {
|
|
212
218
|
constructor(cx?: number, cy?: number, radius?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
|
|
213
219
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
214
|
-
|
|
220
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
215
221
|
}
|
|
216
222
|
|
|
217
223
|
declare class CompositeCurve<T extends Curve = Curve> extends Curve {
|
|
@@ -223,10 +229,10 @@ declare class CompositeCurve<T extends Curve = Curve> extends Curve {
|
|
|
223
229
|
updateLengths(): void;
|
|
224
230
|
getControlPointRefs(): Vector2[];
|
|
225
231
|
protected _removeNextPointIfEqualPrevPoint(output: number[], offset: number): number[];
|
|
226
|
-
|
|
227
|
-
|
|
232
|
+
getSpacedVertices(count?: number, output?: number[]): number[];
|
|
233
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
228
234
|
strokeTriangulate(options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
|
|
229
|
-
|
|
235
|
+
getFillVertices(options?: FillTriangulateOptions): number[];
|
|
230
236
|
applyTransform(transform: Matrix3 | ((point: Vector2) => void)): this;
|
|
231
237
|
getMinMax(min?: Vector2, max?: Vector2): {
|
|
232
238
|
min: Vector2;
|
|
@@ -246,7 +252,7 @@ declare class CubicBezierCurve extends Curve {
|
|
|
246
252
|
static from(p1x: number, p1y: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, p2x: number, p2y: number): CubicBezierCurve;
|
|
247
253
|
constructor(p1?: Vector2, cp1?: Vector2, cp2?: Vector2, p2?: Vector2);
|
|
248
254
|
getPoint(t: number, output?: Vector2): Vector2;
|
|
249
|
-
|
|
255
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
250
256
|
getControlPointRefs(): Vector2[];
|
|
251
257
|
protected _solveQuadratic(a: number, b: number, c: number): number[];
|
|
252
258
|
getMinMax(min?: Vector2, max?: Vector2): {
|
|
@@ -273,13 +279,13 @@ declare class LineCurve extends Curve {
|
|
|
273
279
|
getTangent(_t: number, output?: Vector2): Vector2;
|
|
274
280
|
getTangentAt(u: number, output?: Vector2): Vector2;
|
|
275
281
|
getControlPointRefs(): Vector2[];
|
|
276
|
-
|
|
282
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
277
283
|
getMinMax(min?: Vector2, max?: Vector2): {
|
|
278
284
|
min: Vector2;
|
|
279
285
|
max: Vector2;
|
|
280
286
|
};
|
|
281
287
|
toCommands(): Path2DCommand[];
|
|
282
|
-
|
|
288
|
+
getFillVertices(options?: FillTriangulateOptions): number[];
|
|
283
289
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
284
290
|
copy(source: LineCurve): this;
|
|
285
291
|
}
|
|
@@ -305,7 +311,7 @@ declare class QuadraticBezierCurve extends Curve {
|
|
|
305
311
|
constructor(p1?: Vector2, cp?: Vector2, p2?: Vector2);
|
|
306
312
|
getPoint(t: number, output?: Vector2): Vector2;
|
|
307
313
|
getControlPointRefs(): Vector2[];
|
|
308
|
-
|
|
314
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
309
315
|
getMinMax(min?: Vector2, max?: Vector2): {
|
|
310
316
|
min: Vector2;
|
|
311
317
|
max: Vector2;
|
|
@@ -323,7 +329,7 @@ declare class RectangleCurve extends PloygonCurve {
|
|
|
323
329
|
constructor(x?: number, y?: number, width?: number, height?: number);
|
|
324
330
|
update(): this;
|
|
325
331
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
326
|
-
|
|
332
|
+
getFillVertices(_options?: FillTriangulateOptions): number[];
|
|
327
333
|
copy(source: RectangleCurve): this;
|
|
328
334
|
}
|
|
329
335
|
|
|
@@ -409,10 +415,11 @@ declare class CurvePath extends CompositeCurve {
|
|
|
409
415
|
addPoints(points: Vector2[]): this;
|
|
410
416
|
addCommands(commands: Path2DCommand[]): this;
|
|
411
417
|
addData(data: string): this;
|
|
412
|
-
protected
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
418
|
+
protected _closeVertices(output: number[]): number[];
|
|
419
|
+
getUnevenVertices(count?: number, output?: number[]): number[];
|
|
420
|
+
getSpacedVertices(count?: number, output?: number[]): number[];
|
|
421
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
422
|
+
getFillVertices(options?: FillTriangulateOptions): number[];
|
|
416
423
|
protected _setCurrentPoint(point: VectorLike): this;
|
|
417
424
|
protected _connetLineTo(curve: Curve): this;
|
|
418
425
|
closePath(): this;
|
|
@@ -467,6 +474,13 @@ interface Path2DStyle extends Path2DDrawStyle {
|
|
|
467
474
|
|
|
468
475
|
/**
|
|
469
476
|
* @link https://developer.mozilla.org/zh-CN/docs/Web/API/Path2D
|
|
477
|
+
*
|
|
478
|
+
* Path2D
|
|
479
|
+
* --CurvePath
|
|
480
|
+
* ----LineCurve
|
|
481
|
+
* ----EllipseCurve
|
|
482
|
+
* ----CubicBezierCurve
|
|
483
|
+
* ----...
|
|
470
484
|
*/
|
|
471
485
|
declare class Path2D extends CompositeCurve<CurvePath> {
|
|
472
486
|
currentCurve: CurvePath;
|
|
@@ -568,4 +582,5 @@ declare function svgToDOM(svg: string | SVGElement): SVGElement;
|
|
|
568
582
|
|
|
569
583
|
declare function svgToPath2DSet(svg: string | SVGElement): Path2DSet;
|
|
570
584
|
|
|
571
|
-
export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath,
|
|
585
|
+
export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath, EllipseCurve, EquilateralPloygonCurve, FFDControlGrid, LineCurve, Matrix3, Path2D, Path2DSet, PloygonCurve, QuadraticBezierCurve, RectangleCurve, RoundRectangleCurve, SplineCurve, Vector2, applyFFD, catmullRom, cubicBezier, drawPoint, fillTriangulate, getAdaptiveCubicBezierCurvePoints, getAdaptiveQuadraticBezierCurvePoints, getDirectedArea, parseArcCommand, parsePathDataArgs, pointInPolygon, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands, svgToDOM, svgToPath2DSet };
|
|
586
|
+
export type { DrawPointOptions, FillRule, FillTriangulateOptions, FillTriangulatedResult, LineCap, LineJoin, LineStyle, Path2DCommand, Path2DData, Path2DDrawStyle, Path2DStyle, StrokeLinecap, StrokeLinejoin, StrokeTriangulateOptions, StrokeTriangulatedResult, VectorLike };
|
package/dist/index.d.mts
CHANGED
|
@@ -3,54 +3,6 @@ interface DrawPointOptions {
|
|
|
3
3
|
}
|
|
4
4
|
declare function drawPoint(ctx: CanvasRenderingContext2D, x: number, y: number, options?: DrawPointOptions): void;
|
|
5
5
|
|
|
6
|
-
declare function catmullRom(t: number, p0: number, p1: number, p2: number, p3: number): number;
|
|
7
|
-
|
|
8
|
-
declare function cubicBezier(t: number, p0: number, p1: number, p2: number, p3: number): number;
|
|
9
|
-
|
|
10
|
-
interface FillTriangulateOptions {
|
|
11
|
-
holes?: number[];
|
|
12
|
-
vertices?: number[];
|
|
13
|
-
indices?: number[];
|
|
14
|
-
verticesStride?: number;
|
|
15
|
-
verticesOffset?: number;
|
|
16
|
-
indicesOffset?: number;
|
|
17
|
-
style?: Partial<Path2DStyle>;
|
|
18
|
-
}
|
|
19
|
-
interface FillTriangulatedResult {
|
|
20
|
-
vertices: number[];
|
|
21
|
-
indices: number[];
|
|
22
|
-
}
|
|
23
|
-
declare function fillTriangulate(points: number[], options?: FillTriangulateOptions): FillTriangulatedResult;
|
|
24
|
-
|
|
25
|
-
declare function getAdaptiveCubicBezierCurvePoints(sX: number, sY: number, x1: number, y1: number, x2: number, y2: number, x: number, y: number, smoothness?: number, points?: number[]): number[];
|
|
26
|
-
|
|
27
|
-
declare function getAdaptiveQuadraticBezierCurvePoints(sX: number, sY: number, x1: number, y1: number, x: number, y: number, smoothness?: number, points?: number[]): number[];
|
|
28
|
-
|
|
29
|
-
declare function quadraticBezier(t: number, p0: number, p1: number, p2: number): number;
|
|
30
|
-
|
|
31
|
-
type LineCap = 'butt' | 'round' | 'square';
|
|
32
|
-
type LineJoin = 'round' | 'bevel' | 'miter';
|
|
33
|
-
interface StrokeTriangulateOptions {
|
|
34
|
-
vertices?: number[];
|
|
35
|
-
indices?: number[];
|
|
36
|
-
lineStyle?: LineStyle;
|
|
37
|
-
flipAlignment?: boolean;
|
|
38
|
-
closed?: boolean;
|
|
39
|
-
style?: Partial<Path2DStyle>;
|
|
40
|
-
}
|
|
41
|
-
interface StrokeTriangulatedResult {
|
|
42
|
-
vertices: number[];
|
|
43
|
-
indices: number[];
|
|
44
|
-
}
|
|
45
|
-
interface LineStyle {
|
|
46
|
-
width: number;
|
|
47
|
-
alignment: number;
|
|
48
|
-
join: LineJoin;
|
|
49
|
-
cap: LineCap;
|
|
50
|
-
miterLimit: number;
|
|
51
|
-
}
|
|
52
|
-
declare function strokeTriangulate(points: number[], options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
|
|
53
|
-
|
|
54
6
|
declare class Matrix3 {
|
|
55
7
|
elements: number[];
|
|
56
8
|
constructor(n11?: number, n12?: number, n13?: number, n21?: number, n22?: number, n23?: number, n31?: number, n32?: number, n33?: number);
|
|
@@ -132,6 +84,58 @@ declare class BoundingBox {
|
|
|
132
84
|
clone(): BoundingBox;
|
|
133
85
|
}
|
|
134
86
|
|
|
87
|
+
declare function catmullRom(t: number, p0: number, p1: number, p2: number, p3: number): number;
|
|
88
|
+
|
|
89
|
+
declare function cubicBezier(t: number, p0: number, p1: number, p2: number, p3: number): number;
|
|
90
|
+
|
|
91
|
+
interface FillTriangulateOptions {
|
|
92
|
+
holes?: number[];
|
|
93
|
+
vertices?: number[];
|
|
94
|
+
indices?: number[];
|
|
95
|
+
verticesStride?: number;
|
|
96
|
+
verticesOffset?: number;
|
|
97
|
+
indicesOffset?: number;
|
|
98
|
+
style?: Partial<Path2DStyle>;
|
|
99
|
+
}
|
|
100
|
+
interface FillTriangulatedResult {
|
|
101
|
+
vertices: number[];
|
|
102
|
+
indices: number[];
|
|
103
|
+
}
|
|
104
|
+
declare function fillTriangulate(pointArray: number[], options?: FillTriangulateOptions): FillTriangulatedResult;
|
|
105
|
+
|
|
106
|
+
declare function getAdaptiveCubicBezierCurvePoints(sX: number, sY: number, x1: number, y1: number, x2: number, y2: number, x: number, y: number, smoothness?: number, points?: number[]): number[];
|
|
107
|
+
|
|
108
|
+
declare function getAdaptiveQuadraticBezierCurvePoints(sX: number, sY: number, x1: number, y1: number, x: number, y: number, smoothness?: number, points?: number[]): number[];
|
|
109
|
+
|
|
110
|
+
declare function getDirectedArea(vertices: number[]): number;
|
|
111
|
+
|
|
112
|
+
declare function pointInPolygon(point: number[], polygon: number[]): boolean;
|
|
113
|
+
|
|
114
|
+
declare function quadraticBezier(t: number, p0: number, p1: number, p2: number): number;
|
|
115
|
+
|
|
116
|
+
type LineCap = 'butt' | 'round' | 'square';
|
|
117
|
+
type LineJoin = 'round' | 'bevel' | 'miter';
|
|
118
|
+
interface StrokeTriangulateOptions {
|
|
119
|
+
vertices?: number[];
|
|
120
|
+
indices?: number[];
|
|
121
|
+
lineStyle?: LineStyle;
|
|
122
|
+
flipAlignment?: boolean;
|
|
123
|
+
closed?: boolean;
|
|
124
|
+
style?: Partial<Path2DStyle>;
|
|
125
|
+
}
|
|
126
|
+
interface StrokeTriangulatedResult {
|
|
127
|
+
vertices: number[];
|
|
128
|
+
indices: number[];
|
|
129
|
+
}
|
|
130
|
+
interface LineStyle {
|
|
131
|
+
width: number;
|
|
132
|
+
alignment: number;
|
|
133
|
+
join: LineJoin;
|
|
134
|
+
cap: LineCap;
|
|
135
|
+
miterLimit: number;
|
|
136
|
+
}
|
|
137
|
+
declare function strokeTriangulate(points: number[], options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
|
|
138
|
+
|
|
135
139
|
declare abstract class Curve {
|
|
136
140
|
arcLengthDivision: number;
|
|
137
141
|
protected _arcLengths?: number[];
|
|
@@ -140,10 +144,10 @@ declare abstract class Curve {
|
|
|
140
144
|
isClockwise(): boolean;
|
|
141
145
|
getControlPointRefs(): Vector2[];
|
|
142
146
|
applyTransform(transform: Matrix3 | ((point: Vector2) => void)): this;
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
protected
|
|
147
|
+
getUnevenVertices(count?: number, output?: number[]): number[];
|
|
148
|
+
getSpacedVertices(count?: number, output?: number[]): number[];
|
|
149
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
150
|
+
protected _verticesToPoints(vertices: number[], output?: Vector2[]): Vector2[];
|
|
147
151
|
getSpacedPoints(count?: number, output?: Vector2[]): Vector2[];
|
|
148
152
|
getUnevenPoints(count?: number, output?: Vector2[]): Vector2[];
|
|
149
153
|
getAdaptivePoints(output?: Vector2[]): Vector2[];
|
|
@@ -162,6 +166,7 @@ declare abstract class Curve {
|
|
|
162
166
|
max: Vector2;
|
|
163
167
|
};
|
|
164
168
|
getBoundingBox(): BoundingBox;
|
|
169
|
+
getFillVertices(_options?: FillTriangulateOptions): number[];
|
|
165
170
|
fillTriangulate(options?: FillTriangulateOptions): FillTriangulatedResult;
|
|
166
171
|
strokeTriangulate(options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
|
|
167
172
|
toCommands(): Path2DCommand[];
|
|
@@ -199,8 +204,9 @@ declare class RoundCurve extends Curve {
|
|
|
199
204
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
200
205
|
applyTransform(matrix: Matrix3): this;
|
|
201
206
|
getControlPointRefs(): Vector2[];
|
|
202
|
-
|
|
203
|
-
|
|
207
|
+
protected _getAdaptiveVerticesByArc(output?: number[]): number[];
|
|
208
|
+
protected _getAdaptiveVerticesByCircle(output?: number[]): number[];
|
|
209
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
204
210
|
getMinMax(min?: Vector2, max?: Vector2): {
|
|
205
211
|
min: Vector2;
|
|
206
212
|
max: Vector2;
|
|
@@ -211,7 +217,7 @@ declare class RoundCurve extends Curve {
|
|
|
211
217
|
declare class ArcCurve extends RoundCurve {
|
|
212
218
|
constructor(cx?: number, cy?: number, radius?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
|
|
213
219
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
214
|
-
|
|
220
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
215
221
|
}
|
|
216
222
|
|
|
217
223
|
declare class CompositeCurve<T extends Curve = Curve> extends Curve {
|
|
@@ -223,10 +229,10 @@ declare class CompositeCurve<T extends Curve = Curve> extends Curve {
|
|
|
223
229
|
updateLengths(): void;
|
|
224
230
|
getControlPointRefs(): Vector2[];
|
|
225
231
|
protected _removeNextPointIfEqualPrevPoint(output: number[], offset: number): number[];
|
|
226
|
-
|
|
227
|
-
|
|
232
|
+
getSpacedVertices(count?: number, output?: number[]): number[];
|
|
233
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
228
234
|
strokeTriangulate(options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
|
|
229
|
-
|
|
235
|
+
getFillVertices(options?: FillTriangulateOptions): number[];
|
|
230
236
|
applyTransform(transform: Matrix3 | ((point: Vector2) => void)): this;
|
|
231
237
|
getMinMax(min?: Vector2, max?: Vector2): {
|
|
232
238
|
min: Vector2;
|
|
@@ -246,7 +252,7 @@ declare class CubicBezierCurve extends Curve {
|
|
|
246
252
|
static from(p1x: number, p1y: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, p2x: number, p2y: number): CubicBezierCurve;
|
|
247
253
|
constructor(p1?: Vector2, cp1?: Vector2, cp2?: Vector2, p2?: Vector2);
|
|
248
254
|
getPoint(t: number, output?: Vector2): Vector2;
|
|
249
|
-
|
|
255
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
250
256
|
getControlPointRefs(): Vector2[];
|
|
251
257
|
protected _solveQuadratic(a: number, b: number, c: number): number[];
|
|
252
258
|
getMinMax(min?: Vector2, max?: Vector2): {
|
|
@@ -273,13 +279,13 @@ declare class LineCurve extends Curve {
|
|
|
273
279
|
getTangent(_t: number, output?: Vector2): Vector2;
|
|
274
280
|
getTangentAt(u: number, output?: Vector2): Vector2;
|
|
275
281
|
getControlPointRefs(): Vector2[];
|
|
276
|
-
|
|
282
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
277
283
|
getMinMax(min?: Vector2, max?: Vector2): {
|
|
278
284
|
min: Vector2;
|
|
279
285
|
max: Vector2;
|
|
280
286
|
};
|
|
281
287
|
toCommands(): Path2DCommand[];
|
|
282
|
-
|
|
288
|
+
getFillVertices(options?: FillTriangulateOptions): number[];
|
|
283
289
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
284
290
|
copy(source: LineCurve): this;
|
|
285
291
|
}
|
|
@@ -305,7 +311,7 @@ declare class QuadraticBezierCurve extends Curve {
|
|
|
305
311
|
constructor(p1?: Vector2, cp?: Vector2, p2?: Vector2);
|
|
306
312
|
getPoint(t: number, output?: Vector2): Vector2;
|
|
307
313
|
getControlPointRefs(): Vector2[];
|
|
308
|
-
|
|
314
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
309
315
|
getMinMax(min?: Vector2, max?: Vector2): {
|
|
310
316
|
min: Vector2;
|
|
311
317
|
max: Vector2;
|
|
@@ -323,7 +329,7 @@ declare class RectangleCurve extends PloygonCurve {
|
|
|
323
329
|
constructor(x?: number, y?: number, width?: number, height?: number);
|
|
324
330
|
update(): this;
|
|
325
331
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
326
|
-
|
|
332
|
+
getFillVertices(_options?: FillTriangulateOptions): number[];
|
|
327
333
|
copy(source: RectangleCurve): this;
|
|
328
334
|
}
|
|
329
335
|
|
|
@@ -409,10 +415,11 @@ declare class CurvePath extends CompositeCurve {
|
|
|
409
415
|
addPoints(points: Vector2[]): this;
|
|
410
416
|
addCommands(commands: Path2DCommand[]): this;
|
|
411
417
|
addData(data: string): this;
|
|
412
|
-
protected
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
418
|
+
protected _closeVertices(output: number[]): number[];
|
|
419
|
+
getUnevenVertices(count?: number, output?: number[]): number[];
|
|
420
|
+
getSpacedVertices(count?: number, output?: number[]): number[];
|
|
421
|
+
getAdaptiveVertices(output?: number[]): number[];
|
|
422
|
+
getFillVertices(options?: FillTriangulateOptions): number[];
|
|
416
423
|
protected _setCurrentPoint(point: VectorLike): this;
|
|
417
424
|
protected _connetLineTo(curve: Curve): this;
|
|
418
425
|
closePath(): this;
|
|
@@ -467,6 +474,13 @@ interface Path2DStyle extends Path2DDrawStyle {
|
|
|
467
474
|
|
|
468
475
|
/**
|
|
469
476
|
* @link https://developer.mozilla.org/zh-CN/docs/Web/API/Path2D
|
|
477
|
+
*
|
|
478
|
+
* Path2D
|
|
479
|
+
* --CurvePath
|
|
480
|
+
* ----LineCurve
|
|
481
|
+
* ----EllipseCurve
|
|
482
|
+
* ----CubicBezierCurve
|
|
483
|
+
* ----...
|
|
470
484
|
*/
|
|
471
485
|
declare class Path2D extends CompositeCurve<CurvePath> {
|
|
472
486
|
currentCurve: CurvePath;
|
|
@@ -568,4 +582,5 @@ declare function svgToDOM(svg: string | SVGElement): SVGElement;
|
|
|
568
582
|
|
|
569
583
|
declare function svgToPath2DSet(svg: string | SVGElement): Path2DSet;
|
|
570
584
|
|
|
571
|
-
export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath,
|
|
585
|
+
export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath, EllipseCurve, EquilateralPloygonCurve, FFDControlGrid, LineCurve, Matrix3, Path2D, Path2DSet, PloygonCurve, QuadraticBezierCurve, RectangleCurve, RoundRectangleCurve, SplineCurve, Vector2, applyFFD, catmullRom, cubicBezier, drawPoint, fillTriangulate, getAdaptiveCubicBezierCurvePoints, getAdaptiveQuadraticBezierCurvePoints, getDirectedArea, parseArcCommand, parsePathDataArgs, pointInPolygon, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands, svgToDOM, svgToPath2DSet };
|
|
586
|
+
export type { DrawPointOptions, FillRule, FillTriangulateOptions, FillTriangulatedResult, LineCap, LineJoin, LineStyle, Path2DCommand, Path2DData, Path2DDrawStyle, Path2DStyle, StrokeLinecap, StrokeLinejoin, StrokeTriangulateOptions, StrokeTriangulatedResult, VectorLike };
|