Skip to content

Commit 1820546

Browse files
committed
Changes:
* improve getTotalLength, getPathBBox, transformPath and other related tools #44 * update tests to fully cover arcTools * update some JSDocs * code cleanup * version bump
1 parent 308fb9e commit 1820546

25 files changed

+1053
-813
lines changed

dist/svg-path-commander.cjs

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

dist/svg-path-commander.cjs.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/svg-path-commander.d.ts

Lines changed: 26 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -444,10 +444,7 @@ export type LineCoordinates = [
444444
export type DeriveCallback = (t: number) => Point;
445445
export type IteratorCallback = (segment: PathSegment, index: number, lastX: number, lastY: number) => PathSegment | false | void | undefined;
446446
declare const arcLength: (rx: number, ry: number, theta: number) => number;
447-
declare const arcPoint: (cx: number, cy: number, rx: number, ry: number, alpha: number, theta: number) => {
448-
x: number;
449-
y: number;
450-
};
447+
declare const arcPoint: (cx: number, cy: number, rx: number, ry: number, alpha: number, theta: number) => PointTuple;
451448
declare const angleBetween: (v0: Point, v1: Point) => number;
452449
declare const getArcProps: (x1: number, y1: number, RX: number, RY: number, angle: number, LAF: number, SF: number, x: number, y: number) => {
453450
rx: number;
@@ -464,16 +461,12 @@ declare const getPointAtArcLength: (x1: number, y1: number, RX: number, RY: numb
464461
x: number;
465462
y: number;
466463
};
467-
declare const getArcBBox: (x1: number, y1: number, RX: number, RY: number, angle: number, LAF: number, SF: number, x: number, y: number) => {
468-
min: {
469-
x: number;
470-
y: number;
471-
};
472-
max: {
473-
x: number;
474-
y: number;
475-
};
476-
};
464+
declare const getArcBBox: (x1: number, y1: number, RX: number, RY: number, angle: number, LAF: number, SF: number, x: number, y: number) => [
465+
number,
466+
number,
467+
number,
468+
number
469+
];
477470
declare class PathParser {
478471
segments: PathArray | PathSegment[];
479472
pathValue: string;
@@ -525,16 +518,12 @@ declare class SVGPathCommander {
525518
};
526519
static cubicTools: {
527520
getCubicLength: (x1: number, y1: number, c1x: number, c1y: number, c2x: number, c2y: number, x2: number, y2: number) => number;
528-
getCubicBBox: (x1: number, y1: number, c1x: number, c1y: number, c2x: number, c2y: number, x2: number, y2: number) => {
529-
min: {
530-
x: number;
531-
y: number;
532-
};
533-
max: {
534-
x: number;
535-
y: number;
536-
};
537-
};
521+
getCubicBBox: (x1: number, y1: number, c1x: number, c1y: number, c2x: number, c2y: number, x2: number, y2: number) => [
522+
number,
523+
number,
524+
number,
525+
number
526+
];
538527
getPointAtCubicLength: (x1: number, y1: number, c1x: number, c1y: number, c2x: number, c2y: number, x2: number, y2: number, distance?: number) => {
539528
x: number;
540529
y: number;
@@ -549,16 +538,12 @@ declare class SVGPathCommander {
549538
x: number;
550539
y: number;
551540
};
552-
getLineBBox: (x1: number, y1: number, x2: number, y2: number) => {
553-
min: {
554-
x: number;
555-
y: number;
556-
};
557-
max: {
558-
x: number;
559-
y: number;
560-
};
561-
};
541+
getLineBBox: (x1: number, y1: number, x2: number, y2: number) => [
542+
number,
543+
number,
544+
number,
545+
number
546+
];
562547
getLineLength: (x1: number, y1: number, x2: number, y2: number) => number;
563548
};
564549
static quadTools: {
@@ -567,16 +552,12 @@ declare class SVGPathCommander {
567552
y: number;
568553
};
569554
getQuadLength: (x1: number, y1: number, cx: number, cy: number, x2: number, y2: number) => number;
570-
getQuadBBox: (x1: number, y1: number, cx: number, cy: number, x2: number, y2: number) => {
571-
min: {
572-
x: number;
573-
y: number;
574-
};
575-
max: {
576-
x: number;
577-
y: number;
578-
};
579-
};
555+
getQuadBBox: (x1: number, y1: number, cx: number, cy: number, x2: number, y2: number) => [
556+
number,
557+
number,
558+
number,
559+
number
560+
];
580561
getPointAtQuadLength: (x1: number, y1: number, cx: number, cy: number, x2: number, y2: number, distance?: number) => {
581562
x: number;
582563
y: number;
@@ -679,7 +660,7 @@ declare class SVGPathCommander {
679660
static lineToCubic: (x1: number, y1: number, x2: number, y2: number) => number[];
680661
static normalizePath: (pathInput: string | PathArray) => NormalArray;
681662
static normalizeSegment: (segment: PathSegment, params: ParserParams) => NormalSegment;
682-
static optimizePath: (pathInput: PathArray, roundOption: number) => PathArray;
663+
static optimizePath: (pathInput: PathArray, roundOption?: number) => PathArray;
683664
static projection2d: (m: CSSMatrix$1, point2D: PointTuple, origin: [
684665
number,
685666
number,

dist/svg-path-commander.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/svg-path-commander.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)