shadow$provide.module$node_modules$pixi_DOT_js$lib$utils$misc$Transform = function(global, require, module, exports) {
  var Matrix = require("module$node_modules$pixi_DOT_js$lib$maths$matrix$Matrix"), ObservablePoint = require("module$node_modules$pixi_DOT_js$lib$maths$point$ObservablePoint");
  "use strict";
  class Transform {
    constructor({matrix, observer} = {}) {
      this.dirty = !0;
      this._matrix = matrix ?? new Matrix.Matrix();
      this.observer = observer;
      this.position = new ObservablePoint.ObservablePoint(this, 0, 0);
      this.scale = new ObservablePoint.ObservablePoint(this, 1, 1);
      this.pivot = new ObservablePoint.ObservablePoint(this, 0, 0);
      this.skew = new ObservablePoint.ObservablePoint(this, 0, 0);
      this._rotation = 0;
      this._cx = 1;
      this._cy = this._sx = 0;
      this._sy = 1;
    }
    get matrix() {
      const lt = this._matrix;
      if (!this.dirty) {
        return lt;
      }
      lt.a = this._cx * this.scale.x;
      lt.b = this._sx * this.scale.x;
      lt.c = this._cy * this.scale.y;
      lt.d = this._sy * this.scale.y;
      lt.tx = this.position.x - (this.pivot.x * lt.a + this.pivot.y * lt.c);
      lt.ty = this.position.y - (this.pivot.x * lt.b + this.pivot.y * lt.d);
      this.dirty = !1;
      return lt;
    }
    _onUpdate(point) {
      this.dirty = !0;
      point === this.skew && this.updateSkew();
      this.observer?._onUpdate(this);
    }
    updateSkew() {
      this._cx = Math.cos(this._rotation + this.skew.y);
      this._sx = Math.sin(this._rotation + this.skew.y);
      this._cy = -Math.sin(this._rotation - this.skew.x);
      this._sy = Math.cos(this._rotation - this.skew.x);
      this.dirty = !0;
    }
    toString() {
      return `[pixi.js/math:Transform position=(${this.position.x}, ${this.position.y}) rotation=${this.rotation} scale=(${this.scale.x}, ${this.scale.y}) skew=(${this.skew.x}, ${this.skew.y}) ]`;
    }
    setFromMatrix(matrix) {
      matrix.decompose(this);
      this.dirty = !0;
    }
    get rotation() {
      return this._rotation;
    }
    set rotation(value) {
      this._rotation !== value && (this._rotation = value, this._onUpdate(this.skew));
    }
  }
  exports.Transform = Transform;
};

//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$utils$misc$Transform.js.map
