@arcgis/core 4.33.0-next.20250317 → 4.33.0-next.20250318

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[2297],{2415:(e,t,r)=>{r.d(t,{V:()=>E});var i=r(9093),n=r(38954),o=r(97146),a=r(57917),s=r(29920),c=r(69720),l=r(96672),d=r(51850),u=r(4341),h=r(11964);function m(e,t,r){return(0,n.d)(f,t,e),(0,n.d)(p,r,e),.5*(0,n.l)((0,n.e)(f,f,p))}r(32114),new u.I(h.vt),new u.I((()=>{return e?{p0:(0,d.o8)(e.p0),p1:(0,d.o8)(e.p1),p2:(0,d.o8)(e.p2)}:{p0:(0,d.vt)(),p1:(0,d.vt)(),p2:(0,d.vt)()};var e}));const f=(0,d.vt)(),p=(0,d.vt)(),v=(0,d.vt)(),g=(0,d.vt)(),_=(0,d.vt)(),T=(0,d.vt)();var x=r(17478),b=r(620),A=r(46540);class E extends c.J{constructor(e,t,r=null,i=l.X.Mesh,n=null,a=-1){super(),this.material=e,this.mapPositions=r,this.type=i,this.objectAndLayerIdColor=n,this.edgeIndicesLength=a,this.highlights=new Set,this._highlightOptionsCounts=new Map,this.visible=!0,this._attributes=new Map,this._boundingInfo=null;for(const[e,r]of t)this._attributes.set(e,{...r,indices:(0,o.Dg)(r.indices)}),e===A.r.POSITION&&(this.edgeIndicesLength=this.edgeIndicesLength<0?this._attributes.get(e).indices.length:this.edgeIndicesLength)}instantiate(e={}){const t=new E(e.material||this.material,[],this.mapPositions,this.type,this.objectAndLayerIdColor,this.edgeIndicesLength);return this._attributes.forEach(((e,r)=>{e.exclusive=!1,t._attributes.set(r,e)})),t._boundingInfo=this._boundingInfo,t.transformation=e.transformation||this.transformation,t}get attributes(){return this._attributes}getMutableAttribute(e){let t=this._attributes.get(e);return t&&!t.exclusive&&(t={...t,exclusive:!0,data:(0,a.S)(t.data)},this._attributes.set(e,t)),t}setAttributeData(e,t){const r=this._attributes.get(e);r&&this._attributes.set(e,{...r,exclusive:!0,data:t})}get indexCount(){const e=this._attributes.values().next().value?.indices;return e?.length??0}get faceCount(){return this.indexCount/3}get boundingInfo(){return null==this._boundingInfo&&(this._boundingInfo=this._calculateBoundingInfo()),this._boundingInfo}computeAttachmentOrigin(e){return!!(this.type===l.X.Mesh?this._computeAttachmentOriginTriangles(e):this.type===l.X.Line?this._computeAttachmentOriginLines(e):this._computeAttachmentOriginPoints(e))&&(null!=this._transformation&&(0,n.t)(e,e,this._transformation),!0)}_computeAttachmentOriginTriangles(e){return function(e,t){if(!e)return!1;const{size:r,data:i,indices:o}=e;(0,n.i)(t,0,0,0),(0,n.i)(T,0,0,0);let a=0,s=0;for(let e=0;e<o.length-2;e+=3){const c=o[e]*r,l=o[e+1]*r,d=o[e+2]*r;(0,n.i)(v,i[c],i[c+1],i[c+2]),(0,n.i)(g,i[l],i[l+1],i[l+2]),(0,n.i)(_,i[d],i[d+1],i[d+2]);const u=m(v,g,_);u?((0,n.g)(v,v,g),(0,n.g)(v,v,_),(0,n.h)(v,v,1/3*u),(0,n.g)(t,t,v),a+=u):((0,n.g)(T,T,v),(0,n.g)(T,T,g),(0,n.g)(T,T,_),s+=3)}return!(0===s&&0===a||(0!==a?((0,n.h)(t,t,1/a),0):0===s||((0,n.h)(t,T,1/s),0)))}(this.attributes.get(A.r.POSITION),e)}_computeAttachmentOriginLines(e){const t=this.attributes.get(A.r.POSITION);return function(e,t,r){if(!e)return!1;(0,n.i)(r,0,0,0),(0,n.i)(T,0,0,0);let i=0,o=0;const{size:a,data:s,indices:c}=e,l=c.length-1,d=l+(t?2:0);for(let e=0;e<d;e+=2){const t=e<l?e+1:0,d=c[e<l?e:l]*a,u=c[t]*a;v[0]=s[d],v[1]=s[d+1],v[2]=s[d+2],g[0]=s[u],g[1]=s[u+1],g[2]=s[u+2],(0,n.h)(v,(0,n.g)(v,v,g),.5);const h=(0,n.G)(v,g);h>0?((0,n.g)(r,r,(0,n.h)(v,v,h)),i+=h):0===i&&((0,n.g)(T,T,v),o++)}return 0!==i?((0,n.h)(r,r,1/i),!0):0!==o&&((0,n.h)(r,T,1/o),!0)}(t,function(e,t){return!(!("isClosed"in e)||!e.isClosed)&&t.indices.length>2}(this.material.parameters,t),e)}_computeAttachmentOriginPoints(e){return function(e,t){if(!e)return!1;const{size:r,data:i,indices:o}=e;(0,n.i)(t,0,0,0);let a=-1,s=0;for(let e=0;e<o.length;e++){const n=o[e]*r;a!==n&&(t[0]+=i[n],t[1]+=i[n+1],t[2]+=i[n+2],s++),a=n}return s>1&&(0,n.h)(t,t,1/s),s>0}(this.attributes.get(A.r.POSITION),e)}invalidateBoundingInfo(){this._boundingInfo=null}_calculateBoundingInfo(){const e=this.attributes.get(A.r.POSITION);if(!e||0===e.indices.length)return null;const t=this.type===l.X.Mesh?3:1;(0,b.vA)(e.indices.length%t==0,"Indexing error: "+e.indices.length+" not divisible by "+t);const r=(0,o.tM)(e.indices.length/t);return new s.j(r,t,e)}get transformation(){return this._transformation??i.zK}set transformation(e){this._transformation=e&&e!==i.zK?(0,i.o8)(e):null}get highlightNames(){return this._highlightOptionsCounts}get hasHighlights(){return this._highlightOptionsCounts.size>0}foreachHighlightOptions(e){this._highlightOptionsCounts.forEach(((t,r)=>e(r)))}allocateIdAndHighlight(e){const t=new x.h(e);return this.addHighlight(t)}addHighlight(e){this.highlights.add(e);const{highlightName:t}=e,r=(this._highlightOptionsCounts.get(t)??0)+1;return this._highlightOptionsCounts.set(t,r),e}removeHighlight(e){if(this.highlights.delete(e)){const{highlightName:t}=e,r=this._highlightOptionsCounts.get(t)??0;r<=1?this._highlightOptionsCounts.delete(t):this._highlightOptionsCounts.set(t,r-1)}}}},11725:(e,t,r)=>{r.d(t,{im:()=>u,m$:()=>i});var i,n,o=r(51850),a=r(69720),s=r(96672),c=r(39341),l=r(43616),d=r(65786);class u extends a.J{constructor(e,t){super(),this.type=s.X.Material,this.supportsEdges=!1,this._renderPriority=0,this.vertexAttributeLocations=c.D,this._pp0=(0,o.fA)(0,0,1),this._pp1=(0,o.fA)(0,0,0),this._parameters=new t,(0,l.MB)(this._parameters,e),this.validateParameters(this._parameters)}get parameters(){return this._parameters}update(e){return!1}setParameters(e,t=!0){(0,l.MB)(this._parameters,e)&&(this.validateParameters(this._parameters),t&&this._parametersChanged())}validateParameters(e){}shouldRender(e){return this.visible&&this.isVisibleForOutput(e.output)&&(!this.parameters.isDecoration||e.bind.decorations)&&!!(this.parameters.renderOccluded&e.renderOccludedMask)}isVisibleForOutput(e){return!0}get renderPriority(){return this._renderPriority}set renderPriority(e){e!==this._renderPriority&&(this._renderPriority=e,this._parametersChanged())}_parametersChanged(){this.repository?.materialChanged(this)}queryRenderOccludedState(e){return this.visible&&this.parameters.renderOccluded===e}get hasEmissions(){return!1}intersectDraped(e,t,r,i,n,o){return this._pp0[0]=this._pp1[0]=i[0],this._pp0[1]=this._pp1[1]=i[1],this.intersect(e,t,r,this._pp0,this._pp1,n)}}(n=i||(i={}))[n.None=0]="None",n[n.Occlude=1]="Occlude",n[n.Transparent=2]="Transparent",n[n.OccludeAndTransparent=4]="OccludeAndTransparent",n[n.OccludeAndTransparentStencil=8]="OccludeAndTransparentStencil",n[n.Opaque=16]="Opaque",d.Y},11787:(e,t,r)=>{r.d(t,{$U:()=>re});var i=r(38954),n=r(51850),o=r(24151),a=r(1843),s=r(49255),c=r(96336),l=r(22911),d=r(62602),u=r(59469),h=r(16943),m=r(89192),f=r(25634),p=r(11725),v=r(33524),g=r(70328),_=r(96672),T=r(620),x=r(46540);class b{constructor(e=!1,t=!0){this.isVerticalRay=e,this.normalRequired=t}}const A=(0,g.vt)();function E(e,t,r,n,o,a){if(!e.visible)return;const s=(0,i.a)(F,n,r),c=(e,t,r)=>{a(e,r,t,!1)},l=new b(!1,t.options.normalRequired);if(e.boundingInfo){(0,T.vA)(e.type===_.X.Mesh);const i=t.tolerance;M(e.boundingInfo,r,s,i,o,l,c)}else{const t=e.attributes.get(x.r.POSITION),n=t.indices;!function(e,t,r,n,o,a,s,c,l,d){const u=t,h=B,m=Math.abs(u[0]),f=Math.abs(u[1]),p=Math.abs(u[2]),v=m>=f?m>=p?0:2:f>=p?1:2,g=v,_=u[g]<0?2:1,T=(v+_)%3,x=(v+(3-_))%3,b=u[T]/u[g],A=u[x]/u[g],E=1/u[g],S=R,M=I,C=O,{normalRequired:w}=l;for(let t=r;t<n;++t){const r=3*t,n=s*o[r];(0,i.i)(h[0],a[n+0],a[n+1],a[n+2]);const l=s*o[r+1];(0,i.i)(h[1],a[l+0],a[l+1],a[l+2]);const u=s*o[r+2];(0,i.i)(h[2],a[u+0],a[u+1],a[u+2]),c&&((0,i.c)(h[0],c.applyToVertex(h[0][0],h[0][1],h[0][2],t)),(0,i.c)(h[1],c.applyToVertex(h[1][0],h[1][1],h[1][2],t)),(0,i.c)(h[2],c.applyToVertex(h[2][0],h[2][1],h[2][2],t))),(0,i.a)(S,h[0],e),(0,i.a)(M,h[1],e),(0,i.a)(C,h[2],e);const m=S[T]-b*S[g],f=S[x]-A*S[g],p=M[T]-b*M[g],v=M[x]-A*M[g],_=C[T]-b*C[g],R=C[x]-A*C[g],I=_*v-R*p,O=m*R-f*_,y=p*f-v*m;if((I<0||O<0||y<0)&&(I>0||O>0||y>0))continue;const P=I+O+y;if(0===P)continue;const L=I*(E*S[g])+O*(E*M[g])+y*(E*C[g]);if(L*Math.sign(P)<0)continue;const D=L/P;D>=0&&d(D,t,w?N(h):null)}}(r,s,0,n.length/3,n,t.data,t.stride,o,l,c)}}const S=(0,n.vt)();function M(e,t,r,n,o,a,s){if(null==e)return;const c=function(e,t){return(0,i.i)(t,1/e[0],1/e[1],1/e[2])}(r,S);if((0,g.Ne)(A,e.bbMin),(0,g.vI)(A,e.bbMax),null!=o&&o.applyToAabb(A),function(e,t,r,i){return function(e,t,r,i){const n=(e[0]-i-t[0])*r[0],o=(e[3]+i-t[0])*r[0];let a=Math.min(n,o),s=Math.max(n,o);const c=(e[1]-i-t[1])*r[1],l=(e[4]+i-t[1])*r[1];if(s=Math.min(s,Math.max(c,l)),s<0)return!1;if(a=Math.max(a,Math.min(c,l)),a>s)return!1;const d=(e[2]-i-t[2])*r[2],u=(e[5]+i-t[2])*r[2];return s=Math.min(s,Math.max(d,u)),!(s<0)&&(a=Math.max(a,Math.min(d,u)),!(a>s)&&a<1/0)}(e,t,r,i)}(A,t,c,n)){const{primitiveIndices:i,position:c}=e,l=i?i.length:c.indices.length/3;if(l>D){const i=e.getChildren();if(void 0!==i){for(const e of i)M(e,t,r,n,o,a,s);return}}!function(e,t,r,i,n,o,a,s,c,l,d){const u=e[0],h=e[1],m=e[2],f=t[0],p=t[1],v=t[2],{normalRequired:g}=l;for(let e=0;e<i;++e){const t=s[e],r=3*t,i=a*n[r];let l=o[i],_=o[i+1],T=o[i+2];const x=a*n[r+1];let b=o[x],A=o[x+1],E=o[x+2];const S=a*n[r+2];let M=o[S],w=o[S+1],R=o[S+2];null!=c&&([l,_,T]=c.applyToVertex(l,_,T,e),[b,A,E]=c.applyToVertex(b,A,E,e),[M,w,R]=c.applyToVertex(M,w,R,e));const I=b-l,O=A-_,N=E-T,P=M-l,L=w-_,D=R-T,F=p*D-L*v,B=v*P-D*f,U=f*L-P*p,G=I*F+O*B+N*U;if(Math.abs(G)<=H)continue;const z=u-l,V=h-_,W=m-T,j=z*F+V*B+W*U;if(G>0){if(j<0||j>G)continue}else if(j>0||j<G)continue;const k=V*N-O*W,Y=W*I-N*z,$=z*O-I*V,q=f*k+p*Y+v*$;if(G>0){if(q<0||j+q>G)continue}else if(q>0||j+q<G)continue;const X=(P*k+L*Y+D*$)/G;X>=0&&d(X,t,g?y(I,O,N,P,L,D,C):null)}}(t,r,0,l,c.indices,c.data,c.stride,i,o,a,s)}}const C=(0,n.vt)();function w(e,t,r,i,n,o,a,s){const c=e[0],l=e[1],d=e[2],u=t[0],h=t[1],m=t[2];for(let e=r;e<i;++e){const t=3*e,r=t+1,i=t+2,f=o*t,p=n[f],v=n[f+1],g=n[f+2],_=o*r,T=o*i,x=n[_]-p,b=n[_+1]-v,A=n[_+2]-g,E=n[T]-p,S=n[T+1]-v,M=n[T+2]-g,w=h*M-S*m,R=m*E-M*u,I=u*S-E*h,O=x*w+b*R+A*I;if(Math.abs(O)<=H)continue;const N=c-p,P=l-v,L=d-g,D=N*w+P*R+L*I;if(O>0){if(D<0||D>O)continue}else if(D>0||D<O)continue;const F=P*A-b*L,B=L*x-A*N,U=N*b-x*P,G=u*F+h*B+m*U;if(O>0){if(G<0||D+G>O)continue}else if(G>0||D+G<O)continue;const z=(E*F+S*B+M*U)/O;z>=0&&s(z,e,a?y(x,b,A,E,S,M,C):null)}}const R=(0,n.vt)(),I=(0,n.vt)(),O=(0,n.vt)();function y(e,t,r,n,o,a,s){return(0,i.i)(P,e,t,r),(0,i.i)(L,n,o,a),(0,i.e)(s,P,L),(0,i.n)(s,s),s}function N(e){return(0,i.a)(P,e[1],e[0]),(0,i.a)(L,e[2],e[0]),(0,i.e)(C,P,L),(0,i.n)(C,C),C}const P=(0,n.vt)(),L=(0,n.vt)(),D=1e3,H=1e-7,F=(0,n.vt)(),B=[(0,n.vt)(),(0,n.vt)(),(0,n.vt)()];var U=r(13464),G=r(16396),z=r(13030),V=r(59907);class W{constructor(e){this.vertexBufferLayout=e}elementCount(e){return e.get(x.r.POSITION).indices.length}write(e,t,r,i,n,o){return(0,V.SA)(r,i,this.vertexBufferLayout,e,t,n,o)}intersect(e,t,r,n,o,a,s){const c=this.vertexBufferLayout.createView(e).getField(x.r.POSITION,z.xs);if(null==c)return;const l=(0,i.a)(j,a,o),d=c.count/3,u=n.options.normalRequired;w(o,l,0,d,c.typedBuffer,c.typedBufferStride,u,((e,t,r)=>{s(e,r,t,!1)}))}}const j=(0,n.vt)();var k=r(43616),Y=r(97225),$=r(90237),q=r(53466),X=r(51976),Z=r(35256);class J extends Z.E{constructor(e){super(),this.spherical=e,this.alphaDiscardMode=m.sf.Opaque,this.doubleSidedMode=d.W.None,this.pbrMode=u.A9.Disabled,this.cullFace=m.s2.None,this.normalType=c.W.Attribute,this.customDepthTest=m.it.Less,this.emissionSource=l.ZX.None,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.hasVerticalOffset=!1,this.hasColorTexture=!1,this.hasMetallicRoughnessTexture=!1,this.hasOcclusionTexture=!1,this.hasNormalTexture=!1,this.hasScreenSizePerspective=!1,this.hasVertexTangents=!1,this.hasOccludees=!1,this.hasModelTransformation=!1,this.offsetBackfaces=!1,this.vvSize=!1,this.vvColor=!1,this.receiveShadows=!1,this.receiveAmbientOcclusion=!1,this.textureAlphaPremultiplied=!1,this.instanced=!1,this.instancedColor=!1,this.writeDepth=!0,this.transparent=!1,this.enableOffset=!0,this.terrainDepthTest=!1,this.cullAboveTerrain=!1,this.snowCover=!1,this.hasColorTextureTransform=!1,this.hasEmissionTextureTransform=!1,this.hasNormalTextureTransform=!1,this.hasOcclusionTextureTransform=!1,this.hasMetallicRoughnessTextureTransform=!1,this.occlusionPass=!1,this.hasVvInstancing=!0,this.useCustomDTRExponentForWater=!1,this.useFillLights=!0}get textureCoordinateType(){return this.hasColorTexture||this.hasMetallicRoughnessTexture||this.emissionSource===l.ZX.Texture||this.hasOcclusionTexture||this.hasNormalTexture?q.I.Default:q.I.None}get objectAndLayerIdColorInstanced(){return this.instanced}get discardInvisibleFragments(){return this.transparent}}(0,$._)([(0,X.W)({count:m.sf.COUNT})],J.prototype,"alphaDiscardMode",void 0),(0,$._)([(0,X.W)({count:d.W.COUNT})],J.prototype,"doubleSidedMode",void 0),(0,$._)([(0,X.W)({count:u.A9.COUNT})],J.prototype,"pbrMode",void 0),(0,$._)([(0,X.W)({count:m.s2.COUNT})],J.prototype,"cullFace",void 0),(0,$._)([(0,X.W)({count:c.W.COUNT})],J.prototype,"normalType",void 0),(0,$._)([(0,X.W)({count:m.it.COUNT})],J.prototype,"customDepthTest",void 0),(0,$._)([(0,X.W)({count:l.ZX.COUNT})],J.prototype,"emissionSource",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasVertexColors",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasSymbolColors",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasVerticalOffset",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasColorTexture",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasMetallicRoughnessTexture",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasOcclusionTexture",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasNormalTexture",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasScreenSizePerspective",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasVertexTangents",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasOccludees",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasModelTransformation",void 0),(0,$._)([(0,X.W)()],J.prototype,"offsetBackfaces",void 0),(0,$._)([(0,X.W)()],J.prototype,"vvSize",void 0),(0,$._)([(0,X.W)()],J.prototype,"vvColor",void 0),(0,$._)([(0,X.W)()],J.prototype,"receiveShadows",void 0),(0,$._)([(0,X.W)()],J.prototype,"receiveAmbientOcclusion",void 0),(0,$._)([(0,X.W)()],J.prototype,"textureAlphaPremultiplied",void 0),(0,$._)([(0,X.W)()],J.prototype,"instanced",void 0),(0,$._)([(0,X.W)()],J.prototype,"instancedColor",void 0),(0,$._)([(0,X.W)()],J.prototype,"writeDepth",void 0),(0,$._)([(0,X.W)()],J.prototype,"transparent",void 0),(0,$._)([(0,X.W)()],J.prototype,"enableOffset",void 0),(0,$._)([(0,X.W)()],J.prototype,"terrainDepthTest",void 0),(0,$._)([(0,X.W)()],J.prototype,"cullAboveTerrain",void 0),(0,$._)([(0,X.W)()],J.prototype,"snowCover",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasColorTextureTransform",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasEmissionTextureTransform",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasNormalTextureTransform",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasOcclusionTextureTransform",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasMetallicRoughnessTextureTransform",void 0);var K=r(97220),Q=r(57323);class ee extends Y.R5{constructor(e,t){super(e,t,new K.$(Q.R,(()=>r.e(9933).then(r.bind(r,39933))))),this.type="RealisticTreeTechnique"}}var te=r(49788);class re extends p.im{constructor(e,t){super(e,ne),this.materialType="default",this.supportsEdges=!0,this.produces=new Map([[U.N.OPAQUE_MATERIAL,e=>((0,s.iq)(e)||(0,s.PJ)(e))&&!this.transparent],[U.N.TRANSPARENT_MATERIAL,e=>((0,s.iq)(e)||(0,s.PJ)(e))&&this.transparent&&this.parameters.writeDepth],[U.N.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,e=>((0,s.XY)(e)||(0,s.PJ)(e))&&this.transparent&&!this.parameters.writeDepth]]),this._vertexBufferLayout=function(e){const t=(0,a.BP)().vec3f(x.r.POSITION);return e.normalType===c.W.Compressed?t.vec2i16(x.r.NORMALCOMPRESSED,{glNormalized:!0}):t.vec3f(x.r.NORMAL),e.hasVertexTangents&&t.vec4f(x.r.TANGENT),(e.textureId||e.normalTextureId||e.metallicRoughnessTextureId||e.emissiveTextureId||e.occlusionTextureId)&&t.vec2f(x.r.UV0),e.hasVertexColors&&t.vec4u8(x.r.COLOR),e.hasSymbolColors&&t.vec4u8(x.r.SYMBOLCOLOR),(0,h.E)()&&t.vec4u8(x.r.OBJECTANDLAYERIDCOLOR),t}(this.parameters),this._configuration=new J(t.spherical)}isVisibleForOutput(e){return e!==s.V.Shadow&&e!==s.V.ShadowExcludeHighlight&&e!==s.V.ShadowHighlight||this.parameters.castShadows}get visible(){const{layerOpacity:e,colorMixMode:t,opacity:r,externalColor:i}=this.parameters;return e*("replace"===t?1:r)*("ignore"===t?1:i[3])>=te.Q}get hasEmissions(){return!!this.parameters.emissiveTextureId||!(0,i.p)(this.parameters.emissiveFactor,n.uY)}getConfiguration(e,t){const r=this.parameters,{treeRendering:i,doubleSided:n,doubleSidedType:o}=r;return this._configuration.output=e,this._configuration.hasNormalTexture=!i&&!!r.normalTextureId,this._configuration.hasColorTexture=!!r.textureId,this._configuration.hasVertexTangents=!i&&r.hasVertexTangents,this._configuration.instanced=r.isInstanced,this._configuration.instancedDoublePrecision=r.instancedDoublePrecision,this._configuration.vvSize=!!r.vvSize,this._configuration.hasVerticalOffset=null!=r.verticalOffset,this._configuration.hasScreenSizePerspective=null!=r.screenSizePerspective,this._configuration.hasSlicePlane=r.hasSlicePlane,this._configuration.alphaDiscardMode=r.textureAlphaMode,this._configuration.normalType=i?c.W.Attribute:r.normalType,this._configuration.transparent=this.transparent,this._configuration.writeDepth=r.writeDepth,null!=r.customDepthTest&&(this._configuration.customDepthTest=r.customDepthTest),this._configuration.hasOccludees=t.hasOccludees,this._configuration.cullFace=r.hasSlicePlane?m.s2.None:r.cullFace,this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration.hasModelTransformation=!i&&null!=r.modelTransformation,this._configuration.hasVertexColors=r.hasVertexColors,this._configuration.hasSymbolColors=r.hasSymbolColors,this._configuration.doubleSidedMode=i?d.W.WindingOrder:n&&"normal"===o?d.W.View:n&&"winding-order"===o?d.W.WindingOrder:d.W.None,this._configuration.instancedColor=r.hasInstancedColor,(0,s.RN)(e)?(this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration.receiveShadows=r.receiveShadows,this._configuration.receiveAmbientOcclusion=r.receiveAmbientOcclusion&&null!=t.ssao):(this._configuration.terrainDepthTest=!1,this._configuration.receiveShadows=this._configuration.receiveAmbientOcclusion=!1),this._configuration.vvColor=!!r.vvColor,this._configuration.textureAlphaPremultiplied=!!r.textureAlphaPremultiplied,this._configuration.pbrMode=r.usePBR?r.isSchematic?u.A9.Schematic:u.A9.Normal:u.A9.Disabled,this._configuration.hasMetallicRoughnessTexture=!i&&!!r.metallicRoughnessTextureId,this._configuration.emissionSource=i?l.ZX.None:null!=r.emissiveTextureId?l.ZX.Texture:r.usePBR?l.ZX.Value:l.ZX.None,this._configuration.hasOcclusionTexture=!i&&!!r.occlusionTextureId,this._configuration.offsetBackfaces=!(!this.transparent||!r.offsetTransparentBackfaces),this._configuration.oitPass=t.oitPass,this._configuration.enableOffset=t.camera.relativeElevation<v.xt,this._configuration.snowCover=function(e){return null!=e.weather&&e.weatherVisible&&"snowy"===e.weather.type&&"enabled"===e.weather.snowCover}(t),this._configuration.hasColorTextureTransform=!!r.colorTextureTransformMatrix,this._configuration.hasNormalTextureTransform=!!r.normalTextureTransformMatrix,this._configuration.hasEmissionTextureTransform=!!r.emissiveTextureTransformMatrix,this._configuration.hasOcclusionTextureTransform=!!r.occlusionTextureTransformMatrix,this._configuration.hasMetallicRoughnessTextureTransform=!!r.metallicRoughnessTextureTransformMatrix,this._configuration}intersect(e,t,r,n,a,s){if(null!=this.parameters.verticalOffset){const e=r.camera;(0,i.i)(de,t[12],t[13],t[14]);let s=null;switch(r.viewingMode){case o.RT.Global:s=(0,i.n)(ce,de);break;case o.RT.Local:s=(0,i.c)(ce,se)}let c=0;const l=(0,i.d)(ue,de,e.eye),d=(0,i.l)(l),u=(0,i.h)(l,l,1/d);let h=null;this.parameters.screenSizePerspective&&(h=(0,i.f)(s,u)),c+=(0,k.kE)(e,d,this.parameters.verticalOffset,h??0,this.parameters.screenSizePerspective),(0,i.h)(s,s,c),(0,i.q)(le,s,r.transform.inverseRotation),n=(0,i.d)(oe,n,le),a=(0,i.d)(ae,a,le)}E(e,r,n,a,(0,G.ou)(r.verticalOffset),s)}createGLMaterial(e){return new ie(e)}createBufferWriter(){return new W(this._vertexBufferLayout)}get transparent(){const{parameters:{drivenOpacity:e,opacity:t,externalColor:[r,i,n,o],layerOpacity:a,texture:s,textureId:c,textureAlphaMode:l,colorMixMode:d}}=this;return e||t<1&&"replace"!==d||o<1&&"ignore"!==d||a<1||(null!=s||null!=c)&&l!==m.sf.Opaque&&l!==m.sf.Mask&&"replace"!==d}}class ie extends f.m8{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){this._material.setParameters({receiveShadows:e.shadowMap.enabled});const t=this._material.parameters;this.updateTexture(t.textureId);const r=e.camera.viewInverseTransposeMatrix;return(0,i.i)(t.origin,r[3],r[7],r[11]),this._material.setParameters(this.textureBindParameters),this.getTechnique(t.treeRendering?ee:Y.R5,e)}}class ne extends Y.uD{constructor(){super(...arguments),this.treeRendering=!1,this.hasVertexTangents=!1}}const oe=(0,n.vt)(),ae=(0,n.vt)(),se=(0,n.fA)(0,0,1),ce=(0,n.vt)(),le=(0,n.vt)(),de=(0,n.vt)(),ue=(0,n.vt)()},11955:(e,t,r)=>{r.d(t,{S:()=>s}),r(69270),r(74333).n;var i=r(20304),n=r(31821),o=r(89192),a=r(49788);function s(e,t){!function(e,t,r){const i=e.fragment,s=t.alphaDiscardMode,c=s===o.sf.Blend;s!==o.sf.Mask&&s!==o.sf.MaskBlend||i.uniforms.add(r),i.code.add(n.H`
1
+ "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[2297],{2415:(e,t,r)=>{r.d(t,{V:()=>E});var i=r(9093),o=r(38954),n=r(97146),a=r(57917),s=r(29920),c=r(69720),l=r(96672),d=r(51850),u=r(4341),h=r(11964);function m(e,t,r){return(0,o.d)(p,t,e),(0,o.d)(f,r,e),.5*(0,o.l)((0,o.e)(p,p,f))}r(32114),new u.I(h.vt),new u.I((()=>{return e?{p0:(0,d.o8)(e.p0),p1:(0,d.o8)(e.p1),p2:(0,d.o8)(e.p2)}:{p0:(0,d.vt)(),p1:(0,d.vt)(),p2:(0,d.vt)()};var e}));const p=(0,d.vt)(),f=(0,d.vt)(),v=(0,d.vt)(),g=(0,d.vt)(),_=(0,d.vt)(),T=(0,d.vt)();var x=r(17478),b=r(620),A=r(46540);class E extends c.J{constructor(e,t,r=null,i=l.X.Mesh,o=null,a=-1){super(),this.material=e,this.mapPositions=r,this.type=i,this.objectAndLayerIdColor=o,this.edgeIndicesLength=a,this.highlights=new Set,this._highlightOptionsCounts=new Map,this.visible=!0,this._attributes=new Map,this._boundingInfo=null;for(const[e,r]of t)this._attributes.set(e,{...r,indices:(0,n.Dg)(r.indices)}),e===A.r.POSITION&&(this.edgeIndicesLength=this.edgeIndicesLength<0?this._attributes.get(e).indices.length:this.edgeIndicesLength)}instantiate(e={}){const t=new E(e.material||this.material,[],this.mapPositions,this.type,this.objectAndLayerIdColor,this.edgeIndicesLength);return this._attributes.forEach(((e,r)=>{e.exclusive=!1,t._attributes.set(r,e)})),t._boundingInfo=this._boundingInfo,t.transformation=e.transformation||this.transformation,t}get attributes(){return this._attributes}getMutableAttribute(e){let t=this._attributes.get(e);return t&&!t.exclusive&&(t={...t,exclusive:!0,data:(0,a.S)(t.data)},this._attributes.set(e,t)),t}setAttributeData(e,t){const r=this._attributes.get(e);r&&this._attributes.set(e,{...r,exclusive:!0,data:t})}get indexCount(){const e=this._attributes.values().next().value?.indices;return e?.length??0}get faceCount(){return this.indexCount/3}get boundingInfo(){return null==this._boundingInfo&&(this._boundingInfo=this._calculateBoundingInfo()),this._boundingInfo}computeAttachmentOrigin(e){return!!(this.type===l.X.Mesh?this._computeAttachmentOriginTriangles(e):this.type===l.X.Line?this._computeAttachmentOriginLines(e):this._computeAttachmentOriginPoints(e))&&(null!=this._transformation&&(0,o.t)(e,e,this._transformation),!0)}_computeAttachmentOriginTriangles(e){return function(e,t){if(!e)return!1;const{size:r,data:i,indices:n}=e;(0,o.i)(t,0,0,0),(0,o.i)(T,0,0,0);let a=0,s=0;for(let e=0;e<n.length-2;e+=3){const c=n[e]*r,l=n[e+1]*r,d=n[e+2]*r;(0,o.i)(v,i[c],i[c+1],i[c+2]),(0,o.i)(g,i[l],i[l+1],i[l+2]),(0,o.i)(_,i[d],i[d+1],i[d+2]);const u=m(v,g,_);u?((0,o.g)(v,v,g),(0,o.g)(v,v,_),(0,o.h)(v,v,1/3*u),(0,o.g)(t,t,v),a+=u):((0,o.g)(T,T,v),(0,o.g)(T,T,g),(0,o.g)(T,T,_),s+=3)}return!(0===s&&0===a||(0!==a?((0,o.h)(t,t,1/a),0):0===s||((0,o.h)(t,T,1/s),0)))}(this.attributes.get(A.r.POSITION),e)}_computeAttachmentOriginLines(e){const t=this.attributes.get(A.r.POSITION);return function(e,t,r){if(!e)return!1;(0,o.i)(r,0,0,0),(0,o.i)(T,0,0,0);let i=0,n=0;const{size:a,data:s,indices:c}=e,l=c.length-1,d=l+(t?2:0);for(let e=0;e<d;e+=2){const t=e<l?e+1:0,d=c[e<l?e:l]*a,u=c[t]*a;v[0]=s[d],v[1]=s[d+1],v[2]=s[d+2],g[0]=s[u],g[1]=s[u+1],g[2]=s[u+2],(0,o.h)(v,(0,o.g)(v,v,g),.5);const h=(0,o.G)(v,g);h>0?((0,o.g)(r,r,(0,o.h)(v,v,h)),i+=h):0===i&&((0,o.g)(T,T,v),n++)}return 0!==i?((0,o.h)(r,r,1/i),!0):0!==n&&((0,o.h)(r,T,1/n),!0)}(t,function(e,t){return!(!("isClosed"in e)||!e.isClosed)&&t.indices.length>2}(this.material.parameters,t),e)}_computeAttachmentOriginPoints(e){return function(e,t){if(!e)return!1;const{size:r,data:i,indices:n}=e;(0,o.i)(t,0,0,0);let a=-1,s=0;for(let e=0;e<n.length;e++){const o=n[e]*r;a!==o&&(t[0]+=i[o],t[1]+=i[o+1],t[2]+=i[o+2],s++),a=o}return s>1&&(0,o.h)(t,t,1/s),s>0}(this.attributes.get(A.r.POSITION),e)}invalidateBoundingInfo(){this._boundingInfo=null}_calculateBoundingInfo(){const e=this.attributes.get(A.r.POSITION);if(!e||0===e.indices.length)return null;const t=this.type===l.X.Mesh?3:1;(0,b.vA)(e.indices.length%t==0,"Indexing error: "+e.indices.length+" not divisible by "+t);const r=(0,n.tM)(e.indices.length/t);return new s.j(r,t,e)}get transformation(){return this._transformation??i.zK}set transformation(e){this._transformation=e&&e!==i.zK?(0,i.o8)(e):null}get highlightNames(){return this._highlightOptionsCounts}get hasHighlights(){return this._highlightOptionsCounts.size>0}foreachHighlightOptions(e){this._highlightOptionsCounts.forEach(((t,r)=>e(r)))}allocateIdAndHighlight(e){const t=new x.h(e);return this.addHighlight(t)}addHighlight(e){this.highlights.add(e);const{highlightName:t}=e,r=(this._highlightOptionsCounts.get(t)??0)+1;return this._highlightOptionsCounts.set(t,r),e}removeHighlight(e){if(this.highlights.delete(e)){const{highlightName:t}=e,r=this._highlightOptionsCounts.get(t)??0;r<=1?this._highlightOptionsCounts.delete(t):this._highlightOptionsCounts.set(t,r-1)}}}},11725:(e,t,r)=>{r.d(t,{im:()=>u,m$:()=>i});var i,o,n=r(51850),a=r(69720),s=r(96672),c=r(39341),l=r(43616),d=r(65786);class u extends a.J{constructor(e,t){super(),this.type=s.X.Material,this.supportsEdges=!1,this._renderPriority=0,this.vertexAttributeLocations=c.D,this._pp0=(0,n.fA)(0,0,1),this._pp1=(0,n.fA)(0,0,0),this._parameters=new t,(0,l.MB)(this._parameters,e),this.validateParameters(this._parameters)}get parameters(){return this._parameters}update(e){return!1}setParameters(e,t=!0){(0,l.MB)(this._parameters,e)&&(this.validateParameters(this._parameters),t&&this._parametersChanged())}validateParameters(e){}shouldRender(e){return this.visible&&this.isVisibleForOutput(e.output)&&(!this.parameters.isDecoration||e.bind.decorations)&&!!(this.parameters.renderOccluded&e.renderOccludedMask)}isVisibleForOutput(e){return!0}get renderPriority(){return this._renderPriority}set renderPriority(e){e!==this._renderPriority&&(this._renderPriority=e,this._parametersChanged())}_parametersChanged(){this.repository?.materialChanged(this)}queryRenderOccludedState(e){return this.visible&&this.parameters.renderOccluded===e}get hasEmissions(){return!1}intersectDraped(e,t,r,i,o,n){return this._pp0[0]=this._pp1[0]=i[0],this._pp0[1]=this._pp1[1]=i[1],this.intersect(e,t,r,this._pp0,this._pp1,o)}}(o=i||(i={}))[o.None=0]="None",o[o.Occlude=1]="Occlude",o[o.Transparent=2]="Transparent",o[o.OccludeAndTransparent=4]="OccludeAndTransparent",o[o.OccludeAndTransparentStencil=8]="OccludeAndTransparentStencil",o[o.Opaque=16]="Opaque",d.Y},11787:(e,t,r)=>{r.d(t,{$U:()=>re});var i=r(38954),o=r(51850),n=r(24151),a=r(1843),s=r(49255),c=r(96336),l=r(22911),d=r(62602),u=r(59469),h=r(16943),m=r(89192),p=r(25634),f=r(11725),v=r(33524),g=r(70328),_=r(96672),T=r(620),x=r(46540);class b{constructor(e=!1,t=!0){this.isVerticalRay=e,this.normalRequired=t}}const A=(0,g.vt)();function E(e,t,r,o,n,a){if(!e.visible)return;const s=(0,i.a)(F,o,r),c=(e,t,r)=>{a(e,r,t,!1)},l=new b(!1,t.options.normalRequired);if(e.boundingInfo){(0,T.vA)(e.type===_.X.Mesh);const i=t.tolerance;M(e.boundingInfo,r,s,i,n,l,c)}else{const t=e.attributes.get(x.r.POSITION),o=t.indices;!function(e,t,r,o,n,a,s,c,l,d){const u=t,h=B,m=Math.abs(u[0]),p=Math.abs(u[1]),f=Math.abs(u[2]),v=m>=p?m>=f?0:2:p>=f?1:2,g=v,_=u[g]<0?2:1,T=(v+_)%3,x=(v+(3-_))%3,b=u[T]/u[g],A=u[x]/u[g],E=1/u[g],S=R,M=I,w=O,{normalRequired:C}=l;for(let t=r;t<o;++t){const r=3*t,o=s*n[r];(0,i.i)(h[0],a[o+0],a[o+1],a[o+2]);const l=s*n[r+1];(0,i.i)(h[1],a[l+0],a[l+1],a[l+2]);const u=s*n[r+2];(0,i.i)(h[2],a[u+0],a[u+1],a[u+2]),c&&((0,i.c)(h[0],c.applyToVertex(h[0][0],h[0][1],h[0][2],t)),(0,i.c)(h[1],c.applyToVertex(h[1][0],h[1][1],h[1][2],t)),(0,i.c)(h[2],c.applyToVertex(h[2][0],h[2][1],h[2][2],t))),(0,i.a)(S,h[0],e),(0,i.a)(M,h[1],e),(0,i.a)(w,h[2],e);const m=S[T]-b*S[g],p=S[x]-A*S[g],f=M[T]-b*M[g],v=M[x]-A*M[g],_=w[T]-b*w[g],R=w[x]-A*w[g],I=_*v-R*f,O=m*R-p*_,y=f*p-v*m;if((I<0||O<0||y<0)&&(I>0||O>0||y>0))continue;const P=I+O+y;if(0===P)continue;const D=I*(E*S[g])+O*(E*M[g])+y*(E*w[g]);if(D*Math.sign(P)<0)continue;const L=D/P;L>=0&&d(L,t,C?N(h):null)}}(r,s,0,o.length/3,o,t.data,t.stride,n,l,c)}}const S=(0,o.vt)();function M(e,t,r,o,n,a,s){if(null==e)return;const c=function(e,t){return(0,i.i)(t,1/e[0],1/e[1],1/e[2])}(r,S);if((0,g.Ne)(A,e.bbMin),(0,g.vI)(A,e.bbMax),null!=n&&n.applyToAabb(A),function(e,t,r,i){return function(e,t,r,i){const o=(e[0]-i-t[0])*r[0],n=(e[3]+i-t[0])*r[0];let a=Math.min(o,n),s=Math.max(o,n);const c=(e[1]-i-t[1])*r[1],l=(e[4]+i-t[1])*r[1];if(s=Math.min(s,Math.max(c,l)),s<0)return!1;if(a=Math.max(a,Math.min(c,l)),a>s)return!1;const d=(e[2]-i-t[2])*r[2],u=(e[5]+i-t[2])*r[2];return s=Math.min(s,Math.max(d,u)),!(s<0)&&(a=Math.max(a,Math.min(d,u)),!(a>s)&&a<1/0)}(e,t,r,i)}(A,t,c,o)){const{primitiveIndices:i,position:c}=e,l=i?i.length:c.indices.length/3;if(l>L){const i=e.getChildren();if(void 0!==i){for(const e of i)M(e,t,r,o,n,a,s);return}}!function(e,t,r,i,o,n,a,s,c,l,d){const u=e[0],h=e[1],m=e[2],p=t[0],f=t[1],v=t[2],{normalRequired:g}=l;for(let e=0;e<i;++e){const t=s[e],r=3*t,i=a*o[r];let l=n[i],_=n[i+1],T=n[i+2];const x=a*o[r+1];let b=n[x],A=n[x+1],E=n[x+2];const S=a*o[r+2];let M=n[S],C=n[S+1],R=n[S+2];null!=c&&([l,_,T]=c.applyToVertex(l,_,T,e),[b,A,E]=c.applyToVertex(b,A,E,e),[M,C,R]=c.applyToVertex(M,C,R,e));const I=b-l,O=A-_,N=E-T,P=M-l,D=C-_,L=R-T,F=f*L-D*v,B=v*P-L*p,U=p*D-P*f,G=I*F+O*B+N*U;if(Math.abs(G)<=H)continue;const z=u-l,V=h-_,W=m-T,j=z*F+V*B+W*U;if(G>0){if(j<0||j>G)continue}else if(j>0||j<G)continue;const k=V*N-O*W,Y=W*I-N*z,$=z*O-I*V,q=p*k+f*Y+v*$;if(G>0){if(q<0||j+q>G)continue}else if(q>0||j+q<G)continue;const X=(P*k+D*Y+L*$)/G;X>=0&&d(X,t,g?y(I,O,N,P,D,L,w):null)}}(t,r,0,l,c.indices,c.data,c.stride,i,n,a,s)}}const w=(0,o.vt)();function C(e,t,r,i,o,n,a,s){const c=e[0],l=e[1],d=e[2],u=t[0],h=t[1],m=t[2];for(let e=r;e<i;++e){const t=3*e,r=t+1,i=t+2,p=n*t,f=o[p],v=o[p+1],g=o[p+2],_=n*r,T=n*i,x=o[_]-f,b=o[_+1]-v,A=o[_+2]-g,E=o[T]-f,S=o[T+1]-v,M=o[T+2]-g,C=h*M-S*m,R=m*E-M*u,I=u*S-E*h,O=x*C+b*R+A*I;if(Math.abs(O)<=H)continue;const N=c-f,P=l-v,D=d-g,L=N*C+P*R+D*I;if(O>0){if(L<0||L>O)continue}else if(L>0||L<O)continue;const F=P*A-b*D,B=D*x-A*N,U=N*b-x*P,G=u*F+h*B+m*U;if(O>0){if(G<0||L+G>O)continue}else if(G>0||L+G<O)continue;const z=(E*F+S*B+M*U)/O;z>=0&&s(z,e,a?y(x,b,A,E,S,M,w):null)}}const R=(0,o.vt)(),I=(0,o.vt)(),O=(0,o.vt)();function y(e,t,r,o,n,a,s){return(0,i.i)(P,e,t,r),(0,i.i)(D,o,n,a),(0,i.e)(s,P,D),(0,i.n)(s,s),s}function N(e){return(0,i.a)(P,e[1],e[0]),(0,i.a)(D,e[2],e[0]),(0,i.e)(w,P,D),(0,i.n)(w,w),w}const P=(0,o.vt)(),D=(0,o.vt)(),L=1e3,H=1e-7,F=(0,o.vt)(),B=[(0,o.vt)(),(0,o.vt)(),(0,o.vt)()];var U=r(13464),G=r(16396),z=r(13030),V=r(59907);class W{constructor(e){this.vertexBufferLayout=e}elementCount(e){return e.get(x.r.POSITION).indices.length}write(e,t,r,i,o,n){return(0,V.SA)(r,i,this.vertexBufferLayout,e,t,o,n)}intersect(e,t,r,o,n,a,s){const c=this.vertexBufferLayout.createView(e).getField(x.r.POSITION,z.xs);if(null==c)return;const l=(0,i.a)(j,a,n),d=c.count/3,u=o.options.normalRequired;C(n,l,0,d,c.typedBuffer,c.typedBufferStride,u,((e,t,r)=>{s(e,r,t,!1)}))}}const j=(0,o.vt)();var k=r(43616),Y=r(97225),$=r(90237),q=r(53466),X=r(51976),Z=r(35256);class J extends Z.E{constructor(e){super(),this.spherical=e,this.alphaDiscardMode=m.sf.Opaque,this.doubleSidedMode=d.W.None,this.pbrMode=u.A9.Disabled,this.cullFace=m.s2.None,this.normalType=c.W.Attribute,this.customDepthTest=m.it.Less,this.emissionSource=l.ZX.None,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.hasVerticalOffset=!1,this.hasColorTexture=!1,this.hasMetallicRoughnessTexture=!1,this.hasOcclusionTexture=!1,this.hasNormalTexture=!1,this.hasScreenSizePerspective=!1,this.hasVertexTangents=!1,this.hasOccludees=!1,this.hasModelTransformation=!1,this.offsetBackfaces=!1,this.vvSize=!1,this.vvColor=!1,this.receiveShadows=!1,this.receiveAmbientOcclusion=!1,this.textureAlphaPremultiplied=!1,this.instanced=!1,this.instancedColor=!1,this.writeDepth=!0,this.transparent=!1,this.enableOffset=!0,this.terrainDepthTest=!1,this.cullAboveTerrain=!1,this.snowCover=!1,this.hasColorTextureTransform=!1,this.hasEmissionTextureTransform=!1,this.hasNormalTextureTransform=!1,this.hasOcclusionTextureTransform=!1,this.hasMetallicRoughnessTextureTransform=!1,this.occlusionPass=!1,this.hasVvInstancing=!0,this.useCustomDTRExponentForWater=!1,this.useFillLights=!0}get textureCoordinateType(){return this.hasColorTexture||this.hasMetallicRoughnessTexture||this.emissionSource===l.ZX.Texture||this.hasOcclusionTexture||this.hasNormalTexture?q.I.Default:q.I.None}get objectAndLayerIdColorInstanced(){return this.instanced}get discardInvisibleFragments(){return this.transparent}}(0,$._)([(0,X.W)({count:m.sf.COUNT})],J.prototype,"alphaDiscardMode",void 0),(0,$._)([(0,X.W)({count:d.W.COUNT})],J.prototype,"doubleSidedMode",void 0),(0,$._)([(0,X.W)({count:u.A9.COUNT})],J.prototype,"pbrMode",void 0),(0,$._)([(0,X.W)({count:m.s2.COUNT})],J.prototype,"cullFace",void 0),(0,$._)([(0,X.W)({count:c.W.COUNT})],J.prototype,"normalType",void 0),(0,$._)([(0,X.W)({count:m.it.COUNT})],J.prototype,"customDepthTest",void 0),(0,$._)([(0,X.W)({count:l.ZX.COUNT})],J.prototype,"emissionSource",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasVertexColors",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasSymbolColors",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasVerticalOffset",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasColorTexture",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasMetallicRoughnessTexture",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasOcclusionTexture",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasNormalTexture",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasScreenSizePerspective",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasVertexTangents",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasOccludees",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasModelTransformation",void 0),(0,$._)([(0,X.W)()],J.prototype,"offsetBackfaces",void 0),(0,$._)([(0,X.W)()],J.prototype,"vvSize",void 0),(0,$._)([(0,X.W)()],J.prototype,"vvColor",void 0),(0,$._)([(0,X.W)()],J.prototype,"receiveShadows",void 0),(0,$._)([(0,X.W)()],J.prototype,"receiveAmbientOcclusion",void 0),(0,$._)([(0,X.W)()],J.prototype,"textureAlphaPremultiplied",void 0),(0,$._)([(0,X.W)()],J.prototype,"instanced",void 0),(0,$._)([(0,X.W)()],J.prototype,"instancedColor",void 0),(0,$._)([(0,X.W)()],J.prototype,"writeDepth",void 0),(0,$._)([(0,X.W)()],J.prototype,"transparent",void 0),(0,$._)([(0,X.W)()],J.prototype,"enableOffset",void 0),(0,$._)([(0,X.W)()],J.prototype,"terrainDepthTest",void 0),(0,$._)([(0,X.W)()],J.prototype,"cullAboveTerrain",void 0),(0,$._)([(0,X.W)()],J.prototype,"snowCover",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasColorTextureTransform",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasEmissionTextureTransform",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasNormalTextureTransform",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasOcclusionTextureTransform",void 0),(0,$._)([(0,X.W)()],J.prototype,"hasMetallicRoughnessTextureTransform",void 0);var K=r(97220),Q=r(57323);class ee extends Y.R5{constructor(e,t){super(e,t,new K.$(Q.R,(()=>r.e(9933).then(r.bind(r,39933))))),this.type="RealisticTreeTechnique"}}var te=r(49788);class re extends f.im{constructor(e,t){super(e,oe),this.materialType="default",this.supportsEdges=!0,this.produces=new Map([[U.N.OPAQUE_MATERIAL,e=>((0,s.iq)(e)||(0,s.PJ)(e))&&!this.transparent],[U.N.TRANSPARENT_MATERIAL,e=>((0,s.iq)(e)||(0,s.PJ)(e))&&this.transparent&&this.parameters.writeDepth],[U.N.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,e=>((0,s.XY)(e)||(0,s.PJ)(e))&&this.transparent&&!this.parameters.writeDepth]]),this._vertexBufferLayout=function(e){const t=(0,a.BP)().vec3f(x.r.POSITION);return e.normalType===c.W.Compressed?t.vec2i16(x.r.NORMALCOMPRESSED,{glNormalized:!0}):t.vec3f(x.r.NORMAL),e.hasVertexTangents&&t.vec4f(x.r.TANGENT),(e.textureId||e.normalTextureId||e.metallicRoughnessTextureId||e.emissiveTextureId||e.occlusionTextureId)&&t.vec2f(x.r.UV0),e.hasVertexColors&&t.vec4u8(x.r.COLOR),e.hasSymbolColors&&t.vec4u8(x.r.SYMBOLCOLOR),(0,h.E)()&&t.vec4u8(x.r.OBJECTANDLAYERIDCOLOR),t}(this.parameters),this._configuration=new J(t.spherical)}isVisibleForOutput(e){return e!==s.V.Shadow&&e!==s.V.ShadowExcludeHighlight&&e!==s.V.ShadowHighlight||this.parameters.castShadows}get visible(){const{layerOpacity:e,colorMixMode:t,opacity:r,externalColor:i}=this.parameters;return e*("replace"===t?1:r)*("ignore"===t?1:i[3])>=te.Q}get hasEmissions(){return!!this.parameters.emissiveTextureId||!(0,i.p)(this.parameters.emissiveFactor,o.uY)}getConfiguration(e,t){const r=this.parameters,{treeRendering:i,doubleSided:o,doubleSidedType:n}=r;return this._configuration.output=e,this._configuration.hasNormalTexture=!i&&!!r.normalTextureId,this._configuration.hasColorTexture=!!r.textureId,this._configuration.hasVertexTangents=!i&&r.hasVertexTangents,this._configuration.instanced=r.isInstanced,this._configuration.instancedDoublePrecision=r.instancedDoublePrecision,this._configuration.vvSize=!!r.vvSize,this._configuration.hasVerticalOffset=null!=r.verticalOffset,this._configuration.hasScreenSizePerspective=null!=r.screenSizePerspective,this._configuration.hasSlicePlane=r.hasSlicePlane,this._configuration.alphaDiscardMode=r.textureAlphaMode,this._configuration.normalType=i?c.W.Attribute:r.normalType,this._configuration.transparent=this.transparent,this._configuration.writeDepth=r.writeDepth,null!=r.customDepthTest&&(this._configuration.customDepthTest=r.customDepthTest),this._configuration.hasOccludees=t.hasOccludees,this._configuration.cullFace=r.hasSlicePlane?m.s2.None:r.cullFace,this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration.hasModelTransformation=!i&&null!=r.modelTransformation,this._configuration.hasVertexColors=r.hasVertexColors,this._configuration.hasSymbolColors=r.hasSymbolColors,this._configuration.doubleSidedMode=i?d.W.WindingOrder:o&&"normal"===n?d.W.View:o&&"winding-order"===n?d.W.WindingOrder:d.W.None,this._configuration.instancedColor=r.hasInstancedColor,(0,s.RN)(e)?(this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration.receiveShadows=r.receiveShadows,this._configuration.receiveAmbientOcclusion=r.receiveAmbientOcclusion&&null!=t.ssao):(this._configuration.terrainDepthTest=!1,this._configuration.receiveShadows=this._configuration.receiveAmbientOcclusion=!1),this._configuration.vvColor=!!r.vvColor,this._configuration.textureAlphaPremultiplied=!!r.textureAlphaPremultiplied,this._configuration.pbrMode=r.usePBR?r.isSchematic?u.A9.Schematic:u.A9.Normal:u.A9.Disabled,this._configuration.hasMetallicRoughnessTexture=!i&&!!r.metallicRoughnessTextureId,this._configuration.emissionSource=i?l.ZX.None:null!=r.emissiveTextureId?l.ZX.Texture:r.usePBR?l.ZX.Value:l.ZX.None,this._configuration.hasOcclusionTexture=!i&&!!r.occlusionTextureId,this._configuration.offsetBackfaces=!(!this.transparent||!r.offsetTransparentBackfaces),this._configuration.oitPass=t.oitPass,this._configuration.enableOffset=t.camera.relativeElevation<v.xt,this._configuration.snowCover=function(e){return null!=e.weather&&e.weatherVisible&&"snowy"===e.weather.type&&"enabled"===e.weather.snowCover}(t),this._configuration.hasColorTextureTransform=!!r.colorTextureTransformMatrix,this._configuration.hasNormalTextureTransform=!!r.normalTextureTransformMatrix,this._configuration.hasEmissionTextureTransform=!!r.emissiveTextureTransformMatrix,this._configuration.hasOcclusionTextureTransform=!!r.occlusionTextureTransformMatrix,this._configuration.hasMetallicRoughnessTextureTransform=!!r.metallicRoughnessTextureTransformMatrix,this._configuration}intersect(e,t,r,o,a,s){if(null!=this.parameters.verticalOffset){const e=r.camera;(0,i.i)(de,t[12],t[13],t[14]);let s=null;switch(r.viewingMode){case n.RT.Global:s=(0,i.n)(ce,de);break;case n.RT.Local:s=(0,i.c)(ce,se)}let c=0;const l=(0,i.d)(ue,de,e.eye),d=(0,i.l)(l),u=(0,i.h)(l,l,1/d);let h=null;this.parameters.screenSizePerspective&&(h=(0,i.f)(s,u)),c+=(0,k.kE)(e,d,this.parameters.verticalOffset,h??0,this.parameters.screenSizePerspective),(0,i.h)(s,s,c),(0,i.q)(le,s,r.transform.inverseRotation),o=(0,i.d)(ne,o,le),a=(0,i.d)(ae,a,le)}E(e,r,o,a,(0,G.ou)(r.verticalOffset),s)}createGLMaterial(e){return new ie(e)}createBufferWriter(){return new W(this._vertexBufferLayout)}get transparent(){const{parameters:{drivenOpacity:e,opacity:t,externalColor:[r,i,o,n],layerOpacity:a,texture:s,textureId:c,textureAlphaMode:l,colorMixMode:d}}=this;return e||t<1&&"replace"!==d||n<1&&"ignore"!==d||a<1||(null!=s||null!=c)&&l!==m.sf.Opaque&&l!==m.sf.Mask&&"replace"!==d}}class ie extends p.m8{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){this._material.setParameters({receiveShadows:e.shadowMap.enabled});const t=this._material.parameters;this.updateTexture(t.textureId);const r=e.camera.viewInverseTransposeMatrix;return(0,i.i)(t.origin,r[3],r[7],r[11]),this._material.setParameters(this.textureBindParameters),this.getTechnique(t.treeRendering?ee:Y.R5,e)}}class oe extends Y.uD{constructor(){super(...arguments),this.treeRendering=!1,this.hasVertexTangents=!1}}const ne=(0,o.vt)(),ae=(0,o.vt)(),se=(0,o.fA)(0,0,1),ce=(0,o.vt)(),le=(0,o.vt)(),de=(0,o.vt)(),ue=(0,o.vt)()},11955:(e,t,r)=>{r.d(t,{S:()=>s}),r(69270),r(74333).n;var i=r(20304),o=r(31821),n=r(89192),a=r(49788);function s(e,t){!function(e,t,r){const i=e.fragment,s=t.alphaDiscardMode,c=s===n.sf.Blend;s!==n.sf.Mask&&s!==n.sf.MaskBlend||i.uniforms.add(r),i.code.add(o.H`
2
2
  void discardOrAdjustAlpha(inout vec4 color) {
3
- ${s===o.sf.Opaque?"color.a = 1.0;":`if (color.a < ${c?n.H.float(a.Q):"textureAlphaCutoff"}) {\n discard;\n } ${(0,n.If)(s===o.sf.Mask,"else { color.a = 1.0; }")}`}
3
+ ${s===n.sf.Opaque?"color.a = 1.0;":`if (color.a < ${c?o.H.float(a.Q):"textureAlphaCutoff"}) {\n discard;\n } ${(0,o.If)(s===n.sf.Mask,"else { color.a = 1.0; }")}`}
4
4
  }
5
- `)}(e,t,new i.m("textureAlphaCutoff",(e=>e.textureAlphaCutoff)))}},11964:(e,t,r)=>{r.d(t,{Cr:()=>l,H6:()=>h,_I:()=>u,kb:()=>d,vt:()=>c});var i=r(34727),n=r(4341),o=r(38954),a=r(51850),s=r(32114);function c(e){return e?{origin:(0,a.o8)(e.origin),vector:(0,a.o8)(e.vector)}:{origin:(0,a.vt)(),vector:(0,a.vt)()}}function l(e,t,r=c()){return(0,o.c)(r.origin,e),(0,o.d)(r.vector,t,e),r}function d(e,t){const r=(0,o.d)(s.rq.get(),t,e.origin),n=(0,o.f)(e.vector,r),a=(0,o.f)(e.vector,e.vector),c=(0,i.qE)(n/a,0,1),l=(0,o.d)(s.rq.get(),(0,o.h)(s.rq.get(),e.vector,c),r);return(0,o.f)(l,l)}function u(e,t,r){return h(e,t,0,1,r)}function h(e,t,r,n,a){const{vector:c,origin:l}=e,d=(0,o.d)(s.rq.get(),t,l),u=(0,o.f)(c,d)/(0,o.k)(c);return(0,o.h)(a,c,(0,i.qE)(u,r,n)),(0,o.g)(a,a,e.origin)}(0,a.vt)(),(0,a.vt)(),new n.I((()=>c()))},12791:(e,t,r)=>{r.d(t,{x:()=>o});var i=r(69270),n=r(74333);class o extends n.n{constructor(e,t){super(e,"sampler2D",i.c.Bind,((r,i)=>r.bindTexture(e,t(i))))}}},13464:(e,t,r)=>{var i;r.d(t,{N:()=>i}),function(e){e[e.INTEGRATED_MESH=0]="INTEGRATED_MESH",e[e.OPAQUE_TERRAIN=1]="OPAQUE_TERRAIN",e[e.OPAQUE_MATERIAL=2]="OPAQUE_MATERIAL",e[e.OPAQUE_MATERIAL_WITHOUT_NORMALS=3]="OPAQUE_MATERIAL_WITHOUT_NORMALS",e[e.TRANSPARENT_MATERIAL=4]="TRANSPARENT_MATERIAL",e[e.TRANSPARENT_MATERIAL_WITHOUT_NORMALS=5]="TRANSPARENT_MATERIAL_WITHOUT_NORMALS",e[e.TRANSPARENT_TERRAIN=6]="TRANSPARENT_TERRAIN",e[e.TRANSPARENT_MATERIAL_WITHOUT_DEPTH=7]="TRANSPARENT_MATERIAL_WITHOUT_DEPTH",e[e.OCCLUDED_TERRAIN=8]="OCCLUDED_TERRAIN",e[e.OCCLUDER_MATERIAL=9]="OCCLUDER_MATERIAL",e[e.TRANSPARENT_OCCLUDER_MATERIAL=10]="TRANSPARENT_OCCLUDER_MATERIAL",e[e.OCCLUSION_PIXELS=11]="OCCLUSION_PIXELS",e[e.HUD_MATERIAL=12]="HUD_MATERIAL",e[e.LABEL_MATERIAL=13]="LABEL_MATERIAL",e[e.LINE_CALLOUTS=14]="LINE_CALLOUTS",e[e.LINE_CALLOUTS_HUD_DEPTH=15]="LINE_CALLOUTS_HUD_DEPTH",e[e.OVERLAY=16]="OVERLAY",e[e.DRAPED_MATERIAL=17]="DRAPED_MATERIAL",e[e.DRAPED_WATER=18]="DRAPED_WATER",e[e.VOXEL=19]="VOXEL",e[e.MAX_SLOTS=20]="MAX_SLOTS"}(i||(i={}))},14113:(e,t,r)=>{r.d(t,{N5:()=>c});var i=r(49186),n=(r(44208),r(53966)),o=r(69270);const a=()=>n.A.getLogger("esri.views.3d.webgl-engine.core.shaderModules.shaderBuilder");class s{constructor(){this._includedModules=new Map}include(e,t){this._includedModules.has(e)?this._includedModules.get(e):(this._includedModules.set(e,t),e(this.builder,t))}}class c extends s{constructor(){super(...arguments),this.vertex=new h,this.fragment=new h,this.attributes=new m,this.varyings=new f,this.extensions=new p,this.outputs=new v}get fragmentUniforms(){return this.fragment.uniforms.entries}get builder(){return this}generate(e,t=!1){const r=this.extensions.generateSource(e),i=this.attributes.generateSource(e),n=this.varyings.generateSource(e),o="vertex"===e?this.vertex:this.fragment,a=o.uniforms.generateSource(),s=o.code.generateSource(),c=o.main.generateSource(t),l="vertex"===e?T:_,d=o.constants.generateSource(),u=this.outputs.generateSource(e);return`#version 300 es\n${r.join("\n")}\n${l}\n${d.join("\n")}\n${a.join("\n")}\n${i.join("\n")}\n${n.join("\n")}\n${u.join("\n")}\n${s.join("\n")}\n${c.join("\n")}`}generateBind(e){const t=new Map;this.vertex.uniforms.entries.forEach((e=>{const r=e.bind[o.c.Bind];r&&t.set(e.name,r)})),this.fragment.uniforms.entries.forEach((e=>{const r=e.bind[o.c.Bind];r&&t.set(e.name,r)}));const r=Array.from(t.values()),i=r.length;return t=>{for(let n=0;n<i;++n)r[n](e,t)}}generateBindPass(e){const t=new Map;this.vertex.uniforms.entries.forEach((e=>{const r=e.bind[o.c.Pass];r&&t.set(e.name,r)})),this.fragment.uniforms.entries.forEach((e=>{const r=e.bind[o.c.Pass];r&&t.set(e.name,r)}));const r=Array.from(t.values()),i=r.length;return(t,n)=>{for(let o=0;o<i;++o)r[o](e,t,n)}}generateBindDraw(e){const t=new Map;this.vertex.uniforms.entries.forEach((e=>{const r=e.bind[o.c.Draw];r&&t.set(e.name,r)})),this.fragment.uniforms.entries.forEach((e=>{const r=e.bind[o.c.Draw];r&&t.set(e.name,r)}));const r=Array.from(t.values()),i=r.length;return(t,n,o)=>{for(let a=0;a<i;++a)r[a](e,o,t,n)}}}class l{constructor(e){this._stage=e,this._entries=new Map}add(...e){for(const t of e)this._add(t);return this._stage}get(e){return this._entries.get(e)}_add(e){if(null!=e){if(this._entries.has(e.name)&&!this._entries.get(e.name).equals(e))throw new i.A(`Duplicate uniform name ${e.name} for different uniform type`);this._entries.set(e.name,e)}else a().error(`Trying to add null Uniform from ${(new Error).stack}.`)}generateSource(){return Array.from(this._entries.values()).map((e=>null!=e.arraySize?`uniform ${e.type} ${e.name}[${e.arraySize}];`:`uniform ${e.type} ${e.name};`))}get entries(){return Array.from(this._entries.values())}}class d{constructor(e){this._stage=e,this._bodies=new Array}add(e){return this._bodies.push(e),this._stage}generateSource(e){if(this._bodies.length>0)return[`void main() {\n ${this._bodies.join("\n")||""} \n}`];if(e)throw new i.A("Shader does not contain main function body.");return[]}}class u{constructor(e){this._stage=e,this._entries=new Array}add(e){return this._entries.push(e),this._stage}generateSource(){return this._entries}}class h extends s{constructor(){super(...arguments),this.uniforms=new l(this),this.main=new d(this),this.code=new u(this),this.constants=new g(this)}get builder(){return this}}class m{constructor(){this._entries=new Array}add(e,t){this._entries.push([e,t])}generateSource(e){return"fragment"===e?[]:this._entries.map((e=>`in ${e[1]} ${e[0]};`))}}class f{constructor(){this._entries=new Map}add(e,t,r){this._entries.has(e)?a().warn(`Ignoring duplicate varying ${t} ${e}`):this._entries.set(e,{type:t,invariant:r?.invariant??!1})}generateSource(e){const t=new Array;return this._entries.forEach(((r,i)=>t.push((r.invariant&&"vertex"===e?"invariant ":"")+("vertex"===e?"out":"in")+` ${r.type} ${i};`))),t}}class p{constructor(){this._entries=new Set}add(e){this._entries.add(e)}generateSource(e){const t="vertex"===e?p.ALLOWLIST_VERTEX:p.ALLOWLIST_FRAGMENT;return Array.from(this._entries).filter((e=>t.includes(e))).map((e=>`#extension ${e} : enable`))}static{this.ALLOWLIST_FRAGMENT=["GL_EXT_shader_texture_lod","GL_OES_standard_derivatives"]}static{this.ALLOWLIST_VERTEX=[]}}class v{constructor(){this._entries=new Map}add(e,t,r=0){const i=this._entries.get(r);i?.name!==e||i?.type!==t?this._entries.set(r,{name:e,type:t}):a().warn(`Fragment shader output location ${r} occupied`)}static{this.DEFAULT_TYPE="vec4"}static{this.DEFAULT_NAME="fragColor"}generateSource(e){if("vertex"===e)return[];0===this._entries.size&&this._entries.set(0,{name:v.DEFAULT_NAME,type:v.DEFAULT_TYPE});const t=new Array;return this._entries.forEach(((e,r)=>t.push(`layout(location = ${r}) out ${e.type} ${e.name};`))),t}}class g{constructor(e){this._stage=e,this._entries=new Set}add(e,t,r){let i="ERROR_CONSTRUCTOR_STRING";switch(t){case"float":i=g._numberToFloatStr(r);break;case"int":i=g._numberToIntStr(r);break;case"bool":i=r.toString();break;case"vec2":i=`vec2(${g._numberToFloatStr(r[0])}, ${g._numberToFloatStr(r[1])})`;break;case"vec3":i=`vec3(${g._numberToFloatStr(r[0])}, ${g._numberToFloatStr(r[1])}, ${g._numberToFloatStr(r[2])})`;break;case"vec4":i=`vec4(${g._numberToFloatStr(r[0])}, ${g._numberToFloatStr(r[1])}, ${g._numberToFloatStr(r[2])}, ${g._numberToFloatStr(r[3])})`;break;case"ivec2":i=`ivec2(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])})`;break;case"ivec3":i=`ivec3(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])})`;break;case"ivec4":i=`ivec4(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])}, ${g._numberToIntStr(r[3])})`;break;case"uvec2":i=`uvec2(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])})`;break;case"uvec3":i=`uvec3(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])})`;break;case"uvec4":i=`uvec4(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])}, ${g._numberToIntStr(r[3])})`;break;case"mat2":case"mat3":case"mat4":i=`${t}(${Array.prototype.map.call(r,(e=>g._numberToFloatStr(e))).join(", ")})`}return this._entries.add(`const ${t} ${e} = ${i};`),this._stage}static _numberToIntStr(e){return e.toFixed(0)}static _numberToFloatStr(e){return Number.isInteger(e)?e.toFixed(1):e.toString()}generateSource(){return Array.from(this._entries)}}const _="#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n#else\n precision mediump float;\n precision mediump int;\n precision mediump sampler2D;\n precision mediump usampler2D;\n precision mediump sampler2DArray;\n#endif",T="precision highp float;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n \n invariant gl_Position;\n "},14314:(e,t,r)=>{r.d(t,{I:()=>o});var i=r(69270),n=r(74333);class o extends n.n{constructor(e,t){super(e,"vec4",i.c.Bind,((r,i)=>r.setUniform4fv(e,t(i))))}}},15581:(e,t,r)=>{r.d(t,{S:()=>T,b:()=>v,g:()=>g});var i=r(37585),n=r(48163),o=r(82048),a=r(52540),s=r(34845),c=r(77108),l=r(47286),d=r(33094),u=r(20304),h=r(31821),m=r(63761),f=r(14113);const p=16;function v(){const e=new f.N5,t=e.fragment;return e.include(o.c),e.include(s.Ir),t.include(a.E),t.uniforms.add(new d.U("radius",(e=>g(e.camera)))).code.add(h.H`vec3 sphere[16] = vec3[16](
5
+ `)}(e,t,new i.m("textureAlphaCutoff",(e=>e.textureAlphaCutoff)))}},11964:(e,t,r)=>{r.d(t,{Cr:()=>l,H6:()=>h,_I:()=>u,kb:()=>d,vt:()=>c});var i=r(34727),o=r(4341),n=r(38954),a=r(51850),s=r(32114);function c(e){return e?{origin:(0,a.o8)(e.origin),vector:(0,a.o8)(e.vector)}:{origin:(0,a.vt)(),vector:(0,a.vt)()}}function l(e,t,r=c()){return(0,n.c)(r.origin,e),(0,n.d)(r.vector,t,e),r}function d(e,t){const r=(0,n.d)(s.rq.get(),t,e.origin),o=(0,n.f)(e.vector,r),a=(0,n.f)(e.vector,e.vector),c=(0,i.qE)(o/a,0,1),l=(0,n.d)(s.rq.get(),(0,n.h)(s.rq.get(),e.vector,c),r);return(0,n.f)(l,l)}function u(e,t,r){return h(e,t,0,1,r)}function h(e,t,r,o,a){const{vector:c,origin:l}=e,d=(0,n.d)(s.rq.get(),t,l),u=(0,n.f)(c,d)/(0,n.k)(c);return(0,n.h)(a,c,(0,i.qE)(u,r,o)),(0,n.g)(a,a,e.origin)}(0,a.vt)(),(0,a.vt)(),new o.I((()=>c()))},12791:(e,t,r)=>{r.d(t,{x:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"sampler2D",i.c.Bind,((r,i)=>r.bindTexture(e,t(i))))}}},13464:(e,t,r)=>{var i;r.d(t,{N:()=>i}),function(e){e[e.INTEGRATED_MESH=0]="INTEGRATED_MESH",e[e.OPAQUE_TERRAIN=1]="OPAQUE_TERRAIN",e[e.OPAQUE_MATERIAL=2]="OPAQUE_MATERIAL",e[e.OPAQUE_MATERIAL_WITHOUT_NORMALS=3]="OPAQUE_MATERIAL_WITHOUT_NORMALS",e[e.TRANSPARENT_MATERIAL=4]="TRANSPARENT_MATERIAL",e[e.TRANSPARENT_MATERIAL_WITHOUT_NORMALS=5]="TRANSPARENT_MATERIAL_WITHOUT_NORMALS",e[e.TRANSPARENT_TERRAIN=6]="TRANSPARENT_TERRAIN",e[e.TRANSPARENT_MATERIAL_WITHOUT_DEPTH=7]="TRANSPARENT_MATERIAL_WITHOUT_DEPTH",e[e.OCCLUDED_TERRAIN=8]="OCCLUDED_TERRAIN",e[e.OCCLUDER_MATERIAL=9]="OCCLUDER_MATERIAL",e[e.TRANSPARENT_OCCLUDER_MATERIAL=10]="TRANSPARENT_OCCLUDER_MATERIAL",e[e.OCCLUSION_PIXELS=11]="OCCLUSION_PIXELS",e[e.HUD_MATERIAL=12]="HUD_MATERIAL",e[e.LABEL_MATERIAL=13]="LABEL_MATERIAL",e[e.LINE_CALLOUTS=14]="LINE_CALLOUTS",e[e.LINE_CALLOUTS_HUD_DEPTH=15]="LINE_CALLOUTS_HUD_DEPTH",e[e.OVERLAY=16]="OVERLAY",e[e.DRAPED_MATERIAL=17]="DRAPED_MATERIAL",e[e.DRAPED_WATER=18]="DRAPED_WATER",e[e.VOXEL=19]="VOXEL",e[e.MAX_SLOTS=20]="MAX_SLOTS"}(i||(i={}))},14113:(e,t,r)=>{r.d(t,{N5:()=>c});var i=r(49186),o=(r(44208),r(53966)),n=r(69270);const a=()=>o.A.getLogger("esri.views.3d.webgl-engine.core.shaderModules.shaderBuilder");class s{constructor(){this._includedModules=new Map}include(e,t){this._includedModules.has(e)?this._includedModules.get(e):(this._includedModules.set(e,t),e(this.builder,t))}}class c extends s{constructor(){super(...arguments),this.vertex=new h,this.fragment=new h,this.attributes=new m,this.varyings=new p,this.extensions=new f,this.outputs=new v}get fragmentUniforms(){return this.fragment.uniforms.entries}get builder(){return this}generate(e,t=!1){const r=this.extensions.generateSource(e),i=this.attributes.generateSource(e),o=this.varyings.generateSource(e),n="vertex"===e?this.vertex:this.fragment,a=n.uniforms.generateSource(),s=n.code.generateSource(),c=n.main.generateSource(t),l="vertex"===e?T:_,d=n.constants.generateSource(),u=this.outputs.generateSource(e);return`#version 300 es\n${r.join("\n")}\n${l}\n${d.join("\n")}\n${a.join("\n")}\n${i.join("\n")}\n${o.join("\n")}\n${u.join("\n")}\n${s.join("\n")}\n${c.join("\n")}`}generateBind(e){const t=new Map;this.vertex.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Bind];r&&t.set(e.name,r)})),this.fragment.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Bind];r&&t.set(e.name,r)}));const r=Array.from(t.values()),i=r.length;return t=>{for(let o=0;o<i;++o)r[o](e,t)}}generateBindPass(e){const t=new Map;this.vertex.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Pass];r&&t.set(e.name,r)})),this.fragment.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Pass];r&&t.set(e.name,r)}));const r=Array.from(t.values()),i=r.length;return(t,o)=>{for(let n=0;n<i;++n)r[n](e,t,o)}}generateBindDraw(e){const t=new Map;this.vertex.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Draw];r&&t.set(e.name,r)})),this.fragment.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Draw];r&&t.set(e.name,r)}));const r=Array.from(t.values()),i=r.length;return(t,o,n)=>{for(let a=0;a<i;++a)r[a](e,n,t,o)}}}class l{constructor(e){this._stage=e,this._entries=new Map}add(...e){for(const t of e)this._add(t);return this._stage}get(e){return this._entries.get(e)}_add(e){if(null!=e){if(this._entries.has(e.name)&&!this._entries.get(e.name).equals(e))throw new i.A(`Duplicate uniform name ${e.name} for different uniform type`);this._entries.set(e.name,e)}else a().error(`Trying to add null Uniform from ${(new Error).stack}.`)}generateSource(){return Array.from(this._entries.values()).map((e=>null!=e.arraySize?`uniform ${e.type} ${e.name}[${e.arraySize}];`:`uniform ${e.type} ${e.name};`))}get entries(){return Array.from(this._entries.values())}}class d{constructor(e){this._stage=e,this._bodies=new Array}add(e){return this._bodies.push(e),this._stage}generateSource(e){if(this._bodies.length>0)return[`void main() {\n ${this._bodies.join("\n")||""} \n}`];if(e)throw new i.A("Shader does not contain main function body.");return[]}}class u{constructor(e){this._stage=e,this._entries=new Array}add(e){return this._entries.push(e),this._stage}generateSource(){return this._entries}}class h extends s{constructor(){super(...arguments),this.uniforms=new l(this),this.main=new d(this),this.code=new u(this),this.constants=new g(this)}get builder(){return this}}class m{constructor(){this._entries=new Array}add(e,t){this._entries.push([e,t])}generateSource(e){return"fragment"===e?[]:this._entries.map((e=>`in ${e[1]} ${e[0]};`))}}class p{constructor(){this._entries=new Map}add(e,t,r){this._entries.has(e)?a().warn(`Ignoring duplicate varying ${t} ${e}`):this._entries.set(e,{type:t,invariant:r?.invariant??!1})}generateSource(e){const t=new Array;return this._entries.forEach(((r,i)=>t.push((r.invariant&&"vertex"===e?"invariant ":"")+("vertex"===e?"out":"in")+` ${r.type} ${i};`))),t}}class f{constructor(){this._entries=new Set}add(e){this._entries.add(e)}generateSource(e){const t="vertex"===e?f.ALLOWLIST_VERTEX:f.ALLOWLIST_FRAGMENT;return Array.from(this._entries).filter((e=>t.includes(e))).map((e=>`#extension ${e} : enable`))}static{this.ALLOWLIST_FRAGMENT=["GL_EXT_shader_texture_lod","GL_OES_standard_derivatives"]}static{this.ALLOWLIST_VERTEX=[]}}class v{constructor(){this._entries=new Map}add(e,t,r=0){const i=this._entries.get(r);i?.name!==e||i?.type!==t?this._entries.set(r,{name:e,type:t}):a().warn(`Fragment shader output location ${r} occupied`)}static{this.DEFAULT_TYPE="vec4"}static{this.DEFAULT_NAME="fragColor"}generateSource(e){if("vertex"===e)return[];0===this._entries.size&&this._entries.set(0,{name:v.DEFAULT_NAME,type:v.DEFAULT_TYPE});const t=new Array;return this._entries.forEach(((e,r)=>t.push(`layout(location = ${r}) out ${e.type} ${e.name};`))),t}}class g{constructor(e){this._stage=e,this._entries=new Set}add(e,t,r){let i="ERROR_CONSTRUCTOR_STRING";switch(t){case"float":i=g._numberToFloatStr(r);break;case"int":i=g._numberToIntStr(r);break;case"bool":i=r.toString();break;case"vec2":i=`vec2(${g._numberToFloatStr(r[0])}, ${g._numberToFloatStr(r[1])})`;break;case"vec3":i=`vec3(${g._numberToFloatStr(r[0])}, ${g._numberToFloatStr(r[1])}, ${g._numberToFloatStr(r[2])})`;break;case"vec4":i=`vec4(${g._numberToFloatStr(r[0])}, ${g._numberToFloatStr(r[1])}, ${g._numberToFloatStr(r[2])}, ${g._numberToFloatStr(r[3])})`;break;case"ivec2":i=`ivec2(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])})`;break;case"ivec3":i=`ivec3(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])})`;break;case"ivec4":i=`ivec4(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])}, ${g._numberToIntStr(r[3])})`;break;case"uvec2":i=`uvec2(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])})`;break;case"uvec3":i=`uvec3(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])})`;break;case"uvec4":i=`uvec4(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])}, ${g._numberToIntStr(r[3])})`;break;case"mat2":case"mat3":case"mat4":i=`${t}(${Array.prototype.map.call(r,(e=>g._numberToFloatStr(e))).join(", ")})`}return this._entries.add(`const ${t} ${e} = ${i};`),this._stage}static _numberToIntStr(e){return e.toFixed(0)}static _numberToFloatStr(e){return Number.isInteger(e)?e.toFixed(1):e.toString()}generateSource(){return Array.from(this._entries)}}const _="#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n#else\n precision mediump float;\n precision mediump int;\n precision mediump sampler2D;\n precision mediump usampler2D;\n precision mediump sampler2DArray;\n#endif",T="precision highp float;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n \n invariant gl_Position;\n "},14314:(e,t,r)=>{r.d(t,{I:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec4",i.c.Bind,((r,i)=>r.setUniform4fv(e,t(i))))}}},15581:(e,t,r)=>{r.d(t,{S:()=>T,b:()=>v,g:()=>g});var i=r(37585),o=r(48163),n=r(82048),a=r(52540),s=r(34845),c=r(77108),l=r(47286),d=r(33094),u=r(20304),h=r(31821),m=r(63761),p=r(14113);const f=16;function v(){const e=new p.N5,t=e.fragment;return e.include(n.c),e.include(s.Ir),t.include(a.E),t.uniforms.add(new d.U("radius",(e=>g(e.camera)))).code.add(h.H`vec3 sphere[16] = vec3[16](
6
6
  vec3(0.186937, 0.0, 0.0),
7
7
  vec3(0.700542, 0.0, 0.0),
8
8
  vec3(-0.864858, -0.481795, -0.111713),
@@ -57,7 +57,7 @@ return fallOffFunction(vv, vn, 0.1);
57
57
  // bug or deviation from CE somewhere else?
58
58
  float ps = projScale / (2.0 * currentPixelPos.z * zScale.x + zScale.y);
59
59
 
60
- for(int i = 0; i < ${h.H.int(p)}; ++i) {
60
+ for(int i = 0; i < ${h.H.int(f)}; ++i) {
61
61
  vec2 unitOffset = reflect(sphere[i], fres).xy;
62
62
  vec2 offset = vec2(-unitOffset * radius * ps);
63
63
 
@@ -77,12 +77,12 @@ return fallOffFunction(vv, vn, 0.1);
77
77
  }
78
78
 
79
79
  // output the result
80
- float A = max(1.0 - sum * intensity / float(${h.H.int(p)}), 0.0);
80
+ float A = max(1.0 - sum * intensity / float(${h.H.int(f)}), 0.0);
81
81
 
82
82
  // Anti-tone map to reduce contrast and drag dark region farther: (x^0.2 + 1.2 * x^4) / 2.2
83
83
  A = (pow(A, 0.2) + 1.2 * A * A * A * A) / 2.2;
84
84
 
85
- fragOcclusion = A;`),e}function g(e){return Math.max(10,20*e.computeScreenPixelSizeAtDist(Math.abs(4*e.relativeElevation)))}const _=(0,n.vt)(),T=Object.freeze(Object.defineProperty({__proto__:null,build:v,getRadius:g},Symbol.toStringTag,{value:"Module"}))},16396:(e,t,r)=>{r.d(t,{ou:()=>l}),r(77690),r(29242),r(58083),r(9093);var i=r(38954),n=r(51850),o=r(97937),a=r(24151),s=r(57005);const c=new class{constructor(e=0){this.offset=e,this.sphere=(0,o.c)(),this.tmpVertex=(0,n.vt)()}applyToVertex(e,t,r){const n=this.objectTransform.transform,o=(0,i.i)(d,e,t,r),a=(0,i.t)(o,o,n),s=this.offset/(0,i.l)(a);(0,i.b)(a,a,a,s);const c=this.objectTransform.inverse;return(0,i.t)(this.tmpVertex,a,c),this.tmpVertex}applyToMinMax(e,t){const r=this.offset/(0,i.l)(e);(0,i.b)(e,e,e,r);const n=this.offset/(0,i.l)(t);(0,i.b)(t,t,t,n)}applyToAabb(e){const t=this.offset/Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]+=e[0]*t,e[1]+=e[1]*t,e[2]+=e[2]*t;const r=this.offset/Math.sqrt(e[3]*e[3]+e[4]*e[4]+e[5]*e[5]);return e[3]+=e[3]*r,e[4]+=e[4]*r,e[5]+=e[5]*r,e}applyToBoundingSphere(e){const t=(0,i.l)((0,o.a)(e)),r=this.offset/t;return(0,i.b)((0,o.a)(this.sphere),(0,o.a)(e),(0,o.a)(e),r),this.sphere[3]=e[3]+e[3]*this.offset/t,this.sphere}};function l(e){return null!=e?(c.offset=e,c):null}new class{constructor(e=0){this.componentLocalOriginLength=0,this._totalOffset=0,this._offset=0,this._tmpVertex=(0,n.vt)(),this._tmpMbs=(0,o.c)(),this._tmpObb=new s.ab,this._resetOffset(e)}_resetOffset(e){this._offset=e,this._totalOffset=e}set offset(e){this._resetOffset(e)}get offset(){return this._offset}set componentOffset(e){this._totalOffset=this._offset+e}set localOrigin(e){this.componentLocalOriginLength=(0,i.l)(e)}applyToVertex(e,t,r){const n=(0,i.i)(d,e,t,r),o=(0,i.i)(u,e,t,r+this.componentLocalOriginLength),a=this._totalOffset/(0,i.l)(o);return(0,i.b)(this._tmpVertex,n,o,a),this._tmpVertex}applyToAabb(e){const t=this.componentLocalOriginLength,r=e[0],i=e[1],n=e[2]+t,o=e[3],a=e[4],s=e[5]+t,c=Math.abs(r),l=Math.abs(i),d=Math.abs(n),u=Math.abs(o),h=Math.abs(a),m=Math.abs(s),f=.5*(1+Math.sign(r*o))*Math.min(c,u),p=.5*(1+Math.sign(i*a))*Math.min(l,h),v=.5*(1+Math.sign(n*s))*Math.min(d,m),g=Math.max(c,u),_=Math.max(l,h),T=Math.max(d,m),x=Math.sqrt(f*f+p*p+v*v),b=Math.sign(c+r),A=Math.sign(l+i),E=Math.sign(d+n),S=Math.sign(u+o),M=Math.sign(h+a),C=Math.sign(m+s),w=this._totalOffset;if(x<w)return e[0]-=(1-b)*w,e[1]-=(1-A)*w,e[2]-=(1-E)*w,e[3]+=S*w,e[4]+=M*w,e[5]+=C*w,e;const R=w/Math.sqrt(g*g+_*_+T*T),I=w/x,O=I-R,y=-O;return e[0]+=r*(b*y+I),e[1]+=i*(A*y+I),e[2]+=n*(E*y+I),e[3]+=o*(S*O+R),e[4]+=a*(M*O+R),e[5]+=s*(C*O+R),e}applyToMbs(e){const t=(0,i.l)((0,o.a)(e)),r=this._totalOffset/t;return(0,i.b)((0,o.a)(this._tmpMbs),(0,o.a)(e),(0,o.a)(e),r),this._tmpMbs[3]=e[3]+e[3]*this._totalOffset/t,this._tmpMbs}applyToObb(e){return(0,s.gm)(e,this._totalOffset,this._totalOffset,a.RT.Global,this._tmpObb),this._tmpObb}},new class{constructor(e=0){this.offset=e,this.tmpVertex=(0,n.vt)()}applyToVertex(e,t,r){const n=(0,i.i)(d,e,t,r),o=(0,i.g)(u,n,this.localOrigin),a=this.offset/(0,i.l)(o);return(0,i.b)(this.tmpVertex,n,o,a),this.tmpVertex}applyToAabb(e){const t=h,r=m,i=f;for(let n=0;n<3;++n)t[n]=e[0+n]+this.localOrigin[n],r[n]=e[3+n]+this.localOrigin[n],i[n]=t[n];const n=this.applyToVertex(t[0],t[1],t[2]);for(let t=0;t<3;++t)e[t]=n[t],e[t+3]=n[t];const o=t=>{const r=this.applyToVertex(t[0],t[1],t[2]);for(let t=0;t<3;++t)e[t]=Math.min(e[t],r[t]),e[t+3]=Math.max(e[t+3],r[t])};for(let e=1;e<8;++e){for(let n=0;n<3;++n)i[n]=e&1<<n?r[n]:t[n];o(i)}let a=0;for(let e=0;e<3;++e)t[e]*r[e]<0&&(a|=1<<e);if(0!==a&&7!==a)for(let e=0;e<8;++e)if(!(a&e)){for(let n=0;n<3;++n)i[n]=a&1<<n?0:e&1<<n?t[n]:r[n];o(i)}for(let t=0;t<3;++t)e[t]-=this.localOrigin[t],e[t+3]-=this.localOrigin[t];return e}};const d=(0,n.vt)(),u=(0,n.vt)(),h=(0,n.vt)(),m=(0,n.vt)(),f=(0,n.vt)()},17352:(e,t,r)=>{r.d(t,{b:()=>j,f:()=>x}),r(44208);var i=r(53966),n=r(34727),o=r(4341),a=r(58083),s=r(9093),c=r(38954),l=r(51850),d=r(19419),u=r(88582),h=r(11964),m=r(27921),f=r(71351),p=r(44280),v=r(32114);const g=()=>i.A.getLogger("esri.views.3d.support.geometryUtils.boundedPlane");function _(e=H){return{plane:(0,m.vt)(e.plane),origin:(0,l.o8)(e.origin),basis1:(0,l.o8)(e.basis1),basis2:(0,l.o8)(e.basis2)}}function T(e,t=_()){return x(e.origin,e.basis1,e.basis2,t)}function x(e,t,r,i=_()){return(0,c.c)(i.origin,e),(0,c.c)(i.basis1,t),(0,c.c)(i.basis2,r),b(i),function(e,t){Math.abs((0,c.f)(e.basis1,e.basis2)/((0,c.l)(e.basis1)*(0,c.l)(e.basis2)))>1e-6&&g().warn(t,"Provided basis vectors are not perpendicular"),Math.abs((0,c.f)(e.basis1,y(e)))>1e-6&&g().warn(t,"Basis vectors and plane normal are not perpendicular"),Math.abs(-(0,c.f)(y(e),e.origin)-e.plane[3])>1e-6&&g().warn(t,"Plane offset is not consistent with plane origin")}(i,"fromValues()"),i}function b(e){(0,m.mR)(e.basis2,e.basis1,e.origin,e.plane)}function A(e,t,r){e!==r&&T(e,r);const i=(0,c.h)(v.rq.get(),y(e),t);return(0,c.g)(r.origin,r.origin,i),r.plane[3]-=t,r}function E(e,t=_()){const r=(e[2]-e[0])/2,i=(e[3]-e[1])/2;return(0,c.i)(t.origin,e[0]+r,e[1]+i,0),(0,c.i)(t.basis1,r,0,0),(0,c.i)(t.basis2,0,i,0),(0,m.fA)(0,0,1,0,t.plane),t}function S(e,t,r){return!!(0,m.Ui)(e.plane,t,r)&&N(e,r)}function M(e,t,r){const i=F.get();D(e,t,i,F.get());let o=Number.POSITIVE_INFINITY;for(const a of z){const s=L(e,a,B.get()),l=v.rq.get();if((0,m.T7)(i,s,l)){const e=(0,c.o)(v.rq.get(),t.origin,l),i=Math.abs((0,n.XM)((0,c.f)(t.direction,e)));i<o&&(o=i,(0,c.c)(r,l))}}return o===Number.POSITIVE_INFINITY?C(e,t,r):r}function C(e,t,r){if(S(e,t,r))return r;const i=F.get(),n=F.get();D(e,t,i,n);let o=Number.POSITIVE_INFINITY;for(const a of z){const s=L(e,a,B.get()),l=v.rq.get();if((0,m.gv)(i,s,l)){const e=(0,f.kb)(t,l);if(!(0,m.Tj)(n,l))continue;e<o&&(o=e,(0,c.c)(r,l))}}return I(e,t.origin)<o&&w(e,t.origin,r),r}function w(e,t,r){const i=(0,m._I)(e.plane,t,v.rq.get()),n=(0,h.H6)(P(e,e.basis1),i,-1,1,v.rq.get()),o=(0,h.H6)(P(e,e.basis2),i,-1,1,v.rq.get());return(0,c.d)(r,(0,c.g)(v.rq.get(),n,o),e.origin),r}function R(e,t,r){const{origin:i,basis1:n,basis2:o}=e,a=(0,c.d)(v.rq.get(),t,i),s=(0,p.gr)(n,a),l=(0,p.gr)(o,a),d=(0,p.gr)(y(e),a);return(0,c.i)(r,s,l,d)}function I(e,t){const r=R(e,t,v.rq.get()),{basis1:i,basis2:n}=e,o=(0,c.l)(i),a=(0,c.l)(n),s=Math.max(Math.abs(r[0])-o,0),l=Math.max(Math.abs(r[1])-a,0),d=r[2];return s*s+l*l+d*d}function O(e,t){const r=-e.plane[3];return(0,p.gr)(y(e),t)-r}function y(e){return(0,m.Qj)(e.plane)}function N(e,t){const r=(0,c.d)(v.rq.get(),t,e.origin),i=(0,c.k)(e.basis1),n=(0,c.k)(e.basis2),o=(0,c.f)(e.basis1,r),a=(0,c.f)(e.basis2,r);return-o-i<0&&o-i<0&&-a-n<0&&a-n<0}function P(e,t){const r=B.get();return(0,c.c)(r.origin,e.origin),(0,c.c)(r.vector,t),r}function L(e,t,r){const{basis1:i,basis2:n,origin:o}=e,a=(0,c.h)(v.rq.get(),i,t.origin[0]),s=(0,c.h)(v.rq.get(),n,t.origin[1]);(0,c.g)(r.origin,a,s),(0,c.g)(r.origin,r.origin,o);const l=(0,c.h)(v.rq.get(),i,t.direction[0]),d=(0,c.h)(v.rq.get(),n,t.direction[1]);return(0,c.h)(r.vector,(0,c.g)(l,l,d),2),r}function D(e,t,r,i){const n=y(e);(0,m.mR)(n,t.direction,t.origin,r),(0,m.mR)((0,m.Qj)(r),n,t.origin,i)}const H={plane:(0,m.vt)(),origin:(0,l.fA)(0,0,0),basis1:(0,l.fA)(1,0,0),basis2:(0,l.fA)(0,1,0)},F=new o.I(m.vt),B=new o.I(h.vt),U=(0,l.vt)(),G=new o.I((()=>_())),z=[{origin:[-1,-1],direction:[1,0]},{origin:[1,-1],direction:[0,1]},{origin:[1,1],direction:[-1,0]},{origin:[-1,1],direction:[0,-1]}],V=(0,s.vt)(),W=(0,s.vt)(),j=Object.freeze(Object.defineProperty({__proto__:null,BoundedPlaneClass:class{constructor(){this.plane=(0,m.vt)(),this.origin=(0,l.vt)(),this.basis1=(0,l.vt)(),this.basis2=(0,l.vt)()}},altitudeAt:O,axisAt:function(e,t,r,i){return function(e,t,r){switch(t){case u._.X:(0,c.c)(r,e.basis1),(0,c.n)(r,r);break;case u._.Y:(0,c.c)(r,e.basis2),(0,c.n)(r,r);break;case u._.Z:(0,c.c)(r,y(e))}return r}(e,r,i)},cameraFrustumCoverage:function(e,t){return(t-e)/t},closestPoint:C,closestPointOnSilhouette:M,copy:T,copyWithoutVerify:function(e,t){(0,c.c)(t.origin,e.origin),(0,c.c)(t.basis1,e.basis1),(0,c.c)(t.basis2,e.basis2),(0,m.C)(t.plane,e.plane)},create:_,distance:function(e,t){return Math.sqrt(I(e,t))},distance2:I,distanceToSilhouette:function(e,t){let r=Number.NEGATIVE_INFINITY;for(const i of z){const n=L(e,i,B.get()),o=(0,h.kb)(n,t);o>r&&(r=o)}return Math.sqrt(r)},elevate:A,equals:function(e,t){return(0,c.p)(e.basis1,t.basis1)&&(0,c.p)(e.basis2,t.basis2)&&(0,c.p)(e.origin,t.origin)},extrusionContainsPoint:function(e,t){return(0,m.Tj)(e.plane,t)&&N(e,t)},fromAABoundingRect:E,fromValues:x,getExtent:function(e,t){const r=e.basis1[0],i=e.basis2[1],[n,o]=e.origin;return(0,d.fA)(n-r,o-i,n+r,o+i,t)},intersectRay:S,intersectRayClosestSilhouette:function(e,t,r){if(S(e,t,r))return r;const i=M(e,t,v.rq.get());return(0,c.g)(r,t.origin,(0,c.h)(v.rq.get(),t.direction,(0,c.j)(t.origin,i)/(0,c.l)(t.direction))),r},normal:y,projectPoint:w,projectPointLocal:R,rotate:function(e,t,r,i){return e!==i&&T(e,i),(0,a.$0)(W,t,r),(0,c.t)(i.basis1,e.basis1,W),(0,c.t)(i.basis2,e.basis2,W),b(i),i},setAltitudeAt:function(e,t,r,i){const n=O(e,t),o=(0,c.h)(U,y(e),r-n);return(0,c.g)(i,t,o),i},setExtent:function(e,t,r){return E(t,r),A(r,O(e,e.origin),r),r},transform:function(e,t,r){return e!==r&&T(e,r),(0,a.B8)(V,t),(0,a.mg)(V,V),(0,c.t)(r.basis1,e.basis1,V),(0,c.t)(r.basis2,e.basis2,V),(0,c.t)((0,m.Qj)(r.plane),(0,m.Qj)(e.plane),V),(0,c.t)(r.origin,e.origin,t),(0,m.mP)(r.plane,r.plane,r.origin),r},up:H,updateUnboundedPlane:b,wrap:function(e,t,r){const i=G.get();return i.origin=e,i.basis1=t,i.basis2=r,i.plane=(0,m.LV)(0,0,0,0),b(i),i}},Symbol.toStringTag,{value:"Module"}))},17478:(e,t,r)=>{r.d(t,{h:()=>a,p:()=>s});var i=r(24326),n=r(89192);class o{constructor(){this.uid=(0,i.c)()}}class a extends o{constructor(e){super(),this.highlightName=e,this.channel=n.Mg.Highlight}}class s extends o{constructor(){super(...arguments),this.channel=n.Mg.MaskOccludee}}},20304:(e,t,r)=>{r.d(t,{m:()=>o});var i=r(69270),n=r(74333);class o extends n.n{constructor(e,t){super(e,"float",i.c.Pass,((r,i,n)=>r.setUniform1f(e,t(i,n))))}}},20693:(e,t,r)=>{r.d(t,{yu:()=>f,Nz:()=>T,NB:()=>p,S7:()=>_});var i=r(58083),n=r(9093),o=r(38954),a=r(51850),s=r(23205),c=r(40710),l=r(33094),d=r(58029),u=r(69270),h=r(74333);class m extends h.n{constructor(e,t){super(e,"mat4",u.c.Draw,((r,i,n)=>r.setUniformMatrix4fv(e,t(i,n))))}}function f(e,t){t.instancedDoublePrecision?e.constants.add("cameraPosition","vec3",a.uY):e.uniforms.add(new c.W("cameraPosition",((e,t)=>(0,o.i)(g,t.camera.viewInverseTransposeMatrix[3]-e.origin[0],t.camera.viewInverseTransposeMatrix[7]-e.origin[1],t.camera.viewInverseTransposeMatrix[11]-e.origin[2]))))}function p(e,t){if(!t.instancedDoublePrecision)return void e.uniforms.add(new d.F("proj",(e=>e.camera.projectionMatrix)),new m("view",((e,t)=>(0,i.Tl)(v,t.camera.viewMatrix,e.origin))),new c.W("localOrigin",(e=>e.origin)));const r=({camera:e})=>(0,o.i)(g,e.viewInverseTransposeMatrix[3],e.viewInverseTransposeMatrix[7],e.viewInverseTransposeMatrix[11]);e.uniforms.add(new d.F("proj",(e=>e.camera.projectionMatrix)),new d.F("view",(e=>(0,i.Tl)(v,e.camera.viewMatrix,r(e)))),new s.d("localOrigin",(e=>r(e))))}const v=(0,n.vt)(),g=(0,a.vt)();function _(e){e.uniforms.add(new d.F("viewNormal",(e=>e.camera.viewInverseTransposeMatrix)))}function T(e){e.uniforms.add(new l.U("pixelRatio",(e=>e.camera.pixelRatio/e.overlayStretch)))}},22393:(e,t,r)=>{r.d(t,{c:()=>s});var i=r(31821);function n(e){const t=e.fragment.code;t.add(i.H`vec3 evaluateDiffuseIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float NdotNG)
85
+ fragOcclusion = A;`),e}function g(e){return Math.max(10,20*e.computeScreenPixelSizeAtDist(Math.abs(4*e.relativeElevation)))}const _=(0,o.vt)(),T=Object.freeze(Object.defineProperty({__proto__:null,build:v,getRadius:g},Symbol.toStringTag,{value:"Module"}))},16396:(e,t,r)=>{r.d(t,{ou:()=>l}),r(77690),r(29242),r(58083),r(9093);var i=r(38954),o=r(51850),n=r(97937),a=r(24151),s=r(57005);const c=new class{constructor(e=0){this.offset=e,this.sphere=(0,n.c)(),this.tmpVertex=(0,o.vt)()}applyToVertex(e,t,r){const o=this.objectTransform.transform,n=(0,i.i)(d,e,t,r),a=(0,i.t)(n,n,o),s=this.offset/(0,i.l)(a);(0,i.b)(a,a,a,s);const c=this.objectTransform.inverse;return(0,i.t)(this.tmpVertex,a,c),this.tmpVertex}applyToMinMax(e,t){const r=this.offset/(0,i.l)(e);(0,i.b)(e,e,e,r);const o=this.offset/(0,i.l)(t);(0,i.b)(t,t,t,o)}applyToAabb(e){const t=this.offset/Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]+=e[0]*t,e[1]+=e[1]*t,e[2]+=e[2]*t;const r=this.offset/Math.sqrt(e[3]*e[3]+e[4]*e[4]+e[5]*e[5]);return e[3]+=e[3]*r,e[4]+=e[4]*r,e[5]+=e[5]*r,e}applyToBoundingSphere(e){const t=(0,i.l)((0,n.a)(e)),r=this.offset/t;return(0,i.b)((0,n.a)(this.sphere),(0,n.a)(e),(0,n.a)(e),r),this.sphere[3]=e[3]+e[3]*this.offset/t,this.sphere}};function l(e){return null!=e?(c.offset=e,c):null}new class{constructor(e=0){this.componentLocalOriginLength=0,this._totalOffset=0,this._offset=0,this._tmpVertex=(0,o.vt)(),this._tmpMbs=(0,n.c)(),this._tmpObb=new s.ab,this._resetOffset(e)}_resetOffset(e){this._offset=e,this._totalOffset=e}set offset(e){this._resetOffset(e)}get offset(){return this._offset}set componentOffset(e){this._totalOffset=this._offset+e}set localOrigin(e){this.componentLocalOriginLength=(0,i.l)(e)}applyToVertex(e,t,r){const o=(0,i.i)(d,e,t,r),n=(0,i.i)(u,e,t,r+this.componentLocalOriginLength),a=this._totalOffset/(0,i.l)(n);return(0,i.b)(this._tmpVertex,o,n,a),this._tmpVertex}applyToAabb(e){const t=this.componentLocalOriginLength,r=e[0],i=e[1],o=e[2]+t,n=e[3],a=e[4],s=e[5]+t,c=Math.abs(r),l=Math.abs(i),d=Math.abs(o),u=Math.abs(n),h=Math.abs(a),m=Math.abs(s),p=.5*(1+Math.sign(r*n))*Math.min(c,u),f=.5*(1+Math.sign(i*a))*Math.min(l,h),v=.5*(1+Math.sign(o*s))*Math.min(d,m),g=Math.max(c,u),_=Math.max(l,h),T=Math.max(d,m),x=Math.sqrt(p*p+f*f+v*v),b=Math.sign(c+r),A=Math.sign(l+i),E=Math.sign(d+o),S=Math.sign(u+n),M=Math.sign(h+a),w=Math.sign(m+s),C=this._totalOffset;if(x<C)return e[0]-=(1-b)*C,e[1]-=(1-A)*C,e[2]-=(1-E)*C,e[3]+=S*C,e[4]+=M*C,e[5]+=w*C,e;const R=C/Math.sqrt(g*g+_*_+T*T),I=C/x,O=I-R,y=-O;return e[0]+=r*(b*y+I),e[1]+=i*(A*y+I),e[2]+=o*(E*y+I),e[3]+=n*(S*O+R),e[4]+=a*(M*O+R),e[5]+=s*(w*O+R),e}applyToMbs(e){const t=(0,i.l)((0,n.a)(e)),r=this._totalOffset/t;return(0,i.b)((0,n.a)(this._tmpMbs),(0,n.a)(e),(0,n.a)(e),r),this._tmpMbs[3]=e[3]+e[3]*this._totalOffset/t,this._tmpMbs}applyToObb(e){return(0,s.gm)(e,this._totalOffset,this._totalOffset,a.RT.Global,this._tmpObb),this._tmpObb}},new class{constructor(e=0){this.offset=e,this.tmpVertex=(0,o.vt)()}applyToVertex(e,t,r){const o=(0,i.i)(d,e,t,r),n=(0,i.g)(u,o,this.localOrigin),a=this.offset/(0,i.l)(n);return(0,i.b)(this.tmpVertex,o,n,a),this.tmpVertex}applyToAabb(e){const t=h,r=m,i=p;for(let o=0;o<3;++o)t[o]=e[0+o]+this.localOrigin[o],r[o]=e[3+o]+this.localOrigin[o],i[o]=t[o];const o=this.applyToVertex(t[0],t[1],t[2]);for(let t=0;t<3;++t)e[t]=o[t],e[t+3]=o[t];const n=t=>{const r=this.applyToVertex(t[0],t[1],t[2]);for(let t=0;t<3;++t)e[t]=Math.min(e[t],r[t]),e[t+3]=Math.max(e[t+3],r[t])};for(let e=1;e<8;++e){for(let o=0;o<3;++o)i[o]=e&1<<o?r[o]:t[o];n(i)}let a=0;for(let e=0;e<3;++e)t[e]*r[e]<0&&(a|=1<<e);if(0!==a&&7!==a)for(let e=0;e<8;++e)if(!(a&e)){for(let o=0;o<3;++o)i[o]=a&1<<o?0:e&1<<o?t[o]:r[o];n(i)}for(let t=0;t<3;++t)e[t]-=this.localOrigin[t],e[t+3]-=this.localOrigin[t];return e}};const d=(0,o.vt)(),u=(0,o.vt)(),h=(0,o.vt)(),m=(0,o.vt)(),p=(0,o.vt)()},17352:(e,t,r)=>{r.d(t,{b:()=>j,f:()=>x}),r(44208);var i=r(53966),o=r(34727),n=r(4341),a=r(58083),s=r(9093),c=r(38954),l=r(51850),d=r(19419),u=r(88582),h=r(11964),m=r(27921),p=r(71351),f=r(44280),v=r(32114);const g=()=>i.A.getLogger("esri.views.3d.support.geometryUtils.boundedPlane");function _(e=H){return{plane:(0,m.vt)(e.plane),origin:(0,l.o8)(e.origin),basis1:(0,l.o8)(e.basis1),basis2:(0,l.o8)(e.basis2)}}function T(e,t=_()){return x(e.origin,e.basis1,e.basis2,t)}function x(e,t,r,i=_()){return(0,c.c)(i.origin,e),(0,c.c)(i.basis1,t),(0,c.c)(i.basis2,r),b(i),function(e,t){Math.abs((0,c.f)(e.basis1,e.basis2)/((0,c.l)(e.basis1)*(0,c.l)(e.basis2)))>1e-6&&g().warn(t,"Provided basis vectors are not perpendicular"),Math.abs((0,c.f)(e.basis1,y(e)))>1e-6&&g().warn(t,"Basis vectors and plane normal are not perpendicular"),Math.abs(-(0,c.f)(y(e),e.origin)-e.plane[3])>1e-6&&g().warn(t,"Plane offset is not consistent with plane origin")}(i,"fromValues()"),i}function b(e){(0,m.mR)(e.basis2,e.basis1,e.origin,e.plane)}function A(e,t,r){e!==r&&T(e,r);const i=(0,c.h)(v.rq.get(),y(e),t);return(0,c.g)(r.origin,r.origin,i),r.plane[3]-=t,r}function E(e,t=_()){const r=(e[2]-e[0])/2,i=(e[3]-e[1])/2;return(0,c.i)(t.origin,e[0]+r,e[1]+i,0),(0,c.i)(t.basis1,r,0,0),(0,c.i)(t.basis2,0,i,0),(0,m.fA)(0,0,1,0,t.plane),t}function S(e,t,r){return!!(0,m.Ui)(e.plane,t,r)&&N(e,r)}function M(e,t,r){const i=F.get();L(e,t,i,F.get());let n=Number.POSITIVE_INFINITY;for(const a of z){const s=D(e,a,B.get()),l=v.rq.get();if((0,m.T7)(i,s,l)){const e=(0,c.o)(v.rq.get(),t.origin,l),i=Math.abs((0,o.XM)((0,c.f)(t.direction,e)));i<n&&(n=i,(0,c.c)(r,l))}}return n===Number.POSITIVE_INFINITY?w(e,t,r):r}function w(e,t,r){if(S(e,t,r))return r;const i=F.get(),o=F.get();L(e,t,i,o);let n=Number.POSITIVE_INFINITY;for(const a of z){const s=D(e,a,B.get()),l=v.rq.get();if((0,m.gv)(i,s,l)){const e=(0,p.kb)(t,l);if(!(0,m.Tj)(o,l))continue;e<n&&(n=e,(0,c.c)(r,l))}}return I(e,t.origin)<n&&C(e,t.origin,r),r}function C(e,t,r){const i=(0,m._I)(e.plane,t,v.rq.get()),o=(0,h.H6)(P(e,e.basis1),i,-1,1,v.rq.get()),n=(0,h.H6)(P(e,e.basis2),i,-1,1,v.rq.get());return(0,c.d)(r,(0,c.g)(v.rq.get(),o,n),e.origin),r}function R(e,t,r){const{origin:i,basis1:o,basis2:n}=e,a=(0,c.d)(v.rq.get(),t,i),s=(0,f.gr)(o,a),l=(0,f.gr)(n,a),d=(0,f.gr)(y(e),a);return(0,c.i)(r,s,l,d)}function I(e,t){const r=R(e,t,v.rq.get()),{basis1:i,basis2:o}=e,n=(0,c.l)(i),a=(0,c.l)(o),s=Math.max(Math.abs(r[0])-n,0),l=Math.max(Math.abs(r[1])-a,0),d=r[2];return s*s+l*l+d*d}function O(e,t){const r=-e.plane[3];return(0,f.gr)(y(e),t)-r}function y(e){return(0,m.Qj)(e.plane)}function N(e,t){const r=(0,c.d)(v.rq.get(),t,e.origin),i=(0,c.k)(e.basis1),o=(0,c.k)(e.basis2),n=(0,c.f)(e.basis1,r),a=(0,c.f)(e.basis2,r);return-n-i<0&&n-i<0&&-a-o<0&&a-o<0}function P(e,t){const r=B.get();return(0,c.c)(r.origin,e.origin),(0,c.c)(r.vector,t),r}function D(e,t,r){const{basis1:i,basis2:o,origin:n}=e,a=(0,c.h)(v.rq.get(),i,t.origin[0]),s=(0,c.h)(v.rq.get(),o,t.origin[1]);(0,c.g)(r.origin,a,s),(0,c.g)(r.origin,r.origin,n);const l=(0,c.h)(v.rq.get(),i,t.direction[0]),d=(0,c.h)(v.rq.get(),o,t.direction[1]);return(0,c.h)(r.vector,(0,c.g)(l,l,d),2),r}function L(e,t,r,i){const o=y(e);(0,m.mR)(o,t.direction,t.origin,r),(0,m.mR)((0,m.Qj)(r),o,t.origin,i)}const H={plane:(0,m.vt)(),origin:(0,l.fA)(0,0,0),basis1:(0,l.fA)(1,0,0),basis2:(0,l.fA)(0,1,0)},F=new n.I(m.vt),B=new n.I(h.vt),U=(0,l.vt)(),G=new n.I((()=>_())),z=[{origin:[-1,-1],direction:[1,0]},{origin:[1,-1],direction:[0,1]},{origin:[1,1],direction:[-1,0]},{origin:[-1,1],direction:[0,-1]}],V=(0,s.vt)(),W=(0,s.vt)(),j=Object.freeze(Object.defineProperty({__proto__:null,BoundedPlaneClass:class{constructor(){this.plane=(0,m.vt)(),this.origin=(0,l.vt)(),this.basis1=(0,l.vt)(),this.basis2=(0,l.vt)()}},altitudeAt:O,axisAt:function(e,t,r,i){return function(e,t,r){switch(t){case u._.X:(0,c.c)(r,e.basis1),(0,c.n)(r,r);break;case u._.Y:(0,c.c)(r,e.basis2),(0,c.n)(r,r);break;case u._.Z:(0,c.c)(r,y(e))}return r}(e,r,i)},cameraFrustumCoverage:function(e,t){return(t-e)/t},closestPoint:w,closestPointOnSilhouette:M,copy:T,copyWithoutVerify:function(e,t){(0,c.c)(t.origin,e.origin),(0,c.c)(t.basis1,e.basis1),(0,c.c)(t.basis2,e.basis2),(0,m.C)(t.plane,e.plane)},create:_,distance:function(e,t){return Math.sqrt(I(e,t))},distance2:I,distanceToSilhouette:function(e,t){let r=Number.NEGATIVE_INFINITY;for(const i of z){const o=D(e,i,B.get()),n=(0,h.kb)(o,t);n>r&&(r=n)}return Math.sqrt(r)},elevate:A,equals:function(e,t){return(0,c.p)(e.basis1,t.basis1)&&(0,c.p)(e.basis2,t.basis2)&&(0,c.p)(e.origin,t.origin)},extrusionContainsPoint:function(e,t){return(0,m.Tj)(e.plane,t)&&N(e,t)},fromAABoundingRect:E,fromValues:x,getExtent:function(e,t){const r=e.basis1[0],i=e.basis2[1],[o,n]=e.origin;return(0,d.fA)(o-r,n-i,o+r,n+i,t)},intersectRay:S,intersectRayClosestSilhouette:function(e,t,r){if(S(e,t,r))return r;const i=M(e,t,v.rq.get());return(0,c.g)(r,t.origin,(0,c.h)(v.rq.get(),t.direction,(0,c.j)(t.origin,i)/(0,c.l)(t.direction))),r},normal:y,projectPoint:C,projectPointLocal:R,rotate:function(e,t,r,i){return e!==i&&T(e,i),(0,a.$0)(W,t,r),(0,c.t)(i.basis1,e.basis1,W),(0,c.t)(i.basis2,e.basis2,W),b(i),i},setAltitudeAt:function(e,t,r,i){const o=O(e,t),n=(0,c.h)(U,y(e),r-o);return(0,c.g)(i,t,n),i},setExtent:function(e,t,r){return E(t,r),A(r,O(e,e.origin),r),r},transform:function(e,t,r){return e!==r&&T(e,r),(0,a.B8)(V,t),(0,a.mg)(V,V),(0,c.t)(r.basis1,e.basis1,V),(0,c.t)(r.basis2,e.basis2,V),(0,c.t)((0,m.Qj)(r.plane),(0,m.Qj)(e.plane),V),(0,c.t)(r.origin,e.origin,t),(0,m.mP)(r.plane,r.plane,r.origin),r},up:H,updateUnboundedPlane:b,wrap:function(e,t,r){const i=G.get();return i.origin=e,i.basis1=t,i.basis2=r,i.plane=(0,m.LV)(0,0,0,0),b(i),i}},Symbol.toStringTag,{value:"Module"}))},17478:(e,t,r)=>{r.d(t,{h:()=>a,p:()=>s});var i=r(24326),o=r(89192);class n{constructor(){this.uid=(0,i.c)()}}class a extends n{constructor(e){super(),this.highlightName=e,this.channel=o.Mg.Highlight}}class s extends n{constructor(){super(...arguments),this.channel=o.Mg.MaskOccludee}}},20304:(e,t,r)=>{r.d(t,{m:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"float",i.c.Pass,((r,i,o)=>r.setUniform1f(e,t(i,o))))}}},20693:(e,t,r)=>{r.d(t,{yu:()=>p,Nz:()=>T,NB:()=>f,S7:()=>_});var i=r(58083),o=r(9093),n=r(38954),a=r(51850),s=r(23205),c=r(40710),l=r(33094),d=r(58029),u=r(69270),h=r(74333);class m extends h.n{constructor(e,t){super(e,"mat4",u.c.Draw,((r,i,o)=>r.setUniformMatrix4fv(e,t(i,o))))}}function p(e,t){t.instancedDoublePrecision?e.constants.add("cameraPosition","vec3",a.uY):e.uniforms.add(new c.W("cameraPosition",((e,t)=>(0,n.i)(g,t.camera.viewInverseTransposeMatrix[3]-e.origin[0],t.camera.viewInverseTransposeMatrix[7]-e.origin[1],t.camera.viewInverseTransposeMatrix[11]-e.origin[2]))))}function f(e,t){if(!t.instancedDoublePrecision)return void e.uniforms.add(new d.F("proj",(e=>e.camera.projectionMatrix)),new m("view",((e,t)=>(0,i.Tl)(v,t.camera.viewMatrix,e.origin))),new c.W("localOrigin",(e=>e.origin)));const r=({camera:e})=>(0,n.i)(g,e.viewInverseTransposeMatrix[3],e.viewInverseTransposeMatrix[7],e.viewInverseTransposeMatrix[11]);e.uniforms.add(new d.F("proj",(e=>e.camera.projectionMatrix)),new d.F("view",(e=>(0,i.Tl)(v,e.camera.viewMatrix,r(e)))),new s.d("localOrigin",(e=>r(e))))}const v=(0,o.vt)(),g=(0,a.vt)();function _(e){e.uniforms.add(new d.F("viewNormal",(e=>e.camera.viewInverseTransposeMatrix)))}function T(e){e.uniforms.add(new l.U("pixelRatio",(e=>e.camera.pixelRatio/e.overlayStretch)))}},22393:(e,t,r)=>{r.d(t,{c:()=>s});var i=r(31821);function o(e){const t=e.fragment.code;t.add(i.H`vec3 evaluateDiffuseIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float NdotNG)
86
86
  {
87
87
  return ((1.0 - NdotNG) * ambientGround + (1.0 + NdotNG) * ambientSky) * 0.5;
88
88
  }`),t.add(i.H`float integratedRadiance(float cosTheta2, float roughness)
@@ -95,7 +95,7 @@ float intRadTheta = integratedRadiance(cosTheta2, roughness);
95
95
  float ground = RdotNG < 0.0 ? 1.0 - intRadTheta : 1.0 + intRadTheta;
96
96
  float sky = 2.0 - ground;
97
97
  return (ground * ambientGround + sky * ambientSky) * 0.5;
98
- }`)}var o=r(59469),a=r(89786);function s(e,t){const r=e.fragment.code;e.include(a.p),t.pbrMode!==o.A9.Normal&&t.pbrMode!==o.A9.Schematic&&t.pbrMode!==o.A9.Simplified&&t.pbrMode!==o.A9.TerrainWithWater||(r.add(i.H`float normalDistribution(float NdotH, float roughness)
98
+ }`)}var n=r(59469),a=r(89786);function s(e,t){const r=e.fragment.code;e.include(a.p),t.pbrMode!==n.A9.Normal&&t.pbrMode!==n.A9.Schematic&&t.pbrMode!==n.A9.Simplified&&t.pbrMode!==n.A9.TerrainWithWater||(r.add(i.H`float normalDistribution(float NdotH, float roughness)
99
99
  {
100
100
  float a = NdotH * roughness;
101
101
  float b = roughness / (1.0 - NdotH * NdotH + a * a);
@@ -107,7 +107,7 @@ vec2 prefilteredDFGAnalytical(float roughness, float NdotV) {
107
107
  vec4 r = roughness * c0 + c1;
108
108
  float a004 = min(r.x * r.x, exp2(-9.28 * NdotV)) * r.x + r.y;
109
109
  return c2 * a004 + r.zw;
110
- }`)),t.pbrMode!==o.A9.Normal&&t.pbrMode!==o.A9.Schematic||(e.include(n),r.add(i.H`struct PBRShadingInfo
110
+ }`)),t.pbrMode!==n.A9.Normal&&t.pbrMode!==n.A9.Schematic||(e.include(o),r.add(i.H`struct PBRShadingInfo
111
111
  {
112
112
  float NdotV;
113
113
  float LdotH;
@@ -144,65 +144,150 @@ outColor.x = gamutMapChanel(inColor.x, p) ;
144
144
  outColor.y = gamutMapChanel(inColor.y, p) ;
145
145
  outColor.z = gamutMapChanel(inColor.z, p) ;
146
146
  return outColor;
147
- }`))}},22911:(e,t,r)=>{r.d(t,{NL:()=>m,ZX:()=>i});var i,n,o=r(49255),a=r(99208),s=r(40710),c=r(33079),l=r(31821),d=r(15976),u=r(63761),h=(r(25634),r(69270));function m(e,t){if(!(0,o.RN)(t.output))return;const{emissionSource:r,hasEmissiveTextureTransform:n,bindType:m}=t,f=r===i.Texture;f&&(e.include(a.r,t),e.fragment.uniforms.add(m===h.c.Pass?new u.N("texEmission",(e=>e.textureEmissive)):new d.o("texEmission",(e=>e.textureEmissive))));const p=r===i.Value||f;p&&e.fragment.uniforms.add(m===h.c.Pass?new c.t("emissionFactor",(e=>e.emissiveFactor)):new s.W("emissionFactor",(e=>e.emissiveFactor))),e.fragment.code.add(l.H`
147
+ }`))}},22911:(e,t,r)=>{r.d(t,{NL:()=>m,ZX:()=>i});var i,o,n=r(49255),a=r(99208),s=r(40710),c=r(33079),l=r(31821),d=r(15976),u=r(63761),h=(r(25634),r(69270));function m(e,t){if(!(0,n.RN)(t.output))return;const{emissionSource:r,hasEmissiveTextureTransform:o,bindType:m}=t,p=r===i.Texture;p&&(e.include(a.r,t),e.fragment.uniforms.add(m===h.c.Pass?new u.N("texEmission",(e=>e.textureEmissive)):new d.o("texEmission",(e=>e.textureEmissive))));const f=r===i.Value||p;f&&e.fragment.uniforms.add(m===h.c.Pass?new c.t("emissionFactor",(e=>e.emissiveFactor)):new s.W("emissionFactor",(e=>e.emissiveFactor))),e.fragment.code.add(l.H`
148
148
  vec4 getEmissions() {
149
- vec4 emissions = ${p?"vec4(emissionFactor, 1.0)":"vec4(0.0)"};
150
- ${(0,l.If)(f,`emissions *= textureLookup(texEmission, ${n?"emissiveUV":"vuv0"});\n emissions.w = emissions.rgb == vec3(0.0) ? 0.0: emissions.w;`)}
149
+ vec4 emissions = ${f?"vec4(emissionFactor, 1.0)":"vec4(0.0)"};
150
+ ${(0,l.If)(p,`emissions *= textureLookup(texEmission, ${o?"emissiveUV":"vuv0"});\n emissions.w = emissions.rgb == vec3(0.0) ? 0.0: emissions.w;`)}
151
151
  return emissions;
152
152
  }
153
- `)}(n=i||(i={}))[n.None=0]="None",n[n.Value=1]="Value",n[n.Texture=2]="Texture",n[n.COUNT=3]="COUNT"},23205:(e,t,r)=>{r.d(t,{d:()=>o});var i=r(69270),n=r(74333);class o extends n.n{constructor(e,t){super(e,"vec3",i.c.Bind,((r,i)=>r.setUniform3fv(e,t(i))))}}},25618:(e,t,r)=>{r.d(t,{Bz:()=>f,G:()=>m}),r(9093),r(51850);var i=r(80730),n=r(14314),o=r(31821),a=r(35818),s=r(69270),c=r(74333);class l extends c.n{constructor(e,t,r){super(e,"mat4",s.c.Draw,((r,i,n,o)=>r.setUniformMatrix4fv(e,t(i,n,o))),r)}}class d extends c.n{constructor(e,t,r){super(e,"mat4",s.c.Pass,((r,i,n)=>r.setUniformMatrix4fv(e,t(i,n))),r)}}var u=r(12791),h=r(65786);function m(e,t){t.receiveShadows&&(e.fragment.uniforms.add(new d("shadowMapMatrix",((e,t)=>t.shadowMap.getShadowMapMatrices(e.origin)),4)),p(e))}function f(e,t){t.receiveShadows&&(e.fragment.uniforms.add(new l("shadowMapMatrix",((e,t)=>t.shadowMap.getShadowMapMatrices(e.origin)),4)),p(e))}function p(e){const t=e.fragment;t.include(i.U),t.uniforms.add(new u.x("shadowMap",(e=>e.shadowMap.depthTexture)),new a.W("numCascades",(e=>e.shadowMap.numCascades)),new n.I("cascadeDistances",(e=>e.shadowMap.cascadeDistances))).code.add(o.H`int chooseCascade(float depth, out mat4 mat) {
154
- vec4 distance = cascadeDistances;
155
- int i = depth < distance[1] ? 0 : depth < distance[2] ? 1 : depth < distance[3] ? 2 : 3;
156
- mat = i == 0 ? shadowMapMatrix[0] : i == 1 ? shadowMapMatrix[1] : i == 2 ? shadowMapMatrix[2] : shadowMapMatrix[3];
157
- return i;
158
- }
159
- vec3 lightSpacePosition(vec3 _vpos, mat4 mat) {
160
- vec4 lv = mat * vec4(_vpos, 1.0);
161
- lv.xy /= lv.w;
162
- return 0.5 * lv.xyz + vec3(0.5);
163
- }
164
- vec2 cascadeCoordinates(int i, ivec2 textureSize, vec3 lvpos) {
165
- float xScale = float(textureSize.y) / float(textureSize.x);
166
- return vec2((float(i) + lvpos.x) * xScale, lvpos.y);
167
- }
168
- float readShadowMapDepth(ivec2 uv, sampler2D _depthTex) {
169
- return rgba4ToFloat(texelFetch(_depthTex, uv, 0));
170
- }
171
- float posIsInShadow(ivec2 uv, vec3 lvpos, sampler2D _depthTex) {
172
- return readShadowMapDepth(uv, _depthTex) < lvpos.z ? 1.0 : 0.0;
173
- }
174
- float filterShadow(vec2 uv, vec3 lvpos, ivec2 texSize, sampler2D _depthTex) {
175
- vec2 st = fract(uv * vec2(texSize) + vec2(0.5));
176
- ivec2 base = ivec2(uv * vec2(texSize) - vec2(0.5));
177
- float s00 = posIsInShadow(ivec2(base.x, base.y), lvpos, _depthTex);
178
- float s10 = posIsInShadow(ivec2(base.x + 1, base.y), lvpos, _depthTex);
179
- float s11 = posIsInShadow(ivec2(base.x + 1, base.y + 1), lvpos, _depthTex);
180
- float s01 = posIsInShadow(ivec2(base.x, base.y + 1), lvpos, _depthTex);
181
- return mix(mix(s00, s10, st.x), mix(s01, s11, st.x), st.y);
182
- }
183
- float readShadowMap(const in vec3 _vpos, float _linearDepth) {
184
- mat4 mat;
185
- int i = chooseCascade(_linearDepth, mat);
186
- if (i >= numCascades) { return 0.0; }
187
- vec3 lvpos = lightSpacePosition(_vpos, mat);
188
- if (lvpos.z >= 1.0 || lvpos.x < 0.0 || lvpos.x > 1.0 || lvpos.y < 0.0 || lvpos.y > 1.0) { return 0.0; }
189
- ivec2 size = textureSize(shadowMap, 0);
190
- vec2 uv = cascadeCoordinates(i, size, lvpos);
191
- return filterShadow(uv, lvpos, size, shadowMap);
192
- }`)}h.Y,h.Y},25634:(e,t,r)=>{r.d(t,{m8:()=>c,NV:()=>d});var i=r(97768),n=r(74887),o=r(89192);class a{constructor(e){this._material=e.material,this._techniques=e.techniques,this._output=e.output}dispose(){}get _stippleTextures(){return this._techniques.context.stippleTextures}get _markerTextures(){return this._techniques.context.markerTextures}getTechnique(e,t){return this._techniques.get(e,this._material.getConfiguration(this._output,t))}ensureResources(e){return o.Am.LOADED}}var s=r(65786);class c extends a{constructor(e){super(e),this._numLoading=0,this._disposed=!1,this._textures=e.textures,this.updateTexture(e.textureId),this._acquire(e.normalTextureId,(e=>this._textureNormal=e)),this._acquire(e.emissiveTextureId,(e=>this._textureEmissive=e)),this._acquire(e.occlusionTextureId,(e=>this._textureOcclusion=e)),this._acquire(e.metallicRoughnessTextureId,(e=>this._textureMetallicRoughness=e))}dispose(){super.dispose(),this._texture=(0,i.Gz)(this._texture),this._textureNormal=(0,i.Gz)(this._textureNormal),this._textureEmissive=(0,i.Gz)(this._textureEmissive),this._textureOcclusion=(0,i.Gz)(this._textureOcclusion),this._textureMetallicRoughness=(0,i.Gz)(this._textureMetallicRoughness),this._disposed=!0}ensureResources(e){return 0===this._numLoading?o.Am.LOADED:o.Am.LOADING}get textureBindParameters(){return new d(this._texture?.glTexture??null,this._textureNormal?.glTexture??null,this._textureEmissive?.glTexture??null,this._textureOcclusion?.glTexture??null,this._textureMetallicRoughness?.glTexture??null)}updateTexture(e){null!=this._texture&&e===this._texture.id||(this._texture=(0,i.Gz)(this._texture),this._acquire(e,(e=>this._texture=e)))}_acquire(e,t){if(null==e)return void t(null);const r=this._textures.acquire(e);if((0,n.$X)(r))return++this._numLoading,void r.then((e=>{if(this._disposed)return(0,i.Gz)(e),void t(null);t(e)})).finally((()=>--this._numLoading));t(r)}}class l extends s.Y{constructor(e=null){super(),this.textureEmissive=e}}class d extends l{constructor(e,t,r,i,n,o,a){super(r),this.texture=e,this.textureNormal=t,this.textureOcclusion=i,this.textureMetallicRoughness=n,this.scale=o,this.normalTextureTransformMatrix=a}}},26857:(e,t,r)=>{r.d(t,{b:()=>c});var i=r(90237),n=r(69622),o=r(10107),a=(r(44208),r(53966),r(87811),r(40608));let s=class extends n.A{constructor(){super(...arguments),this.SCENEVIEW_HITTEST_RETURN_INTERSECTOR=!1,this.DECONFLICTOR_SHOW_VISIBLE=!1,this.DECONFLICTOR_SHOW_INVISIBLE=!1,this.DECONFLICTOR_SHOW_GRID=!1,this.LABELS_SHOW_BORDER=!1,this.TEXT_SHOW_BASELINE=!1,this.TEXT_SHOW_BORDER=!1,this.OVERLAY_DRAW_DEBUG_TEXTURE=!1,this.OVERLAY_SHOW_CENTER=!1,this.SHOW_POI=!1,this.TESTS_DISABLE_OPTIMIZATIONS=!1,this.TESTS_DISABLE_FAST_UPDATES=!1,this.DRAW_MESH_GEOMETRY_NORMALS=!1,this.FEATURE_TILE_FETCH_SHOW_TILES=!1,this.FEATURE_TILE_TREE_SHOW_TILES=!1,this.TERRAIN_TILE_TREE_SHOW_TILES=!1,this.I3S_TREE_SHOW_TILES=!1,this.I3S_SHOW_MODIFICATIONS=!1,this.LOD_INSTANCE_RENDERER_DISABLE_UPDATES=!1,this.LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL=!1,this.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES=!1,this.LINE_WIREFRAMES=!1}};(0,i._)([(0,o.MZ)()],s.prototype,"SCENEVIEW_HITTEST_RETURN_INTERSECTOR",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"DECONFLICTOR_SHOW_VISIBLE",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"DECONFLICTOR_SHOW_INVISIBLE",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"DECONFLICTOR_SHOW_GRID",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"LABELS_SHOW_BORDER",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"TEXT_SHOW_BASELINE",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"TEXT_SHOW_BORDER",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"OVERLAY_DRAW_DEBUG_TEXTURE",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"OVERLAY_SHOW_CENTER",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"SHOW_POI",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"TESTS_DISABLE_OPTIMIZATIONS",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"TESTS_DISABLE_FAST_UPDATES",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"DRAW_MESH_GEOMETRY_NORMALS",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"FEATURE_TILE_FETCH_SHOW_TILES",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"FEATURE_TILE_TREE_SHOW_TILES",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"TERRAIN_TILE_TREE_SHOW_TILES",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"I3S_TREE_SHOW_TILES",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"I3S_SHOW_MODIFICATIONS",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"LOD_INSTANCE_RENDERER_DISABLE_UPDATES",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES",void 0),(0,i._)([(0,o.MZ)()],s.prototype,"LINE_WIREFRAMES",void 0),s=(0,i._)([(0,a.$)("esri.views.3d.support.debugFlags")],s);const c=new s},27950:(e,t,r)=>{r.d(t,{N:()=>a});var i=r(66104),n=r(63365),o=r(31821);function a(e){e.include(n.a),e.code.add(o.H`
153
+ `)}(o=i||(i={}))[o.None=0]="None",o[o.Value=1]="Value",o[o.Texture=2]="Texture",o[o.COUNT=3]="COUNT"},23205:(e,t,r)=>{r.d(t,{d:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec3",i.c.Bind,((r,i)=>r.setUniform3fv(e,t(i))))}}},25618:(e,t,r)=>{r.d(t,{Bz:()=>v,G:()=>f}),r(9093),r(51850);var i=r(52540),o=r(34845),n=r(80730),a=r(14314),s=r(31821),c=r(35818),l=r(69270),d=r(74333);class u extends d.n{constructor(e,t,r){super(e,"mat4",l.c.Draw,((r,i,o,n)=>r.setUniformMatrix4fv(e,t(i,o,n))),r)}}class h extends d.n{constructor(e,t,r){super(e,"mat4",l.c.Pass,((r,i,o)=>r.setUniformMatrix4fv(e,t(i,o))),r)}}var m=r(12791),p=r(65786);function f(e,t){t.receiveShadows&&(e.fragment.uniforms.add(new h("shadowMapMatrix",((e,t)=>t.shadowMap.getShadowMapMatrices(e.origin)),4)),g(e,t))}function v(e,t){t.receiveShadows&&(e.fragment.uniforms.add(new u("shadowMapMatrix",((e,t)=>t.shadowMap.getShadowMapMatrices(e.origin)),4)),g(e,t))}function g(e,t){const{fragment:r}=e;r.include(n.U);const{worldPositionFromDepthMap:l}=t;l&&(r.include(i.E),e.include(o.Ir)),r.uniforms.add(new m.x("shadowMap",(e=>e.shadowMap.depthTexture)),new c.W("numCascades",(e=>e.shadowMap.numCascades)),new a.I("cascadeDistances",(e=>e.shadowMap.cascadeDistances))),r.code.add(s.H`
154
+ // Private
155
+
156
+ int chooseCascade(float depth, out mat4 mat) {
157
+ // choose correct cascade
158
+ vec4 distance = cascadeDistances;
159
+ int i = depth < distance[1] ? 0 : depth < distance[2] ? 1 : depth < distance[3] ? 2 : 3;
160
+
161
+ mat = i == 0 ? shadowMapMatrix[0] : i == 1 ? shadowMapMatrix[1] : i == 2 ? shadowMapMatrix[2] : shadowMapMatrix[3];
162
+
163
+ return i;
164
+ }
165
+
166
+ vec3 lightSpacePosition(vec3 _vpos, mat4 mat) {
167
+ vec4 lv = mat * vec4(_vpos, 1.0);
168
+ lv.xy /= lv.w;
169
+ return 0.5 * lv.xyz + vec3(0.5);
170
+ }
171
+
172
+ vec2 cascadeCoordinates(int i, ivec2 textureSize, vec3 lvpos) {
173
+ float xScale = float(textureSize.y) / float(textureSize.x);
174
+ return vec2((float(i) + lvpos.x) * xScale, lvpos.y);
175
+ }
176
+
177
+ float readShadowMapDepth(ivec2 uv, sampler2D _shadowMap) {
178
+ return rgba4ToFloat(texelFetch(_shadowMap, uv, 0));
179
+ }
180
+
181
+ float posIsInShadow(ivec2 uv, float lvposZ, sampler2D _shadowMap) {
182
+ return readShadowMapDepth(uv, _shadowMap) < lvposZ ? 1.0 : 0.0;
183
+ }
184
+
185
+ float filterShadow(vec3 uvzShadow, sampler2D _shadowMap) {
186
+ ivec2 texSize = textureSize(_shadowMap, 0);
187
+ vec2 uv = uvzShadow.xy;
188
+ vec2 st = fract(uv * vec2(texSize) + vec2(0.5));
189
+ ivec2 base = ivec2(uv * vec2(texSize) - vec2(0.5));
190
+
191
+ float s00 = posIsInShadow(ivec2(base.x, base.y ), uvzShadow.z, _shadowMap);
192
+ float s10 = posIsInShadow(ivec2(base.x + 1, base.y ), uvzShadow.z, _shadowMap);
193
+ float s11 = posIsInShadow(ivec2(base.x + 1, base.y + 1), uvzShadow.z, _shadowMap);
194
+ float s01 = posIsInShadow(ivec2(base.x, base.y + 1), uvzShadow.z, _shadowMap);
195
+
196
+ return mix(mix(s00, s10, st.x), mix(s01, s11, st.x), st.y);
197
+ }
198
+
199
+ // Public
200
+
201
+ bool posIsInShadowF(vec3 uvzShadow, sampler2D _shadowMap) {
202
+ ivec2 texSize = textureSize(_shadowMap, 0);
203
+ ivec2 iuvShadow = ivec2(uvzShadow.xy * vec2(texSize));
204
+
205
+ float depthShadow = readShadowMapDepth(iuvShadow, _shadowMap);
206
+ return depthShadow < uvzShadow.z;
207
+ }
208
+
209
+ const vec3 invalidShadowmapUVZ = vec3(0.0,0.0,-1.0);
210
+
211
+ // Returns a uvzShadow: uv in shadowMap texture and z in lvpos
212
+ vec3 calculateShadowmapUVZ(
213
+ in vec3 _worldPos,
214
+ in float _linearDepth,
215
+ in sampler2D _shadowMap
216
+ )
217
+ {
218
+ mat4 shadowMatrix;
219
+ int i = chooseCascade(_linearDepth, shadowMatrix);
220
+ if (i >= numCascades) {
221
+ return invalidShadowmapUVZ;
222
+ }
223
+
224
+ vec3 lvpos = lightSpacePosition(_worldPos, shadowMatrix);
225
+
226
+ // vertex completely outside? -> no shadow
227
+ if (lvpos.z >= 1.0 || lvpos.x < 0.0 || lvpos.x > 1.0 || lvpos.y < 0.0 || lvpos.y > 1.0) {
228
+ return invalidShadowmapUVZ;
229
+ }
230
+
231
+ // calc coord in cascade texture
232
+ ivec2 texSize = textureSize(_shadowMap, 0);
233
+ vec2 uvShadow = cascadeCoordinates(i, texSize, lvpos);
234
+ return vec3(uvShadow, lvpos.z);
235
+ }
236
+
237
+ ${l?s.H`
238
+ vec3 calculateShadowmapUVZFromDepthMap_curretPixelPos(
239
+ in vec2 _uv,
240
+ in sampler2D _shadowMap,
241
+ in sampler2D _depthMap,
242
+ out vec4 currentPixelPos
243
+ ) {
244
+ // 1.0 is the clear value of depthMap, which means nothing has been drawn there and we should discard
245
+ float depth = depthFromTexture(_depthMap, _uv);
246
+ if (depth >= 1.0 || depth <= 0.0) {
247
+ return invalidShadowmapUVZ;
248
+ }
249
+
250
+ float currentPixelDepth = linearizeDepth(depth);
251
+ currentPixelPos = vec4(reconstructPosition(gl_FragCoord.xy, currentPixelDepth), 1.0);
252
+ vec4 worldSpacePos = inverseViewMatrix * currentPixelPos;
253
+
254
+ float linearDepth = -currentPixelDepth;
255
+
256
+ return calculateShadowmapUVZ(worldSpacePos.xyz, linearDepth, _shadowMap);
257
+ }
258
+
259
+ vec3 calculateShadowmapUVZFromDepthMap(
260
+ in vec2 _uv,
261
+ in sampler2D _shadowMap,
262
+ in sampler2D _depthMap
263
+ ) {
264
+ vec4 currentPixelPos;
265
+ return calculateShadowmapUVZFromDepthMap_curretPixelPos(_uv, _shadowMap, _depthMap, currentPixelPos);
266
+ }
267
+ `:""}
268
+
269
+ float readShadowMap(const in vec3 _worldPos, float _linearDepth) {
270
+ vec3 uvzShadow = calculateShadowmapUVZ(_worldPos, _linearDepth, shadowMap);
271
+ if (uvzShadow.z < 0.0) {
272
+ return 0.0;
273
+ }
274
+
275
+ return filterShadow(uvzShadow, shadowMap);
276
+ }
277
+ `)}p.Y,p.Y},25634:(e,t,r)=>{r.d(t,{m8:()=>c,NV:()=>d});var i=r(97768),o=r(74887),n=r(89192);class a{constructor(e){this._material=e.material,this._techniques=e.techniques,this._output=e.output}dispose(){}get _stippleTextures(){return this._techniques.context.stippleTextures}get _markerTextures(){return this._techniques.context.markerTextures}getTechnique(e,t){return this._techniques.get(e,this._material.getConfiguration(this._output,t))}ensureResources(e){return n.Am.LOADED}}var s=r(65786);class c extends a{constructor(e){super(e),this._numLoading=0,this._disposed=!1,this._textures=e.textures,this.updateTexture(e.textureId),this._acquire(e.normalTextureId,(e=>this._textureNormal=e)),this._acquire(e.emissiveTextureId,(e=>this._textureEmissive=e)),this._acquire(e.occlusionTextureId,(e=>this._textureOcclusion=e)),this._acquire(e.metallicRoughnessTextureId,(e=>this._textureMetallicRoughness=e))}dispose(){super.dispose(),this._texture=(0,i.Gz)(this._texture),this._textureNormal=(0,i.Gz)(this._textureNormal),this._textureEmissive=(0,i.Gz)(this._textureEmissive),this._textureOcclusion=(0,i.Gz)(this._textureOcclusion),this._textureMetallicRoughness=(0,i.Gz)(this._textureMetallicRoughness),this._disposed=!0}ensureResources(e){return 0===this._numLoading?n.Am.LOADED:n.Am.LOADING}get textureBindParameters(){return new d(this._texture?.glTexture??null,this._textureNormal?.glTexture??null,this._textureEmissive?.glTexture??null,this._textureOcclusion?.glTexture??null,this._textureMetallicRoughness?.glTexture??null)}updateTexture(e){null!=this._texture&&e===this._texture.id||(this._texture=(0,i.Gz)(this._texture),this._acquire(e,(e=>this._texture=e)))}_acquire(e,t){if(null==e)return void t(null);const r=this._textures.acquire(e);if((0,o.$X)(r))return++this._numLoading,void r.then((e=>{if(this._disposed)return(0,i.Gz)(e),void t(null);t(e)})).finally((()=>--this._numLoading));t(r)}}class l extends s.Y{constructor(e=null){super(),this.textureEmissive=e}}class d extends l{constructor(e,t,r,i,o,n,a){super(r),this.texture=e,this.textureNormal=t,this.textureOcclusion=i,this.textureMetallicRoughness=o,this.scale=n,this.normalTextureTransformMatrix=a}}},26857:(e,t,r)=>{r.d(t,{b:()=>c});var i=r(90237),o=r(69622),n=r(10107),a=(r(44208),r(53966),r(87811),r(40608));let s=class extends o.A{constructor(){super(...arguments),this.SCENEVIEW_HITTEST_RETURN_INTERSECTOR=!1,this.DECONFLICTOR_SHOW_VISIBLE=!1,this.DECONFLICTOR_SHOW_INVISIBLE=!1,this.DECONFLICTOR_SHOW_GRID=!1,this.LABELS_SHOW_BORDER=!1,this.TEXT_SHOW_BASELINE=!1,this.TEXT_SHOW_BORDER=!1,this.OVERLAY_DRAW_DEBUG_TEXTURE=!1,this.OVERLAY_SHOW_CENTER=!1,this.SHOW_POI=!1,this.TESTS_DISABLE_OPTIMIZATIONS=!1,this.TESTS_DISABLE_FAST_UPDATES=!1,this.DRAW_MESH_GEOMETRY_NORMALS=!1,this.FEATURE_TILE_FETCH_SHOW_TILES=!1,this.FEATURE_TILE_TREE_SHOW_TILES=!1,this.TERRAIN_TILE_TREE_SHOW_TILES=!1,this.I3S_TREE_SHOW_TILES=!1,this.I3S_SHOW_MODIFICATIONS=!1,this.LOD_INSTANCE_RENDERER_DISABLE_UPDATES=!1,this.LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL=!1,this.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES=!1,this.LINE_WIREFRAMES=!1}};(0,i._)([(0,n.MZ)()],s.prototype,"SCENEVIEW_HITTEST_RETURN_INTERSECTOR",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"DECONFLICTOR_SHOW_VISIBLE",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"DECONFLICTOR_SHOW_INVISIBLE",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"DECONFLICTOR_SHOW_GRID",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"LABELS_SHOW_BORDER",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"TEXT_SHOW_BASELINE",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"TEXT_SHOW_BORDER",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"OVERLAY_DRAW_DEBUG_TEXTURE",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"OVERLAY_SHOW_CENTER",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"SHOW_POI",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"TESTS_DISABLE_OPTIMIZATIONS",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"TESTS_DISABLE_FAST_UPDATES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"DRAW_MESH_GEOMETRY_NORMALS",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"FEATURE_TILE_FETCH_SHOW_TILES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"FEATURE_TILE_TREE_SHOW_TILES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"TERRAIN_TILE_TREE_SHOW_TILES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"I3S_TREE_SHOW_TILES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"I3S_SHOW_MODIFICATIONS",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"LOD_INSTANCE_RENDERER_DISABLE_UPDATES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"LINE_WIREFRAMES",void 0),s=(0,i._)([(0,a.$)("esri.views.3d.support.debugFlags")],s);const c=new s},27950:(e,t,r)=>{r.d(t,{N:()=>a});var i=r(66104),o=r(63365),n=r(31821);function a(e){e.include(o.a),e.code.add(n.H`
193
278
  vec3 mixExternalColor(vec3 internalColor, vec3 textureColor, vec3 externalColor, int mode) {
194
279
  // workaround for artifacts in macOS using Intel Iris Pro
195
280
  // see: https://devtopia.esri.com/WebGIS/arcgis-js-api/issues/10475
196
281
  vec3 internalMixed = internalColor * textureColor;
197
282
  vec3 allMixed = internalMixed * externalColor;
198
283
 
199
- if (mode == ${o.H.int(i.k5.Multiply)}) {
284
+ if (mode == ${n.H.int(i.k5.Multiply)}) {
200
285
  return allMixed;
201
286
  }
202
- if (mode == ${o.H.int(i.k5.Ignore)}) {
287
+ if (mode == ${n.H.int(i.k5.Ignore)}) {
203
288
  return internalMixed;
204
289
  }
205
- if (mode == ${o.H.int(i.k5.Replace)}) {
290
+ if (mode == ${n.H.int(i.k5.Replace)}) {
206
291
  return externalColor;
207
292
  }
208
293
 
@@ -219,20 +304,20 @@ return filterShadow(uv, lvpos, size, shadowMap);
219
304
  float internalMixed = internalOpacity * textureOpacity;
220
305
  float allMixed = internalMixed * externalOpacity;
221
306
 
222
- if (mode == ${o.H.int(i.k5.Ignore)}) {
307
+ if (mode == ${n.H.int(i.k5.Ignore)}) {
223
308
  return internalMixed;
224
309
  }
225
- if (mode == ${o.H.int(i.k5.Replace)}) {
310
+ if (mode == ${n.H.int(i.k5.Replace)}) {
226
311
  return externalOpacity;
227
312
  }
228
313
 
229
314
  // multiply or tint (or something invalid)
230
315
  return allMixed;
231
316
  }
232
- `)}},28449:(e,t,r)=>{function i(e,t,r){for(let i=0;i<r;++i)t[2*i]=e[i],t[2*i+1]=e[i]-t[2*i]}function n(e,t){const r=e.length;for(let i=0;i<r;++i)a[0]=e[i],t[i]=a[0];return t}function o(e,t){const r=e.length;for(let i=0;i<r;++i)a[0]=e[i],a[1]=e[i]-a[0],t[i]=a[1];return t}r.d(t,{Zo:()=>n,jA:()=>o,jS:()=>i});const a=new Float32Array(2)},28491:(e,t,r)=>{r.d(t,{D:()=>z,b:()=>G});var i=r(91829),n=r(46686),o=r(32680),a=r(49255),s=r(76591),c=r(76597),l=r(82991),d=r(96336),u=r(71955),h=r(53466),m=r(92700),f=r(72824),p=r(35640),v=r(40261),g=r(77695),_=r(54849),T=r(74081),x=r(98619),b=r(62602),A=r(22393),E=r(59469),S=r(25618),M=r(96598),C=r(51406),w=r(42398),R=r(11955),I=r(27950),O=r(20693),y=r(33079),N=r(71988),P=r(20304),L=r(31821),D=r(63761),H=r(46540),F=r(60517),B=r(14113),U=r(49788);function G(e){const t=new B.N5,{attributes:r,vertex:G,fragment:z,varyings:V}=t,{output:W,normalType:j,offsetBackfaces:k,instancedColor:Y,spherical:$,receiveShadows:q,snowCover:X,pbrMode:Z,textureAlphaPremultiplied:J,instancedDoublePrecision:K,hasVertexColors:Q,hasVertexTangents:ee,hasColorTexture:te,hasNormalTexture:re,hasNormalTextureTransform:ie,hasColorTextureTransform:ne}=e;if((0,O.NB)(G,e),r.add(H.r.POSITION,"vec3"),V.add("vpos","vec3",{invariant:!0}),t.include(w.A,e),t.include(l.B,e),t.include(p.G,e),t.include(C.q2,e),!(0,a.RN)(W))return t.include(v.E,e),t;t.include(C.Sx,e),t.include(C.MU,e),t.include(C.O1,e),t.include(C.QM,e),(0,O.yu)(G,e),t.include(d.Y,e),t.include(c.d,e);const oe=j===d.W.Attribute||j===d.W.Compressed;return oe&&k&&t.include(o.M),t.include(g.W,e),t.include(f.Mh,e),Y&&t.attributes.add(H.r.INSTANCECOLOR,"vec4"),V.add("vPositionLocal","vec3"),t.include(h.U,e),t.include(n.oD,e),t.include(u.K,e),t.include(m.c,e),G.uniforms.add(new N.E("externalColor",(e=>"ignore"===e.colorMixMode?i.Un:e.externalColor))),V.add("vcolorExt","vec4"),t.include(M.Z,e),G.main.add(L.H`
317
+ `)}},28449:(e,t,r)=>{function i(e,t,r){for(let i=0;i<r;++i)t[2*i]=e[i],t[2*i+1]=e[i]-t[2*i]}function o(e,t){const r=e.length;for(let i=0;i<r;++i)a[0]=e[i],t[i]=a[0];return t}function n(e,t){const r=e.length;for(let i=0;i<r;++i)a[0]=e[i],a[1]=e[i]-a[0],t[i]=a[1];return t}r.d(t,{Zo:()=>o,jA:()=>n,jS:()=>i});const a=new Float32Array(2)},28491:(e,t,r)=>{r.d(t,{D:()=>z,b:()=>G});var i=r(91829),o=r(46686),n=r(32680),a=r(49255),s=r(76591),c=r(76597),l=r(82991),d=r(96336),u=r(71955),h=r(53466),m=r(92700),p=r(72824),f=r(35640),v=r(40261),g=r(77695),_=r(54849),T=r(74081),x=r(98619),b=r(62602),A=r(22393),E=r(59469),S=r(25618),M=r(96598),w=r(51406),C=r(42398),R=r(11955),I=r(27950),O=r(20693),y=r(33079),N=r(71988),P=r(20304),D=r(31821),L=r(63761),H=r(46540),F=r(60517),B=r(14113),U=r(49788);function G(e){const t=new B.N5,{attributes:r,vertex:G,fragment:z,varyings:V}=t,{output:W,normalType:j,offsetBackfaces:k,instancedColor:Y,spherical:$,receiveShadows:q,snowCover:X,pbrMode:Z,textureAlphaPremultiplied:J,instancedDoublePrecision:K,hasVertexColors:Q,hasVertexTangents:ee,hasColorTexture:te,hasNormalTexture:re,hasNormalTextureTransform:ie,hasColorTextureTransform:oe}=e;if((0,O.NB)(G,e),r.add(H.r.POSITION,"vec3"),V.add("vpos","vec3",{invariant:!0}),t.include(C.A,e),t.include(l.B,e),t.include(f.G,e),t.include(w.q2,e),!(0,a.RN)(W))return t.include(v.E,e),t;t.include(w.Sx,e),t.include(w.MU,e),t.include(w.O1,e),t.include(w.QM,e),(0,O.yu)(G,e),t.include(d.Y,e),t.include(c.d,e);const ne=j===d.W.Attribute||j===d.W.Compressed;return ne&&k&&t.include(n.M),t.include(g.W,e),t.include(p.Mh,e),Y&&t.attributes.add(H.r.INSTANCECOLOR,"vec4"),V.add("vPositionLocal","vec3"),t.include(h.U,e),t.include(o.oD,e),t.include(u.K,e),t.include(m.c,e),G.uniforms.add(new N.E("externalColor",(e=>"ignore"===e.colorMixMode?i.Un:e.externalColor))),V.add("vcolorExt","vec4"),t.include(M.Z,e),G.main.add(D.H`
233
318
  forwardNormalizedVertexColor();
234
319
  vcolorExt = externalColor;
235
- ${(0,L.If)(Y,"vcolorExt *= instanceColor * 0.003921568627451;")}
320
+ ${(0,D.If)(Y,"vcolorExt *= instanceColor * 0.003921568627451;")}
236
321
  vcolorExt *= vvColor();
237
322
  vcolorExt *= getSymbolColor();
238
323
  forwardColorMixMode();
@@ -240,11 +325,11 @@ return filterShadow(uv, lvpos, size, shadowMap);
240
325
  vpos = getVertexInLocalOriginSpace();
241
326
  vPositionLocal = vpos - view[3].xyz;
242
327
  vpos = subtractOrigin(vpos);
243
- ${(0,L.If)(oe,"vNormalWorld = dpNormal(vvLocalNormal(normalModel()));")}
328
+ ${(0,D.If)(ne,"vNormalWorld = dpNormal(vvLocalNormal(normalModel()));")}
244
329
  vpos = addVerticalOffset(vpos, localOrigin);
245
- ${(0,L.If)(ee,"vTangent = dpTransformVertexTangent(tangent);")}
330
+ ${(0,D.If)(ee,"vTangent = dpTransformVertexTangent(tangent);")}
246
331
  gl_Position = transformPosition(proj, view, vpos);
247
- ${(0,L.If)(oe&&k,"gl_Position = offsetBackfacingClipPosition(gl_Position, vpos, vNormalWorld, cameraPosition);")}
332
+ ${(0,D.If)(ne&&k,"gl_Position = offsetBackfacingClipPosition(gl_Position, vpos, vNormalWorld, cameraPosition);")}
248
333
 
249
334
  forwardViewPosDepth((view * vec4(vpos, 1.0)).xyz);
250
335
  forwardLinearDepth();
@@ -255,18 +340,18 @@ return filterShadow(uv, lvpos, size, shadowMap);
255
340
  forwardOcclusionUV();
256
341
  forwardMetallicRoughnessUV();
257
342
 
258
- if (vcolorExt.a < ${L.H.float(U.Q)}) {
343
+ if (vcolorExt.a < ${D.H.float(U.Q)}) {
259
344
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
260
345
  }
261
- `),t.include(T.kA,e),t.include(_.n,e),t.include(R.S,e),t.include(K?S.G:S.Bz,e),t.fragment.include(s.HQ,e),t.include(F.z,e),(0,O.yu)(z,e),z.uniforms.add(G.uniforms.get("localOrigin"),new y.t("ambient",(e=>e.ambient)),new y.t("diffuse",(e=>e.diffuse)),new P.m("opacity",(e=>e.opacity)),new P.m("layerOpacity",(e=>e.layerOpacity))),te&&z.uniforms.add(new D.N("tex",(e=>e.texture))),t.include(E._Z,e),t.include(A.c,e),z.include(I.N),t.include(b.r,e),(0,T.a8)(z),(0,T.eU)(z),(0,x.O4)(z),z.main.add(L.H`
346
+ `),t.include(T.kA,e),t.include(_.n,e),t.include(R.S,e),t.include(K?S.G:S.Bz,e),t.fragment.include(s.HQ,e),t.include(F.z,e),(0,O.yu)(z,e),z.uniforms.add(G.uniforms.get("localOrigin"),new y.t("ambient",(e=>e.ambient)),new y.t("diffuse",(e=>e.diffuse)),new P.m("opacity",(e=>e.opacity)),new P.m("layerOpacity",(e=>e.layerOpacity))),te&&z.uniforms.add(new L.N("tex",(e=>e.texture))),t.include(E._Z,e),t.include(A.c,e),z.include(I.N),t.include(b.r,e),(0,T.a8)(z),(0,T.eU)(z),(0,x.O4)(z),z.main.add(D.H`
262
347
  discardBySlice(vpos);
263
348
  discardByTerrainDepth();
264
- ${te?L.H`
265
- vec4 texColor = texture(tex, ${ne?"colorUV":"vuv0"});
266
- ${(0,L.If)(J,"texColor.rgb /= texColor.a;")}
267
- discardOrAdjustAlpha(texColor);`:L.H`vec4 texColor = vec4(1.0);`}
349
+ ${te?D.H`
350
+ vec4 texColor = texture(tex, ${oe?"colorUV":"vuv0"});
351
+ ${(0,D.If)(J,"texColor.rgb /= texColor.a;")}
352
+ discardOrAdjustAlpha(texColor);`:D.H`vec4 texColor = vec4(1.0);`}
268
353
  shadingParams.viewDirection = normalize(vpos - cameraPosition);
269
- ${j===d.W.ScreenDerivative?L.H`vec3 normal = screenDerivativeNormal(vPositionLocal);`:L.H`shadingParams.normalView = vNormalWorld;
354
+ ${j===d.W.ScreenDerivative?D.H`vec3 normal = screenDerivativeNormal(vPositionLocal);`:D.H`shadingParams.normalView = vNormalWorld;
270
355
  vec3 normal = shadingNormal(shadingParams);`}
271
356
  applyPBRFactors();
272
357
  float ssao = evaluateAmbientOcclusionInverse() * getBakedOcclusion();
@@ -274,15 +359,15 @@ return filterShadow(uv, lvpos, size, shadowMap);
274
359
  vec3 posWorld = vpos + localOrigin;
275
360
 
276
361
  float additionalAmbientScale = additionalDirectedAmbientLight(posWorld);
277
- float shadow = ${q?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), readShadowMap(vpos, linearDepth))":(0,L.If)($,"lightingGlobalFactor * (1.0 - additionalAmbientScale)","0.0")};
362
+ float shadow = ${q?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), readShadowMap(vpos, linearDepth))":(0,D.If)($,"lightingGlobalFactor * (1.0 - additionalAmbientScale)","0.0")};
278
363
 
279
364
  vec3 matColor = max(ambient, diffuse);
280
- vec3 albedo = mixExternalColor(${(0,L.If)(Q,"vColor.rgb *")} matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));
281
- float opacity_ = layerOpacity * mixExternalOpacity(${(0,L.If)(Q,"vColor.a * ")} opacity, texColor.a, vcolorExt.a, int(colorMixMode));
365
+ vec3 albedo = mixExternalColor(${(0,D.If)(Q,"vColor.rgb *")} matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));
366
+ float opacity_ = layerOpacity * mixExternalOpacity(${(0,D.If)(Q,"vColor.a * ")} opacity, texColor.a, vcolorExt.a, int(colorMixMode));
282
367
  ${re?`mat3 tangentSpace = computeTangentSpace(${ee?"normal":"normal, vpos, vuv0"});\n vec3 shadingNormal = computeTextureNormal(tangentSpace, ${ie?"normalUV":"vuv0"});`:"vec3 shadingNormal = normal;"}
283
368
  vec3 normalGround = ${$?"normalize(posWorld);":"vec3(0.0, 0.0, 1.0);"}
284
369
 
285
- ${(0,L.If)(X,L.H`
370
+ ${(0,D.If)(X,D.H`
286
371
  float snow = smoothstep(0.5, 0.55, dot(normal, normalGround));
287
372
  albedo = mix(albedo, vec3(1), snow);
288
373
  shadingNormal = mix(shadingNormal, normal, snow);
@@ -290,21 +375,21 @@ return filterShadow(uv, lvpos, size, shadowMap);
290
375
 
291
376
  vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
292
377
 
293
- ${Z===E.A9.Normal||Z===E.A9.Schematic?L.H`
378
+ ${Z===E.A9.Normal||Z===E.A9.Schematic?D.H`
294
379
  float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2];
295
- ${(0,L.If)(X,L.H`mrr = mix(mrr, vec3(0.0, 1.0, 0.04), snow);`)}
380
+ ${(0,D.If)(X,D.H`mrr = mix(mrr, vec3(0.0, 1.0, 0.04), snow);`)}
296
381
  vec4 emission = ${X?"mix(getEmissions(), vec4(0.0), snow)":"getEmissions()"};
297
- vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, emission, additionalAmbientIrradiance);`:L.H`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
382
+ vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, emission, additionalAmbientIrradiance);`:D.H`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
298
383
  vec4 finalColor = vec4(shadedColor, opacity_);
299
384
  outputColorHighlightOID(finalColor, vpos);
300
- `),t}const z=Object.freeze(Object.defineProperty({__proto__:null,build:G},Symbol.toStringTag,{value:"Module"}))},29920:(e,t,r)=>{r.d(t,{j:()=>s});var i=r(3694),n=r(38954),o=r(51850),a=r(620);class s{constructor(e,t,r){this.primitiveIndices=e,this._numIndexPerPrimitive=t,this.position=r,this._children=void 0,(0,a.vA)(e.length>=1),(0,a.vA)(3===r.size||4===r.size);const{data:i,size:s,indices:l}=r;(0,a.vA)(l.length%this._numIndexPerPrimitive==0),(0,a.vA)(l.length>=e.length*this._numIndexPerPrimitive);const d=e.length;let u=s*l[this._numIndexPerPrimitive*e[0]];c.clear(),c.push(u);const h=(0,o.fA)(i[u],i[u+1],i[u+2]),m=(0,o.o8)(h);for(let t=0;t<d;++t){const r=this._numIndexPerPrimitive*e[t];for(let e=0;e<this._numIndexPerPrimitive;++e){u=s*l[r+e],c.push(u);let t=i[u];h[0]=Math.min(t,h[0]),m[0]=Math.max(t,m[0]),t=i[u+1],h[1]=Math.min(t,h[1]),m[1]=Math.max(t,m[1]),t=i[u+2],h[2]=Math.min(t,h[2]),m[2]=Math.max(t,m[2])}}this.bbMin=h,this.bbMax=m;const f=(0,n.m)((0,o.vt)(),this.bbMin,this.bbMax,.5);this.radius=.5*Math.max(Math.max(m[0]-h[0],m[1]-h[1]),m[2]-h[2]);let p=this.radius*this.radius;for(let e=0;e<c.length;++e){u=c.at(e);const t=i[u]-f[0],r=i[u+1]-f[1],n=i[u+2]-f[2],o=t*t+r*r+n*n;if(o<=p)continue;const a=Math.sqrt(o),s=.5*(a-this.radius);this.radius=this.radius+s,p=this.radius*this.radius;const l=s/a;f[0]+=t*l,f[1]+=r*l,f[2]+=n*l}this.center=f,c.clear()}getChildren(){if(this._children||(0,n.s)(this.bbMin,this.bbMax)<=1)return this._children;const e=(0,n.m)((0,o.vt)(),this.bbMin,this.bbMax,.5),t=this.primitiveIndices.length,r=new Uint8Array(t),i=new Array(8);for(let e=0;e<8;++e)i[e]=0;const{data:a,size:c,indices:l}=this.position;for(let n=0;n<t;++n){let t=0;const o=this._numIndexPerPrimitive*this.primitiveIndices[n];let s=c*l[o],d=a[s],u=a[s+1],h=a[s+2];for(let e=1;e<this._numIndexPerPrimitive;++e){s=c*l[o+e];const t=a[s],r=a[s+1],i=a[s+2];t<d&&(d=t),r<u&&(u=r),i<h&&(h=i)}d<e[0]&&(t|=1),u<e[1]&&(t|=2),h<e[2]&&(t|=4),r[n]=t,++i[t]}let d=0;for(let e=0;e<8;++e)i[e]>0&&++d;if(d<2)return;const u=new Array(8);for(let e=0;e<8;++e)u[e]=i[e]>0?new Uint32Array(i[e]):void 0;for(let e=0;e<8;++e)i[e]=0;for(let e=0;e<t;++e){const t=r[e];u[t][i[t]++]=this.primitiveIndices[e]}this._children=new Array;for(let e=0;e<8;++e)void 0!==u[e]&&this._children.push(new s(u[e],this._numIndexPerPrimitive,this.position));return this._children}static prune(){c.prune()}}const c=new i.A({deallocator:null})},30164:(e,t,r)=>{r.d(t,{g:()=>b});var i,n,o=r(49186),a=(r(44208),r(53966)),s=r(97768),c=r(74887),l=r(44794),d=r(94656),u=r(63907);(n=i||(i={}))[n.Texture=0]="Texture",n[n.RenderBuffer=1]="RenderBuffer";var h=r(67171);function m(e){(null!=e.width&&e.width<0||null!=e.height&&e.height<0||null!=e.depth&&e.depth<0)&&a.A.getLogger("esri/views/webgl/textureUtils").error("Negative dimension parameters are not allowed!")}function f(e){return null!=e&&"type"in e&&"compressed"===e.type}function p(e){return null!=e&&!f(e)&&!function(e){return null!=e&&"byteLength"in e}(e)}function v(e){return e===u.Ap.TEXTURE_3D||e===u.Ap.TEXTURE_2D_ARRAY}function g(e,t,r,i=1){let n=Math.max(t,r);return e===u.Ap.TEXTURE_3D&&(n=Math.max(n,i)),Math.floor(Math.log2(n))+1}function _(e){if(null!=e.internalFormat)return e.internalFormat===u.Ab.DEPTH_STENCIL?u.Ab.DEPTH24_STENCIL8:e.internalFormat;switch(e.dataType){case u.ld.FLOAT:switch(e.pixelFormat){case u.Ab.RGBA:return u.H0.RGBA32F;case u.Ab.RGB:return u.H0.RGB32F;default:throw new o.A("Unable to derive format")}case u.ld.UNSIGNED_BYTE:switch(e.pixelFormat){case u.Ab.RGBA:return u.H0.RGBA8;case u.Ab.RGB:return u.H0.RGB8}}return e.internalFormat=e.pixelFormat===u.Ab.DEPTH_STENCIL?u.Ab.DEPTH24_STENCIL8:e.pixelFormat}class T extends h.R{constructor(e,t){switch(super(),this.context=e,Object.assign(this,t),this.internalFormat){case u.H0.R16F:case u.H0.R32F:case u.H0.R8_SNORM:case u.H0.R8:this.pixelFormat=u.Ab.RED;break;case u.H0.R8I:case u.H0.R8UI:case u.H0.R16I:case u.H0.R16UI:case u.H0.R32I:case u.H0.R32UI:this.pixelFormat=u.Ab.RED_INTEGER}}static validate(e,t){return new T(e,t)}}const x=()=>a.A.getLogger("esri/views/webgl/Texture");let b=class e{static{this.TEXTURE_UNIT_FOR_UPDATES=0}static{this.compressionWorkerHandle=null}constructor(e,t=null,r=null){if(this.type=i.Texture,this._glName=null,this._samplingModeDirty=!1,this._wrapModeDirty=!1,this._wasImmutablyAllocated=!1,this._compressionAbortController=(0,l.v)(null),"context"in e)this._descriptor=e,r=t;else{const r=T.validate(e,t);if(!r)throw new o.A("Texture descriptor invalid");this._descriptor=r}this._descriptor.target===u.Ap.TEXTURE_CUBE_MAP?this._setDataCubeMap(r):this.setData(r)}get glName(){return this._glName}get descriptor(){return this._descriptor}get usedMemory(){return(0,h.e)(this._descriptor)}get cachedMemory(){return this.usedMemory}get isDirty(){return this._samplingModeDirty||this._wrapModeDirty}get isCompressing(){return null!==this._compressionAbortController.value}dispose(){this.abortCompression(),this._descriptor.context.gl&&this._glName&&(this._descriptor.context.instanceCounter.decrement(u.vt.Texture,this),this._descriptor.context.unbindTexture(this),this._descriptor.context.gl.deleteTexture(this._glName),this._glName=null)}release(){this.dispose()}resize(e,t){const r=this._descriptor;if(r.width!==e||r.height!==t){if(this._wasImmutablyAllocated)throw new o.A("Immutable textures can't be resized!");r.width=e,r.height=t,this._descriptor.target===u.Ap.TEXTURE_CUBE_MAP?this._setDataCubeMap(null):this.setData(null)}}enableCompression(e){this._descriptor.shouldCompress=e}setData(e){this.abortCompression(),!f(e)&&this._descriptor.internalFormat&&this._descriptor.internalFormat in u.CQ&&(this._descriptor.internalFormat=void 0),this._setData(e),!f(e)&&this._descriptor.shouldCompress&&this._compressOnWorker(e)}updateData(t,r,i,n,a,s,c=0){s||x().error("An attempt to use uninitialized data!"),this._glName||x().error("An attempt to update uninitialized texture!");const l=this._descriptor;l.internalFormat=_(l);const{context:d,pixelFormat:u,dataType:h,target:m,isImmutable:v}=l;if(v&&!this._wasImmutablyAllocated)throw new o.A("Cannot update immutable texture before allocation!");const g=d.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES,!0);(r<0||i<0||r+n>l.width||i+a>l.height)&&x().error("An attempt to update out of bounds of the texture!"),this._configurePixelStorage();const{gl:T}=d;c&&(n&&a||x().warn("Must pass width and height if `UNPACK_SKIP_ROWS` is used"),T.pixelStorei(T.UNPACK_SKIP_ROWS,c)),p(s)?T.texSubImage2D(m,t,r,i,n,a,u,h,s):f(s)?T.compressedTexSubImage2D(m,t,r,i,n,a,l.internalFormat,s.levels[t]):T.texSubImage2D(m,t,r,i,n,a,u,h,s),c&&T.pixelStorei(T.UNPACK_SKIP_ROWS,0),d.bindTexture(g,e.TEXTURE_UNIT_FOR_UPDATES)}updateData3D(t,r,i,n,a,s,c,l){l||x().error("An attempt to use uninitialized data!"),this._glName||x().error("An attempt to update an uninitialized texture!");const d=this._descriptor;d.internalFormat=_(d);const{context:u,pixelFormat:h,dataType:m,isImmutable:p,target:g}=d;if(p&&!this._wasImmutablyAllocated)throw new o.A("Cannot update immutable texture before allocation!");v(g)||x().warn("Attempting to set 3D texture data on a non-3D texture");const T=u.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES);u.setActiveTexture(e.TEXTURE_UNIT_FOR_UPDATES),(r<0||i<0||n<0||r+a>d.width||i+s>d.height||n+c>d.depth)&&x().error("An attempt to update out of bounds of the texture!"),this._configurePixelStorage();const{gl:b}=u;if(f(l))l=l.levels[t],b.compressedTexSubImage3D(g,t,r,i,n,a,s,c,d.internalFormat,l);else{const e=l;b.texSubImage3D(g,t,r,i,n,a,s,c,h,m,e)}u.bindTexture(T,e.TEXTURE_UNIT_FOR_UPDATES)}generateMipmap(){const t=this._descriptor;if(0===t.width||0===t.height)return;if(!t.hasMipmap){if(this._wasImmutablyAllocated)throw new o.A("Cannot add mipmaps to immutable texture after allocation");t.hasMipmap=!0,this._samplingModeDirty=!0,m(t)}t.samplingMode===u.Cj.LINEAR?(this._samplingModeDirty=!0,t.samplingMode=u.Cj.LINEAR_MIPMAP_NEAREST):t.samplingMode===u.Cj.NEAREST&&(this._samplingModeDirty=!0,t.samplingMode=u.Cj.NEAREST_MIPMAP_NEAREST);const r=this._descriptor.context.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES);this._descriptor.context.setActiveTexture(e.TEXTURE_UNIT_FOR_UPDATES),this._descriptor.context.gl.generateMipmap(t.target),this._descriptor.context.bindTexture(r,e.TEXTURE_UNIT_FOR_UPDATES)}clearMipmap(){const e=this._descriptor;if(e.hasMipmap){if(this._wasImmutablyAllocated)throw new o.A("Cannot delete mipmaps to immutable texture after allocation");e.hasMipmap=!1,this._samplingModeDirty=!0,m(e)}e.samplingMode===u.Cj.LINEAR_MIPMAP_NEAREST?(this._samplingModeDirty=!0,e.samplingMode=u.Cj.LINEAR):e.samplingMode===u.Cj.NEAREST_MIPMAP_NEAREST&&(this._samplingModeDirty=!0,e.samplingMode=u.Cj.NEAREST)}setSamplingMode(e){e!==this._descriptor.samplingMode&&(this._descriptor.samplingMode=e,this._samplingModeDirty=!0)}setWrapMode(e){e!==this._descriptor.wrapMode&&(this._descriptor.wrapMode=e,m(this._descriptor),this._wrapModeDirty=!0)}applyChanges(){this._samplingModeDirty&&(this._applySamplingMode(),this._samplingModeDirty=!1),this._wrapModeDirty&&(this._applyWrapMode(),this._wrapModeDirty=!1)}abortCompression(){this.isCompressing&&(this._compressionAbortController.value=(0,s.DC)(this._compressionAbortController.value))}_setData(t,r){const i=this._descriptor,n=i.context?.gl;if(!n)return;(0,d.Y2)(n),this._glName||(this._glName=n.createTexture(),i.context.instanceCounter.increment(u.vt.Texture,this)),m(i);const a=i.context.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES);i.context.setActiveTexture(e.TEXTURE_UNIT_FOR_UPDATES),this._configurePixelStorage(),(0,d.Y2)(n);const s=r??i.target,c=v(s);if(p(t))this._setDataFromTexImageSource(t,s);else{const{width:e,height:r,depth:a}=i;if(null==e||null==r)throw new o.A("Width and height must be specified!");if(c&&null==a)throw new o.A("Depth must be specified!");if(i.internalFormat=_(i),i.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(s,i.internalFormat,i.hasMipmap,e,r,a),f(t)){if(!(i.internalFormat in u.CQ))throw new o.A("Attempting to use compressed data with an uncompressed format!");this._setDataFromCompressedSource(t,i.internalFormat,s)}else this._texImage(s,0,i.internalFormat,e,r,a,t),(0,d.Y2)(n),i.hasMipmap&&this.generateMipmap()}this._applySamplingMode(),this._applyWrapMode(),this._applyAnisotropicFilteringParameters(),(0,d.Y2)(n),i.context.bindTexture(a,e.TEXTURE_UNIT_FOR_UPDATES)}_setDataCubeMap(e=null){for(let t=u.Ap.TEXTURE_CUBE_MAP_POSITIVE_X;t<=u.Ap.TEXTURE_CUBE_MAP_NEGATIVE_Z;t++)this._setData(e,t)}_configurePixelStorage(){const e=this._descriptor.context.gl,{unpackAlignment:t,flipped:r,preMultiplyAlpha:i}=this._descriptor;e.pixelStorei(e.UNPACK_ALIGNMENT,t),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,r?1:0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i?1:0)}_setDataFromTexImageSource(e,t){const{gl:r}=this._descriptor.context,i=this._descriptor;i.internalFormat=_(i);const n=v(t),{width:o,height:a,depth:s}=function(e){let t="width"in e?e.width:e.codedWidth,r="height"in e?e.height:e.codedHeight;return e instanceof HTMLVideoElement&&(t=e.videoWidth,r=e.videoHeight),{width:t,height:r,depth:1}}(e);i.width&&i.height,i.width||(i.width=o),i.height||(i.height=a),n&&i.depth,n&&(i.depth=s),i.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(t,i.internalFormat,i.hasMipmap,o,a,s),this._texImage(t,0,i.internalFormat,o,a,s,e),(0,d.Y2)(r),i.hasMipmap&&(this.generateMipmap(),(0,d.Y2)(r))}_setDataFromCompressedSource(e,t,r){const i=this._descriptor,{width:n,height:o,depth:a}=i,s=e.levels,c=g(r,n,o,a),l=Math.min(c,s.length)-1;this._descriptor.context.gl.texParameteri(i.target,u.H3.MAX_LEVEL,l),this._forEachMipmapLevel(((e,i,n,o)=>{const a=s[Math.min(e,s.length-1)];this._compressedTexImage(r,e,t,i,n,o,a)}),l)}_texStorage(e,t,r,i,n,a){const{gl:s}=this._descriptor.context;if(!(t in u.H0))throw new o.A("Immutable textures must have a sized internal format");if(!this._descriptor.isImmutable)return;const c=r?g(e,i,n,a):1;if(v(e)){if(null==a)throw new o.A("Missing depth dimension for 3D texture upload");s.texStorage3D(e,c,t,i,n,a)}else s.texStorage2D(e,c,t,i,n);this._wasImmutablyAllocated=!0}_texImage(e,t,r,i,n,a,s){const c=this._descriptor.context.gl,l=v(e),{isImmutable:d,pixelFormat:u,dataType:h}=this._descriptor;if(d){if(null!=s){const r=s;if(l){if(null==a)throw new o.A("Missing depth dimension for 3D texture upload");c.texSubImage3D(e,t,0,0,0,i,n,a,u,h,r)}else c.texSubImage2D(e,t,0,0,i,n,u,h,r)}}else{const d=s;if(l){if(null==a)throw new o.A("Missing depth dimension for 3D texture upload");c.texImage3D(e,t,r,i,n,a,0,u,h,d)}else c.texImage2D(e,t,r,i,n,0,u,h,d)}}_compressedTexImage(e,t,r,i,n,a,s){const c=this._descriptor.context.gl,l=v(e);if(this._descriptor.isImmutable){if(null!=s)if(l){if(null==a)throw new o.A("Missing depth dimension for 3D texture upload");c.compressedTexSubImage3D(e,t,0,0,0,i,n,a,r,s)}else c.compressedTexSubImage2D(e,t,0,0,i,n,r,s)}else if(l){if(null==a)throw new o.A("Missing depth dimension for 3D texture upload");c.compressedTexImage3D(e,t,r,i,n,a,0,s)}else c.compressedTexImage2D(e,t,r,i,n,0,s)}async _compressOnWorker(t){if(!e.compressionWorkerHandle||!e.compressionWorkerHandle.isCompressible(t))return;const r=!!this._descriptor.context.capabilities.compressedTextureETC,i=!!this._descriptor.context.capabilities.compressedTextureS3TC;if(r||i){const n=new AbortController;this._compressionAbortController.value=n;const o={data:await createImageBitmap(t),flipped:this.descriptor.flipped,width:t.width,height:t.height,hasMipmap:this._descriptor.hasMipmap,hasETC:!!r,hasS3TC:!!i};e.compressionWorkerHandle.invoke(o,this._compressionAbortController.value.signal).then((e=>{e&&this.isCompressing&&this.glName&&(this._descriptor.internalFormat=e.internalFormat,this._setData(e.compressedTexture)),n===this._compressionAbortController.value&&(this._compressionAbortController.value=null)})).catch((e=>{(0,c.zf)(e)||n!==this._compressionAbortController.value||(this._compressionAbortController.value=null)}))}}_forEachMipmapLevel(e,t=1/0){let{width:r,height:i,depth:n,hasMipmap:a,target:s}=this._descriptor;const c=s===u.Ap.TEXTURE_3D;if(null==r||null==i||c&&null==n)throw new o.A("Missing texture dimensions for mipmap calculation");for(let o=0;e(o,r,i,n),a&&(1!==r||1!==i||c&&1!==n)&&!(o>=t);++o)r=Math.max(1,r>>1),i=Math.max(1,i>>1),c&&(n=Math.max(1,n>>1))}_applySamplingMode(){const e=this._descriptor,t=e.context?.gl;let r=e.samplingMode,i=e.samplingMode;r===u.Cj.LINEAR_MIPMAP_NEAREST||r===u.Cj.LINEAR_MIPMAP_LINEAR?(r=u.Cj.LINEAR,e.hasMipmap||(i=u.Cj.LINEAR)):r!==u.Cj.NEAREST_MIPMAP_NEAREST&&r!==u.Cj.NEAREST_MIPMAP_LINEAR||(r=u.Cj.NEAREST,e.hasMipmap||(i=u.Cj.NEAREST)),t.texParameteri(e.target,t.TEXTURE_MAG_FILTER,r),t.texParameteri(e.target,t.TEXTURE_MIN_FILTER,i)}_applyWrapMode(){const e=this._descriptor,t=e.context?.gl;"number"==typeof e.wrapMode?(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode)):(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode.s),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode.t))}_applyAnisotropicFilteringParameters(){const e=this._descriptor,t=e.context.capabilities.textureFilterAnisotropic;t&&e.context.gl.texParameterf(e.target,t.TEXTURE_MAX_ANISOTROPY,e.maxAnisotropy??1)}}},32680:(e,t,r)=>{r.d(t,{M:()=>n});var i=r(31821);function n(e){e.vertex.code.add(i.H`vec4 offsetBackfacingClipPosition(vec4 posClip, vec3 posWorld, vec3 normalWorld, vec3 camPosWorld) {
385
+ `),t}const z=Object.freeze(Object.defineProperty({__proto__:null,build:G},Symbol.toStringTag,{value:"Module"}))},29920:(e,t,r)=>{r.d(t,{j:()=>s});var i=r(3694),o=r(38954),n=r(51850),a=r(620);class s{constructor(e,t,r){this.primitiveIndices=e,this._numIndexPerPrimitive=t,this.position=r,this._children=void 0,(0,a.vA)(e.length>=1),(0,a.vA)(3===r.size||4===r.size);const{data:i,size:s,indices:l}=r;(0,a.vA)(l.length%this._numIndexPerPrimitive==0),(0,a.vA)(l.length>=e.length*this._numIndexPerPrimitive);const d=e.length;let u=s*l[this._numIndexPerPrimitive*e[0]];c.clear(),c.push(u);const h=(0,n.fA)(i[u],i[u+1],i[u+2]),m=(0,n.o8)(h);for(let t=0;t<d;++t){const r=this._numIndexPerPrimitive*e[t];for(let e=0;e<this._numIndexPerPrimitive;++e){u=s*l[r+e],c.push(u);let t=i[u];h[0]=Math.min(t,h[0]),m[0]=Math.max(t,m[0]),t=i[u+1],h[1]=Math.min(t,h[1]),m[1]=Math.max(t,m[1]),t=i[u+2],h[2]=Math.min(t,h[2]),m[2]=Math.max(t,m[2])}}this.bbMin=h,this.bbMax=m;const p=(0,o.m)((0,n.vt)(),this.bbMin,this.bbMax,.5);this.radius=.5*Math.max(Math.max(m[0]-h[0],m[1]-h[1]),m[2]-h[2]);let f=this.radius*this.radius;for(let e=0;e<c.length;++e){u=c.at(e);const t=i[u]-p[0],r=i[u+1]-p[1],o=i[u+2]-p[2],n=t*t+r*r+o*o;if(n<=f)continue;const a=Math.sqrt(n),s=.5*(a-this.radius);this.radius=this.radius+s,f=this.radius*this.radius;const l=s/a;p[0]+=t*l,p[1]+=r*l,p[2]+=o*l}this.center=p,c.clear()}getChildren(){if(this._children||(0,o.s)(this.bbMin,this.bbMax)<=1)return this._children;const e=(0,o.m)((0,n.vt)(),this.bbMin,this.bbMax,.5),t=this.primitiveIndices.length,r=new Uint8Array(t),i=new Array(8);for(let e=0;e<8;++e)i[e]=0;const{data:a,size:c,indices:l}=this.position;for(let o=0;o<t;++o){let t=0;const n=this._numIndexPerPrimitive*this.primitiveIndices[o];let s=c*l[n],d=a[s],u=a[s+1],h=a[s+2];for(let e=1;e<this._numIndexPerPrimitive;++e){s=c*l[n+e];const t=a[s],r=a[s+1],i=a[s+2];t<d&&(d=t),r<u&&(u=r),i<h&&(h=i)}d<e[0]&&(t|=1),u<e[1]&&(t|=2),h<e[2]&&(t|=4),r[o]=t,++i[t]}let d=0;for(let e=0;e<8;++e)i[e]>0&&++d;if(d<2)return;const u=new Array(8);for(let e=0;e<8;++e)u[e]=i[e]>0?new Uint32Array(i[e]):void 0;for(let e=0;e<8;++e)i[e]=0;for(let e=0;e<t;++e){const t=r[e];u[t][i[t]++]=this.primitiveIndices[e]}this._children=new Array;for(let e=0;e<8;++e)void 0!==u[e]&&this._children.push(new s(u[e],this._numIndexPerPrimitive,this.position));return this._children}static prune(){c.prune()}}const c=new i.A({deallocator:null})},30164:(e,t,r)=>{r.d(t,{g:()=>b});var i,o,n=r(49186),a=(r(44208),r(53966)),s=r(97768),c=r(74887),l=r(44794),d=r(94656),u=r(63907);(o=i||(i={}))[o.Texture=0]="Texture",o[o.RenderBuffer=1]="RenderBuffer";var h=r(67171);function m(e){(null!=e.width&&e.width<0||null!=e.height&&e.height<0||null!=e.depth&&e.depth<0)&&a.A.getLogger("esri/views/webgl/textureUtils").error("Negative dimension parameters are not allowed!")}function p(e){return null!=e&&"type"in e&&"compressed"===e.type}function f(e){return null!=e&&!p(e)&&!function(e){return null!=e&&"byteLength"in e}(e)}function v(e){return e===u.Ap.TEXTURE_3D||e===u.Ap.TEXTURE_2D_ARRAY}function g(e,t,r,i=1){let o=Math.max(t,r);return e===u.Ap.TEXTURE_3D&&(o=Math.max(o,i)),Math.floor(Math.log2(o))+1}function _(e){if(null!=e.internalFormat)return e.internalFormat===u.Ab.DEPTH_STENCIL?u.Ab.DEPTH24_STENCIL8:e.internalFormat;switch(e.dataType){case u.ld.FLOAT:switch(e.pixelFormat){case u.Ab.RGBA:return u.H0.RGBA32F;case u.Ab.RGB:return u.H0.RGB32F;default:throw new n.A("Unable to derive format")}case u.ld.UNSIGNED_BYTE:switch(e.pixelFormat){case u.Ab.RGBA:return u.H0.RGBA8;case u.Ab.RGB:return u.H0.RGB8}}return e.internalFormat=e.pixelFormat===u.Ab.DEPTH_STENCIL?u.Ab.DEPTH24_STENCIL8:e.pixelFormat}class T extends h.R{constructor(e,t){switch(super(),this.context=e,Object.assign(this,t),this.internalFormat){case u.H0.R16F:case u.H0.R32F:case u.H0.R8_SNORM:case u.H0.R8:this.pixelFormat=u.Ab.RED;break;case u.H0.R8I:case u.H0.R8UI:case u.H0.R16I:case u.H0.R16UI:case u.H0.R32I:case u.H0.R32UI:this.pixelFormat=u.Ab.RED_INTEGER}}static validate(e,t){return new T(e,t)}}const x=()=>a.A.getLogger("esri/views/webgl/Texture");let b=class e{static{this.TEXTURE_UNIT_FOR_UPDATES=0}static{this.compressionWorkerHandle=null}constructor(e,t=null,r=null){if(this.type=i.Texture,this._glName=null,this._samplingModeDirty=!1,this._wrapModeDirty=!1,this._wasImmutablyAllocated=!1,this._compressionAbortController=(0,l.v)(null),"context"in e)this._descriptor=e,r=t;else{const r=T.validate(e,t);if(!r)throw new n.A("Texture descriptor invalid");this._descriptor=r}this._descriptor.target===u.Ap.TEXTURE_CUBE_MAP?this._setDataCubeMap(r):this.setData(r)}get glName(){return this._glName}get descriptor(){return this._descriptor}get usedMemory(){return(0,h.e)(this._descriptor)}get cachedMemory(){return this.usedMemory}get isDirty(){return this._samplingModeDirty||this._wrapModeDirty}get isCompressing(){return null!==this._compressionAbortController.value}dispose(){this.abortCompression(),this._descriptor.context.gl&&this._glName&&(this._descriptor.context.instanceCounter.decrement(u.vt.Texture,this),this._descriptor.context.unbindTexture(this),this._descriptor.context.gl.deleteTexture(this._glName),this._glName=null)}release(){this.dispose()}resize(e,t){const r=this._descriptor;if(r.width!==e||r.height!==t){if(this._wasImmutablyAllocated)throw new n.A("Immutable textures can't be resized!");r.width=e,r.height=t,this._descriptor.target===u.Ap.TEXTURE_CUBE_MAP?this._setDataCubeMap(null):this.setData(null)}}enableCompression(e){this._descriptor.shouldCompress=e}setData(e){this.abortCompression(),!p(e)&&this._descriptor.internalFormat&&this._descriptor.internalFormat in u.CQ&&(this._descriptor.internalFormat=void 0),this._setData(e),!p(e)&&this._descriptor.shouldCompress&&this._compressOnWorker(e)}updateData(t,r,i,o,a,s,c=0){s||x().error("An attempt to use uninitialized data!"),this._glName||x().error("An attempt to update uninitialized texture!");const l=this._descriptor;l.internalFormat=_(l);const{context:d,pixelFormat:u,dataType:h,target:m,isImmutable:v}=l;if(v&&!this._wasImmutablyAllocated)throw new n.A("Cannot update immutable texture before allocation!");const g=d.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES,!0);(r<0||i<0||r+o>l.width||i+a>l.height)&&x().error("An attempt to update out of bounds of the texture!"),this._configurePixelStorage();const{gl:T}=d;c&&(o&&a||x().warn("Must pass width and height if `UNPACK_SKIP_ROWS` is used"),T.pixelStorei(T.UNPACK_SKIP_ROWS,c)),f(s)?T.texSubImage2D(m,t,r,i,o,a,u,h,s):p(s)?T.compressedTexSubImage2D(m,t,r,i,o,a,l.internalFormat,s.levels[t]):T.texSubImage2D(m,t,r,i,o,a,u,h,s),c&&T.pixelStorei(T.UNPACK_SKIP_ROWS,0),d.bindTexture(g,e.TEXTURE_UNIT_FOR_UPDATES)}updateData3D(t,r,i,o,a,s,c,l){l||x().error("An attempt to use uninitialized data!"),this._glName||x().error("An attempt to update an uninitialized texture!");const d=this._descriptor;d.internalFormat=_(d);const{context:u,pixelFormat:h,dataType:m,isImmutable:f,target:g}=d;if(f&&!this._wasImmutablyAllocated)throw new n.A("Cannot update immutable texture before allocation!");v(g)||x().warn("Attempting to set 3D texture data on a non-3D texture");const T=u.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES);u.setActiveTexture(e.TEXTURE_UNIT_FOR_UPDATES),(r<0||i<0||o<0||r+a>d.width||i+s>d.height||o+c>d.depth)&&x().error("An attempt to update out of bounds of the texture!"),this._configurePixelStorage();const{gl:b}=u;if(p(l))l=l.levels[t],b.compressedTexSubImage3D(g,t,r,i,o,a,s,c,d.internalFormat,l);else{const e=l;b.texSubImage3D(g,t,r,i,o,a,s,c,h,m,e)}u.bindTexture(T,e.TEXTURE_UNIT_FOR_UPDATES)}generateMipmap(){const t=this._descriptor;if(0===t.width||0===t.height)return;if(!t.hasMipmap){if(this._wasImmutablyAllocated)throw new n.A("Cannot add mipmaps to immutable texture after allocation");t.hasMipmap=!0,this._samplingModeDirty=!0,m(t)}t.samplingMode===u.Cj.LINEAR?(this._samplingModeDirty=!0,t.samplingMode=u.Cj.LINEAR_MIPMAP_NEAREST):t.samplingMode===u.Cj.NEAREST&&(this._samplingModeDirty=!0,t.samplingMode=u.Cj.NEAREST_MIPMAP_NEAREST);const r=this._descriptor.context.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES);this._descriptor.context.setActiveTexture(e.TEXTURE_UNIT_FOR_UPDATES),this._descriptor.context.gl.generateMipmap(t.target),this._descriptor.context.bindTexture(r,e.TEXTURE_UNIT_FOR_UPDATES)}clearMipmap(){const e=this._descriptor;if(e.hasMipmap){if(this._wasImmutablyAllocated)throw new n.A("Cannot delete mipmaps to immutable texture after allocation");e.hasMipmap=!1,this._samplingModeDirty=!0,m(e)}e.samplingMode===u.Cj.LINEAR_MIPMAP_NEAREST?(this._samplingModeDirty=!0,e.samplingMode=u.Cj.LINEAR):e.samplingMode===u.Cj.NEAREST_MIPMAP_NEAREST&&(this._samplingModeDirty=!0,e.samplingMode=u.Cj.NEAREST)}setSamplingMode(e){e!==this._descriptor.samplingMode&&(this._descriptor.samplingMode=e,this._samplingModeDirty=!0)}setWrapMode(e){e!==this._descriptor.wrapMode&&(this._descriptor.wrapMode=e,m(this._descriptor),this._wrapModeDirty=!0)}applyChanges(){this._samplingModeDirty&&(this._applySamplingMode(),this._samplingModeDirty=!1),this._wrapModeDirty&&(this._applyWrapMode(),this._wrapModeDirty=!1)}abortCompression(){this.isCompressing&&(this._compressionAbortController.value=(0,s.DC)(this._compressionAbortController.value))}_setData(t,r){const i=this._descriptor,o=i.context?.gl;if(!o)return;(0,d.Y2)(o),this._glName||(this._glName=o.createTexture(),i.context.instanceCounter.increment(u.vt.Texture,this)),m(i);const a=i.context.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES);i.context.setActiveTexture(e.TEXTURE_UNIT_FOR_UPDATES),this._configurePixelStorage(),(0,d.Y2)(o);const s=r??i.target,c=v(s);if(f(t))this._setDataFromTexImageSource(t,s);else{const{width:e,height:r,depth:a}=i;if(null==e||null==r)throw new n.A("Width and height must be specified!");if(c&&null==a)throw new n.A("Depth must be specified!");if(i.internalFormat=_(i),i.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(s,i.internalFormat,i.hasMipmap,e,r,a),p(t)){if(!(i.internalFormat in u.CQ))throw new n.A("Attempting to use compressed data with an uncompressed format!");this._setDataFromCompressedSource(t,i.internalFormat,s)}else this._texImage(s,0,i.internalFormat,e,r,a,t),(0,d.Y2)(o),i.hasMipmap&&this.generateMipmap()}this._applySamplingMode(),this._applyWrapMode(),this._applyAnisotropicFilteringParameters(),(0,d.Y2)(o),i.context.bindTexture(a,e.TEXTURE_UNIT_FOR_UPDATES)}_setDataCubeMap(e=null){for(let t=u.Ap.TEXTURE_CUBE_MAP_POSITIVE_X;t<=u.Ap.TEXTURE_CUBE_MAP_NEGATIVE_Z;t++)this._setData(e,t)}_configurePixelStorage(){const e=this._descriptor.context.gl,{unpackAlignment:t,flipped:r,preMultiplyAlpha:i}=this._descriptor;e.pixelStorei(e.UNPACK_ALIGNMENT,t),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,r?1:0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i?1:0)}_setDataFromTexImageSource(e,t){const{gl:r}=this._descriptor.context,i=this._descriptor;i.internalFormat=_(i);const o=v(t),{width:n,height:a,depth:s}=function(e){let t="width"in e?e.width:e.codedWidth,r="height"in e?e.height:e.codedHeight;return e instanceof HTMLVideoElement&&(t=e.videoWidth,r=e.videoHeight),{width:t,height:r,depth:1}}(e);i.width&&i.height,i.width||(i.width=n),i.height||(i.height=a),o&&i.depth,o&&(i.depth=s),i.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(t,i.internalFormat,i.hasMipmap,n,a,s),this._texImage(t,0,i.internalFormat,n,a,s,e),(0,d.Y2)(r),i.hasMipmap&&(this.generateMipmap(),(0,d.Y2)(r))}_setDataFromCompressedSource(e,t,r){const i=this._descriptor,{width:o,height:n,depth:a}=i,s=e.levels,c=g(r,o,n,a),l=Math.min(c,s.length)-1;this._descriptor.context.gl.texParameteri(i.target,u.H3.MAX_LEVEL,l),this._forEachMipmapLevel(((e,i,o,n)=>{const a=s[Math.min(e,s.length-1)];this._compressedTexImage(r,e,t,i,o,n,a)}),l)}_texStorage(e,t,r,i,o,a){const{gl:s}=this._descriptor.context;if(!(t in u.H0))throw new n.A("Immutable textures must have a sized internal format");if(!this._descriptor.isImmutable)return;const c=r?g(e,i,o,a):1;if(v(e)){if(null==a)throw new n.A("Missing depth dimension for 3D texture upload");s.texStorage3D(e,c,t,i,o,a)}else s.texStorage2D(e,c,t,i,o);this._wasImmutablyAllocated=!0}_texImage(e,t,r,i,o,a,s){const c=this._descriptor.context.gl,l=v(e),{isImmutable:d,pixelFormat:u,dataType:h}=this._descriptor;if(d){if(null!=s){const r=s;if(l){if(null==a)throw new n.A("Missing depth dimension for 3D texture upload");c.texSubImage3D(e,t,0,0,0,i,o,a,u,h,r)}else c.texSubImage2D(e,t,0,0,i,o,u,h,r)}}else{const d=s;if(l){if(null==a)throw new n.A("Missing depth dimension for 3D texture upload");c.texImage3D(e,t,r,i,o,a,0,u,h,d)}else c.texImage2D(e,t,r,i,o,0,u,h,d)}}_compressedTexImage(e,t,r,i,o,a,s){const c=this._descriptor.context.gl,l=v(e);if(this._descriptor.isImmutable){if(null!=s)if(l){if(null==a)throw new n.A("Missing depth dimension for 3D texture upload");c.compressedTexSubImage3D(e,t,0,0,0,i,o,a,r,s)}else c.compressedTexSubImage2D(e,t,0,0,i,o,r,s)}else if(l){if(null==a)throw new n.A("Missing depth dimension for 3D texture upload");c.compressedTexImage3D(e,t,r,i,o,a,0,s)}else c.compressedTexImage2D(e,t,r,i,o,0,s)}async _compressOnWorker(t){if(!e.compressionWorkerHandle||!e.compressionWorkerHandle.isCompressible(t))return;const r=!!this._descriptor.context.capabilities.compressedTextureETC,i=!!this._descriptor.context.capabilities.compressedTextureS3TC;if(r||i){const o=new AbortController;this._compressionAbortController.value=o;const n={data:await createImageBitmap(t),flipped:this.descriptor.flipped,width:t.width,height:t.height,hasMipmap:this._descriptor.hasMipmap,hasETC:!!r,hasS3TC:!!i};e.compressionWorkerHandle.invoke(n,this._compressionAbortController.value.signal).then((e=>{e&&this.isCompressing&&this.glName&&(this._descriptor.internalFormat=e.internalFormat,this._setData(e.compressedTexture)),o===this._compressionAbortController.value&&(this._compressionAbortController.value=null)})).catch((e=>{(0,c.zf)(e)||o!==this._compressionAbortController.value||(this._compressionAbortController.value=null)}))}}_forEachMipmapLevel(e,t=1/0){let{width:r,height:i,depth:o,hasMipmap:a,target:s}=this._descriptor;const c=s===u.Ap.TEXTURE_3D;if(null==r||null==i||c&&null==o)throw new n.A("Missing texture dimensions for mipmap calculation");for(let n=0;e(n,r,i,o),a&&(1!==r||1!==i||c&&1!==o)&&!(n>=t);++n)r=Math.max(1,r>>1),i=Math.max(1,i>>1),c&&(o=Math.max(1,o>>1))}_applySamplingMode(){const e=this._descriptor,t=e.context?.gl;let r=e.samplingMode,i=e.samplingMode;r===u.Cj.LINEAR_MIPMAP_NEAREST||r===u.Cj.LINEAR_MIPMAP_LINEAR?(r=u.Cj.LINEAR,e.hasMipmap||(i=u.Cj.LINEAR)):r!==u.Cj.NEAREST_MIPMAP_NEAREST&&r!==u.Cj.NEAREST_MIPMAP_LINEAR||(r=u.Cj.NEAREST,e.hasMipmap||(i=u.Cj.NEAREST)),t.texParameteri(e.target,t.TEXTURE_MAG_FILTER,r),t.texParameteri(e.target,t.TEXTURE_MIN_FILTER,i)}_applyWrapMode(){const e=this._descriptor,t=e.context?.gl;"number"==typeof e.wrapMode?(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode)):(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode.s),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode.t))}_applyAnisotropicFilteringParameters(){const e=this._descriptor,t=e.context.capabilities.textureFilterAnisotropic;t&&e.context.gl.texParameterf(e.target,t.TEXTURE_MAX_ANISOTROPY,e.maxAnisotropy??1)}}},32680:(e,t,r)=>{r.d(t,{M:()=>o});var i=r(31821);function o(e){e.vertex.code.add(i.H`vec4 offsetBackfacingClipPosition(vec4 posClip, vec3 posWorld, vec3 normalWorld, vec3 camPosWorld) {
301
386
  vec3 camToVert = posWorld - camPosWorld;
302
387
  bool isBackface = dot(camToVert, normalWorld) > 0.0;
303
388
  if (isBackface) {
304
389
  posClip.z += 0.0000003 * posClip.w;
305
390
  }
306
391
  return posClip;
307
- }`)}},32976:(e,t,r)=>{r.d(t,{o:()=>o});var i=r(69270),n=r(74333);class o extends n.n{constructor(e,t){super(e,"bool",i.c.Bind,((r,i)=>r.setUniform1b(e,t(i))))}}},33524:(e,t,r)=>{r.d(t,{K_:()=>f,Yf:()=>l,aB:()=>m,ez:()=>c,m6:()=>p,xt:()=>u,z5:()=>d});var i=r(49255),n=r(59643),o=r(63907),a=r(90644);const s=(0,a.p3)(o.dn.ONE,o.dn.ZERO,o.dn.ONE,o.dn.ONE_MINUS_SRC_ALPHA);function c(e){return e===n.Y.FrontFace?null:s}function l(e){switch(e){case n.Y.NONE:return a.Ky;case n.Y.ColorAlpha:return s;case n.Y.FrontFace:case n.Y.COUNT:return null}}function d(e){if(e.draped)return null;switch(e.oitPass){case n.Y.NONE:case n.Y.FrontFace:return e.writeDepth?a.Uy:null;case n.Y.ColorAlpha:case n.Y.COUNT:return null}}const u=5e5,h={factor:-1,units:-2};function m(e){return e?h:null}function f(e,t=o.MT.LESS){return e===n.Y.NONE||e===n.Y.FrontFace?t:o.MT.LEQUAL}function p(e,t){const r=(0,i.LG)(t);return e===n.Y.ColorAlpha?r?{buffers:[o.r6,o.yI,o.Fq]}:{buffers:[o.r6,o.yI]}:r?{buffers:[o.r6,o.yI]}:null}},33752:(e,t,r)=>{r.d(t,{EM:()=>g,dO:()=>v,em:()=>p});var i=r(29242),n=r(9093),o=r(51850),a=r(26425),s=r(40710),c=r(33079),l=r(31821),d=r(98353),u=r(35644),h=r(40095),m=r(46540),f=r(65786);function p(e,t){const{attributes:r,vertex:i,varyings:n,fragment:o}=e;i.include(a.u,t),r.add(m.r.POSITION,"vec3"),n.add("vPositionWorldCameraRelative","vec3"),n.add("vPosition_view","vec3",{invariant:!0}),i.uniforms.add(new c.t("transformWorldFromViewTH",(e=>e.transformWorldFromViewTH)),new c.t("transformWorldFromViewTL",(e=>e.transformWorldFromViewTL)),new u.k("transformViewFromCameraRelativeRS",(e=>e.transformViewFromCameraRelativeRS)),new h.X("transformProjFromView",(e=>e.transformProjFromView)),new d.h("transformWorldFromModelRS",(e=>e.transformWorldFromModelRS)),new s.W("transformWorldFromModelTH",(e=>e.transformWorldFromModelTH)),new s.W("transformWorldFromModelTL",(e=>e.transformWorldFromModelTL))),i.code.add(l.H`vec3 positionWorldCameraRelative() {
392
+ }`)}},32976:(e,t,r)=>{r.d(t,{o:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"bool",i.c.Bind,((r,i)=>r.setUniform1b(e,t(i))))}}},33524:(e,t,r)=>{r.d(t,{K_:()=>p,Yf:()=>l,aB:()=>m,ez:()=>c,m6:()=>f,xt:()=>u,z5:()=>d});var i=r(49255),o=r(59643),n=r(63907),a=r(90644);const s=(0,a.p3)(n.dn.ONE,n.dn.ZERO,n.dn.ONE,n.dn.ONE_MINUS_SRC_ALPHA);function c(e){return e===o.Y.FrontFace?null:s}function l(e){switch(e){case o.Y.NONE:return a.Ky;case o.Y.ColorAlpha:return s;case o.Y.FrontFace:case o.Y.COUNT:return null}}function d(e){if(e.draped)return null;switch(e.oitPass){case o.Y.NONE:case o.Y.FrontFace:return e.writeDepth?a.Uy:null;case o.Y.ColorAlpha:case o.Y.COUNT:return null}}const u=5e5,h={factor:-1,units:-2};function m(e){return e?h:null}function p(e,t=n.MT.LESS){return e===o.Y.NONE||e===o.Y.FrontFace?t:n.MT.LEQUAL}function f(e,t){const r=(0,i.LG)(t);return e===o.Y.ColorAlpha?r?{buffers:[n.r6,n.yI,n.Fq]}:{buffers:[n.r6,n.yI]}:r?{buffers:[n.r6,n.yI]}:null}},33752:(e,t,r)=>{r.d(t,{EM:()=>g,dO:()=>v,em:()=>f});var i=r(29242),o=r(9093),n=r(51850),a=r(26425),s=r(40710),c=r(33079),l=r(31821),d=r(98353),u=r(35644),h=r(40095),m=r(46540),p=r(65786);function f(e,t){const{attributes:r,vertex:i,varyings:o,fragment:n}=e;i.include(a.u,t),r.add(m.r.POSITION,"vec3"),o.add("vPositionWorldCameraRelative","vec3"),o.add("vPosition_view","vec3",{invariant:!0}),i.uniforms.add(new c.t("transformWorldFromViewTH",(e=>e.transformWorldFromViewTH)),new c.t("transformWorldFromViewTL",(e=>e.transformWorldFromViewTL)),new u.k("transformViewFromCameraRelativeRS",(e=>e.transformViewFromCameraRelativeRS)),new h.X("transformProjFromView",(e=>e.transformProjFromView)),new d.h("transformWorldFromModelRS",(e=>e.transformWorldFromModelRS)),new s.W("transformWorldFromModelTH",(e=>e.transformWorldFromModelTH)),new s.W("transformWorldFromModelTL",(e=>e.transformWorldFromModelTL))),i.code.add(l.H`vec3 positionWorldCameraRelative() {
308
393
  vec3 rotatedModelPosition = transformWorldFromModelRS * position;
309
394
  vec3 transform_CameraRelativeFromModel = dpAdd(
310
395
  transformWorldFromModelTL,
@@ -323,13 +408,13 @@ return transform_CameraRelativeFromModel + rotatedModelPosition;
323
408
  vPosition_view = transformViewFromCameraRelativeRS * vPositionWorldCameraRelative;
324
409
  gl_Position = transformProjFromView * vec4(vPosition_view, 1.0);
325
410
  }
326
- `),o.uniforms.add(new c.t("transformWorldFromViewTL",(e=>e.transformWorldFromViewTL))),i.code.add(l.H`vec3 positionWorld() {
411
+ `),n.uniforms.add(new c.t("transformWorldFromViewTL",(e=>e.transformWorldFromViewTL))),i.code.add(l.H`vec3 positionWorld() {
327
412
  return transformWorldFromViewTL + vPositionWorldCameraRelative;
328
- }`),o.code.add(l.H`vec3 positionWorld() {
413
+ }`),n.code.add(l.H`vec3 positionWorld() {
329
414
  return transformWorldFromViewTL + vPositionWorldCameraRelative;
330
- }`)}class v extends f.Y{constructor(){super(...arguments),this.transformWorldFromViewTH=(0,o.vt)(),this.transformWorldFromViewTL=(0,o.vt)(),this.transformViewFromCameraRelativeRS=(0,i.vt)(),this.transformProjFromView=(0,n.vt)()}}class g extends f.Y{constructor(){super(...arguments),this.transformWorldFromModelRS=(0,i.vt)(),this.transformWorldFromModelTH=(0,o.vt)(),this.transformWorldFromModelTL=(0,o.vt)()}}},34845:(e,t,r)=>{r.d(t,{Ir:()=>d});var i=r(37585),n=r(48163),o=r(87317),a=r(91829),s=r(77108),c=r(14314),l=r(31821);function d(e){e.fragment.uniforms.add(new c.I("projInfo",(e=>function(e){const t=e.projectionMatrix;return 0===t[11]?(0,o.s)(u,2/(e.fullWidth*t[0]),2/(e.fullHeight*t[5]),(1+t[12])/t[0],(1+t[13])/t[5]):(0,o.s)(u,-2/(e.fullWidth*t[0]),-2/(e.fullHeight*t[5]),(1-t[8])/t[0],(1-t[9])/t[5])}(e.camera)))),e.fragment.uniforms.add(new s.E("zScale",(e=>0===e.camera.projectionMatrix[11]?(0,i.hZ)(h,0,1):(0,i.hZ)(h,1,0)))),e.fragment.code.add(l.H`vec3 reconstructPosition(vec2 fragCoord, float depth) {
415
+ }`)}class v extends p.Y{constructor(){super(...arguments),this.transformWorldFromViewTH=(0,n.vt)(),this.transformWorldFromViewTL=(0,n.vt)(),this.transformViewFromCameraRelativeRS=(0,i.vt)(),this.transformProjFromView=(0,o.vt)()}}class g extends p.Y{constructor(){super(...arguments),this.transformWorldFromModelRS=(0,i.vt)(),this.transformWorldFromModelTH=(0,n.vt)(),this.transformWorldFromModelTL=(0,n.vt)()}}},34845:(e,t,r)=>{r.d(t,{Ir:()=>d});var i=r(37585),o=r(48163),n=r(87317),a=r(91829),s=r(77108),c=r(14314),l=r(31821);function d(e){e.fragment.uniforms.add(new c.I("projInfo",(e=>function(e){const t=e.projectionMatrix;return 0===t[11]?(0,n.s)(u,2/(e.fullWidth*t[0]),2/(e.fullHeight*t[5]),(1+t[12])/t[0],(1+t[13])/t[5]):(0,n.s)(u,-2/(e.fullWidth*t[0]),-2/(e.fullHeight*t[5]),(1-t[8])/t[0],(1-t[9])/t[5])}(e.camera)))),e.fragment.uniforms.add(new s.E("zScale",(e=>0===e.camera.projectionMatrix[11]?(0,i.hZ)(h,0,1):(0,i.hZ)(h,1,0)))),e.fragment.code.add(l.H`vec3 reconstructPosition(vec2 fragCoord, float depth) {
331
416
  return vec3((fragCoord * projInfo.xy + projInfo.zw) * (zScale.x * depth + zScale.y), depth);
332
- }`)}const u=(0,a.vt)(),h=(0,n.vt)()},35256:(e,t,r)=>{r.d(t,{E:()=>l});var i=r(90237),n=r(49255),o=r(51976);class a extends o.K{constructor(){super(...arguments),this.instancedDoublePrecision=!1,this.hasModelTransformation=!1}}(0,i._)([(0,o.W)()],a.prototype,"instancedDoublePrecision",void 0),(0,i._)([(0,o.W)()],a.prototype,"hasModelTransformation",void 0);var s=r(59643),c=r(69270);class l extends a{constructor(){super(...arguments),this.output=n.V.Color,this.oitPass=s.Y.NONE,this.hasSlicePlane=!1,this.bindType=c.c.Pass,this.writeDepth=!0}}(0,i._)([(0,o.W)({count:n.V.COUNT})],l.prototype,"output",void 0),(0,i._)([(0,o.W)({count:s.Y.COUNT})],l.prototype,"oitPass",void 0),(0,i._)([(0,o.W)()],l.prototype,"hasSlicePlane",void 0)},35640:(e,t,r)=>{r.d(t,{G:()=>l,V:()=>u});var i=r(87317),n=r(91829),o=r(52587),a=r(20693),s=r(71988),c=r(31821);function l(e,t){const r=e.vertex;t.hasVerticalOffset?(u(r),t.hasScreenSizePerspective&&(e.include(o.Y6),(0,o.OH)(r),(0,a.yu)(e.vertex,t)),r.code.add(c.H`
417
+ }`)}const u=(0,a.vt)(),h=(0,o.vt)()},35256:(e,t,r)=>{r.d(t,{E:()=>l});var i=r(90237),o=r(49255),n=r(51976);class a extends n.K{constructor(){super(...arguments),this.instancedDoublePrecision=!1,this.hasModelTransformation=!1}}(0,i._)([(0,n.W)()],a.prototype,"instancedDoublePrecision",void 0),(0,i._)([(0,n.W)()],a.prototype,"hasModelTransformation",void 0);var s=r(59643),c=r(69270);class l extends a{constructor(){super(...arguments),this.output=o.V.Color,this.oitPass=s.Y.NONE,this.hasSlicePlane=!1,this.bindType=c.c.Pass,this.writeDepth=!0}}(0,i._)([(0,n.W)({count:o.V.COUNT})],l.prototype,"output",void 0),(0,i._)([(0,n.W)({count:s.Y.COUNT})],l.prototype,"oitPass",void 0),(0,i._)([(0,n.W)()],l.prototype,"hasSlicePlane",void 0)},35640:(e,t,r)=>{r.d(t,{G:()=>l,V:()=>u});var i=r(87317),o=r(91829),n=r(52587),a=r(20693),s=r(71988),c=r(31821);function l(e,t){const r=e.vertex;t.hasVerticalOffset?(u(r),t.hasScreenSizePerspective&&(e.include(n.Y6),(0,n.OH)(r),(0,a.yu)(e.vertex,t)),r.code.add(c.H`
333
418
  vec3 calculateVerticalOffset(vec3 worldPos, vec3 localOrigin) {
334
419
  float viewDistance = length((view * vec4(worldPos, 1.0)).xyz);
335
420
  ${t.spherical?c.H`vec3 worldNormal = normalize(worldPos + localOrigin);`:c.H`vec3 worldNormal = vec3(0.0, 0.0, 1.0);`}
@@ -345,27 +430,28 @@ return vec3((fragCoord * projInfo.xy + projInfo.zw) * (zScale.x * depth + zScale
345
430
  vec3 addVerticalOffset(vec3 worldPos, vec3 localOrigin) {
346
431
  return worldPos + calculateVerticalOffset(worldPos, localOrigin);
347
432
  }
348
- `)):r.code.add(c.H`vec3 addVerticalOffset(vec3 worldPos, vec3 localOrigin) { return worldPos; }`)}const d=(0,n.vt)();function u(e){e.uniforms.add(new s.E("verticalOffset",((e,t)=>{const{minWorldLength:r,maxWorldLength:n,screenLength:o}=e.verticalOffset,a=Math.tan(.5*t.camera.fovY)/(.5*t.camera.fullViewport[3]),s=t.camera.pixelRatio||1;return(0,i.s)(d,o*s,a,r,n)})))}},35818:(e,t,r)=>{r.d(t,{W:()=>o});var i=r(69270),n=r(74333);class o extends n.n{constructor(e,t){super(e,"int",i.c.Bind,((r,i)=>r.setUniform1i(e,t(i))))}}},36782:(e,t,r)=>{r.d(t,{g:()=>a});var i=r(49255),n=r(31821),o=r(46540);function a(e,t){if(t.output!==i.V.ObjectAndLayerIdColor)return e.vertex.code.add(n.H`void forwardObjectAndLayerIdColor() {}`),void e.fragment.code.add(n.H`void outputObjectAndLayerIdColor() {}`);const r=t.objectAndLayerIdColorInstanced;e.varyings.add("objectAndLayerIdColorVarying","vec4"),e.attributes.add(r?o.r.INSTANCEOBJECTANDLAYERIDCOLOR:o.r.OBJECTANDLAYERIDCOLOR,"vec4"),e.vertex.code.add(n.H`
433
+ `)):r.code.add(c.H`vec3 addVerticalOffset(vec3 worldPos, vec3 localOrigin) { return worldPos; }`)}const d=(0,o.vt)();function u(e){e.uniforms.add(new s.E("verticalOffset",((e,t)=>{const{minWorldLength:r,maxWorldLength:o,screenLength:n}=e.verticalOffset,a=Math.tan(.5*t.camera.fovY)/(.5*t.camera.fullViewport[3]),s=t.camera.pixelRatio||1;return(0,i.s)(d,n*s,a,r,o)})))}},35818:(e,t,r)=>{r.d(t,{W:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"int",i.c.Bind,((r,i)=>r.setUniform1i(e,t(i))))}}},36782:(e,t,r)=>{r.d(t,{g:()=>a});var i=r(49255),o=r(31821),n=r(46540);function a(e,t){if(t.output!==i.V.ObjectAndLayerIdColor)return e.vertex.code.add(o.H`void forwardObjectAndLayerIdColor() {}`),void e.fragment.code.add(o.H`void outputObjectAndLayerIdColor() {}`);const r=t.objectAndLayerIdColorInstanced;e.varyings.add("objectAndLayerIdColorVarying","vec4"),e.attributes.add(r?n.r.INSTANCEOBJECTANDLAYERIDCOLOR:n.r.OBJECTANDLAYERIDCOLOR,"vec4"),e.vertex.code.add(o.H`
349
434
  void forwardObjectAndLayerIdColor() {
350
435
  objectAndLayerIdColorVarying = ${r?"instanceObjectAndLayerIdColor":"objectAndLayerIdColor"} * 0.003921568627451;
351
- }`),e.fragment.code.add(n.H`void outputObjectAndLayerIdColor() {
436
+ }`),e.fragment.code.add(o.H`void outputObjectAndLayerIdColor() {
352
437
  fragColor = objectAndLayerIdColorVarying;
353
- }`)}},39341:(e,t,r)=>{r.d(t,{D:()=>n});var i=r(46540);const n=new Map([[i.r.POSITION,0],[i.r.NORMAL,1],[i.r.NORMALCOMPRESSED,1],[i.r.UV0,2],[i.r.COLOR,3],[i.r.COLORFEATUREATTRIBUTE,3],[i.r.SIZE,4],[i.r.TANGENT,4],[i.r.CENTEROFFSETANDDISTANCE,5],[i.r.SYMBOLCOLOR,5],[i.r.FEATUREATTRIBUTE,6],[i.r.INSTANCEFEATUREATTRIBUTE,6],[i.r.INSTANCECOLOR,7],[i.r.OBJECTANDLAYERIDCOLOR,7],[i.r.INSTANCEOBJECTANDLAYERIDCOLOR,7],[i.r.ROTATION,8],[i.r.INSTANCEMODEL,8],[i.r.INSTANCEMODELNORMAL,12],[i.r.INSTANCEMODELORIGINHI,11],[i.r.INSTANCEMODELORIGINLO,15]])},40095:(e,t,r)=>{r.d(t,{X:()=>o});var i=r(69270),n=r(74333);class o extends n.n{constructor(e,t){super(e,"mat4",i.c.Pass,((r,i,n)=>r.setUniformMatrix4fv(e,t(i,n))))}}},40261:(e,t,r)=>{r.d(t,{E:()=>x});var i=r(46686),n=r(49255),o=r(76591),a=r(76597),s=r(96336),c=r(36782),l=r(53466),d=r(72824),u=r(80730),h=r(31821);function m(e,t){switch(t.output){case n.V.Shadow:case n.V.ShadowHighlight:case n.V.ShadowExcludeHighlight:case n.V.ViewshedShadow:e.fragment.include(u.U),e.fragment.code.add(h.H`float _calculateFragDepth(const in float depth) {
438
+ }`)}},39341:(e,t,r)=>{r.d(t,{D:()=>o});var i=r(46540);const o=new Map([[i.r.POSITION,0],[i.r.NORMAL,1],[i.r.NORMALCOMPRESSED,1],[i.r.UV0,2],[i.r.COLOR,3],[i.r.COLORFEATUREATTRIBUTE,3],[i.r.SIZE,4],[i.r.TANGENT,4],[i.r.CENTEROFFSETANDDISTANCE,5],[i.r.SYMBOLCOLOR,5],[i.r.FEATUREATTRIBUTE,6],[i.r.INSTANCEFEATUREATTRIBUTE,6],[i.r.INSTANCECOLOR,7],[i.r.OBJECTANDLAYERIDCOLOR,7],[i.r.INSTANCEOBJECTANDLAYERIDCOLOR,7],[i.r.ROTATION,8],[i.r.INSTANCEMODEL,8],[i.r.INSTANCEMODELNORMAL,12],[i.r.INSTANCEMODELORIGINHI,11],[i.r.INSTANCEMODELORIGINLO,15]])},40095:(e,t,r)=>{r.d(t,{X:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"mat4",i.c.Pass,((r,i,o)=>r.setUniformMatrix4fv(e,t(i,o))))}}},40261:(e,t,r)=>{r.d(t,{E:()=>x});var i=r(46686),o=r(49255),n=r(76591),a=r(76597),s=r(96336),c=r(36782),l=r(53466),d=r(72824),u=r(80730),h=r(31821);function m(e,t){switch(t.output){case o.V.Shadow:case o.V.ShadowHighlight:case o.V.ShadowExcludeHighlight:case o.V.ViewshedShadow:e.outputs.add("oFragDepth","vec4",0),e.fragment.include(u.U),e.fragment.code.add(h.H`float _calculateFragDepth(const in float depth) {
354
439
  const float SLOPE_SCALE = 2.0;
355
440
  const float BIAS = 20.0 * .000015259;
356
441
  float m = max(abs(dFdx(depth)), abs(dFdy(depth)));
357
442
  return depth + SLOPE_SCALE * m + BIAS;
358
443
  }
359
444
  void outputDepth(float _linearDepth) {
360
- fragColor = floatToRgba4(_calculateFragDepth(_linearDepth));
361
- }`)}}var f=r(80896),p=r(42398),v=r(11955),g=r(20693),_=r(63761),T=r(89192);function x(e,t){const{vertex:r,fragment:u,varyings:x}=e,b=t.hasColorTexture&&t.alphaDiscardMode!==T.sf.Opaque,{output:A,normalType:E,hasColorTextureTransform:S}=t;switch(A){case n.V.Depth:(0,g.NB)(r,t),e.include(a.d,t),u.include(o.HQ,t),e.include(l.U,t),b&&u.uniforms.add(new _.N("tex",(e=>e.texture))),r.main.add(h.H`vpos = getVertexInLocalOriginSpace();
445
+ float fragDepth = _calculateFragDepth(_linearDepth);
446
+ oFragDepth = floatToRgba4(fragDepth);
447
+ }`)}}var p=r(80896),f=r(42398),v=r(11955),g=r(20693),_=r(63761),T=r(89192);function x(e,t){const{vertex:r,fragment:u,varyings:x}=e,b=t.hasColorTexture&&t.alphaDiscardMode!==T.sf.Opaque,{output:A,normalType:E,hasColorTextureTransform:S}=t;switch(A){case o.V.Depth:(0,g.NB)(r,t),e.include(a.d,t),u.include(n.HQ,t),e.include(l.U,t),b&&u.uniforms.add(new _.N("tex",(e=>e.texture))),r.main.add(h.H`vpos = getVertexInLocalOriginSpace();
362
448
  vpos = subtractOrigin(vpos);
363
449
  vpos = addVerticalOffset(vpos, localOrigin);
364
450
  gl_Position = transformPosition(proj, view, vpos);
365
451
  forwardTextureCoordinates();`),e.include(v.S,t),u.main.add(h.H`
366
452
  discardBySlice(vpos);
367
453
  ${(0,h.If)(b,h.H`vec4 texColor = texture(tex, ${S?"colorUV":"vuv0"});
368
- discardOrAdjustAlpha(texColor);`)}`);break;case n.V.Shadow:case n.V.ShadowHighlight:case n.V.ShadowExcludeHighlight:case n.V.ViewshedShadow:case n.V.ObjectAndLayerIdColor:(0,g.NB)(r,t),e.include(a.d,t),e.include(l.U,t),e.include(p.A,t),e.include(m,t),u.include(o.HQ,t),e.include(c.g,t),(0,i.xJ)(e),x.add("depth","float",{invariant:!0}),b&&u.uniforms.add(new _.N("tex",(e=>e.texture))),r.main.add(h.H`vpos = getVertexInLocalOriginSpace();
454
+ discardOrAdjustAlpha(texColor);`)}`);break;case o.V.Shadow:case o.V.ShadowHighlight:case o.V.ShadowExcludeHighlight:case o.V.ViewshedShadow:case o.V.ObjectAndLayerIdColor:(0,g.NB)(r,t),e.include(a.d,t),e.include(l.U,t),e.include(f.A,t),e.include(m,t),u.include(n.HQ,t),e.include(c.g,t),(0,i.xJ)(e),x.add("depth","float",{invariant:!0}),b&&u.uniforms.add(new _.N("tex",(e=>e.texture))),r.main.add(h.H`vpos = getVertexInLocalOriginSpace();
369
455
  vpos = subtractOrigin(vpos);
370
456
  vpos = addVerticalOffset(vpos, localOrigin);
371
457
  gl_Position = transformPositionWithDepth(proj, view, vpos, nearFar, depth);
@@ -374,13 +460,13 @@ forwardObjectAndLayerIdColor();`),e.include(v.S,t),u.main.add(h.H`
374
460
  discardBySlice(vpos);
375
461
  ${(0,h.If)(b,h.H`vec4 texColor = texture(tex, ${S?"colorUV":"vuv0"});
376
462
  discardOrAdjustAlpha(texColor);`)}
377
- ${A===n.V.ObjectAndLayerIdColor?h.H`outputObjectAndLayerIdColor();`:h.H`outputDepth(depth);`}`);break;case n.V.Normal:{(0,g.NB)(r,t),e.include(a.d,t),e.include(s.Y,t),e.include(d.Mh,t),e.include(l.U,t),e.include(p.A,t),b&&u.uniforms.add(new _.N("tex",(e=>e.texture))),E===s.W.ScreenDerivative&&x.add("vPositionView","vec3",{invariant:!0});const i=E===s.W.Attribute||E===s.W.Compressed;r.main.add(h.H`
463
+ ${A===o.V.ObjectAndLayerIdColor?h.H`outputObjectAndLayerIdColor();`:h.H`outputDepth(depth);`}`);break;case o.V.Normal:{(0,g.NB)(r,t),e.include(a.d,t),e.include(s.Y,t),e.include(d.Mh,t),e.include(l.U,t),e.include(f.A,t),b&&u.uniforms.add(new _.N("tex",(e=>e.texture))),E===s.W.ScreenDerivative&&x.add("vPositionView","vec3",{invariant:!0});const i=E===s.W.Attribute||E===s.W.Compressed;r.main.add(h.H`
378
464
  vpos = getVertexInLocalOriginSpace();
379
465
  ${i?h.H`vNormalWorld = dpNormalView(vvLocalNormal(normalModel()));`:h.H`vPositionView = (view * vec4(vpos, 1.0)).xyz;`}
380
466
  vpos = subtractOrigin(vpos);
381
467
  vpos = addVerticalOffset(vpos, localOrigin);
382
468
  gl_Position = transformPosition(proj, view, vpos);
383
- forwardTextureCoordinates();`),u.include(o.HQ,t),e.include(v.S,t),u.main.add(h.H`
469
+ forwardTextureCoordinates();`),u.include(n.HQ,t),e.include(v.S,t),u.main.add(h.H`
384
470
  discardBySlice(vpos);
385
471
  ${(0,h.If)(b,h.H`vec4 texColor = texture(tex, ${S?"colorUV":"vuv0"});
386
472
  discardOrAdjustAlpha(texColor);`)}
@@ -389,15 +475,15 @@ forwardObjectAndLayerIdColor();`),e.include(v.S,t),u.main.add(h.H`
389
475
  if (gl_FrontFacing == false){
390
476
  normal = -normal;
391
477
  }`}
392
- fragColor = vec4(0.5 + 0.5 * normal, 1.0);`);break}case n.V.Highlight:(0,g.NB)(r,t),e.include(a.d,t),e.include(l.U,t),e.include(p.A,t),b&&u.uniforms.add(new _.N("tex",(e=>e.texture))),r.main.add(h.H`vpos = getVertexInLocalOriginSpace();
478
+ fragColor = vec4(0.5 + 0.5 * normal, 1.0);`);break}case o.V.Highlight:(0,g.NB)(r,t),e.include(a.d,t),e.include(l.U,t),e.include(f.A,t),b&&u.uniforms.add(new _.N("tex",(e=>e.texture))),r.main.add(h.H`vpos = getVertexInLocalOriginSpace();
393
479
  vpos = subtractOrigin(vpos);
394
480
  vpos = addVerticalOffset(vpos, localOrigin);
395
481
  gl_Position = transformPosition(proj, view, vpos);
396
- forwardTextureCoordinates();`),u.include(o.HQ,t),e.include(v.S,t),e.include(f.Q,t),u.main.add(h.H`
482
+ forwardTextureCoordinates();`),u.include(n.HQ,t),e.include(v.S,t),e.include(p.Q,t),u.main.add(h.H`
397
483
  discardBySlice(vpos);
398
484
  ${(0,h.If)(b,h.H`vec4 texColor = texture(tex, ${S?"colorUV":"vuv0"});
399
485
  discardOrAdjustAlpha(texColor);`)}
400
- calculateOcclusionAndOutputHighlight();`)}}},42293:(e,t,r)=>{r.d(t,{Hi:()=>c,IB:()=>l,yu:()=>s}),r(44208);var i=r(94656),n=r(63907),o=r(62298);function a(e){const t=e.gl;switch(t.getError()){case t.NO_ERROR:return null;case t.INVALID_ENUM:return"An unacceptable value has been specified for an enumerated argument";case t.INVALID_VALUE:return"An unacceptable value has been specified for an argument";case t.INVALID_OPERATION:return"The specified command is not allowed for the current state";case t.INVALID_FRAMEBUFFER_OPERATION:return"The currently bound framebuffer is not framebuffer complete";case t.OUT_OF_MEMORY:return"Not enough memory is left to execute the command";case t.CONTEXT_LOST_WEBGL:return"WebGL context is lost"}return"Unknown error"}function s(e,t,r,n,s=0){const c=e.gl;e.bindBuffer(r);for(const r of n){const n=t.get(r.name);if(null==n){console.warn(`There is no location for vertex attribute '${r.name}' defined.`);continue}const l=s*r.stride;if(r.count<=4)c.vertexAttribPointer(n,r.count,r.type,r.normalized,r.stride,r.offset+l),c.enableVertexAttribArray(n),r.divisor>0&&e.gl.vertexAttribDivisor(n,r.divisor);else if(9===r.count)for(let t=0;t<3;t++)c.vertexAttribPointer(n+t,3,r.type,r.normalized,r.stride,r.offset+12*t+l),c.enableVertexAttribArray(n+t),r.divisor>0&&e.gl.vertexAttribDivisor(n+t,r.divisor);else if(16===r.count)for(let t=0;t<4;t++)c.vertexAttribPointer(n+t,4,r.type,r.normalized,r.stride,r.offset+16*t+l),c.enableVertexAttribArray(n+t),r.divisor>0&&e.gl?.vertexAttribDivisor(n+t,r.divisor);else console.error("Unsupported vertex attribute element count: "+r.count);if((0,i.en)()){const t=a(e),i=(0,o._)(r.type),n=r.offset,s=Math.round(i/n)!==i/n?`. Offset not a multiple of stride. DataType requires ${i} bytes, but descriptor has an offset of ${n}`:"";t&&console.error(`Unable to bind vertex attribute "${r.name}" with baseInstanceOffset ${l}${s}:`,t,r)}}}function c(e,t,r,i){const o=e.gl;e.bindBuffer(r);for(const r of i){const i=t.get(r.name);if(r.count<=4)o.disableVertexAttribArray(i),r.divisor&&r.divisor>0&&e.gl?.vertexAttribDivisor(i,0);else if(9===r.count)for(let t=0;t<3;t++)o.disableVertexAttribArray(i+t),r.divisor&&r.divisor>0&&e.gl?.vertexAttribDivisor(i+t,0);else if(16===r.count)for(let t=0;t<4;t++)o.disableVertexAttribArray(i+t),r.divisor&&r.divisor>0&&e.gl?.vertexAttribDivisor(i+t,0);else console.error("Unsupported vertex attribute element count: "+r.count)}e.unbindBuffer(n.NZ.ARRAY_BUFFER)}function l(e){switch(e){case n.Ab.ALPHA:case n.Ab.LUMINANCE:case n.Ab.RED:case n.Ab.RED_INTEGER:case n.H0.R8:case n.H0.R8I:case n.H0.R8UI:case n.H0.R8_SNORM:case n.yQ.STENCIL_INDEX8:return 1;case n.Ab.LUMINANCE_ALPHA:case n.Ab.RG:case n.Ab.RG_INTEGER:case n.H0.RGBA4:case n.H0.R16F:case n.H0.R16I:case n.H0.R16UI:case n.H0.RG8:case n.H0.RG8I:case n.H0.RG8UI:case n.H0.RG8_SNORM:case n.H0.RGB565:case n.H0.RGB5_A1:case n.yQ.DEPTH_COMPONENT16:return 2;case n.Ab.DEPTH_COMPONENT:case n.Ab.RGB:case n.Ab.RGB_INTEGER:case n.H0.RGB8:case n.H0.RGB8I:case n.H0.RGB8UI:case n.H0.RGB8_SNORM:case n.H0.SRGB8:case n.yQ.DEPTH_COMPONENT24:return 3;case n.Ab.DEPTH_STENCIL:case n.Ab.DEPTH24_STENCIL8:case n.Ab.RGBA:case n.Ab.RGBA_INTEGER:case n.H0.RGBA8:case n.H0.R32F:case n.H0.R11F_G11F_B10F:case n.H0.RG16F:case n.H0.R32I:case n.H0.R32UI:case n.H0.RG16I:case n.H0.RG16UI:case n.H0.RGBA8I:case n.H0.RGBA8UI:case n.H0.RGBA8_SNORM:case n.H0.SRGB8_ALPHA8:case n.H0.RGB9_E5:case n.H0.RGB10_A2UI:case n.H0.RGB10_A2:case n.yQ.DEPTH_STENCIL:case n.yQ.DEPTH_COMPONENT32F:case n.yQ.DEPTH24_STENCIL8:return 4;case n.yQ.DEPTH32F_STENCIL8:return 5;case n.H0.RGB16F:case n.H0.RGB16I:case n.H0.RGB16UI:return 6;case n.H0.RG32F:case n.H0.RG32I:case n.H0.RG32UI:case n.H0.RGBA16F:case n.H0.RGBA16I:case n.H0.RGBA16UI:return 8;case n.H0.RGB32F:case n.H0.RGB32I:case n.H0.RGB32UI:return 12;case n.H0.RGBA32F:case n.H0.RGBA32I:case n.H0.RGBA32UI:return 16;case n.CQ.COMPRESSED_RGB_S3TC_DXT1_EXT:case n.CQ.COMPRESSED_RGBA_S3TC_DXT1_EXT:return.5;case n.CQ.COMPRESSED_RGBA_S3TC_DXT3_EXT:case n.CQ.COMPRESSED_RGBA_S3TC_DXT5_EXT:return 1;case n.CQ.COMPRESSED_R11_EAC:case n.CQ.COMPRESSED_SIGNED_R11_EAC:case n.CQ.COMPRESSED_RGB8_ETC2:case n.CQ.COMPRESSED_SRGB8_ETC2:case n.CQ.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:case n.CQ.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:return.5;case n.CQ.COMPRESSED_RG11_EAC:case n.CQ.COMPRESSED_SIGNED_RG11_EAC:case n.CQ.COMPRESSED_RGBA8_ETC2_EAC:case n.CQ.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:return 1}return 0}},42398:(e,t,r)=>{r.d(t,{A:()=>f});var i=r(33079),n=r(71988),o=r(69270),a=r(74333);class s extends a.n{constructor(e,t,r){super(e,"vec4",o.c.Pass,((r,i,n)=>r.setUniform4fv(e,t(i,n))),r)}}class c extends a.n{constructor(e,t,r){super(e,"float",o.c.Pass,((r,i,n)=>r.setUniform1fv(e,t(i,n))),r)}}var l=r(31821),d=r(35644),u=r(46540),h=r(78662);r(11725),h.Gd;const m=8;function f(e,t){const{vertex:r,attributes:o}=e;t.hasVvInstancing&&(t.vvSize||t.vvColor)&&o.add(u.r.INSTANCEFEATUREATTRIBUTE,"vec4"),t.vvSize?(r.uniforms.add(new i.t("vvSizeMinSize",(e=>e.vvSize.minSize))),r.uniforms.add(new i.t("vvSizeMaxSize",(e=>e.vvSize.maxSize))),r.uniforms.add(new i.t("vvSizeOffset",(e=>e.vvSize.offset))),r.uniforms.add(new i.t("vvSizeFactor",(e=>e.vvSize.factor))),r.uniforms.add(new i.t("vvSizeFallback",(e=>e.vvSize.fallback))),r.uniforms.add(new d.k("vvSymbolRotationMatrix",(e=>e.vvSymbolRotationMatrix))),r.uniforms.add(new i.t("vvSymbolAnchor",(e=>e.vvSymbolAnchor))),r.code.add(l.H`vec3 vvScale(vec4 _featureAttribute) {
486
+ calculateOcclusionAndOutputHighlight();`)}}},42293:(e,t,r)=>{r.d(t,{Hi:()=>c,IB:()=>l,yu:()=>s}),r(44208);var i=r(94656),o=r(63907),n=r(62298);function a(e){const t=e.gl;switch(t.getError()){case t.NO_ERROR:return null;case t.INVALID_ENUM:return"An unacceptable value has been specified for an enumerated argument";case t.INVALID_VALUE:return"An unacceptable value has been specified for an argument";case t.INVALID_OPERATION:return"The specified command is not allowed for the current state";case t.INVALID_FRAMEBUFFER_OPERATION:return"The currently bound framebuffer is not framebuffer complete";case t.OUT_OF_MEMORY:return"Not enough memory is left to execute the command";case t.CONTEXT_LOST_WEBGL:return"WebGL context is lost"}return"Unknown error"}function s(e,t,r,o,s=0){const c=e.gl;e.bindBuffer(r);for(const r of o){const o=t.get(r.name);if(null==o){console.warn(`There is no location for vertex attribute '${r.name}' defined.`);continue}const l=s*r.stride;if(r.count<=4)c.vertexAttribPointer(o,r.count,r.type,r.normalized,r.stride,r.offset+l),c.enableVertexAttribArray(o),r.divisor>0&&e.gl.vertexAttribDivisor(o,r.divisor);else if(9===r.count)for(let t=0;t<3;t++)c.vertexAttribPointer(o+t,3,r.type,r.normalized,r.stride,r.offset+12*t+l),c.enableVertexAttribArray(o+t),r.divisor>0&&e.gl.vertexAttribDivisor(o+t,r.divisor);else if(16===r.count)for(let t=0;t<4;t++)c.vertexAttribPointer(o+t,4,r.type,r.normalized,r.stride,r.offset+16*t+l),c.enableVertexAttribArray(o+t),r.divisor>0&&e.gl?.vertexAttribDivisor(o+t,r.divisor);else console.error("Unsupported vertex attribute element count: "+r.count);if((0,i.en)()){const t=a(e),i=(0,n._)(r.type),o=r.offset,s=Math.round(i/o)!==i/o?`. Offset not a multiple of stride. DataType requires ${i} bytes, but descriptor has an offset of ${o}`:"";t&&console.error(`Unable to bind vertex attribute "${r.name}" with baseInstanceOffset ${l}${s}:`,t,r)}}}function c(e,t,r,i){const n=e.gl;e.bindBuffer(r);for(const r of i){const i=t.get(r.name);if(r.count<=4)n.disableVertexAttribArray(i),r.divisor&&r.divisor>0&&e.gl?.vertexAttribDivisor(i,0);else if(9===r.count)for(let t=0;t<3;t++)n.disableVertexAttribArray(i+t),r.divisor&&r.divisor>0&&e.gl?.vertexAttribDivisor(i+t,0);else if(16===r.count)for(let t=0;t<4;t++)n.disableVertexAttribArray(i+t),r.divisor&&r.divisor>0&&e.gl?.vertexAttribDivisor(i+t,0);else console.error("Unsupported vertex attribute element count: "+r.count)}e.unbindBuffer(o.NZ.ARRAY_BUFFER)}function l(e){switch(e){case o.Ab.ALPHA:case o.Ab.LUMINANCE:case o.Ab.RED:case o.Ab.RED_INTEGER:case o.H0.R8:case o.H0.R8I:case o.H0.R8UI:case o.H0.R8_SNORM:case o.yQ.STENCIL_INDEX8:return 1;case o.Ab.LUMINANCE_ALPHA:case o.Ab.RG:case o.Ab.RG_INTEGER:case o.H0.RGBA4:case o.H0.R16F:case o.H0.R16I:case o.H0.R16UI:case o.H0.RG8:case o.H0.RG8I:case o.H0.RG8UI:case o.H0.RG8_SNORM:case o.H0.RGB565:case o.H0.RGB5_A1:case o.yQ.DEPTH_COMPONENT16:return 2;case o.Ab.DEPTH_COMPONENT:case o.Ab.RGB:case o.Ab.RGB_INTEGER:case o.H0.RGB8:case o.H0.RGB8I:case o.H0.RGB8UI:case o.H0.RGB8_SNORM:case o.H0.SRGB8:case o.yQ.DEPTH_COMPONENT24:return 3;case o.Ab.DEPTH_STENCIL:case o.Ab.DEPTH24_STENCIL8:case o.Ab.RGBA:case o.Ab.RGBA_INTEGER:case o.H0.RGBA8:case o.H0.R32F:case o.H0.R11F_G11F_B10F:case o.H0.RG16F:case o.H0.R32I:case o.H0.R32UI:case o.H0.RG16I:case o.H0.RG16UI:case o.H0.RGBA8I:case o.H0.RGBA8UI:case o.H0.RGBA8_SNORM:case o.H0.SRGB8_ALPHA8:case o.H0.RGB9_E5:case o.H0.RGB10_A2UI:case o.H0.RGB10_A2:case o.yQ.DEPTH_STENCIL:case o.yQ.DEPTH_COMPONENT32F:case o.yQ.DEPTH24_STENCIL8:return 4;case o.yQ.DEPTH32F_STENCIL8:return 5;case o.H0.RGB16F:case o.H0.RGB16I:case o.H0.RGB16UI:return 6;case o.H0.RG32F:case o.H0.RG32I:case o.H0.RG32UI:case o.H0.RGBA16F:case o.H0.RGBA16I:case o.H0.RGBA16UI:return 8;case o.H0.RGB32F:case o.H0.RGB32I:case o.H0.RGB32UI:return 12;case o.H0.RGBA32F:case o.H0.RGBA32I:case o.H0.RGBA32UI:return 16;case o.CQ.COMPRESSED_RGB_S3TC_DXT1_EXT:case o.CQ.COMPRESSED_RGBA_S3TC_DXT1_EXT:return.5;case o.CQ.COMPRESSED_RGBA_S3TC_DXT3_EXT:case o.CQ.COMPRESSED_RGBA_S3TC_DXT5_EXT:return 1;case o.CQ.COMPRESSED_R11_EAC:case o.CQ.COMPRESSED_SIGNED_R11_EAC:case o.CQ.COMPRESSED_RGB8_ETC2:case o.CQ.COMPRESSED_SRGB8_ETC2:case o.CQ.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:case o.CQ.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:return.5;case o.CQ.COMPRESSED_RG11_EAC:case o.CQ.COMPRESSED_SIGNED_RG11_EAC:case o.CQ.COMPRESSED_RGBA8_ETC2_EAC:case o.CQ.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:return 1}return 0}},42398:(e,t,r)=>{r.d(t,{A:()=>p});var i=r(33079),o=r(71988),n=r(69270),a=r(74333);class s extends a.n{constructor(e,t,r){super(e,"vec4",n.c.Pass,((r,i,o)=>r.setUniform4fv(e,t(i,o))),r)}}class c extends a.n{constructor(e,t,r){super(e,"float",n.c.Pass,((r,i,o)=>r.setUniform1fv(e,t(i,o))),r)}}var l=r(31821),d=r(35644),u=r(46540),h=r(78662);r(11725),h.Gd;const m=8;function p(e,t){const{vertex:r,attributes:n}=e;t.hasVvInstancing&&(t.vvSize||t.vvColor)&&n.add(u.r.INSTANCEFEATUREATTRIBUTE,"vec4"),t.vvSize?(r.uniforms.add(new i.t("vvSizeMinSize",(e=>e.vvSize.minSize))),r.uniforms.add(new i.t("vvSizeMaxSize",(e=>e.vvSize.maxSize))),r.uniforms.add(new i.t("vvSizeOffset",(e=>e.vvSize.offset))),r.uniforms.add(new i.t("vvSizeFactor",(e=>e.vvSize.factor))),r.uniforms.add(new i.t("vvSizeFallback",(e=>e.vvSize.fallback))),r.uniforms.add(new d.k("vvSymbolRotationMatrix",(e=>e.vvSymbolRotationMatrix))),r.uniforms.add(new i.t("vvSymbolAnchor",(e=>e.vvSymbolAnchor))),r.code.add(l.H`vec3 vvScale(vec4 _featureAttribute) {
401
487
  if (isnan(_featureAttribute.x)) {
402
488
  return vvSizeFallback;
403
489
  }
@@ -421,7 +507,7 @@ return vec4(vvSymbolRotationMatrix * ( vvScale(_featureAttribute) * (position +
421
507
  return vvTransformPosition(position, instanceFeatureAttribute);
422
508
  }`:""}
423
509
  `)):r.code.add(l.H`vec4 localPosition() { return vec4(position, 1.0); }
424
- vec4 vvLocalNormal(vec3 _normal) { return vec4(_normal, 1.0); }`),t.vvColor?(r.constants.add("vvColorNumber","int",m),r.uniforms.add(new c("vvColorValues",(e=>e.vvColor.values),m),new s("vvColorColors",(e=>e.vvColor.colors),m),new n.E("vvColorFallback",(e=>e.vvColor.fallback))),r.code.add(l.H`
510
+ vec4 vvLocalNormal(vec3 _normal) { return vec4(_normal, 1.0); }`),t.vvColor?(r.constants.add("vvColorNumber","int",m),r.uniforms.add(new c("vvColorValues",(e=>e.vvColor.values),m),new s("vvColorColors",(e=>e.vvColor.colors),m),new o.E("vvColorFallback",(e=>e.vvColor.fallback))),r.code.add(l.H`
425
511
  vec4 interpolateVVColor(float value) {
426
512
  if (isnan(value)) {
427
513
  return vvColorFallback;
@@ -448,21 +534,21 @@ vec4 vvLocalNormal(vec3 _normal) { return vec4(_normal, 1.0); }`),t.vvColor?(r.c
448
534
  vec4 vvColor() {
449
535
  return vvGetColor(instanceFeatureAttribute);
450
536
  }`:"vec4 vvColor() { return vec4(1.0); }"}
451
- `)):r.code.add(l.H`vec4 vvColor() { return vec4(1.0); }`)}},43616:(e,t,r)=>{r.d(t,{MB:()=>s,Um:()=>c,kE:()=>a});var i=r(4576),n=r(34727),o=r(77194);function a(e,t,r,i,a){let s=(r.screenLength||0)*e.pixelRatio;null!=a&&(s=(0,o.hs)(s,i,t,a));const c=s*Math.tan(.5*e.fovY)/(.5*e.fullHeight);return(0,n.qE)(c*t,r.minWorldLength||0,null!=r.maxWorldLength?r.maxWorldLength:1/0)}function s(e,t){let r=!1;for(const n in t){const o=t[n];void 0!==o&&(Array.isArray(o)?Array.isArray(e[n])&&(0,i.aI)(o,e[n])||(e[n]=o.slice(),r=!0):e[n]!==o&&(r=!0,e[n]=o))}return r}const c={multiply:1,ignore:2,replace:3,tint:4}},46686:(e,t,r)=>{r.d(t,{i$:()=>l,oD:()=>d,xJ:()=>c});var i=r(49255),n=r(33752),o=r(77108),a=r(31821);function s(e){e.varyings.add("linearDepth","float",{invariant:!0})}function c(e){e.vertex.uniforms.add(new o.E("nearFar",(e=>e.camera.nearFar)))}function l(e){e.vertex.code.add(a.H`float calculateLinearDepth(vec2 nearFar,float z) {
537
+ `)):r.code.add(l.H`vec4 vvColor() { return vec4(1.0); }`)}},43616:(e,t,r)=>{r.d(t,{MB:()=>s,Um:()=>c,kE:()=>a});var i=r(4576),o=r(34727),n=r(77194);function a(e,t,r,i,a){let s=(r.screenLength||0)*e.pixelRatio;null!=a&&(s=(0,n.hs)(s,i,t,a));const c=s*Math.tan(.5*e.fovY)/(.5*e.fullHeight);return(0,o.qE)(c*t,r.minWorldLength||0,null!=r.maxWorldLength?r.maxWorldLength:1/0)}function s(e,t){let r=!1;for(const o in t){const n=t[o];void 0!==n&&(Array.isArray(n)?Array.isArray(e[o])&&(0,i.aI)(n,e[o])||(e[o]=n.slice(),r=!0):e[o]!==n&&(r=!0,e[o]=n))}return r}const c={multiply:1,ignore:2,replace:3,tint:4}},46686:(e,t,r)=>{r.d(t,{i$:()=>l,oD:()=>d,xJ:()=>c});var i=r(49255),o=r(33752),n=r(77108),a=r(31821);function s(e){e.varyings.add("linearDepth","float",{invariant:!0})}function c(e){e.vertex.uniforms.add(new n.E("nearFar",(e=>e.camera.nearFar)))}function l(e){e.vertex.code.add(a.H`float calculateLinearDepth(vec2 nearFar,float z) {
452
538
  return (-z - nearFar[0]) / (nearFar[1] - nearFar[0]);
453
- }`)}function d(e,t){const{vertex:r}=e;switch(t.output){case i.V.Color:case i.V.ColorEmission:if(t.receiveShadows)return s(e),void r.code.add(a.H`void forwardLinearDepth() { linearDepth = gl_Position.w; }`);break;case i.V.Shadow:case i.V.ShadowHighlight:case i.V.ShadowExcludeHighlight:case i.V.ViewshedShadow:return e.include(n.em,t),s(e),c(e),l(e),void r.code.add(a.H`void forwardLinearDepth() {
539
+ }`)}function d(e,t){const{vertex:r}=e;switch(t.output){case i.V.Color:case i.V.ColorEmission:if(t.receiveShadows)return s(e),void r.code.add(a.H`void forwardLinearDepth() { linearDepth = gl_Position.w; }`);break;case i.V.Shadow:case i.V.ShadowHighlight:case i.V.ShadowExcludeHighlight:case i.V.ViewshedShadow:return e.include(o.em,t),s(e),c(e),l(e),void r.code.add(a.H`void forwardLinearDepth() {
454
540
  linearDepth = calculateLinearDepth(nearFar, vPosition_view.z);
455
- }`)}r.code.add(a.H`void forwardLinearDepth() {}`)}},47286:(e,t,r)=>{r.d(t,{G:()=>o});var i=r(69270),n=r(74333);class o extends n.n{constructor(e,t){super(e,"vec2",i.c.Pass,((r,i,n)=>r.setUniform2fv(e,t(i,n))))}}},48833:(e,t,r)=>{r.d(t,{g:()=>U}),r(44208);var i=r(49186),n=r(65529),o=r(97768),a=r(74887),s=r(34275),c=r(84952),l=r(99677),d=r(56058),u=r(89192),h=r(2741);let m;var f=r(92993),p=r(63907),v=r(30164),g=r(42293);let _=null,T=null;async function x(){return null==T&&(m??=(async()=>{const e=await r.e(9321).then(r.bind(r,49321)),t=await e.default({locateFile:e=>(0,h.s)(`esri/libs/basisu/${e}`)});return t.initializeBasis(),t})(),T=m,_=await T),T}function b(e,t,r,i,n){const o=(0,g.IB)(t?p.CQ.COMPRESSED_RGBA8_ETC2_EAC:p.CQ.COMPRESSED_RGB8_ETC2),a=n&&e>1?(4**e-1)/(3*4**(e-1)):1;return Math.ceil(r*i*o*a)}function A(e){return e.getNumImages()>=1&&!e.isUASTC()}function E(e){return e.getFaces()>=1&&e.isETC1S()}function S(e,t,r,i,n,o,a,s){const{compressedTextureETC:c,compressedTextureS3TC:l}=e.capabilities,[d,u]=c?i?[f.n.ETC2_RGBA,p.CQ.COMPRESSED_RGBA8_ETC2_EAC]:[f.n.ETC1_RGB,p.CQ.COMPRESSED_RGB8_ETC2]:l?i?[f.n.BC3_RGBA,p.CQ.COMPRESSED_RGBA_S3TC_DXT5_EXT]:[f.n.BC1_RGB,p.CQ.COMPRESSED_RGB_S3TC_DXT1_EXT]:[f.n.RGBA32,p.Ab.RGBA],h=t.hasMipmap?r:Math.min(1,r),m=[];for(let e=0;e<h;e++)m.push(new Uint8Array(a(e,d))),s(e,d,m[e]);return t.internalFormat=u,t.hasMipmap=m.length>1,t.samplingMode=t.hasMipmap?p.Cj.LINEAR_MIPMAP_LINEAR:p.Cj.LINEAR,t.width=n,t.height=o,new v.g(e,t,{type:"compressed",levels:m})}var M=r(69720),C=r(96672),w=r(53966);const R=()=>w.A.getLogger("esri.views.3d.webgl-engine.lib.DDSUtil");function I(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}const O=I("DXT1"),y=I("DXT3"),N=I("DXT5");function P(e,t){return t=16*Math.floor(t/16),Math.min(16*Math.round(e/16),t)}function L(e,{maxPreferredTextureSize:t,maxTextureSize:r}){const i=Math.max(e.width,e.height),n=e.width*e.height,o=t*t;if(i<=r&&n<=o)return e;const a=Math.min(Math.sqrt(o/n),r/i);return D(e,P(Math.round(e.width*a),r),P(Math.round(e.height*a),r))}function D(e,t,r){if(e instanceof ImageData)return D(function(e){const t=document.createElement("canvas");t.width=e.width,t.height=e.height;const r=t.getContext("2d");if(null==r)throw new i.A("Failed to create 2d context from HTMLCanvasElement");return r.putImageData(e,0,0),t}(e),t,r);const n=document.createElement("canvas");return n.width=t,n.height=r,n.getContext("2d").drawImage(e,0,0,n.width,n.height),n}var H,F=r(620),B=r(67171);class U extends M.J{constructor(e,t){super(),this._data=e,this.type=C.X.Texture,this.events=new n.A,this._parameters={...z,...t},this._startPreload(e)}dispose(){this.unload(),this._data=this.frameUpdate=void 0}_startPreload(e){e instanceof HTMLVideoElement?(this.frameUpdate=t=>this._frameUpdate(e,t),this._startPreloadVideoElement(e)):e instanceof HTMLImageElement&&this._startPreloadImageElement(e)}_startPreloadVideoElement(e){if(!((0,c.w8)(e.src)||"auto"===e.preload&&e.crossOrigin)){e.preload="auto",e.crossOrigin="anonymous";const t=!e.paused;if(e.src=e.src,t&&e.autoplay){const t=()=>{e.removeEventListener("canplay",t),e.play()};e.addEventListener("canplay",t)}}}_startPreloadImageElement(e){(0,c.DB)(e.src)||(0,c.w8)(e.src)||e.crossOrigin||(e.crossOrigin="anonymous",e.src=e.src)}_createDescriptor(e){const t=new B.R;return t.wrapMode=this._parameters.wrap??p.pF.REPEAT,t.flipped=!this._parameters.noUnpackFlip,t.samplingMode=this._parameters.mipmap?p.Cj.LINEAR_MIPMAP_LINEAR:p.Cj.LINEAR,t.hasMipmap=!!this._parameters.mipmap,t.preMultiplyAlpha=!!this._parameters.preMultiplyAlpha,t.maxAnisotropy=this._parameters.maxAnisotropy??(this._parameters.mipmap?e.parameters.maxMaxAnisotropy:1),t}get glTexture(){return this._glTexture??this._emptyTexture}get loaded(){return null!=this._glTexture}get usedMemory(){return this._glTexture?.usedMemory||function(e,t){if(null==e)return 0;if((0,s.mw)(e)||(0,s.mg)(e))return t.encoding===u.JS.KTX2_ENCODING?function(e,t){if(null==_)return e.byteLength;const r=new _.KTX2File(new Uint8Array(e)),i=E(r)?b(r.getLevels(),r.getHasAlpha(),r.getWidth(),r.getHeight(),t):0;return r.close(),r.delete(),i}(e,!!t.mipmap):t.encoding===u.JS.BASIS_ENCODING?function(e,t){if(null==_)return e.byteLength;const r=new _.BasisFile(new Uint8Array(e)),i=A(r)?b(r.getNumLevels(0),r.getHasAlpha(),r.getImageWidth(0,0),r.getImageHeight(0,0),t):0;return r.close(),r.delete(),i}(e,!!t.mipmap):e.byteLength;const{width:r,height:i}=e instanceof Image||e instanceof ImageData||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement?G(e):t;return(t.mipmap?4/3:1)*r*i*(t.components||4)||0}(this._data,this._parameters)}load(e){if(this._loadingPromise)return this._loadingPromise;if(this._glTexture)return this._glTexture;const t=this._data;return null==t?(this._glTexture=new v.g(e,this._createDescriptor(e),null),this._glTexture):(this._emptyTexture=e.emptyTexture,this._parameters.reloadable||(this._data=void 0),"string"==typeof t?this._loadFromURL(e,t):t instanceof Image?this._loadFromImageElement(e,t):t instanceof HTMLVideoElement?this._loadFromVideoElement(e,t):t instanceof ImageData||t instanceof HTMLCanvasElement?this._loadFromImage(e,t):(0,s.mg)(t)&&this._parameters.encoding===u.JS.DDS_ENCODING?this._loadFromDDSData(e,t):(0,s.mw)(t)&&this._parameters.encoding===u.JS.DDS_ENCODING?this._loadFromDDSData(e,new Uint8Array(t)):((0,s.mw)(t)||(0,s.mg)(t))&&this._parameters.encoding===u.JS.KTX2_ENCODING?this._loadFromKTX2(e,t):((0,s.mw)(t)||(0,s.mg)(t))&&this._parameters.encoding===u.JS.BASIS_ENCODING?this._loadFromBasis(e,t):(0,s.mg)(t)?this._loadFromPixelData(e,t):(0,s.mw)(t)?this._loadFromPixelData(e,new Uint8Array(t)):null)}_frameUpdate(e,t){return null==this._glTexture||e.readyState<H.HAVE_CURRENT_DATA||t===e.currentTime?t:(this._glTexture.setData(e),this._glTexture.descriptor.hasMipmap&&this._glTexture.generateMipmap(),this._parameters.updateCallback&&this._parameters.updateCallback(),e.currentTime)}_loadFromDDSData(e,t){return this._glTexture=function(e,t,r){const i=function(e,t){const r=new Int32Array(e.buffer,e.byteOffset,31);if(542327876!==r[0])return R().error("Invalid magic number in DDS header"),null;if(!(4&r[20]))return R().error("Unsupported format, must contain a FourCC code"),null;const i=r[21];let n,o;switch(i){case O:n=8,o=p.CQ.COMPRESSED_RGB_S3TC_DXT1_EXT;break;case y:n=16,o=p.CQ.COMPRESSED_RGBA_S3TC_DXT3_EXT;break;case N:n=16,o=p.CQ.COMPRESSED_RGBA_S3TC_DXT5_EXT;break;default:return R().error("Unsupported FourCC code:",function(e){return String.fromCharCode(255&e,e>>8&255,e>>16&255,e>>24&255)}(i)),null}let a=1,s=r[4],c=r[3];(3&s||3&c)&&(R().warn("Rounding up compressed texture size to nearest multiple of 4."),s=s+3&-4,c=c+3&-4);const l=s,d=c;let u,h;131072&r[2]&&!1!==t&&(a=Math.max(1,r[7]));let m=e.byteOffset+r[1]+4;const f=[];for(let t=0;t<a;++t)h=(s+3>>2)*(c+3>>2)*n,u=new Uint8Array(e.buffer,m,h),f.push(u),m+=h,s=Math.max(1,s>>1),c=Math.max(1,c>>1);return{textureData:{type:"compressed",levels:f},internalFormat:o,width:l,height:d}}(r,t.hasMipmap??!1);if(null==i)throw new Error("DDS texture data is null");const{textureData:n,internalFormat:o,width:a,height:s}=i;return t.samplingMode=n.levels.length>1?p.Cj.LINEAR_MIPMAP_LINEAR:p.Cj.LINEAR,t.hasMipmap=n.levels.length>1,t.internalFormat=o,t.width=a,t.height=s,new v.g(e,t,n)}(e,this._createDescriptor(e),t),this._emptyTexture=null,this._glTexture}_loadFromKTX2(e,t){return this._loadAsync((()=>async function(e,t,r){null==_&&(_=await x());const i=new _.KTX2File(new Uint8Array(r));if(!E(i))return null;i.startTranscoding();const n=S(e,t,i.getLevels(),i.getHasAlpha(),i.getWidth(),i.getHeight(),((e,t)=>i.getImageTranscodedSizeInBytes(e,0,0,t)),((e,t,r)=>i.transcodeImage(r,e,0,0,t,0,-1,-1)));return i.close(),i.delete(),n}(e,this._createDescriptor(e),t).then((e=>(this._glTexture=e,e)))))}_loadFromBasis(e,t){return this._loadAsync((()=>async function(e,t,r){null==_&&(_=await x());const i=new _.BasisFile(new Uint8Array(r));if(!A(i))return null;i.startTranscoding();const n=S(e,t,i.getNumLevels(0),i.getHasAlpha(),i.getImageWidth(0,0),i.getImageHeight(0,0),((e,t)=>i.getImageTranscodedSizeInBytes(0,e,t)),((e,t,r)=>i.transcodeImage(r,0,e,t,0,0)));return i.close(),i.delete(),n}(e,this._createDescriptor(e),t).then((e=>(this._glTexture=e,e)))))}_loadFromPixelData(e,t){(0,F.vA)(this._parameters.width>0&&this._parameters.height>0);const r=this._createDescriptor(e);return r.pixelFormat=1===this._parameters.components?p.Ab.LUMINANCE:3===this._parameters.components?p.Ab.RGB:p.Ab.RGBA,r.width=this._parameters.width??0,r.height=this._parameters.height??0,this._glTexture=new v.g(e,r,t),this._glTexture}_loadFromURL(e,t){return this._loadAsync((async r=>{const i=await(0,l.D)(t,{signal:r});return(0,a.Te)(r),this._loadFromImage(e,i)}))}_loadFromImageElement(e,t){return t.complete?this._loadFromImage(e,t):this._loadAsync((async r=>{const i=await(0,d.Sx)(t,t.src,!1,r);return(0,a.Te)(r),this._loadFromImage(e,i)}))}_loadFromVideoElement(e,t){return t.readyState>=H.HAVE_CURRENT_DATA?this._loadFromImage(e,t):this._loadFromVideoElementAsync(e,t)}_loadFromVideoElementAsync(e,t){return this._loadAsync((r=>new Promise(((n,s)=>{const c=()=>{t.removeEventListener("loadeddata",l),t.removeEventListener("error",d),(0,o.xt)(u)},l=()=>{t.readyState>=H.HAVE_CURRENT_DATA&&(c(),n(this._loadFromImage(e,t)))},d=e=>{c(),s(e||new i.A("Failed to load video"))};t.addEventListener("loadeddata",l),t.addEventListener("error",d);const u=(0,a.u7)(r,(()=>d((0,a.NK)())))}))))}_loadFromImage(e,t){let r=t;r instanceof HTMLVideoElement||(r=L(r,e.parameters));const i=G(r);this._parameters.width=i.width,this._parameters.height=i.height;const n=this._createDescriptor(e);return n.pixelFormat=3===this._parameters.components?p.Ab.RGB:p.Ab.RGBA,n.width=i.width,n.height=i.height,n.shouldCompress=this._parameters.shouldCompress,this._glTexture=new v.g(e,n,r),this._emptyTexture=null,this._glTexture}_loadAsync(e){const t=new AbortController;this._loadingController=t;const r=e(t.signal);this._loadingPromise=r;const i=()=>{this._loadingController===t&&(this._loadingController=null),this._loadingPromise===r&&(this._loadingPromise=null),this._emptyTexture=null};return r.then(i,i),r}unload(){if(this._glTexture=(0,o.WD)(this._glTexture),this._emptyTexture=null,null!=this._loadingController){const e=this._loadingController;this._loadingController=null,this._loadingPromise=null,e.abort()}this.events.emit("unloaded")}get parameters(){return this._parameters}}function G(e){return e instanceof HTMLVideoElement?{width:e.videoWidth,height:e.videoHeight}:e}!function(e){e[e.HAVE_NOTHING=0]="HAVE_NOTHING",e[e.HAVE_METADATA=1]="HAVE_METADATA",e[e.HAVE_CURRENT_DATA=2]="HAVE_CURRENT_DATA",e[e.HAVE_FUTURE_DATA=3]="HAVE_FUTURE_DATA",e[e.HAVE_ENOUGH_DATA=4]="HAVE_ENOUGH_DATA"}(H||(H={}));const z={wrap:{s:p.pF.REPEAT,t:p.pF.REPEAT},mipmap:!0,noUnpackFlip:!1,preMultiplyAlpha:!1,shouldCompress:!1}},49788:(e,t,r)=>{r.d(t,{Q:()=>i});const i=1/255.5},51406:(e,t,r)=>{r.d(t,{MU:()=>l,O1:()=>d,QM:()=>u,Sx:()=>c,q2:()=>s});var i=r(29242),n=r(53466),o=r(31821),a=r(35644);function s(e,t){t.hasColorTextureTransform?(e.varyings.add("colorUV","vec2"),e.vertex.uniforms.add(new a.k("colorTextureTransformMatrix",(e=>e.colorTextureTransformMatrix??i.zK))).code.add(o.H`void forwardColorUV(){
541
+ }`)}r.code.add(a.H`void forwardLinearDepth() {}`)}},47286:(e,t,r)=>{r.d(t,{G:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec2",i.c.Pass,((r,i,o)=>r.setUniform2fv(e,t(i,o))))}}},48833:(e,t,r)=>{r.d(t,{g:()=>U}),r(44208);var i=r(49186),o=r(65529),n=r(97768),a=r(74887),s=r(34275),c=r(84952),l=r(99677),d=r(56058),u=r(89192),h=r(2741);let m;var p=r(92993),f=r(63907),v=r(30164),g=r(42293);let _=null,T=null;async function x(){return null==T&&(m??=(async()=>{const e=await r.e(9321).then(r.bind(r,49321)),t=await e.default({locateFile:e=>(0,h.s)(`esri/libs/basisu/${e}`)});return t.initializeBasis(),t})(),T=m,_=await T),T}function b(e,t,r,i,o){const n=(0,g.IB)(t?f.CQ.COMPRESSED_RGBA8_ETC2_EAC:f.CQ.COMPRESSED_RGB8_ETC2),a=o&&e>1?(4**e-1)/(3*4**(e-1)):1;return Math.ceil(r*i*n*a)}function A(e){return e.getNumImages()>=1&&!e.isUASTC()}function E(e){return e.getFaces()>=1&&e.isETC1S()}function S(e,t,r,i,o,n,a,s){const{compressedTextureETC:c,compressedTextureS3TC:l}=e.capabilities,[d,u]=c?i?[p.n.ETC2_RGBA,f.CQ.COMPRESSED_RGBA8_ETC2_EAC]:[p.n.ETC1_RGB,f.CQ.COMPRESSED_RGB8_ETC2]:l?i?[p.n.BC3_RGBA,f.CQ.COMPRESSED_RGBA_S3TC_DXT5_EXT]:[p.n.BC1_RGB,f.CQ.COMPRESSED_RGB_S3TC_DXT1_EXT]:[p.n.RGBA32,f.Ab.RGBA],h=t.hasMipmap?r:Math.min(1,r),m=[];for(let e=0;e<h;e++)m.push(new Uint8Array(a(e,d))),s(e,d,m[e]);return t.internalFormat=u,t.hasMipmap=m.length>1,t.samplingMode=t.hasMipmap?f.Cj.LINEAR_MIPMAP_LINEAR:f.Cj.LINEAR,t.width=o,t.height=n,new v.g(e,t,{type:"compressed",levels:m})}var M=r(69720),w=r(96672),C=r(53966);const R=()=>C.A.getLogger("esri.views.3d.webgl-engine.lib.DDSUtil");function I(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}const O=I("DXT1"),y=I("DXT3"),N=I("DXT5");function P(e,t){return t=16*Math.floor(t/16),Math.min(16*Math.round(e/16),t)}function D(e,{maxPreferredTextureSize:t,maxTextureSize:r}){const i=Math.max(e.width,e.height),o=e.width*e.height,n=t*t;if(i<=r&&o<=n)return e;const a=Math.min(Math.sqrt(n/o),r/i);return L(e,P(Math.round(e.width*a),r),P(Math.round(e.height*a),r))}function L(e,t,r){if(e instanceof ImageData)return L(function(e){const t=document.createElement("canvas");t.width=e.width,t.height=e.height;const r=t.getContext("2d");if(null==r)throw new i.A("Failed to create 2d context from HTMLCanvasElement");return r.putImageData(e,0,0),t}(e),t,r);const o=document.createElement("canvas");return o.width=t,o.height=r,o.getContext("2d").drawImage(e,0,0,o.width,o.height),o}var H,F=r(620),B=r(67171);class U extends M.J{constructor(e,t){super(),this._data=e,this.type=w.X.Texture,this.events=new o.A,this._parameters={...z,...t},this._startPreload(e)}dispose(){this.unload(),this._data=this.frameUpdate=void 0}_startPreload(e){e instanceof HTMLVideoElement?(this.frameUpdate=t=>this._frameUpdate(e,t),this._startPreloadVideoElement(e)):e instanceof HTMLImageElement&&this._startPreloadImageElement(e)}_startPreloadVideoElement(e){if(!((0,c.w8)(e.src)||"auto"===e.preload&&e.crossOrigin)){e.preload="auto",e.crossOrigin="anonymous";const t=!e.paused;if(e.src=e.src,t&&e.autoplay){const t=()=>{e.removeEventListener("canplay",t),e.play()};e.addEventListener("canplay",t)}}}_startPreloadImageElement(e){(0,c.DB)(e.src)||(0,c.w8)(e.src)||e.crossOrigin||(e.crossOrigin="anonymous",e.src=e.src)}_createDescriptor(e){const t=new B.R;return t.wrapMode=this._parameters.wrap??f.pF.REPEAT,t.flipped=!this._parameters.noUnpackFlip,t.samplingMode=this._parameters.mipmap?f.Cj.LINEAR_MIPMAP_LINEAR:f.Cj.LINEAR,t.hasMipmap=!!this._parameters.mipmap,t.preMultiplyAlpha=!!this._parameters.preMultiplyAlpha,t.maxAnisotropy=this._parameters.maxAnisotropy??(this._parameters.mipmap?e.parameters.maxMaxAnisotropy:1),t}get glTexture(){return this._glTexture??this._emptyTexture}get loaded(){return null!=this._glTexture}get usedMemory(){return this._glTexture?.usedMemory||function(e,t){if(null==e)return 0;if((0,s.mw)(e)||(0,s.mg)(e))return t.encoding===u.JS.KTX2_ENCODING?function(e,t){if(null==_)return e.byteLength;const r=new _.KTX2File(new Uint8Array(e)),i=E(r)?b(r.getLevels(),r.getHasAlpha(),r.getWidth(),r.getHeight(),t):0;return r.close(),r.delete(),i}(e,!!t.mipmap):t.encoding===u.JS.BASIS_ENCODING?function(e,t){if(null==_)return e.byteLength;const r=new _.BasisFile(new Uint8Array(e)),i=A(r)?b(r.getNumLevels(0),r.getHasAlpha(),r.getImageWidth(0,0),r.getImageHeight(0,0),t):0;return r.close(),r.delete(),i}(e,!!t.mipmap):e.byteLength;const{width:r,height:i}=e instanceof Image||e instanceof ImageData||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement?G(e):t;return(t.mipmap?4/3:1)*r*i*(t.components||4)||0}(this._data,this._parameters)}load(e){if(this._loadingPromise)return this._loadingPromise;if(this._glTexture)return this._glTexture;const t=this._data;return null==t?(this._glTexture=new v.g(e,this._createDescriptor(e),null),this._glTexture):(this._emptyTexture=e.emptyTexture,this._parameters.reloadable||(this._data=void 0),"string"==typeof t?this._loadFromURL(e,t):t instanceof Image?this._loadFromImageElement(e,t):t instanceof HTMLVideoElement?this._loadFromVideoElement(e,t):t instanceof ImageData||t instanceof HTMLCanvasElement?this._loadFromImage(e,t):(0,s.mg)(t)&&this._parameters.encoding===u.JS.DDS_ENCODING?this._loadFromDDSData(e,t):(0,s.mw)(t)&&this._parameters.encoding===u.JS.DDS_ENCODING?this._loadFromDDSData(e,new Uint8Array(t)):((0,s.mw)(t)||(0,s.mg)(t))&&this._parameters.encoding===u.JS.KTX2_ENCODING?this._loadFromKTX2(e,t):((0,s.mw)(t)||(0,s.mg)(t))&&this._parameters.encoding===u.JS.BASIS_ENCODING?this._loadFromBasis(e,t):(0,s.mg)(t)?this._loadFromPixelData(e,t):(0,s.mw)(t)?this._loadFromPixelData(e,new Uint8Array(t)):null)}_frameUpdate(e,t){return null==this._glTexture||e.readyState<H.HAVE_CURRENT_DATA||t===e.currentTime?t:(this._glTexture.setData(e),this._glTexture.descriptor.hasMipmap&&this._glTexture.generateMipmap(),this._parameters.updateCallback&&this._parameters.updateCallback(),e.currentTime)}_loadFromDDSData(e,t){return this._glTexture=function(e,t,r){const i=function(e,t){const r=new Int32Array(e.buffer,e.byteOffset,31);if(542327876!==r[0])return R().error("Invalid magic number in DDS header"),null;if(!(4&r[20]))return R().error("Unsupported format, must contain a FourCC code"),null;const i=r[21];let o,n;switch(i){case O:o=8,n=f.CQ.COMPRESSED_RGB_S3TC_DXT1_EXT;break;case y:o=16,n=f.CQ.COMPRESSED_RGBA_S3TC_DXT3_EXT;break;case N:o=16,n=f.CQ.COMPRESSED_RGBA_S3TC_DXT5_EXT;break;default:return R().error("Unsupported FourCC code:",function(e){return String.fromCharCode(255&e,e>>8&255,e>>16&255,e>>24&255)}(i)),null}let a=1,s=r[4],c=r[3];(3&s||3&c)&&(R().warn("Rounding up compressed texture size to nearest multiple of 4."),s=s+3&-4,c=c+3&-4);const l=s,d=c;let u,h;131072&r[2]&&!1!==t&&(a=Math.max(1,r[7]));let m=e.byteOffset+r[1]+4;const p=[];for(let t=0;t<a;++t)h=(s+3>>2)*(c+3>>2)*o,u=new Uint8Array(e.buffer,m,h),p.push(u),m+=h,s=Math.max(1,s>>1),c=Math.max(1,c>>1);return{textureData:{type:"compressed",levels:p},internalFormat:n,width:l,height:d}}(r,t.hasMipmap??!1);if(null==i)throw new Error("DDS texture data is null");const{textureData:o,internalFormat:n,width:a,height:s}=i;return t.samplingMode=o.levels.length>1?f.Cj.LINEAR_MIPMAP_LINEAR:f.Cj.LINEAR,t.hasMipmap=o.levels.length>1,t.internalFormat=n,t.width=a,t.height=s,new v.g(e,t,o)}(e,this._createDescriptor(e),t),this._emptyTexture=null,this._glTexture}_loadFromKTX2(e,t){return this._loadAsync((()=>async function(e,t,r){null==_&&(_=await x());const i=new _.KTX2File(new Uint8Array(r));if(!E(i))return null;i.startTranscoding();const o=S(e,t,i.getLevels(),i.getHasAlpha(),i.getWidth(),i.getHeight(),((e,t)=>i.getImageTranscodedSizeInBytes(e,0,0,t)),((e,t,r)=>i.transcodeImage(r,e,0,0,t,0,-1,-1)));return i.close(),i.delete(),o}(e,this._createDescriptor(e),t).then((e=>(this._glTexture=e,e)))))}_loadFromBasis(e,t){return this._loadAsync((()=>async function(e,t,r){null==_&&(_=await x());const i=new _.BasisFile(new Uint8Array(r));if(!A(i))return null;i.startTranscoding();const o=S(e,t,i.getNumLevels(0),i.getHasAlpha(),i.getImageWidth(0,0),i.getImageHeight(0,0),((e,t)=>i.getImageTranscodedSizeInBytes(0,e,t)),((e,t,r)=>i.transcodeImage(r,0,e,t,0,0)));return i.close(),i.delete(),o}(e,this._createDescriptor(e),t).then((e=>(this._glTexture=e,e)))))}_loadFromPixelData(e,t){(0,F.vA)(this._parameters.width>0&&this._parameters.height>0);const r=this._createDescriptor(e);return r.pixelFormat=1===this._parameters.components?f.Ab.LUMINANCE:3===this._parameters.components?f.Ab.RGB:f.Ab.RGBA,r.width=this._parameters.width??0,r.height=this._parameters.height??0,this._glTexture=new v.g(e,r,t),this._glTexture}_loadFromURL(e,t){return this._loadAsync((async r=>{const i=await(0,l.D)(t,{signal:r});return(0,a.Te)(r),this._loadFromImage(e,i)}))}_loadFromImageElement(e,t){return t.complete?this._loadFromImage(e,t):this._loadAsync((async r=>{const i=await(0,d.Sx)(t,t.src,!1,r);return(0,a.Te)(r),this._loadFromImage(e,i)}))}_loadFromVideoElement(e,t){return t.readyState>=H.HAVE_CURRENT_DATA?this._loadFromImage(e,t):this._loadFromVideoElementAsync(e,t)}_loadFromVideoElementAsync(e,t){return this._loadAsync((r=>new Promise(((o,s)=>{const c=()=>{t.removeEventListener("loadeddata",l),t.removeEventListener("error",d),(0,n.xt)(u)},l=()=>{t.readyState>=H.HAVE_CURRENT_DATA&&(c(),o(this._loadFromImage(e,t)))},d=e=>{c(),s(e||new i.A("Failed to load video"))};t.addEventListener("loadeddata",l),t.addEventListener("error",d);const u=(0,a.u7)(r,(()=>d((0,a.NK)())))}))))}_loadFromImage(e,t){let r=t;r instanceof HTMLVideoElement||(r=D(r,e.parameters));const i=G(r);this._parameters.width=i.width,this._parameters.height=i.height;const o=this._createDescriptor(e);return o.pixelFormat=3===this._parameters.components?f.Ab.RGB:f.Ab.RGBA,o.width=i.width,o.height=i.height,o.shouldCompress=this._parameters.shouldCompress,this._glTexture=new v.g(e,o,r),this._emptyTexture=null,this._glTexture}_loadAsync(e){const t=new AbortController;this._loadingController=t;const r=e(t.signal);this._loadingPromise=r;const i=()=>{this._loadingController===t&&(this._loadingController=null),this._loadingPromise===r&&(this._loadingPromise=null),this._emptyTexture=null};return r.then(i,i),r}unload(){if(this._glTexture=(0,n.WD)(this._glTexture),this._emptyTexture=null,null!=this._loadingController){const e=this._loadingController;this._loadingController=null,this._loadingPromise=null,e.abort()}this.events.emit("unloaded")}get parameters(){return this._parameters}}function G(e){return e instanceof HTMLVideoElement?{width:e.videoWidth,height:e.videoHeight}:e}!function(e){e[e.HAVE_NOTHING=0]="HAVE_NOTHING",e[e.HAVE_METADATA=1]="HAVE_METADATA",e[e.HAVE_CURRENT_DATA=2]="HAVE_CURRENT_DATA",e[e.HAVE_FUTURE_DATA=3]="HAVE_FUTURE_DATA",e[e.HAVE_ENOUGH_DATA=4]="HAVE_ENOUGH_DATA"}(H||(H={}));const z={wrap:{s:f.pF.REPEAT,t:f.pF.REPEAT},mipmap:!0,noUnpackFlip:!1,preMultiplyAlpha:!1,shouldCompress:!1}},49788:(e,t,r)=>{r.d(t,{Q:()=>i});const i=1/255.5},51406:(e,t,r)=>{r.d(t,{MU:()=>l,O1:()=>d,QM:()=>u,Sx:()=>c,q2:()=>s});var i=r(29242),o=r(53466),n=r(31821),a=r(35644);function s(e,t){t.hasColorTextureTransform?(e.varyings.add("colorUV","vec2"),e.vertex.uniforms.add(new a.k("colorTextureTransformMatrix",(e=>e.colorTextureTransformMatrix??i.zK))).code.add(n.H`void forwardColorUV(){
456
542
  colorUV = (colorTextureTransformMatrix * vec3(vuv0, 1.0)).xy;
457
- }`)):e.vertex.code.add(o.H`void forwardColorUV(){}`)}function c(e,t){t.hasNormalTextureTransform&&t.textureCoordinateType!==n.I.None?(e.varyings.add("normalUV","vec2"),e.vertex.uniforms.add(new a.k("normalTextureTransformMatrix",(e=>e.normalTextureTransformMatrix??i.zK))).code.add(o.H`void forwardNormalUV(){
543
+ }`)):e.vertex.code.add(n.H`void forwardColorUV(){}`)}function c(e,t){t.hasNormalTextureTransform&&t.textureCoordinateType!==o.I.None?(e.varyings.add("normalUV","vec2"),e.vertex.uniforms.add(new a.k("normalTextureTransformMatrix",(e=>e.normalTextureTransformMatrix??i.zK))).code.add(n.H`void forwardNormalUV(){
458
544
  normalUV = (normalTextureTransformMatrix * vec3(vuv0, 1.0)).xy;
459
- }`)):e.vertex.code.add(o.H`void forwardNormalUV(){}`)}function l(e,t){t.hasEmissionTextureTransform&&t.textureCoordinateType!==n.I.None?(e.varyings.add("emissiveUV","vec2"),e.vertex.uniforms.add(new a.k("emissiveTextureTransformMatrix",(e=>e.emissiveTextureTransformMatrix??i.zK))).code.add(o.H`void forwardEmissiveUV(){
545
+ }`)):e.vertex.code.add(n.H`void forwardNormalUV(){}`)}function l(e,t){t.hasEmissionTextureTransform&&t.textureCoordinateType!==o.I.None?(e.varyings.add("emissiveUV","vec2"),e.vertex.uniforms.add(new a.k("emissiveTextureTransformMatrix",(e=>e.emissiveTextureTransformMatrix??i.zK))).code.add(n.H`void forwardEmissiveUV(){
460
546
  emissiveUV = (emissiveTextureTransformMatrix * vec3(vuv0, 1.0)).xy;
461
- }`)):e.vertex.code.add(o.H`void forwardEmissiveUV(){}`)}function d(e,t){t.hasOcclusionTextureTransform&&t.textureCoordinateType!==n.I.None?(e.varyings.add("occlusionUV","vec2"),e.vertex.uniforms.add(new a.k("occlusionTextureTransformMatrix",(e=>e.occlusionTextureTransformMatrix??i.zK))).code.add(o.H`void forwardOcclusionUV(){
547
+ }`)):e.vertex.code.add(n.H`void forwardEmissiveUV(){}`)}function d(e,t){t.hasOcclusionTextureTransform&&t.textureCoordinateType!==o.I.None?(e.varyings.add("occlusionUV","vec2"),e.vertex.uniforms.add(new a.k("occlusionTextureTransformMatrix",(e=>e.occlusionTextureTransformMatrix??i.zK))).code.add(n.H`void forwardOcclusionUV(){
462
548
  occlusionUV = (occlusionTextureTransformMatrix * vec3(vuv0, 1.0)).xy;
463
- }`)):e.vertex.code.add(o.H`void forwardOcclusionUV(){}`)}function u(e,t){t.hasMetallicRoughnessTextureTransform&&t.textureCoordinateType!==n.I.None?(e.varyings.add("metallicRoughnessUV","vec2"),e.vertex.uniforms.add(new a.k("metallicRoughnessTextureTransformMatrix",(e=>e.metallicRoughnessTextureTransformMatrix??i.zK))).code.add(o.H`void forwardMetallicRoughnessUV(){
549
+ }`)):e.vertex.code.add(n.H`void forwardOcclusionUV(){}`)}function u(e,t){t.hasMetallicRoughnessTextureTransform&&t.textureCoordinateType!==o.I.None?(e.varyings.add("metallicRoughnessUV","vec2"),e.vertex.uniforms.add(new a.k("metallicRoughnessTextureTransformMatrix",(e=>e.metallicRoughnessTextureTransformMatrix??i.zK))).code.add(n.H`void forwardMetallicRoughnessUV(){
464
550
  metallicRoughnessUV = (metallicRoughnessTextureTransformMatrix * vec3(vuv0, 1.0)).xy;
465
- }`)):e.vertex.code.add(o.H`void forwardMetallicRoughnessUV(){}`)}},51976:(e,t,r)=>{r.d(t,{K:()=>s,W:()=>c});var i=r(49186),n=r(4576);class o{constructor(e){this._bits=[...e]}equals(e){return(0,n.aI)(this._bits,e.bits)}get code(){return this._code??=String.fromCharCode(...this._bits),this._code}get bits(){return this._bits}}var a=r(65786);class s extends a.Y{constructor(){super(),this._parameterBits=this._parameterBits?.map((()=>0))??[],this._parameterNames??=[]}get key(){return this._key??=new o(this._parameterBits),this._key}decode(e=this.key){const t=this._parameterBits;this._parameterBits=[...e.bits];const r=this._parameterNames.map((e=>` ${e}: ${this[e]}`)).join("\n");return this._parameterBits=t,r}}function c(e={}){return(t,r)=>{t.hasOwnProperty("_parameterNames")||Object.defineProperty(t,"_parameterNames",{value:t._parameterNames?.slice()??[],configurable:!0,writable:!0}),t.hasOwnProperty("_parameterBits")||Object.defineProperty(t,"_parameterBits",{value:t._parameterBits?.slice()??[0],configurable:!0,writable:!0}),t._parameterNames.push(r);const n=e.count||2,o=Math.ceil(Math.log2(n)),a=t._parameterBits;let s=0;for(;a[s]+o>16;)s++,s>=a.length&&a.push(0);const c=a[s],l=(1<<o)-1<<c;a[s]+=o,e.count?Object.defineProperty(t,r,{get(){return(this._parameterBits[s]&l)>>c},set(t){if(this[r]!==t){if(this._key=null,this._parameterBits[s]=this._parameterBits[s]&~l|+t<<c&l,"number"!=typeof t)throw new i.A(`Configuration value for ${r} must be a number, got ${typeof t}`);if(null==e.count)throw new i.A(`Configuration value for ${r} must provide a count option`)}}}):Object.defineProperty(t,r,{get(){return!!((this._parameterBits[s]&l)>>c)},set(e){if(this[r]!==e&&(this._key=null,this._parameterBits[s]=this._parameterBits[s]&~l|+e<<c&l,"boolean"!=typeof e))throw new i.A(`Configuration value for ${r} must be boolean, got ${typeof e}`)}})}}},52540:(e,t,r)=>{r.d(t,{E:()=>s});var i=r(37585),n=r(48163),o=r(77108),a=r(31821);function s(e){e.uniforms.add(new o.E("zProjectionMap",(e=>function(e){const t=e.projectionMatrix;return(0,i.hZ)(c,t[14],t[10])}(e.camera)))),e.code.add(a.H`float linearizeDepth(float depth) {
551
+ }`)):e.vertex.code.add(n.H`void forwardMetallicRoughnessUV(){}`)}},51976:(e,t,r)=>{r.d(t,{K:()=>s,W:()=>c});var i=r(49186),o=r(4576);class n{constructor(e){this._bits=[...e]}equals(e){return(0,o.aI)(this._bits,e.bits)}get code(){return this._code??=String.fromCharCode(...this._bits),this._code}get bits(){return this._bits}}var a=r(65786);class s extends a.Y{constructor(){super(),this._parameterBits=this._parameterBits?.map((()=>0))??[],this._parameterNames??=[]}get key(){return this._key??=new n(this._parameterBits),this._key}decode(e=this.key){const t=this._parameterBits;this._parameterBits=[...e.bits];const r=this._parameterNames.map((e=>` ${e}: ${this[e]}`)).join("\n");return this._parameterBits=t,r}}function c(e={}){return(t,r)=>{t.hasOwnProperty("_parameterNames")||Object.defineProperty(t,"_parameterNames",{value:t._parameterNames?.slice()??[],configurable:!0,writable:!0}),t.hasOwnProperty("_parameterBits")||Object.defineProperty(t,"_parameterBits",{value:t._parameterBits?.slice()??[0],configurable:!0,writable:!0}),t._parameterNames.push(r);const o=e.count||2,n=Math.ceil(Math.log2(o)),a=t._parameterBits;let s=0;for(;a[s]+n>16;)s++,s>=a.length&&a.push(0);const c=a[s],l=(1<<n)-1<<c;a[s]+=n,e.count?Object.defineProperty(t,r,{get(){return(this._parameterBits[s]&l)>>c},set(t){if(this[r]!==t){if(this._key=null,this._parameterBits[s]=this._parameterBits[s]&~l|+t<<c&l,"number"!=typeof t)throw new i.A(`Configuration value for ${r} must be a number, got ${typeof t}`);if(null==e.count)throw new i.A(`Configuration value for ${r} must provide a count option`)}}}):Object.defineProperty(t,r,{get(){return!!((this._parameterBits[s]&l)>>c)},set(e){if(this[r]!==e&&(this._key=null,this._parameterBits[s]=this._parameterBits[s]&~l|+e<<c&l,"boolean"!=typeof e))throw new i.A(`Configuration value for ${r} must be boolean, got ${typeof e}`)}})}}},52540:(e,t,r)=>{r.d(t,{E:()=>s});var i=r(37585),o=r(48163),n=r(77108),a=r(31821);function s(e){e.uniforms.add(new n.E("zProjectionMap",(e=>function(e){const t=e.projectionMatrix;return(0,i.hZ)(c,t[14],t[10])}(e.camera)))),e.code.add(a.H`float linearizeDepth(float depth) {
466
552
  float depthNdc = depth * 2.0 - 1.0;
467
553
  float c1 = zProjectionMap[0];
468
554
  float c2 = zProjectionMap[1];
@@ -473,7 +559,7 @@ float depth = texelFetch(depthTexture, iuv, 0).r;
473
559
  return depth;
474
560
  }`),e.code.add(a.H`float linearDepthFromTexture(sampler2D depthTexture, vec2 uv) {
475
561
  return linearizeDepth(depthFromTexture(depthTexture, uv));
476
- }`)}const c=(0,n.vt)()},52587:(e,t,r)=>{r.d(t,{OH:()=>l,Y6:()=>s,pM:()=>c});var i=r(38954),n=r(51850),o=r(33079),a=r(31821);function s(e){e.vertex.code.add(a.H`float screenSizePerspectiveViewAngleDependentFactor(float absCosAngle) {
562
+ }`)}const c=(0,o.vt)()},52587:(e,t,r)=>{r.d(t,{OH:()=>l,Y6:()=>s,pM:()=>c});var i=r(38954),o=r(51850),n=r(33079),a=r(31821);function s(e){e.vertex.code.add(a.H`float screenSizePerspectiveViewAngleDependentFactor(float absCosAngle) {
477
563
  return absCosAngle * absCosAngle * absCosAngle;
478
564
  }`),e.vertex.code.add(a.H`vec3 screenSizePerspectiveScaleFactor(float absCosAngle, float distanceToCamera, vec3 params) {
479
565
  return vec3(
@@ -492,7 +578,7 @@ screenSizePerspectiveScaleFactor(absCosAngle, distanceToCamera, params)
492
578
  return mix(size * clamp(factor.x, factor.z, 1.0), size, factor.y);
493
579
  }`),e.vertex.code.add(a.H`vec2 screenSizePerspectiveScaleVec2(vec2 size, float absCosAngle, float distanceToCamera, vec3 params) {
494
580
  return applyScreenSizePerspectiveScaleFactorVec2(size, screenSizePerspectiveScaleFactor(absCosAngle, distanceToCamera, params));
495
- }`)}function c(e){e.uniforms.add(new o.t("screenSizePerspective",(e=>d(e.screenSizePerspective))))}function l(e){e.uniforms.add(new o.t("screenSizePerspectiveAlignment",(e=>d(e.screenSizePerspectiveAlignment||e.screenSizePerspective))))}function d(e){return(0,i.i)(u,e.parameters.divisor,e.parameters.offset,e.minScaleFactor)}const u=(0,n.vt)()},53466:(e,t,r)=>{r.d(t,{I:()=>i,U:()=>c});var i,n,o=r(21818),a=r(31821),s=r(46540);function c(e,t){switch(t.textureCoordinateType){case i.Default:return e.attributes.add(s.r.UV0,"vec2"),e.varyings.add("vuv0","vec2"),void e.vertex.code.add(a.H`void forwardTextureCoordinates() {
581
+ }`)}function c(e){e.uniforms.add(new n.t("screenSizePerspective",(e=>d(e.screenSizePerspective))))}function l(e){e.uniforms.add(new n.t("screenSizePerspectiveAlignment",(e=>d(e.screenSizePerspectiveAlignment||e.screenSizePerspective))))}function d(e){return(0,i.i)(u,e.parameters.divisor,e.parameters.offset,e.minScaleFactor)}const u=(0,o.vt)()},53466:(e,t,r)=>{r.d(t,{I:()=>i,U:()=>c});var i,o,n=r(21818),a=r(31821),s=r(46540);function c(e,t){switch(t.textureCoordinateType){case i.Default:return e.attributes.add(s.r.UV0,"vec2"),e.varyings.add("vuv0","vec2"),void e.vertex.code.add(a.H`void forwardTextureCoordinates() {
496
582
  vuv0 = uv0;
497
583
  }`);case i.Compressed:return e.attributes.add(s.r.UV0,"vec2"),e.varyings.add("vuv0","vec2"),void e.vertex.code.add(a.H`vec2 getUV0() {
498
584
  return uv0 / 16384.0;
@@ -502,14 +588,14 @@ vuv0 = getUV0();
502
588
  }`);case i.Atlas:return e.attributes.add(s.r.UV0,"vec2"),e.varyings.add("vuv0","vec2"),e.attributes.add(s.r.UVREGION,"vec4"),e.varyings.add("vuvRegion","vec4"),void e.vertex.code.add(a.H`void forwardTextureCoordinates() {
503
589
  vuv0 = uv0;
504
590
  vuvRegion = uvRegion;
505
- }`);default:(0,o.Xb)(t.textureCoordinateType);case i.None:return void e.vertex.code.add(a.H`void forwardTextureCoordinates() {}`);case i.COUNT:return}}(n=i||(i={}))[n.None=0]="None",n[n.Default=1]="Default",n[n.Atlas=2]="Atlas",n[n.Compressed=3]="Compressed",n[n.COUNT=4]="COUNT"},54849:(e,t,r)=>{r.d(t,{n:()=>W});var i,n,o,a,s,c,l=r(31821),d=r(12791),u=r(90237),h=r(34727),m=r(97768),f=r(36708),p=r(78659),v=r(10107),g=(r(44208),r(53966),r(87811),r(40608)),_=r(37585);r(9093),r(48353),r(9762),(c=i||(i={})).OPAQUE="opaque-color",c.TRANSPARENT="transparent-color",c.COMPOSITE="composite-color",c.FINAL="final-color",function(e){e.SSAO="ssao",e.LASERLINES="laserline-color",e.ANTIALIASING="aa-color",e.HIGHLIGHTS="highlight-color",e.MAGNIFIER="magnifier-color",e.OCCLUDED="occluded-color",e.VIEWSHED="viewshed-color",e.OPAQUE_ENVIRONMENT="opaque-environment-color",e.TRANSPARENT_ENVIRONMENT="transparent-environment-color",e.FOCUSAREA="focus-area"}(n||(n={})),(s=o||(o={}))[s.RED=0]="RED",s[s.R8UI=1]="R8UI",s[s.RG=2]="RG",s[s.RG8UI=3]="RG8UI",s[s.RGBA4=4]="RGBA4",s[s.RGBA=5]="RGBA",s[s.RGBA_MIPMAP=6]="RGBA_MIPMAP",s[s.R16F=7]="R16F",s[s.RGBA16F=8]="RGBA16F",function(e){e[e.DEPTH_STENCIL_TEXTURE=0]="DEPTH_STENCIL_TEXTURE",e[e.DEPTH16_BUFFER=1]="DEPTH16_BUFFER"}(a||(a={}));var T=r(69622),x=r(49186),b=r(89192);let A=class extends T.A{constructor(e){super(e),this.view=null,this.consumes={required:[]},this.produces=i.COMPOSITE,this.requireGeometryDepth=!1,this._dirty=!0}initialize(){this.addHandles([(0,f.wB)((()=>this.view.ready),(e=>{e&&this.view.stage?.renderer.addRenderNode(this)}),f.Vh)])}destroy(){this.view.stage?.renderer?.removeRenderNode(this)}precompile(){}render(){throw new x.A("RenderNode:render-function-not-implemented","render() is not implemented.")}get camera(){return this.view.state.camera.clone()}get sunLight(){return this.bindParameters.lighting.legacy}get gl(){return this.view.stage.renderView.renderingContext.gl}get techniques(){return this.view.stage.renderView.techniques}acquireOutputFramebuffer(){const e=this._frameBuffer?.getTexture()?.descriptor,t=this.view.stage.renderer.fboCache.acquire(e?.width??640,e?.height??480,this.produces);return t.fbo?.initializeAndBind(),t}bindRenderTarget(){return this._frameBuffer?.fbo?.initializeAndBind(),this._frameBuffer}requestRender(e){e===b.C7.UPDATE&&this.view.stage?.renderView.requestRender(e),this._dirty=!0}resetWebGLState(){this.renderingContext.resetState(),this.renderingContext.bindFramebuffer(this._frameBuffer?.fbo)}get fboCache(){return this.view.stage.renderer.fboCache}get bindParameters(){return this.renderContext.bind}get renderingContext(){return this.view.stage.renderView.renderingContext}get renderContext(){return this.view.stage?.renderer.renderContext}updateAnimation(e){return!!this._dirty&&(this._dirty=!1,!0)}doRender(e){this._frameBuffer=e.find((({name:e})=>e===this.produces));try{return this.render(e)}finally{this._frameBuffer=null}}};(0,u._)([(0,v.MZ)({constructOnly:!0})],A.prototype,"view",void 0),(0,u._)([(0,v.MZ)({constructOnly:!0})],A.prototype,"consumes",void 0),(0,u._)([(0,v.MZ)()],A.prototype,"produces",void 0),(0,u._)([(0,v.MZ)({readOnly:!0})],A.prototype,"techniques",null),A=(0,u._)([(0,g.$)("esri.views.3d.webgl.RenderNode")],A);const E=A;var S=r(97220),M=r(98958),C=r(95774),w=r(90644);class R extends M.w{constructor(e,t){super(e,t,new S.$(C.S,(()=>r.e(9384).then(r.bind(r,59384)))))}initializePipeline(){return(0,w.Ey)({colorWrite:w.kn})}}var I=r(48163),O=r(65786);class y extends O.Y{constructor(){super(...arguments),this.projScale=1}}class N extends y{constructor(){super(...arguments),this.intensity=1}}class P extends O.Y{}class L extends P{constructor(){super(...arguments),this.blurSize=(0,I.vt)()}}var D=r(15581);class H extends M.w{constructor(e,t){super(e,t,new S.$(D.S,(()=>r.e(191).then(r.bind(r,90191)))))}initializePipeline(){return(0,w.Ey)({colorWrite:w.kn})}}var F=r(63907),B=r(30164),U=r(67171);const G=2;let z=class extends E{constructor(e){super(e),this.consumes={required:["normals"]},this.produces=n.SSAO,this.isEnabled=()=>!1,this._enableTime=(0,p.l5)(0),this._passParameters=new N,this._drawParameters=new L}initialize(){const e=Uint8Array.from(atob("eXKEvZaUc66cjIKElE1jlJ6MjJ6Ufkl+jn2fcXp5jBx7c6KEflSGiXuXeW6OWs+tfqZ2Yot2Y7Zzfo2BhniEj3xoiXuXj4eGZpqEaHKDWjSMe7palFlzc3BziYOGlFVzg6Zzg7CUY5JrjFF7eYJ4jIKEcyyEonSXe7qUfqZ7j3xofqZ2c4R5lFZ5Y0WUbppoe1l2cIh2ezyUho+BcHN2cG6DbpqJhqp2e1GcezhrdldzjFGUcyxjc3aRjDyEc1h7Sl17c6aMjH92pb6Mjpd4dnqBjMOEhqZleIOBYzB7gYx+fnqGjJuEkWlwnCx7fGl+c4hjfGyRe5qMlNOMfnqGhIWHc6OMi4GDc6aMfqZuc6aMzqJzlKZ+lJ6Me3qRfoFue0WUhoR5UraEa6qMkXiPjMOMlJOGe7JrUqKMjK6MeYRzdod+Sl17boiPc6qEeYBlcIh2c1WEe7GDiWCDa0WMjEmMdod+Y0WcdntzhmN8WjyMjKJjiXtzgYxYaGd+a89zlEV7e2GJfnd+lF1rcK5zc4p5cHuBhL6EcXp5eYB7fnh8iX6HjIKEeaxuiYOGc66RfG2Ja5hzjlGMjEmMe9OEgXuPfHyGhPeEdl6JY02McGuMfnqGhFiMa3WJfnx2l4hwcG1uhmN8c0WMc39og1GBbrCEjE2EZY+JcIh2cIuGhIWHe0mEhIVrc09+gY5+eYBlnCyMhGCDl3drfmmMgX15aGd+gYx+fnuRfnhzY1SMsluJfnd+hm98WtNrcIuGh4SEj0qPdkqOjFF7jNNjdnqBgaqUjMt7boeBhnZ4jDR7c5pze4GGjEFrhLqMjHyMc0mUhKZze4WEa117kWlwbpqJjHZ2eX2Bc09zeId+e0V7WlF7jHJ2l72BfId8l3eBgXyBe897jGl7c66cgW+Xc76EjKNbgaSEjGx4fId8jFFjgZB8cG6DhlFziZhrcIh2fH6HgUqBgXiPY8dahGFzjEmMhEFre2dxhoBzc5SGfleGe6alc7aUeYBlhKqUdlp+cH5za4OEczxza0Gcc4J2jHZ5iXuXjH2Jh5yRjH2JcFx+hImBjH+MpddCl3dreZeJjIt8ZW18bm1zjoSEeIOBlF9oh3N7hlqBY4+UeYFwhLJjeYFwaGd+gUqBYxiEYot2fqZ2ondzhL6EYyiEY02Ea0VjgZB8doaGjHxoc66cjEGEiXuXiXWMiZhreHx8frGMe75rY02Ec5pzfnhzlEp4a3VzjM+EhFFza3mUY7Zza1V5e2iMfGyRcziEhDyEkXZ2Y4OBnCx7g5t2eyBjgV6EhEFrcIh2dod+c4Z+nJ5zjm15jEmUeYxijJp7nL6clIpjhoR5WrZraGd+fnuRa6pzlIiMg6ZzfHx5foh+eX1ufnB5eX1ufnB5aJt7UqKMjIh+e3aBfm5lbYSBhGFze6J4c39oc0mUc4Z+e0V7fKFVe0WEdoaGY02Ec4Z+Y02EZYWBfH6HgU1+gY5+hIWUgW+XjJ57ebWRhFVScHuBfJ6PhBx7WqJzlM+Ujpd4gHZziX6HjHmEgZN+lJt5boiPe2GJgX+GjIGJgHZzeaxufnB5hF2JtdN7jJ57hp57hK6ElFVzg6ZzbmiEbndzhIWHe3uJfoFue3qRhJd2j3xoc65zlE1jc3p8lE1jhniEgXJ7e657vZaUc3qBh52BhIF4aHKDa9drgY5+c52GWqZzbpqJe8tjnM+UhIeMfo2BfGl+hG1zSmmMjKJjZVaGgX15c1lze0mEp4OHa3mUhIWHhDyclJ6MeYOJkXiPc0VzhFiMlKaEboSJa5Jze41re3qRhn+HZYWBe0mEc4p5fnORbox5lEp4hGFjhGGEjJuEc1WEhLZjeHeGa7KlfHx2hLaMeX1ugY5+hIWHhKGPjMN7c1WEho1zhoBzZYx7fnhzlJt5exyUhFFziXtzfmmMa6qMYyiEiXxweV12kZSMeWqXSl17fnhzxmmMrVGEe1mcc4p5eHeGjK6MgY5+doaGa6pzlGV7g1qBh4KHkXiPeW6OaKqafqZ2eXZ5e1V7jGd7boSJc3BzhJd2e0mcYot2h1RoY8dahK6EQmWEWjx7e1l2lL6UgXyBdnR4eU9zc0VreX1umqaBhld7fo2Bc6KEc5Z+hDyEcIeBWtNrfHyGe5qMhMuMe5qMhEGEbVVupcNzg3aHhIF4boeBe0mEdlptc39ofFl5Y8uUlJOGiYt2UmGEcyxjjGx4jFF7a657ZYWBnElzhp57iXtrgZN+tfOEhIOBjE2HgU1+e8tjjKNbiWCDhE15gUqBgYN7fnqGc66ce9d7iYSBj0qPcG6DnGGcT3eGa6qMZY+JlIiMl4hwc3aRdnqBlGV7eHJ2hLZjfnuRhDyEeX6MSk17g6Z+c6aUjHmEhIF4gXyBc76EZW18fGl+fkl+jCxrhoVwhDyUhIqGlL2DlI6EhJd2tdN7eYORhEGMa2Faa6pzc3Bzc4R5lIRznM+UY9eMhDycc5Z+c4p5c4iGY117pb6MgXuPrbJafnx2eYOJeXZ5e657hDyEcziElKZjfoB5eHeGj4WRhGGEe6KGeX1utTStc76EhFGJnCyMa5hzfH6HnNeceYB7hmN8gYuMhIVrczSMgYF8h3N7c5pza5hzjJqEYIRdgYuMlL2DeYRzhGGEeX1uhLaEc4iGeZ1zdl6JhrVteX6Me2iMfm5lWqJzSpqEa6pzdnmchHx2c6OMhNdrhoR5g3aHczxzeW52gV6Ejm15frGMc0Vzc4Z+l3drfniJe+9rWq5rlF1rhGGEhoVwe9OEfoh+e7pac09+c3qBY0lrhDycdnp2lJ6MiYOGhGCDc3aRlL2DlJt5doaGdnp2gYF8gWeOjF2Uc4R5c5Z+jEmMe7KEc4mEeYJ4dmyBe0mcgXiPbqJ7eYB7fmGGiYSJjICGlF1reZ2PnElzbpqJfH6Hc39oe4WEc5eJhK6EhqyJc3qBgZB8c09+hEmEaHKDhFGJc5SGiXWMUpaEa89zc6OMnCyMiXtrho+Be5qMc7KEjJ57dmN+hKGPjICGbmiEe7prdod+hGCDdnmchBx7eX6MkXZ2hGGEa657hm98jFFjY5JreYOJgY2EjHZ2a295Y3FajJ6Mc1J+YzB7e4WBjF2Uc4R5eV12gYxzg1qBeId+c9OUc5pzjFFjgY5+hFiMlIaPhoR5lIpjjIKBlNdSe7KEeX2BfrGMhIqGc65zjE2UhK6EklZ+QmWEeziMWqZza3VzdnR4foh+gYF8n3iJiZhrnKp7gYF8eId+lJ6Me1lrcIuGjKJjhmN8c66MjFF7a6prjJ6UnJ5zezyUfruRWlF7nI5zfHyGe657h4SEe8tjhBx7jFFjc09+c39ojICMeZeJeXt+YzRzjHZ2c0WEcIeBeXZ5onSXkVR+gYJ+eYFwdldzgYF7eX2BjJ6UiXuXlE1jh4SEe1mchLJjc4Z+hqZ7eXZ5bm1zlL6Ue5p7iWeGhKqUY5pzjKJjcIeBe8t7gXyBYIRdlEp4a3mGnK6EfmmMZpqEfFl5gYxzjKZuhGFjhoKGhHx2fnx2eXuMe3aBiWeGvbKMe6KGa5hzYzB7gZOBlGV7hmN8hqZlYot2Y117a6pzc6KEfId8foB5rctrfneJfJ6PcHN2hFiMc5pzjH92c0VzgY2EcElzdmCBlFVzg1GBc65zY4OBboeBcHiBeYJ4ewxzfHx5lIRzlEmEnLKEbk1zfJ6PhmN8eYBljBiEnMOEiXxwezyUcIeBe76EdsKEeX2BdnR4jGWUrXWMjGd7fkl+j4WRlEGMa5Jzho+BhDyEfnqMeXt+g3aHlE1jczClhNN7ZW18eHx8hGFjZW18iXWMjKJjhH57gYuMcIuGWjyMe4ZtjJuExmmMj4WRdntzi4GDhFFzYIRdnGGcjJp7Y0F7e4WEkbCGiX57fnSHa657a6prhBCMe3Z+SmmMjH92eHJ2hK6EY1FzexhrvbKMnI5za4OEfnd+eXuMhImBe897hLaMjN+EfG+BeIOBhF1+eZeJi4GDkXZ2eXKEgZ6Ejpd4c2GHa1V5e5KUfqZuhCx7jKp7lLZrg11+hHx2hFWUoot2nI5zgbh5mo9zvZaUe3qRbqKMfqZ2kbCGhFiM"),(e=>e.charCodeAt(0))),t=new U.R;t.wrapMode=F.pF.CLAMP_TO_EDGE,t.pixelFormat=F.Ab.RGB,t.wrapMode=F.pF.REPEAT,t.hasMipmap=!0,t.width=32,t.height=32,this._passParameters.noiseTexture=new B.g(this.renderingContext,t,e),this.techniques.precompile(H),this.techniques.precompile(R),this.addHandles((0,f.wB)((()=>this.isEnabled()),(()=>this._enableTime=(0,p.l5)(0))))}destroy(){this._passParameters.noiseTexture=(0,m.WD)(this._passParameters.noiseTexture)}render(e){const t=this.bindParameters,r=e.find((({name:e})=>"normals"===e)),i=r?.getTexture(),a=r?.getTexture(F.nI),s=this.fboCache,c=t.camera,l=c.fullViewport[2],d=c.fullViewport[3],u=Math.round(l/G),m=Math.round(d/G),f=this.techniques.get(H),v=this.techniques.get(R);if(!f.compiled||!v.compiled)return this._enableTime=(0,p.l5)(performance.now()),this.requestRender(b.C7.UPDATE),s.acquire(u,m,n.SSAO,o.RED);0===this._enableTime&&(this._enableTime=(0,p.l5)(performance.now()));const g=this.renderingContext,T=this.view.qualitySettings.fadeDuration,x=c.relativeElevation,A=(0,h.qE)((5e5-x)/2e5,0,1),E=T>0?Math.min(T,performance.now()-this._enableTime)/T:1,S=E*A;this._passParameters.normalTexture=i,this._passParameters.depthTexture=a,this._passParameters.projScale=1/c.computeScreenPixelSizeAtDist(1),this._passParameters.intensity=4*V/(0,D.g)(c)**6*S;const M=s.acquire(l,d,"ssao input",o.RG);g.bindFramebuffer(M.fbo),g.setViewport(0,0,l,d),g.bindTechnique(f,t,this._passParameters,this._drawParameters),g.screen.draw();const C=s.acquire(u,m,"ssao blur",o.RED);g.bindFramebuffer(C.fbo),this._drawParameters.colorTexture=M.getTexture(),(0,_.hZ)(this._drawParameters.blurSize,0,G/d),g.bindTechnique(v,t,this._passParameters,this._drawParameters),g.setViewport(0,0,u,m),g.screen.draw(),M.release();const w=s.acquire(u,m,n.SSAO,o.RED);return g.bindFramebuffer(w.fbo),g.setViewport(0,0,l,d),g.setClearColor(1,1,1,0),g.clear(F.NV.COLOR),this._drawParameters.colorTexture=C.getTexture(),(0,_.hZ)(this._drawParameters.blurSize,G/l,0),g.bindTechnique(v,t,this._passParameters,this._drawParameters),g.setViewport(0,0,u,m),g.screen.draw(),g.setViewport4fv(c.fullViewport),C.release(),E<1&&this.requestRender(b.C7.UPDATE),w}};(0,u._)([(0,v.MZ)()],z.prototype,"consumes",void 0),(0,u._)([(0,v.MZ)()],z.prototype,"produces",void 0),(0,u._)([(0,v.MZ)({constructOnly:!0})],z.prototype,"isEnabled",void 0),z=(0,u._)([(0,g.$)("esri.views.3d.webgl-engine.effects.ssao.SSAO")],z);const V=.5;function W(e,t){const r=e.fragment;t.receiveAmbientOcclusion?(r.uniforms.add(new d.x("ssaoTex",(e=>e.ssao?.getTexture()))),r.constants.add("blurSizePixelsInverse","float",1/G),r.code.add(l.H`float evaluateAmbientOcclusionInverse() {
591
+ }`);default:(0,n.Xb)(t.textureCoordinateType);case i.None:return void e.vertex.code.add(a.H`void forwardTextureCoordinates() {}`);case i.COUNT:return}}(o=i||(i={}))[o.None=0]="None",o[o.Default=1]="Default",o[o.Atlas=2]="Atlas",o[o.Compressed=3]="Compressed",o[o.COUNT=4]="COUNT"},54849:(e,t,r)=>{r.d(t,{n:()=>W});var i,o,n,a,s,c,l=r(31821),d=r(12791),u=r(90237),h=r(34727),m=r(97768),p=r(36708),f=r(78659),v=r(10107),g=(r(44208),r(53966),r(87811),r(40608)),_=r(37585);r(9093),r(48353),r(9762),(c=i||(i={})).OPAQUE="opaque-color",c.TRANSPARENT="transparent-color",c.COMPOSITE="composite-color",c.FINAL="final-color",function(e){e.SSAO="ssao",e.LASERLINES="laserline-color",e.ANTIALIASING="aa-color",e.HIGHLIGHTS="highlight-color",e.MAGNIFIER="magnifier-color",e.OCCLUDED="occluded-color",e.VIEWSHED="viewshed-color",e.OPAQUE_ENVIRONMENT="opaque-environment-color",e.TRANSPARENT_ENVIRONMENT="transparent-environment-color",e.FOCUSAREA="focus-area"}(o||(o={})),(s=n||(n={}))[s.RED=0]="RED",s[s.R8UI=1]="R8UI",s[s.RG=2]="RG",s[s.RG8UI=3]="RG8UI",s[s.RGBA4=4]="RGBA4",s[s.RGBA=5]="RGBA",s[s.RGBA_MIPMAP=6]="RGBA_MIPMAP",s[s.R16F=7]="R16F",s[s.RGBA16F=8]="RGBA16F",function(e){e[e.DEPTH_STENCIL_TEXTURE=0]="DEPTH_STENCIL_TEXTURE",e[e.DEPTH16_BUFFER=1]="DEPTH16_BUFFER"}(a||(a={}));var T=r(69622),x=r(49186),b=r(89192);let A=class extends T.A{constructor(e){super(e),this.view=null,this.consumes={required:[]},this.produces=i.COMPOSITE,this.requireGeometryDepth=!1,this._dirty=!0}initialize(){this.addHandles([(0,p.wB)((()=>this.view.ready),(e=>{e&&this.view.stage?.renderer.addRenderNode(this)}),p.Vh)])}destroy(){this.view.stage?.renderer?.removeRenderNode(this)}precompile(){}render(){throw new x.A("RenderNode:render-function-not-implemented","render() is not implemented.")}get camera(){return this.view.state.camera.clone()}get sunLight(){return this.bindParameters.lighting.legacy}get gl(){return this.view.stage.renderView.renderingContext.gl}get techniques(){return this.view.stage.renderView.techniques}acquireOutputFramebuffer(){const e=this._frameBuffer?.getTexture()?.descriptor,t=this.view.stage.renderer.fboCache.acquire(e?.width??640,e?.height??480,this.produces);return t.fbo?.initializeAndBind(),t}bindRenderTarget(){return this._frameBuffer?.fbo?.initializeAndBind(),this._frameBuffer}requestRender(e){e===b.C7.UPDATE&&this.view.stage?.renderView.requestRender(e),this._dirty=!0}resetWebGLState(){this.renderingContext.resetState(),this.renderingContext.bindFramebuffer(this._frameBuffer?.fbo)}get fboCache(){return this.view.stage.renderer.fboCache}get bindParameters(){return this.renderContext.bind}get renderingContext(){return this.view.stage.renderView.renderingContext}get renderContext(){return this.view.stage?.renderer.renderContext}updateAnimation(e){return!!this._dirty&&(this._dirty=!1,!0)}doRender(e){this._frameBuffer=e.find((({name:e})=>e===this.produces));try{return this.render(e)}finally{this._frameBuffer=null}}};(0,u._)([(0,v.MZ)({constructOnly:!0})],A.prototype,"view",void 0),(0,u._)([(0,v.MZ)({constructOnly:!0})],A.prototype,"consumes",void 0),(0,u._)([(0,v.MZ)()],A.prototype,"produces",void 0),(0,u._)([(0,v.MZ)({readOnly:!0})],A.prototype,"techniques",null),A=(0,u._)([(0,g.$)("esri.views.3d.webgl.RenderNode")],A);const E=A;var S=r(97220),M=r(98958),w=r(95774),C=r(90644);class R extends M.w{constructor(e,t){super(e,t,new S.$(w.S,(()=>r.e(9384).then(r.bind(r,59384)))))}initializePipeline(){return(0,C.Ey)({colorWrite:C.kn})}}var I=r(48163),O=r(65786);class y extends O.Y{constructor(){super(...arguments),this.projScale=1}}class N extends y{constructor(){super(...arguments),this.intensity=1}}class P extends O.Y{}class D extends P{constructor(){super(...arguments),this.blurSize=(0,I.vt)()}}var L=r(15581);class H extends M.w{constructor(e,t){super(e,t,new S.$(L.S,(()=>r.e(191).then(r.bind(r,90191)))))}initializePipeline(){return(0,C.Ey)({colorWrite:C.kn})}}var F=r(63907),B=r(30164),U=r(67171);const G=2;let z=class extends E{constructor(e){super(e),this.consumes={required:["normals"]},this.produces=o.SSAO,this.isEnabled=()=>!1,this._enableTime=(0,f.l5)(0),this._passParameters=new N,this._drawParameters=new D}initialize(){const e=Uint8Array.from(atob("eXKEvZaUc66cjIKElE1jlJ6MjJ6Ufkl+jn2fcXp5jBx7c6KEflSGiXuXeW6OWs+tfqZ2Yot2Y7Zzfo2BhniEj3xoiXuXj4eGZpqEaHKDWjSMe7palFlzc3BziYOGlFVzg6Zzg7CUY5JrjFF7eYJ4jIKEcyyEonSXe7qUfqZ7j3xofqZ2c4R5lFZ5Y0WUbppoe1l2cIh2ezyUho+BcHN2cG6DbpqJhqp2e1GcezhrdldzjFGUcyxjc3aRjDyEc1h7Sl17c6aMjH92pb6Mjpd4dnqBjMOEhqZleIOBYzB7gYx+fnqGjJuEkWlwnCx7fGl+c4hjfGyRe5qMlNOMfnqGhIWHc6OMi4GDc6aMfqZuc6aMzqJzlKZ+lJ6Me3qRfoFue0WUhoR5UraEa6qMkXiPjMOMlJOGe7JrUqKMjK6MeYRzdod+Sl17boiPc6qEeYBlcIh2c1WEe7GDiWCDa0WMjEmMdod+Y0WcdntzhmN8WjyMjKJjiXtzgYxYaGd+a89zlEV7e2GJfnd+lF1rcK5zc4p5cHuBhL6EcXp5eYB7fnh8iX6HjIKEeaxuiYOGc66RfG2Ja5hzjlGMjEmMe9OEgXuPfHyGhPeEdl6JY02McGuMfnqGhFiMa3WJfnx2l4hwcG1uhmN8c0WMc39og1GBbrCEjE2EZY+JcIh2cIuGhIWHe0mEhIVrc09+gY5+eYBlnCyMhGCDl3drfmmMgX15aGd+gYx+fnuRfnhzY1SMsluJfnd+hm98WtNrcIuGh4SEj0qPdkqOjFF7jNNjdnqBgaqUjMt7boeBhnZ4jDR7c5pze4GGjEFrhLqMjHyMc0mUhKZze4WEa117kWlwbpqJjHZ2eX2Bc09zeId+e0V7WlF7jHJ2l72BfId8l3eBgXyBe897jGl7c66cgW+Xc76EjKNbgaSEjGx4fId8jFFjgZB8cG6DhlFziZhrcIh2fH6HgUqBgXiPY8dahGFzjEmMhEFre2dxhoBzc5SGfleGe6alc7aUeYBlhKqUdlp+cH5za4OEczxza0Gcc4J2jHZ5iXuXjH2Jh5yRjH2JcFx+hImBjH+MpddCl3dreZeJjIt8ZW18bm1zjoSEeIOBlF9oh3N7hlqBY4+UeYFwhLJjeYFwaGd+gUqBYxiEYot2fqZ2ondzhL6EYyiEY02Ea0VjgZB8doaGjHxoc66cjEGEiXuXiXWMiZhreHx8frGMe75rY02Ec5pzfnhzlEp4a3VzjM+EhFFza3mUY7Zza1V5e2iMfGyRcziEhDyEkXZ2Y4OBnCx7g5t2eyBjgV6EhEFrcIh2dod+c4Z+nJ5zjm15jEmUeYxijJp7nL6clIpjhoR5WrZraGd+fnuRa6pzlIiMg6ZzfHx5foh+eX1ufnB5eX1ufnB5aJt7UqKMjIh+e3aBfm5lbYSBhGFze6J4c39oc0mUc4Z+e0V7fKFVe0WEdoaGY02Ec4Z+Y02EZYWBfH6HgU1+gY5+hIWUgW+XjJ57ebWRhFVScHuBfJ6PhBx7WqJzlM+Ujpd4gHZziX6HjHmEgZN+lJt5boiPe2GJgX+GjIGJgHZzeaxufnB5hF2JtdN7jJ57hp57hK6ElFVzg6ZzbmiEbndzhIWHe3uJfoFue3qRhJd2j3xoc65zlE1jc3p8lE1jhniEgXJ7e657vZaUc3qBh52BhIF4aHKDa9drgY5+c52GWqZzbpqJe8tjnM+UhIeMfo2BfGl+hG1zSmmMjKJjZVaGgX15c1lze0mEp4OHa3mUhIWHhDyclJ6MeYOJkXiPc0VzhFiMlKaEboSJa5Jze41re3qRhn+HZYWBe0mEc4p5fnORbox5lEp4hGFjhGGEjJuEc1WEhLZjeHeGa7KlfHx2hLaMeX1ugY5+hIWHhKGPjMN7c1WEho1zhoBzZYx7fnhzlJt5exyUhFFziXtzfmmMa6qMYyiEiXxweV12kZSMeWqXSl17fnhzxmmMrVGEe1mcc4p5eHeGjK6MgY5+doaGa6pzlGV7g1qBh4KHkXiPeW6OaKqafqZ2eXZ5e1V7jGd7boSJc3BzhJd2e0mcYot2h1RoY8dahK6EQmWEWjx7e1l2lL6UgXyBdnR4eU9zc0VreX1umqaBhld7fo2Bc6KEc5Z+hDyEcIeBWtNrfHyGe5qMhMuMe5qMhEGEbVVupcNzg3aHhIF4boeBe0mEdlptc39ofFl5Y8uUlJOGiYt2UmGEcyxjjGx4jFF7a657ZYWBnElzhp57iXtrgZN+tfOEhIOBjE2HgU1+e8tjjKNbiWCDhE15gUqBgYN7fnqGc66ce9d7iYSBj0qPcG6DnGGcT3eGa6qMZY+JlIiMl4hwc3aRdnqBlGV7eHJ2hLZjfnuRhDyEeX6MSk17g6Z+c6aUjHmEhIF4gXyBc76EZW18fGl+fkl+jCxrhoVwhDyUhIqGlL2DlI6EhJd2tdN7eYORhEGMa2Faa6pzc3Bzc4R5lIRznM+UY9eMhDycc5Z+c4p5c4iGY117pb6MgXuPrbJafnx2eYOJeXZ5e657hDyEcziElKZjfoB5eHeGj4WRhGGEe6KGeX1utTStc76EhFGJnCyMa5hzfH6HnNeceYB7hmN8gYuMhIVrczSMgYF8h3N7c5pza5hzjJqEYIRdgYuMlL2DeYRzhGGEeX1uhLaEc4iGeZ1zdl6JhrVteX6Me2iMfm5lWqJzSpqEa6pzdnmchHx2c6OMhNdrhoR5g3aHczxzeW52gV6Ejm15frGMc0Vzc4Z+l3drfniJe+9rWq5rlF1rhGGEhoVwe9OEfoh+e7pac09+c3qBY0lrhDycdnp2lJ6MiYOGhGCDc3aRlL2DlJt5doaGdnp2gYF8gWeOjF2Uc4R5c5Z+jEmMe7KEc4mEeYJ4dmyBe0mcgXiPbqJ7eYB7fmGGiYSJjICGlF1reZ2PnElzbpqJfH6Hc39oe4WEc5eJhK6EhqyJc3qBgZB8c09+hEmEaHKDhFGJc5SGiXWMUpaEa89zc6OMnCyMiXtrho+Be5qMc7KEjJ57dmN+hKGPjICGbmiEe7prdod+hGCDdnmchBx7eX6MkXZ2hGGEa657hm98jFFjY5JreYOJgY2EjHZ2a295Y3FajJ6Mc1J+YzB7e4WBjF2Uc4R5eV12gYxzg1qBeId+c9OUc5pzjFFjgY5+hFiMlIaPhoR5lIpjjIKBlNdSe7KEeX2BfrGMhIqGc65zjE2UhK6EklZ+QmWEeziMWqZza3VzdnR4foh+gYF8n3iJiZhrnKp7gYF8eId+lJ6Me1lrcIuGjKJjhmN8c66MjFF7a6prjJ6UnJ5zezyUfruRWlF7nI5zfHyGe657h4SEe8tjhBx7jFFjc09+c39ojICMeZeJeXt+YzRzjHZ2c0WEcIeBeXZ5onSXkVR+gYJ+eYFwdldzgYF7eX2BjJ6UiXuXlE1jh4SEe1mchLJjc4Z+hqZ7eXZ5bm1zlL6Ue5p7iWeGhKqUY5pzjKJjcIeBe8t7gXyBYIRdlEp4a3mGnK6EfmmMZpqEfFl5gYxzjKZuhGFjhoKGhHx2fnx2eXuMe3aBiWeGvbKMe6KGa5hzYzB7gZOBlGV7hmN8hqZlYot2Y117a6pzc6KEfId8foB5rctrfneJfJ6PcHN2hFiMc5pzjH92c0VzgY2EcElzdmCBlFVzg1GBc65zY4OBboeBcHiBeYJ4ewxzfHx5lIRzlEmEnLKEbk1zfJ6PhmN8eYBljBiEnMOEiXxwezyUcIeBe76EdsKEeX2BdnR4jGWUrXWMjGd7fkl+j4WRlEGMa5Jzho+BhDyEfnqMeXt+g3aHlE1jczClhNN7ZW18eHx8hGFjZW18iXWMjKJjhH57gYuMcIuGWjyMe4ZtjJuExmmMj4WRdntzi4GDhFFzYIRdnGGcjJp7Y0F7e4WEkbCGiX57fnSHa657a6prhBCMe3Z+SmmMjH92eHJ2hK6EY1FzexhrvbKMnI5za4OEfnd+eXuMhImBe897hLaMjN+EfG+BeIOBhF1+eZeJi4GDkXZ2eXKEgZ6Ejpd4c2GHa1V5e5KUfqZuhCx7jKp7lLZrg11+hHx2hFWUoot2nI5zgbh5mo9zvZaUe3qRbqKMfqZ2kbCGhFiM"),(e=>e.charCodeAt(0))),t=new U.R;t.wrapMode=F.pF.CLAMP_TO_EDGE,t.pixelFormat=F.Ab.RGB,t.wrapMode=F.pF.REPEAT,t.hasMipmap=!0,t.width=32,t.height=32,this._passParameters.noiseTexture=new B.g(this.renderingContext,t,e),this.techniques.precompile(H),this.techniques.precompile(R),this.addHandles((0,p.wB)((()=>this.isEnabled()),(()=>this._enableTime=(0,f.l5)(0))))}destroy(){this._passParameters.noiseTexture=(0,m.WD)(this._passParameters.noiseTexture)}render(e){const t=this.bindParameters,r=e.find((({name:e})=>"normals"===e)),i=r?.getTexture(),a=r?.getTexture(F.nI),s=this.fboCache,c=t.camera,l=c.fullViewport[2],d=c.fullViewport[3],u=Math.round(l/G),m=Math.round(d/G),p=this.techniques.get(H),v=this.techniques.get(R);if(!p.compiled||!v.compiled)return this._enableTime=(0,f.l5)(performance.now()),this.requestRender(b.C7.UPDATE),s.acquire(u,m,o.SSAO,n.RED);0===this._enableTime&&(this._enableTime=(0,f.l5)(performance.now()));const g=this.renderingContext,T=this.view.qualitySettings.fadeDuration,x=c.relativeElevation,A=(0,h.qE)((5e5-x)/2e5,0,1),E=T>0?Math.min(T,performance.now()-this._enableTime)/T:1,S=E*A;this._passParameters.normalTexture=i,this._passParameters.depthTexture=a,this._passParameters.projScale=1/c.computeScreenPixelSizeAtDist(1),this._passParameters.intensity=4*V/(0,L.g)(c)**6*S;const M=s.acquire(l,d,"ssao input",n.RG);g.bindFramebuffer(M.fbo),g.setViewport(0,0,l,d),g.bindTechnique(p,t,this._passParameters,this._drawParameters),g.screen.draw();const w=s.acquire(u,m,"ssao blur",n.RED);g.bindFramebuffer(w.fbo),this._drawParameters.colorTexture=M.getTexture(),(0,_.hZ)(this._drawParameters.blurSize,0,G/d),g.bindTechnique(v,t,this._passParameters,this._drawParameters),g.setViewport(0,0,u,m),g.screen.draw(),M.release();const C=s.acquire(u,m,o.SSAO,n.RED);return g.bindFramebuffer(C.fbo),g.setViewport(0,0,l,d),g.setClearColor(1,1,1,0),g.clear(F.NV.COLOR),this._drawParameters.colorTexture=w.getTexture(),(0,_.hZ)(this._drawParameters.blurSize,G/l,0),g.bindTechnique(v,t,this._passParameters,this._drawParameters),g.setViewport(0,0,u,m),g.screen.draw(),g.setViewport4fv(c.fullViewport),w.release(),E<1&&this.requestRender(b.C7.UPDATE),C}};(0,u._)([(0,v.MZ)()],z.prototype,"consumes",void 0),(0,u._)([(0,v.MZ)()],z.prototype,"produces",void 0),(0,u._)([(0,v.MZ)({constructOnly:!0})],z.prototype,"isEnabled",void 0),z=(0,u._)([(0,g.$)("esri.views.3d.webgl-engine.effects.ssao.SSAO")],z);const V=.5;function W(e,t){const r=e.fragment;t.receiveAmbientOcclusion?(r.uniforms.add(new d.x("ssaoTex",(e=>e.ssao?.getTexture()))),r.constants.add("blurSizePixelsInverse","float",1/G),r.code.add(l.H`float evaluateAmbientOcclusionInverse() {
506
592
  vec2 ssaoTextureSizeInverse = 1.0 / vec2(textureSize(ssaoTex, 0));
507
593
  return texture(ssaoTex, gl_FragCoord.xy * blurSizePixelsInverse * ssaoTextureSizeInverse).r;
508
594
  }
509
595
  float evaluateAmbientOcclusion() {
510
596
  return 1.0 - evaluateAmbientOcclusionInverse();
511
597
  }`)):r.code.add(l.H`float evaluateAmbientOcclusionInverse() { return 1.0; }
512
- float evaluateAmbientOcclusion() { return 0.0; }`)}},57323:(e,t,r)=>{r.d(t,{R:()=>H,b:()=>D});var i=r(46686),n=r(32680),o=r(49255),a=r(76591),s=r(76597),c=r(82991),l=r(96336),d=r(71955),u=r(53466),h=r(92700),m=r(35640),f=r(40261),p=r(54849),v=r(74081),g=r(98619),_=r(22393),T=r(59469),x=r(25618),b=r(96598),A=r(42398),E=r(11955),S=r(27950),M=r(20693),C=r(33079),w=r(71988),R=r(20304),I=r(31821),O=r(63761),y=r(46540),N=r(60517),P=r(14113),L=r(49788);function D(e){const t=new P.N5,{attributes:r,vertex:D,fragment:H,varyings:F}=t,{output:B,offsetBackfaces:U,instancedColor:G,pbrMode:z,snowCover:V,spherical:W}=e,j=z===T.A9.Normal||z===T.A9.Schematic;if((0,M.NB)(D,e),r.add(y.r.POSITION,"vec3"),F.add("vpos","vec3",{invariant:!0}),t.include(A.A,e),t.include(c.B,e),t.include(m.G,e),t.include(b.Z,e),(0,o.RN)(B)&&((0,M.yu)(t.vertex,e),t.include(l.Y,e),t.include(s.d,e),U&&t.include(n.M),G&&t.attributes.add(y.r.INSTANCECOLOR,"vec4"),F.add("vNormalWorld","vec3"),F.add("localvpos","vec3",{invariant:!0}),t.include(u.U,e),t.include(i.oD,e),t.include(d.K,e),t.include(h.c,e),D.uniforms.add(new w.E("externalColor",(e=>e.externalColor))),F.add("vcolorExt","vec4"),D.main.add(I.H`
598
+ float evaluateAmbientOcclusion() { return 0.0; }`)}},57323:(e,t,r)=>{r.d(t,{R:()=>H,b:()=>L});var i=r(46686),o=r(32680),n=r(49255),a=r(76591),s=r(76597),c=r(82991),l=r(96336),d=r(71955),u=r(53466),h=r(92700),m=r(35640),p=r(40261),f=r(54849),v=r(74081),g=r(98619),_=r(22393),T=r(59469),x=r(25618),b=r(96598),A=r(42398),E=r(11955),S=r(27950),M=r(20693),w=r(33079),C=r(71988),R=r(20304),I=r(31821),O=r(63761),y=r(46540),N=r(60517),P=r(14113),D=r(49788);function L(e){const t=new P.N5,{attributes:r,vertex:L,fragment:H,varyings:F}=t,{output:B,offsetBackfaces:U,instancedColor:G,pbrMode:z,snowCover:V,spherical:W}=e,j=z===T.A9.Normal||z===T.A9.Schematic;if((0,M.NB)(L,e),r.add(y.r.POSITION,"vec3"),F.add("vpos","vec3",{invariant:!0}),t.include(A.A,e),t.include(c.B,e),t.include(m.G,e),t.include(b.Z,e),(0,n.RN)(B)&&((0,M.yu)(t.vertex,e),t.include(l.Y,e),t.include(s.d,e),U&&t.include(o.M),G&&t.attributes.add(y.r.INSTANCECOLOR,"vec4"),F.add("vNormalWorld","vec3"),F.add("localvpos","vec3",{invariant:!0}),t.include(u.U,e),t.include(i.oD,e),t.include(d.K,e),t.include(h.c,e),L.uniforms.add(new C.E("externalColor",(e=>e.externalColor))),F.add("vcolorExt","vec4"),L.main.add(I.H`
513
599
  forwardNormalizedVertexColor();
514
600
  vcolorExt = externalColor;
515
601
  ${(0,I.If)(G,"vcolorExt *= instanceColor * 0.003921568627451;")}
@@ -517,7 +603,7 @@ float evaluateAmbientOcclusion() { return 0.0; }`)}},57323:(e,t,r)=>{r.d(t,{R:()
517
603
  vcolorExt *= getSymbolColor();
518
604
  forwardColorMixMode();
519
605
 
520
- bool alphaCut = vcolorExt.a < ${I.H.float(L.Q)};
606
+ bool alphaCut = vcolorExt.a < ${I.H.float(D.Q)};
521
607
  vpos = getVertexInLocalOriginSpace();
522
608
  localvpos = vpos - view[3].xyz;
523
609
  vpos = subtractOrigin(vpos);
@@ -531,7 +617,7 @@ float evaluateAmbientOcclusion() { return 0.0; }`)}},57323:(e,t,r)=>{r.d(t,{R:()
531
617
 
532
618
  gl_Position = alphaCut ? vec4(1e38, 1e38, 1e38, 1.0) :
533
619
  ${(0,I.If)(U,"offsetBackfacingClipPosition(basePosition, vpos, vNormalWorld, cameraPosition);","basePosition;")}
534
- `)),(0,o.RN)(B)){const{hasColorTexture:r,hasColorTextureTransform:i,receiveShadows:n}=e;t.include(v.kA,e),t.include(p.n,e),t.include(E.S,e),t.include(e.instancedDoublePrecision?x.G:x.Bz,e),t.fragment.include(a.HQ,e),t.include(N.z,e),(0,M.yu)(t.fragment,e),(0,g.Gc)(H),(0,v.a8)(H),(0,v.eU)(H),H.uniforms.add(D.uniforms.get("localOrigin"),D.uniforms.get("view"),new C.t("ambient",(e=>e.ambient)),new C.t("diffuse",(e=>e.diffuse)),new R.m("opacity",(e=>e.opacity)),new R.m("layerOpacity",(e=>e.layerOpacity))),r&&H.uniforms.add(new O.N("tex",(e=>e.texture))),t.include(T._Z,e),t.include(_.c,e),H.include(S.N),(0,g.O4)(H),H.main.add(I.H`
620
+ `)),(0,n.RN)(B)){const{hasColorTexture:r,hasColorTextureTransform:i,receiveShadows:o}=e;t.include(v.kA,e),t.include(f.n,e),t.include(E.S,e),t.include(e.instancedDoublePrecision?x.G:x.Bz,e),t.fragment.include(a.HQ,e),t.include(N.z,e),(0,M.yu)(t.fragment,e),(0,g.Gc)(H),(0,v.a8)(H),(0,v.eU)(H),H.uniforms.add(L.uniforms.get("localOrigin"),L.uniforms.get("view"),new w.t("ambient",(e=>e.ambient)),new w.t("diffuse",(e=>e.diffuse)),new R.m("opacity",(e=>e.opacity)),new R.m("layerOpacity",(e=>e.layerOpacity))),r&&H.uniforms.add(new O.N("tex",(e=>e.texture))),t.include(T._Z,e),t.include(_.c,e),H.include(S.N),(0,g.O4)(H),H.main.add(I.H`
535
621
  discardBySlice(vpos);
536
622
  discardByTerrainDepth();
537
623
  vec4 texColor = ${r?`texture(tex, ${i?"colorUV":"vuv0"})`:" vec4(1.0)"};
@@ -543,7 +629,7 @@ float evaluateAmbientOcclusion() { return 0.0; }`)}},57323:(e,t,r)=>{r.d(t,{R:()
543
629
 
544
630
  float additionalAmbientScale = additionalDirectedAmbientLight(vpos + localOrigin);
545
631
  vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
546
- float shadow = ${n?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), readShadowMap(vpos, linearDepth))":W?"lightingGlobalFactor * (1.0 - additionalAmbientScale)":"0.0"};
632
+ float shadow = ${o?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), readShadowMap(vpos, linearDepth))":W?"lightingGlobalFactor * (1.0 - additionalAmbientScale)":"0.0"};
547
633
  vec3 matColor = max(ambient, diffuse);
548
634
  ${e.hasVertexColors?I.H`vec3 albedo = mixExternalColor(vColor.rgb * matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));
549
635
  float opacity_ = layerOpacity * mixExternalOpacity(vColor.a * opacity, texColor.a, vcolorExt.a, int(colorMixMode));`:I.H`vec3 albedo = mixExternalColor(matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));
@@ -563,22 +649,22 @@ float evaluateAmbientOcclusion() { return 0.0; }`)}},57323:(e,t,r)=>{r.d(t,{R:()
563
649
  vec4 emission = ${V?"vec4(0.0)":"getEmissions()"};
564
650
  vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, viewDirection, normalGround, mrr, emission, additionalAmbientIrradiance);`:I.H`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
565
651
  vec4 finalColor = vec4(shadedColor, opacity_);
566
- outputColorHighlightOID(finalColor, vpos);`)}return t.include(f.E,e),t}const H=Object.freeze(Object.defineProperty({__proto__:null,build:D},Symbol.toStringTag,{value:"Module"}))},57917:(e,t,r)=>{r.d(t,{S:()=>n});var i=r(34275);function n(e){if(e.length<i.y9)return Array.from(e);if(Array.isArray(e))return Float64Array.from(e);if(!("BYTES_PER_ELEMENT"in e))return Array.from(e);switch(e.BYTES_PER_ELEMENT){case 1:return Uint8Array.from(e);case 2:return(0,i.jq)(e)?Uint16Array.from(e):Int16Array.from(e);case 4:return Float32Array.from(e);default:return Float64Array.from(e)}}},59469:(e,t,r)=>{r.d(t,{A9:()=>i,_Z:()=>m});var i,n,o=r(99208),a=r(40710),s=r(33079),c=r(31821),l=r(15976),d=r(63761),u=(r(74810),r(69270)),h=r(65786);function m(e,t){const r=t.pbrMode,n=e.fragment;if(r!==i.Schematic&&r!==i.Disabled&&r!==i.Normal)return void n.code.add(c.H`void applyPBRFactors() {}`);if(r===i.Disabled)return void n.code.add(c.H`void applyPBRFactors() {}
567
- float getBakedOcclusion() { return 1.0; }`);if(r===i.Schematic)return void n.code.add(c.H`vec3 mrr = vec3(0.0, 0.6, 0.2);
652
+ outputColorHighlightOID(finalColor, vpos);`)}return t.include(p.E,e),t}const H=Object.freeze(Object.defineProperty({__proto__:null,build:L},Symbol.toStringTag,{value:"Module"}))},57917:(e,t,r)=>{r.d(t,{S:()=>o});var i=r(34275);function o(e){if(e.length<i.y9)return Array.from(e);if(Array.isArray(e))return Float64Array.from(e);if(!("BYTES_PER_ELEMENT"in e))return Array.from(e);switch(e.BYTES_PER_ELEMENT){case 1:return Uint8Array.from(e);case 2:return(0,i.jq)(e)?Uint16Array.from(e):Int16Array.from(e);case 4:return Float32Array.from(e);default:return Float64Array.from(e)}}},59469:(e,t,r)=>{r.d(t,{A9:()=>i,_Z:()=>m});var i,o,n=r(99208),a=r(40710),s=r(33079),c=r(31821),l=r(15976),d=r(63761),u=(r(74810),r(69270)),h=r(65786);function m(e,t){const r=t.pbrMode,o=e.fragment;if(r!==i.Schematic&&r!==i.Disabled&&r!==i.Normal)return void o.code.add(c.H`void applyPBRFactors() {}`);if(r===i.Disabled)return void o.code.add(c.H`void applyPBRFactors() {}
653
+ float getBakedOcclusion() { return 1.0; }`);if(r===i.Schematic)return void o.code.add(c.H`vec3 mrr = vec3(0.0, 0.6, 0.2);
568
654
  float occlusion = 1.0;
569
655
  void applyPBRFactors() {}
570
- float getBakedOcclusion() { return 1.0; }`);const{hasMetallicRoughnessTexture:h,hasMetallicRoughnessTextureTransform:m,hasOcclusionTexture:f,hasOcclusionTextureTransform:p,bindType:v}=t;(h||f)&&e.include(o.r,t),n.code.add(c.H`vec3 mrr;
571
- float occlusion;`),h&&n.uniforms.add(v===u.c.Pass?new d.N("texMetallicRoughness",(e=>e.textureMetallicRoughness)):new l.o("texMetallicRoughness",(e=>e.textureMetallicRoughness))),f&&n.uniforms.add(v===u.c.Pass?new d.N("texOcclusion",(e=>e.textureOcclusion)):new l.o("texOcclusion",(e=>e.textureOcclusion))),n.uniforms.add(v===u.c.Pass?new s.t("mrrFactors",(e=>e.mrrFactors)):new a.W("mrrFactors",(e=>e.mrrFactors))),n.code.add(c.H`
656
+ float getBakedOcclusion() { return 1.0; }`);const{hasMetallicRoughnessTexture:h,hasMetallicRoughnessTextureTransform:m,hasOcclusionTexture:p,hasOcclusionTextureTransform:f,bindType:v}=t;(h||p)&&e.include(n.r,t),o.code.add(c.H`vec3 mrr;
657
+ float occlusion;`),h&&o.uniforms.add(v===u.c.Pass?new d.N("texMetallicRoughness",(e=>e.textureMetallicRoughness)):new l.o("texMetallicRoughness",(e=>e.textureMetallicRoughness))),p&&o.uniforms.add(v===u.c.Pass?new d.N("texOcclusion",(e=>e.textureOcclusion)):new l.o("texOcclusion",(e=>e.textureOcclusion))),o.uniforms.add(v===u.c.Pass?new s.t("mrrFactors",(e=>e.mrrFactors)):new a.W("mrrFactors",(e=>e.mrrFactors))),o.code.add(c.H`
572
658
  ${(0,c.If)(h,c.H`void applyMetallicRoughness(vec2 uv) {
573
659
  vec3 metallicRoughness = textureLookup(texMetallicRoughness, uv).rgb;
574
660
  mrr[0] *= metallicRoughness.b;
575
661
  mrr[1] *= metallicRoughness.g;
576
662
  }`)}
577
663
 
578
- ${(0,c.If)(f,"void applyOcclusion(vec2 uv) { occlusion *= textureLookup(texOcclusion, uv).r; }")}
664
+ ${(0,c.If)(p,"void applyOcclusion(vec2 uv) { occlusion *= textureLookup(texOcclusion, uv).r; }")}
579
665
 
580
666
  float getBakedOcclusion() {
581
- return ${f?"occlusion":"1.0"};
667
+ return ${p?"occlusion":"1.0"};
582
668
  }
583
669
 
584
670
  void applyPBRFactors() {
@@ -586,9 +672,9 @@ float occlusion;`),h&&n.uniforms.add(v===u.c.Pass?new d.N("texMetallicRoughness"
586
672
  occlusion = 1.0;
587
673
 
588
674
  ${(0,c.If)(h,`applyMetallicRoughness(${m?"metallicRoughnessUV":"vuv0"});`)}
589
- ${(0,c.If)(f,`applyOcclusion(${p?"occlusionUV":"vuv0"});`)}
675
+ ${(0,c.If)(p,`applyOcclusion(${f?"occlusionUV":"vuv0"});`)}
590
676
  }
591
- `)}(n=i||(i={}))[n.Disabled=0]="Disabled",n[n.Normal=1]="Normal",n[n.Schematic=2]="Schematic",n[n.Water=3]="Water",n[n.WaterOnIntegratedMesh=4]="WaterOnIntegratedMesh",n[n.Simplified=5]="Simplified",n[n.TerrainWithWater=6]="TerrainWithWater",n[n.COUNT=7]="COUNT",h.Y},59643:(e,t,r)=>{var i;r.d(t,{Y:()=>i}),function(e){e[e.NONE=0]="NONE",e[e.ColorAlpha=1]="ColorAlpha",e[e.FrontFace=2]="FrontFace",e[e.COUNT=3]="COUNT"}(i||(i={}))},59907:(e,t,r)=>{r.d(t,{Hk:()=>h,Pq:()=>u,SA:()=>v,Ut:()=>d,p1:()=>m,tH:()=>p,tb:()=>f,uO:()=>s});var i=r(58083),n=r(13030),o=r(620),a=r(46540);function s(e,t,r,i=1){const{data:n,indices:o}=e,a=t.typedBuffer,s=t.typedBufferStride,c=o.length;if(r*=s,1===i)for(let e=0;e<c;++e)a[r]=n[o[e]],r+=s;else for(let e=0;e<c;++e){const t=n[o[e]];for(let e=0;e<i;e++)a[r]=t,r+=s}}function c(e,t,r){const{data:i,indices:n}=e,o=t.typedBuffer,a=t.typedBufferStride,s=n.length;r*=a;for(let e=0;e<s;++e){const t=2*n[e];o[r]=i[t],o[r+1]=i[t+1],r+=a}}function l(e,t,r,i=1){const{data:n,indices:o}=e,a=t.typedBuffer,s=t.typedBufferStride,c=o.length;if(r*=s,1===i)for(let e=0;e<c;++e){const t=3*o[e];a[r]=n[t],a[r+1]=n[t+1],a[r+2]=n[t+2],r+=s}else for(let e=0;e<c;++e){const t=3*o[e];for(let e=0;e<i;++e)a[r]=n[t],a[r+1]=n[t+1],a[r+2]=n[t+2],r+=s}}function d(e,t,r,i=1){const{data:n,indices:o}=e,a=t.typedBuffer,s=t.typedBufferStride,c=o.length;if(r*=s,1===i)for(let e=0;e<c;++e){const t=4*o[e];a[r]=n[t],a[r+1]=n[t+1],a[r+2]=n[t+2],a[r+3]=n[t+3],r+=s}else for(let e=0;e<c;++e){const t=4*o[e];for(let e=0;e<i;++e)a[r]=n[t],a[r+1]=n[t+1],a[r+2]=n[t+2],a[r+3]=n[t+3],r+=s}}function u(e,t,r){const i=e.typedBuffer,n=e.typedBufferStride;t*=n;for(let e=0;e<r;++e)i[t]=0,i[t+1]=0,i[t+2]=0,i[t+3]=0,t+=n}function h(e,t,r,n,o=1){if(!t)return void l(e,r,n,o);const{data:a,indices:s}=e,c=r.typedBuffer,d=r.typedBufferStride,u=s.length,h=t[0],m=t[1],f=t[2],p=t[4],v=t[5],g=t[6],_=t[8],T=t[9],x=t[10],b=t[12],A=t[13],E=t[14];n*=d;let S=0,M=0,C=0;const w=(0,i.tZ)(t)?e=>{S=a[e]+b,M=a[e+1]+A,C=a[e+2]+E}:e=>{const t=a[e],r=a[e+1],i=a[e+2];S=h*t+p*r+_*i+b,M=m*t+v*r+T*i+A,C=f*t+g*r+x*i+E};if(1===o)for(let e=0;e<u;++e)w(3*s[e]),c[n]=S,c[n+1]=M,c[n+2]=C,n+=d;else for(let e=0;e<u;++e){w(3*s[e]);for(let e=0;e<o;++e)c[n]=S,c[n+1]=M,c[n+2]=C,n+=d}}function m(e,t,r,n,o=1){if(!t)return void l(e,r,n,o);const{data:a,indices:s}=e,c=t,d=r.typedBuffer,u=r.typedBufferStride,h=s.length,m=c[0],f=c[1],p=c[2],v=c[4],g=c[5],_=c[6],T=c[8],x=c[9],b=c[10],A=!(0,i.ut)(c),E=1e-6,S=1-E;n*=u;let M=0,C=0,w=0;const R=(0,i.tZ)(c)?e=>{M=a[e],C=a[e+1],w=a[e+2]}:e=>{const t=a[e],r=a[e+1],i=a[e+2];M=m*t+v*r+T*i,C=f*t+g*r+x*i,w=p*t+_*r+b*i};if(1===o)if(A)for(let e=0;e<h;++e){R(3*s[e]);const t=M*M+C*C+w*w;if(t<S&&t>E){const e=1/Math.sqrt(t);d[n]=M*e,d[n+1]=C*e,d[n+2]=w*e}else d[n]=M,d[n+1]=C,d[n+2]=w;n+=u}else for(let e=0;e<h;++e)R(3*s[e]),d[n]=M,d[n+1]=C,d[n+2]=w,n+=u;else for(let e=0;e<h;++e){if(R(3*s[e]),A){const e=M*M+C*C+w*w;if(e<S&&e>E){const t=1/Math.sqrt(e);M*=t,C*=t,w*=t}}for(let e=0;e<o;++e)d[n]=M,d[n+1]=C,d[n+2]=w,n+=u}}function f(e,t,r,i,n=1){const{data:o,indices:a}=e,s=r.typedBuffer,c=r.typedBufferStride,l=a.length;if(i*=c,t!==o.length||4!==t)if(1!==n)if(4!==t)for(let e=0;e<l;++e){const t=3*a[e];for(let e=0;e<n;++e)s[i]=o[t],s[i+1]=o[t+1],s[i+2]=o[t+2],s[i+3]=255,i+=c}else for(let e=0;e<l;++e){const t=4*a[e];for(let e=0;e<n;++e)s[i]=o[t],s[i+1]=o[t+1],s[i+2]=o[t+2],s[i+3]=o[t+3],i+=c}else{if(4===t){for(let e=0;e<l;++e){const t=4*a[e];s[i]=o[t],s[i+1]=o[t+1],s[i+2]=o[t+2],s[i+3]=o[t+3],i+=c}return}for(let e=0;e<l;++e){const t=3*a[e];s[i]=o[t],s[i+1]=o[t+1],s[i+2]=o[t+2],s[i+3]=255,i+=c}}else{s[i]=o[0],s[i+1]=o[1],s[i+2]=o[2],s[i+3]=o[3];const e=new Uint32Array(r.typedBuffer.buffer,r.start),t=c/4,a=e[i/=4];i+=t;const d=l*n;for(let r=1;r<d;++r)e[i]=a,i+=t}}function p(e,t,r,i,n=1){const o=t.typedBuffer,a=t.typedBufferStride;if(i*=a,1===n)for(let t=0;t<r;++t)o[i]=e[0],o[i+1]=e[1],o[i+2]=e[2],o[i+3]=e[3],i+=a;else for(let t=0;t<r;++t)for(let t=0;t<n;++t)o[i]=e[0],o[i+1]=e[1],o[i+2]=e[2],o[i+3]=e[3],i+=a}function v(e,t,r,i,o,s,c){let l={numItems:0,numVerticesPerItem:0};for(const d of r.fields.keys()){const r=e.get(d),u=r?.indices;if(r&&u)d===a.r.POSITION&&(l={numItems:1,numVerticesPerItem:u.length}),g(d,r,i,o,s,c);else if(d===a.r.OBJECTANDLAYERIDCOLOR&&null!=t){const r=e.get(a.r.POSITION)?.indices;if(r){const e=r.length;p(t,s.getField(d,n.XP),e,c)}}}return l}function g(e,t,r,s,l,u){switch(e){case a.r.POSITION:{(0,o.vA)(3===t.size);const i=l.getField(e,n.xs);(0,o.vA)(!!i,`No buffer view for ${e}`),i&&h(t,r,i,u);break}case a.r.NORMAL:{(0,o.vA)(3===t.size);const r=l.getField(e,n.xs);(0,o.vA)(!!r,`No buffer view for ${e}`),r&&m(t,s,r,u);break}case a.r.NORMALCOMPRESSED:case a.r.PROFILERIGHT:case a.r.PROFILEUP:{(0,o.vA)(2===t.size);const r=l.getField(e,n.mJ);(0,o.vA)(!!r,`No buffer view for ${e}`),r&&c(t,r,u);break}case a.r.UV0:{(0,o.vA)(2===t.size);const r=l.getField(e,n.gH);(0,o.vA)(!!r,`No buffer view for ${e}`),r&&c(t,r,u);break}case a.r.COLOR:case a.r.SYMBOLCOLOR:{const r=l.getField(e,n.XP);(0,o.vA)(!!r,`No buffer view for ${e}`),(0,o.vA)(3===t.size||4===t.size),!r||3!==t.size&&4!==t.size||f(t,t.size,r,u);break}case a.r.COLORFEATUREATTRIBUTE:{const r=l.getField(e,n.Y$);(0,o.vA)(!!r,`No buffer view for ${e}`),(0,o.vA)(1===t.size),r&&1===t.size&&function(e,t,r){const{data:i,indices:n}=e,o=t.typedBuffer,a=t.typedBufferStride,s=n.length,c=i[0];r*=a;for(let e=0;e<s;++e)o[r]=c,r+=a}(t,r,u);break}case a.r.TANGENT:{(0,o.vA)(4===t.size);const a=l.getField(e,n.Eq);(0,o.vA)(!!a,`No buffer view for ${e}`),a&&function(e,t,r,n,o=1){if(!t)return void d(e,r,n,o);const{data:a,indices:s}=e,c=t,l=r.typedBuffer,u=r.typedBufferStride,h=s.length,m=c[0],f=c[1],p=c[2],v=c[4],g=c[5],_=c[6],T=c[8],x=c[9],b=c[10],A=!(0,i.ut)(c),E=1e-6,S=1-E;if(n*=u,1===o)for(let e=0;e<h;++e){const t=4*s[e],r=a[t],i=a[t+1],o=a[t+2],c=a[t+3];let d=m*r+v*i+T*o,h=f*r+g*i+x*o,M=p*r+_*i+b*o;if(A){const e=d*d+h*h+M*M;if(e<S&&e>E){const t=1/Math.sqrt(e);d*=t,h*=t,M*=t}}l[n]=d,l[n+1]=h,l[n+2]=M,l[n+3]=c,n+=u}else for(let e=0;e<h;++e){const t=4*s[e],r=a[t],i=a[t+1],c=a[t+2],d=a[t+3];let h=m*r+v*i+T*c,M=f*r+g*i+x*c,C=p*r+_*i+b*c;if(A){const e=h*h+M*M+C*C;if(e<S&&e>E){const t=1/Math.sqrt(e);h*=t,M*=t,C*=t}}for(let e=0;e<o;++e)l[n]=h,l[n+1]=M,l[n+2]=C,l[n+3]=d,n+=u}}(t,r,a,u);break}case a.r.PROFILEVERTEXANDNORMAL:case a.r.FEATUREVALUE:{(0,o.vA)(4===t.size);const r=l.getField(e,n.Eq);(0,o.vA)(!!r,`No buffer view for ${e}`),r&&d(t,r,u)}break;case a.r.PROFILEAUXDATA:{(0,o.vA)(2===t.size);const r=l.getField(e,n.gH);(0,o.vA)(!!r,`No buffer view for ${e}`),r&&c(t,r,u)}}}},60517:(e,t,r)=>{r.d(t,{z:()=>d});var i=r(49255),n=r(22911),o=r(80896),a=r(63365),s=r(31821),c=r(59643),l=r(49788);function d(e,t){e.include(o.Q,t),e.include(n.NL,t),e.fragment.include(a.a);const r=t.output===i.V.ObjectAndLayerIdColor,d=(0,i.LG)(t.output),u=(0,i.RN)(t.output)&&t.oitPass===c.Y.ColorAlpha,h=(0,i.RN)(t.output)&&t.oitPass!==c.Y.ColorAlpha,m=t.discardInvisibleFragments;let f=0;(h||d||u)&&e.outputs.add("fragColor","vec4",f++),d&&e.outputs.add("fragEmission","vec4",f++),u&&e.outputs.add("fragAlpha","float",f++),e.fragment.code.add(s.H`
677
+ `)}(o=i||(i={}))[o.Disabled=0]="Disabled",o[o.Normal=1]="Normal",o[o.Schematic=2]="Schematic",o[o.Water=3]="Water",o[o.WaterOnIntegratedMesh=4]="WaterOnIntegratedMesh",o[o.Simplified=5]="Simplified",o[o.TerrainWithWater=6]="TerrainWithWater",o[o.COUNT=7]="COUNT",h.Y},59643:(e,t,r)=>{var i;r.d(t,{Y:()=>i}),function(e){e[e.NONE=0]="NONE",e[e.ColorAlpha=1]="ColorAlpha",e[e.FrontFace=2]="FrontFace",e[e.COUNT=3]="COUNT"}(i||(i={}))},59907:(e,t,r)=>{r.d(t,{Hk:()=>h,Pq:()=>u,SA:()=>v,Ut:()=>d,p1:()=>m,tH:()=>f,tb:()=>p,uO:()=>s});var i=r(58083),o=r(13030),n=r(620),a=r(46540);function s(e,t,r,i=1){const{data:o,indices:n}=e,a=t.typedBuffer,s=t.typedBufferStride,c=n.length;if(r*=s,1===i)for(let e=0;e<c;++e)a[r]=o[n[e]],r+=s;else for(let e=0;e<c;++e){const t=o[n[e]];for(let e=0;e<i;e++)a[r]=t,r+=s}}function c(e,t,r){const{data:i,indices:o}=e,n=t.typedBuffer,a=t.typedBufferStride,s=o.length;r*=a;for(let e=0;e<s;++e){const t=2*o[e];n[r]=i[t],n[r+1]=i[t+1],r+=a}}function l(e,t,r,i=1){const{data:o,indices:n}=e,a=t.typedBuffer,s=t.typedBufferStride,c=n.length;if(r*=s,1===i)for(let e=0;e<c;++e){const t=3*n[e];a[r]=o[t],a[r+1]=o[t+1],a[r+2]=o[t+2],r+=s}else for(let e=0;e<c;++e){const t=3*n[e];for(let e=0;e<i;++e)a[r]=o[t],a[r+1]=o[t+1],a[r+2]=o[t+2],r+=s}}function d(e,t,r,i=1){const{data:o,indices:n}=e,a=t.typedBuffer,s=t.typedBufferStride,c=n.length;if(r*=s,1===i)for(let e=0;e<c;++e){const t=4*n[e];a[r]=o[t],a[r+1]=o[t+1],a[r+2]=o[t+2],a[r+3]=o[t+3],r+=s}else for(let e=0;e<c;++e){const t=4*n[e];for(let e=0;e<i;++e)a[r]=o[t],a[r+1]=o[t+1],a[r+2]=o[t+2],a[r+3]=o[t+3],r+=s}}function u(e,t,r){const i=e.typedBuffer,o=e.typedBufferStride;t*=o;for(let e=0;e<r;++e)i[t]=0,i[t+1]=0,i[t+2]=0,i[t+3]=0,t+=o}function h(e,t,r,o,n=1){if(!t)return void l(e,r,o,n);const{data:a,indices:s}=e,c=r.typedBuffer,d=r.typedBufferStride,u=s.length,h=t[0],m=t[1],p=t[2],f=t[4],v=t[5],g=t[6],_=t[8],T=t[9],x=t[10],b=t[12],A=t[13],E=t[14];o*=d;let S=0,M=0,w=0;const C=(0,i.tZ)(t)?e=>{S=a[e]+b,M=a[e+1]+A,w=a[e+2]+E}:e=>{const t=a[e],r=a[e+1],i=a[e+2];S=h*t+f*r+_*i+b,M=m*t+v*r+T*i+A,w=p*t+g*r+x*i+E};if(1===n)for(let e=0;e<u;++e)C(3*s[e]),c[o]=S,c[o+1]=M,c[o+2]=w,o+=d;else for(let e=0;e<u;++e){C(3*s[e]);for(let e=0;e<n;++e)c[o]=S,c[o+1]=M,c[o+2]=w,o+=d}}function m(e,t,r,o,n=1){if(!t)return void l(e,r,o,n);const{data:a,indices:s}=e,c=t,d=r.typedBuffer,u=r.typedBufferStride,h=s.length,m=c[0],p=c[1],f=c[2],v=c[4],g=c[5],_=c[6],T=c[8],x=c[9],b=c[10],A=!(0,i.ut)(c),E=1e-6,S=1-E;o*=u;let M=0,w=0,C=0;const R=(0,i.tZ)(c)?e=>{M=a[e],w=a[e+1],C=a[e+2]}:e=>{const t=a[e],r=a[e+1],i=a[e+2];M=m*t+v*r+T*i,w=p*t+g*r+x*i,C=f*t+_*r+b*i};if(1===n)if(A)for(let e=0;e<h;++e){R(3*s[e]);const t=M*M+w*w+C*C;if(t<S&&t>E){const e=1/Math.sqrt(t);d[o]=M*e,d[o+1]=w*e,d[o+2]=C*e}else d[o]=M,d[o+1]=w,d[o+2]=C;o+=u}else for(let e=0;e<h;++e)R(3*s[e]),d[o]=M,d[o+1]=w,d[o+2]=C,o+=u;else for(let e=0;e<h;++e){if(R(3*s[e]),A){const e=M*M+w*w+C*C;if(e<S&&e>E){const t=1/Math.sqrt(e);M*=t,w*=t,C*=t}}for(let e=0;e<n;++e)d[o]=M,d[o+1]=w,d[o+2]=C,o+=u}}function p(e,t,r,i,o=1){const{data:n,indices:a}=e,s=r.typedBuffer,c=r.typedBufferStride,l=a.length;if(i*=c,t!==n.length||4!==t)if(1!==o)if(4!==t)for(let e=0;e<l;++e){const t=3*a[e];for(let e=0;e<o;++e)s[i]=n[t],s[i+1]=n[t+1],s[i+2]=n[t+2],s[i+3]=255,i+=c}else for(let e=0;e<l;++e){const t=4*a[e];for(let e=0;e<o;++e)s[i]=n[t],s[i+1]=n[t+1],s[i+2]=n[t+2],s[i+3]=n[t+3],i+=c}else{if(4===t){for(let e=0;e<l;++e){const t=4*a[e];s[i]=n[t],s[i+1]=n[t+1],s[i+2]=n[t+2],s[i+3]=n[t+3],i+=c}return}for(let e=0;e<l;++e){const t=3*a[e];s[i]=n[t],s[i+1]=n[t+1],s[i+2]=n[t+2],s[i+3]=255,i+=c}}else{s[i]=n[0],s[i+1]=n[1],s[i+2]=n[2],s[i+3]=n[3];const e=new Uint32Array(r.typedBuffer.buffer,r.start),t=c/4,a=e[i/=4];i+=t;const d=l*o;for(let r=1;r<d;++r)e[i]=a,i+=t}}function f(e,t,r,i,o=1){const n=t.typedBuffer,a=t.typedBufferStride;if(i*=a,1===o)for(let t=0;t<r;++t)n[i]=e[0],n[i+1]=e[1],n[i+2]=e[2],n[i+3]=e[3],i+=a;else for(let t=0;t<r;++t)for(let t=0;t<o;++t)n[i]=e[0],n[i+1]=e[1],n[i+2]=e[2],n[i+3]=e[3],i+=a}function v(e,t,r,i,n,s,c){let l={numItems:0,numVerticesPerItem:0};for(const d of r.fields.keys()){const r=e.get(d),u=r?.indices;if(r&&u)d===a.r.POSITION&&(l={numItems:1,numVerticesPerItem:u.length}),g(d,r,i,n,s,c);else if(d===a.r.OBJECTANDLAYERIDCOLOR&&null!=t){const r=e.get(a.r.POSITION)?.indices;if(r){const e=r.length;f(t,s.getField(d,o.XP),e,c)}}}return l}function g(e,t,r,s,l,u){switch(e){case a.r.POSITION:{(0,n.vA)(3===t.size);const i=l.getField(e,o.xs);(0,n.vA)(!!i,`No buffer view for ${e}`),i&&h(t,r,i,u);break}case a.r.NORMAL:{(0,n.vA)(3===t.size);const r=l.getField(e,o.xs);(0,n.vA)(!!r,`No buffer view for ${e}`),r&&m(t,s,r,u);break}case a.r.NORMALCOMPRESSED:case a.r.PROFILERIGHT:case a.r.PROFILEUP:{(0,n.vA)(2===t.size);const r=l.getField(e,o.mJ);(0,n.vA)(!!r,`No buffer view for ${e}`),r&&c(t,r,u);break}case a.r.UV0:{(0,n.vA)(2===t.size);const r=l.getField(e,o.gH);(0,n.vA)(!!r,`No buffer view for ${e}`),r&&c(t,r,u);break}case a.r.COLOR:case a.r.SYMBOLCOLOR:{const r=l.getField(e,o.XP);(0,n.vA)(!!r,`No buffer view for ${e}`),(0,n.vA)(3===t.size||4===t.size),!r||3!==t.size&&4!==t.size||p(t,t.size,r,u);break}case a.r.COLORFEATUREATTRIBUTE:{const r=l.getField(e,o.Y$);(0,n.vA)(!!r,`No buffer view for ${e}`),(0,n.vA)(1===t.size),r&&1===t.size&&function(e,t,r){const{data:i,indices:o}=e,n=t.typedBuffer,a=t.typedBufferStride,s=o.length,c=i[0];r*=a;for(let e=0;e<s;++e)n[r]=c,r+=a}(t,r,u);break}case a.r.TANGENT:{(0,n.vA)(4===t.size);const a=l.getField(e,o.Eq);(0,n.vA)(!!a,`No buffer view for ${e}`),a&&function(e,t,r,o,n=1){if(!t)return void d(e,r,o,n);const{data:a,indices:s}=e,c=t,l=r.typedBuffer,u=r.typedBufferStride,h=s.length,m=c[0],p=c[1],f=c[2],v=c[4],g=c[5],_=c[6],T=c[8],x=c[9],b=c[10],A=!(0,i.ut)(c),E=1e-6,S=1-E;if(o*=u,1===n)for(let e=0;e<h;++e){const t=4*s[e],r=a[t],i=a[t+1],n=a[t+2],c=a[t+3];let d=m*r+v*i+T*n,h=p*r+g*i+x*n,M=f*r+_*i+b*n;if(A){const e=d*d+h*h+M*M;if(e<S&&e>E){const t=1/Math.sqrt(e);d*=t,h*=t,M*=t}}l[o]=d,l[o+1]=h,l[o+2]=M,l[o+3]=c,o+=u}else for(let e=0;e<h;++e){const t=4*s[e],r=a[t],i=a[t+1],c=a[t+2],d=a[t+3];let h=m*r+v*i+T*c,M=p*r+g*i+x*c,w=f*r+_*i+b*c;if(A){const e=h*h+M*M+w*w;if(e<S&&e>E){const t=1/Math.sqrt(e);h*=t,M*=t,w*=t}}for(let e=0;e<n;++e)l[o]=h,l[o+1]=M,l[o+2]=w,l[o+3]=d,o+=u}}(t,r,a,u);break}case a.r.PROFILEVERTEXANDNORMAL:case a.r.FEATUREVALUE:{(0,n.vA)(4===t.size);const r=l.getField(e,o.Eq);(0,n.vA)(!!r,`No buffer view for ${e}`),r&&d(t,r,u)}break;case a.r.PROFILEAUXDATA:{(0,n.vA)(2===t.size);const r=l.getField(e,o.gH);(0,n.vA)(!!r,`No buffer view for ${e}`),r&&c(t,r,u)}}}},60517:(e,t,r)=>{r.d(t,{z:()=>d});var i=r(49255),o=r(22911),n=r(80896),a=r(63365),s=r(31821),c=r(59643),l=r(49788);function d(e,t){e.include(n.Q,t),e.include(o.NL,t),e.fragment.include(a.a);const r=t.output===i.V.ObjectAndLayerIdColor,d=(0,i.LG)(t.output),u=(0,i.RN)(t.output)&&t.oitPass===c.Y.ColorAlpha,h=(0,i.RN)(t.output)&&t.oitPass!==c.Y.ColorAlpha,m=t.discardInvisibleFragments;let p=0;(h||d||u)&&e.outputs.add("fragColor","vec4",p++),d&&e.outputs.add("fragEmission","vec4",p++),u&&e.outputs.add("fragAlpha","float",p++),e.fragment.code.add(s.H`
592
678
  void outputColorHighlightOID(vec4 finalColor, const in vec3 vWorldPosition) {
593
679
  ${(0,s.If)(r,"finalColor.a = 1.0;")}
594
680
 
@@ -602,7 +688,7 @@ float occlusion;`),h&&n.uniforms.add(v===u.c.Pass?new d.N("texMetallicRoughness"
602
688
  calculateOcclusionAndOutputHighlight();
603
689
  ${(0,s.If)(r,"outputObjectAndLayerIdColor();")}
604
690
  }
605
- `)}},62298:(e,t,r)=>{r.d(t,{_:()=>n});var i=r(63907);function n(e){switch(e){case i.pe.BYTE:case i.pe.UNSIGNED_BYTE:return 1;case i.pe.SHORT:case i.pe.UNSIGNED_SHORT:case i.pe.HALF_FLOAT:return 2;case i.pe.FLOAT:case i.pe.INT:case i.pe.UNSIGNED_INT:return 4}}},62602:(e,t,r)=>{r.d(t,{W:()=>i,r:()=>s});var i,n,o=r(21818),a=r(31821);function s(e,t){const r=e.fragment;switch(r.code.add(a.H`struct ShadingNormalParameters {
691
+ `)}},62298:(e,t,r)=>{r.d(t,{_:()=>o});var i=r(63907);function o(e){switch(e){case i.pe.BYTE:case i.pe.UNSIGNED_BYTE:return 1;case i.pe.SHORT:case i.pe.UNSIGNED_SHORT:case i.pe.HALF_FLOAT:return 2;case i.pe.FLOAT:case i.pe.INT:case i.pe.UNSIGNED_INT:return 4}}},62602:(e,t,r)=>{r.d(t,{W:()=>i,r:()=>s});var i,o,n=r(21818),a=r(31821);function s(e,t){const r=e.fragment;switch(r.code.add(a.H`struct ShadingNormalParameters {
606
692
  vec3 normalView;
607
693
  vec3 viewDirection;
608
694
  } shadingParams;`),t.doubleSidedMode){case i.None:r.code.add(a.H`vec3 shadingNormal(ShadingNormalParameters params) {
@@ -611,7 +697,7 @@ return normalize(params.normalView);
611
697
  return dot(params.normalView, params.viewDirection) > 0.0 ? normalize(-params.normalView) : normalize(params.normalView);
612
698
  }`);break;case i.WindingOrder:r.code.add(a.H`vec3 shadingNormal(ShadingNormalParameters params) {
613
699
  return gl_FrontFacing ? normalize(params.normalView) : normalize(-params.normalView);
614
- }`);break;default:(0,o.Xb)(t.doubleSidedMode);case i.COUNT:}}(n=i||(i={}))[n.None=0]="None",n[n.View=1]="View",n[n.WindingOrder=2]="WindingOrder",n[n.COUNT=3]="COUNT"},63365:(e,t,r)=>{r.d(t,{a:()=>n});var i=r(31821);function n(e){e.code.add(i.H`vec4 premultiplyAlpha(vec4 v) {
700
+ }`);break;default:(0,n.Xb)(t.doubleSidedMode);case i.COUNT:}}(o=i||(i={}))[o.None=0]="None",o[o.View=1]="View",o[o.WindingOrder=2]="WindingOrder",o[o.COUNT=3]="COUNT"},63365:(e,t,r)=>{r.d(t,{a:()=>o});var i=r(31821);function o(e){e.code.add(i.H`vec4 premultiplyAlpha(vec4 v) {
615
701
  return vec4(v.rgb * v.a, v.a);
616
702
  }
617
703
  vec3 rgb2hsv(vec3 c) {
@@ -629,20 +715,20 @@ return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
629
715
  }
630
716
  float rgb2v(vec3 c) {
631
717
  return max(c.x, max(c.y, c.z));
632
- }`)}},63761:(e,t,r)=>{r.d(t,{N:()=>o});var i=r(69270),n=r(74333);class o extends n.n{constructor(e,t){super(e,"sampler2D",i.c.Pass,((r,i,n)=>r.bindTexture(e,t(i,n))))}}},65786:(e,t,r)=>{r.d(t,{Y:()=>i});const i=class{};new i},67171:(e,t,r)=>{r.d(t,{R:()=>o,e:()=>a});var i=r(63907),n=r(42293);class o{constructor(e=0,t=e){this.width=e,this.height=t,this.target=i.Ap.TEXTURE_2D,this.pixelFormat=i.Ab.RGBA,this.dataType=i.ld.UNSIGNED_BYTE,this.samplingMode=i.Cj.LINEAR,this.wrapMode=i.pF.REPEAT,this.maxAnisotropy=1,this.flipped=!1,this.hasMipmap=!1,this.isOpaque=!1,this.unpackAlignment=4,this.preMultiplyAlpha=!1,this.shouldCompress=!1,this.depth=1,this.isImmutable=!1}}function a(e){return e.width<=0||e.height<=0||e.depth<=0?0:Math.round(e.width*e.height*e.depth*(e.hasMipmap?4/3:1)*(null==e.internalFormat?4:(0,n.IB)(e.internalFormat))*(e.target===i.Ap.TEXTURE_CUBE_MAP?6:1))}},68259:(e,t,r)=>{r.d(t,{t:()=>o});var i=r(69270),n=r(74333);class o extends n.n{constructor(e,t){super(e,"vec2",i.c.Draw,((r,i,n,o)=>r.setUniform2fv(e,t(i,n,o))))}}},69720:(e,t,r)=>{r.d(t,{J:()=>n});var i=r(24326);class n{constructor(){this.id=(0,i.c)()}}},71955:(e,t,r)=>{r.d(t,{K:()=>d});var i=r(42583),n=r(31821),o=r(69270),a=r(74333);class s extends a.n{constructor(e,t){super(e,"int",o.c.Pass,((r,i,n)=>r.setUniform1i(e,t(i,n))))}}var c=r(46540),l=r(43616);function d(e,t){t.hasSymbolColors?(e.include(i.A),e.attributes.add(c.r.SYMBOLCOLOR,"vec4"),e.varyings.add("colorMixMode","mediump float"),e.vertex.code.add(n.H`int symbolColorMixMode;
718
+ }`)}},63761:(e,t,r)=>{r.d(t,{N:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"sampler2D",i.c.Pass,((r,i,o)=>r.bindTexture(e,t(i,o))))}}},65786:(e,t,r)=>{r.d(t,{Y:()=>i});const i=class{};new i},67171:(e,t,r)=>{r.d(t,{R:()=>n,e:()=>a});var i=r(63907),o=r(42293);class n{constructor(e=0,t=e){this.width=e,this.height=t,this.target=i.Ap.TEXTURE_2D,this.pixelFormat=i.Ab.RGBA,this.dataType=i.ld.UNSIGNED_BYTE,this.samplingMode=i.Cj.LINEAR,this.wrapMode=i.pF.REPEAT,this.maxAnisotropy=1,this.flipped=!1,this.hasMipmap=!1,this.isOpaque=!1,this.unpackAlignment=4,this.preMultiplyAlpha=!1,this.shouldCompress=!1,this.depth=1,this.isImmutable=!1}}function a(e){return e.width<=0||e.height<=0||e.depth<=0?0:Math.round(e.width*e.height*e.depth*(e.hasMipmap?4/3:1)*(null==e.internalFormat?4:(0,o.IB)(e.internalFormat))*(e.target===i.Ap.TEXTURE_CUBE_MAP?6:1))}},68259:(e,t,r)=>{r.d(t,{t:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec2",i.c.Draw,((r,i,o,n)=>r.setUniform2fv(e,t(i,o,n))))}}},69720:(e,t,r)=>{r.d(t,{J:()=>o});var i=r(24326);class o{constructor(){this.id=(0,i.c)()}}},71955:(e,t,r)=>{r.d(t,{K:()=>d});var i=r(42583),o=r(31821),n=r(69270),a=r(74333);class s extends a.n{constructor(e,t){super(e,"int",n.c.Pass,((r,i,o)=>r.setUniform1i(e,t(i,o))))}}var c=r(46540),l=r(43616);function d(e,t){t.hasSymbolColors?(e.include(i.A),e.attributes.add(c.r.SYMBOLCOLOR,"vec4"),e.varyings.add("colorMixMode","mediump float"),e.vertex.code.add(o.H`int symbolColorMixMode;
633
719
  vec4 getSymbolColor() {
634
720
  return decodeSymbolColor(symbolColor, symbolColorMixMode) * 0.003921568627451;
635
721
  }
636
722
  void forwardColorMixMode() {
637
723
  colorMixMode = float(symbolColorMixMode) + 0.5;
638
- }`)):(e.fragment.uniforms.add(new s("colorMixMode",(e=>l.Um[e.colorMixMode]))),e.vertex.code.add(n.H`vec4 getSymbolColor() { return vec4(1.0); }
639
- void forwardColorMixMode() {}`))}},71988:(e,t,r)=>{r.d(t,{E:()=>o});var i=r(69270),n=r(74333);class o extends n.n{constructor(e,t){super(e,"vec4",i.c.Pass,((r,i,n)=>r.setUniform4fv(e,t(i,n))))}}},72824:(e,t,r)=>{r.d(t,{Mh:()=>u,Zo:()=>h,gy:()=>m});var i=r(21818),n=r(29242),o=r(91829),a=r(96336),s=r(33752),c=r(31821),l=r(98353),d=r(35644);function u(e,t){switch(t.normalType){case a.W.Attribute:case a.W.Compressed:e.include(a.Y,t),e.varyings.add("vNormalWorld","vec3"),e.varyings.add("vNormalView","vec3"),e.vertex.uniforms.add(new l.h("transformNormalGlobalFromModel",(e=>e.transformNormalGlobalFromModel)),new d.k("transformNormalViewFromGlobal",(e=>e.transformNormalViewFromGlobal))),e.vertex.code.add(c.H`void forwardNormal() {
724
+ }`)):(e.fragment.uniforms.add(new s("colorMixMode",(e=>l.Um[e.colorMixMode]))),e.vertex.code.add(o.H`vec4 getSymbolColor() { return vec4(1.0); }
725
+ void forwardColorMixMode() {}`))}},71988:(e,t,r)=>{r.d(t,{E:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec4",i.c.Pass,((r,i,o)=>r.setUniform4fv(e,t(i,o))))}}},72824:(e,t,r)=>{r.d(t,{Mh:()=>u,Zo:()=>h,gy:()=>m});var i=r(21818),o=r(29242),n=r(91829),a=r(96336),s=r(33752),c=r(31821),l=r(98353),d=r(35644);function u(e,t){switch(t.normalType){case a.W.Attribute:case a.W.Compressed:e.include(a.Y,t),e.varyings.add("vNormalWorld","vec3"),e.varyings.add("vNormalView","vec3"),e.vertex.uniforms.add(new l.h("transformNormalGlobalFromModel",(e=>e.transformNormalGlobalFromModel)),new d.k("transformNormalViewFromGlobal",(e=>e.transformNormalViewFromGlobal))),e.vertex.code.add(c.H`void forwardNormal() {
640
726
  vNormalWorld = transformNormalGlobalFromModel * normalModel();
641
727
  vNormalView = transformNormalViewFromGlobal * vNormalWorld;
642
- }`);break;case a.W.ScreenDerivative:e.vertex.code.add(c.H`void forwardNormal() {}`);break;default:(0,i.Xb)(t.normalType);case a.W.COUNT:}}class h extends s.dO{constructor(){super(...arguments),this.transformNormalViewFromGlobal=(0,n.vt)()}}class m extends s.EM{constructor(){super(...arguments),this.transformNormalGlobalFromModel=(0,n.vt)(),this.toMapSpace=(0,o.vt)()}}},74081:(e,t,r)=>{r.d(t,{kA:()=>M,a8:()=>E,eU:()=>S});var i=r(40876),n=r(21818),o=r(38954),a=r(51850),s=r(87317),c=r(91829),l=r(59469),d=r(23205),u=r(14314),h=r(31821);function m(e,t){const r=e.fragment,i=void 0!==t.lightingSphericalHarmonicsOrder?t.lightingSphericalHarmonicsOrder:2;0===i?(r.uniforms.add(new d.d("lightingAmbientSH0",(({lighting:e})=>(0,o.i)(f,e.sh.r[0],e.sh.g[0],e.sh.b[0])))),r.code.add(h.H`vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {
728
+ }`);break;case a.W.ScreenDerivative:e.vertex.code.add(c.H`void forwardNormal() {}`);break;default:(0,i.Xb)(t.normalType);case a.W.COUNT:}}class h extends s.dO{constructor(){super(...arguments),this.transformNormalViewFromGlobal=(0,o.vt)()}}class m extends s.EM{constructor(){super(...arguments),this.transformNormalGlobalFromModel=(0,o.vt)(),this.toMapSpace=(0,n.vt)()}}},74081:(e,t,r)=>{r.d(t,{kA:()=>M,a8:()=>E,eU:()=>S});var i=r(40876),o=r(21818),n=r(38954),a=r(51850),s=r(87317),c=r(91829),l=r(59469),d=r(23205),u=r(14314),h=r(31821);function m(e,t){const r=e.fragment,i=void 0!==t.lightingSphericalHarmonicsOrder?t.lightingSphericalHarmonicsOrder:2;0===i?(r.uniforms.add(new d.d("lightingAmbientSH0",(({lighting:e})=>(0,n.i)(p,e.sh.r[0],e.sh.g[0],e.sh.b[0])))),r.code.add(h.H`vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {
643
729
  vec3 ambientLight = 0.282095 * lightingAmbientSH0;
644
730
  return ambientLight * (1.0 - ambientOcclusion);
645
- }`)):1===i?(r.uniforms.add(new u.I("lightingAmbientSH_R",(({lighting:e})=>(0,s.s)(p,e.sh.r[0],e.sh.r[1],e.sh.r[2],e.sh.r[3]))),new u.I("lightingAmbientSH_G",(({lighting:e})=>(0,s.s)(p,e.sh.g[0],e.sh.g[1],e.sh.g[2],e.sh.g[3]))),new u.I("lightingAmbientSH_B",(({lighting:e})=>(0,s.s)(p,e.sh.b[0],e.sh.b[1],e.sh.b[2],e.sh.b[3])))),r.code.add(h.H`vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {
731
+ }`)):1===i?(r.uniforms.add(new u.I("lightingAmbientSH_R",(({lighting:e})=>(0,s.s)(f,e.sh.r[0],e.sh.r[1],e.sh.r[2],e.sh.r[3]))),new u.I("lightingAmbientSH_G",(({lighting:e})=>(0,s.s)(f,e.sh.g[0],e.sh.g[1],e.sh.g[2],e.sh.g[3]))),new u.I("lightingAmbientSH_B",(({lighting:e})=>(0,s.s)(f,e.sh.b[0],e.sh.b[1],e.sh.b[2],e.sh.b[3])))),r.code.add(h.H`vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {
646
732
  vec4 sh0 = vec4(
647
733
  0.282095,
648
734
  0.488603 * normal.x,
@@ -655,7 +741,7 @@ dot(lightingAmbientSH_G, sh0),
655
741
  dot(lightingAmbientSH_B, sh0)
656
742
  );
657
743
  return ambientLight * (1.0 - ambientOcclusion);
658
- }`)):2===i&&(r.uniforms.add(new d.d("lightingAmbientSH0",(({lighting:e})=>(0,o.i)(f,e.sh.r[0],e.sh.g[0],e.sh.b[0]))),new u.I("lightingAmbientSH_R1",(({lighting:e})=>(0,s.s)(p,e.sh.r[1],e.sh.r[2],e.sh.r[3],e.sh.r[4]))),new u.I("lightingAmbientSH_G1",(({lighting:e})=>(0,s.s)(p,e.sh.g[1],e.sh.g[2],e.sh.g[3],e.sh.g[4]))),new u.I("lightingAmbientSH_B1",(({lighting:e})=>(0,s.s)(p,e.sh.b[1],e.sh.b[2],e.sh.b[3],e.sh.b[4]))),new u.I("lightingAmbientSH_R2",(({lighting:e})=>(0,s.s)(p,e.sh.r[5],e.sh.r[6],e.sh.r[7],e.sh.r[8]))),new u.I("lightingAmbientSH_G2",(({lighting:e})=>(0,s.s)(p,e.sh.g[5],e.sh.g[6],e.sh.g[7],e.sh.g[8]))),new u.I("lightingAmbientSH_B2",(({lighting:e})=>(0,s.s)(p,e.sh.b[5],e.sh.b[6],e.sh.b[7],e.sh.b[8])))),r.code.add(h.H`vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {
744
+ }`)):2===i&&(r.uniforms.add(new d.d("lightingAmbientSH0",(({lighting:e})=>(0,n.i)(p,e.sh.r[0],e.sh.g[0],e.sh.b[0]))),new u.I("lightingAmbientSH_R1",(({lighting:e})=>(0,s.s)(f,e.sh.r[1],e.sh.r[2],e.sh.r[3],e.sh.r[4]))),new u.I("lightingAmbientSH_G1",(({lighting:e})=>(0,s.s)(f,e.sh.g[1],e.sh.g[2],e.sh.g[3],e.sh.g[4]))),new u.I("lightingAmbientSH_B1",(({lighting:e})=>(0,s.s)(f,e.sh.b[1],e.sh.b[2],e.sh.b[3],e.sh.b[4]))),new u.I("lightingAmbientSH_R2",(({lighting:e})=>(0,s.s)(f,e.sh.r[5],e.sh.r[6],e.sh.r[7],e.sh.r[8]))),new u.I("lightingAmbientSH_G2",(({lighting:e})=>(0,s.s)(f,e.sh.g[5],e.sh.g[6],e.sh.g[7],e.sh.g[8]))),new u.I("lightingAmbientSH_B2",(({lighting:e})=>(0,s.s)(f,e.sh.b[5],e.sh.b[6],e.sh.b[7],e.sh.b[8])))),r.code.add(h.H`vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {
659
745
  vec3 ambientLight = 0.282095 * lightingAmbientSH0;
660
746
  vec4 sh1 = vec4(
661
747
  0.488603 * normal.x,
@@ -685,7 +771,7 @@ vec3 calculateAmbientRadiance(float ambientOcclusion)
685
771
  {
686
772
  vec3 ambientLight = 1.2 * (0.282095 * lightingAmbientSH0) - 0.2;
687
773
  return ambientLight *= (1.0 - ambientOcclusion) * skyTransmittance;
688
- }`))}const f=(0,a.vt)(),p=(0,c.vt)();var v=r(54849),g=r(98619),_=r(22393),T=r(89786),x=r(32976),b=r(33094);r(34727),(0,a.vt)();const A=.4;function E(e){e.constants.add("ambientBoostFactor","float",A)}function S(e){e.uniforms.add(new b.U("lightingGlobalFactor",(e=>e.lighting.globalFactor)))}function M(e,t){const r=e.fragment;switch(e.include(v.n,t),t.pbrMode!==l.A9.Disabled&&e.include(_.c,t),e.include(m,t),e.include(T.p),r.code.add(h.H`
774
+ }`))}const p=(0,a.vt)(),f=(0,c.vt)();var v=r(54849),g=r(98619),_=r(22393),T=r(89786),x=r(32976),b=r(33094);r(34727),(0,a.vt)();const A=.4;function E(e){e.constants.add("ambientBoostFactor","float",A)}function S(e){e.uniforms.add(new b.U("lightingGlobalFactor",(e=>e.lighting.globalFactor)))}function M(e,t){const r=e.fragment;switch(e.include(v.n,t),t.pbrMode!==l.A9.Disabled&&e.include(_.c,t),e.include(m,t),e.include(T.p),r.code.add(h.H`
689
775
  const float GAMMA_SRGB = ${h.H.float(i.Tf)};
690
776
  const float INV_GAMMA_SRGB = 0.4761904;
691
777
  ${t.pbrMode===l.A9.Disabled?"":"const vec3 GROUND_REFLECTANCE = vec3(0.2);"}
@@ -774,7 +860,7 @@ vec3 specularComponent = specularityTerrain * specularColor * mainLightRadianceC
774
860
  vec3 outColorLinear = outDiffColor + specularComponent;
775
861
  vec3 outColor = pow(outColorLinear, vec3(INV_GAMMA_SRGB));
776
862
  return outColor;
777
- }`);break;default:(0,n.Xb)(t.pbrMode);case l.A9.COUNT:}}(0,a.vt)()},74810:(e,t,r)=>{r.d(t,{Bt:()=>s,Jr:()=>o,SY:()=>c,mb:()=>a});var i=r(38954),n=r(51850);function o({normalTexture:e,metallicRoughnessTexture:t,metallicFactor:r,roughnessFactor:o,emissiveTexture:a,emissiveFactor:s,occlusionTexture:c}){return null==e&&null==t&&null==a&&(null==s||(0,i.p)(s,n.uY))&&null==c&&(null==o||1===o)&&(null==r||1===r)}const a=(0,n.CN)(1,1,.5),s=(0,n.CN)(0,.6,.2),c=(0,n.CN)(0,1,.2)},76591:(e,t,r)=>{r.d(t,{HQ:()=>l,rA:()=>d});var i=r(58083),n=r(9093),o=r(38954),a=r(51850),s=r(40710),c=(r(33079),r(31821));function l(e,t){!function(e,t,...r){h(e,t,...r),t.hasSlicePlane?e.code.add("\n void discardBySlice(vec3 pos) {\n if (sliceByPlane(pos)) {\n discard;\n }\n }\n\n vec4 applySliceOutline(vec4 color, vec3 pos) {\n SliceFactors factors = calculateSliceFactors(pos);\n\n factors.front /= 2.0 * fwidth(factors.front);\n factors.side0 /= 2.0 * fwidth(factors.side0);\n factors.side1 /= 2.0 * fwidth(factors.side1);\n factors.side2 /= 2.0 * fwidth(factors.side2);\n factors.side3 /= 2.0 * fwidth(factors.side3);\n\n // return after calling fwidth, to avoid aliasing caused by discontinuities in the input to fwidth\n if (sliceByFactors(factors)) {\n return color;\n }\n\n float outlineFactor = (1.0 - step(0.5, factors.front))\n * (1.0 - step(0.5, factors.side0))\n * (1.0 - step(0.5, factors.side1))\n * (1.0 - step(0.5, factors.side2))\n * (1.0 - step(0.5, factors.side3));\n\n return mix(color, vec4(vec3(0.0), color.a), outlineFactor * 0.3);\n }\n\n vec4 applySlice(vec4 color, vec3 pos) {\n return sliceEnabled() ? applySliceOutline(color, pos) : color;\n }\n "):e.code.add(c.H`void discardBySlice(vec3 pos) { }
863
+ }`);break;default:(0,o.Xb)(t.pbrMode);case l.A9.COUNT:}}(0,a.vt)()},74810:(e,t,r)=>{r.d(t,{Bt:()=>s,Jr:()=>n,SY:()=>c,mb:()=>a});var i=r(38954),o=r(51850);function n({normalTexture:e,metallicRoughnessTexture:t,metallicFactor:r,roughnessFactor:n,emissiveTexture:a,emissiveFactor:s,occlusionTexture:c}){return null==e&&null==t&&null==a&&(null==s||(0,i.p)(s,o.uY))&&null==c&&(null==n||1===n)&&(null==r||1===r)}const a=(0,o.CN)(1,1,.5),s=(0,o.CN)(0,.6,.2),c=(0,o.CN)(0,1,.2)},76591:(e,t,r)=>{r.d(t,{HQ:()=>l,rA:()=>d});var i=r(58083),o=r(9093),n=r(38954),a=r(51850),s=r(40710),c=(r(33079),r(31821));function l(e,t){!function(e,t,...r){h(e,t,...r),t.hasSlicePlane?e.code.add("\n void discardBySlice(vec3 pos) {\n if (sliceByPlane(pos)) {\n discard;\n }\n }\n\n vec4 applySliceOutline(vec4 color, vec3 pos) {\n SliceFactors factors = calculateSliceFactors(pos);\n\n factors.front /= 2.0 * fwidth(factors.front);\n factors.side0 /= 2.0 * fwidth(factors.side0);\n factors.side1 /= 2.0 * fwidth(factors.side1);\n factors.side2 /= 2.0 * fwidth(factors.side2);\n factors.side3 /= 2.0 * fwidth(factors.side3);\n\n // return after calling fwidth, to avoid aliasing caused by discontinuities in the input to fwidth\n if (sliceByFactors(factors)) {\n return color;\n }\n\n float outlineFactor = (1.0 - step(0.5, factors.front))\n * (1.0 - step(0.5, factors.side0))\n * (1.0 - step(0.5, factors.side1))\n * (1.0 - step(0.5, factors.side2))\n * (1.0 - step(0.5, factors.side3));\n\n return mix(color, vec4(vec3(0.0), color.a), outlineFactor * 0.3);\n }\n\n vec4 applySlice(vec4 color, vec3 pos) {\n return sliceEnabled() ? applySliceOutline(color, pos) : color;\n }\n "):e.code.add(c.H`void discardBySlice(vec3 pos) { }
778
864
  vec4 applySlice(vec4 color, vec3 pos) { return color; }`)}(e,t,new s.W("slicePlaneOrigin",((e,r)=>v(t,e,r))),new s.W("slicePlaneBasis1",((e,r)=>g(t,e,r,r.slicePlane?.basis1))),new s.W("slicePlaneBasis2",((e,r)=>g(t,e,r,r.slicePlane?.basis2))))}function d(e,t){h(e,t,new s.W("slicePlaneOrigin",((e,r)=>v(t,e,r))),new s.W("slicePlaneBasis1",((e,r)=>g(t,e,r,r.slicePlane?.basis1))),new s.W("slicePlaneBasis2",((e,r)=>g(t,e,r,r.slicePlane?.basis2))))}r(65786).Y;const u=c.H`struct SliceFactors {
779
865
  float front;
780
866
  float side0;
@@ -813,13 +899,13 @@ return sliceEnabled() && sliceByFactors(calculateSliceFactors(pos));
813
899
  }
814
900
  bool rejectBySlice(vec3 pos) {
815
901
  return sliceByPlane(pos);
816
- }`;function h(e,t,...r){t.hasSlicePlane?(e.uniforms.add(...r),e.code.add(u)):e.code.add("bool rejectBySlice(vec3 pos) { return false; }")}function m(e,t,r){return e.instancedDoublePrecision?(0,o.i)(_,r.camera.viewInverseTransposeMatrix[3],r.camera.viewInverseTransposeMatrix[7],r.camera.viewInverseTransposeMatrix[11]):t.slicePlaneLocalOrigin}function f(e,t){return null!=e?(0,o.d)(T,t.origin,e):t.origin}function p(e,t,r){return e.hasSliceTranslatedView?null!=t?(0,i.Tl)(b,r.camera.viewMatrix,t):r.camera.viewMatrix:null}function v(e,t,r){if(null==r.slicePlane)return a.uY;const i=m(e,t,r),n=f(i,r.slicePlane),s=p(e,i,r);return null!=s?(0,o.t)(T,n,s):n}function g(e,t,r,i){if(null==i||null==r.slicePlane)return a.uY;const n=m(e,t,r),s=f(n,r.slicePlane),c=p(e,n,r);return null!=c?((0,o.g)(x,i,s),(0,o.t)(T,s,c),(0,o.t)(x,x,c),(0,o.d)(x,x,T)):i}const _=(0,a.vt)(),T=(0,a.vt)(),x=(0,a.vt)(),b=(0,n.vt)()},76597:(e,t,r)=>{r.d(t,{d:()=>o});var i=r(46686),n=r(31821);function o(e){(0,i.i$)(e),e.vertex.code.add(n.H`vec4 transformPositionWithDepth(mat4 proj, mat4 view, vec3 pos, vec2 nearFar, out float depth) {
902
+ }`;function h(e,t,...r){t.hasSlicePlane?(e.uniforms.add(...r),e.code.add(u)):e.code.add("bool rejectBySlice(vec3 pos) { return false; }")}function m(e,t,r){return e.instancedDoublePrecision?(0,n.i)(_,r.camera.viewInverseTransposeMatrix[3],r.camera.viewInverseTransposeMatrix[7],r.camera.viewInverseTransposeMatrix[11]):t.slicePlaneLocalOrigin}function p(e,t){return null!=e?(0,n.d)(T,t.origin,e):t.origin}function f(e,t,r){return e.hasSliceTranslatedView?null!=t?(0,i.Tl)(b,r.camera.viewMatrix,t):r.camera.viewMatrix:null}function v(e,t,r){if(null==r.slicePlane)return a.uY;const i=m(e,t,r),o=p(i,r.slicePlane),s=f(e,i,r);return null!=s?(0,n.t)(T,o,s):o}function g(e,t,r,i){if(null==i||null==r.slicePlane)return a.uY;const o=m(e,t,r),s=p(o,r.slicePlane),c=f(e,o,r);return null!=c?((0,n.g)(x,i,s),(0,n.t)(T,s,c),(0,n.t)(x,x,c),(0,n.d)(x,x,T)):i}const _=(0,a.vt)(),T=(0,a.vt)(),x=(0,a.vt)(),b=(0,o.vt)()},76597:(e,t,r)=>{r.d(t,{d:()=>n});var i=r(46686),o=r(31821);function n(e){(0,i.i$)(e),e.vertex.code.add(o.H`vec4 transformPositionWithDepth(mat4 proj, mat4 view, vec3 pos, vec2 nearFar, out float depth) {
817
903
  vec4 eye = view * vec4(pos, 1.0);
818
904
  depth = calculateLinearDepth(nearFar,eye.z);
819
905
  return proj * eye;
820
- }`),e.vertex.code.add(n.H`vec4 transformPosition(mat4 proj, mat4 view, vec3 pos) {
906
+ }`),e.vertex.code.add(o.H`vec4 transformPosition(mat4 proj, mat4 view, vec3 pos) {
821
907
  return proj * (view * vec4(pos, 1.0));
822
- }`)}},77108:(e,t,r)=>{r.d(t,{E:()=>o});var i=r(69270),n=r(74333);class o extends n.n{constructor(e,t){super(e,"vec2",i.c.Bind,((r,i)=>r.setUniform2fv(e,t(i))))}}},77194:(e,t,r)=>{r.d(t,{MD:()=>c,cJ:()=>s,hs:()=>l,m0:()=>a});var i=r(34727),n=(r(17352),r(97937));function o(e,t,r){const i=r.parameters;return d.scale=Math.min(i.divisor/(t-i.offset),1),d.factor=function(e){return Math.abs(e*e*e)}(e),d}function a(e,t){return(0,i.Cc)(e*Math.max(t.scale,t.minScaleFactor),e,t.factor)}function s(e,t,r,i){i.scale=function(e,t,r){const i=o(e,t,r);return i.minScaleFactor=0,a(1,i)}(e,t,r),i.factor=0,i.minScaleFactor=r.minScaleFactor}function c(e,t,r=[0,0]){const i=Math.min(Math.max(t.scale,t.minScaleFactor),1);return r[0]=e[0]*i,r[1]=e[1]*i,r}function l(e,t,r,i){return a(e,o(t,r,i))}r(24151),(0,i.kU)(10),(0,i.kU)(12),(0,i.kU)(70),(0,i.kU)(40);const d={scale:0,factor:0,minScaleFactor:0};(0,n.c)()},77695:(e,t,r)=>{r.d(t,{W:()=>p});var i=r(29242),n=r(48163),o=r(53466),a=r(99208),s=r(62602),c=r(47286),l=r(31821),d=r(35644),u=r(15976),h=r(63761),m=r(46540),f=r(69270);function p(e,t){const r=e.fragment;t.hasVertexTangents?(e.attributes.add(m.r.TANGENT,"vec4"),e.varyings.add("vTangent","vec4"),t.doubleSidedMode===s.W.WindingOrder?r.code.add(l.H`mat3 computeTangentSpace(vec3 normal) {
908
+ }`)}},77108:(e,t,r)=>{r.d(t,{E:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec2",i.c.Bind,((r,i)=>r.setUniform2fv(e,t(i))))}}},77194:(e,t,r)=>{r.d(t,{MD:()=>c,cJ:()=>s,hs:()=>l,m0:()=>a});var i=r(34727),o=(r(17352),r(97937));function n(e,t,r){const i=r.parameters;return d.scale=Math.min(i.divisor/(t-i.offset),1),d.factor=function(e){return Math.abs(e*e*e)}(e),d}function a(e,t){return(0,i.Cc)(e*Math.max(t.scale,t.minScaleFactor),e,t.factor)}function s(e,t,r,i){i.scale=function(e,t,r){const i=n(e,t,r);return i.minScaleFactor=0,a(1,i)}(e,t,r),i.factor=0,i.minScaleFactor=r.minScaleFactor}function c(e,t,r=[0,0]){const i=Math.min(Math.max(t.scale,t.minScaleFactor),1);return r[0]=e[0]*i,r[1]=e[1]*i,r}function l(e,t,r,i){return a(e,n(t,r,i))}r(24151),(0,i.kU)(10),(0,i.kU)(12),(0,i.kU)(70),(0,i.kU)(40);const d={scale:0,factor:0,minScaleFactor:0};(0,o.c)()},77695:(e,t,r)=>{r.d(t,{W:()=>f});var i=r(29242),o=r(48163),n=r(53466),a=r(99208),s=r(62602),c=r(47286),l=r(31821),d=r(35644),u=r(15976),h=r(63761),m=r(46540),p=r(69270);function f(e,t){const r=e.fragment;t.hasVertexTangents?(e.attributes.add(m.r.TANGENT,"vec4"),e.varyings.add("vTangent","vec4"),t.doubleSidedMode===s.W.WindingOrder?r.code.add(l.H`mat3 computeTangentSpace(vec3 normal) {
823
909
  float tangentHeadedness = gl_FrontFacing ? vTangent.w : -vTangent.w;
824
910
  vec3 tangent = normalize(gl_FrontFacing ? vTangent.xyz : -vTangent.xyz);
825
911
  vec3 bitangent = cross(normal, tangent) * tangentHeadedness;
@@ -840,12 +926,12 @@ T = T - normal * dot(normal, T);
840
926
  T *= inversesqrt(max(dot(T,T), 1.e-10));
841
927
  vec3 B = sign(det) * cross(normal, T);
842
928
  return mat3(T, B, normal);
843
- }`),t.textureCoordinateType!==o.I.None&&(e.include(a.r,t),r.uniforms.add(t.bindType===f.c.Pass?new h.N("normalTexture",(e=>e.textureNormal)):new u.o("normalTexture",(e=>e.textureNormal))),t.hasNormalTextureTransform&&(r.uniforms.add(new c.G("scale",(e=>e.scale??n.Un))),r.uniforms.add(new d.k("normalTextureTransformMatrix",(e=>e.normalTextureTransformMatrix??i.zK)))),r.code.add(l.H`vec3 computeTextureNormal(mat3 tangentSpace, vec2 uv) {
929
+ }`),t.textureCoordinateType!==n.I.None&&(e.include(a.r,t),r.uniforms.add(t.bindType===p.c.Pass?new h.N("normalTexture",(e=>e.textureNormal)):new u.o("normalTexture",(e=>e.textureNormal))),t.hasNormalTextureTransform&&(r.uniforms.add(new c.G("scale",(e=>e.scale??o.Un))),r.uniforms.add(new d.k("normalTextureTransformMatrix",(e=>e.normalTextureTransformMatrix??i.zK)))),r.code.add(l.H`vec3 computeTextureNormal(mat3 tangentSpace, vec2 uv) {
844
930
  vec3 rawNormal = textureLookup(normalTexture, uv).rgb * 2.0 - 1.0;`),t.hasNormalTextureTransform&&r.code.add(l.H`mat3 normalTextureRotation = mat3(normalTextureTransformMatrix[0][0]/scale[0], normalTextureTransformMatrix[0][1]/scale[1], 0.0,
845
931
  normalTextureTransformMatrix[1][0]/scale[0], normalTextureTransformMatrix[1][1]/scale[1], 0.0,
846
932
  0.0, 0.0, 0.0 );
847
933
  rawNormal.xy = (normalTextureRotation * vec3(rawNormal.x, rawNormal.y, 1.0)).xy;`),r.code.add(l.H`return tangentSpace * rawNormal;
848
- }`))}},78662:(e,t,r)=>{r.d(t,{Gd:()=>u,VC:()=>h}),r(44208);var i,n,o,a=r(34727),s=(r(77690),r(29242),r(58083),r(9093)),c=r(38954),l=r(51850),d=(r(87317),r(91829),r(31756),r(26857),r(65786));(o=i||(i={}))[o.Undefined=0]="Undefined",o[o.DefinedSize=1]="DefinedSize",o[o.DefinedScale=2]="DefinedScale",function(e){e[e.Undefined=0]="Undefined",e[e.DefinedAngle=1]="DefinedAngle"}(n||(n={}));class u extends d.Y{constructor(e){super(),this.vvSize=e?.size??null,this.vvColor=e?.color??null,this.vvOpacity=e?.opacity??null}}function h(e,t,r){if(!t.vvSize)return(0,c.i)(e,1,1,1),e;if(Number.isNaN(r[0]))return(0,c.c)(e,t.vvSize.fallback);for(let i=0;i<3;++i){const n=t.vvSize.offset[i]+r[0]*t.vvSize.factor[i];e[i]=(0,a.qE)(n,t.vvSize.minSize[i],t.vvSize.maxSize[i])}return e}(0,s.vt)(),(0,l.vt)(),(0,s.vt)()},80730:(e,t,r)=>{r.d(t,{U:()=>n});var i=r(31821);function n(e){e.code.add(i.H`const float MAX_RGBA4_FLOAT =
934
+ }`))}},78662:(e,t,r)=>{r.d(t,{Gd:()=>u,VC:()=>h}),r(44208);var i,o,n,a=r(34727),s=(r(77690),r(29242),r(58083),r(9093)),c=r(38954),l=r(51850),d=(r(87317),r(91829),r(31756),r(26857),r(65786));(n=i||(i={}))[n.Undefined=0]="Undefined",n[n.DefinedSize=1]="DefinedSize",n[n.DefinedScale=2]="DefinedScale",function(e){e[e.Undefined=0]="Undefined",e[e.DefinedAngle=1]="DefinedAngle"}(o||(o={}));class u extends d.Y{constructor(e){super(),this.vvSize=e?.size??null,this.vvColor=e?.color??null,this.vvOpacity=e?.opacity??null}}function h(e,t,r){if(!t.vvSize)return(0,c.i)(e,1,1,1),e;if(Number.isNaN(r[0]))return(0,c.c)(e,t.vvSize.fallback);for(let i=0;i<3;++i){const o=t.vvSize.offset[i]+r[0]*t.vvSize.factor[i];e[i]=(0,a.qE)(o,t.vvSize.minSize[i],t.vvSize.maxSize[i])}return e}(0,s.vt)(),(0,l.vt)(),(0,s.vt)()},80730:(e,t,r)=>{r.d(t,{U:()=>o});var i=r(31821);function o(e){e.code.add(i.H`const float MAX_RGBA4_FLOAT =
849
935
  15.0 / 16.0 +
850
936
  15.0 / 16.0 / 16.0 +
851
937
  15.0 / 16.0 / 16.0 / 16.0 +
@@ -865,7 +951,7 @@ const vec4 RGBA4_2_FLOAT_FACTORS = vec4(
865
951
  );
866
952
  float rgba4ToFloat(vec4 rgba) {
867
953
  return dot(rgba, RGBA4_2_FLOAT_FACTORS);
868
- }`)}},80896:(e,t,r)=>{r.d(t,{Q:()=>h});var i=r(31821);function n(e){const{fragment:t}=e;t.code.add(i.H`uint readChannelBits(uint channel, int highlightLevel) {
954
+ }`)}},80896:(e,t,r)=>{r.d(t,{Q:()=>h});var i=r(31821);function o(e){const{fragment:t}=e;t.code.add(i.H`uint readChannelBits(uint channel, int highlightLevel) {
869
955
  int llc = (highlightLevel & 3) << 1;
870
956
  return (channel >> llc) & 3u;
871
957
  }
@@ -875,7 +961,7 @@ return texel[lic];
875
961
  }
876
962
  uint readLevelBits(uvec2 texel, int highlightLevel) {
877
963
  return readChannelBits(readChannel(texel, highlightLevel), highlightLevel);
878
- }`)}var o=r(49255),a=r(69270),s=r(74333);class c extends s.n{constructor(e,t){super(e,"ivec2",a.c.Bind,((r,i)=>r.setUniform2iv(e,t(i))))}}var l=r(35818),d=r(12791);class u extends s.n{constructor(e,t){super(e,"usampler2D",a.c.Pass,((r,i,n)=>r.bindTexture(e,t(i,n))))}}function h(e,t){const{fragment:r}=e;t.output===o.V.Highlight?(r.uniforms.add(new d.x("depthTexture",(e=>e.mainDepth)),new u("highlightMixTexture",((e,t)=>t.highlightMixTexture)),new l.W("highlightLevel",(e=>e.highlightLevel??0)),new c("highlightMixOrigin",(e=>e.highlightMixOrigin))),e.outputs.add("fragHighlight","uvec2",0),e.include(n),r.code.add(i.H`uvec2 getAccumulatedHighlight() {
964
+ }`)}var n=r(49255),a=r(69270),s=r(74333);class c extends s.n{constructor(e,t){super(e,"ivec2",a.c.Bind,((r,i)=>r.setUniform2iv(e,t(i))))}}var l=r(35818),d=r(12791);class u extends s.n{constructor(e,t){super(e,"usampler2D",a.c.Pass,((r,i,o)=>r.bindTexture(e,t(i,o))))}}function h(e,t){const{fragment:r}=e;t.output===n.V.Highlight?(r.uniforms.add(new d.x("depthTexture",(e=>e.mainDepth)),new u("highlightMixTexture",((e,t)=>t.highlightMixTexture)),new l.W("highlightLevel",(e=>e.highlightLevel??0)),new c("highlightMixOrigin",(e=>e.highlightMixOrigin))),e.outputs.add("fragHighlight","uvec2",0),e.include(o),r.code.add(i.H`uvec2 getAccumulatedHighlight() {
879
965
  return texelFetch(highlightMixTexture, ivec2(gl_FragCoord.xy) - highlightMixOrigin, 0).rg;
880
966
  }
881
967
  void outputHighlight(bool occluded) {
@@ -906,33 +992,33 @@ outputHighlight(isHighlightOccluded());
906
992
  uint levelBits = readLevelBits(highlightToAdd, highlightLevel);
907
993
  if ((levelBits & 1u) == 0u) { discard; }
908
994
  outputHighlight(isHighlightOccluded());
909
- }`)):r.code.add(i.H`void calculateOcclusionAndOutputHighlight() {}`)}},82048:(e,t,r)=>{r.d(t,{c:()=>o});var i=r(31821),n=r(46540);function o(e,t=!0){e.attributes.add(n.r.POSITION,"vec2"),t&&e.varyings.add("uv","vec2"),e.vertex.main.add(i.H`
995
+ }`)):r.code.add(i.H`void calculateOcclusionAndOutputHighlight() {}`)}},82048:(e,t,r)=>{r.d(t,{c:()=>n});var i=r(31821),o=r(46540);function n(e,t=!0){e.attributes.add(o.r.POSITION,"vec2"),t&&e.varyings.add("uv","vec2"),e.vertex.main.add(i.H`
910
996
  gl_Position = vec4(position, 0.0, 1.0);
911
997
  ${t?i.H`uv = position * 0.5 + vec2(0.5);`:""}
912
- `)}},82991:(e,t,r)=>{r.d(t,{B:()=>_});var i=r(77690),n=r(29242),o=r(9093),a=r(38954),s=r(51850),c=r(49255),l=r(26425),d=r(20693),u=r(23205),h=r(31821),m=r(35644),f=r(40095),p=r(46540),v=r(28449);r(65786).Y;const g=(0,n.vt)();function _(e,t){const r=t.hasModelTransformation,n=t.instancedDoublePrecision;r&&(e.vertex.uniforms.add(new f.X("model",(e=>e.modelTransformation??o.zK))),e.vertex.uniforms.add(new m.k("normalLocalOriginFromModel",(e=>((0,i.Ge)(g,e.modelTransformation??o.zK),g))))),t.instanced&&n&&(e.attributes.add(p.r.INSTANCEMODELORIGINHI,"vec3"),e.attributes.add(p.r.INSTANCEMODELORIGINLO,"vec3"),e.attributes.add(p.r.INSTANCEMODEL,"mat3"),e.attributes.add(p.r.INSTANCEMODELNORMAL,"mat3"));const s=e.vertex;n&&(s.include(l.u,t),s.uniforms.add(new u.d("viewOriginHi",(e=>(0,v.Zo)((0,a.i)(T,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),T))),new u.d("viewOriginLo",(e=>(0,v.jA)((0,a.i)(T,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),T))))),s.code.add(h.H`
998
+ `)}},82991:(e,t,r)=>{r.d(t,{B:()=>_});var i=r(77690),o=r(29242),n=r(9093),a=r(38954),s=r(51850),c=r(49255),l=r(26425),d=r(20693),u=r(23205),h=r(31821),m=r(35644),p=r(40095),f=r(46540),v=r(28449);r(65786).Y;const g=(0,o.vt)();function _(e,t){const r=t.hasModelTransformation,o=t.instancedDoublePrecision;r&&(e.vertex.uniforms.add(new p.X("model",(e=>e.modelTransformation??n.zK))),e.vertex.uniforms.add(new m.k("normalLocalOriginFromModel",(e=>((0,i.Ge)(g,e.modelTransformation??n.zK),g))))),t.instanced&&o&&(e.attributes.add(f.r.INSTANCEMODELORIGINHI,"vec3"),e.attributes.add(f.r.INSTANCEMODELORIGINLO,"vec3"),e.attributes.add(f.r.INSTANCEMODEL,"mat3"),e.attributes.add(f.r.INSTANCEMODELNORMAL,"mat3"));const s=e.vertex;o&&(s.include(l.u,t),s.uniforms.add(new u.d("viewOriginHi",(e=>(0,v.Zo)((0,a.i)(T,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),T))),new u.d("viewOriginLo",(e=>(0,v.jA)((0,a.i)(T,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),T))))),s.code.add(h.H`
913
999
  vec3 getVertexInLocalOriginSpace() {
914
- return ${r?n?"(model * vec4(instanceModel * localPosition().xyz, 1.0)).xyz":"(model * localPosition()).xyz":n?"instanceModel * localPosition().xyz":"localPosition().xyz"};
1000
+ return ${r?o?"(model * vec4(instanceModel * localPosition().xyz, 1.0)).xyz":"(model * localPosition()).xyz":o?"instanceModel * localPosition().xyz":"localPosition().xyz"};
915
1001
  }
916
1002
 
917
1003
  vec3 subtractOrigin(vec3 _pos) {
918
- ${n?h.H`
1004
+ ${o?h.H`
919
1005
  // Issue: (should be resolved now with invariant position) https://devtopia.esri.com/WebGIS/arcgis-js-api/issues/56280
920
1006
  vec3 originDelta = dpAdd(viewOriginHi, viewOriginLo, -instanceModelOriginHi, -instanceModelOriginLo);
921
1007
  return _pos - originDelta;`:"return vpos;"}
922
1008
  }
923
1009
  `),s.code.add(h.H`
924
1010
  vec3 dpNormal(vec4 _normal) {
925
- return normalize(${r?n?"normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz)":"normalLocalOriginFromModel * _normal.xyz":n?"instanceModelNormal * _normal.xyz":"_normal.xyz"});
1011
+ return normalize(${r?o?"normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz)":"normalLocalOriginFromModel * _normal.xyz":o?"instanceModelNormal * _normal.xyz":"_normal.xyz"});
926
1012
  }
927
1013
  `),t.output===c.V.Normal&&((0,d.S7)(s),s.code.add(h.H`
928
1014
  vec3 dpNormalView(vec4 _normal) {
929
- return normalize((viewNormal * ${r?n?"vec4(normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz), 1.0)":"vec4(normalLocalOriginFromModel * _normal.xyz, 1.0)":n?"vec4(instanceModelNormal * _normal.xyz, 1.0)":"_normal"}).xyz);
1015
+ return normalize((viewNormal * ${r?o?"vec4(normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz), 1.0)":"vec4(normalLocalOriginFromModel * _normal.xyz, 1.0)":o?"vec4(instanceModelNormal * _normal.xyz, 1.0)":"_normal"}).xyz);
930
1016
  }
931
1017
  `)),t.hasVertexTangents&&s.code.add(h.H`
932
1018
  vec4 dpTransformVertexTangent(vec4 _tangent) {
933
- ${r?n?"return vec4(normalLocalOriginFromModel * (instanceModelNormal * _tangent.xyz), _tangent.w);":"return vec4(normalLocalOriginFromModel * _tangent.xyz, _tangent.w);":n?"return vec4(instanceModelNormal * _tangent.xyz, _tangent.w);":"return _tangent;"}
934
- }`)}const T=(0,s.vt)()},89192:(e,t,r)=>{var i,n,o,a,s,c,l,d;r.d(t,{Am:()=>a,C7:()=>o,JS:()=>d,Mg:()=>c,dd:()=>s,it:()=>n,s2:()=>i,sf:()=>l}),function(e){e[e.None=0]="None",e[e.Front=1]="Front",e[e.Back=2]="Back",e[e.COUNT=3]="COUNT"}(i||(i={})),function(e){e[e.Less=0]="Less",e[e.Lequal=1]="Lequal",e[e.COUNT=2]="COUNT"}(n||(n={})),function(e){e[e.BACKGROUND=0]="BACKGROUND",e[e.UPDATE=1]="UPDATE"}(o||(o={})),function(e){e[e.NOT_LOADED=0]="NOT_LOADED",e[e.LOADING=1]="LOADING",e[e.LOADED=2]="LOADED"}(a||(a={})),function(e){e[e.IntegratedMeshMaskExcluded=1]="IntegratedMeshMaskExcluded",e[e.OutlineVisualElementMask=2]="OutlineVisualElementMask"}(s||(s={})),function(e){e[e.Highlight=0]="Highlight",e[e.MaskOccludee=1]="MaskOccludee"}(c||(c={})),function(e){e[e.Blend=0]="Blend",e[e.Opaque=1]="Opaque",e[e.Mask=2]="Mask",e[e.MaskBlend=3]="MaskBlend",e[e.COUNT=4]="COUNT"}(l||(l={})),function(e){e.DDS_ENCODING="image/vnd-ms.dds",e.KTX2_ENCODING="image/ktx2",e.BASIS_ENCODING="image/x.basis"}(d||(d={}))},89786:(e,t,r)=>{function i(e){const t=3.141592653589793,r=.3183098861837907;e.vertex.constants.add("PI","float",t),e.fragment.constants.add("PI","float",t),e.fragment.constants.add("LIGHT_NORMALIZATION","float",r),e.fragment.constants.add("INV_PI","float",r),e.fragment.constants.add("HALF_PI","float",1.570796326794897),e.fragment.constants.add("TWO_PI","float",6.28318530717958)}r.d(t,{p:()=>i})},90644:(e,t,r)=>{r.d(t,{Ey:()=>E,Ky:()=>c,Os:()=>s,Uy:()=>h,Xt:()=>u,kn:()=>m,p3:()=>a});var i=r(89192),n=r(63907);function o(e,t,r=n.Tb.ADD,i=[0,0,0,0]){return{srcRgb:e,srcAlpha:e,dstRgb:t,dstAlpha:t,opRgb:r,opAlpha:r,color:{r:i[0],g:i[1],b:i[2],a:i[3]}}}function a(e,t,r,i,o=n.Tb.ADD,a=n.Tb.ADD,s=[0,0,0,0]){return{srcRgb:e,srcAlpha:t,dstRgb:r,dstAlpha:i,opRgb:o,opAlpha:a,color:{r:s[0],g:s[1],b:s[2],a:s[3]}}}o(n.dn.ZERO,n.dn.ONE_MINUS_SRC_ALPHA),o(n.dn.ONE,n.dn.ZERO),o(n.dn.ONE,n.dn.ONE);const s=o(n.dn.ONE,n.dn.ONE_MINUS_SRC_ALPHA),c=a(n.dn.SRC_ALPHA,n.dn.ONE,n.dn.ONE_MINUS_SRC_ALPHA,n.dn.ONE_MINUS_SRC_ALPHA),l={face:n.Y7.BACK,mode:n.Ac.CCW},d={face:n.Y7.FRONT,mode:n.Ac.CCW},u=e=>e===i.s2.Back?l:e===i.s2.Front?d:null,h={zNear:0,zFar:1},m={r:!0,g:!0,b:!0,a:!0};function f(e){return C.intern(e)}function p(e){return R.intern(e)}function v(e){return O.intern(e)}function g(e){return N.intern(e)}function _(e){return L.intern(e)}function T(e){return H.intern(e)}function x(e){return B.intern(e)}function b(e){return G.intern(e)}function A(e){return V.intern(e)}function E(e){return j.intern(e)}class S{constructor(e,t){this._makeKey=e,this._makeRef=t,this._interns=new Map}intern(e){if(!e)return null;const t=this._makeKey(e),r=this._interns;return r.has(t)||r.set(t,this._makeRef(e)),r.get(t)??null}}function M(e){return"["+e.join(",")+"]"}const C=new S(w,(e=>({__tag:"Blending",...e})));function w(e){return e?M([e.srcRgb,e.srcAlpha,e.dstRgb,e.dstAlpha,e.opRgb,e.opAlpha,e.color.r,e.color.g,e.color.b,e.color.a]):null}const R=new S(I,(e=>({__tag:"Culling",...e})));function I(e){return e?M([e.face,e.mode]):null}const O=new S(y,(e=>({__tag:"PolygonOffset",...e})));function y(e){return e?M([e.factor,e.units]):null}const N=new S(P,(e=>({__tag:"DepthTest",...e})));function P(e){return e?M([e.func]):null}const L=new S(D,(e=>({__tag:"StencilTest",...e})));function D(e){return e?M([e.function.func,e.function.ref,e.function.mask,e.operation.fail,e.operation.zFail,e.operation.zPass]):null}const H=new S(F,(e=>({__tag:"DepthWrite",...e})));function F(e){return e?M([e.zNear,e.zFar]):null}const B=new S(U,(e=>({__tag:"ColorWrite",...e})));function U(e){return e?M([e.r,e.g,e.b,e.a]):null}const G=new S(z,(e=>({__tag:"StencilWrite",...e})));function z(e){return e?M([e.mask]):null}const V=new S(W,(e=>({__tag:"DrawBuffers",...e})));function W(e){return e?M(e.buffers):null}const j=new S((function(e){return e?M([w(e.blending),I(e.culling),y(e.polygonOffset),P(e.depthTest),D(e.stencilTest),F(e.depthWrite),U(e.colorWrite),z(e.stencilWrite),W(e.drawBuffers)]):null}),(e=>({blending:f(e.blending),culling:p(e.culling),polygonOffset:v(e.polygonOffset),depthTest:g(e.depthTest),stencilTest:_(e.stencilTest),depthWrite:T(e.depthWrite),colorWrite:x(e.colorWrite),stencilWrite:b(e.stencilWrite),drawBuffers:A(e.drawBuffers)})))},92700:(e,t,r)=>{r.d(t,{c:()=>o});var i=r(31821),n=r(46540);function o(e,t){t.hasVertexColors?(e.attributes.add(n.r.COLOR,"vec4"),e.varyings.add("vColor","vec4"),e.vertex.code.add(i.H`void forwardVertexColor() { vColor = color; }`),e.vertex.code.add(i.H`void forwardNormalizedVertexColor() { vColor = color * 0.003921568627451; }`)):e.vertex.code.add(i.H`void forwardVertexColor() {}
935
- void forwardNormalizedVertexColor() {}`)}},92993:(e,t,r)=>{var i;r.d(t,{n:()=>i}),function(e){e[e.ETC1_RGB=0]="ETC1_RGB",e[e.ETC2_RGBA=1]="ETC2_RGBA",e[e.BC1_RGB=2]="BC1_RGB",e[e.BC3_RGBA=3]="BC3_RGBA",e[e.BC4_R=4]="BC4_R",e[e.BC5_RG=5]="BC5_RG",e[e.BC7_M6_RGB=6]="BC7_M6_RGB",e[e.BC7_M5_RGBA=7]="BC7_M5_RGBA",e[e.PVRTC1_4_RGB=8]="PVRTC1_4_RGB",e[e.PVRTC1_4_RGBA=9]="PVRTC1_4_RGBA",e[e.ASTC_4x4_RGBA=10]="ASTC_4x4_RGBA",e[e.ATC_RGB=11]="ATC_RGB",e[e.ATC_RGBA=12]="ATC_RGBA",e[e.FXT1_RGB=17]="FXT1_RGB",e[e.PVRTC2_4_RGB=18]="PVRTC2_4_RGB",e[e.PVRTC2_4_RGBA=19]="PVRTC2_4_RGBA",e[e.ETC2_EAC_R11=20]="ETC2_EAC_R11",e[e.ETC2_EAC_RG11=21]="ETC2_EAC_RG11",e[e.RGBA32=13]="RGBA32",e[e.RGB565=14]="RGB565",e[e.BGR565=15]="BGR565",e[e.RGBA4444=16]="RGBA4444"}(i||(i={}))},94656:(e,t,r)=>{r.d(t,{Y2:()=>d,en:()=>l});var i=r(49186),n=r(44208),o=r(53966),a=r(63907);const s=()=>o.A.getLogger("esri.views.webgl.checkWebGLError"),c=!!(0,n.A)("enable-feature:webgl-debug");function l(){return c}function d(e){if(l()){const t=e.getError();if(t){const e=function(e){switch(e){case a.bh.INVALID_ENUM:return"Invalid Enum. An unacceptable value has been specified for an enumerated argument.";case a.bh.INVALID_VALUE:return"Invalid Value. A numeric argument is out of range.";case a.bh.INVALID_OPERATION:return"Invalid Operation. The specified command is not allowed for the current state.";case a.bh.INVALID_FRAMEBUFFER_OPERATION:return"Invalid Framebuffer operation. The currently bound framebuffer is not framebuffer complete when trying to render to or to read from it.";case a.bh.OUT_OF_MEMORY:return"Out of memory. Not enough memory is left to execute the command.";case a.bh.CONTEXT_LOST_WEBGL:return"WebGL context has been lost";default:return"Unknown error"}}(t),r=(new Error).stack;s().error(new i.A("webgl-error","WebGL error occurred",{message:e,stack:r}))}}}},95774:(e,t,r)=>{r.d(t,{S:()=>m,b:()=>h});var i=r(82048),n=r(52540),o=r(68259),a=r(20304),s=r(31821),c=r(15976),l=r(63761),d=r(14113);const u=4;function h(){const e=new d.N5,t=e.fragment;e.include(i.c);const r=(u+1)/2,h=1/(2*r*r);return t.include(n.E),t.uniforms.add(new l.N("depthMap",(e=>e.depthTexture)),new c.o("tex",(e=>e.colorTexture)),new o.t("blurSize",(e=>e.blurSize)),new a.m("projScale",((e,t)=>{const r=t.camera.distance;return r>5e4?Math.max(0,e.projScale-(r-5e4)):e.projScale}))),t.code.add(s.H`
1019
+ ${r?o?"return vec4(normalLocalOriginFromModel * (instanceModelNormal * _tangent.xyz), _tangent.w);":"return vec4(normalLocalOriginFromModel * _tangent.xyz, _tangent.w);":o?"return vec4(instanceModelNormal * _tangent.xyz, _tangent.w);":"return _tangent;"}
1020
+ }`)}const T=(0,s.vt)()},89192:(e,t,r)=>{var i,o,n,a,s,c,l,d;r.d(t,{Am:()=>a,C7:()=>n,JS:()=>d,Mg:()=>c,dd:()=>s,it:()=>o,s2:()=>i,sf:()=>l}),function(e){e[e.None=0]="None",e[e.Front=1]="Front",e[e.Back=2]="Back",e[e.COUNT=3]="COUNT"}(i||(i={})),function(e){e[e.Less=0]="Less",e[e.Lequal=1]="Lequal",e[e.COUNT=2]="COUNT"}(o||(o={})),function(e){e[e.BACKGROUND=0]="BACKGROUND",e[e.UPDATE=1]="UPDATE"}(n||(n={})),function(e){e[e.NOT_LOADED=0]="NOT_LOADED",e[e.LOADING=1]="LOADING",e[e.LOADED=2]="LOADED"}(a||(a={})),function(e){e[e.IntegratedMeshMaskExcluded=1]="IntegratedMeshMaskExcluded",e[e.OutlineVisualElementMask=2]="OutlineVisualElementMask"}(s||(s={})),function(e){e[e.Highlight=0]="Highlight",e[e.MaskOccludee=1]="MaskOccludee"}(c||(c={})),function(e){e[e.Blend=0]="Blend",e[e.Opaque=1]="Opaque",e[e.Mask=2]="Mask",e[e.MaskBlend=3]="MaskBlend",e[e.COUNT=4]="COUNT"}(l||(l={})),function(e){e.DDS_ENCODING="image/vnd-ms.dds",e.KTX2_ENCODING="image/ktx2",e.BASIS_ENCODING="image/x.basis"}(d||(d={}))},89786:(e,t,r)=>{function i(e){const t=3.141592653589793,r=.3183098861837907;e.vertex.constants.add("PI","float",t),e.fragment.constants.add("PI","float",t),e.fragment.constants.add("LIGHT_NORMALIZATION","float",r),e.fragment.constants.add("INV_PI","float",r),e.fragment.constants.add("HALF_PI","float",1.570796326794897),e.fragment.constants.add("TWO_PI","float",6.28318530717958)}r.d(t,{p:()=>i})},90644:(e,t,r)=>{r.d(t,{Ey:()=>E,Ky:()=>c,Os:()=>s,Uy:()=>h,Xt:()=>u,kn:()=>m,p3:()=>a});var i=r(89192),o=r(63907);function n(e,t,r=o.Tb.ADD,i=[0,0,0,0]){return{srcRgb:e,srcAlpha:e,dstRgb:t,dstAlpha:t,opRgb:r,opAlpha:r,color:{r:i[0],g:i[1],b:i[2],a:i[3]}}}function a(e,t,r,i,n=o.Tb.ADD,a=o.Tb.ADD,s=[0,0,0,0]){return{srcRgb:e,srcAlpha:t,dstRgb:r,dstAlpha:i,opRgb:n,opAlpha:a,color:{r:s[0],g:s[1],b:s[2],a:s[3]}}}n(o.dn.ZERO,o.dn.ONE_MINUS_SRC_ALPHA),n(o.dn.ONE,o.dn.ZERO),n(o.dn.ONE,o.dn.ONE);const s=n(o.dn.ONE,o.dn.ONE_MINUS_SRC_ALPHA),c=a(o.dn.SRC_ALPHA,o.dn.ONE,o.dn.ONE_MINUS_SRC_ALPHA,o.dn.ONE_MINUS_SRC_ALPHA),l={face:o.Y7.BACK,mode:o.Ac.CCW},d={face:o.Y7.FRONT,mode:o.Ac.CCW},u=e=>e===i.s2.Back?l:e===i.s2.Front?d:null,h={zNear:0,zFar:1},m={r:!0,g:!0,b:!0,a:!0};function p(e){return w.intern(e)}function f(e){return R.intern(e)}function v(e){return O.intern(e)}function g(e){return N.intern(e)}function _(e){return D.intern(e)}function T(e){return H.intern(e)}function x(e){return B.intern(e)}function b(e){return G.intern(e)}function A(e){return V.intern(e)}function E(e){return j.intern(e)}class S{constructor(e,t){this._makeKey=e,this._makeRef=t,this._interns=new Map}intern(e){if(!e)return null;const t=this._makeKey(e),r=this._interns;return r.has(t)||r.set(t,this._makeRef(e)),r.get(t)??null}}function M(e){return"["+e.join(",")+"]"}const w=new S(C,(e=>({__tag:"Blending",...e})));function C(e){return e?M([e.srcRgb,e.srcAlpha,e.dstRgb,e.dstAlpha,e.opRgb,e.opAlpha,e.color.r,e.color.g,e.color.b,e.color.a]):null}const R=new S(I,(e=>({__tag:"Culling",...e})));function I(e){return e?M([e.face,e.mode]):null}const O=new S(y,(e=>({__tag:"PolygonOffset",...e})));function y(e){return e?M([e.factor,e.units]):null}const N=new S(P,(e=>({__tag:"DepthTest",...e})));function P(e){return e?M([e.func]):null}const D=new S(L,(e=>({__tag:"StencilTest",...e})));function L(e){return e?M([e.function.func,e.function.ref,e.function.mask,e.operation.fail,e.operation.zFail,e.operation.zPass]):null}const H=new S(F,(e=>({__tag:"DepthWrite",...e})));function F(e){return e?M([e.zNear,e.zFar]):null}const B=new S(U,(e=>({__tag:"ColorWrite",...e})));function U(e){return e?M([e.r,e.g,e.b,e.a]):null}const G=new S(z,(e=>({__tag:"StencilWrite",...e})));function z(e){return e?M([e.mask]):null}const V=new S(W,(e=>({__tag:"DrawBuffers",...e})));function W(e){return e?M(e.buffers):null}const j=new S((function(e){return e?M([C(e.blending),I(e.culling),y(e.polygonOffset),P(e.depthTest),L(e.stencilTest),F(e.depthWrite),U(e.colorWrite),z(e.stencilWrite),W(e.drawBuffers)]):null}),(e=>({blending:p(e.blending),culling:f(e.culling),polygonOffset:v(e.polygonOffset),depthTest:g(e.depthTest),stencilTest:_(e.stencilTest),depthWrite:T(e.depthWrite),colorWrite:x(e.colorWrite),stencilWrite:b(e.stencilWrite),drawBuffers:A(e.drawBuffers)})))},92700:(e,t,r)=>{r.d(t,{c:()=>n});var i=r(31821),o=r(46540);function n(e,t){t.hasVertexColors?(e.attributes.add(o.r.COLOR,"vec4"),e.varyings.add("vColor","vec4"),e.vertex.code.add(i.H`void forwardVertexColor() { vColor = color; }`),e.vertex.code.add(i.H`void forwardNormalizedVertexColor() { vColor = color * 0.003921568627451; }`)):e.vertex.code.add(i.H`void forwardVertexColor() {}
1021
+ void forwardNormalizedVertexColor() {}`)}},92993:(e,t,r)=>{var i;r.d(t,{n:()=>i}),function(e){e[e.ETC1_RGB=0]="ETC1_RGB",e[e.ETC2_RGBA=1]="ETC2_RGBA",e[e.BC1_RGB=2]="BC1_RGB",e[e.BC3_RGBA=3]="BC3_RGBA",e[e.BC4_R=4]="BC4_R",e[e.BC5_RG=5]="BC5_RG",e[e.BC7_M6_RGB=6]="BC7_M6_RGB",e[e.BC7_M5_RGBA=7]="BC7_M5_RGBA",e[e.PVRTC1_4_RGB=8]="PVRTC1_4_RGB",e[e.PVRTC1_4_RGBA=9]="PVRTC1_4_RGBA",e[e.ASTC_4x4_RGBA=10]="ASTC_4x4_RGBA",e[e.ATC_RGB=11]="ATC_RGB",e[e.ATC_RGBA=12]="ATC_RGBA",e[e.FXT1_RGB=17]="FXT1_RGB",e[e.PVRTC2_4_RGB=18]="PVRTC2_4_RGB",e[e.PVRTC2_4_RGBA=19]="PVRTC2_4_RGBA",e[e.ETC2_EAC_R11=20]="ETC2_EAC_R11",e[e.ETC2_EAC_RG11=21]="ETC2_EAC_RG11",e[e.RGBA32=13]="RGBA32",e[e.RGB565=14]="RGB565",e[e.BGR565=15]="BGR565",e[e.RGBA4444=16]="RGBA4444"}(i||(i={}))},94656:(e,t,r)=>{r.d(t,{Y2:()=>d,en:()=>l});var i=r(49186),o=r(44208),n=r(53966),a=r(63907);const s=()=>n.A.getLogger("esri.views.webgl.checkWebGLError"),c=!!(0,o.A)("enable-feature:webgl-debug");function l(){return c}function d(e){if(l()){const t=e.getError();if(t){const e=function(e){switch(e){case a.bh.INVALID_ENUM:return"Invalid Enum. An unacceptable value has been specified for an enumerated argument.";case a.bh.INVALID_VALUE:return"Invalid Value. A numeric argument is out of range.";case a.bh.INVALID_OPERATION:return"Invalid Operation. The specified command is not allowed for the current state.";case a.bh.INVALID_FRAMEBUFFER_OPERATION:return"Invalid Framebuffer operation. The currently bound framebuffer is not framebuffer complete when trying to render to or to read from it.";case a.bh.OUT_OF_MEMORY:return"Out of memory. Not enough memory is left to execute the command.";case a.bh.CONTEXT_LOST_WEBGL:return"WebGL context has been lost";default:return"Unknown error"}}(t),r=(new Error).stack;s().error(new i.A("webgl-error","WebGL error occurred",{message:e,stack:r}))}}}},95774:(e,t,r)=>{r.d(t,{S:()=>m,b:()=>h});var i=r(82048),o=r(52540),n=r(68259),a=r(20304),s=r(31821),c=r(15976),l=r(63761),d=r(14113);const u=4;function h(){const e=new d.N5,t=e.fragment;e.include(i.c);const r=(u+1)/2,h=1/(2*r*r);return t.include(o.E),t.uniforms.add(new l.N("depthMap",(e=>e.depthTexture)),new c.o("tex",(e=>e.colorTexture)),new n.t("blurSize",(e=>e.blurSize)),new a.m("projScale",((e,t)=>{const r=t.camera.distance;return r>5e4?Math.max(0,e.projScale-(r-5e4)):e.projScale}))),t.code.add(s.H`
936
1022
  void blurFunction(vec2 uv, float r, float center_d, float sharpness, inout float wTotal, inout float bTotal) {
937
1023
  float c = texture(tex, uv).r;
938
1024
  float d = linearDepthFromTexture(depthMap, uv);
@@ -955,23 +1041,23 @@ void forwardNormalizedVertexColor() {}`)}},92993:(e,t,r)=>{var i;r.d(t,{n:()=>i}
955
1041
  vec2 uvOffset = uv + rf * blurSize;
956
1042
  blurFunction(uvOffset, rf, center_d, sharpness, w_total, b);
957
1043
  }
958
- fragBlur = b / w_total;`),e}const m=Object.freeze(Object.defineProperty({__proto__:null,build:h},Symbol.toStringTag,{value:"Module"}))},96598:(e,t,r)=>{r.d(t,{Z:()=>a});var i=r(52540),n=r(31821),o=r(12791);function a(e,{occlusionPass:t,terrainDepthTest:r,cullAboveTerrain:a}){const{vertex:s,fragment:c,varyings:l}=e;if(!r)return s.code.add("void forwardViewPosDepth(vec3 pos) {}"),void c.code.add(`${t?"bool":"void"} discardByTerrainDepth() { ${(0,n.If)(t,"return false;")}}`);l.add("viewPosDepth","float",{invariant:!0}),s.code.add("void forwardViewPosDepth(vec3 pos) {\n viewPosDepth = pos.z;\n }"),c.include(i.E),c.uniforms.add(new o.x("terrainDepthTexture",(e=>e.terrainDepth?.attachment))).code.add(n.H`
1044
+ fragBlur = b / w_total;`),e}const m=Object.freeze(Object.defineProperty({__proto__:null,build:h},Symbol.toStringTag,{value:"Module"}))},96598:(e,t,r)=>{r.d(t,{Z:()=>a});var i=r(52540),o=r(31821),n=r(12791);function a(e,{occlusionPass:t,terrainDepthTest:r,cullAboveTerrain:a}){const{vertex:s,fragment:c,varyings:l}=e;if(!r)return s.code.add("void forwardViewPosDepth(vec3 pos) {}"),void c.code.add(`${t?"bool":"void"} discardByTerrainDepth() { ${(0,o.If)(t,"return false;")}}`);l.add("viewPosDepth","float",{invariant:!0}),s.code.add("void forwardViewPosDepth(vec3 pos) {\n viewPosDepth = pos.z;\n }"),c.include(i.E),c.uniforms.add(new n.x("terrainDepthTexture",(e=>e.terrainDepth?.attachment))).code.add(o.H`
959
1045
  ${t?"bool":"void"} discardByTerrainDepth() {
960
1046
  float depth = texelFetch(terrainDepthTexture, ivec2(gl_FragCoord.xy), 0).r;
961
1047
  float linearDepth = linearizeDepth(depth);
962
1048
  ${t?"return viewPosDepth < linearDepth && depth < 1.0;":`if(viewPosDepth ${a?">":"<="} linearDepth) discard;`}
963
- }`)}},96672:(e,t,r)=>{var i;r.d(t,{X:()=>i}),function(e){e[e.Layer=0]="Layer",e[e.Object=1]="Object",e[e.Mesh=2]="Mesh",e[e.Line=3]="Line",e[e.Point=4]="Point",e[e.Material=5]="Material",e[e.Texture=6]="Texture",e[e.COUNT=7]="COUNT"}(i||(i={}))},97220:(e,t,r)=>{r.d(t,{$:()=>i});class i{constructor(e,t){this._module=e,this._load=t}get(){return this._module}async reload(){return this._module=await this._load(),this._module}}},97225:(e,t,r)=>{r.d(t,{V:()=>E,uD:()=>A,R5:()=>S});var i=r(51850),n=r(91829),o=r(49255),a=r(96336),s=r(72824),c=r(97220),l=r(98958),d=r(89192),u=r(11725),h=r(59643),m=r(33524),f=r(63907);f.MT.LESS,f.MT.ALWAYS;const p={mask:255},v={function:{func:f.MT.ALWAYS,ref:d.dd.OutlineVisualElementMask,mask:d.dd.OutlineVisualElementMask},operation:{fail:f.eA.KEEP,zFail:f.eA.KEEP,zPass:f.eA.ZERO}},g={function:{func:f.MT.ALWAYS,ref:d.dd.OutlineVisualElementMask,mask:d.dd.OutlineVisualElementMask},operation:{fail:f.eA.KEEP,zFail:f.eA.KEEP,zPass:f.eA.REPLACE}};f.MT.EQUAL,d.dd.OutlineVisualElementMask,d.dd.OutlineVisualElementMask,f.eA.KEEP,f.eA.KEEP,f.eA.KEEP,f.MT.NOTEQUAL,d.dd.OutlineVisualElementMask,d.dd.OutlineVisualElementMask,f.eA.KEEP,f.eA.KEEP,f.eA.KEEP;var _=r(74810),T=r(28491),x=r(90644),b=r(49788);class A extends s.Zo{constructor(){super(...arguments),this.isSchematic=!1,this.usePBR=!1,this.mrrFactors=_.mb,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.doubleSided=!1,this.doubleSidedType="normal",this.cullFace=d.s2.Back,this.isInstanced=!1,this.hasInstancedColor=!1,this.emissiveFactor=i.uY,this.instancedDoublePrecision=!1,this.normalType=a.W.Attribute,this.receiveShadows=!0,this.receiveAmbientOcclusion=!0,this.castShadows=!0,this.ambient=(0,i.CN)(.2,.2,.2),this.diffuse=(0,i.CN)(.8,.8,.8),this.externalColor=(0,n.fA)(1,1,1,1),this.colorMixMode="multiply",this.opacity=1,this.layerOpacity=1,this.origin=(0,i.vt)(),this.hasSlicePlane=!1,this.offsetTransparentBackfaces=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.vvSymbolAnchor=null,this.vvSymbolRotationMatrix=null,this.modelTransformation=null,this.drivenOpacity=!1,this.writeDepth=!0,this.customDepthTest=d.it.Less,this.textureAlphaMode=d.sf.Blend,this.textureAlphaCutoff=b.Q,this.textureAlphaPremultiplied=!1,this.renderOccluded=u.m$.Occlude,this.isDecoration=!1}}class E extends s.gy{constructor(){super(...arguments),this.origin=(0,i.vt)(),this.slicePlaneLocalOrigin=this.origin}}class S extends l.w{constructor(e,t,i=new c.$(T.D,(()=>r.e(5141).then(r.bind(r,5141))))){super(e,t,i),this.type="DefaultMaterialTechnique"}_makePipeline(e,t){const{oitPass:r,output:i,transparent:n,cullFace:a,customDepthTest:s,hasOccludees:c,enableOffset:l}=e,d=r===h.Y.NONE,u=r===h.Y.FrontFace;return(0,x.Ey)({blending:(0,o.RN)(i)&&n?(0,m.Yf)(r):null,culling:C(e)?(0,x.Xt)(a):null,depthTest:{func:(0,m.K_)(r,M(s))},depthWrite:(0,m.z5)(e),drawBuffers:i===o.V.Depth?{buffers:[f.Hr.NONE]}:(0,m.m6)(r,i),colorWrite:x.kn,stencilWrite:c?p:null,stencilTest:c?t?g:v:null,polygonOffset:d||u?null:(0,m.aB)(l)})}initializePipeline(e){return this._occludeePipelineState=this._makePipeline(e,!0),this._makePipeline(e,!1)}getPipeline(e){return e?this._occludeePipelineState:super.getPipeline()}}function M(e){return e===d.it.Lequal?f.MT.LEQUAL:f.MT.LESS}function C(e){return e.cullFace!==d.s2.None||!e.hasSlicePlane&&!e.transparent&&!e.doubleSidedMode}},98619:(e,t,r)=>{r.d(t,{Gc:()=>o,O4:()=>a,Vt:()=>s});var i=r(23205),n=r(31821);function o(e){e.uniforms.add(new i.d("mainLightDirection",(e=>e.lighting.mainLight.direction)))}function a(e){e.uniforms.add(new i.d("mainLightIntensity",(e=>e.lighting.mainLight.intensity)))}function s(e){o(e.fragment),a(e.fragment),e.fragment.code.add(n.H`vec3 applyShading(vec3 shadingNormalWorld, float shadow) {
1049
+ }`)}},96672:(e,t,r)=>{var i;r.d(t,{X:()=>i}),function(e){e[e.Layer=0]="Layer",e[e.Object=1]="Object",e[e.Mesh=2]="Mesh",e[e.Line=3]="Line",e[e.Point=4]="Point",e[e.Material=5]="Material",e[e.Texture=6]="Texture",e[e.COUNT=7]="COUNT"}(i||(i={}))},97220:(e,t,r)=>{r.d(t,{$:()=>i});class i{constructor(e,t){this._module=e,this._load=t}get(){return this._module}async reload(){return this._module=await this._load(),this._module}}},97225:(e,t,r)=>{r.d(t,{V:()=>E,uD:()=>A,R5:()=>S});var i=r(51850),o=r(91829),n=r(49255),a=r(96336),s=r(72824),c=r(97220),l=r(98958),d=r(89192),u=r(11725),h=r(59643),m=r(33524),p=r(63907);p.MT.LESS,p.MT.ALWAYS;const f={mask:255},v={function:{func:p.MT.ALWAYS,ref:d.dd.OutlineVisualElementMask,mask:d.dd.OutlineVisualElementMask},operation:{fail:p.eA.KEEP,zFail:p.eA.KEEP,zPass:p.eA.ZERO}},g={function:{func:p.MT.ALWAYS,ref:d.dd.OutlineVisualElementMask,mask:d.dd.OutlineVisualElementMask},operation:{fail:p.eA.KEEP,zFail:p.eA.KEEP,zPass:p.eA.REPLACE}};p.MT.EQUAL,d.dd.OutlineVisualElementMask,d.dd.OutlineVisualElementMask,p.eA.KEEP,p.eA.KEEP,p.eA.KEEP,p.MT.NOTEQUAL,d.dd.OutlineVisualElementMask,d.dd.OutlineVisualElementMask,p.eA.KEEP,p.eA.KEEP,p.eA.KEEP;var _=r(74810),T=r(28491),x=r(90644),b=r(49788);class A extends s.Zo{constructor(){super(...arguments),this.isSchematic=!1,this.usePBR=!1,this.mrrFactors=_.mb,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.doubleSided=!1,this.doubleSidedType="normal",this.cullFace=d.s2.Back,this.isInstanced=!1,this.hasInstancedColor=!1,this.emissiveFactor=i.uY,this.instancedDoublePrecision=!1,this.normalType=a.W.Attribute,this.receiveShadows=!0,this.receiveAmbientOcclusion=!0,this.castShadows=!0,this.ambient=(0,i.CN)(.2,.2,.2),this.diffuse=(0,i.CN)(.8,.8,.8),this.externalColor=(0,o.fA)(1,1,1,1),this.colorMixMode="multiply",this.opacity=1,this.layerOpacity=1,this.origin=(0,i.vt)(),this.hasSlicePlane=!1,this.offsetTransparentBackfaces=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.vvSymbolAnchor=null,this.vvSymbolRotationMatrix=null,this.modelTransformation=null,this.drivenOpacity=!1,this.writeDepth=!0,this.customDepthTest=d.it.Less,this.textureAlphaMode=d.sf.Blend,this.textureAlphaCutoff=b.Q,this.textureAlphaPremultiplied=!1,this.renderOccluded=u.m$.Occlude,this.isDecoration=!1}}class E extends s.gy{constructor(){super(...arguments),this.origin=(0,i.vt)(),this.slicePlaneLocalOrigin=this.origin}}class S extends l.w{constructor(e,t,i=new c.$(T.D,(()=>r.e(5141).then(r.bind(r,5141))))){super(e,t,i),this.type="DefaultMaterialTechnique"}_makePipeline(e,t){const{oitPass:r,output:i,transparent:o,cullFace:a,customDepthTest:s,hasOccludees:c,enableOffset:l}=e,d=r===h.Y.NONE,u=r===h.Y.FrontFace;return(0,x.Ey)({blending:(0,n.RN)(i)&&o?(0,m.Yf)(r):null,culling:w(e)?(0,x.Xt)(a):null,depthTest:{func:(0,m.K_)(r,M(s))},depthWrite:(0,m.z5)(e),drawBuffers:i===n.V.Depth?{buffers:[p.Hr.NONE]}:(0,m.m6)(r,i),colorWrite:x.kn,stencilWrite:c?f:null,stencilTest:c?t?g:v:null,polygonOffset:d||u?null:(0,m.aB)(l)})}initializePipeline(e){return this._occludeePipelineState=this._makePipeline(e,!0),this._makePipeline(e,!1)}getPipeline(e){return e?this._occludeePipelineState:super.getPipeline()}}function M(e){return e===d.it.Lequal?p.MT.LEQUAL:p.MT.LESS}function w(e){return e.cullFace!==d.s2.None||!e.hasSlicePlane&&!e.transparent&&!e.doubleSidedMode}},98619:(e,t,r)=>{r.d(t,{Gc:()=>n,O4:()=>a,Vt:()=>s});var i=r(23205),o=r(31821);function n(e){e.uniforms.add(new i.d("mainLightDirection",(e=>e.lighting.mainLight.direction)))}function a(e){e.uniforms.add(new i.d("mainLightIntensity",(e=>e.lighting.mainLight.intensity)))}function s(e){n(e.fragment),a(e.fragment),e.fragment.code.add(o.H`vec3 applyShading(vec3 shadingNormalWorld, float shadow) {
964
1050
  float dotVal = clamp(dot(shadingNormalWorld, mainLightDirection), 0.0, 1.0);
965
1051
  return mainLightIntensity * ((1.0 - shadow) * dotVal);
966
- }`)}},98958:(e,t,r)=>{r.d(t,{w:()=>u});var i=r(53966),n=r(97768),o=r(39341),a=r(3694),s=r(94656);class c{constructor(e,t,r){this._context=e,this._locations=r,this._textures=new Map,this._freeTextureUnits=new a.A({deallocator:null}),this._glProgram=e.programCache.acquire(t.generate("vertex",!0),t.generate("fragment",!0),r),this._glProgram.stop=()=>{throw new Error("Wrapped _glProgram used directly")},this.bind=t.generateBind(this),this.bindPass=t.generateBindPass(this),this.bindDraw=t.generateBindDraw(this),this._fragmentUniforms=(0,s.en)()?t.fragmentUniforms:null}dispose(){this._glProgram.dispose()}get glName(){return this._glProgram.glName}get hasTransformFeedbackVaryings(){return this._glProgram.hasTransformFeedbackVaryings}get compiled(){return this._glProgram.compiled}setUniform1b(e,t){this._glProgram.setUniform1i(e,t?1:0)}setUniform1i(e,t){this._glProgram.setUniform1i(e,t)}setUniform1f(e,t){this._glProgram.setUniform1f(e,t)}setUniform2fv(e,t){this._glProgram.setUniform2fv(e,t)}setUniform3fv(e,t){this._glProgram.setUniform3fv(e,t)}setUniform4fv(e,t){this._glProgram.setUniform4fv(e,t)}setUniformMatrix3fv(e,t){this._glProgram.setUniformMatrix3fv(e,t)}setUniformMatrix4fv(e,t){this._glProgram.setUniformMatrix4fv(e,t)}setUniform1fv(e,t){this._glProgram.setUniform1fv(e,t)}setUniform1iv(e,t){this._glProgram.setUniform1iv(e,t)}setUniform2iv(e,t){this._glProgram.setUniform2iv(e,t)}setUniform3iv(e,t){this._glProgram.setUniform3iv(e,t)}setUniform4iv(e,t){this._glProgram.setUniform4iv(e,t)}assertCompatibleVertexAttributeLocations(e){e.locations!==this._locations&&console.error("VertexAttributeLocations are incompatible")}stop(){this._textures.clear(),this._freeTextureUnits.clear()}bindTexture(e,t){let r=this._textures.get(e);return null==r?(r=this._allocTextureUnit(t),this._textures.set(e,r)):r.texture=t,this._context.useProgram(this),this.setUniform1i(e,r.unit),this._context.bindTexture(t,r.unit),r.unit}rebindTextures(){this._context.useProgram(this),this._textures.forEach(((e,t)=>{this._context.bindTexture(e.texture,e.unit),this.setUniform1i(t,e.unit)})),this._fragmentUniforms?.forEach((e=>{"sampler2D"!==e.type&&"usampler2D"!==e.type&&"samplerCube"!==e.type||this._textures.has(e.name)||console.error(`Texture sampler ${e.name} has no bound texture`)}))}_allocTextureUnit(e){return{texture:e,unit:0===this._freeTextureUnits.length?this._textures.size:this._freeTextureUnits.pop()}}}var l=r(63907),d=r(90644);class u{constructor(e,t,r,a=o.D){this.locations=a,this.primitiveType=l.WR.TRIANGLES,this.key=t.key,this._program=new c(e.rctx,r.get().build(t),a),this._pipeline=this.initializePipeline(t),this.reload=async o=>{o&&await r.reload(),this.key.equals(t.key)||i.A.getLogger("esri.views.3d.webgl.ShaderTechnique").warn("Configuration was changed after construction, cannot reload shader.",r),(0,n.WD)(this._program),this._program=new c(e.rctx,r.get().build(t),a),this._pipeline=this.initializePipeline(t)}}destroy(){this._program=(0,n.WD)(this._program),this._pipeline=null}get program(){return this._program}get compiled(){return this.program.compiled}ensureAttributeLocations(e){this.program.assertCompatibleVertexAttributeLocations(e)}getPipeline(e,t){return this._pipeline}initializePipeline(e){return(0,d.Ey)({blending:d.Os,colorWrite:d.kn})}}},99208:(e,t,r)=>{r.d(t,{r:()=>a});var i=r(53466),n=r(31821);function o(e){e.fragment.code.add(n.H`vec4 textureAtlasLookup(sampler2D tex, vec2 textureCoordinates, vec4 atlasRegion) {
1052
+ }`)}},98958:(e,t,r)=>{r.d(t,{w:()=>u});var i=r(53966),o=r(97768),n=r(39341),a=r(3694),s=r(94656);class c{constructor(e,t,r){this._context=e,this._locations=r,this._textures=new Map,this._freeTextureUnits=new a.A({deallocator:null}),this._glProgram=e.programCache.acquire(t.generate("vertex",!0),t.generate("fragment",!0),r),this._glProgram.stop=()=>{throw new Error("Wrapped _glProgram used directly")},this.bind=t.generateBind(this),this.bindPass=t.generateBindPass(this),this.bindDraw=t.generateBindDraw(this),this._fragmentUniforms=(0,s.en)()?t.fragmentUniforms:null}dispose(){this._glProgram.dispose()}get glName(){return this._glProgram.glName}get hasTransformFeedbackVaryings(){return this._glProgram.hasTransformFeedbackVaryings}get compiled(){return this._glProgram.compiled}setUniform1b(e,t){this._glProgram.setUniform1i(e,t?1:0)}setUniform1i(e,t){this._glProgram.setUniform1i(e,t)}setUniform1f(e,t){this._glProgram.setUniform1f(e,t)}setUniform2fv(e,t){this._glProgram.setUniform2fv(e,t)}setUniform3fv(e,t){this._glProgram.setUniform3fv(e,t)}setUniform4fv(e,t){this._glProgram.setUniform4fv(e,t)}setUniformMatrix3fv(e,t){this._glProgram.setUniformMatrix3fv(e,t)}setUniformMatrix4fv(e,t){this._glProgram.setUniformMatrix4fv(e,t)}setUniform1fv(e,t){this._glProgram.setUniform1fv(e,t)}setUniform1iv(e,t){this._glProgram.setUniform1iv(e,t)}setUniform2iv(e,t){this._glProgram.setUniform2iv(e,t)}setUniform3iv(e,t){this._glProgram.setUniform3iv(e,t)}setUniform4iv(e,t){this._glProgram.setUniform4iv(e,t)}assertCompatibleVertexAttributeLocations(e){e.locations!==this._locations&&console.error("VertexAttributeLocations are incompatible")}stop(){this._textures.clear(),this._freeTextureUnits.clear()}bindTexture(e,t){let r=this._textures.get(e);return null==r?(r=this._allocTextureUnit(t),this._textures.set(e,r)):r.texture=t,this._context.useProgram(this),this.setUniform1i(e,r.unit),this._context.bindTexture(t,r.unit),r.unit}rebindTextures(){this._context.useProgram(this),this._textures.forEach(((e,t)=>{this._context.bindTexture(e.texture,e.unit),this.setUniform1i(t,e.unit)})),this._fragmentUniforms?.forEach((e=>{"sampler2D"!==e.type&&"usampler2D"!==e.type&&"samplerCube"!==e.type||this._textures.has(e.name)||console.error(`Texture sampler ${e.name} has no bound texture`)}))}_allocTextureUnit(e){return{texture:e,unit:0===this._freeTextureUnits.length?this._textures.size:this._freeTextureUnits.pop()}}}var l=r(63907),d=r(90644);class u{constructor(e,t,r,a=n.D){this.locations=a,this.primitiveType=l.WR.TRIANGLES,this.key=t.key,this._program=new c(e.rctx,r.get().build(t),a),this._pipeline=this.initializePipeline(t),this.reload=async n=>{n&&await r.reload(),this.key.equals(t.key)||i.A.getLogger("esri.views.3d.webgl.ShaderTechnique").warn("Configuration was changed after construction, cannot reload shader.",r),(0,o.WD)(this._program),this._program=new c(e.rctx,r.get().build(t),a),this._pipeline=this.initializePipeline(t)}}destroy(){this._program=(0,o.WD)(this._program),this._pipeline=null}get program(){return this._program}get compiled(){return this.program.compiled}ensureAttributeLocations(e){this.program.assertCompatibleVertexAttributeLocations(e)}getPipeline(e,t){return this._pipeline}initializePipeline(e){return(0,d.Ey)({blending:d.Os,colorWrite:d.kn})}}},99208:(e,t,r)=>{r.d(t,{r:()=>a});var i=r(53466),o=r(31821);function n(e){e.fragment.code.add(o.H`vec4 textureAtlasLookup(sampler2D tex, vec2 textureCoordinates, vec4 atlasRegion) {
967
1053
  vec2 atlasScale = atlasRegion.zw - atlasRegion.xy;
968
1054
  vec2 uvAtlas = fract(textureCoordinates) * atlasScale + atlasRegion.xy;
969
1055
  float maxdUV = 0.125;
970
1056
  vec2 dUVdx = clamp(dFdx(textureCoordinates), -maxdUV, maxdUV) * atlasScale;
971
1057
  vec2 dUVdy = clamp(dFdy(textureCoordinates), -maxdUV, maxdUV) * atlasScale;
972
1058
  return textureGrad(tex, uvAtlas, dUVdx, dUVdy);
973
- }`)}function a(e,t){const{textureCoordinateType:r}=t;if(r===i.I.None||r===i.I.COUNT)return;e.include(i.U,t);const a=r===i.I.Atlas;a&&e.include(o),e.fragment.code.add(n.H`
1059
+ }`)}function a(e,t){const{textureCoordinateType:r}=t;if(r===i.I.None||r===i.I.COUNT)return;e.include(i.U,t);const a=r===i.I.Atlas;a&&e.include(n),e.fragment.code.add(o.H`
974
1060
  vec4 textureLookup(sampler2D tex, vec2 uv) {
975
1061
  return ${a?"textureAtlasLookup(tex, uv, vuvRegion)":"texture(tex, uv)"};
976
1062
  }
977
- `)}},99677:(e,t,r)=>{r.d(t,{D:()=>n});var i=r(78888);async function n(e,t){const{data:r}=await(0,i.A)(e,{responseType:"image",...t});return r}}}]);
1063
+ `)}},99677:(e,t,r)=>{r.d(t,{D:()=>o});var i=r(78888);async function o(e,t){const{data:r}=await(0,i.A)(e,{responseType:"image",...t});return r}}}]);