Files
nothoughts/node_modules/pixi.js/lib/scene/container/bounds/getFastGlobalBounds.mjs.map
2025-08-04 18:57:35 +02:00

1 line
5.7 KiB
Plaintext

{"version":3,"file":"getFastGlobalBounds.mjs","sources":["../../../../src/scene/container/bounds/getFastGlobalBounds.ts"],"sourcesContent":["import { Matrix } from '../../../maths/matrix/Matrix';\nimport { boundsPool } from './utils/matrixAndBoundsPool';\n\nimport type { Renderable } from '../../../rendering/renderers/shared/Renderable';\nimport type { Container } from '../Container';\nimport type { Bounds } from './Bounds';\n\n// TODO could we cache local bounds on the render groups?\n\nconst tempMatrix = new Matrix();\n\n/**\n * Does exactly the same as getGlobalBounds, but does instead makes use of transforming AABBs\n * of the various children within the scene graph. This is much faster, but less accurate.\n *\n * the result will never be smaller - only ever slightly larger (in most cases, it will be the same).\n * @param target - The target container to get the bounds from\n * @param bounds - The output bounds object.\n * @returns The bounds.\n */\nexport function getFastGlobalBounds(target: Container, bounds: Bounds): Bounds\n{\n bounds.clear();\n\n _getGlobalBoundsRecursive(target, bounds);\n\n if (!bounds.isValid)\n {\n bounds.set(0, 0, 0, 0);\n }\n\n if (!target.renderGroup)\n {\n bounds.applyMatrix(target.parentRenderGroup.worldTransform);\n }\n else\n {\n bounds.applyMatrix(target.renderGroup.localTransform);\n }\n\n return bounds;\n}\n\nexport function _getGlobalBoundsRecursive(\n target: Container,\n bounds: Bounds,\n)\n{\n if (target.localDisplayStatus !== 0b111 || !target.measurable)\n {\n return;\n }\n\n const manageEffects = !!target.effects.length;\n\n let localBounds = bounds;\n\n if (target.renderGroup || manageEffects)\n {\n localBounds = boundsPool.get().clear();\n }\n\n if (target.boundsArea)\n {\n bounds.addRect(target.boundsArea, target.worldTransform);\n }\n else\n {\n if (target.renderPipeId)\n {\n const viewBounds = (target as Renderable).bounds;\n\n localBounds.addFrame(\n viewBounds.minX,\n viewBounds.minY,\n viewBounds.maxX,\n viewBounds.maxY,\n target.groupTransform\n );\n }\n\n const children = target.children;\n\n for (let i = 0; i < children.length; i++)\n {\n _getGlobalBoundsRecursive(children[i], localBounds);\n }\n }\n\n if (manageEffects)\n {\n let advanced = false;\n\n for (let i = 0; i < target.effects.length; i++)\n {\n if (target.effects[i].addBounds)\n {\n if (!advanced)\n {\n advanced = true;\n localBounds.applyMatrix(target.parentRenderGroup.worldTransform);\n }\n\n target.effects[i].addBounds(localBounds, true);\n }\n }\n\n if (advanced)\n {\n localBounds.applyMatrix(target.parentRenderGroup.worldTransform.copyTo(tempMatrix).invert());\n bounds.addBounds(localBounds, target.relativeGroupTransform);\n }\n\n bounds.addBounds(localBounds);\n boundsPool.return(localBounds);\n }\n else if (target.renderGroup)\n {\n bounds.addBounds(localBounds, target.relativeGroupTransform);\n boundsPool.return(localBounds);\n }\n}\n"],"names":[],"mappings":"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"}