From a8fc17e453ad5a0d994626e9341241912578b7e0 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Sun, 16 Jan 2022 17:33:48 +0100 Subject: [PATCH] fix(plugin-bartack): Small fixes in fractional bartack --- packages/plugin-bartack/src/bartack.js | 21 +++++++++++++-------- packages/plugin-bartack/src/index.js | 8 ++++++++ 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/packages/plugin-bartack/src/bartack.js b/packages/plugin-bartack/src/bartack.js index 97617447c15..9a1ba67b795 100644 --- a/packages/plugin-bartack/src/bartack.js +++ b/packages/plugin-bartack/src/bartack.js @@ -34,6 +34,7 @@ const getPoints = (path, so) => { points.path2.push(path2.shiftFractionAlong((1 / steps) * i)) } +console.log(points, path.length(), path) return points } @@ -70,17 +71,21 @@ export default function bartack(so, self) { // Along path let start = false let end = false - if (so.bartackAlong) { - if (so.start > 0) start = so.path.shiftAlong(so.start) - end = so.path.shiftAlong(so.end) - } else if (so.bartackFractionAlong) { + if (so.bartackAlong) guide = so.path.clone() + else if (so.bartackFractionAlong) { + if (so.start === so.end) return null + if (so.start > so.end) { + const newEnd = so.start + so.start = so.end + so.end = newEnd + } if (so.start > 0) start = so.path.shiftFractionAlong(so.start) if (so.end < 1) end = so.path.shiftFractionAlong(so.end) + if (start && end) guide = so.path.split(start).pop().split(end).shift() + else if (start) guide = so.path.split(start).pop() + else if (end) guide = so.path.split(end).shift() + else guide = so.path.clone() } - if (start && end) guide = so.path.split(start).pop().split(end).shift() - else if (start) guide = so.path.split(start).pop() - else if (end) guide = so.path.split(end).shift() - else guide = so.path.clone() } self.paths[name('bartack', so)] = bartackPath(guide, so, self).attr('class', 'stroke-sm stroke-mark') diff --git a/packages/plugin-bartack/src/index.js b/packages/plugin-bartack/src/index.js index e18fd985623..85093970546 100644 --- a/packages/plugin-bartack/src/index.js +++ b/packages/plugin-bartack/src/index.js @@ -14,12 +14,20 @@ export default { }, bartackAlong: function (so) { const self = this + so.bartackFractionAlong = false so.bartackAlong = true + so.anchor = false + so.from = false + so.to = false return bartack(so, self) }, bartackFractionAlong: function (so) { const self = this so.bartackFractionAlong = true + so.bartackAlong = false + so.anchor = false + so.from = false + so.to = false return bartack(so, self) }, },