UNPKG

@projectstorm/geometry

Version:
38 lines 1.18 kB
import { Point } from './Point'; import _flatMap from 'lodash/flatMap'; import { BoundsCorner, createEmptyBounds } from './Bounds'; export const boundingBoxFromPoints = (points) => { if (points.length === 0) { return createEmptyBounds(); } let minX = points[0].x; let maxX = points[0].x; let minY = points[0].y; let maxY = points[0].y; for (let i = 1; i < points.length; i++) { if (points[i].x < minX) { minX = points[i].x; } if (points[i].x > maxX) { maxX = points[i].x; } if (points[i].y < minY) { minY = points[i].y; } if (points[i].y > maxY) { maxY = points[i].y; } } return { [BoundsCorner.TOP_LEFT]: new Point(minX, minY), [BoundsCorner.TOP_RIGHT]: new Point(maxX, minY), [BoundsCorner.BOTTOM_RIGHT]: new Point(maxX, maxY), [BoundsCorner.BOTTOM_LEFT]: new Point(minX, maxY) }; }; export const boundingBoxFromPolygons = (polygons) => { return boundingBoxFromPoints(_flatMap(polygons, (polygon) => { return polygon.getPoints(); })); }; //# sourceMappingURL=toolkit.js.map