modern-path2d 1.3.1 → 1.3.3

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.d.cts CHANGED
@@ -3,52 +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
- }
18
- interface FillTriangulatedResult {
19
- vertices: number[];
20
- indices: number[];
21
- }
22
- declare function fillTriangulate(points: number[], options?: FillTriangulateOptions): FillTriangulatedResult;
23
-
24
- declare function getAdaptiveCubicBezierCurvePoints(sX: number, sY: number, x1: number, y1: number, x2: number, y2: number, x: number, y: number, smoothness?: number, points?: number[]): number[];
25
-
26
- declare function getAdaptiveQuadraticBezierCurvePoints(sX: number, sY: number, x1: number, y1: number, x: number, y: number, smoothness?: number, points?: number[]): number[];
27
-
28
- declare function quadraticBezier(t: number, p0: number, p1: number, p2: number): number;
29
-
30
- type LineCap = 'butt' | 'round' | 'square';
31
- type LineJoin = 'round' | 'bevel' | 'miter';
32
- interface StrokeTriangulateOptions {
33
- vertices?: number[];
34
- indices?: number[];
35
- lineStyle?: LineStyle;
36
- flipAlignment?: boolean;
37
- closed?: boolean;
38
- }
39
- interface StrokeTriangulatedResult {
40
- vertices: number[];
41
- indices: number[];
42
- }
43
- interface LineStyle {
44
- width: number;
45
- alignment: number;
46
- join: LineJoin;
47
- cap: LineCap;
48
- miterLimit: number;
49
- }
50
- declare function strokeTriangulate(points: number[], options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
51
-
52
6
  declare class Matrix3 {
53
7
  elements: number[];
54
8
  constructor(n11?: number, n12?: number, n13?: number, n21?: number, n22?: number, n23?: number, n31?: number, n32?: number, n33?: number);
@@ -130,6 +84,58 @@ declare class BoundingBox {
130
84
  clone(): BoundingBox;
131
85
  }
132
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
+
133
139
  declare abstract class Curve {
134
140
  arcLengthDivision: number;
135
141
  protected _arcLengths?: number[];
@@ -138,10 +144,10 @@ declare abstract class Curve {
138
144
  isClockwise(): boolean;
139
145
  getControlPointRefs(): Vector2[];
140
146
  applyTransform(transform: Matrix3 | ((point: Vector2) => void)): this;
141
- getUnevenPointArray(count?: number, output?: number[]): number[];
142
- getSpacedPointArray(count?: number, output?: number[]): number[];
143
- getAdaptivePointArray(output?: number[]): number[];
144
- protected _pointArrayToPoint(array: number[], output?: Vector2[]): Vector2[];
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[];
145
151
  getSpacedPoints(count?: number, output?: Vector2[]): Vector2[];
146
152
  getUnevenPoints(count?: number, output?: Vector2[]): Vector2[];
147
153
  getAdaptivePoints(output?: Vector2[]): Vector2[];
@@ -160,10 +166,9 @@ declare abstract class Curve {
160
166
  max: Vector2;
161
167
  };
162
168
  getBoundingBox(): BoundingBox;
169
+ getFillVertices(_options?: FillTriangulateOptions): number[];
163
170
  fillTriangulate(options?: FillTriangulateOptions): FillTriangulatedResult;
164
171
  strokeTriangulate(options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
165
- toTriangulatedSVGString(result?: FillTriangulatedResult | StrokeTriangulatedResult, padding?: number): string;
166
- toTriangulatedSVG(result?: FillTriangulatedResult | StrokeTriangulatedResult, padding?: number): SVGElement;
167
172
  toCommands(): Path2DCommand[];
168
173
  toData(): Path2DData;
169
174
  drawTo(ctx: CanvasRenderingContext2D): this;
@@ -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
- getAdaptivePointArray(output?: number[]): number[];
203
- fillTriangulate(options?: FillTriangulateOptions): FillTriangulatedResult;
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
- getAdaptivePointArray(output?: number[]): number[];
220
+ getAdaptiveVertices(output?: number[]): number[];
215
221
  }
216
222
 
217
223
  declare class CompositeCurve<T extends Curve = Curve> extends Curve {
@@ -223,9 +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
- getSpacedPointArray(count?: number, output?: number[]): number[];
227
- getAdaptivePointArray(output?: number[]): number[];
228
- fillTriangulate(options?: FillTriangulateOptions): FillTriangulatedResult;
232
+ getSpacedVertices(count?: number, output?: number[]): number[];
233
+ getAdaptiveVertices(output?: number[]): number[];
234
+ strokeTriangulate(options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
235
+ getFillVertices(options?: FillTriangulateOptions): number[];
229
236
  applyTransform(transform: Matrix3 | ((point: Vector2) => void)): this;
230
237
  getMinMax(min?: Vector2, max?: Vector2): {
231
238
  min: Vector2;
@@ -245,7 +252,7 @@ declare class CubicBezierCurve extends Curve {
245
252
  static from(p1x: number, p1y: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, p2x: number, p2y: number): CubicBezierCurve;
246
253
  constructor(p1?: Vector2, cp1?: Vector2, cp2?: Vector2, p2?: Vector2);
247
254
  getPoint(t: number, output?: Vector2): Vector2;
248
- getAdaptivePointArray(output?: number[]): number[];
255
+ getAdaptiveVertices(output?: number[]): number[];
249
256
  getControlPointRefs(): Vector2[];
250
257
  protected _solveQuadratic(a: number, b: number, c: number): number[];
251
258
  getMinMax(min?: Vector2, max?: Vector2): {
@@ -272,13 +279,13 @@ declare class LineCurve extends Curve {
272
279
  getTangent(_t: number, output?: Vector2): Vector2;
273
280
  getTangentAt(u: number, output?: Vector2): Vector2;
274
281
  getControlPointRefs(): Vector2[];
275
- getAdaptivePointArray(output?: number[]): number[];
282
+ getAdaptiveVertices(output?: number[]): number[];
276
283
  getMinMax(min?: Vector2, max?: Vector2): {
277
284
  min: Vector2;
278
285
  max: Vector2;
279
286
  };
280
287
  toCommands(): Path2DCommand[];
281
- fillTriangulate(options?: FillTriangulateOptions): FillTriangulatedResult;
288
+ getFillVertices(options?: FillTriangulateOptions): number[];
282
289
  drawTo(ctx: CanvasRenderingContext2D): this;
283
290
  copy(source: LineCurve): this;
284
291
  }
@@ -304,7 +311,7 @@ declare class QuadraticBezierCurve extends Curve {
304
311
  constructor(p1?: Vector2, cp?: Vector2, p2?: Vector2);
305
312
  getPoint(t: number, output?: Vector2): Vector2;
306
313
  getControlPointRefs(): Vector2[];
307
- getAdaptivePointArray(output?: number[]): number[];
314
+ getAdaptiveVertices(output?: number[]): number[];
308
315
  getMinMax(min?: Vector2, max?: Vector2): {
309
316
  min: Vector2;
310
317
  max: Vector2;
@@ -322,7 +329,7 @@ declare class RectangleCurve extends PloygonCurve {
322
329
  constructor(x?: number, y?: number, width?: number, height?: number);
323
330
  update(): this;
324
331
  drawTo(ctx: CanvasRenderingContext2D): this;
325
- fillTriangulate(options?: FillTriangulateOptions): FillTriangulatedResult;
332
+ getFillVertices(_options?: FillTriangulateOptions): number[];
326
333
  copy(source: RectangleCurve): this;
327
334
  }
328
335
 
@@ -408,10 +415,11 @@ declare class CurvePath extends CompositeCurve {
408
415
  addPoints(points: Vector2[]): this;
409
416
  addCommands(commands: Path2DCommand[]): this;
410
417
  addData(data: string): this;
411
- protected _closePointArray(output: number[]): number[];
412
- getUnevenPointArray(count?: number, output?: number[]): number[];
413
- getSpacedPointArray(count?: number, output?: number[]): number[];
414
- getAdaptivePointArray(output?: number[]): number[];
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[];
415
423
  protected _setCurrentPoint(point: VectorLike): this;
416
424
  protected _connetLineTo(curve: Curve): this;
417
425
  closePath(): this;
@@ -466,6 +474,13 @@ interface Path2DStyle extends Path2DDrawStyle {
466
474
 
467
475
  /**
468
476
  * @link https://developer.mozilla.org/zh-CN/docs/Web/API/Path2D
477
+ *
478
+ * Path2D
479
+ * --CurvePath
480
+ * ----LineCurve
481
+ * ----EllipseCurve
482
+ * ----CubicBezierCurve
483
+ * ----...
469
484
  */
470
485
  declare class Path2D extends CompositeCurve<CurvePath> {
471
486
  currentCurve: CurvePath;
@@ -498,6 +513,7 @@ declare class Path2D extends CompositeCurve<CurvePath> {
498
513
  max: Vector2;
499
514
  };
500
515
  strokeTriangulate(options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
516
+ fillTriangulate(options?: FillTriangulateOptions): FillTriangulatedResult;
501
517
  getBoundingBox(withStyle?: boolean): BoundingBox;
502
518
  drawTo(ctx: CanvasRenderingContext2D, style?: Partial<Path2DStyle>): this;
503
519
  drawControlPointsTo(ctx: CanvasRenderingContext2D, style?: Partial<Path2DStyle>): this;
@@ -512,6 +528,8 @@ declare class Path2DSet {
512
528
  viewBox?: number[] | undefined;
513
529
  constructor(paths?: Path2D[], viewBox?: number[] | undefined);
514
530
  getBoundingBox(withStyle?: boolean): BoundingBox | undefined;
531
+ toTriangulatedSVGString(result?: FillTriangulatedResult | StrokeTriangulatedResult | (FillTriangulatedResult | StrokeTriangulatedResult)[], padding?: number): string;
532
+ toTriangulatedSVG(result?: FillTriangulatedResult | StrokeTriangulatedResult | (FillTriangulatedResult | StrokeTriangulatedResult)[], padding?: number): SVGElement;
515
533
  toSVGString(): string;
516
534
  toSVGUrl(): string;
517
535
  toSVG(): SVGElement;
@@ -564,4 +582,4 @@ declare function svgToDOM(svg: string | SVGElement): SVGElement;
564
582
 
565
583
  declare function svgToPath2DSet(svg: string | SVGElement): Path2DSet;
566
584
 
567
- export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath, type DrawPointOptions, EllipseCurve, EquilateralPloygonCurve, FFDControlGrid, type FillRule, type FillTriangulateOptions, type FillTriangulatedResult, type LineCap, LineCurve, type LineJoin, type LineStyle, Matrix3, Path2D, type Path2DCommand, type Path2DData, type Path2DDrawStyle, Path2DSet, type Path2DStyle, PloygonCurve, QuadraticBezierCurve, RectangleCurve, RoundRectangleCurve, SplineCurve, type StrokeLinecap, type StrokeLinejoin, type StrokeTriangulateOptions, type StrokeTriangulatedResult, Vector2, type VectorLike, applyFFD, catmullRom, cubicBezier, drawPoint, fillTriangulate, getAdaptiveCubicBezierCurvePoints, getAdaptiveQuadraticBezierCurvePoints, parseArcCommand, parsePathDataArgs, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands, svgToDOM, svgToPath2DSet };
585
+ export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath, type DrawPointOptions, EllipseCurve, EquilateralPloygonCurve, FFDControlGrid, type FillRule, type FillTriangulateOptions, type FillTriangulatedResult, type LineCap, LineCurve, type LineJoin, type LineStyle, Matrix3, Path2D, type Path2DCommand, type Path2DData, type Path2DDrawStyle, Path2DSet, type Path2DStyle, PloygonCurve, QuadraticBezierCurve, RectangleCurve, RoundRectangleCurve, SplineCurve, type StrokeLinecap, type StrokeLinejoin, type StrokeTriangulateOptions, type StrokeTriangulatedResult, Vector2, type VectorLike, applyFFD, catmullRom, cubicBezier, drawPoint, fillTriangulate, getAdaptiveCubicBezierCurvePoints, getAdaptiveQuadraticBezierCurvePoints, getDirectedArea, parseArcCommand, parsePathDataArgs, pointInPolygon, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands, svgToDOM, svgToPath2DSet };
package/dist/index.d.mts CHANGED
@@ -3,52 +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
- }
18
- interface FillTriangulatedResult {
19
- vertices: number[];
20
- indices: number[];
21
- }
22
- declare function fillTriangulate(points: number[], options?: FillTriangulateOptions): FillTriangulatedResult;
23
-
24
- declare function getAdaptiveCubicBezierCurvePoints(sX: number, sY: number, x1: number, y1: number, x2: number, y2: number, x: number, y: number, smoothness?: number, points?: number[]): number[];
25
-
26
- declare function getAdaptiveQuadraticBezierCurvePoints(sX: number, sY: number, x1: number, y1: number, x: number, y: number, smoothness?: number, points?: number[]): number[];
27
-
28
- declare function quadraticBezier(t: number, p0: number, p1: number, p2: number): number;
29
-
30
- type LineCap = 'butt' | 'round' | 'square';
31
- type LineJoin = 'round' | 'bevel' | 'miter';
32
- interface StrokeTriangulateOptions {
33
- vertices?: number[];
34
- indices?: number[];
35
- lineStyle?: LineStyle;
36
- flipAlignment?: boolean;
37
- closed?: boolean;
38
- }
39
- interface StrokeTriangulatedResult {
40
- vertices: number[];
41
- indices: number[];
42
- }
43
- interface LineStyle {
44
- width: number;
45
- alignment: number;
46
- join: LineJoin;
47
- cap: LineCap;
48
- miterLimit: number;
49
- }
50
- declare function strokeTriangulate(points: number[], options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
51
-
52
6
  declare class Matrix3 {
53
7
  elements: number[];
54
8
  constructor(n11?: number, n12?: number, n13?: number, n21?: number, n22?: number, n23?: number, n31?: number, n32?: number, n33?: number);
@@ -130,6 +84,58 @@ declare class BoundingBox {
130
84
  clone(): BoundingBox;
131
85
  }
132
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
+
133
139
  declare abstract class Curve {
134
140
  arcLengthDivision: number;
135
141
  protected _arcLengths?: number[];
@@ -138,10 +144,10 @@ declare abstract class Curve {
138
144
  isClockwise(): boolean;
139
145
  getControlPointRefs(): Vector2[];
140
146
  applyTransform(transform: Matrix3 | ((point: Vector2) => void)): this;
141
- getUnevenPointArray(count?: number, output?: number[]): number[];
142
- getSpacedPointArray(count?: number, output?: number[]): number[];
143
- getAdaptivePointArray(output?: number[]): number[];
144
- protected _pointArrayToPoint(array: number[], output?: Vector2[]): Vector2[];
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[];
145
151
  getSpacedPoints(count?: number, output?: Vector2[]): Vector2[];
146
152
  getUnevenPoints(count?: number, output?: Vector2[]): Vector2[];
147
153
  getAdaptivePoints(output?: Vector2[]): Vector2[];
@@ -160,10 +166,9 @@ declare abstract class Curve {
160
166
  max: Vector2;
161
167
  };
162
168
  getBoundingBox(): BoundingBox;
169
+ getFillVertices(_options?: FillTriangulateOptions): number[];
163
170
  fillTriangulate(options?: FillTriangulateOptions): FillTriangulatedResult;
164
171
  strokeTriangulate(options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
165
- toTriangulatedSVGString(result?: FillTriangulatedResult | StrokeTriangulatedResult, padding?: number): string;
166
- toTriangulatedSVG(result?: FillTriangulatedResult | StrokeTriangulatedResult, padding?: number): SVGElement;
167
172
  toCommands(): Path2DCommand[];
168
173
  toData(): Path2DData;
169
174
  drawTo(ctx: CanvasRenderingContext2D): this;
@@ -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
- getAdaptivePointArray(output?: number[]): number[];
203
- fillTriangulate(options?: FillTriangulateOptions): FillTriangulatedResult;
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
- getAdaptivePointArray(output?: number[]): number[];
220
+ getAdaptiveVertices(output?: number[]): number[];
215
221
  }
216
222
 
217
223
  declare class CompositeCurve<T extends Curve = Curve> extends Curve {
@@ -223,9 +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
- getSpacedPointArray(count?: number, output?: number[]): number[];
227
- getAdaptivePointArray(output?: number[]): number[];
228
- fillTriangulate(options?: FillTriangulateOptions): FillTriangulatedResult;
232
+ getSpacedVertices(count?: number, output?: number[]): number[];
233
+ getAdaptiveVertices(output?: number[]): number[];
234
+ strokeTriangulate(options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
235
+ getFillVertices(options?: FillTriangulateOptions): number[];
229
236
  applyTransform(transform: Matrix3 | ((point: Vector2) => void)): this;
230
237
  getMinMax(min?: Vector2, max?: Vector2): {
231
238
  min: Vector2;
@@ -245,7 +252,7 @@ declare class CubicBezierCurve extends Curve {
245
252
  static from(p1x: number, p1y: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, p2x: number, p2y: number): CubicBezierCurve;
246
253
  constructor(p1?: Vector2, cp1?: Vector2, cp2?: Vector2, p2?: Vector2);
247
254
  getPoint(t: number, output?: Vector2): Vector2;
248
- getAdaptivePointArray(output?: number[]): number[];
255
+ getAdaptiveVertices(output?: number[]): number[];
249
256
  getControlPointRefs(): Vector2[];
250
257
  protected _solveQuadratic(a: number, b: number, c: number): number[];
251
258
  getMinMax(min?: Vector2, max?: Vector2): {
@@ -272,13 +279,13 @@ declare class LineCurve extends Curve {
272
279
  getTangent(_t: number, output?: Vector2): Vector2;
273
280
  getTangentAt(u: number, output?: Vector2): Vector2;
274
281
  getControlPointRefs(): Vector2[];
275
- getAdaptivePointArray(output?: number[]): number[];
282
+ getAdaptiveVertices(output?: number[]): number[];
276
283
  getMinMax(min?: Vector2, max?: Vector2): {
277
284
  min: Vector2;
278
285
  max: Vector2;
279
286
  };
280
287
  toCommands(): Path2DCommand[];
281
- fillTriangulate(options?: FillTriangulateOptions): FillTriangulatedResult;
288
+ getFillVertices(options?: FillTriangulateOptions): number[];
282
289
  drawTo(ctx: CanvasRenderingContext2D): this;
283
290
  copy(source: LineCurve): this;
284
291
  }
@@ -304,7 +311,7 @@ declare class QuadraticBezierCurve extends Curve {
304
311
  constructor(p1?: Vector2, cp?: Vector2, p2?: Vector2);
305
312
  getPoint(t: number, output?: Vector2): Vector2;
306
313
  getControlPointRefs(): Vector2[];
307
- getAdaptivePointArray(output?: number[]): number[];
314
+ getAdaptiveVertices(output?: number[]): number[];
308
315
  getMinMax(min?: Vector2, max?: Vector2): {
309
316
  min: Vector2;
310
317
  max: Vector2;
@@ -322,7 +329,7 @@ declare class RectangleCurve extends PloygonCurve {
322
329
  constructor(x?: number, y?: number, width?: number, height?: number);
323
330
  update(): this;
324
331
  drawTo(ctx: CanvasRenderingContext2D): this;
325
- fillTriangulate(options?: FillTriangulateOptions): FillTriangulatedResult;
332
+ getFillVertices(_options?: FillTriangulateOptions): number[];
326
333
  copy(source: RectangleCurve): this;
327
334
  }
328
335
 
@@ -408,10 +415,11 @@ declare class CurvePath extends CompositeCurve {
408
415
  addPoints(points: Vector2[]): this;
409
416
  addCommands(commands: Path2DCommand[]): this;
410
417
  addData(data: string): this;
411
- protected _closePointArray(output: number[]): number[];
412
- getUnevenPointArray(count?: number, output?: number[]): number[];
413
- getSpacedPointArray(count?: number, output?: number[]): number[];
414
- getAdaptivePointArray(output?: number[]): number[];
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[];
415
423
  protected _setCurrentPoint(point: VectorLike): this;
416
424
  protected _connetLineTo(curve: Curve): this;
417
425
  closePath(): this;
@@ -466,6 +474,13 @@ interface Path2DStyle extends Path2DDrawStyle {
466
474
 
467
475
  /**
468
476
  * @link https://developer.mozilla.org/zh-CN/docs/Web/API/Path2D
477
+ *
478
+ * Path2D
479
+ * --CurvePath
480
+ * ----LineCurve
481
+ * ----EllipseCurve
482
+ * ----CubicBezierCurve
483
+ * ----...
469
484
  */
470
485
  declare class Path2D extends CompositeCurve<CurvePath> {
471
486
  currentCurve: CurvePath;
@@ -498,6 +513,7 @@ declare class Path2D extends CompositeCurve<CurvePath> {
498
513
  max: Vector2;
499
514
  };
500
515
  strokeTriangulate(options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
516
+ fillTriangulate(options?: FillTriangulateOptions): FillTriangulatedResult;
501
517
  getBoundingBox(withStyle?: boolean): BoundingBox;
502
518
  drawTo(ctx: CanvasRenderingContext2D, style?: Partial<Path2DStyle>): this;
503
519
  drawControlPointsTo(ctx: CanvasRenderingContext2D, style?: Partial<Path2DStyle>): this;
@@ -512,6 +528,8 @@ declare class Path2DSet {
512
528
  viewBox?: number[] | undefined;
513
529
  constructor(paths?: Path2D[], viewBox?: number[] | undefined);
514
530
  getBoundingBox(withStyle?: boolean): BoundingBox | undefined;
531
+ toTriangulatedSVGString(result?: FillTriangulatedResult | StrokeTriangulatedResult | (FillTriangulatedResult | StrokeTriangulatedResult)[], padding?: number): string;
532
+ toTriangulatedSVG(result?: FillTriangulatedResult | StrokeTriangulatedResult | (FillTriangulatedResult | StrokeTriangulatedResult)[], padding?: number): SVGElement;
515
533
  toSVGString(): string;
516
534
  toSVGUrl(): string;
517
535
  toSVG(): SVGElement;
@@ -564,4 +582,4 @@ declare function svgToDOM(svg: string | SVGElement): SVGElement;
564
582
 
565
583
  declare function svgToPath2DSet(svg: string | SVGElement): Path2DSet;
566
584
 
567
- export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath, type DrawPointOptions, EllipseCurve, EquilateralPloygonCurve, FFDControlGrid, type FillRule, type FillTriangulateOptions, type FillTriangulatedResult, type LineCap, LineCurve, type LineJoin, type LineStyle, Matrix3, Path2D, type Path2DCommand, type Path2DData, type Path2DDrawStyle, Path2DSet, type Path2DStyle, PloygonCurve, QuadraticBezierCurve, RectangleCurve, RoundRectangleCurve, SplineCurve, type StrokeLinecap, type StrokeLinejoin, type StrokeTriangulateOptions, type StrokeTriangulatedResult, Vector2, type VectorLike, applyFFD, catmullRom, cubicBezier, drawPoint, fillTriangulate, getAdaptiveCubicBezierCurvePoints, getAdaptiveQuadraticBezierCurvePoints, parseArcCommand, parsePathDataArgs, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands, svgToDOM, svgToPath2DSet };
585
+ export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath, type DrawPointOptions, EllipseCurve, EquilateralPloygonCurve, FFDControlGrid, type FillRule, type FillTriangulateOptions, type FillTriangulatedResult, type LineCap, LineCurve, type LineJoin, type LineStyle, Matrix3, Path2D, type Path2DCommand, type Path2DData, type Path2DDrawStyle, Path2DSet, type Path2DStyle, PloygonCurve, QuadraticBezierCurve, RectangleCurve, RoundRectangleCurve, SplineCurve, type StrokeLinecap, type StrokeLinejoin, type StrokeTriangulateOptions, type StrokeTriangulatedResult, Vector2, type VectorLike, applyFFD, catmullRom, cubicBezier, drawPoint, fillTriangulate, getAdaptiveCubicBezierCurvePoints, getAdaptiveQuadraticBezierCurvePoints, getDirectedArea, parseArcCommand, parsePathDataArgs, pointInPolygon, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands, svgToDOM, svgToPath2DSet };