const colorCode = (x, y, z) => '#' + hex(x) + hex(y) + hex(z); const renderText = (x, y, z) => `[${x}, ${y}, ${z}]`; export function pointAsColor(point) { return renderPointImpl(point, colorCode); } export function pointAsText(point) { return renderPointImpl(point, renderText); } export function renderPointImpl(point, renderer) { if (Array.isArray(point)) { const [x, y, z] = point; return renderer(x, y, z); } else { const {x, y, z} = point; return renderer(x, y, z); } } function toInt(num) { return Math.round(parseFloat(num) || 0); } const hex = v => { const r = toInt(v) % 255; let s = r.toString(16); if (s.length === 1) { s = '0' + s; } return s; };