pixi.js
Version:
<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">
1 lines • 3.11 kB
Source Map (JSON)
{"version":3,"file":"getGeometryBounds.mjs","sources":["../../../../../../src/rendering/renderers/shared/geometry/utils/getGeometryBounds.ts"],"sourcesContent":["import type { Bounds } from '../../../../../scene/container/bounds/Bounds';\nimport type { Geometry } from '../Geometry';\n\n/**\n * Gets the 2D bounds of a geometry, based on a specific attribute.\n * @param geometry - Geometry to to measure\n * @param attributeId - AttributeId that contains the x,y data\n * @param bounds - Bounds to store the result in\n * @returns the bounds\n * @internal\n */\nexport function getGeometryBounds(geometry: Geometry, attributeId: string, bounds: Bounds): Bounds\n{\n const attribute = geometry.getAttribute(attributeId);\n\n if (!attribute)\n {\n bounds.minX = 0;\n bounds.minY = 0;\n bounds.maxX = 0;\n bounds.maxY = 0;\n\n return bounds;\n }\n\n const data = attribute.buffer.data as Float32Array;\n\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n\n const byteSize = data.BYTES_PER_ELEMENT;\n\n // stride and offset MAY have not been calculated yet.. so go with assumed defaults\n const offset = (attribute.offset || 0) / byteSize;\n const stride = (attribute.stride || (2 * 4)) / byteSize;\n\n for (let i = offset; i < data.length; i += stride)\n {\n const x = data[i];\n const y = data[i + 1];\n\n if (x > maxX)maxX = x;\n if (y > maxY)maxY = y;\n if (x < minX)minX = x;\n if (y < minY)minY = y;\n }\n\n bounds.minX = minX;\n bounds.minY = minY;\n bounds.maxX = maxX;\n bounds.maxY = maxY;\n\n return bounds;\n}\n"],"names":[],"mappings":";AAWgB,SAAA,iBAAA,CAAkB,QAAoB,EAAA,WAAA,EAAqB,MAC3E,EAAA;AACI,EAAM,MAAA,SAAA,GAAY,QAAS,CAAA,YAAA,CAAa,WAAW,CAAA,CAAA;AAEnD,EAAA,IAAI,CAAC,SACL,EAAA;AACI,IAAA,MAAA,CAAO,IAAO,GAAA,CAAA,CAAA;AACd,IAAA,MAAA,CAAO,IAAO,GAAA,CAAA,CAAA;AACd,IAAA,MAAA,CAAO,IAAO,GAAA,CAAA,CAAA;AACd,IAAA,MAAA,CAAO,IAAO,GAAA,CAAA,CAAA;AAEd,IAAO,OAAA,MAAA,CAAA;AAAA,GACX;AAEA,EAAM,MAAA,IAAA,GAAO,UAAU,MAAO,CAAA,IAAA,CAAA;AAE9B,EAAA,IAAI,IAAO,GAAA,QAAA,CAAA;AACX,EAAA,IAAI,IAAO,GAAA,QAAA,CAAA;AACX,EAAA,IAAI,IAAO,GAAA,CAAA,QAAA,CAAA;AACX,EAAA,IAAI,IAAO,GAAA,CAAA,QAAA,CAAA;AAEX,EAAA,MAAM,WAAW,IAAK,CAAA,iBAAA,CAAA;AAGtB,EAAM,MAAA,MAAA,GAAA,CAAU,SAAU,CAAA,MAAA,IAAU,CAAK,IAAA,QAAA,CAAA;AACzC,EAAA,MAAM,MAAU,GAAA,CAAA,SAAA,CAAU,MAAW,IAAA,CAAA,GAAI,CAAM,IAAA,QAAA,CAAA;AAE/C,EAAA,KAAA,IAAS,IAAI,MAAQ,EAAA,CAAA,GAAI,IAAK,CAAA,MAAA,EAAQ,KAAK,MAC3C,EAAA;AACI,IAAM,MAAA,CAAA,GAAI,KAAK,CAAC,CAAA,CAAA;AAChB,IAAM,MAAA,CAAA,GAAI,IAAK,CAAA,CAAA,GAAI,CAAC,CAAA,CAAA;AAEpB,IAAA,IAAI,CAAI,GAAA,IAAA;AAAK,MAAO,IAAA,GAAA,CAAA,CAAA;AACpB,IAAA,IAAI,CAAI,GAAA,IAAA;AAAK,MAAO,IAAA,GAAA,CAAA,CAAA;AACpB,IAAA,IAAI,CAAI,GAAA,IAAA;AAAK,MAAO,IAAA,GAAA,CAAA,CAAA;AACpB,IAAA,IAAI,CAAI,GAAA,IAAA;AAAK,MAAO,IAAA,GAAA,CAAA,CAAA;AAAA,GACxB;AAEA,EAAA,MAAA,CAAO,IAAO,GAAA,IAAA,CAAA;AACd,EAAA,MAAA,CAAO,IAAO,GAAA,IAAA,CAAA;AACd,EAAA,MAAA,CAAO,IAAO,GAAA,IAAA,CAAA;AACd,EAAA,MAAA,CAAO,IAAO,GAAA,IAAA,CAAA;AAEd,EAAO,OAAA,MAAA,CAAA;AACX;;;;"}