fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
30 lines (26 loc) • 709 B
text/typescript
import type { XY } from '../../Point';
import type { TBBox } from '../../typedefs';
/**
* Calculates bounding box (left, top, width, height) from given `points`
* @param {XY[]} points
* @return {Object} Object with left, top, width, height properties
*/
export const makeBoundingBoxFromPoints = (points: XY[]): TBBox => {
let left = 0,
top = 0,
width = 0,
height = 0;
for (let i = 0, len = points.length; i < len; i++) {
const { x, y } = points[i];
if (x > width || !i) width = x;
if (x < left || !i) left = x;
if (y > height || !i) height = y;
if (y < top || !i) top = y;
}
return {
left,
top,
width: width - left,
height: height - top,
};
};