modern-path2d 1.4.16 → 1.5.1
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 +672 -524
- package/dist/index.d.cts +146 -72
- package/dist/index.d.mts +146 -72
- package/dist/index.d.ts +146 -72
- package/dist/index.js +16 -17
- package/dist/index.mjs +670 -524
- package/package.json +9 -9
package/dist/index.d.cts
CHANGED
|
@@ -90,65 +90,57 @@ interface Path2DStyle extends Path2DDrawStyle {
|
|
|
90
90
|
|
|
91
91
|
declare function setCanvasContext(ctx: CanvasRenderingContext2D, style: Partial<Path2DStyle>): void;
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
elements: number[];
|
|
95
|
-
constructor(n11?: number, n12?: number, n13?: number, n21?: number, n22?: number, n23?: number, n31?: number, n32?: number, n33?: number);
|
|
96
|
-
set(n11: number, n12: number, n13: number, n21: number, n22: number, n23: number, n31: number, n32: number, n33: number): this;
|
|
97
|
-
identity(): this;
|
|
98
|
-
copy(m: Matrix3): this;
|
|
99
|
-
multiply(m: Matrix3): this;
|
|
100
|
-
premultiply(m: Matrix3): this;
|
|
101
|
-
multiplyMatrices(a: Matrix3, b: Matrix3): this;
|
|
102
|
-
invert(): this;
|
|
103
|
-
transpose(): this;
|
|
104
|
-
scale(sx: number, sy: number): this;
|
|
105
|
-
rotate(theta: number): this;
|
|
106
|
-
translate(tx: number, ty: number): this;
|
|
107
|
-
makeTranslation(x: number, y: number): this;
|
|
108
|
-
makeRotation(theta: number): this;
|
|
109
|
-
makeScale(x: number, y: number): this;
|
|
110
|
-
fromArray(array: number[], offset?: number): this;
|
|
111
|
-
clone(): Matrix3;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
interface VectorLike {
|
|
93
|
+
interface Vector2Like {
|
|
115
94
|
x: number;
|
|
116
95
|
y: number;
|
|
117
96
|
}
|
|
118
|
-
declare class Vector2 {
|
|
119
|
-
|
|
120
|
-
|
|
97
|
+
declare class Vector2 implements Vector2Like {
|
|
98
|
+
protected _x: number;
|
|
99
|
+
protected _y: number;
|
|
100
|
+
protected _onUpdate?: ((vec: Vector2) => void) | undefined;
|
|
121
101
|
static get MAX(): Vector2;
|
|
122
102
|
static get MIN(): Vector2;
|
|
103
|
+
static lerp(a: Vector2Like, b: Vector2Like, t: number): Vector2;
|
|
104
|
+
get width(): number;
|
|
105
|
+
set width(val: number);
|
|
106
|
+
get height(): number;
|
|
107
|
+
set height(val: number);
|
|
108
|
+
get left(): number;
|
|
109
|
+
set left(val: number);
|
|
110
|
+
get top(): number;
|
|
111
|
+
set top(val: number);
|
|
112
|
+
get x(): number;
|
|
113
|
+
set x(value: number);
|
|
114
|
+
get y(): number;
|
|
115
|
+
set y(value: number);
|
|
116
|
+
constructor(_x?: number, _y?: number, _onUpdate?: ((vec: Vector2) => void) | undefined);
|
|
117
|
+
set(x?: number, y?: number): this;
|
|
118
|
+
add(p: Vector2Like): this;
|
|
119
|
+
sub(p: Vector2Like): this;
|
|
120
|
+
subVectors(a: Vector2Like, b: Vector2Like): this;
|
|
121
|
+
multiply(x?: number, y?: number): this;
|
|
122
|
+
divide(x?: number, y?: number): this;
|
|
123
|
+
cross(p: Vector2Like): number;
|
|
124
|
+
dot(p: Vector2Like): number;
|
|
125
|
+
rotate(rad: number, origin?: Vector2Like): this;
|
|
126
|
+
getLength(): number;
|
|
127
|
+
getAngle(): number;
|
|
128
|
+
distanceTo(p: Vector2Like): number;
|
|
129
|
+
normalize(): this;
|
|
130
|
+
copyFrom(p: Vector2Like): this;
|
|
131
|
+
copyTo<T extends Vector2>(p: T): T;
|
|
132
|
+
equals(vec: Vector2Like): boolean;
|
|
123
133
|
get array(): [number, number];
|
|
124
|
-
constructor(x?: number, y?: number);
|
|
125
134
|
finite(): this;
|
|
126
|
-
set(x: number, y: number): this;
|
|
127
|
-
add(vec: VectorLike): this;
|
|
128
|
-
sub(vec: VectorLike): this;
|
|
129
|
-
multiply(vec: VectorLike): this;
|
|
130
|
-
divide(vec: VectorLike): this;
|
|
131
|
-
dot(vec: VectorLike): number;
|
|
132
|
-
cross(vec: VectorLike): number;
|
|
133
|
-
rotate(a: number, target?: VectorLike): this;
|
|
134
|
-
distanceTo(vec: VectorLike): number;
|
|
135
|
-
distanceToSquared(vec: VectorLike): number;
|
|
136
135
|
lengthSquared(): number;
|
|
137
136
|
length(): number;
|
|
138
|
-
scale(sx: number, sy?: number,
|
|
139
|
-
skew(ax: number, ay?: number,
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
multiplyVectors(a: VectorLike, b: VectorLike): this;
|
|
146
|
-
divideVectors(a: VectorLike, b: VectorLike): this;
|
|
147
|
-
lerpVectors(v1: VectorLike, v2: VectorLike, alpha: number): this;
|
|
148
|
-
equals(vec: VectorLike): boolean;
|
|
149
|
-
applyMatrix3(m: Matrix3): this;
|
|
150
|
-
copy(vec: VectorLike): this;
|
|
151
|
-
clone(): Vector2;
|
|
137
|
+
scale(sx: number, sy?: number, origin?: Vector2Like): this;
|
|
138
|
+
skew(ax: number, ay?: number, origin?: Vector2Like): this;
|
|
139
|
+
clampMin(...pList: Vector2Like[]): this;
|
|
140
|
+
clampMax(...pList: Vector2Like[]): this;
|
|
141
|
+
clone(_onUpdate?: (vec: Vector2) => void): Vector2;
|
|
142
|
+
toJSON(): Vector2Like;
|
|
143
|
+
destroy(): void;
|
|
152
144
|
}
|
|
153
145
|
|
|
154
146
|
declare class BoundingBox {
|
|
@@ -171,6 +163,88 @@ declare class BoundingBox {
|
|
|
171
163
|
clone(): BoundingBox;
|
|
172
164
|
}
|
|
173
165
|
|
|
166
|
+
interface TransformableObject {
|
|
167
|
+
position: {
|
|
168
|
+
x: number;
|
|
169
|
+
y: number;
|
|
170
|
+
};
|
|
171
|
+
scale: {
|
|
172
|
+
x: number;
|
|
173
|
+
y: number;
|
|
174
|
+
};
|
|
175
|
+
skew: {
|
|
176
|
+
x: number;
|
|
177
|
+
y: number;
|
|
178
|
+
};
|
|
179
|
+
rotation: number;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Transform
|
|
183
|
+
*
|
|
184
|
+
* | a | c | tx|
|
|
185
|
+
* | b | d | ty|
|
|
186
|
+
* | 0 | 0 | 1 |
|
|
187
|
+
*/
|
|
188
|
+
declare class Transform2D {
|
|
189
|
+
a: number;
|
|
190
|
+
b: number;
|
|
191
|
+
c: number;
|
|
192
|
+
d: number;
|
|
193
|
+
tx: number;
|
|
194
|
+
ty: number;
|
|
195
|
+
protected _array?: Float32Array<ArrayBuffer>;
|
|
196
|
+
constructor(a?: number, b?: number, c?: number, d?: number, tx?: number, ty?: number);
|
|
197
|
+
set(a: number, b: number, c: number, d: number, tx: number, ty: number): this;
|
|
198
|
+
append(t2d: Transform2D): this;
|
|
199
|
+
appendFrom(a: Transform2D, b: Transform2D): this;
|
|
200
|
+
setTransform(x: number, y: number, pivotX: number, pivotY: number, scaleX: number, scaleY: number, rotation: number, skewX: number, skewY: number): this;
|
|
201
|
+
prepend(t2d: Transform2D): this;
|
|
202
|
+
protected _skewX?: number;
|
|
203
|
+
protected _skewY?: number;
|
|
204
|
+
protected _skewXTan: number;
|
|
205
|
+
protected _skewYTan: number;
|
|
206
|
+
skewX(x: number): this;
|
|
207
|
+
skewY(y: number): this;
|
|
208
|
+
skew(x: number, y: number): this;
|
|
209
|
+
translateX(x: number): this;
|
|
210
|
+
translateY(y: number): this;
|
|
211
|
+
translateZ(z: number): this;
|
|
212
|
+
translate3d(x: number, y: number, z: number): this;
|
|
213
|
+
translate(x: number, y: number, _z?: number): this;
|
|
214
|
+
scaleX(x: number): this;
|
|
215
|
+
scaleY(y: number): this;
|
|
216
|
+
scale3d(x: number, y: number, z?: number): this;
|
|
217
|
+
scale(x: number, y: number, _z?: number): this;
|
|
218
|
+
rotateX(x: number): this;
|
|
219
|
+
rotateY(y: number): this;
|
|
220
|
+
rotateZ(z: number): this;
|
|
221
|
+
rotate(angle: number): this;
|
|
222
|
+
rotate3d(x: number, y: number, z: number, rad: number): this;
|
|
223
|
+
protected _rotateToScale(rad: number): number;
|
|
224
|
+
protected _rotate3d(x: number, y: number, z: number, rad: number): number[];
|
|
225
|
+
decompose(pivot?: {
|
|
226
|
+
x: number;
|
|
227
|
+
y: number;
|
|
228
|
+
}, output?: TransformableObject): TransformableObject;
|
|
229
|
+
apply<P extends Vector2Like = Vector2>(pos: Vector2Like, newPos?: P): P;
|
|
230
|
+
affineInvert(): this;
|
|
231
|
+
affineInverse(): this;
|
|
232
|
+
applyAffineInverse<P extends Vector2Like = Vector2>(pos: Vector2Like, newPos?: P): P;
|
|
233
|
+
identity(): this;
|
|
234
|
+
isIdentity(): boolean;
|
|
235
|
+
copyTo(t2d: Transform2D): Transform2D;
|
|
236
|
+
copyFrom(t2d: Transform2D): this;
|
|
237
|
+
equals(t2d: Transform2D): boolean;
|
|
238
|
+
appendCssTransform(cssTransform: string): this;
|
|
239
|
+
clone(): this;
|
|
240
|
+
toArray(transpose?: boolean, out?: Float32Array<ArrayBuffer>): Float32Array<ArrayBuffer>;
|
|
241
|
+
toString(): string;
|
|
242
|
+
destroy(): void;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
declare const PI: number;
|
|
246
|
+
declare const PI_2: number;
|
|
247
|
+
|
|
174
248
|
declare function catmullRom(t: number, p0: number, p1: number, p2: number, p3: number): number;
|
|
175
249
|
|
|
176
250
|
declare function cubicBezier(t: number, p0: number, p1: number, p2: number, p3: number): number;
|
|
@@ -239,7 +313,7 @@ declare abstract class Curve {
|
|
|
239
313
|
getPointAt(u: number, output?: Vector2): Vector2;
|
|
240
314
|
isClockwise(): boolean;
|
|
241
315
|
getControlPointRefs(): Vector2[];
|
|
242
|
-
applyTransform(transform:
|
|
316
|
+
applyTransform(transform: Transform2D | ((point: Vector2) => void)): this;
|
|
243
317
|
getUnevenVertices(count?: number, output?: number[]): number[];
|
|
244
318
|
getSpacedVertices(count?: number, output?: number[]): number[];
|
|
245
319
|
getAdaptiveVertices(output?: number[]): number[];
|
|
@@ -256,7 +330,7 @@ declare abstract class Curve {
|
|
|
256
330
|
getTangentAt(u: number, output?: Vector2): Vector2;
|
|
257
331
|
getNormal(t: number, output?: Vector2): Vector2;
|
|
258
332
|
getNormalAt(u: number, output?: Vector2): Vector2;
|
|
259
|
-
getTForPoint(target:
|
|
333
|
+
getTForPoint(target: Vector2Like, epsilon?: number): number;
|
|
260
334
|
getMinMax(min?: Vector2, max?: Vector2): {
|
|
261
335
|
min: Vector2;
|
|
262
336
|
max: Vector2;
|
|
@@ -268,7 +342,7 @@ declare abstract class Curve {
|
|
|
268
342
|
toCommands(): Path2DCommand[];
|
|
269
343
|
toData(): Path2DData;
|
|
270
344
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
271
|
-
|
|
345
|
+
copyFrom(source: Curve): this;
|
|
272
346
|
clone(): this;
|
|
273
347
|
}
|
|
274
348
|
|
|
@@ -298,12 +372,12 @@ declare class RoundCurve extends Curve {
|
|
|
298
372
|
getPoint(t: number, output?: Vector2): Vector2;
|
|
299
373
|
toCommands(): Path2DCommand[];
|
|
300
374
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
301
|
-
applyTransform(
|
|
375
|
+
applyTransform(transform: Transform2D): this;
|
|
302
376
|
getControlPointRefs(): Vector2[];
|
|
303
377
|
protected _getAdaptiveVerticesByArc(output?: number[]): number[];
|
|
304
378
|
protected _getAdaptiveVerticesByCircle(output?: number[]): number[];
|
|
305
379
|
getAdaptiveVertices(output?: number[]): number[];
|
|
306
|
-
|
|
380
|
+
copyFrom(source: RoundCurve): this;
|
|
307
381
|
}
|
|
308
382
|
|
|
309
383
|
declare class ArcCurve extends RoundCurve {
|
|
@@ -325,7 +399,7 @@ declare class CompositeCurve<T extends Curve = Curve> extends Curve {
|
|
|
325
399
|
getAdaptiveVertices(output?: number[]): number[];
|
|
326
400
|
strokeTriangulate(options?: StrokeTriangulateOptions): StrokeTriangulatedResult;
|
|
327
401
|
getFillVertices(options?: FillTriangulateOptions): number[];
|
|
328
|
-
applyTransform(transform:
|
|
402
|
+
applyTransform(transform: Transform2D | ((point: Vector2) => void)): this;
|
|
329
403
|
getMinMax(min?: Vector2, max?: Vector2): {
|
|
330
404
|
min: Vector2;
|
|
331
405
|
max: Vector2;
|
|
@@ -333,7 +407,7 @@ declare class CompositeCurve<T extends Curve = Curve> extends Curve {
|
|
|
333
407
|
getBoundingBox(): BoundingBox;
|
|
334
408
|
toCommands(): Path2DCommand[];
|
|
335
409
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
336
|
-
|
|
410
|
+
copyFrom(source: CompositeCurve<T>): this;
|
|
337
411
|
}
|
|
338
412
|
|
|
339
413
|
declare class CubicBezierCurve extends Curve {
|
|
@@ -353,7 +427,7 @@ declare class CubicBezierCurve extends Curve {
|
|
|
353
427
|
};
|
|
354
428
|
toCommands(): Path2DCommand[];
|
|
355
429
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
356
|
-
|
|
430
|
+
copyFrom(source: CubicBezierCurve): this;
|
|
357
431
|
}
|
|
358
432
|
|
|
359
433
|
declare class EllipseCurve extends RoundCurve {
|
|
@@ -379,7 +453,7 @@ declare class LineCurve extends Curve {
|
|
|
379
453
|
toCommands(): Path2DCommand[];
|
|
380
454
|
getFillVertices(options?: FillTriangulateOptions): number[];
|
|
381
455
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
382
|
-
|
|
456
|
+
copyFrom(source: LineCurve): this;
|
|
383
457
|
}
|
|
384
458
|
|
|
385
459
|
declare class PloygonCurve extends CompositeCurve<LineCurve> {
|
|
@@ -392,7 +466,7 @@ declare class EquilateralPloygonCurve extends PloygonCurve {
|
|
|
392
466
|
sideCount: number;
|
|
393
467
|
constructor(cx?: number, cy?: number, radius?: number, sideCount?: number);
|
|
394
468
|
update(): this;
|
|
395
|
-
|
|
469
|
+
copyFrom(source: EquilateralPloygonCurve): this;
|
|
396
470
|
}
|
|
397
471
|
|
|
398
472
|
declare class QuadraticBezierCurve extends Curve {
|
|
@@ -410,7 +484,7 @@ declare class QuadraticBezierCurve extends Curve {
|
|
|
410
484
|
};
|
|
411
485
|
toCommands(): Path2DCommand[];
|
|
412
486
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
413
|
-
|
|
487
|
+
copyFrom(source: QuadraticBezierCurve): this;
|
|
414
488
|
}
|
|
415
489
|
|
|
416
490
|
declare class RectangleCurve extends PloygonCurve {
|
|
@@ -422,7 +496,7 @@ declare class RectangleCurve extends PloygonCurve {
|
|
|
422
496
|
update(): this;
|
|
423
497
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
424
498
|
getFillVertices(_options?: FillTriangulateOptions): number[];
|
|
425
|
-
|
|
499
|
+
copyFrom(source: RectangleCurve): this;
|
|
426
500
|
}
|
|
427
501
|
|
|
428
502
|
declare class RoundRectangleCurve extends RoundCurve {
|
|
@@ -434,7 +508,7 @@ declare class RoundRectangleCurve extends RoundCurve {
|
|
|
434
508
|
constructor(x?: number, y?: number, width?: number, height?: number, radius?: number);
|
|
435
509
|
update(): this;
|
|
436
510
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
437
|
-
|
|
511
|
+
copyFrom(source: RoundRectangleCurve): this;
|
|
438
512
|
}
|
|
439
513
|
|
|
440
514
|
declare class SplineCurve extends Curve {
|
|
@@ -442,7 +516,7 @@ declare class SplineCurve extends Curve {
|
|
|
442
516
|
constructor(points?: Vector2[]);
|
|
443
517
|
getPoint(t: number, output?: Vector2): Vector2;
|
|
444
518
|
getControlPointRefs(): Vector2[];
|
|
445
|
-
|
|
519
|
+
copyFrom(source: SplineCurve): this;
|
|
446
520
|
}
|
|
447
521
|
|
|
448
522
|
declare class CurvePath extends CompositeCurve {
|
|
@@ -458,7 +532,7 @@ declare class CurvePath extends CompositeCurve {
|
|
|
458
532
|
getSpacedVertices(count?: number, output?: number[]): number[];
|
|
459
533
|
getAdaptiveVertices(output?: number[]): number[];
|
|
460
534
|
getFillVertices(options?: FillTriangulateOptions): number[];
|
|
461
|
-
protected _setCurrentPoint(point:
|
|
535
|
+
protected _setCurrentPoint(point: Vector2Like): this;
|
|
462
536
|
protected _connetLineTo(curve: Curve): this;
|
|
463
537
|
closePath(): this;
|
|
464
538
|
moveTo(x: number, y: number): this;
|
|
@@ -474,7 +548,7 @@ declare class CurvePath extends CompositeCurve {
|
|
|
474
548
|
roundRect(x: number, y: number, width: number, height: number, radii: number): this;
|
|
475
549
|
splineThru(points: Vector2[]): this;
|
|
476
550
|
drawTo(ctx: CanvasRenderingContext2D): this;
|
|
477
|
-
|
|
551
|
+
copyFrom(source: CurvePath): this;
|
|
478
552
|
}
|
|
479
553
|
|
|
480
554
|
/**
|
|
@@ -512,9 +586,9 @@ declare class Path2D<T = any> extends CompositeCurve<CurvePath> {
|
|
|
512
586
|
addCommands(commands: Path2DCommand[]): this;
|
|
513
587
|
addData(data: Path2DData): this;
|
|
514
588
|
splineThru(points: Vector2[]): this;
|
|
515
|
-
scale(sx: number, sy?: number, target?:
|
|
516
|
-
skew(ax: number, ay?: number, target?:
|
|
517
|
-
rotate(a: number, target?:
|
|
589
|
+
scale(sx: number, sy?: number, target?: Vector2Like): this;
|
|
590
|
+
skew(ax: number, ay?: number, target?: Vector2Like): this;
|
|
591
|
+
rotate(a: number, target?: Vector2Like): this;
|
|
518
592
|
bold(b: number): this;
|
|
519
593
|
getMinMax(min?: Vector2, max?: Vector2, withStyle?: boolean): {
|
|
520
594
|
min: Vector2;
|
|
@@ -528,7 +602,7 @@ declare class Path2D<T = any> extends CompositeCurve<CurvePath> {
|
|
|
528
602
|
toCommands(): Path2DCommand[];
|
|
529
603
|
toData(): Path2DData;
|
|
530
604
|
toSvgPathString(): string;
|
|
531
|
-
|
|
605
|
+
copyFrom(source: Path2D): this;
|
|
532
606
|
}
|
|
533
607
|
|
|
534
608
|
interface TriangulatedResult {
|
|
@@ -593,5 +667,5 @@ declare function svgToDom(svg: string | SVGElement): SVGElement;
|
|
|
593
667
|
|
|
594
668
|
declare function svgToPath2DSet(svg: string | SVGElement): Path2DSet;
|
|
595
669
|
|
|
596
|
-
export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath, EllipseCurve, EquilateralPloygonCurve, FFDControlGrid, LineCurve,
|
|
597
|
-
export type { DrawPointOptions, FillRule, FillTriangulateOptions, FillTriangulatedResult, LineCap, LineJoin, LineStyle, Path2DCommand, Path2DData, Path2DDrawStyle, Path2DStyle, StrokeLinecap, StrokeLinejoin, StrokeTriangulateOptions, StrokeTriangulatedResult, TriangulatedResult,
|
|
670
|
+
export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath, EllipseCurve, EquilateralPloygonCurve, FFDControlGrid, LineCurve, PI, PI_2, Path2D, Path2DSet, PloygonCurve, QuadraticBezierCurve, RectangleCurve, RoundRectangleCurve, SplineCurve, Transform2D, Vector2, applyFFD, catmullRom, cubicBezier, drawPoint, fillTriangulate, getAdaptiveCubicBezierCurvePoints, getAdaptiveQuadraticBezierCurvePoints, getDirectedArea, getIntersectionPoint, nonzeroFillRule, parseArcCommand, parsePathDataArgs, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands, svgToDom, svgToPath2DSet, toKebabCase };
|
|
671
|
+
export type { DrawPointOptions, FillRule, FillTriangulateOptions, FillTriangulatedResult, LineCap, LineJoin, LineStyle, Path2DCommand, Path2DData, Path2DDrawStyle, Path2DStyle, StrokeLinecap, StrokeLinejoin, StrokeTriangulateOptions, StrokeTriangulatedResult, TransformableObject, TriangulatedResult, Vector2Like };
|