UNPKG

piling.js

Version:

A WebGL-based Library for Visual Piling/Stacking

25 lines (22 loc) 689 B
import { pipe, withStaticProperty } from '@flekschas/utils'; const createBBox = (metadata = {}) => ({ minX = 0, minY = 0, maxX = 1, maxY = 1, ...extra } = {}) => pipe( withStaticProperty('minX', minX), withStaticProperty('minY', minY), withStaticProperty('maxX', maxX), withStaticProperty('maxY', maxY), withStaticProperty('width', maxX - minX), withStaticProperty('height', maxY - minY), withStaticProperty('cX', minX + (maxX - minX) / 2), withStaticProperty('cY', minY + (maxY - minY) / 2), ...Object.entries({ ...metadata, ...extra }).map(([key, value]) => withStaticProperty(key, value) ) )({}); export default createBBox;