sdfsdfs
This commit is contained in:
71
node_modules/pixi.js/lib/scene/container/bounds/getLocalBounds.js
generated
vendored
Normal file
71
node_modules/pixi.js/lib/scene/container/bounds/getLocalBounds.js
generated
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
'use strict';
|
||||
|
||||
var Matrix = require('../../../maths/matrix/Matrix.js');
|
||||
var warn = require('../../../utils/logging/warn.js');
|
||||
var matrixAndBoundsPool = require('./utils/matrixAndBoundsPool.js');
|
||||
|
||||
"use strict";
|
||||
function getLocalBounds(target, bounds, relativeMatrix) {
|
||||
bounds.clear();
|
||||
relativeMatrix || (relativeMatrix = Matrix.Matrix.IDENTITY);
|
||||
_getLocalBounds(target, bounds, relativeMatrix, target, true);
|
||||
if (!bounds.isValid) {
|
||||
bounds.set(0, 0, 0, 0);
|
||||
}
|
||||
return bounds;
|
||||
}
|
||||
function _getLocalBounds(target, bounds, parentTransform, rootContainer, isRoot) {
|
||||
let relativeTransform;
|
||||
if (!isRoot) {
|
||||
if (!target.visible || !target.measurable)
|
||||
return;
|
||||
target.updateLocalTransform();
|
||||
const localTransform = target.localTransform;
|
||||
relativeTransform = matrixAndBoundsPool.matrixPool.get();
|
||||
relativeTransform.appendFrom(localTransform, parentTransform);
|
||||
} else {
|
||||
relativeTransform = matrixAndBoundsPool.matrixPool.get();
|
||||
relativeTransform = parentTransform.copyTo(relativeTransform);
|
||||
}
|
||||
const parentBounds = bounds;
|
||||
const preserveBounds = !!target.effects.length;
|
||||
if (preserveBounds) {
|
||||
bounds = matrixAndBoundsPool.boundsPool.get().clear();
|
||||
}
|
||||
if (target.boundsArea) {
|
||||
bounds.addRect(target.boundsArea, relativeTransform);
|
||||
} else {
|
||||
if (target.renderPipeId) {
|
||||
bounds.matrix = relativeTransform;
|
||||
target.addBounds(bounds);
|
||||
}
|
||||
const children = target.children;
|
||||
for (let i = 0; i < children.length; i++) {
|
||||
_getLocalBounds(children[i], bounds, relativeTransform, rootContainer, false);
|
||||
}
|
||||
}
|
||||
if (preserveBounds) {
|
||||
for (let i = 0; i < target.effects.length; i++) {
|
||||
target.effects[i].addLocalBounds?.(bounds, rootContainer);
|
||||
}
|
||||
parentBounds.addBounds(bounds, Matrix.Matrix.IDENTITY);
|
||||
matrixAndBoundsPool.boundsPool.return(bounds);
|
||||
}
|
||||
matrixAndBoundsPool.matrixPool.return(relativeTransform);
|
||||
}
|
||||
function getParent(target, root, matrix) {
|
||||
const parent = target.parent;
|
||||
if (!parent) {
|
||||
warn.warn("Item is not inside the root container");
|
||||
return;
|
||||
}
|
||||
if (parent !== root) {
|
||||
getParent(parent, root, matrix);
|
||||
parent.updateLocalTransform();
|
||||
matrix.append(parent.localTransform);
|
||||
}
|
||||
}
|
||||
|
||||
exports.getLocalBounds = getLocalBounds;
|
||||
exports.getParent = getParent;
|
||||
//# sourceMappingURL=getLocalBounds.js.map
|
Reference in New Issue
Block a user