modern-path2d 1.4.5 → 1.4.7

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.mts CHANGED
@@ -3,6 +3,93 @@ interface DrawPointOptions {
3
3
  }
4
4
  declare function drawPoint(ctx: CanvasRenderingContext2D, x: number, y: number, options?: DrawPointOptions): void;
5
5
 
6
+ /**
7
+ * @link https://developer.mozilla.org/docs/Web/SVG/Attribute/d
8
+ */
9
+ type Path2DCommand = {
10
+ type: 'm' | 'M';
11
+ x: number;
12
+ y: number;
13
+ } | {
14
+ type: 'h' | 'H';
15
+ x: number;
16
+ } | {
17
+ type: 'v' | 'V';
18
+ y: number;
19
+ } | {
20
+ type: 'l' | 'L';
21
+ x: number;
22
+ y: number;
23
+ } | {
24
+ type: 'c' | 'C';
25
+ x1: number;
26
+ y1: number;
27
+ x2: number;
28
+ y2: number;
29
+ x: number;
30
+ y: number;
31
+ } | {
32
+ type: 's' | 'S';
33
+ x2: number;
34
+ y2: number;
35
+ x: number;
36
+ y: number;
37
+ } | {
38
+ type: 'q' | 'Q';
39
+ x1: number;
40
+ y1: number;
41
+ x: number;
42
+ y: number;
43
+ } | {
44
+ type: 't' | 'T';
45
+ x: number;
46
+ y: number;
47
+ } | {
48
+ type: 'a' | 'A';
49
+ rx: number;
50
+ ry: number;
51
+ angle: number;
52
+ largeArcFlag: number;
53
+ sweepFlag: number;
54
+ x: number;
55
+ y: number;
56
+ } | {
57
+ type: 'z' | 'Z';
58
+ };
59
+ /**
60
+ * SVG path data
61
+ *
62
+ * @link https://developer.mozilla.org/docs/Web/SVG/Attribute/d
63
+ */
64
+ type Path2DData = string;
65
+ type FillRule = 'nonzero' | 'evenodd';
66
+ type StrokeLinecap = 'butt' | 'round' | 'square';
67
+ type StrokeLinejoin = 'arcs' | 'bevel' | 'miter' | 'miter-clip' | 'round';
68
+ interface Path2DDrawStyle {
69
+ fill: string | any;
70
+ stroke: string | any;
71
+ shadowColor: string;
72
+ shadowOffsetX: number;
73
+ shadowOffsetY: number;
74
+ shadowBlur: number;
75
+ }
76
+ interface Path2DStyle extends Path2DDrawStyle {
77
+ [key: string]: any;
78
+ fillOpacity: number;
79
+ fillRule: FillRule;
80
+ opacity: number;
81
+ strokeOpacity: number;
82
+ strokeWidth: number;
83
+ strokeLinecap: StrokeLinecap;
84
+ strokeLinejoin: StrokeLinejoin;
85
+ strokeMiterlimit: number;
86
+ strokeDasharray: number[];
87
+ strokeDashoffset: number;
88
+ visibility: string;
89
+ }
90
+
91
+ declare function setCanvasContext(ctx: CanvasRenderingContext2D, style: Partial<Path2DStyle>): void;
92
+
6
93
  declare class Matrix3 {
7
94
  elements: number[];
8
95
  constructor(n11?: number, n12?: number, n13?: number, n21?: number, n22?: number, n23?: number, n31?: number, n32?: number, n33?: number);
@@ -109,8 +196,15 @@ declare function getAdaptiveQuadraticBezierCurvePoints(sX: number, sY: number, x
109
196
 
110
197
  declare function getDirectedArea(vertices: number[]): number;
111
198
 
112
- declare function pointInPolygonEvenOdd(point: number[], polygon: number[]): boolean;
113
- declare function pointInPolygonNonZero(point: number[], polygon: number[]): boolean;
199
+ declare function toKebabCase(str: string): string;
200
+ declare function getIntersectionPoint(p1: Vector2, p2: Vector2, q1: Vector2, q2: Vector2): Vector2;
201
+
202
+ interface Grouping {
203
+ index: number;
204
+ parentIndex: number | null;
205
+ wn: number;
206
+ }
207
+ declare function nonzeroFillRule(paths: number[][]): Grouping[];
114
208
 
115
209
  declare function quadraticBezier(t: number, p0: number, p1: number, p2: number): number;
116
210
 
@@ -349,60 +443,6 @@ declare class SplineCurve extends Curve {
349
443
  copy(source: SplineCurve): this;
350
444
  }
351
445
 
352
- /**
353
- * @link https://developer.mozilla.org/docs/Web/SVG/Attribute/d
354
- */
355
- type Path2DCommand = {
356
- type: 'm' | 'M';
357
- x: number;
358
- y: number;
359
- } | {
360
- type: 'h' | 'H';
361
- x: number;
362
- } | {
363
- type: 'v' | 'V';
364
- y: number;
365
- } | {
366
- type: 'l' | 'L';
367
- x: number;
368
- y: number;
369
- } | {
370
- type: 'c' | 'C';
371
- x1: number;
372
- y1: number;
373
- x2: number;
374
- y2: number;
375
- x: number;
376
- y: number;
377
- } | {
378
- type: 's' | 'S';
379
- x2: number;
380
- y2: number;
381
- x: number;
382
- y: number;
383
- } | {
384
- type: 'q' | 'Q';
385
- x1: number;
386
- y1: number;
387
- x: number;
388
- y: number;
389
- } | {
390
- type: 't' | 'T';
391
- x: number;
392
- y: number;
393
- } | {
394
- type: 'a' | 'A';
395
- rx: number;
396
- ry: number;
397
- angle: number;
398
- largeArcFlag: number;
399
- sweepFlag: number;
400
- x: number;
401
- y: number;
402
- } | {
403
- type: 'z' | 'Z';
404
- };
405
-
406
446
  declare class CurvePath extends CompositeCurve {
407
447
  startPoint?: Vector2;
408
448
  currentPoint?: Vector2;
@@ -435,39 +475,6 @@ declare class CurvePath extends CompositeCurve {
435
475
  copy(source: CurvePath): this;
436
476
  }
437
477
 
438
- /**
439
- * Svg path data
440
- *
441
- * @link https://developer.mozilla.org/docs/Web/SVG/Attribute/d
442
- */
443
- type Path2DData = string;
444
-
445
- type FillRule = 'nonzero' | 'evenodd';
446
- type StrokeLinecap = 'butt' | 'round' | 'square';
447
- type StrokeLinejoin = 'arcs' | 'bevel' | 'miter' | 'miter-clip' | 'round';
448
- interface Path2DDrawStyle {
449
- fill: string | any;
450
- stroke: string | any;
451
- shadowColor: string;
452
- shadowOffsetX: number;
453
- shadowOffsetY: number;
454
- shadowBlur: number;
455
- }
456
- interface Path2DStyle extends Path2DDrawStyle {
457
- [key: string]: any;
458
- fillOpacity: number;
459
- fillRule: FillRule;
460
- opacity: number;
461
- strokeOpacity: number;
462
- strokeWidth: number;
463
- strokeLinecap: StrokeLinecap;
464
- strokeLinejoin: StrokeLinejoin;
465
- strokeMiterlimit: number;
466
- strokeDasharray: number[];
467
- strokeDashoffset: number;
468
- visibility: string;
469
- }
470
-
471
478
  /**
472
479
  * @link https://developer.mozilla.org/zh-CN/docs/Web/API/Path2D
473
480
  *
@@ -534,8 +541,6 @@ declare class Path2DSet {
534
541
  }>): HTMLCanvasElement;
535
542
  }
536
543
 
537
- declare function setCanvasContext(ctx: CanvasRenderingContext2D, style: Partial<Path2DStyle>): void;
538
-
539
544
  declare class FFDControlGrid {
540
545
  rows: number;
541
546
  cols: number;
@@ -578,5 +583,5 @@ declare function svgToDom(svg: string | SVGElement): SVGElement;
578
583
 
579
584
  declare function svgToPath2DSet(svg: string | SVGElement): Path2DSet;
580
585
 
581
- 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, pointInPolygonEvenOdd, pointInPolygonNonZero, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands, svgToDom, svgToPath2DSet };
586
+ 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, getIntersectionPoint, nonzeroFillRule, parseArcCommand, parsePathDataArgs, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands, svgToDom, svgToPath2DSet, toKebabCase };
582
587
  export type { DrawPointOptions, FillRule, FillTriangulateOptions, FillTriangulatedResult, LineCap, LineJoin, LineStyle, Path2DCommand, Path2DData, Path2DDrawStyle, Path2DStyle, StrokeLinecap, StrokeLinejoin, StrokeTriangulateOptions, StrokeTriangulatedResult, VectorLike };
package/dist/index.d.ts CHANGED
@@ -3,6 +3,93 @@ interface DrawPointOptions {
3
3
  }
4
4
  declare function drawPoint(ctx: CanvasRenderingContext2D, x: number, y: number, options?: DrawPointOptions): void;
5
5
 
6
+ /**
7
+ * @link https://developer.mozilla.org/docs/Web/SVG/Attribute/d
8
+ */
9
+ type Path2DCommand = {
10
+ type: 'm' | 'M';
11
+ x: number;
12
+ y: number;
13
+ } | {
14
+ type: 'h' | 'H';
15
+ x: number;
16
+ } | {
17
+ type: 'v' | 'V';
18
+ y: number;
19
+ } | {
20
+ type: 'l' | 'L';
21
+ x: number;
22
+ y: number;
23
+ } | {
24
+ type: 'c' | 'C';
25
+ x1: number;
26
+ y1: number;
27
+ x2: number;
28
+ y2: number;
29
+ x: number;
30
+ y: number;
31
+ } | {
32
+ type: 's' | 'S';
33
+ x2: number;
34
+ y2: number;
35
+ x: number;
36
+ y: number;
37
+ } | {
38
+ type: 'q' | 'Q';
39
+ x1: number;
40
+ y1: number;
41
+ x: number;
42
+ y: number;
43
+ } | {
44
+ type: 't' | 'T';
45
+ x: number;
46
+ y: number;
47
+ } | {
48
+ type: 'a' | 'A';
49
+ rx: number;
50
+ ry: number;
51
+ angle: number;
52
+ largeArcFlag: number;
53
+ sweepFlag: number;
54
+ x: number;
55
+ y: number;
56
+ } | {
57
+ type: 'z' | 'Z';
58
+ };
59
+ /**
60
+ * SVG path data
61
+ *
62
+ * @link https://developer.mozilla.org/docs/Web/SVG/Attribute/d
63
+ */
64
+ type Path2DData = string;
65
+ type FillRule = 'nonzero' | 'evenodd';
66
+ type StrokeLinecap = 'butt' | 'round' | 'square';
67
+ type StrokeLinejoin = 'arcs' | 'bevel' | 'miter' | 'miter-clip' | 'round';
68
+ interface Path2DDrawStyle {
69
+ fill: string | any;
70
+ stroke: string | any;
71
+ shadowColor: string;
72
+ shadowOffsetX: number;
73
+ shadowOffsetY: number;
74
+ shadowBlur: number;
75
+ }
76
+ interface Path2DStyle extends Path2DDrawStyle {
77
+ [key: string]: any;
78
+ fillOpacity: number;
79
+ fillRule: FillRule;
80
+ opacity: number;
81
+ strokeOpacity: number;
82
+ strokeWidth: number;
83
+ strokeLinecap: StrokeLinecap;
84
+ strokeLinejoin: StrokeLinejoin;
85
+ strokeMiterlimit: number;
86
+ strokeDasharray: number[];
87
+ strokeDashoffset: number;
88
+ visibility: string;
89
+ }
90
+
91
+ declare function setCanvasContext(ctx: CanvasRenderingContext2D, style: Partial<Path2DStyle>): void;
92
+
6
93
  declare class Matrix3 {
7
94
  elements: number[];
8
95
  constructor(n11?: number, n12?: number, n13?: number, n21?: number, n22?: number, n23?: number, n31?: number, n32?: number, n33?: number);
@@ -109,8 +196,15 @@ declare function getAdaptiveQuadraticBezierCurvePoints(sX: number, sY: number, x
109
196
 
110
197
  declare function getDirectedArea(vertices: number[]): number;
111
198
 
112
- declare function pointInPolygonEvenOdd(point: number[], polygon: number[]): boolean;
113
- declare function pointInPolygonNonZero(point: number[], polygon: number[]): boolean;
199
+ declare function toKebabCase(str: string): string;
200
+ declare function getIntersectionPoint(p1: Vector2, p2: Vector2, q1: Vector2, q2: Vector2): Vector2;
201
+
202
+ interface Grouping {
203
+ index: number;
204
+ parentIndex: number | null;
205
+ wn: number;
206
+ }
207
+ declare function nonzeroFillRule(paths: number[][]): Grouping[];
114
208
 
115
209
  declare function quadraticBezier(t: number, p0: number, p1: number, p2: number): number;
116
210
 
@@ -349,60 +443,6 @@ declare class SplineCurve extends Curve {
349
443
  copy(source: SplineCurve): this;
350
444
  }
351
445
 
352
- /**
353
- * @link https://developer.mozilla.org/docs/Web/SVG/Attribute/d
354
- */
355
- type Path2DCommand = {
356
- type: 'm' | 'M';
357
- x: number;
358
- y: number;
359
- } | {
360
- type: 'h' | 'H';
361
- x: number;
362
- } | {
363
- type: 'v' | 'V';
364
- y: number;
365
- } | {
366
- type: 'l' | 'L';
367
- x: number;
368
- y: number;
369
- } | {
370
- type: 'c' | 'C';
371
- x1: number;
372
- y1: number;
373
- x2: number;
374
- y2: number;
375
- x: number;
376
- y: number;
377
- } | {
378
- type: 's' | 'S';
379
- x2: number;
380
- y2: number;
381
- x: number;
382
- y: number;
383
- } | {
384
- type: 'q' | 'Q';
385
- x1: number;
386
- y1: number;
387
- x: number;
388
- y: number;
389
- } | {
390
- type: 't' | 'T';
391
- x: number;
392
- y: number;
393
- } | {
394
- type: 'a' | 'A';
395
- rx: number;
396
- ry: number;
397
- angle: number;
398
- largeArcFlag: number;
399
- sweepFlag: number;
400
- x: number;
401
- y: number;
402
- } | {
403
- type: 'z' | 'Z';
404
- };
405
-
406
446
  declare class CurvePath extends CompositeCurve {
407
447
  startPoint?: Vector2;
408
448
  currentPoint?: Vector2;
@@ -435,39 +475,6 @@ declare class CurvePath extends CompositeCurve {
435
475
  copy(source: CurvePath): this;
436
476
  }
437
477
 
438
- /**
439
- * Svg path data
440
- *
441
- * @link https://developer.mozilla.org/docs/Web/SVG/Attribute/d
442
- */
443
- type Path2DData = string;
444
-
445
- type FillRule = 'nonzero' | 'evenodd';
446
- type StrokeLinecap = 'butt' | 'round' | 'square';
447
- type StrokeLinejoin = 'arcs' | 'bevel' | 'miter' | 'miter-clip' | 'round';
448
- interface Path2DDrawStyle {
449
- fill: string | any;
450
- stroke: string | any;
451
- shadowColor: string;
452
- shadowOffsetX: number;
453
- shadowOffsetY: number;
454
- shadowBlur: number;
455
- }
456
- interface Path2DStyle extends Path2DDrawStyle {
457
- [key: string]: any;
458
- fillOpacity: number;
459
- fillRule: FillRule;
460
- opacity: number;
461
- strokeOpacity: number;
462
- strokeWidth: number;
463
- strokeLinecap: StrokeLinecap;
464
- strokeLinejoin: StrokeLinejoin;
465
- strokeMiterlimit: number;
466
- strokeDasharray: number[];
467
- strokeDashoffset: number;
468
- visibility: string;
469
- }
470
-
471
478
  /**
472
479
  * @link https://developer.mozilla.org/zh-CN/docs/Web/API/Path2D
473
480
  *
@@ -534,8 +541,6 @@ declare class Path2DSet {
534
541
  }>): HTMLCanvasElement;
535
542
  }
536
543
 
537
- declare function setCanvasContext(ctx: CanvasRenderingContext2D, style: Partial<Path2DStyle>): void;
538
-
539
544
  declare class FFDControlGrid {
540
545
  rows: number;
541
546
  cols: number;
@@ -578,5 +583,5 @@ declare function svgToDom(svg: string | SVGElement): SVGElement;
578
583
 
579
584
  declare function svgToPath2DSet(svg: string | SVGElement): Path2DSet;
580
585
 
581
- 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, pointInPolygonEvenOdd, pointInPolygonNonZero, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands, svgToDom, svgToPath2DSet };
586
+ 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, getIntersectionPoint, nonzeroFillRule, parseArcCommand, parsePathDataArgs, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands, svgToDom, svgToPath2DSet, toKebabCase };
582
587
  export type { DrawPointOptions, FillRule, FillTriangulateOptions, FillTriangulatedResult, LineCap, LineJoin, LineStyle, Path2DCommand, Path2DData, Path2DDrawStyle, Path2DStyle, StrokeLinecap, StrokeLinejoin, StrokeTriangulateOptions, StrokeTriangulatedResult, VectorLike };