modern-path2d 0.1.6 → 0.1.8
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 +372 -330
- package/dist/index.d.cts +146 -132
- package/dist/index.d.mts +146 -132
- package/dist/index.d.ts +146 -132
- package/dist/index.js +1 -1
- package/dist/index.mjs +371 -330
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -19,27 +19,31 @@ declare class Matrix3 {
|
|
|
19
19
|
clone(): Matrix3;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
interface VectorLike {
|
|
23
23
|
x: number;
|
|
24
24
|
y: number;
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
}
|
|
26
|
+
declare class Vector2 {
|
|
27
|
+
x: number;
|
|
28
|
+
y: number;
|
|
29
|
+
static get MAX(): Vector2;
|
|
30
|
+
static get MIN(): Vector2;
|
|
27
31
|
constructor(x?: number, y?: number);
|
|
28
32
|
set(x: number, y: number): this;
|
|
29
|
-
add(
|
|
30
|
-
sub(
|
|
31
|
-
distanceTo(
|
|
32
|
-
distanceToSquared(
|
|
33
|
+
add(vec: VectorLike): this;
|
|
34
|
+
sub(vec: VectorLike): this;
|
|
35
|
+
distanceTo(vec: VectorLike): number;
|
|
36
|
+
distanceToSquared(vec: VectorLike): number;
|
|
33
37
|
length(): number;
|
|
34
38
|
multiplyScalar(scalar: number): this;
|
|
35
39
|
divideScalar(scalar: number): this;
|
|
36
|
-
subVectors(a:
|
|
40
|
+
subVectors(a: VectorLike, b: VectorLike): this;
|
|
37
41
|
normalize(): this;
|
|
38
|
-
lerpVectors(v1:
|
|
39
|
-
equals(
|
|
42
|
+
lerpVectors(v1: VectorLike, v2: VectorLike, alpha: number): this;
|
|
43
|
+
equals(vec: VectorLike): boolean;
|
|
40
44
|
applyMatrix3(m: Matrix3): this;
|
|
41
|
-
copy(
|
|
42
|
-
clone():
|
|
45
|
+
copy(vec: VectorLike): this;
|
|
46
|
+
clone(): Vector2;
|
|
43
47
|
}
|
|
44
48
|
|
|
45
49
|
declare class BoundingBox {
|
|
@@ -56,40 +60,40 @@ declare class BoundingBox {
|
|
|
56
60
|
constructor(left?: number, top?: number, width?: number, height?: number);
|
|
57
61
|
static from(...boxes: BoundingBox[]): BoundingBox;
|
|
58
62
|
translate(tx: number, ty: number): this;
|
|
59
|
-
getCenterPoint():
|
|
63
|
+
getCenterPoint(): Vector2;
|
|
60
64
|
clone(): BoundingBox;
|
|
61
65
|
toArray(): [number, number, number, number];
|
|
62
66
|
}
|
|
63
67
|
|
|
64
68
|
declare class CurvePath extends Curve {
|
|
65
69
|
curves: Curve[];
|
|
66
|
-
currentPoint:
|
|
70
|
+
currentPoint: Vector2;
|
|
67
71
|
autoClose: boolean;
|
|
68
72
|
protected _cacheLengths: number[];
|
|
69
|
-
constructor(points?:
|
|
73
|
+
constructor(points?: Vector2[]);
|
|
70
74
|
addCurve(curve: Curve): this;
|
|
71
75
|
closePath(): this;
|
|
72
|
-
getPoint(position: number, output?:
|
|
76
|
+
getPoint(position: number, output?: Vector2): Vector2;
|
|
73
77
|
getLength(): number;
|
|
74
78
|
updateArcLengths(): void;
|
|
75
79
|
getCurveLengths(): number[];
|
|
76
|
-
getSpacedPoints(divisions?: number):
|
|
77
|
-
getPoints(divisions?: number):
|
|
78
|
-
setFromPoints(points:
|
|
80
|
+
getSpacedPoints(divisions?: number): Vector2[];
|
|
81
|
+
getPoints(divisions?: number): Vector2[];
|
|
82
|
+
setFromPoints(points: Vector2[]): this;
|
|
79
83
|
bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): this;
|
|
80
84
|
lineTo(x: number, y: number): this;
|
|
81
85
|
moveTo(x: number, y: number): this;
|
|
82
86
|
quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): this;
|
|
83
87
|
rect(x: number, y: number, w: number, h: number): this;
|
|
84
|
-
splineThru(points:
|
|
88
|
+
splineThru(points: Vector2[]): this;
|
|
85
89
|
arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, clockwise?: boolean): this;
|
|
86
90
|
absarc(x: number, y: number, radius: number, startAngle: number, endAngle: number, clockwise?: boolean): this;
|
|
87
91
|
ellipse(x: number, y: number, radiusX: number, radiusY: number, startAngle: number, endAngle: number, clockwise?: boolean, rotation?: number): this;
|
|
88
92
|
absellipse(x: number, y: number, radiusX: number, radiusY: number, startAngle: number, endAngle: number, clockwise?: boolean, rotation?: number): this;
|
|
89
93
|
getCommands(): PathCommand[];
|
|
90
|
-
getMinMax(min?:
|
|
91
|
-
min:
|
|
92
|
-
max:
|
|
94
|
+
getMinMax(min?: Vector2, max?: Vector2): {
|
|
95
|
+
min: Vector2;
|
|
96
|
+
max: Vector2;
|
|
93
97
|
};
|
|
94
98
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
95
99
|
copy(source: CurvePath): this;
|
|
@@ -115,12 +119,13 @@ declare class Path2D<T = any> {
|
|
|
115
119
|
rect(x: number, y: number, w: number, h: number): this;
|
|
116
120
|
addCommands(commands: PathCommand[]): this;
|
|
117
121
|
addData(data: string): this;
|
|
118
|
-
splineThru(points:
|
|
122
|
+
splineThru(points: Vector2[]): this;
|
|
119
123
|
forEachCurve(cb: (curve: Curve) => void): this;
|
|
124
|
+
transformPoint(cb: (point: Vector2) => void): this;
|
|
120
125
|
transform(matrix: Matrix3): this;
|
|
121
|
-
getMinMax(min?:
|
|
122
|
-
min:
|
|
123
|
-
max:
|
|
126
|
+
getMinMax(min?: Vector2, max?: Vector2): {
|
|
127
|
+
min: Vector2;
|
|
128
|
+
max: Vector2;
|
|
124
129
|
};
|
|
125
130
|
getBoundingBox(): BoundingBox;
|
|
126
131
|
getCommands(): PathCommand[];
|
|
@@ -193,26 +198,25 @@ declare abstract class Curve {
|
|
|
193
198
|
arcLengthDivisions: number;
|
|
194
199
|
protected _cacheArcLengths?: number[];
|
|
195
200
|
protected _needsUpdate: boolean;
|
|
196
|
-
abstract getPoint(t: number, output?:
|
|
197
|
-
getPointAt(u: number, output?:
|
|
198
|
-
getPoints(divisions?: number):
|
|
199
|
-
getSpacedPoints(divisions?: number):
|
|
201
|
+
abstract getPoint(t: number, output?: Vector2): Vector2;
|
|
202
|
+
getPointAt(u: number, output?: Vector2): Vector2;
|
|
203
|
+
getPoints(divisions?: number): Vector2[];
|
|
204
|
+
getSpacedPoints(divisions?: number): Vector2[];
|
|
200
205
|
getLength(): number;
|
|
201
206
|
getLengths(divisions?: number): number[];
|
|
202
207
|
updateArcLengths(): void;
|
|
203
208
|
getUtoTmapping(u: number, distance?: number): number;
|
|
204
|
-
getTangent(t: number, output?:
|
|
205
|
-
getTangentAt(u: number, output?:
|
|
209
|
+
getTangent(t: number, output?: Vector2): Vector2;
|
|
210
|
+
getTangentAt(u: number, output?: Vector2): Vector2;
|
|
206
211
|
/** overrideable */
|
|
212
|
+
transformPoint(cb: (point: Vector2) => void): this;
|
|
207
213
|
transform(matrix: Matrix3): this;
|
|
208
|
-
/** overrideable */
|
|
209
214
|
getDivisions(divisions: number): number;
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
max: Point2D;
|
|
215
|
+
getMinMax(min?: Vector2, max?: Vector2): {
|
|
216
|
+
min: Vector2;
|
|
217
|
+
max: Vector2;
|
|
214
218
|
};
|
|
215
|
-
|
|
219
|
+
getBoundingBox(): BoundingBox;
|
|
216
220
|
getCommands(): PathCommand[];
|
|
217
221
|
getData(): string;
|
|
218
222
|
/** overrideable */
|
|
@@ -222,31 +226,32 @@ declare abstract class Curve {
|
|
|
222
226
|
}
|
|
223
227
|
|
|
224
228
|
declare class CircleCurve extends Curve {
|
|
225
|
-
center:
|
|
229
|
+
center: Vector2;
|
|
226
230
|
radius: number;
|
|
227
231
|
start: number;
|
|
228
232
|
end: number;
|
|
229
|
-
constructor(center:
|
|
230
|
-
getPoint(t: number):
|
|
231
|
-
getTangent(t: number):
|
|
232
|
-
getNormal(t: number):
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
233
|
+
constructor(center: Vector2, radius: number, start?: number, end?: number);
|
|
234
|
+
getPoint(t: number): Vector2;
|
|
235
|
+
getTangent(t: number): Vector2;
|
|
236
|
+
getNormal(t: number): Vector2;
|
|
237
|
+
transformPoint(cb: (point: Vector2) => void): this;
|
|
238
|
+
getMinMax(min?: Vector2, max?: Vector2): {
|
|
239
|
+
min: Vector2;
|
|
240
|
+
max: Vector2;
|
|
236
241
|
};
|
|
237
242
|
}
|
|
238
243
|
|
|
239
244
|
declare class CubicBezierCurve extends Curve {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
constructor(
|
|
245
|
-
getPoint(t: number, output?:
|
|
246
|
-
|
|
247
|
-
getMinMax(min?:
|
|
248
|
-
min:
|
|
249
|
-
max:
|
|
245
|
+
start: Vector2;
|
|
246
|
+
startControl: Vector2;
|
|
247
|
+
endControl: Vector2;
|
|
248
|
+
end: Vector2;
|
|
249
|
+
constructor(start?: Vector2, startControl?: Vector2, endControl?: Vector2, end?: Vector2);
|
|
250
|
+
getPoint(t: number, output?: Vector2): Vector2;
|
|
251
|
+
transformPoint(cb: (point: Vector2) => void): this;
|
|
252
|
+
getMinMax(min?: Vector2, max?: Vector2): {
|
|
253
|
+
min: Vector2;
|
|
254
|
+
max: Vector2;
|
|
250
255
|
};
|
|
251
256
|
getCommands(): PathCommand[];
|
|
252
257
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
@@ -254,99 +259,105 @@ declare class CubicBezierCurve extends Curve {
|
|
|
254
259
|
}
|
|
255
260
|
|
|
256
261
|
declare class EllipseCurve extends Curve {
|
|
257
|
-
|
|
258
|
-
y: number;
|
|
262
|
+
center: Vector2;
|
|
259
263
|
radiusX: number;
|
|
260
264
|
radiusY: number;
|
|
261
265
|
startAngle: number;
|
|
262
266
|
endAngle: number;
|
|
263
267
|
clockwise: boolean;
|
|
264
268
|
rotation: number;
|
|
265
|
-
constructor(
|
|
266
|
-
getPoint(t: number, output?:
|
|
269
|
+
constructor(center?: Vector2, radiusX?: number, radiusY?: number, startAngle?: number, endAngle?: number, clockwise?: boolean, rotation?: number);
|
|
270
|
+
getPoint(t: number, output?: Vector2): Vector2;
|
|
267
271
|
getDivisions(divisions?: number): number;
|
|
268
272
|
getCommands(): PathCommand[];
|
|
269
273
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
270
274
|
transform(matrix: Matrix3): this;
|
|
275
|
+
transformPoint(cb: (point: Vector2) => void): this;
|
|
276
|
+
getMinMax(min?: Vector2, max?: Vector2): {
|
|
277
|
+
min: Vector2;
|
|
278
|
+
max: Vector2;
|
|
279
|
+
};
|
|
271
280
|
copy(source: EllipseCurve): this;
|
|
272
281
|
}
|
|
273
282
|
|
|
274
|
-
declare class
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
start
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
getMinMax(min?: Point2D, max?: Point2D): {
|
|
289
|
-
min: Point2D;
|
|
290
|
-
max: Point2D;
|
|
283
|
+
declare class LineCurve extends Curve {
|
|
284
|
+
start: Vector2;
|
|
285
|
+
end: Vector2;
|
|
286
|
+
constructor(start?: Vector2, end?: Vector2);
|
|
287
|
+
getPoint(t: number, output?: Vector2): Vector2;
|
|
288
|
+
getPointAt(u: number, output?: Vector2): Vector2;
|
|
289
|
+
getTangent(_t: number, output?: Vector2): Vector2;
|
|
290
|
+
getTangentAt(u: number, output?: Vector2): Vector2;
|
|
291
|
+
getNormal(t: number, output?: Vector2): Vector2;
|
|
292
|
+
transformPoint(cb: (point: Vector2) => void): this;
|
|
293
|
+
getDivisions(): number;
|
|
294
|
+
getMinMax(min?: Vector2, max?: Vector2): {
|
|
295
|
+
min: Vector2;
|
|
296
|
+
max: Vector2;
|
|
291
297
|
};
|
|
292
298
|
getCommands(): PathCommand[];
|
|
293
299
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
300
|
+
copy(source: LineCurve): this;
|
|
294
301
|
}
|
|
295
302
|
|
|
296
|
-
declare class
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
303
|
+
declare class HeartCurve extends Curve {
|
|
304
|
+
center: Vector2;
|
|
305
|
+
size: number;
|
|
306
|
+
start: number;
|
|
307
|
+
end: number;
|
|
308
|
+
curves: (CircleCurve | LineCurve)[];
|
|
309
|
+
curveT: number;
|
|
310
|
+
constructor(center: Vector2, size: number, start?: number, end?: number);
|
|
311
|
+
update(): this;
|
|
312
|
+
getPoint(t: number): Vector2;
|
|
313
|
+
getPointAt(t: number): Vector2;
|
|
314
|
+
getCurve(t: number): CircleCurve | LineCurve;
|
|
315
|
+
getTangent(t: number): Vector2;
|
|
316
|
+
getNormal(t: number): Vector2;
|
|
317
|
+
transformPoint(cb: (point: Vector2) => void): this;
|
|
318
|
+
getMinMax(min?: Vector2, max?: Vector2): {
|
|
319
|
+
min: Vector2;
|
|
320
|
+
max: Vector2;
|
|
309
321
|
};
|
|
310
322
|
getCommands(): PathCommand[];
|
|
311
323
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
312
|
-
copy(source: LineCurve): this;
|
|
313
324
|
}
|
|
314
325
|
|
|
315
326
|
declare class PloygonCurve extends Curve {
|
|
316
|
-
center:
|
|
327
|
+
center: Vector2;
|
|
317
328
|
radius: number;
|
|
318
|
-
|
|
329
|
+
number: number;
|
|
319
330
|
start: number;
|
|
320
331
|
end: number;
|
|
321
332
|
curves: LineCurve[];
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
getTangent(
|
|
330
|
-
getNormal(
|
|
331
|
-
|
|
332
|
-
getMinMax(min?:
|
|
333
|
-
min:
|
|
334
|
-
max:
|
|
333
|
+
curveT: number;
|
|
334
|
+
points: Vector2[];
|
|
335
|
+
constructor(center: Vector2, radius?: number, number?: number, start?: number, end?: number);
|
|
336
|
+
update(): this;
|
|
337
|
+
getCurve(t: number): LineCurve;
|
|
338
|
+
getPoint(t: number, output?: Vector2): Vector2;
|
|
339
|
+
getPointAt(u: number, output?: Vector2): Vector2;
|
|
340
|
+
getTangent(t: number, output?: Vector2): Vector2;
|
|
341
|
+
getNormal(t: number, output?: Vector2): Vector2;
|
|
342
|
+
transformPoint(cb: (point: Vector2) => void): this;
|
|
343
|
+
getMinMax(min?: Vector2, max?: Vector2): {
|
|
344
|
+
min: Vector2;
|
|
345
|
+
max: Vector2;
|
|
335
346
|
};
|
|
336
347
|
getCommands(): PathCommand[];
|
|
337
348
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
338
349
|
}
|
|
339
350
|
|
|
340
351
|
declare class QuadraticBezierCurve extends Curve {
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
constructor(
|
|
345
|
-
getPoint(t: number, output?:
|
|
346
|
-
|
|
347
|
-
getMinMax(min?:
|
|
348
|
-
min:
|
|
349
|
-
max:
|
|
352
|
+
start: Vector2;
|
|
353
|
+
control: Vector2;
|
|
354
|
+
end: Vector2;
|
|
355
|
+
constructor(start?: Vector2, control?: Vector2, end?: Vector2);
|
|
356
|
+
getPoint(t: number, output?: Vector2): Vector2;
|
|
357
|
+
transformPoint(cb: (point: Vector2) => void): this;
|
|
358
|
+
getMinMax(min?: Vector2, max?: Vector2): {
|
|
359
|
+
min: Vector2;
|
|
360
|
+
max: Vector2;
|
|
350
361
|
};
|
|
351
362
|
getCommands(): PathCommand[];
|
|
352
363
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
@@ -354,40 +365,43 @@ declare class QuadraticBezierCurve extends Curve {
|
|
|
354
365
|
}
|
|
355
366
|
|
|
356
367
|
declare class RectangularCurve extends Curve {
|
|
357
|
-
center:
|
|
368
|
+
center: Vector2;
|
|
358
369
|
rx: number;
|
|
359
370
|
aspectRatio: number;
|
|
360
371
|
start: number;
|
|
361
372
|
end: number;
|
|
362
373
|
curves: LineCurve[];
|
|
363
|
-
|
|
374
|
+
curveT: number;
|
|
364
375
|
get x(): number;
|
|
365
376
|
get y(): number;
|
|
366
377
|
get width(): number;
|
|
367
378
|
get height(): number;
|
|
368
|
-
constructor(center:
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
379
|
+
constructor(center: Vector2, rx: number, aspectRatio?: number, start?: number, end?: number);
|
|
380
|
+
update(): this;
|
|
381
|
+
getCurve(t: number): LineCurve;
|
|
382
|
+
getPoint(t: number, output?: Vector2): Vector2;
|
|
383
|
+
getPointAt(u: number, output?: Vector2): Vector2;
|
|
384
|
+
getTangent(t: number, output?: Vector2): Vector2;
|
|
385
|
+
getNormal(t: number, output?: Vector2): Vector2;
|
|
386
|
+
transformPoint(cb: (point: Vector2) => void): this;
|
|
387
|
+
getMinMax(min?: Vector2, max?: Vector2): {
|
|
388
|
+
min: Vector2;
|
|
389
|
+
max: Vector2;
|
|
378
390
|
};
|
|
379
391
|
getCommands(): PathCommand[];
|
|
380
392
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
381
393
|
}
|
|
382
394
|
|
|
383
395
|
declare class SplineCurve extends Curve {
|
|
384
|
-
points:
|
|
385
|
-
constructor(points?:
|
|
396
|
+
points: Vector2[];
|
|
397
|
+
constructor(points?: Vector2[]);
|
|
386
398
|
getDivisions(divisions?: number): number;
|
|
387
|
-
getPoint(t: number, output?:
|
|
399
|
+
getPoint(t: number, output?: Vector2): Vector2;
|
|
400
|
+
transformPoint(cb: (point: Vector2) => void): this;
|
|
388
401
|
copy(source: SplineCurve): this;
|
|
389
402
|
}
|
|
390
403
|
|
|
404
|
+
declare function parseSvgToDom(svg: string | SVGElement): SVGElement;
|
|
391
405
|
declare function parseSvg(svg: string | SVGElement): Path2D[];
|
|
392
406
|
|
|
393
|
-
export { BoundingBox, CircleCurve, CubicBezierCurve, Curve, CurvePath, EllipseCurve, HeartCurve, LineCurve, Matrix3, Path2D, PloygonCurve,
|
|
407
|
+
export { BoundingBox, CircleCurve, CubicBezierCurve, Curve, CurvePath, EllipseCurve, HeartCurve, LineCurve, Matrix3, Path2D, PloygonCurve, QuadraticBezierCurve, RectangularCurve, SplineCurve, Vector2, type VectorLike, parseSvg, parseSvgToDom };
|