UNPKG

@awayjs/view

Version:
1 lines 57.4 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@awayjs/core"),require("@awayjs/stage")):"function"==typeof define&&define.amd?define(["exports","@awayjs/core","@awayjs/stage"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).AwayjsView={},t.AwayjsCore,t.AwayjsStage)}(this,(function(t,e,i){"use strict";var o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},o(t,e)};function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function i(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}"function"==typeof SuppressedError&&SuppressedError;var r,s=function(t,i){this.normal=new e.Vector3D,this.rayPosition=new e.Vector3D,this.rayDirection=new e.Vector3D,this.containerNode=t,this.pickGroup=i};t.BoundingVolumeType=void 0,(r=t.BoundingVolumeType||(t.BoundingVolumeType={}))[r.SPHERE=0]="SPHERE",r[r.SPHERE_FAST=1]="SPHERE_FAST",r[r.SPHERE_BOUNDS=2]="SPHERE_BOUNDS",r[r.SPHERE_BOUNDS_FAST=3]="SPHERE_BOUNDS_FAST",r[r.BOX=4]="BOX",r[r.BOX_FAST=5]="BOX_FAST",r[r.BOX_BOUNDS=6]="BOX_BOUNDS",r[r.BOX_BOUNDS_FAST=7]="BOX_BOUNDS_FAST",r[r.NULL=8]="NULL";var a,h,l,c,_,u,p,d=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.clone=function(){return new e(this.type)},e.INVALIDATE_MATRIX3D="invalidateMatrix3D",e.INVALIDATE_COLOR_TRANSFORM="invalidateColorTransform",e}(e.EventBase),g=function(t){function i(){return null!==t&&t.apply(this,arguments)||this}return n(i,t),Object.defineProperty(i.prototype,"pool",{get:function(){return this._useWeak?this._pool.deref():this._pool},enumerable:!1,configurable:!0}),i.prototype.init=function(i,o){var n=this;t.prototype.init.call(this,i,o,!0);var r=this.pool.picker;if(this._targetCoordinateSpace=i,this._strokeFlag=o.strokeFlag,this._fastFlag=o.fastFlag,this._onInvalidateMatrix3DDelegate=function(t){return n._onInvalidateMatrix3D(t)},r.addBoundingVolume(this),this._targetCoordinateSpace!=r.node){for(var s=r.node;s&&s!=this._targetCoordinateSpace;)s.container.transform.addEventListener(e.TransformEvent.INVALIDATE_MATRIX3D,this._onInvalidateMatrix3DDelegate),s=s.parent;s||this._targetCoordinateSpace.addEventListener(d.INVALIDATE_MATRIX3D,this._onInvalidateMatrix3DDelegate)}},i.prototype._onInvalidateMatrix3D=function(t){this._invalid=!0},i.prototype.onClear=function(i){var o,n=null===(o=this.pool)||void 0===o?void 0:o.picker;if(n&&(n.removeBoundingVolume(this),this._targetCoordinateSpace!=n.node)){for(var r=n.node;r&&r!=this._targetCoordinateSpace;)r.container.transform.removeEventListener(e.TransformEvent.INVALIDATE_MATRIX3D,this._onInvalidateMatrix3DDelegate),r=r.parent;r||this._targetCoordinateSpace.removeEventListener(d.INVALIDATE_MATRIX3D,this._onInvalidateMatrix3DDelegate)}this._targetCoordinateSpace=null,t.prototype.onClear.call(this,i)},i.prototype.nullify=function(){throw new e.AbstractMethodError},i.prototype.isInFrustum=function(t,i){throw new e.AbstractMethodError},i.prototype.clone=function(){throw new e.AbstractMethodError},i.prototype.rayIntersection=function(t,e,i){return-1},i.prototype.classifyToPlane=function(t){throw new e.AbstractMethodError},i.prototype._update=function(){this._invalid=!1},i}(e.AbstractionBase),f=function(t){function i(){var e=null!==t&&t.apply(this,arguments)||this;return e._x=0,e._y=0,e._z=0,e._width=0,e._height=0,e._depth=0,e._centerX=0,e._centerY=0,e._centerZ=0,e._halfExtentsX=0,e._halfExtentsY=0,e._halfExtentsZ=0,e}return n(i,t),i.prototype.nullify=function(){this._x=this._y=this._z=0,this._width=this._height=this._depth=0,this._centerX=this._centerY=this._centerZ=0,this._halfExtentsX=this._halfExtentsY=this._halfExtentsZ=0},i.prototype.isInFrustum=function(t,e){if(this._invalid&&this._update(),null!=this._box){for(var i=0;i<e;++i){var o=t[i],n=o.a,r=o.b,s=o.c,a=n<0?-this._halfExtentsX:this._halfExtentsX,h=r<0?-this._halfExtentsY:this._halfExtentsY,l=s<0?-this._halfExtentsZ:this._halfExtentsZ;if(n*(this._centerX+a)+r*(this._centerY+h)+s*(this._centerZ+l)-o.d<0)return!1}return!0}},i.prototype.rayIntersection=function(t,e,i){return this._invalid&&this._update(),null==this._box?-1:this._box.rayIntersection(t,e,i)},i.prototype.getBox=function(){return this._invalid&&this._update(),this._box},i.prototype.classifyToPlane=function(t){var i=t.a,o=t.b,n=t.c,r=i*this._centerX+o*this._centerY+n*this._centerZ-t.d;i<0&&(i=-i),o<0&&(o=-o),n<0&&(n=-n);var s=i*this._halfExtentsX+o*this._halfExtentsY+n*this._halfExtentsZ;return r>s?e.PlaneClassification.FRONT:r<-s?e.PlaneClassification.BACK:e.PlaneClassification.INTERSECT},i.prototype._update=function(){t.prototype._update.call(this);var e,i=this.pool.picker;this._targetCoordinateSpace!=i.node&&(this._targetCoordinateSpace==i.node.parent?e=i.node.container.transform.matrix3D:(e=i.node.getMatrix3D().clone()).append(this._targetCoordinateSpace.getInverseMatrix3D())),this._box=i._getBoxBoundsInternal(e,this._strokeFlag,this._fastFlag,this._box),null!=this._box&&(this._halfExtentsX=this._box.width/2,this._halfExtentsY=this._box.height/2,this._halfExtentsZ=this._box.depth/2,this._centerX=this._box.x+this._halfExtentsX,this._centerY=this._box.y+this._halfExtentsY,this._centerZ=this._box.z+this._halfExtentsZ)},i}(g),y=function(t){function i(){var e=null!==t&&t.apply(this,arguments)||this;return e._radius=0,e._centerX=0,e._centerY=0,e._centerZ=0,e}return n(i,t),i.prototype.nullify=function(){this._centerX=this._centerY=this._centerZ=0,this._radius=0},i.prototype.isInFrustum=function(t,e){this._invalid&&this._update();for(var i=0;i<e;++i){var o=t[i],n=o.a<0?-this._radius:this._radius,r=o.b<0?-this._radius:this._radius,s=o.c<0?-this._radius:this._radius;if(o.a*(this._centerX+n)+o.b*(this._centerY+r)+o.c*(this._centerZ+s)-o.d<0)return!1}return!0},i.prototype.rayIntersection=function(t,e,i){return this._invalid&&this._update(),this._sphere.rayIntersection(t,e,i)},i.prototype.getSphere=function(){return this._invalid&&this._update(),this._sphere},i.prototype.classifyToPlane=function(t){var i=t.a,o=t.b,n=t.c,r=i*this._centerX+o*this._centerY+n*this._centerZ-t.d;i<0&&(i=-i),o<0&&(o=-o),n<0&&(n=-n);var s=(i+o+n)*this._radius;return r>s?e.PlaneClassification.FRONT:r<-s?e.PlaneClassification.BACK:e.PlaneClassification.INTERSECT},i.prototype._update=function(){t.prototype._update.call(this);var e,i=this.pool.picker;this._targetCoordinateSpace&&(this._targetCoordinateSpace==i.node?e=i.node.container.transform.matrix3D:(e=i.node.getMatrix3D().clone(),this._targetCoordinateSpace.parent&&e.append(this._targetCoordinateSpace.parent.getInverseMatrix3D()))),this._sphere=i._getSphereBoundsInternal(null,e,this._strokeFlag,this._fastFlag,this._sphere);var o=i.node.getMatrix3D(),n=this._sphere.x,r=this._sphere.y,s=this._sphere.z,a=this._sphere.radius,h=o._rawData,l=h[0],c=h[4],_=h[8],u=h[12],p=h[1],d=h[5],g=h[9],f=h[13],y=h[2],b=h[6],v=h[10],m=h[14];this._centerX=n*l+r*c+s*_+u,this._centerY=n*p+r*d+s*g+f,this._centerZ=n*y+r*b+s*v+m;var D=l+c+_,T=p+d+g,x=y+b+v;this._radius=a*Math.sqrt((D*D+T*T+x*x)/3)},i}(g),b=function(t){function i(){return null!==t&&t.apply(this,arguments)||this}return n(i,t),i.prototype.isInFrustum=function(t,e){return!0},i.prototype.classifyToPlane=function(t){return e.PlaneClassification.INTERSECT},i}(g),v=function(){function i(t,o){this.id=e.UUID.Next(),this.picker=t,this.strokeFlag=i._strokeDict[o],this.fastFlag=i._fastDict[o],this._boundingVolumeClass=i._boundsDict[o],this._store=i._storeDict[o]}return i.prototype.requestAbstraction=function(t){return this._store.length?this._store.pop():new this._boundingVolumeClass},i.prototype.storeAbstraction=function(t){this._store.push(t)},i._boundingBoxStore=[],i._boundingSphereStore=[],i._nullStore=[],i._storeDict=((a={})[t.BoundingVolumeType.BOX]=i._boundingBoxStore,a[t.BoundingVolumeType.BOX_FAST]=i._boundingBoxStore,a[t.BoundingVolumeType.BOX_BOUNDS]=i._boundingBoxStore,a[t.BoundingVolumeType.BOX_BOUNDS_FAST]=i._boundingBoxStore,a[t.BoundingVolumeType.SPHERE]=i._boundingSphereStore,a[t.BoundingVolumeType.SPHERE_FAST]=i._boundingSphereStore,a[t.BoundingVolumeType.SPHERE_BOUNDS]=i._boundingSphereStore,a[t.BoundingVolumeType.SPHERE_BOUNDS_FAST]=i._boundingSphereStore,a[t.BoundingVolumeType.NULL]=i._nullStore,a),i._strokeDict=((h={})[t.BoundingVolumeType.BOX]=!1,h[t.BoundingVolumeType.BOX_FAST]=!1,h[t.BoundingVolumeType.BOX_BOUNDS]=!0,h[t.BoundingVolumeType.BOX_BOUNDS_FAST]=!0,h[t.BoundingVolumeType.SPHERE]=!1,h[t.BoundingVolumeType.SPHERE_FAST]=!1,h[t.BoundingVolumeType.SPHERE_BOUNDS]=!0,h[t.BoundingVolumeType.SPHERE_BOUNDS_FAST]=!0,h[t.BoundingVolumeType.NULL]=!1,h),i._fastDict=((l={})[t.BoundingVolumeType.BOX]=!1,l[t.BoundingVolumeType.BOX_FAST]=!0,l[t.BoundingVolumeType.BOX_BOUNDS]=!1,l[t.BoundingVolumeType.BOX_BOUNDS_FAST]=!0,l[t.BoundingVolumeType.SPHERE]=!1,l[t.BoundingVolumeType.SPHERE_FAST]=!0,l[t.BoundingVolumeType.SPHERE_BOUNDS]=!1,l[t.BoundingVolumeType.SPHERE_BOUNDS_FAST]=!0,l[t.BoundingVolumeType.NULL]=!1,l),i._boundsDict=((c={})[t.BoundingVolumeType.BOX]=f,c[t.BoundingVolumeType.BOX_FAST]=f,c[t.BoundingVolumeType.BOX_BOUNDS]=f,c[t.BoundingVolumeType.BOX_BOUNDS_FAST]=f,c[t.BoundingVolumeType.SPHERE]=y,c[t.BoundingVolumeType.SPHERE_FAST]=y,c[t.BoundingVolumeType.SPHERE_BOUNDS]=y,c[t.BoundingVolumeType.SPHERE_BOUNDS_FAST]=y,c[t.BoundingVolumeType.NULL]=b,c),i}(),m=function(t){function i(){var e=null!==t&&t.apply(this,arguments)||this;return e._orientedBoxBounds=[],e._orientedBoxBoundsDirty=[!0,!0],e._orientedSphereBounds=[],e._orientedSphereBoundsDirty=[!0,!0],e._activePickables=[],e.shapeFlag=!1,e}return n(i,t),Object.defineProperty(i.prototype,"pickingCollision",{get:function(){return this._pickingCollision},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"node",{get:function(){return this._asset},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"pickGroup",{get:function(){return this._pool},enumerable:!1,configurable:!0}),i.prototype.init=function(i,o){t.prototype.init.call(this,i,o),this._pickingCollision=new s(this.node,this.pickGroup),this._boundingVolumes=new e.WeakAssetSet("BoundingVolumeBase"),this._boundingVolumePools={},this._pickables=new e.WeakAssetSet("_Pick_PickableBase")},i.prototype.getBoundingVolume=function(t,e){void 0===t&&(t=null),void 0===e&&(e=null),null==t&&(t=this._asset),null==e&&(e=this._asset.container.defaultBoundingVolume);var i=this._boundingVolumePools[e]||(this._boundingVolumePools[e]=new v(this,e));return t.getAbstraction(i)},i.prototype.hitTestPoint=function(t,e,i){return void 0===i&&(i=!1),this._hitTestPointInternal(this._asset,t,e,i,!1)},i.prototype._hitTestPointInternal=function(t,i,o,n,r){if(void 0===n&&(n=!1),void 0===r&&(r=!1),!(-1==this._asset.getMaskId()||r&&n))return!1;this._invalid&&this._update();var s=new e.Point(i,o);this._asset.globalToLocal(s,s);var a=this._getBoxBoundsInternal(null,!1,!0);if(null==a||!a.contains(s.x,s.y,0))return!1;if(!n||"[asset TextField]"==this._asset.container.assetType||"[asset Billboard]"==this._asset.container.assetType)return!0;for(var h=!1,l=this._activePickables.length-1;l>=0;l--)if(this._activePickables[l].hitTestPoint(s.x,s.y,0)){h=!0;break}if(!h)return!1;var c=this._asset.getMaskOwners();if(c){var _=c.length,u=void 0,p=void 0,d=void 0,g=void 0;for(l=0;l<_;l++)if((u=c[l]).isDescendant(t)){d=(p=u.getMasks()).length,g=!1;for(var f=0;f<d;f++)if((u=p[f]).isDescendant(t)&&u&&this.pickGroup.getBoundsPicker(u)._hitTestPointInternal(t,i,o,n,!0)){g=!0;break}if(!g)return!1}}return!0},i.prototype.isInFrustum=function(t,e){return this._isInFrustumInternal(this._asset,t,e)},i.prototype._isInFrustumInternal=function(t,e,i){return this.getBoundingVolume(t).isInFrustum(e,i)},i.prototype.isIntersectingRay=function(t,e){return this._isIntersectingRayInternal(this._asset,t,e)},i.prototype._isIntersectingRayInternal=function(t,e,i){var o=this._asset.getInverseMatrix3D();o.transformVector(e,this._pickingCollision.rayPosition),o.deltaTransformVector(i,this._pickingCollision.rayDirection);var n=this.getBoundingVolume().rayIntersection(this._pickingCollision.rayPosition,this._pickingCollision.rayDirection,this._pickingCollision.normal);return!(n<0||!this._isIntersectingMasks(t,e,i))&&(this._pickingCollision.rayEntryDistance=n,this._pickingCollision.globalRayPosition=e,this._pickingCollision.globalRayDirection=i,this._pickingCollision.rayOriginIsInsideBounds=0==n,!0)},i.prototype.isIntersectingShape=function(t){for(var e=!1,i=this._activePickables.length-1;i>=0;i--)if(this._activePickables[i].testCollision(this._pickingCollision,t)){if(!t)return!0;e=!0}return e},i.prototype._getBoxBoundsInternal=function(t,e,i,o,n){void 0===t&&(t=null),void 0===e&&(e=!0),void 0===i&&(i=!0),void 0===o&&(o=null),void 0===n&&(n=null),this._asset.getMatrix3D(),this._invalid&&this._update();var r=this._activePickables.length;if(r)if(i){var s=void 0,a=e?1:0;if(this._orientedBoxBoundsDirty[a]){this._orientedBoxBoundsDirty[a]=!1;for(var h=0;h<r;h++)s=this._activePickables[h].getBoxBounds(null,e,this._orientedBoxBounds[a],s);this._orientedBoxBounds[a]=s}else s=this._orientedBoxBounds[a];null!=s&&(n=t?t.transformBox(s).union(n,n||o):s.union(n,n||o))}else for(h=0;h<r;h++)n=this._activePickables[h].getBoxBounds(t,e,o,n);return n},i.prototype._getSphereBoundsInternal=function(t,i,o,n,r,s){void 0===t&&(t=null),void 0===i&&(i=null),void 0===o&&(o=!0),void 0===n&&(n=!0),void 0===r&&(r=null),void 0===s&&(s=null),this._invalid&&this._update();var a=this._getBoxBoundsInternal(i,o);if(null!=a){t||((t=new e.Vector3D).x=a.x+a.width/2,t.y=a.y+a.height/2,t.z=a.z+a.depth/2);var h=this._activePickables.length;if(h)if(n){var l=void 0,c=o?1:0;if(this._orientedSphereBoundsDirty[c]){this._orientedSphereBoundsDirty[c]=!1;for(var _=0;_<h;_++)l=this._activePickables[_].getSphereBounds(t,null,o,this._orientedSphereBounds[c],l);this._orientedSphereBounds[c]=l}else l=this._orientedSphereBounds[c];null!=l&&(s=i?i.transformSphere(l).union(s,s||r):l.union(s,s||r))}else for(_=0;_<h;_++)s=this._activePickables[_].getSphereBounds(t,i,o,r,s);return s}},i.prototype.applyTraversable=function(t){this._activePickables.push(t.getAbstraction(this))},i.prototype.addBoundingVolume=function(t){this._boundingVolumes.add(t)},i.prototype.removeBoundingVolume=function(t){this._boundingVolumes.remove(t)},i.prototype.addPickable=function(t){this._pickables.add(t)},i.prototype.removePickable=function(t){this._pickables.remove(t)},i.prototype.onInvalidate=function(e){t.prototype.onInvalidate.call(this,e),this._activePickables=[],this._orientedBoxBoundsDirty[0]=!0,this._orientedBoxBoundsDirty[1]=!0,this._orientedSphereBoundsDirty[0]=!0,this._orientedSphereBoundsDirty[1]=!0,this._boundingVolumes.forEach((function(t){return t.onInvalidate(e)}))},i.prototype.onClear=function(e){t.prototype.onClear.call(this,e),this._boundingVolumes.forEach((function(t){return t.onClear(e)})),this._boundingVolumePools=null,this._pickables.forEach((function(t){return t.onClear(e)})),this._pickingCollision=null,this._pickables=null,this._activePickables=[],this._orientedBoxBoundsDirty[0]=!0,this._orientedBoxBoundsDirty[1]=!0,this._orientedSphereBoundsDirty[0]=!0,this._orientedSphereBoundsDirty[1]=!0},i.prototype.requestAbstraction=function(t){var e=i._store[t.assetType];return e.length?e.pop():new i._pickPickableClassPool[t.assetType]},i.prototype.storeAbstraction=function(t){i._store[t.asset.assetType].push(t)},i.registerPickable=function(t,e){i._pickPickableClassPool[e.assetType]=t,i._store[e.assetType]=[]},i.prototype._update=function(){this._invalid=!1,this._asset.container.getEntity()._acceptTraverser(this)},i.prototype._isIntersectingMasks=function(t,e,i){var o=this._asset.getMaskOwners();if(o)for(var n=o.length,r=void 0,s=void 0,a=void 0,h=void 0,l=0;l<n;l++)if((r=o[l]).isDescendant(t)){a=(s=r.getMasks()).length,h=!1;for(var c=0;c<a;c++)if((r=s[c]).isDescendant(t)&&r&&this.pickGroup.getRaycastPicker(r)._getCollisionInternal(e,i,!0,!0,null)){h=!0;break}if(!h)return!1}return!0},i._store={},i.MINIMAL_SCALE=1e-5,i._pickPickableClassPool=new Object,i}(e.AbstractionBase),D=function(t){function i(){return null!==t&&t.apply(this,arguments)||this}return n(i,t),Object.defineProperty(i.prototype,"entity",{get:function(){return this._useWeak?this._pool.deref():this._pool},enumerable:!1,configurable:!0}),i.prototype.init=function(e,i){t.prototype.init.call(this,e,i,!0),i.addPickable(this)},i.prototype.onClear=function(e){var i;null===(i=this.entity)||void 0===i||i.removePickable(this),t.prototype.onClear.call(this,e)},i.prototype.hitTestPoint=function(t,i,o){throw new e.AbstractMethodError},i.prototype.getBoxBounds=function(t,e,i,o){return void 0===o&&(o=null),o},i.prototype.getSphereBounds=function(t,e,i,o,n){return void 0===n&&(n=null),n},i.prototype.testCollision=function(t,i){throw new e.AbstractMethodError},i}(e.AbstractionBase);t.HierarchicalProperty=void 0,(_=t.HierarchicalProperty||(t.HierarchicalProperty={}))[_.MOUSE_ENABLED=1]="MOUSE_ENABLED",_[_.VISIBLE=2]="VISIBLE",_[_.MASK_ID=4]="MASK_ID",_[_.MASKS=8]="MASKS",_[_.COLOR_TRANSFORM=16]="COLOR_TRANSFORM",_[_.SCENE_TRANSFORM=32]="SCENE_TRANSFORM",_[_.SCALE9=64]="SCALE9",_[_.ALL=127]="ALL",t.OrientationMode=void 0,(u=t.OrientationMode||(t.OrientationMode={}))[u.DEFAULT=0]="DEFAULT",u[u.CAMERA_PLANE=1]="CAMERA_PLANE",u[u.CAMERA_POSITION=2]="CAMERA_POSITION",t.AlignmentMode=void 0,(p=t.AlignmentMode||(t.AlignmentMode={}))[p.REGISTRATION_POINT=0]="REGISTRATION_POINT",p[p.TRANSFORM_POINT=1]="TRANSFORM_POINT";var T=function(t){function e(e,i){var o=t.call(this,e)||this;return o._view=i,o}return n(e,t),Object.defineProperty(e.prototype,"view",{get:function(){return this._view},enumerable:!1,configurable:!0}),e.INVALIDATE_VIEW_MATRIX3D="invalidateViewMatrix3D",e.INVALIDATE_SIZE="invalidateSize",e}(e.EventBase),x=function(t){function o(o,n,r,s,a,h){void 0===o&&(o=null),void 0===n&&(n=null),void 0===r&&(r=!1),void 0===s&&(s=i.ContextGLProfile.BASELINE),void 0===a&&(a=i.ContextMode.AUTO),void 0===h&&(h=!1);var l=t.call(this)||this;return l._rect=new e.Rectangle,l._backgroundColor=0,l._backgroundRed=0,l._backgroundGreen=0,l._backgroundBlue=0,l._focalLength=1e3,l._pixelRatio=1,l._frustumMatrix3D=new e.Matrix3D,l._viewMatrix3D=new e.Matrix3D,l._inverseViewMatrix3D=new e.Matrix3D,l._components=new Array(4),l._offset=new e.Vector3D,l._scale=new e.Vector3D(1,1,1),l._frustumMatrix3DDirty=!0,l._viewMatrix3DDirty=!0,l._inverseViewMatrix3DDirty=!0,l.backgroundAlpha=1,l.backgroundDepth=1,l.backgroundStencil=0,l.preservePixelRatio=!0,l.preserveFocalLength=!1,l.preserveDimensions=!1,l._components[0]=l._offset,l._components[3]=l._scale,l._onInvalidateSizeDelegate=function(t){return l._onInvalidateSize(t)},l._onInvalidateViewMatrix3DDelegate=function(t){return l._onInvalidateViewMatrix3D(t)},l._projection=o||new e.PerspectiveProjection,l._projection.addEventListener(e.ProjectionEvent.INVALIDATE_VIEW_MATRIX3D,l._onInvalidateViewMatrix3DDelegate),n&&(l._shareContext=!0),l._stage=n||i.StageManager.getInstance().getFreeStage(r,s,a,h),l._stage.addEventListener(i.StageEvent.INVALIDATE_SIZE,l._onInvalidateSizeDelegate),l._updateDimensions(),l._updateFocalLength(),l._updatePixelRatio(),l}return n(o,t),Object.defineProperty(o.prototype,"shareContext",{get:function(){return this._shareContext},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"x",{get:function(){return this._shareContext||this._target?this._rect.x:this._stage.x},set:function(t){if(this._shareContext||this._target){if(this._rect.x==t)return;this._offset.x=(this._rect.x=t)/this._targetWidth,this._invalidateViewMatrix3D()}else this._stage.x=t},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"y",{get:function(){return this._shareContext||this._target?this._rect.y:this._stage.y},set:function(t){if(this._shareContext||this._target){if(this._rect.y==t)return;this._offset.y=(this._rect.y=t)/this._targetHeight,this._invalidateViewMatrix3D()}else this._stage.y=t},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"width",{get:function(){return this._rect.width},set:function(t){this._rect.width!=t&&(this._rect.width=t,this._shareContext||this._target?(this._scale.x=t/this._targetWidth,this._updatePixelRatio(),this._invalidateViewMatrix3D()):this._stage.width=t,this._invalidateSize())},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"height",{get:function(){return this._rect.height},set:function(t){this._rect.height!=t&&(this._rect.height=t,this._shareContext||this._target?(this._scale.y=t/this._targetHeight,this._updateFocalLength(),this._updatePixelRatio(),this._invalidateViewMatrix3D()):this._stage.height=t,this._invalidateSize())},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(t){this._backgroundColor!=t&&(this._backgroundColor=t,this._backgroundRed=(t>>16&255)/255,this._backgroundGreen=(t>>8&255)/255,this._backgroundBlue=(255&t)/255)},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"focalLength",{get:function(){return this._focalLength},set:function(t){this._focalLength!=t&&(this._focalLength=t,this._updateFocalLength())},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"pixelRatio",{get:function(){return this._pixelRatio},set:function(t){this._pixelRatio!=t&&(this._pixelRatio=t,this._updatePixelRatio())},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"projection",{get:function(){return this._projection},set:function(t){if(null==t)throw new e.ErrorBase("projection cannot be null");this._projection!=t&&(this._projection.removeEventListener(e.ProjectionEvent.INVALIDATE_VIEW_MATRIX3D,this._onInvalidateViewMatrix3DDelegate),this._projection=t,this._projection.addEventListener(e.ProjectionEvent.INVALIDATE_VIEW_MATRIX3D,this._onInvalidateViewMatrix3DDelegate),this._invalidateViewMatrix3D())},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"target",{get:function(){return this._target},set:function(t){this._target!=t&&this._updateTarget(t)},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"stage",{get:function(){return this._stage},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"frustumMatrix3D",{get:function(){return this._frustumMatrix3DDirty&&(this._frustumMatrix3DDirty=!1,this._frustumMatrix3D.recompose(this._components),this._frustumMatrix3D.prepend(this._projection.frustumMatrix3D)),this._frustumMatrix3D},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"viewMatrix3D",{get:function(){return this._viewMatrix3DDirty&&(this._viewMatrix3DDirty=!1,this._viewMatrix3D.recompose(this._components),this._viewMatrix3D.prepend(this._projection.viewMatrix3D)),this._viewMatrix3D},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"inverseViewMatrix3D",{get:function(){return this._inverseViewMatrix3DDirty&&(this._inverseViewMatrix3DDirty=!1,this._inverseViewMatrix3D.copyFrom(this.viewMatrix3D),this._inverseViewMatrix3D.invert()),this._inverseViewMatrix3D},enumerable:!1,configurable:!0}),o.prototype.requestAbstraction=function(t){return o._store.length?o._store.pop():new N},o.prototype.storeAbstraction=function(t){o._store.push(t)},o.prototype.getNode=function(t){return t.getAbstraction(this)},o.prototype.clear=function(t,e,o,n,r){void 0===t&&(t=!0),void 0===e&&(e=!0),void 0===o&&(o=0),void 0===n&&(n=0),void 0===r&&(r=i.ContextGLClearMask.ALL),this._stage.setRenderTarget(this._target,e,o,n),this._stage.setScissor(null==this._target?this._rect:null),t&&this._stage.clear(this._backgroundRed,this._backgroundGreen,this._backgroundBlue,this.backgroundAlpha,this.backgroundDepth,this.backgroundStencil,r)},o.prototype.present=function(){this._shareContext||null!=this._target||this._stage.present()},o.prototype.project=function(t,e){return void 0===e&&(e=null),(e=this._projection.project(t,e)).x=(e.x+1)*this.width/2,e.y=(e.y+1)*this.height/2,e},o.prototype.unproject=function(t,e,i,o){return void 0===o&&(o=null),this._projection.unproject(2*t/this.width-1,2*e/this.height-1,i,o)},o.prototype.dispose=function(){this._target?(this._target.removeEventListener(e.AssetEvent.INVALIDATE,this._onInvalidateSizeDelegate),this._target=null):(this._stage.removeEventListener(i.StageEvent.INVALIDATE_SIZE,this._onInvalidateSizeDelegate),this._shareContext||null!=this._target||this._stage.dispose(),this._stage=null),this._projection&&(this._projection.removeEventListener(e.ProjectionEvent.INVALIDATE_VIEW_MATRIX3D,this._onInvalidateViewMatrix3DDelegate),this._projection=null)},o.prototype._onInvalidateSize=function(t){this._updateDimensions(),this._updateFocalLength(),this._updatePixelRatio(),this.preserveDimensions&&(this._shareContext||null!=this._target)||this._invalidateSize()},o.prototype._onInvalidateViewMatrix3D=function(t){this._invalidateViewMatrix3D()},o.prototype._updateTarget=function(t){this._target?this._target.removeEventListener(e.AssetEvent.INVALIDATE,this._onInvalidateSizeDelegate):this._stage.removeEventListener(i.StageEvent.INVALIDATE_SIZE,this._onInvalidateSizeDelegate),this._target=t,this._target?this._target.addEventListener(e.AssetEvent.INVALIDATE,this._onInvalidateSizeDelegate):this._stage.addEventListener(i.StageEvent.INVALIDATE_SIZE,this._onInvalidateSizeDelegate),this._updateDimensions(),this._updateFocalLength(),this._updatePixelRatio(),this.preserveDimensions&&(this._shareContext||null!=this._target)||this._invalidateSize()},o.prototype._updateDimensions=function(){this._target?this._target instanceof i.Image2D?(this._targetWidth=this._target.width,this._targetHeight=this._target.height):this._target instanceof i.ImageCube&&(this._targetWidth=this._target.size,this._targetHeight=this._target.size):(this._targetWidth=this._stage.width,this._targetHeight=this._stage.height),this.preserveDimensions&&(this._shareContext||this._target)?(this._offset.x=this._rect.x/this._targetWidth,this._offset.y=this._rect.y/this._targetHeight,this._scale.x=this._rect.width/this._targetWidth,this._scale.y=this._rect.height/this._targetHeight):(this._rect.x=this._offset.x*this._targetWidth,this._rect.y=this._offset.y*this._targetHeight,this._rect.width=this._scale.x*this._targetWidth,this._rect.height=this._scale.y*this._targetHeight)},o.prototype._updateFocalLength=function(){this.preserveFocalLength?this.projection.scale=this._focalLength/this._rect.height:this._focalLength=this._projection.scale*this._rect.height},o.prototype._updatePixelRatio=function(){this.preservePixelRatio?this._projection.ratio=this._pixelRatio*this._rect.width/this._rect.height:this._pixelRatio=this._projection.ratio*this._rect.height/this._rect.width},o.prototype._invalidateViewMatrix3D=function(){this._frustumMatrix3DDirty=!0,this._viewMatrix3DDirty=!0,this._inverseViewMatrix3DDirty=!0,this.dispatchEvent(new T(T.INVALIDATE_VIEW_MATRIX3D,this))},o.prototype._invalidateSize=function(){this.dispatchEvent(new T(T.INVALIDATE_SIZE,this))},o._store=[],o}(e.AssetBase),N=function(o){function r(){var i=null!==o&&o.apply(this,arguments)||this;return i._renderToImage=!1,i._position=new e.Vector3D,i._matrix3D=new e.Matrix3D,i._inverseMatrix3DDirty=!0,i._maskDisabled=!1,i._colorTransformDisabled=!1,i._transformDisabled=!1,i._maskId=-1,i._masks=[],i._childNodes=new Array,i._numChildNodes=0,i._hierarchicalPropsDirty=t.HierarchicalProperty.ALL,i}return n(r,o),Object.defineProperty(r.prototype,"parent",{get:function(){return this._parent},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"numChildNodes",{get:function(){return this._numChildNodes},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"container",{get:function(){return this._asset},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"pickObjectNode",{get:function(){return this._pickObject!=this._asset.pickObject&&(this._pickObject=this._asset.pickObject,this._pickObject?(this._pickObjectNode=this._pickObject.getAbstraction(this._pool),this._pickObject.pickObjectFromTimeline&&this._pickObjectNode.setParent(this)):(this._pickObjectNode.setParent(null),this._pickObjectNode=null)),this._pickObjectNode},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"renderToImage",{get:function(){var t=this._asset,e=t.blendMode,o=t.filters,n=t.cacheAsBitmap,r=this.isRenderable()&&(n||o&&o.length>0||e&&e!==i.BlendMode.LAYER&&e!==i.BlendMode.NORMAL&&(i.Settings.USE_NON_NATIVE_BLEND||i.isNativeBlend(e)));return this._renderToImage!==r&&(this._renderToImage=r,this._renderToImage||this.clearLocalNode()),this._renderToImage},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"boundsVisible",{get:function(){return!1},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"view",{get:function(){return this._pool},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"colorTransformDisabled",{get:function(){return this._colorTransformDisabled},set:function(t){this._colorTransformDisabled=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"maskDisabled",{get:function(){return this._maskDisabled},set:function(t){this._maskDisabled=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"transformDisabled",{get:function(){return this._transformDisabled},set:function(t){this._transformDisabled!=t&&(this._maskDisabled=t,this._transformDisabled=t,this._colorTransformDisabled=t,this._transformDisabled?this._activeTransform=r._nullTransform:this._activeTransform=this._asset.transform)},enumerable:!1,configurable:!0}),r.prototype.getScale9Container=function(){var e;return this._hierarchicalPropsDirty&t.HierarchicalProperty.SCALE9&&(this._scale9Container=this._asset.scale9Grid?this._asset:null===(e=this._parent)||void 0===e?void 0:e.getScale9Container(),this._hierarchicalPropsDirty^=t.HierarchicalProperty.SCALE9),this._scale9Container},r.prototype.getPosition=function(){return this._positionDirty&&(this._asset._registrationMatrix3D&&this._asset.alignmentMode===t.AlignmentMode.REGISTRATION_POINT?(this._position.x=-this._asset._registrationMatrix3D._rawData[12],this._position.y=-this._asset._registrationMatrix3D._rawData[13],this._position.z=-this._asset._registrationMatrix3D._rawData[14],this._position=this.getMatrix3D().transformVector(this._position,this._position)):this.getMatrix3D().copyColumnTo(3,this._position),this._positionDirty=!1),this._position},r.prototype.getInverseMatrix3D=function(){return this._inverseMatrix3DDirty&&(this._inverseMatrix3D||(this._inverseMatrix3D=new e.Matrix3D),this._inverseMatrix3DDirty=!1,this._inverseMatrix3D.copyFrom(this.getMatrix3D()),this._inverseMatrix3D.invert()),this._inverseMatrix3D||(this._inverseMatrix3D=new e.Matrix3D)},r.prototype.getMatrix3D=function(){return this._hierarchicalPropsDirty&t.HierarchicalProperty.SCENE_TRANSFORM&&(this._matrix3D.copyFrom(this._activeTransform.matrix3D),this._transformDisabled||(this._asset._registrationMatrix3D&&(this._matrix3D.prepend(this._asset._registrationMatrix3D),this._asset.alignmentMode!=t.AlignmentMode.REGISTRATION_POINT&&this._matrix3D.appendTranslation(-this._asset._registrationMatrix3D._rawData[12]*this._activeTransform.scale.x,-this._asset._registrationMatrix3D._rawData[13]*this._activeTransform.scale.y,-this._asset._registrationMatrix3D._rawData[14]*this._activeTransform.scale.z)),this._parent&&this._matrix3D.append(this._parent.getMatrix3D()),!this._asset.maskMode&&this._asset.scrollRect?this._matrix3D.prependTranslation(-this._asset.scrollRect.x,-this._asset.scrollRect.y,0):this._asset.maskMode&&this._asset.scrollRect&&this._matrix3D.prependTranslation(this._asset.scrollRect.x,this._asset.scrollRect.y,0)),this._hierarchicalPropsDirty^=t.HierarchicalProperty.SCENE_TRANSFORM,this._asset._iController&&this._asset._iController.updateController()),this._matrix3D},r.prototype.getRenderMatrix3D=function(i){if(this._asset.orientationMode==t.OrientationMode.CAMERA_PLANE){var o=i.decompose();return o[0].copyFrom(this.getPosition()),o[3].copyFrom(this._activeTransform.scale),(this._orientationMatrix||(this._orientationMatrix=new e.Matrix3D)).recompose(o),this._asset._registrationMatrix3D&&(this._orientationMatrix.prepend(this._asset._registrationMatrix3D),this._asset.alignmentMode!=t.AlignmentMode.REGISTRATION_POINT&&this._orientationMatrix.appendTranslation(-this._asset._registrationMatrix3D._rawData[12]*this._activeTransform.scale.x,-this._asset._registrationMatrix3D._rawData[13]*this._activeTransform.scale.y,-this._asset._registrationMatrix3D._rawData[14]*this._activeTransform.scale.z)),this._orientationMatrix}return this.getMatrix3D()},r.prototype.getColorTransform=function(){if(this._colorTransformDisabled)return r._nullColorTransform;if(this._hierarchicalPropsDirty&t.HierarchicalProperty.COLOR_TRANSFORM){if(this._hierarchicalPropsDirty^=t.HierarchicalProperty.COLOR_TRANSFORM,this._colorTransformDisabled)return r._nullColorTransform;this._colorTransform||(this._colorTransform=new e.ColorTransform),this._parent&&this._parent.getColorTransform()?(this._colorTransform.copyFrom(this._parent.getColorTransform()),this._colorTransform.prepend(this._asset.transform.colorTransform)):this._colorTransform.copyFrom(this._asset.transform.colorTransform)}return this._colorTransform||r._nullColorTransform},r.prototype.getMaskId=function(){return this._hierarchicalPropsDirty&t.HierarchicalProperty.MASK_ID&&(this._maskId=-1!=this._asset.maskId?this._asset.maskId:this._parent?this._parent.getMaskId():-1,this._hierarchicalPropsDirty^=t.HierarchicalProperty.MASK_ID),this._maskId},r.prototype.getMasks=function(t){if(void 0===t&&(t=!1),!t)return this._masks;if(this._asset.masks){var e=this._asset.masks.length;this._masks.length=e;for(var i=0;i<e;i++)this._masks[i]=this._pool.getNode(this._asset.masks[i])}else this._masks.length=0;return this._masks},r.prototype.getMaskOwners=function(){var e;if(this._hierarchicalPropsDirty&t.HierarchicalProperty.MASKS){var i=this.getMasks(!0);this._maskOwners=this._maskDisabled?null:(null===(e=this._parent)||void 0===e?void 0:e.getMaskOwners())&&-1==this.getMaskId()?i.length?this._parent.getMaskOwners().concat([this]):this._parent.getMaskOwners().concat():i.length?[this]:null,this._hierarchicalPropsDirty^=t.HierarchicalProperty.MASKS}return this._maskOwners},r.prototype.globalToLocal=function(t,i){void 0===i&&(i=null);var o=r._tempVector3D;o.setTo(t.x,t.y,0);var n=this.getInverseMatrix3D().transformVector(o,o);return i||(i=new e.Point),i.x=n.x,i.y=n.y,i},r.prototype.globalToLocal3D=function(t){return this.getInverseMatrix3D().transformVector(t)},r.prototype.localToGlobal=function(t,i){void 0===i&&(i=null);var o=r._tempVector3D;o.setTo(t.x,t.y,0);var n=this.getMatrix3D().transformVector(o,o);return i||(i=new e.Point),i.x=n.x,i.y=n.y,i},r.prototype.getBoundsPrimitive=function(t){return null},r.prototype.init=function(e,i){o.prototype.init.call(this,e,i),e._initNode(this),this._hierarchicalPropsDirty=t.HierarchicalProperty.ALL,this._activeTransform=this._asset.transform},r.prototype.getLocalNode=function(){if(!this._localNode){var t=new e.PerspectiveProjection;t.coordinateSystem=e.CoordinateSystem.LEFT_HANDED,t.originX=-1,t.originY=-1,t.transform=new e.Transform,t.transform.moveTo(0,0,-1e3),t.transform.lookAt(new e.Vector3D);var i=new x(t,this.view.stage);i.backgroundAlpha=0,this._localNode=i.getNode(this._asset),this._localNode.transformDisabled=!0,this._localNode.setParent(this)}return this._localNode},r.prototype.clearLocalNode=function(){this._localNode&&(this._localNode.onClear(null),this._localNode=null)},r.prototype.onClear=function(t){this.clearLocalNode(),this._pickObject&&(this._pickObject=null,this._pickObjectNode.setParent(null),this._pickObjectNode=null);for(var e=0;e<this._numChildNodes;e++)this._childNodes[e].onClear(t);this._childNodes.length=0,this._numChildNodes=0,this._scrollRect=null,this._scrollRectNode=null,this._renderToImage=!1,this._isDragEntity=!1,this._positionDirty=!1,this._scale9Container=null,this._inverseMatrix3DDirty=!0,this._maskDisabled=!1,this._colorTransformDisabled=!1,this._transformDisabled=!1,this._maskOwners=null,this._masks.length=0,this._parent=null,o.prototype.clear.call(this),o.prototype.onClear.call(this,t)},r.prototype.onInvalidate=function(t){this.invalidate()},r.prototype.clear=function(){o.prototype.clear.call(this),this._localNode&&this._localNode.clear();for(var t=0;t<this._numChildNodes;t++)this._childNodes[t].clear();this._pickObject&&this._pickObjectNode.clear()},r.prototype.isInFrustum=function(t,e,i,o){return!this.isInvisible()},r.prototype.invalidate=function(){this._invalid||(this._invalid=!0,o.prototype.invalidate.call(this),this._parent&&this._parent.invalidate())},r.prototype.isInvisible=function(){var e;return this._hierarchicalPropsDirty&t.HierarchicalProperty.VISIBLE&&(this._invisible=!this._transformDisabled&&(!this._asset.visible||(null===(e=this.parent)||void 0===e?void 0:e.isInvisible())),this._hierarchicalPropsDirty^=t.HierarchicalProperty.VISIBLE),this._invisible},r.prototype.isIntersectingRay=function(t,e,i,o){return!0},r.prototype.isRenderable=function(){return-1!=this.getMaskId()||!this.isInvisible()&&this.getColorTransform()._isRenderable()},r.prototype.isCastingShadow=function(){return!0},r.prototype.acceptTraverser=function(t){if(this._invalid=!1,(t.node==this||t===t.getTraverser(this))&&t.enterNode(this)){this._asset.maskMode||this._scrollRect===this._asset.scrollRect||(this._scrollRect=this._asset.scrollRect,this._scrollRectNode&&(this._scrollRectNode.setParent(null),this._scrollRectNode=null),this._scrollRect&&(this._scrollRectNode=this._asset.getScrollRectPrimitive().getAbstraction(this._pool),this._scrollRectNode.container.scrollRect=this._scrollRect,this._scrollRectNode.setParent(this))),t.applyEntity(this);for(var e=0;e<this._numChildNodes;e++)this._childNodes[e].acceptTraverser(t)}},r.prototype.addChildAt=function(t,e){var i=t.getAbstraction(this._pool);return i.setParent(this),e==this._numChildNodes?this._childNodes.push(i):this._childNodes.splice(e,0,i),this._numChildNodes++,this.invalidate(),i},r.prototype.removeChildAt=function(t){this._numChildNodes--;var e=t===this._numChildNodes?this._childNodes.pop():this._childNodes.splice(t,1)[0];return e.setParent(null),this.invalidate(),e},r.prototype.getChildAt=function(t){return this._childNodes.length>t?this._childNodes[t]:null},r.prototype.startDrag=function(){this._isDragEntity=!0},r.prototype.stopDrag=function(){this._isDragEntity=!1},r.prototype.isDragEntity=function(){return this._isDragEntity},r.prototype.isMouseDisabled=function(){var t;return this.isInvisible()||!this._asset.mouseEnabled||(null===(t=this.parent)||void 0===t?void 0:t.isMouseChildrenDisabled())},r.prototype.isMouseChildrenDisabled=function(){var e;return this._hierarchicalPropsDirty&t.HierarchicalProperty.MOUSE_ENABLED&&(this._mouseChildrenDisabled=!this._asset.mouseChildren||(null===(e=this.parent)||void 0===e?void 0:e.isMouseChildrenDisabled()),this._hierarchicalPropsDirty^=t.HierarchicalProperty.MOUSE_ENABLED),this._mouseChildrenDisabled},r.prototype.isDescendant=function(t){for(var e=this;e.parent;)if((e=e.parent)==t)return!0;return!1},r.prototype.invalidateHierarchicalProperty=function(e){e&t.HierarchicalProperty.COLOR_TRANSFORM&&this.dispatchEvent(this._invalidateColorTransformEvent||(this._invalidateColorTransformEvent=new d(d.INVALIDATE_COLOR_TRANSFORM)));var i=(this._hierarchicalPropsDirty^e)&e;if(i){this._hierarchicalPropsDirty|=i;for(var o=0;o<this._childNodes.length;++o)this._childNodes[o].invalidateHierarchicalProperty(e);this._pickObjectNode&&this._pickObjectNode.invalidateHierarchicalProperty(e),this._localNode&&this._localNode.invalidateHierarchicalProperty(e),e&t.HierarchicalProperty.SCENE_TRANSFORM&&(this._positionDirty=!0,this._inverseMatrix3DDirty=!0,this.dispatchEvent(this._invalidateMatrix3DEvent||(this._invalidateMatrix3DEvent=new d(d.INVALIDATE_MATRIX3D))),this.invalidate())}},r.prototype.setParent=function(e){this._parent&&this.clear(),this._parent=e,this.invalidateHierarchicalProperty(t.HierarchicalProperty.ALL)},r._nullTransform=new e.Transform,r._tempVector3D=new e.Vector3D,r._nullColorTransform=new e.ColorTransform,r}(e.AbstractionBase),E=function(t){function i(){var e=null!==t&&t.apply(this,arguments)||this;return e.shapeFlag=!1,e.findClosestCollision=!1,e._entities=[],e._pickers=[],e._collectedEntities=[],e}return n(i,t),Object.defineProperty(i.prototype,"node",{get:function(){return this._asset},enumerable:!1,configurable:!0}),i.prototype.init=function(e,i){t.prototype.init.call(this,e,i),this.pickGroup=i.pickGroup},i.prototype.onClear=function(e){t.prototype.onClear.call(this,e),this._dragNode=null,this._rootNode=null,this._entities.length=0,this._pickers.length=0,this._collectedEntities.length=0,this.pickGroup=null},i.prototype.traverse=function(){this._entities.length=0,this._pickers.length=0,this._asset.acceptTraverser(this)},i.prototype.getTraverser=function(t){if(!t.isMouseDisabled()||t.isDragEntity()){var e=this.pickGroup.getRaycastPicker(t);return e._isIntersectingRayInternal(this._rootNode,this._globalRayPosition,this._globalRayDirection,this._shapeFlag)&&this._pickers.push(e),e}return this},Object.defineProperty(i.prototype,"dragNode",{get:function(){return this._dragNode},set:function(t){this._dragNode!=t&&(this._dragNode&&this._dragNode.stopDrag(),this._dragNode=t,this._dragNode&&this._dragNode.startDrag())},enumerable:!1,configurable:!0}),i.prototype.enterNode=function(t){return!(t.isInvisible()&&-1==t.getMaskId()||t.getMaskId()!=this._rootNode.getMaskId())&&(t.pickObjectNode&&t.pickObjectNode.acceptTraverser(this),!0)},i.prototype.isIntersectingRay=function(t,e,i){return void 0===i&&(i=!1),this._isIntersectingRayInternal(this._asset,t,e,i)},i.prototype._isIntersectingRayInternal=function(t,e,i,o){return this._rootNode=t,this._globalRayPosition=e,this._globalRayDirection=i,this._shapeFlag=this.shapeFlag||o,this.traverse(),!(!this._entities.length&&!this._pickers.length)},i.prototype.getCollision=function(t,e,i,o){return void 0===i&&(i=!1),void 0===o&&(o=null),this._getCollisionInternal(t,e,i,!1,o)},i.prototype.getViewCollision=function(t,e,o,n){void 0===o&&(o=!1),void 0===n&&(n=null);var r=this._asset.view,s=r.unproject(t,e,0,i._rayPosition),a=r.unproject(t,e,1,i._rayDirection);return a.decrementBy(s),this._getCollisionInternal(s,a,o,!1,n)},i.prototype._getCollisionInternal=function(t,e,i,o,n){if(!this._isIntersectingRayInternal(this._asset,t,e,i))return null;this._collectEntities(this._collectedEntities,this._dragNode);var r=this._getPickingCollision(n);return this._collectedEntities.length=0,r},i.prototype.getObjectsUnderPoint=function(t,e){if(!this._isIntersectingRayInternal(this._asset,t,e,!0))return[];this._collectEntities(this._collectedEntities,this._dragNode);var i=this._getColliders();return this._collectedEntities.length=0,i},i.prototype._collectEntities=function(t,e){var i,o;void 0===e&&(e=null);for(var n=this._pickers.length-1;n>=0;n--)(i=this._pickers[n]).node!=e&&i._collectEntities(t,e);for(n=this._entities.length-1;n>=0;n--)(o=this._entities[n]).pickingCollision.rootNode=this._asset,t.push(o)},i.prototype.setIgnoreList=function(t){this._ignoredEntities=t},i.prototype.isIgnored=function(t){if(this._ignoredEntities)for(var e=this._ignoredEntities.length,i=0;i<e;i++)if(this._ignoredEntities[i]==t)return!0;return!1},i.sortOnNearT=function(t,e){return t.pickingCollision.rayEntryDistance>e.pickingCollision.rayEntryDistance?1:t.pickingCollision.rayEntryDistance<e.pickingCollision.rayEntryDistance?-1:0},i.prototype._getPickingCollision=function(t){var e,o;void 0===t&&(t=null),this._collectedEntities=this._collectedEntities.sort(i.sortOnNearT);for(var n=this._collectedEntities.length,r=0;r<n&&(o=(e=this._collectedEntities[r]).pickingCollision,null==t||o.rayEntryDistance<t.rayEntryDistance);r++)if(this._shapeFlag||e.shapeFlag)o.rayEntryDistance=Number.MAX_VALUE,e.isIntersectingShape(this.findClosestCollision)&&(t=o);else if(!o.rayOriginIsInsideBounds){t=o;break}return t&&i.updatePosition(t),this._dragNode&&"[asset MovieClip]"==this._dragNode.container.assetType&&this._dragNode.container.adapter&&this._dragNode.container.adapter.setDropTarget(t?t.containerNode:null),t},i.prototype._getColliders=function(){for(var t,e=[],i=this._collectedEntities.length,o=0;o<i;o++)(t=this._collectedEntities[o]).pickingCollision.rayEntryDistance=Number.MAX_VALUE,t.isIntersectingShape(!1)&&e.push(t.node.container);return e},i.updatePosition=function(t){var i=t.position||(t.position=new e.Vector3D),o=t.rayDirection,n=t.rayPosition,r=t.rayEntryDistance;i.x=n.x+r*o.x,i.y=n.y+r*o.y,i.z=n.z+r*o.z},i.prototype.dispose=function(){},i.prototype.applyEntity=function(t){var e;if(t.container.getEntity()){var i=t.getAbstraction(this.pickGroup);i._isIntersectingRayInternal(this._rootNode,this._globalRayPosition,this._globalRayDirection)&&this._entities.push(i)}else null===(e=t.checkAbstraction(this.pickGroup))||void 0===e||e.onClear(null)},i._rayPosition=new e.Vector3D,i._rayDirection=new e.Vector3D,i}(e.AbstractionBase),P=function(i){function o(){var t=null!==i&&i.apply(this,arguments)||this;return t._boundsPickers=[],t}return n(o,i),Object.defineProperty(o.prototype,"node",{get:function(){return this._asset},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"width",{get:function(){var t=this.getBoxBounds();return null==t?0:t.width},set:function(t){var e=this._asset.container.transform,i=this.getBoxBounds();if(null!=i){var n=e.rotation,r=e.matrix3D,s=r.transformBox(i,o.tmpBox),a=s.width>0?t/s.width:1;if(0!==n.z){var h=o.tmpMatrix;h.copyFrom(r),h.appendScale(a||o.MINIMAL_SCALE,1,1);var l=h.decompose()[3];e.scaleTo(l.x,l.y,l.z)}else{var c=e.scale;e.scaleTo(c.x*a||o.MINIMAL_SCALE,c.y,c.z)}}},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"height",{get:function(){var t=this.getBoxBounds();return null==t?0:t.height},set:function(t){var e=this._asset.container.transform,i=this.getBoxBounds();if(null!=i){var n=e.matrix3D,r=e.rotation,s=n.transformBox(i,o.tmpBox),a=s.height>0?t/s.height:1;if(0!==r.z){var h=o.tmpMatrix;h.copyFrom(n),h.appendScale(1,a||o.MINIMAL_SCALE,1);var l=h.decompose()[3];e.scaleTo(l.x,l.y,l.z)}else{var c=e.scale;e.scaleTo(c.x,c.y*a||o.MINIMAL_SCALE,c.z)}}},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"depth",{get:function(){var t=this.getBoxBounds();return null==t?0:t.depth*this._asset.container.transform.scale.z},set:function(t){var e=this.getBoxBounds();if(null!=e&&0!=e.depth){var i=this._asset.container;i.transform.scaleTo(i.transform.scale.x,i.transform.scale.y,t/e.depth)}},enumerable:!1,configurable:!0}),o.prototype.init=function(t,o){i.prototype.init.call(this,t,o),this._pickGroup=o.pickGroup,this._boundingVolumes=new e.WeakAssetSet("BoundingVolumeBase"),this._boundingVolumePools={}},o.prototype.onInvalidate=function(t){i.prototype.onInvalidate.call(this,t),this._boundingVolumes.forEach((function(e){return e.onInvalidate(t)}))},o.prototype.traverse=function(){this._invalid=!1,this._boundsPickers.length=0,this._asset.acceptTraverser(this)},o.prototype.getTraverser=function(t){var e=this._pickGroup.getBoundsPicker(t);return this._boundsPickers.push(e),e},o.prototype.enterNode=function(t){return!0},o.prototype.getBoundingVolume=function(t,e){void 0===t&&(t=null),void 0===e&&(e=null),null==t&&(t=this._asset),null==e&&(e=this._asset.container.defaultBoundingVolume);var i=this._boundingVolumePools[e]||(this._boundingVolumePools[e]=new v(this,e));return t.getAbstraction(i)},o.prototype.getBoxBounds=function(e,i,o){return void 0===e&&(e=null),void 0===i&&(i=!1),void 0===o&&(o=!1),this.getBoundingVolume(e,i?o?t.BoundingVolumeType.BOX_BOUNDS_FAST:t.BoundingVolumeType.BOX_BOUNDS:o?t.BoundingVolumeType.BOX_FAST:t.BoundingVolumeType.BOX).getBox()},o.prototype.getSphereBounds=function(e,i,o){return void 0===e&&(e=null),void 0===i&&(i=!1),void 0===o&&(o=!1),this.getBoundingVolume(e,i?o?t.BoundingVolumeType.SPHERE_BOUNDS_FAST:t.BoundingVolumeType.SPHERE_BOUNDS:o?t.BoundingVolumeType.SPHERE_FAST:t.BoundingVolumeType.SPHERE).getSphere()},o.prototype.addBoundingVolume=function(t){this._boundingVolumes.add(t)},o.prototype.removeBoundingVolume=function(t){this._boundingVolumes.remove(t)},o.prototype.hitTestPoint=function(t,e,i){return void 0===i&&(i=!1),this._hitTestPointInternal(this._asset,t,e,i,!1)},o.prototype._hitTestPointInternal=function(t,e,i,n,r){if(void 0===n&&(n=!1),void 0===r&&(r=!1),!(-1==this._asset.getMaskId()||r&&n))return!1;this._invalid&&this.traverse();var s=o.tmpPoint;s.setTo(e,i),this._asset.globalToLocal(s,s);var a=this.getBoxBounds(null,!1,!0);if(null==a||!a.contains(s.x,s.y,0))return!1;if(!n||"[asset TextField]"==this._asset.container.assetType||"[asset Billboard]"==this._asset.container.assetType)return!0;var h=this._boundsPickers.length;if(h)for(var l=0;l<h;++l)if(this._boundsPickers[l]._hitTestPointInternal(t,e,i,n,r))return!0;return!1},o.prototype.hitTestObject=function(t){var e=t.getBoxBounds(this._asset,!0,!0);if(null==e)return!1;var i=this.getBoxBounds(this._asset,!0,!0);return null!=i&&(!!e.intersects(i)&&t.getBoxBounds(this._asset,!0).intersects(this.getBoxBounds(this._asset,!0)))},o.prototype._getBoxBoundsInternal=function(t,i,o,n,r){void 0===t&&(t=null),void 0===i&&(i=!0),void 0===o&&(o=!0),void 0===n&&(n=null),void 0===r&&(r=null),this._invalid&&this.traverse();var s=this._boundsPickers.length;if(s>0)for(var a=new e.Matrix3D,h=0;h<s;++h)this._boundsPickers[h].node!=this._asset?(t?a.copyFrom(t):a.identity(),a.prepend(this._boundsPickers[h].node.container.transform.matrix3D),this._boundsPickers[h].node.container._registrationMatrix3D&&a.prepend(this._boundsPickers[h].node.container._registrationMatrix3D),r=this._boundsPickers[h]._getBoxBoundsInternal(a,i,o,n,r)):r=this._boundsPickers[h]._getBoxBoundsInternal(t,i,