modern-path2d 0.1.17 → 0.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
@@ -113,13 +113,22 @@ declare class Vector2 {
113
113
  set(x: number, y: number): this;
114
114
  add(vec: VectorLike): this;
115
115
  sub(vec: VectorLike): this;
116
+ multiply(vec: VectorLike): this;
117
+ divide(vec: VectorLike): this;
118
+ dot(vec: VectorLike): number;
119
+ cross(vec: VectorLike): number;
120
+ rotate(a: number, target?: VectorLike): this;
116
121
  distanceTo(vec: VectorLike): number;
117
122
  distanceToSquared(vec: VectorLike): number;
123
+ lengthSquared(): number;
118
124
  length(): number;
119
- multiplyScalar(scalar: number): this;
120
- divideScalar(scalar: number): this;
121
- subVectors(a: VectorLike, b: VectorLike): this;
125
+ scale(sx: number, sy?: number, target?: VectorLike): this;
126
+ skew(ax: number, ay?: number, target?: VectorLike): this;
122
127
  normalize(): this;
128
+ addVectors(a: VectorLike, b: VectorLike): this;
129
+ subVectors(a: VectorLike, b: VectorLike): this;
130
+ multiplyVectors(a: VectorLike, b: VectorLike): this;
131
+ divideVectors(a: VectorLike, b: VectorLike): this;
123
132
  lerpVectors(v1: VectorLike, v2: VectorLike, alpha: number): this;
124
133
  equals(vec: VectorLike): boolean;
125
134
  applyMatrix3(m: Matrix3): this;
@@ -150,27 +159,30 @@ declare abstract class Curve {
150
159
  arcLengthDivisions: number;
151
160
  protected _cacheArcLengths?: number[];
152
161
  protected _needsUpdate: boolean;
162
+ isClockwise(): boolean;
153
163
  abstract getPoint(t: number, output?: Vector2): Vector2;
154
164
  getPointAt(u: number, output?: Vector2): Vector2;
155
165
  getPoints(divisions?: number): Vector2[];
166
+ abstract getControlPoints(): Vector2[];
167
+ forEachControlPoints(cb: (point: Vector2, index: number) => void): this;
156
168
  getSpacedPoints(divisions?: number): Vector2[];
157
169
  getLength(): number;
158
170
  getLengths(divisions?: number): number[];
159
171
  updateArcLengths(): void;
160
- getUtoTmapping(u: number, distance?: number): number;
172
+ getUToTMapping(u: number, distance?: number): number;
161
173
  getTangent(t: number, output?: Vector2): Vector2;
162
174
  getTangentAt(u: number, output?: Vector2): Vector2;
163
- /** overrideable */
164
- transformPoint(cb: (point: Vector2) => void): this;
165
- transform(matrix: Matrix3): this;
175
+ getNormal(t: number, output?: Vector2): Vector2;
176
+ getNormalAt(u: number, output?: Vector2): Vector2;
177
+ getTForPoint(target: VectorLike, epsilon?: number): number;
178
+ matrix(matrix: Matrix3): this;
166
179
  getMinMax(min?: Vector2, max?: Vector2): {
167
180
  min: Vector2;
168
181
  max: Vector2;
169
182
  };
170
183
  getBoundingBox(): BoundingBox;
171
- getCommands(): PathCommand[];
172
- getData(): string;
173
- /** overrideable */
184
+ toCommands(): PathCommand[];
185
+ toData(): string;
174
186
  drawTo(ctx: CanvasRenderingContext2D): this;
175
187
  copy(source: Curve): this;
176
188
  clone(): this;
@@ -183,9 +195,9 @@ declare class CircleCurve extends Curve {
183
195
  end: number;
184
196
  constructor(center: Vector2, radius: number, start?: number, end?: number);
185
197
  getPoint(t: number): Vector2;
186
- getTangent(t: number): Vector2;
187
- getNormal(t: number): Vector2;
188
- transformPoint(cb: (point: Vector2) => void): this;
198
+ getTangent(t: number, output?: Vector2): Vector2;
199
+ getNormal(t: number, output?: Vector2): Vector2;
200
+ getControlPoints(): Vector2[];
189
201
  getMinMax(min?: Vector2, max?: Vector2): {
190
202
  min: Vector2;
191
203
  max: Vector2;
@@ -199,13 +211,13 @@ declare class CubicBezierCurve extends Curve {
199
211
  end: Vector2;
200
212
  constructor(start?: Vector2, startControl?: Vector2, endControl?: Vector2, end?: Vector2);
201
213
  getPoint(t: number, output?: Vector2): Vector2;
202
- transformPoint(cb: (point: Vector2) => void): this;
214
+ getControlPoints(): Vector2[];
203
215
  protected _solveQuadratic(a: number, b: number, c: number): number[];
204
216
  getMinMax(min?: Vector2, max?: Vector2): {
205
217
  min: Vector2;
206
218
  max: Vector2;
207
219
  };
208
- getCommands(): PathCommand[];
220
+ toCommands(): PathCommand[];
209
221
  drawTo(ctx: CanvasRenderingContext2D): this;
210
222
  copy(source: CubicBezierCurve): this;
211
223
  }
@@ -219,11 +231,12 @@ declare class EllipseCurve extends Curve {
219
231
  endAngle: number;
220
232
  clockwise: boolean;
221
233
  constructor(center?: Vector2, radiusX?: number, radiusY?: number, rotation?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
234
+ isClockwise(): boolean;
222
235
  getPoint(t: number, output?: Vector2): Vector2;
223
- getCommands(): PathCommand[];
236
+ toCommands(): PathCommand[];
224
237
  drawTo(ctx: CanvasRenderingContext2D): this;
225
- transform(matrix: Matrix3): this;
226
- transformPoint(cb: (point: Vector2) => void): this;
238
+ matrix(matrix: Matrix3): this;
239
+ getControlPoints(): Vector2[];
227
240
  getMinMax(min?: Vector2, max?: Vector2): {
228
241
  min: Vector2;
229
242
  max: Vector2;
@@ -239,13 +252,12 @@ declare class LineCurve extends Curve {
239
252
  getPointAt(u: number, output?: Vector2): Vector2;
240
253
  getTangent(_t: number, output?: Vector2): Vector2;
241
254
  getTangentAt(u: number, output?: Vector2): Vector2;
242
- getNormal(t: number, output?: Vector2): Vector2;
243
- transformPoint(cb: (point: Vector2) => void): this;
255
+ getControlPoints(): Vector2[];
244
256
  getMinMax(min?: Vector2, max?: Vector2): {
245
257
  min: Vector2;
246
258
  max: Vector2;
247
259
  };
248
- getCommands(): PathCommand[];
260
+ toCommands(): PathCommand[];
249
261
  drawTo(ctx: CanvasRenderingContext2D): this;
250
262
  copy(source: LineCurve): this;
251
263
  }
@@ -262,14 +274,14 @@ declare class HeartCurve extends Curve {
262
274
  getPoint(t: number): Vector2;
263
275
  getPointAt(t: number): Vector2;
264
276
  getCurve(t: number): CircleCurve | LineCurve;
265
- getTangent(t: number): Vector2;
266
- getNormal(t: number): Vector2;
267
- transformPoint(cb: (point: Vector2) => void): this;
277
+ getTangent(t: number, output?: Vector2): Vector2;
278
+ getNormal(t: number, output?: Vector2): Vector2;
279
+ getControlPoints(): Vector2[];
268
280
  getMinMax(min?: Vector2, max?: Vector2): {
269
281
  min: Vector2;
270
282
  max: Vector2;
271
283
  };
272
- getCommands(): PathCommand[];
284
+ toCommands(): PathCommand[];
273
285
  drawTo(ctx: CanvasRenderingContext2D): this;
274
286
  }
275
287
 
@@ -289,12 +301,12 @@ declare class PloygonCurve extends Curve {
289
301
  getPointAt(u: number, output?: Vector2): Vector2;
290
302
  getTangent(t: number, output?: Vector2): Vector2;
291
303
  getNormal(t: number, output?: Vector2): Vector2;
292
- transformPoint(cb: (point: Vector2) => void): this;
304
+ getControlPoints(): Vector2[];
293
305
  getMinMax(min?: Vector2, max?: Vector2): {
294
306
  min: Vector2;
295
307
  max: Vector2;
296
308
  };
297
- getCommands(): PathCommand[];
309
+ toCommands(): PathCommand[];
298
310
  drawTo(ctx: CanvasRenderingContext2D): this;
299
311
  }
300
312
 
@@ -304,12 +316,12 @@ declare class QuadraticBezierCurve extends Curve {
304
316
  end: Vector2;
305
317
  constructor(start?: Vector2, control?: Vector2, end?: Vector2);
306
318
  getPoint(t: number, output?: Vector2): Vector2;
307
- transformPoint(cb: (point: Vector2) => void): this;
319
+ getControlPoints(): Vector2[];
308
320
  getMinMax(min?: Vector2, max?: Vector2): {
309
321
  min: Vector2;
310
322
  max: Vector2;
311
323
  };
312
- getCommands(): PathCommand[];
324
+ toCommands(): PathCommand[];
313
325
  drawTo(ctx: CanvasRenderingContext2D): this;
314
326
  copy(source: QuadraticBezierCurve): this;
315
327
  }
@@ -333,12 +345,12 @@ declare class RectangularCurve extends Curve {
333
345
  getPointAt(u: number, output?: Vector2): Vector2;
334
346
  getTangent(t: number, output?: Vector2): Vector2;
335
347
  getNormal(t: number, output?: Vector2): Vector2;
336
- transformPoint(cb: (point: Vector2) => void): this;
348
+ getControlPoints(): Vector2[];
337
349
  getMinMax(min?: Vector2, max?: Vector2): {
338
350
  min: Vector2;
339
351
  max: Vector2;
340
352
  };
341
- getCommands(): PathCommand[];
353
+ toCommands(): PathCommand[];
342
354
  drawTo(ctx: CanvasRenderingContext2D): this;
343
355
  }
344
356
 
@@ -346,7 +358,7 @@ declare class SplineCurve extends Curve {
346
358
  points: Vector2[];
347
359
  constructor(points?: Vector2[]);
348
360
  getPoint(t: number, output?: Vector2): Vector2;
349
- transformPoint(cb: (point: Vector2) => void): this;
361
+ getControlPoints(): Vector2[];
350
362
  copy(source: SplineCurve): this;
351
363
  }
352
364
 
@@ -362,6 +374,7 @@ declare class CurvePath extends Curve {
362
374
  addCommands(commands: PathCommand[]): this;
363
375
  addData(data: string): this;
364
376
  getPoint(t: number, output?: Vector2): Vector2;
377
+ getControlPoints(): Vector2[];
365
378
  getLength(): number;
366
379
  updateArcLengths(): void;
367
380
  getCurveLengths(): number[];
@@ -380,13 +393,12 @@ declare class CurvePath extends Curve {
380
393
  relativeEllipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
381
394
  rect(x: number, y: number, w: number, h: number): this;
382
395
  splineThru(points: Vector2[]): this;
383
- transformPoint(cb: (point: Vector2) => void): this;
384
396
  getMinMax(min?: Vector2, max?: Vector2): {
385
397
  min: Vector2;
386
398
  max: Vector2;
387
399
  };
388
400
  getBoundingBox(): BoundingBox;
389
- getCommands(): PathCommand[];
401
+ toCommands(): PathCommand[];
390
402
  drawTo(ctx: CanvasRenderingContext2D): this;
391
403
  copy(source: CurvePath): this;
392
404
  }
@@ -415,23 +427,30 @@ declare class Path2D {
415
427
  addCommands(commands: PathCommand[]): this;
416
428
  addData(data: string): this;
417
429
  splineThru(points: Vector2[]): this;
418
- forEachCurve(cb: (curve: Curve) => void): this;
419
- transformPoint(cb: (point: Vector2) => void): this;
420
- transform(matrix: Matrix3): this;
430
+ getControlPoints(): Vector2[];
431
+ getCurves(): Curve[];
432
+ scale(sx: number, sy?: number, target?: VectorLike): this;
433
+ skew(ax: number, ay?: number, target?: VectorLike): this;
434
+ rotate(a: number, target?: VectorLike): this;
435
+ bold(b: number): this;
436
+ matrix(matrix: Matrix3): this;
421
437
  getMinMax(min?: Vector2, max?: Vector2, withStyle?: boolean): {
422
438
  min: Vector2;
423
439
  max: Vector2;
424
440
  };
425
441
  getBoundingBox(withStyle?: boolean): BoundingBox;
426
- getCommands(): PathCommand[];
427
- getData(): string;
428
- getSvgPathXml(): string;
429
- getSvgXml(): string;
430
- getSvgDataUri(): string;
431
- drawTo(ctx: CanvasRenderingContext2D, style?: Partial<PathStyle>): void;
432
- copy(source: Path2D): this;
442
+ drawTo(ctx: CanvasRenderingContext2D, style?: Partial<PathStyle>): this;
443
+ drawControlPointsTo(ctx: CanvasRenderingContext2D, style?: Partial<PathStyle>): this;
444
+ toCommands(): PathCommand[];
445
+ toData(): string;
446
+ toSvgPathString(): string;
447
+ toSvgString(): string;
448
+ toSvgUrl(): string;
433
449
  toSvg(): SVGElement;
434
- toCanvas(pixelRatio?: number): HTMLCanvasElement;
450
+ toCanvas(options?: Partial<PathStyle & {
451
+ pixelRatio: number;
452
+ }>): HTMLCanvasElement;
453
+ copy(source: Path2D): this;
435
454
  clone(): this;
436
455
  }
437
456
 
package/dist/index.d.mts CHANGED
@@ -113,13 +113,22 @@ declare class Vector2 {
113
113
  set(x: number, y: number): this;
114
114
  add(vec: VectorLike): this;
115
115
  sub(vec: VectorLike): this;
116
+ multiply(vec: VectorLike): this;
117
+ divide(vec: VectorLike): this;
118
+ dot(vec: VectorLike): number;
119
+ cross(vec: VectorLike): number;
120
+ rotate(a: number, target?: VectorLike): this;
116
121
  distanceTo(vec: VectorLike): number;
117
122
  distanceToSquared(vec: VectorLike): number;
123
+ lengthSquared(): number;
118
124
  length(): number;
119
- multiplyScalar(scalar: number): this;
120
- divideScalar(scalar: number): this;
121
- subVectors(a: VectorLike, b: VectorLike): this;
125
+ scale(sx: number, sy?: number, target?: VectorLike): this;
126
+ skew(ax: number, ay?: number, target?: VectorLike): this;
122
127
  normalize(): this;
128
+ addVectors(a: VectorLike, b: VectorLike): this;
129
+ subVectors(a: VectorLike, b: VectorLike): this;
130
+ multiplyVectors(a: VectorLike, b: VectorLike): this;
131
+ divideVectors(a: VectorLike, b: VectorLike): this;
123
132
  lerpVectors(v1: VectorLike, v2: VectorLike, alpha: number): this;
124
133
  equals(vec: VectorLike): boolean;
125
134
  applyMatrix3(m: Matrix3): this;
@@ -150,27 +159,30 @@ declare abstract class Curve {
150
159
  arcLengthDivisions: number;
151
160
  protected _cacheArcLengths?: number[];
152
161
  protected _needsUpdate: boolean;
162
+ isClockwise(): boolean;
153
163
  abstract getPoint(t: number, output?: Vector2): Vector2;
154
164
  getPointAt(u: number, output?: Vector2): Vector2;
155
165
  getPoints(divisions?: number): Vector2[];
166
+ abstract getControlPoints(): Vector2[];
167
+ forEachControlPoints(cb: (point: Vector2, index: number) => void): this;
156
168
  getSpacedPoints(divisions?: number): Vector2[];
157
169
  getLength(): number;
158
170
  getLengths(divisions?: number): number[];
159
171
  updateArcLengths(): void;
160
- getUtoTmapping(u: number, distance?: number): number;
172
+ getUToTMapping(u: number, distance?: number): number;
161
173
  getTangent(t: number, output?: Vector2): Vector2;
162
174
  getTangentAt(u: number, output?: Vector2): Vector2;
163
- /** overrideable */
164
- transformPoint(cb: (point: Vector2) => void): this;
165
- transform(matrix: Matrix3): this;
175
+ getNormal(t: number, output?: Vector2): Vector2;
176
+ getNormalAt(u: number, output?: Vector2): Vector2;
177
+ getTForPoint(target: VectorLike, epsilon?: number): number;
178
+ matrix(matrix: Matrix3): this;
166
179
  getMinMax(min?: Vector2, max?: Vector2): {
167
180
  min: Vector2;
168
181
  max: Vector2;
169
182
  };
170
183
  getBoundingBox(): BoundingBox;
171
- getCommands(): PathCommand[];
172
- getData(): string;
173
- /** overrideable */
184
+ toCommands(): PathCommand[];
185
+ toData(): string;
174
186
  drawTo(ctx: CanvasRenderingContext2D): this;
175
187
  copy(source: Curve): this;
176
188
  clone(): this;
@@ -183,9 +195,9 @@ declare class CircleCurve extends Curve {
183
195
  end: number;
184
196
  constructor(center: Vector2, radius: number, start?: number, end?: number);
185
197
  getPoint(t: number): Vector2;
186
- getTangent(t: number): Vector2;
187
- getNormal(t: number): Vector2;
188
- transformPoint(cb: (point: Vector2) => void): this;
198
+ getTangent(t: number, output?: Vector2): Vector2;
199
+ getNormal(t: number, output?: Vector2): Vector2;
200
+ getControlPoints(): Vector2[];
189
201
  getMinMax(min?: Vector2, max?: Vector2): {
190
202
  min: Vector2;
191
203
  max: Vector2;
@@ -199,13 +211,13 @@ declare class CubicBezierCurve extends Curve {
199
211
  end: Vector2;
200
212
  constructor(start?: Vector2, startControl?: Vector2, endControl?: Vector2, end?: Vector2);
201
213
  getPoint(t: number, output?: Vector2): Vector2;
202
- transformPoint(cb: (point: Vector2) => void): this;
214
+ getControlPoints(): Vector2[];
203
215
  protected _solveQuadratic(a: number, b: number, c: number): number[];
204
216
  getMinMax(min?: Vector2, max?: Vector2): {
205
217
  min: Vector2;
206
218
  max: Vector2;
207
219
  };
208
- getCommands(): PathCommand[];
220
+ toCommands(): PathCommand[];
209
221
  drawTo(ctx: CanvasRenderingContext2D): this;
210
222
  copy(source: CubicBezierCurve): this;
211
223
  }
@@ -219,11 +231,12 @@ declare class EllipseCurve extends Curve {
219
231
  endAngle: number;
220
232
  clockwise: boolean;
221
233
  constructor(center?: Vector2, radiusX?: number, radiusY?: number, rotation?: number, startAngle?: number, endAngle?: number, clockwise?: boolean);
234
+ isClockwise(): boolean;
222
235
  getPoint(t: number, output?: Vector2): Vector2;
223
- getCommands(): PathCommand[];
236
+ toCommands(): PathCommand[];
224
237
  drawTo(ctx: CanvasRenderingContext2D): this;
225
- transform(matrix: Matrix3): this;
226
- transformPoint(cb: (point: Vector2) => void): this;
238
+ matrix(matrix: Matrix3): this;
239
+ getControlPoints(): Vector2[];
227
240
  getMinMax(min?: Vector2, max?: Vector2): {
228
241
  min: Vector2;
229
242
  max: Vector2;
@@ -239,13 +252,12 @@ declare class LineCurve extends Curve {
239
252
  getPointAt(u: number, output?: Vector2): Vector2;
240
253
  getTangent(_t: number, output?: Vector2): Vector2;
241
254
  getTangentAt(u: number, output?: Vector2): Vector2;
242
- getNormal(t: number, output?: Vector2): Vector2;
243
- transformPoint(cb: (point: Vector2) => void): this;
255
+ getControlPoints(): Vector2[];
244
256
  getMinMax(min?: Vector2, max?: Vector2): {
245
257
  min: Vector2;
246
258
  max: Vector2;
247
259
  };
248
- getCommands(): PathCommand[];
260
+ toCommands(): PathCommand[];
249
261
  drawTo(ctx: CanvasRenderingContext2D): this;
250
262
  copy(source: LineCurve): this;
251
263
  }
@@ -262,14 +274,14 @@ declare class HeartCurve extends Curve {
262
274
  getPoint(t: number): Vector2;
263
275
  getPointAt(t: number): Vector2;
264
276
  getCurve(t: number): CircleCurve | LineCurve;
265
- getTangent(t: number): Vector2;
266
- getNormal(t: number): Vector2;
267
- transformPoint(cb: (point: Vector2) => void): this;
277
+ getTangent(t: number, output?: Vector2): Vector2;
278
+ getNormal(t: number, output?: Vector2): Vector2;
279
+ getControlPoints(): Vector2[];
268
280
  getMinMax(min?: Vector2, max?: Vector2): {
269
281
  min: Vector2;
270
282
  max: Vector2;
271
283
  };
272
- getCommands(): PathCommand[];
284
+ toCommands(): PathCommand[];
273
285
  drawTo(ctx: CanvasRenderingContext2D): this;
274
286
  }
275
287
 
@@ -289,12 +301,12 @@ declare class PloygonCurve extends Curve {
289
301
  getPointAt(u: number, output?: Vector2): Vector2;
290
302
  getTangent(t: number, output?: Vector2): Vector2;
291
303
  getNormal(t: number, output?: Vector2): Vector2;
292
- transformPoint(cb: (point: Vector2) => void): this;
304
+ getControlPoints(): Vector2[];
293
305
  getMinMax(min?: Vector2, max?: Vector2): {
294
306
  min: Vector2;
295
307
  max: Vector2;
296
308
  };
297
- getCommands(): PathCommand[];
309
+ toCommands(): PathCommand[];
298
310
  drawTo(ctx: CanvasRenderingContext2D): this;
299
311
  }
300
312
 
@@ -304,12 +316,12 @@ declare class QuadraticBezierCurve extends Curve {
304
316
  end: Vector2;
305
317
  constructor(start?: Vector2, control?: Vector2, end?: Vector2);
306
318
  getPoint(t: number, output?: Vector2): Vector2;
307
- transformPoint(cb: (point: Vector2) => void): this;
319
+ getControlPoints(): Vector2[];
308
320
  getMinMax(min?: Vector2, max?: Vector2): {
309
321
  min: Vector2;
310
322
  max: Vector2;
311
323
  };
312
- getCommands(): PathCommand[];
324
+ toCommands(): PathCommand[];
313
325
  drawTo(ctx: CanvasRenderingContext2D): this;
314
326
  copy(source: QuadraticBezierCurve): this;
315
327
  }
@@ -333,12 +345,12 @@ declare class RectangularCurve extends Curve {
333
345
  getPointAt(u: number, output?: Vector2): Vector2;
334
346
  getTangent(t: number, output?: Vector2): Vector2;
335
347
  getNormal(t: number, output?: Vector2): Vector2;
336
- transformPoint(cb: (point: Vector2) => void): this;
348
+ getControlPoints(): Vector2[];
337
349
  getMinMax(min?: Vector2, max?: Vector2): {
338
350
  min: Vector2;
339
351
  max: Vector2;
340
352
  };
341
- getCommands(): PathCommand[];
353
+ toCommands(): PathCommand[];
342
354
  drawTo(ctx: CanvasRenderingContext2D): this;
343
355
  }
344
356
 
@@ -346,7 +358,7 @@ declare class SplineCurve extends Curve {
346
358
  points: Vector2[];
347
359
  constructor(points?: Vector2[]);
348
360
  getPoint(t: number, output?: Vector2): Vector2;
349
- transformPoint(cb: (point: Vector2) => void): this;
361
+ getControlPoints(): Vector2[];
350
362
  copy(source: SplineCurve): this;
351
363
  }
352
364
 
@@ -362,6 +374,7 @@ declare class CurvePath extends Curve {
362
374
  addCommands(commands: PathCommand[]): this;
363
375
  addData(data: string): this;
364
376
  getPoint(t: number, output?: Vector2): Vector2;
377
+ getControlPoints(): Vector2[];
365
378
  getLength(): number;
366
379
  updateArcLengths(): void;
367
380
  getCurveLengths(): number[];
@@ -380,13 +393,12 @@ declare class CurvePath extends Curve {
380
393
  relativeEllipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
381
394
  rect(x: number, y: number, w: number, h: number): this;
382
395
  splineThru(points: Vector2[]): this;
383
- transformPoint(cb: (point: Vector2) => void): this;
384
396
  getMinMax(min?: Vector2, max?: Vector2): {
385
397
  min: Vector2;
386
398
  max: Vector2;
387
399
  };
388
400
  getBoundingBox(): BoundingBox;
389
- getCommands(): PathCommand[];
401
+ toCommands(): PathCommand[];
390
402
  drawTo(ctx: CanvasRenderingContext2D): this;
391
403
  copy(source: CurvePath): this;
392
404
  }
@@ -415,23 +427,30 @@ declare class Path2D {
415
427
  addCommands(commands: PathCommand[]): this;
416
428
  addData(data: string): this;
417
429
  splineThru(points: Vector2[]): this;
418
- forEachCurve(cb: (curve: Curve) => void): this;
419
- transformPoint(cb: (point: Vector2) => void): this;
420
- transform(matrix: Matrix3): this;
430
+ getControlPoints(): Vector2[];
431
+ getCurves(): Curve[];
432
+ scale(sx: number, sy?: number, target?: VectorLike): this;
433
+ skew(ax: number, ay?: number, target?: VectorLike): this;
434
+ rotate(a: number, target?: VectorLike): this;
435
+ bold(b: number): this;
436
+ matrix(matrix: Matrix3): this;
421
437
  getMinMax(min?: Vector2, max?: Vector2, withStyle?: boolean): {
422
438
  min: Vector2;
423
439
  max: Vector2;
424
440
  };
425
441
  getBoundingBox(withStyle?: boolean): BoundingBox;
426
- getCommands(): PathCommand[];
427
- getData(): string;
428
- getSvgPathXml(): string;
429
- getSvgXml(): string;
430
- getSvgDataUri(): string;
431
- drawTo(ctx: CanvasRenderingContext2D, style?: Partial<PathStyle>): void;
432
- copy(source: Path2D): this;
442
+ drawTo(ctx: CanvasRenderingContext2D, style?: Partial<PathStyle>): this;
443
+ drawControlPointsTo(ctx: CanvasRenderingContext2D, style?: Partial<PathStyle>): this;
444
+ toCommands(): PathCommand[];
445
+ toData(): string;
446
+ toSvgPathString(): string;
447
+ toSvgString(): string;
448
+ toSvgUrl(): string;
433
449
  toSvg(): SVGElement;
434
- toCanvas(pixelRatio?: number): HTMLCanvasElement;
450
+ toCanvas(options?: Partial<PathStyle & {
451
+ pixelRatio: number;
452
+ }>): HTMLCanvasElement;
453
+ copy(source: Path2D): this;
435
454
  clone(): this;
436
455
  }
437
456