sdfsdfs
This commit is contained in:
77
node_modules/pixi.js/lib/scene/container/bounds/getGlobalBounds.mjs
generated
vendored
Normal file
77
node_modules/pixi.js/lib/scene/container/bounds/getGlobalBounds.mjs
generated
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
import { Matrix } from '../../../maths/matrix/Matrix.mjs';
|
||||
import { matrixPool, boundsPool } from './utils/matrixAndBoundsPool.mjs';
|
||||
|
||||
"use strict";
|
||||
function getGlobalBounds(target, skipUpdateTransform, bounds) {
|
||||
bounds.clear();
|
||||
let parentTransform;
|
||||
let pooledMatrix;
|
||||
if (target.parent) {
|
||||
if (!skipUpdateTransform) {
|
||||
pooledMatrix = matrixPool.get().identity();
|
||||
parentTransform = updateTransformBackwards(target, pooledMatrix);
|
||||
} else {
|
||||
parentTransform = target.parent.worldTransform;
|
||||
}
|
||||
} else {
|
||||
parentTransform = Matrix.IDENTITY;
|
||||
}
|
||||
_getGlobalBounds(target, bounds, parentTransform, skipUpdateTransform);
|
||||
if (pooledMatrix) {
|
||||
matrixPool.return(pooledMatrix);
|
||||
}
|
||||
if (!bounds.isValid) {
|
||||
bounds.set(0, 0, 0, 0);
|
||||
}
|
||||
return bounds;
|
||||
}
|
||||
function _getGlobalBounds(target, bounds, parentTransform, skipUpdateTransform) {
|
||||
if (!target.visible || !target.measurable)
|
||||
return;
|
||||
let worldTransform;
|
||||
if (!skipUpdateTransform) {
|
||||
target.updateLocalTransform();
|
||||
worldTransform = matrixPool.get();
|
||||
worldTransform.appendFrom(target.localTransform, parentTransform);
|
||||
} else {
|
||||
worldTransform = target.worldTransform;
|
||||
}
|
||||
const parentBounds = bounds;
|
||||
const preserveBounds = !!target.effects.length;
|
||||
if (preserveBounds) {
|
||||
bounds = boundsPool.get().clear();
|
||||
}
|
||||
if (target.boundsArea) {
|
||||
bounds.addRect(target.boundsArea, worldTransform);
|
||||
} else {
|
||||
if (target.addBounds) {
|
||||
bounds.matrix = worldTransform;
|
||||
target.addBounds(bounds);
|
||||
}
|
||||
for (let i = 0; i < target.children.length; i++) {
|
||||
_getGlobalBounds(target.children[i], bounds, worldTransform, skipUpdateTransform);
|
||||
}
|
||||
}
|
||||
if (preserveBounds) {
|
||||
for (let i = 0; i < target.effects.length; i++) {
|
||||
target.effects[i].addBounds?.(bounds);
|
||||
}
|
||||
parentBounds.addBounds(bounds, Matrix.IDENTITY);
|
||||
boundsPool.return(bounds);
|
||||
}
|
||||
if (!skipUpdateTransform) {
|
||||
matrixPool.return(worldTransform);
|
||||
}
|
||||
}
|
||||
function updateTransformBackwards(target, parentTransform) {
|
||||
const parent = target.parent;
|
||||
if (parent) {
|
||||
updateTransformBackwards(parent, parentTransform);
|
||||
parent.updateLocalTransform();
|
||||
parentTransform.append(parent.localTransform);
|
||||
}
|
||||
return parentTransform;
|
||||
}
|
||||
|
||||
export { _getGlobalBounds, getGlobalBounds, updateTransformBackwards };
|
||||
//# sourceMappingURL=getGlobalBounds.mjs.map
|
Reference in New Issue
Block a user