modern-path2d 0.1.7 → 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 +319 -278
- package/dist/index.d.cts +143 -135
- package/dist/index.d.mts +143 -135
- package/dist/index.d.ts +143 -135
- package/dist/index.js +1 -1
- package/dist/index.mjs +319 -278
- 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,27 +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
|
-
/** overrideable */
|
|
217
220
|
getCommands(): PathCommand[];
|
|
218
221
|
getData(): string;
|
|
219
222
|
/** overrideable */
|
|
@@ -223,31 +226,32 @@ declare abstract class Curve {
|
|
|
223
226
|
}
|
|
224
227
|
|
|
225
228
|
declare class CircleCurve extends Curve {
|
|
226
|
-
center:
|
|
229
|
+
center: Vector2;
|
|
227
230
|
radius: number;
|
|
228
231
|
start: number;
|
|
229
232
|
end: number;
|
|
230
|
-
constructor(center:
|
|
231
|
-
getPoint(t: number):
|
|
232
|
-
getTangent(t: number):
|
|
233
|
-
getNormal(t: number):
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
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;
|
|
237
241
|
};
|
|
238
242
|
}
|
|
239
243
|
|
|
240
244
|
declare class CubicBezierCurve extends Curve {
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
constructor(
|
|
246
|
-
getPoint(t: number, output?:
|
|
247
|
-
|
|
248
|
-
getMinMax(min?:
|
|
249
|
-
min:
|
|
250
|
-
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;
|
|
251
255
|
};
|
|
252
256
|
getCommands(): PathCommand[];
|
|
253
257
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
@@ -255,103 +259,105 @@ declare class CubicBezierCurve extends Curve {
|
|
|
255
259
|
}
|
|
256
260
|
|
|
257
261
|
declare class EllipseCurve extends Curve {
|
|
258
|
-
|
|
259
|
-
y: number;
|
|
262
|
+
center: Vector2;
|
|
260
263
|
radiusX: number;
|
|
261
264
|
radiusY: number;
|
|
262
265
|
startAngle: number;
|
|
263
266
|
endAngle: number;
|
|
264
267
|
clockwise: boolean;
|
|
265
268
|
rotation: number;
|
|
266
|
-
constructor(
|
|
267
|
-
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;
|
|
268
271
|
getDivisions(divisions?: number): number;
|
|
269
272
|
getCommands(): PathCommand[];
|
|
270
273
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
271
274
|
transform(matrix: Matrix3): this;
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
+
transformPoint(cb: (point: Vector2) => void): this;
|
|
276
|
+
getMinMax(min?: Vector2, max?: Vector2): {
|
|
277
|
+
min: Vector2;
|
|
278
|
+
max: Vector2;
|
|
275
279
|
};
|
|
276
280
|
copy(source: EllipseCurve): this;
|
|
277
281
|
}
|
|
278
282
|
|
|
279
|
-
declare class
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
start
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
getMinMax(min?: Point2D, max?: Point2D): {
|
|
294
|
-
min: Point2D;
|
|
295
|
-
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;
|
|
296
297
|
};
|
|
297
298
|
getCommands(): PathCommand[];
|
|
298
299
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
300
|
+
copy(source: LineCurve): this;
|
|
299
301
|
}
|
|
300
302
|
|
|
301
|
-
declare class
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
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;
|
|
314
321
|
};
|
|
315
322
|
getCommands(): PathCommand[];
|
|
316
323
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
317
|
-
copy(source: LineCurve): this;
|
|
318
324
|
}
|
|
319
325
|
|
|
320
326
|
declare class PloygonCurve extends Curve {
|
|
321
|
-
center:
|
|
327
|
+
center: Vector2;
|
|
322
328
|
radius: number;
|
|
323
|
-
|
|
329
|
+
number: number;
|
|
324
330
|
start: number;
|
|
325
331
|
end: number;
|
|
326
332
|
curves: LineCurve[];
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
getTangent(
|
|
335
|
-
getNormal(
|
|
336
|
-
|
|
337
|
-
getMinMax(min?:
|
|
338
|
-
min:
|
|
339
|
-
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;
|
|
340
346
|
};
|
|
341
347
|
getCommands(): PathCommand[];
|
|
342
348
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
343
349
|
}
|
|
344
350
|
|
|
345
351
|
declare class QuadraticBezierCurve extends Curve {
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
constructor(
|
|
350
|
-
getPoint(t: number, output?:
|
|
351
|
-
|
|
352
|
-
getMinMax(min?:
|
|
353
|
-
min:
|
|
354
|
-
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;
|
|
355
361
|
};
|
|
356
362
|
getCommands(): PathCommand[];
|
|
357
363
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
@@ -359,41 +365,43 @@ declare class QuadraticBezierCurve extends Curve {
|
|
|
359
365
|
}
|
|
360
366
|
|
|
361
367
|
declare class RectangularCurve extends Curve {
|
|
362
|
-
center:
|
|
368
|
+
center: Vector2;
|
|
363
369
|
rx: number;
|
|
364
370
|
aspectRatio: number;
|
|
365
371
|
start: number;
|
|
366
372
|
end: number;
|
|
367
373
|
curves: LineCurve[];
|
|
368
|
-
|
|
374
|
+
curveT: number;
|
|
369
375
|
get x(): number;
|
|
370
376
|
get y(): number;
|
|
371
377
|
get width(): number;
|
|
372
378
|
get height(): number;
|
|
373
|
-
constructor(center:
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
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;
|
|
383
390
|
};
|
|
384
391
|
getCommands(): PathCommand[];
|
|
385
392
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
386
393
|
}
|
|
387
394
|
|
|
388
395
|
declare class SplineCurve extends Curve {
|
|
389
|
-
points:
|
|
390
|
-
constructor(points?:
|
|
396
|
+
points: Vector2[];
|
|
397
|
+
constructor(points?: Vector2[]);
|
|
391
398
|
getDivisions(divisions?: number): number;
|
|
392
|
-
getPoint(t: number, output?:
|
|
399
|
+
getPoint(t: number, output?: Vector2): Vector2;
|
|
400
|
+
transformPoint(cb: (point: Vector2) => void): this;
|
|
393
401
|
copy(source: SplineCurve): this;
|
|
394
402
|
}
|
|
395
403
|
|
|
396
404
|
declare function parseSvgToDom(svg: string | SVGElement): SVGElement;
|
|
397
405
|
declare function parseSvg(svg: string | SVGElement): Path2D[];
|
|
398
406
|
|
|
399
|
-
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 };
|