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 • 2.94 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":";AAWO,SAAS,iBAAA,CAAkB,QAAA,EAAoB,WAAA,EAAqB,MAAA,EAC3E;AACI,EAAA,MAAM,SAAA,GAAY,QAAA,CAAS,YAAA,CAAa,WAAW,CAAA;AAEnD,EAAA,IAAI,CAAC,SAAA,EACL;AACI,IAAA,MAAA,CAAO,IAAA,GAAO,CAAA;AACd,IAAA,MAAA,CAAO,IAAA,GAAO,CAAA;AACd,IAAA,MAAA,CAAO,IAAA,GAAO,CAAA;AACd,IAAA,MAAA,CAAO,IAAA,GAAO,CAAA;AAEd,IAAA,OAAO,MAAA;AAAA,EACX;AAEA,EAAA,MAAM,IAAA,GAAO,UAAU,MAAA,CAAO,IAAA;AAE9B,EAAA,IAAI,IAAA,GAAO,QAAA;AACX,EAAA,IAAI,IAAA,GAAO,QAAA;AACX,EAAA,IAAI,IAAA,GAAO,CAAA,QAAA;AACX,EAAA,IAAI,IAAA,GAAO,CAAA,QAAA;AAEX,EAAA,MAAM,WAAW,IAAA,CAAK,iBAAA;AAGtB,EAAA,MAAM,MAAA,GAAA,CAAU,SAAA,CAAU,MAAA,IAAU,CAAA,IAAK,QAAA;AACzC,EAAA,MAAM,MAAA,GAAA,CAAU,SAAA,CAAU,MAAA,IAAW,CAAA,GAAI,CAAA,IAAM,QAAA;AAE/C,EAAA,KAAA,IAAS,IAAI,MAAA,EAAQ,CAAA,GAAI,IAAA,CAAK,MAAA,EAAQ,KAAK,MAAA,EAC3C;AACI,IAAA,MAAM,CAAA,GAAI,KAAK,CAAC,CAAA;AAChB,IAAA,MAAM,CAAA,GAAI,IAAA,CAAK,CAAA,GAAI,CAAC,CAAA;AAEpB,IAAA,IAAI,CAAA,GAAI,MAAK,IAAA,GAAO,CAAA;AACpB,IAAA,IAAI,CAAA,GAAI,MAAK,IAAA,GAAO,CAAA;AACpB,IAAA,IAAI,CAAA,GAAI,MAAK,IAAA,GAAO,CAAA;AACpB,IAAA,IAAI,CAAA,GAAI,MAAK,IAAA,GAAO,CAAA;AAAA,EACxB;AAEA,EAAA,MAAA,CAAO,IAAA,GAAO,IAAA;AACd,EAAA,MAAA,CAAO,IAAA,GAAO,IAAA;AACd,EAAA,MAAA,CAAO,IAAA,GAAO,IAAA;AACd,EAAA,MAAA,CAAO,IAAA,GAAO,IAAA;AAEd,EAAA,OAAO,MAAA;AACX;;;;"}