modern-path2d 1.1.0 → 1.2.0

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
@@ -138,6 +138,7 @@ declare abstract class Curve {
138
138
  getPointAt(u: number, output?: Vector2): Vector2;
139
139
  isClockwise(): boolean;
140
140
  getControlPointRefs(): Vector2[];
141
+ applyTransform(transform: Matrix3): this;
141
142
  getUnevenPointArray(count?: number, output?: number[]): number[];
142
143
  getSpacedPointArray(count?: number, output?: number[]): number[];
143
144
  getAdaptivePointArray(output?: number[]): number[];
@@ -155,7 +156,6 @@ declare abstract class Curve {
155
156
  getNormal(t: number, output?: Vector2): Vector2;
156
157
  getNormalAt(u: number, output?: Vector2): Vector2;
157
158
  getTForPoint(target: VectorLike, epsilon?: number): number;
158
- matrix(matrix: Matrix3): this;
159
159
  getMinMax(min?: Vector2, max?: Vector2): {
160
160
  min: Vector2;
161
161
  max: Vector2;
@@ -170,19 +170,32 @@ declare abstract class Curve {
170
170
  clone(): this;
171
171
  }
172
172
 
173
- declare class EllipseCurve extends Curve {
174
- rotation: number;
173
+ declare class RoundCurve extends Curve {
174
+ _center: Vector2;
175
+ _radius: Vector2;
176
+ _diff: Vector2;
177
+ rotate: number;
175
178
  startAngle: number;
176
179
  endAngle: number;
177
180
  clockwise: boolean;
178
- center: Vector2;
179
- radius: Vector2;
180
- constructor(cx?: number, cy?: number, rx?: number, ry?: number, rotation?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
181
+ get cx(): number;
182
+ set cx(val: number);
183
+ get cy(): number;
184
+ set cy(val: number);
185
+ get rx(): number;
186
+ set rx(val: number);
187
+ get ry(): number;
188
+ set ry(val: number);
189
+ get dx(): number;
190
+ set dx(val: number);
191
+ get dy(): number;
192
+ set dy(val: number);
193
+ constructor(_center: Vector2, _radius: Vector2, _diff: Vector2, rotate?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
181
194
  isClockwise(): boolean;
182
195
  getPoint(t: number, output?: Vector2): Vector2;
183
196
  toCommands(): Path2DCommand[];
184
197
  drawTo(ctx: CanvasRenderingContext2D): this;
185
- matrix(matrix: Matrix3): this;
198
+ applyTransform(matrix: Matrix3): this;
186
199
  getControlPointRefs(): Vector2[];
187
200
  getAdaptivePointArray(output?: number[]): number[];
188
201
  fillTriangulate(options?: FillTriangulateOptions): FillTriangulateResult;
@@ -190,11 +203,13 @@ declare class EllipseCurve extends Curve {
190
203
  min: Vector2;
191
204
  max: Vector2;
192
205
  };
193
- copy(source: EllipseCurve): this;
206
+ copy(source: RoundCurve): this;
194
207
  }
195
208
 
196
- declare class ArcCurve extends EllipseCurve {
209
+ declare class ArcCurve extends RoundCurve {
210
+ readonly radius: number;
197
211
  constructor(cx?: number, cy?: number, radius?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
212
+ drawTo(ctx: CanvasRenderingContext2D): this;
198
213
  getAdaptivePointArray(output?: number[]): number[];
199
214
  }
200
215
 
@@ -220,8 +235,8 @@ declare class CubicBezierCurve extends Curve {
220
235
  cp1: Vector2;
221
236
  cp2: Vector2;
222
237
  p2: Vector2;
223
- static from(p1: Vector2, cp1: Vector2, cp2: Vector2, p2: Vector2): CubicBezierCurve;
224
- constructor(p1x: number, p1y: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, p2x: number, p2y: number);
238
+ static from(p1x: number, p1y: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, p2x: number, p2y: number): CubicBezierCurve;
239
+ constructor(p1: Vector2, cp1: Vector2, cp2: Vector2, p2: Vector2);
225
240
  getPoint(t: number, output?: Vector2): Vector2;
226
241
  getAdaptivePointArray(output?: number[]): number[];
227
242
  getControlPointRefs(): Vector2[];
@@ -235,11 +250,16 @@ declare class CubicBezierCurve extends Curve {
235
250
  copy(source: CubicBezierCurve): this;
236
251
  }
237
252
 
253
+ declare class EllipseCurve extends RoundCurve {
254
+ constructor(cx?: number, cy?: number, rx?: number, ry?: number, rotate?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
255
+ drawTo(ctx: CanvasRenderingContext2D): this;
256
+ }
257
+
238
258
  declare class LineCurve extends Curve {
239
259
  p1: Vector2;
240
260
  p2: Vector2;
241
- static from(p1: Vector2, p2: Vector2): LineCurve;
242
- constructor(p1x: number, p1y: number, p2x: number, p2y: number);
261
+ static from(p1x: number, p1y: number, p2x: number, p2y: number): LineCurve;
262
+ constructor(p1: Vector2, p2: Vector2);
243
263
  getPoint(t: number, output?: Vector2): Vector2;
244
264
  getPointAt(u: number, output?: Vector2): Vector2;
245
265
  getTangent(_t: number, output?: Vector2): Vector2;
@@ -256,15 +276,22 @@ declare class LineCurve extends Curve {
256
276
  }
257
277
 
258
278
  declare class PloygonCurve extends CompositeCurve<LineCurve> {
259
- static equilateral(cx?: number, cy?: number, radius?: number, sideCount?: number): PloygonCurve;
279
+ }
280
+
281
+ declare class EquilateralPloygonCurve extends PloygonCurve {
282
+ readonly cx: number;
283
+ readonly cy: number;
284
+ readonly radius: number;
285
+ readonly sideCount: number;
286
+ constructor(cx?: number, cy?: number, radius?: number, sideCount?: number);
260
287
  }
261
288
 
262
289
  declare class QuadraticBezierCurve extends Curve {
263
290
  p1: Vector2;
264
291
  cp: Vector2;
265
292
  p2: Vector2;
266
- static from(p1: Vector2, cp: Vector2, p2: Vector2): QuadraticBezierCurve;
267
- constructor(p1x: number, p1y: number, cpx: number, cpy: number, p2x: number, p2y: number);
293
+ static from(p1x: number, p1y: number, cpx: number, cpy: number, p2x: number, p2y: number): QuadraticBezierCurve;
294
+ constructor(p1: Vector2, cp: Vector2, p2: Vector2);
268
295
  getPoint(t: number, output?: Vector2): Vector2;
269
296
  getControlPointRefs(): Vector2[];
270
297
  getAdaptivePointArray(output?: number[]): number[];
@@ -278,14 +305,25 @@ declare class QuadraticBezierCurve extends Curve {
278
305
  }
279
306
 
280
307
  declare class RectangleCurve extends PloygonCurve {
281
- x: number;
282
- y: number;
283
- width: number;
284
- height: number;
308
+ readonly x: number;
309
+ readonly y: number;
310
+ readonly width: number;
311
+ readonly height: number;
285
312
  constructor(x?: number, y?: number, width?: number, height?: number);
313
+ drawTo(ctx: CanvasRenderingContext2D): this;
286
314
  fillTriangulate(options?: FillTriangulateOptions): FillTriangulateResult;
287
315
  }
288
316
 
317
+ declare class RoundRectangleCurve extends RoundCurve {
318
+ readonly x: number;
319
+ readonly y: number;
320
+ readonly width: number;
321
+ readonly height: number;
322
+ readonly radius: number;
323
+ constructor(x?: number, y?: number, width?: number, height?: number, radius?: number);
324
+ drawTo(ctx: CanvasRenderingContext2D): this;
325
+ }
326
+
289
327
  declare class SplineCurve extends Curve {
290
328
  points: Vector2[];
291
329
  constructor(points?: Vector2[]);
@@ -370,7 +408,8 @@ declare class CurvePath extends CompositeCurve {
370
408
  arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): this;
371
409
  ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
372
410
  relativeEllipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
373
- rect(x: number, y: number, w: number, h: number): this;
411
+ rect(x: number, y: number, width: number, height: number): this;
412
+ roundRect(x: number, y: number, width: number, height: number, radii: number): this;
374
413
  splineThru(points: Vector2[]): this;
375
414
  drawTo(ctx: CanvasRenderingContext2D): this;
376
415
  copy(source: CurvePath): this;
@@ -428,7 +467,8 @@ declare class Path2D extends CompositeCurve<CurvePath> {
428
467
  arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
429
468
  arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): this;
430
469
  ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
431
- rect(x: number, y: number, w: number, h: number): this;
470
+ rect(x: number, y: number, width: number, height: number): this;
471
+ roundRect(x: number, y: number, width: number, height: number, radii: number): this;
432
472
  addCommands(commands: Path2DCommand[]): this;
433
473
  addData(data: Path2DData): this;
434
474
  splineThru(points: Vector2[]): this;
@@ -436,7 +476,7 @@ declare class Path2D extends CompositeCurve<CurvePath> {
436
476
  skew(ax: number, ay?: number, target?: VectorLike): this;
437
477
  rotate(a: number, target?: VectorLike): this;
438
478
  bold(b: number): this;
439
- matrix(matrix: Matrix3): this;
479
+ applyTransform(transform: Matrix3): this;
440
480
  getMinMax(min?: Vector2, max?: Vector2, withStyle?: boolean): {
441
481
  min: Vector2;
442
482
  max: Vector2;
@@ -489,7 +529,8 @@ declare function svgPathCommandsToData(commands: Path2DCommand[]): Path2DData;
489
529
 
490
530
  declare function svgPathDataToCommands(data: Path2DData): Path2DCommand[];
491
531
 
492
- declare function parseSVGToDOM(svg: string | SVGElement): SVGElement;
493
- declare function parseSVG(svg: string | SVGElement): Path2DSet;
532
+ declare function svgToDom(svg: string | SVGElement): SVGElement;
533
+
534
+ declare function svgToPath2DSet(svg: string | SVGElement): Path2DSet;
494
535
 
495
- export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath, type DrawPointOptions, EllipseCurve, type FillRule, type FillTriangulateOptions, type FillTriangulateResult, type LineCap, LineCurve, type LineJoin, type LineStyle, Matrix3, Path2D, type Path2DCommand, type Path2DData, type Path2DDrawStyle, Path2DSet, type Path2DStyle, PloygonCurve, QuadraticBezierCurve, RectangleCurve, SplineCurve, type StrokeLinecap, type StrokeLinejoin, type StrokeTriangulateOptions, type StrokeTriangulateResult, Vector2, type VectorLike, catmullRom, cubicBezier, drawPoint, fillTriangulate, getAdaptiveCubicBezierCurvePoints, getAdaptiveQuadraticBezierCurvePoints, parseArcCommand, parsePathDataArgs, parseSVG, parseSVGToDOM, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands };
536
+ export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath, type DrawPointOptions, EllipseCurve, EquilateralPloygonCurve, type FillRule, type FillTriangulateOptions, type FillTriangulateResult, 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 StrokeTriangulateResult, Vector2, type VectorLike, catmullRom, cubicBezier, drawPoint, fillTriangulate, getAdaptiveCubicBezierCurvePoints, getAdaptiveQuadraticBezierCurvePoints, parseArcCommand, parsePathDataArgs, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands, svgToDom, svgToPath2DSet };
package/dist/index.d.mts CHANGED
@@ -138,6 +138,7 @@ declare abstract class Curve {
138
138
  getPointAt(u: number, output?: Vector2): Vector2;
139
139
  isClockwise(): boolean;
140
140
  getControlPointRefs(): Vector2[];
141
+ applyTransform(transform: Matrix3): this;
141
142
  getUnevenPointArray(count?: number, output?: number[]): number[];
142
143
  getSpacedPointArray(count?: number, output?: number[]): number[];
143
144
  getAdaptivePointArray(output?: number[]): number[];
@@ -155,7 +156,6 @@ declare abstract class Curve {
155
156
  getNormal(t: number, output?: Vector2): Vector2;
156
157
  getNormalAt(u: number, output?: Vector2): Vector2;
157
158
  getTForPoint(target: VectorLike, epsilon?: number): number;
158
- matrix(matrix: Matrix3): this;
159
159
  getMinMax(min?: Vector2, max?: Vector2): {
160
160
  min: Vector2;
161
161
  max: Vector2;
@@ -170,19 +170,32 @@ declare abstract class Curve {
170
170
  clone(): this;
171
171
  }
172
172
 
173
- declare class EllipseCurve extends Curve {
174
- rotation: number;
173
+ declare class RoundCurve extends Curve {
174
+ _center: Vector2;
175
+ _radius: Vector2;
176
+ _diff: Vector2;
177
+ rotate: number;
175
178
  startAngle: number;
176
179
  endAngle: number;
177
180
  clockwise: boolean;
178
- center: Vector2;
179
- radius: Vector2;
180
- constructor(cx?: number, cy?: number, rx?: number, ry?: number, rotation?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
181
+ get cx(): number;
182
+ set cx(val: number);
183
+ get cy(): number;
184
+ set cy(val: number);
185
+ get rx(): number;
186
+ set rx(val: number);
187
+ get ry(): number;
188
+ set ry(val: number);
189
+ get dx(): number;
190
+ set dx(val: number);
191
+ get dy(): number;
192
+ set dy(val: number);
193
+ constructor(_center: Vector2, _radius: Vector2, _diff: Vector2, rotate?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
181
194
  isClockwise(): boolean;
182
195
  getPoint(t: number, output?: Vector2): Vector2;
183
196
  toCommands(): Path2DCommand[];
184
197
  drawTo(ctx: CanvasRenderingContext2D): this;
185
- matrix(matrix: Matrix3): this;
198
+ applyTransform(matrix: Matrix3): this;
186
199
  getControlPointRefs(): Vector2[];
187
200
  getAdaptivePointArray(output?: number[]): number[];
188
201
  fillTriangulate(options?: FillTriangulateOptions): FillTriangulateResult;
@@ -190,11 +203,13 @@ declare class EllipseCurve extends Curve {
190
203
  min: Vector2;
191
204
  max: Vector2;
192
205
  };
193
- copy(source: EllipseCurve): this;
206
+ copy(source: RoundCurve): this;
194
207
  }
195
208
 
196
- declare class ArcCurve extends EllipseCurve {
209
+ declare class ArcCurve extends RoundCurve {
210
+ readonly radius: number;
197
211
  constructor(cx?: number, cy?: number, radius?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
212
+ drawTo(ctx: CanvasRenderingContext2D): this;
198
213
  getAdaptivePointArray(output?: number[]): number[];
199
214
  }
200
215
 
@@ -220,8 +235,8 @@ declare class CubicBezierCurve extends Curve {
220
235
  cp1: Vector2;
221
236
  cp2: Vector2;
222
237
  p2: Vector2;
223
- static from(p1: Vector2, cp1: Vector2, cp2: Vector2, p2: Vector2): CubicBezierCurve;
224
- constructor(p1x: number, p1y: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, p2x: number, p2y: number);
238
+ static from(p1x: number, p1y: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, p2x: number, p2y: number): CubicBezierCurve;
239
+ constructor(p1: Vector2, cp1: Vector2, cp2: Vector2, p2: Vector2);
225
240
  getPoint(t: number, output?: Vector2): Vector2;
226
241
  getAdaptivePointArray(output?: number[]): number[];
227
242
  getControlPointRefs(): Vector2[];
@@ -235,11 +250,16 @@ declare class CubicBezierCurve extends Curve {
235
250
  copy(source: CubicBezierCurve): this;
236
251
  }
237
252
 
253
+ declare class EllipseCurve extends RoundCurve {
254
+ constructor(cx?: number, cy?: number, rx?: number, ry?: number, rotate?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
255
+ drawTo(ctx: CanvasRenderingContext2D): this;
256
+ }
257
+
238
258
  declare class LineCurve extends Curve {
239
259
  p1: Vector2;
240
260
  p2: Vector2;
241
- static from(p1: Vector2, p2: Vector2): LineCurve;
242
- constructor(p1x: number, p1y: number, p2x: number, p2y: number);
261
+ static from(p1x: number, p1y: number, p2x: number, p2y: number): LineCurve;
262
+ constructor(p1: Vector2, p2: Vector2);
243
263
  getPoint(t: number, output?: Vector2): Vector2;
244
264
  getPointAt(u: number, output?: Vector2): Vector2;
245
265
  getTangent(_t: number, output?: Vector2): Vector2;
@@ -256,15 +276,22 @@ declare class LineCurve extends Curve {
256
276
  }
257
277
 
258
278
  declare class PloygonCurve extends CompositeCurve<LineCurve> {
259
- static equilateral(cx?: number, cy?: number, radius?: number, sideCount?: number): PloygonCurve;
279
+ }
280
+
281
+ declare class EquilateralPloygonCurve extends PloygonCurve {
282
+ readonly cx: number;
283
+ readonly cy: number;
284
+ readonly radius: number;
285
+ readonly sideCount: number;
286
+ constructor(cx?: number, cy?: number, radius?: number, sideCount?: number);
260
287
  }
261
288
 
262
289
  declare class QuadraticBezierCurve extends Curve {
263
290
  p1: Vector2;
264
291
  cp: Vector2;
265
292
  p2: Vector2;
266
- static from(p1: Vector2, cp: Vector2, p2: Vector2): QuadraticBezierCurve;
267
- constructor(p1x: number, p1y: number, cpx: number, cpy: number, p2x: number, p2y: number);
293
+ static from(p1x: number, p1y: number, cpx: number, cpy: number, p2x: number, p2y: number): QuadraticBezierCurve;
294
+ constructor(p1: Vector2, cp: Vector2, p2: Vector2);
268
295
  getPoint(t: number, output?: Vector2): Vector2;
269
296
  getControlPointRefs(): Vector2[];
270
297
  getAdaptivePointArray(output?: number[]): number[];
@@ -278,14 +305,25 @@ declare class QuadraticBezierCurve extends Curve {
278
305
  }
279
306
 
280
307
  declare class RectangleCurve extends PloygonCurve {
281
- x: number;
282
- y: number;
283
- width: number;
284
- height: number;
308
+ readonly x: number;
309
+ readonly y: number;
310
+ readonly width: number;
311
+ readonly height: number;
285
312
  constructor(x?: number, y?: number, width?: number, height?: number);
313
+ drawTo(ctx: CanvasRenderingContext2D): this;
286
314
  fillTriangulate(options?: FillTriangulateOptions): FillTriangulateResult;
287
315
  }
288
316
 
317
+ declare class RoundRectangleCurve extends RoundCurve {
318
+ readonly x: number;
319
+ readonly y: number;
320
+ readonly width: number;
321
+ readonly height: number;
322
+ readonly radius: number;
323
+ constructor(x?: number, y?: number, width?: number, height?: number, radius?: number);
324
+ drawTo(ctx: CanvasRenderingContext2D): this;
325
+ }
326
+
289
327
  declare class SplineCurve extends Curve {
290
328
  points: Vector2[];
291
329
  constructor(points?: Vector2[]);
@@ -370,7 +408,8 @@ declare class CurvePath extends CompositeCurve {
370
408
  arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): this;
371
409
  ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
372
410
  relativeEllipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
373
- rect(x: number, y: number, w: number, h: number): this;
411
+ rect(x: number, y: number, width: number, height: number): this;
412
+ roundRect(x: number, y: number, width: number, height: number, radii: number): this;
374
413
  splineThru(points: Vector2[]): this;
375
414
  drawTo(ctx: CanvasRenderingContext2D): this;
376
415
  copy(source: CurvePath): this;
@@ -428,7 +467,8 @@ declare class Path2D extends CompositeCurve<CurvePath> {
428
467
  arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
429
468
  arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): this;
430
469
  ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
431
- rect(x: number, y: number, w: number, h: number): this;
470
+ rect(x: number, y: number, width: number, height: number): this;
471
+ roundRect(x: number, y: number, width: number, height: number, radii: number): this;
432
472
  addCommands(commands: Path2DCommand[]): this;
433
473
  addData(data: Path2DData): this;
434
474
  splineThru(points: Vector2[]): this;
@@ -436,7 +476,7 @@ declare class Path2D extends CompositeCurve<CurvePath> {
436
476
  skew(ax: number, ay?: number, target?: VectorLike): this;
437
477
  rotate(a: number, target?: VectorLike): this;
438
478
  bold(b: number): this;
439
- matrix(matrix: Matrix3): this;
479
+ applyTransform(transform: Matrix3): this;
440
480
  getMinMax(min?: Vector2, max?: Vector2, withStyle?: boolean): {
441
481
  min: Vector2;
442
482
  max: Vector2;
@@ -489,7 +529,8 @@ declare function svgPathCommandsToData(commands: Path2DCommand[]): Path2DData;
489
529
 
490
530
  declare function svgPathDataToCommands(data: Path2DData): Path2DCommand[];
491
531
 
492
- declare function parseSVGToDOM(svg: string | SVGElement): SVGElement;
493
- declare function parseSVG(svg: string | SVGElement): Path2DSet;
532
+ declare function svgToDom(svg: string | SVGElement): SVGElement;
533
+
534
+ declare function svgToPath2DSet(svg: string | SVGElement): Path2DSet;
494
535
 
495
- export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath, type DrawPointOptions, EllipseCurve, type FillRule, type FillTriangulateOptions, type FillTriangulateResult, type LineCap, LineCurve, type LineJoin, type LineStyle, Matrix3, Path2D, type Path2DCommand, type Path2DData, type Path2DDrawStyle, Path2DSet, type Path2DStyle, PloygonCurve, QuadraticBezierCurve, RectangleCurve, SplineCurve, type StrokeLinecap, type StrokeLinejoin, type StrokeTriangulateOptions, type StrokeTriangulateResult, Vector2, type VectorLike, catmullRom, cubicBezier, drawPoint, fillTriangulate, getAdaptiveCubicBezierCurvePoints, getAdaptiveQuadraticBezierCurvePoints, parseArcCommand, parsePathDataArgs, parseSVG, parseSVGToDOM, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands };
536
+ export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath, type DrawPointOptions, EllipseCurve, EquilateralPloygonCurve, type FillRule, type FillTriangulateOptions, type FillTriangulateResult, 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 StrokeTriangulateResult, Vector2, type VectorLike, catmullRom, cubicBezier, drawPoint, fillTriangulate, getAdaptiveCubicBezierCurvePoints, getAdaptiveQuadraticBezierCurvePoints, parseArcCommand, parsePathDataArgs, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands, svgToDom, svgToPath2DSet };
package/dist/index.d.ts CHANGED
@@ -138,6 +138,7 @@ declare abstract class Curve {
138
138
  getPointAt(u: number, output?: Vector2): Vector2;
139
139
  isClockwise(): boolean;
140
140
  getControlPointRefs(): Vector2[];
141
+ applyTransform(transform: Matrix3): this;
141
142
  getUnevenPointArray(count?: number, output?: number[]): number[];
142
143
  getSpacedPointArray(count?: number, output?: number[]): number[];
143
144
  getAdaptivePointArray(output?: number[]): number[];
@@ -155,7 +156,6 @@ declare abstract class Curve {
155
156
  getNormal(t: number, output?: Vector2): Vector2;
156
157
  getNormalAt(u: number, output?: Vector2): Vector2;
157
158
  getTForPoint(target: VectorLike, epsilon?: number): number;
158
- matrix(matrix: Matrix3): this;
159
159
  getMinMax(min?: Vector2, max?: Vector2): {
160
160
  min: Vector2;
161
161
  max: Vector2;
@@ -170,19 +170,32 @@ declare abstract class Curve {
170
170
  clone(): this;
171
171
  }
172
172
 
173
- declare class EllipseCurve extends Curve {
174
- rotation: number;
173
+ declare class RoundCurve extends Curve {
174
+ _center: Vector2;
175
+ _radius: Vector2;
176
+ _diff: Vector2;
177
+ rotate: number;
175
178
  startAngle: number;
176
179
  endAngle: number;
177
180
  clockwise: boolean;
178
- center: Vector2;
179
- radius: Vector2;
180
- constructor(cx?: number, cy?: number, rx?: number, ry?: number, rotation?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
181
+ get cx(): number;
182
+ set cx(val: number);
183
+ get cy(): number;
184
+ set cy(val: number);
185
+ get rx(): number;
186
+ set rx(val: number);
187
+ get ry(): number;
188
+ set ry(val: number);
189
+ get dx(): number;
190
+ set dx(val: number);
191
+ get dy(): number;
192
+ set dy(val: number);
193
+ constructor(_center: Vector2, _radius: Vector2, _diff: Vector2, rotate?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
181
194
  isClockwise(): boolean;
182
195
  getPoint(t: number, output?: Vector2): Vector2;
183
196
  toCommands(): Path2DCommand[];
184
197
  drawTo(ctx: CanvasRenderingContext2D): this;
185
- matrix(matrix: Matrix3): this;
198
+ applyTransform(matrix: Matrix3): this;
186
199
  getControlPointRefs(): Vector2[];
187
200
  getAdaptivePointArray(output?: number[]): number[];
188
201
  fillTriangulate(options?: FillTriangulateOptions): FillTriangulateResult;
@@ -190,11 +203,13 @@ declare class EllipseCurve extends Curve {
190
203
  min: Vector2;
191
204
  max: Vector2;
192
205
  };
193
- copy(source: EllipseCurve): this;
206
+ copy(source: RoundCurve): this;
194
207
  }
195
208
 
196
- declare class ArcCurve extends EllipseCurve {
209
+ declare class ArcCurve extends RoundCurve {
210
+ readonly radius: number;
197
211
  constructor(cx?: number, cy?: number, radius?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
212
+ drawTo(ctx: CanvasRenderingContext2D): this;
198
213
  getAdaptivePointArray(output?: number[]): number[];
199
214
  }
200
215
 
@@ -220,8 +235,8 @@ declare class CubicBezierCurve extends Curve {
220
235
  cp1: Vector2;
221
236
  cp2: Vector2;
222
237
  p2: Vector2;
223
- static from(p1: Vector2, cp1: Vector2, cp2: Vector2, p2: Vector2): CubicBezierCurve;
224
- constructor(p1x: number, p1y: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, p2x: number, p2y: number);
238
+ static from(p1x: number, p1y: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, p2x: number, p2y: number): CubicBezierCurve;
239
+ constructor(p1: Vector2, cp1: Vector2, cp2: Vector2, p2: Vector2);
225
240
  getPoint(t: number, output?: Vector2): Vector2;
226
241
  getAdaptivePointArray(output?: number[]): number[];
227
242
  getControlPointRefs(): Vector2[];
@@ -235,11 +250,16 @@ declare class CubicBezierCurve extends Curve {
235
250
  copy(source: CubicBezierCurve): this;
236
251
  }
237
252
 
253
+ declare class EllipseCurve extends RoundCurve {
254
+ constructor(cx?: number, cy?: number, rx?: number, ry?: number, rotate?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
255
+ drawTo(ctx: CanvasRenderingContext2D): this;
256
+ }
257
+
238
258
  declare class LineCurve extends Curve {
239
259
  p1: Vector2;
240
260
  p2: Vector2;
241
- static from(p1: Vector2, p2: Vector2): LineCurve;
242
- constructor(p1x: number, p1y: number, p2x: number, p2y: number);
261
+ static from(p1x: number, p1y: number, p2x: number, p2y: number): LineCurve;
262
+ constructor(p1: Vector2, p2: Vector2);
243
263
  getPoint(t: number, output?: Vector2): Vector2;
244
264
  getPointAt(u: number, output?: Vector2): Vector2;
245
265
  getTangent(_t: number, output?: Vector2): Vector2;
@@ -256,15 +276,22 @@ declare class LineCurve extends Curve {
256
276
  }
257
277
 
258
278
  declare class PloygonCurve extends CompositeCurve<LineCurve> {
259
- static equilateral(cx?: number, cy?: number, radius?: number, sideCount?: number): PloygonCurve;
279
+ }
280
+
281
+ declare class EquilateralPloygonCurve extends PloygonCurve {
282
+ readonly cx: number;
283
+ readonly cy: number;
284
+ readonly radius: number;
285
+ readonly sideCount: number;
286
+ constructor(cx?: number, cy?: number, radius?: number, sideCount?: number);
260
287
  }
261
288
 
262
289
  declare class QuadraticBezierCurve extends Curve {
263
290
  p1: Vector2;
264
291
  cp: Vector2;
265
292
  p2: Vector2;
266
- static from(p1: Vector2, cp: Vector2, p2: Vector2): QuadraticBezierCurve;
267
- constructor(p1x: number, p1y: number, cpx: number, cpy: number, p2x: number, p2y: number);
293
+ static from(p1x: number, p1y: number, cpx: number, cpy: number, p2x: number, p2y: number): QuadraticBezierCurve;
294
+ constructor(p1: Vector2, cp: Vector2, p2: Vector2);
268
295
  getPoint(t: number, output?: Vector2): Vector2;
269
296
  getControlPointRefs(): Vector2[];
270
297
  getAdaptivePointArray(output?: number[]): number[];
@@ -278,14 +305,25 @@ declare class QuadraticBezierCurve extends Curve {
278
305
  }
279
306
 
280
307
  declare class RectangleCurve extends PloygonCurve {
281
- x: number;
282
- y: number;
283
- width: number;
284
- height: number;
308
+ readonly x: number;
309
+ readonly y: number;
310
+ readonly width: number;
311
+ readonly height: number;
285
312
  constructor(x?: number, y?: number, width?: number, height?: number);
313
+ drawTo(ctx: CanvasRenderingContext2D): this;
286
314
  fillTriangulate(options?: FillTriangulateOptions): FillTriangulateResult;
287
315
  }
288
316
 
317
+ declare class RoundRectangleCurve extends RoundCurve {
318
+ readonly x: number;
319
+ readonly y: number;
320
+ readonly width: number;
321
+ readonly height: number;
322
+ readonly radius: number;
323
+ constructor(x?: number, y?: number, width?: number, height?: number, radius?: number);
324
+ drawTo(ctx: CanvasRenderingContext2D): this;
325
+ }
326
+
289
327
  declare class SplineCurve extends Curve {
290
328
  points: Vector2[];
291
329
  constructor(points?: Vector2[]);
@@ -370,7 +408,8 @@ declare class CurvePath extends CompositeCurve {
370
408
  arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): this;
371
409
  ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
372
410
  relativeEllipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
373
- rect(x: number, y: number, w: number, h: number): this;
411
+ rect(x: number, y: number, width: number, height: number): this;
412
+ roundRect(x: number, y: number, width: number, height: number, radii: number): this;
374
413
  splineThru(points: Vector2[]): this;
375
414
  drawTo(ctx: CanvasRenderingContext2D): this;
376
415
  copy(source: CurvePath): this;
@@ -428,7 +467,8 @@ declare class Path2D extends CompositeCurve<CurvePath> {
428
467
  arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
429
468
  arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): this;
430
469
  ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
431
- rect(x: number, y: number, w: number, h: number): this;
470
+ rect(x: number, y: number, width: number, height: number): this;
471
+ roundRect(x: number, y: number, width: number, height: number, radii: number): this;
432
472
  addCommands(commands: Path2DCommand[]): this;
433
473
  addData(data: Path2DData): this;
434
474
  splineThru(points: Vector2[]): this;
@@ -436,7 +476,7 @@ declare class Path2D extends CompositeCurve<CurvePath> {
436
476
  skew(ax: number, ay?: number, target?: VectorLike): this;
437
477
  rotate(a: number, target?: VectorLike): this;
438
478
  bold(b: number): this;
439
- matrix(matrix: Matrix3): this;
479
+ applyTransform(transform: Matrix3): this;
440
480
  getMinMax(min?: Vector2, max?: Vector2, withStyle?: boolean): {
441
481
  min: Vector2;
442
482
  max: Vector2;
@@ -489,7 +529,8 @@ declare function svgPathCommandsToData(commands: Path2DCommand[]): Path2DData;
489
529
 
490
530
  declare function svgPathDataToCommands(data: Path2DData): Path2DCommand[];
491
531
 
492
- declare function parseSVGToDOM(svg: string | SVGElement): SVGElement;
493
- declare function parseSVG(svg: string | SVGElement): Path2DSet;
532
+ declare function svgToDom(svg: string | SVGElement): SVGElement;
533
+
534
+ declare function svgToPath2DSet(svg: string | SVGElement): Path2DSet;
494
535
 
495
- export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath, type DrawPointOptions, EllipseCurve, type FillRule, type FillTriangulateOptions, type FillTriangulateResult, type LineCap, LineCurve, type LineJoin, type LineStyle, Matrix3, Path2D, type Path2DCommand, type Path2DData, type Path2DDrawStyle, Path2DSet, type Path2DStyle, PloygonCurve, QuadraticBezierCurve, RectangleCurve, SplineCurve, type StrokeLinecap, type StrokeLinejoin, type StrokeTriangulateOptions, type StrokeTriangulateResult, Vector2, type VectorLike, catmullRom, cubicBezier, drawPoint, fillTriangulate, getAdaptiveCubicBezierCurvePoints, getAdaptiveQuadraticBezierCurvePoints, parseArcCommand, parsePathDataArgs, parseSVG, parseSVGToDOM, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands };
536
+ export { ArcCurve, BoundingBox, CompositeCurve, CubicBezierCurve, Curve, CurvePath, type DrawPointOptions, EllipseCurve, EquilateralPloygonCurve, type FillRule, type FillTriangulateOptions, type FillTriangulateResult, 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 StrokeTriangulateResult, Vector2, type VectorLike, catmullRom, cubicBezier, drawPoint, fillTriangulate, getAdaptiveCubicBezierCurvePoints, getAdaptiveQuadraticBezierCurvePoints, parseArcCommand, parsePathDataArgs, quadraticBezier, setCanvasContext, strokeTriangulate, svgPathCommandsAddToPath2D, svgPathCommandsToData, svgPathDataToCommands, svgToDom, svgToPath2DSet };