hexagonBorder = {
const w = borderWidth / radius;
const v =
borderAlign === "inner" ? 1 : borderAlign === "outer" ? 1 + w : 1 + w / 2;
const vI = v - w;
const h = v / 2;
const hI = h - w / 2;
const x = Math.sqrt(v ** 2 - h ** 2);
const xI = Math.sqrt(vI ** 2 - hI ** 2);
const top = [0, v];
const topInner = [0, vI];
const rightTop = [x, h];
const rightTopInner = [xI, hI];
const rightBottom = [x, -h];
const rightBottomInner = [xI, -hI];
const bottom = [0, -v];
const bottomInner = [0, -vI];
const leftBottom = [-x, -h];
const leftBottomInner = [-xI, -hI];
const leftTop = [-x, h];
const leftTopInner = [-xI, hI];
yield candygraph.createDataset(
cg,
[
...top, ...rightTopInner, ...topInner,
...top, ...rightTop, ...rightTopInner,
...rightTop, ...rightBottomInner, ...rightTopInner,
...rightTop, ...rightBottom, ...rightBottomInner,
...rightBottom, ...bottomInner, ...rightBottomInner,
...rightBottom, ...bottom, ...bottomInner,
...bottom, ...leftBottomInner, ...bottomInner,
...bottom, ...leftBottom, ...leftBottomInner,
...leftBottom, ...leftTopInner, ...leftBottomInner,
...leftBottom, ...leftTop, ...leftTopInner,
...leftTop, ...topInner, ...leftTopInner,
...leftTop, ...top, ...topInner,
]
);
}