@thi.ng/geom
Version:
Functional, polymorphic API for 2D geometry types & SVG generation
36 lines (35 loc) • 654 B
JavaScript
const __remapBuffer = (buf, pts, start, cstride, estride) => {
for (let i = pts.length; i-- > 0; ) {
const p = pts[i];
p.buf = buf;
p.offset = start + i * estride;
p.stride = cstride;
}
return buf;
};
const __collateWith = (fn, pts, opts, stride) => {
opts = {
start: 0,
cstride: 1,
estride: stride,
...opts
};
const { start, cstride, estride } = opts;
return __remapBuffer(
fn(
opts.buf || new Array(start + pts.length * estride).fill(0),
pts,
start,
cstride,
estride
),
pts,
start,
cstride,
estride
);
};
export {
__collateWith,
__remapBuffer
};