shadow$provide.module$node_modules$pixi_DOT_js$lib$culling$Culler = function(global, require, module, exports) {
  global = require("module$node_modules$pixi_DOT_js$lib$maths$matrix$Matrix");
  module = require("module$node_modules$pixi_DOT_js$lib$maths$shapes$Rectangle");
  var Bounds = require("module$node_modules$pixi_DOT_js$lib$scene$container$bounds$Bounds"), getGlobalBounds = require("module$node_modules$pixi_DOT_js$lib$scene$container$bounds$getGlobalBounds");
  "use strict";
  const tempBounds = new Bounds.Bounds(), tempMatrix = new global.Matrix(), tempRectangle = new module.Rectangle();
  require = class {
    cull(container, view, skipUpdateTransform = !0) {
      this._cullRecursive(container, view, skipUpdateTransform);
    }
    _cullRecursive(container, view, skipUpdateTransform = !0) {
      if (container.cullable && container.measurable && container.includeInBuild) {
        if (container.cullArea) {
          tempRectangle.x = view.x;
          tempRectangle.y = view.y;
          tempRectangle.width = view.width;
          tempRectangle.height = view.height;
          var transform = skipUpdateTransform ? container.worldTransform : container.getGlobalTransform(tempMatrix, skipUpdateTransform);
          container.culled = !tempRectangle.intersects(container.cullArea, transform);
        } else {
          transform = getGlobalBounds.getGlobalBounds(container, skipUpdateTransform, tempBounds), container.culled = transform.x >= view.x + view.width || transform.y >= view.y + view.height || transform.x + transform.width <= view.x || transform.y + transform.height <= view.y;
        }
      } else {
        container.culled = !1;
      }
      if (container.cullableChildren && !container.culled && container.renderable && container.measurable && container.includeInBuild) {
        for (transform = 0; transform < container.children.length; transform++) {
          this._cullRecursive(container.children[transform], view, skipUpdateTransform);
        }
      }
    }
  };
  require.shared = new require();
  exports.Culler = require;
};

//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$culling$Culler.js.map
