@arcgis/core 4.33.0-next.20250319 → 4.33.0-next.20250320
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.
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{6a97bdd46715fc12e1b4.js → 9e11307b4cc3b523d178.js} +3 -3
- package/assets/esri/core/workers/chunks/b23d16745674486ddd6c.js +1 -0
- package/assets/esri/core/workers/chunks/bfbb118ae3b4a4ce1c74.js +319 -0
- package/interfaces.d.ts +8 -7
- package/layers/VoxelWasmPerSceneView.js +1 -1
- package/package.json +2 -2
- package/support/basemapUtils.js +1 -1
- package/support/revision.js +1 -1
- package/views/3d/environment/ChapmanAtmosphere.js +1 -1
- package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
- package/views/3d/layers/BuildingSceneLayerView3D.js +1 -1
- package/views/3d/layers/BuildingSublayerView3D.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/I3SMeshViewLabeler.js +1 -1
- package/views/3d/layers/MediaLayerView3D.js +1 -1
- package/views/3d/layers/PointCloudLayerView3D.js +1 -1
- package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
- package/views/3d/layers/graphics/Graphics3DGraphicsPipeline.js +1 -1
- package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DSymbolCreationContext.js +1 -1
- package/views/3d/layers/graphics/Graphics3DWaterSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
- package/views/3d/layers/graphics/Labeler.js +1 -1
- package/views/3d/layers/graphics/pipeline/Feature3DPipeline.js +1 -1
- package/views/3d/layers/graphics/pipeline/rendering/DirectRenderer.js +1 -1
- package/views/3d/layers/graphics/pipeline/rendering/FeaturePipelineRenderManager.js +1 -1
- package/views/3d/layers/graphics/pipeline/rendering/LodRenderer.js +1 -1
- package/views/3d/layers/graphics/pointUtils.js +1 -1
- package/views/3d/layers/graphics/polygonUtils.js +1 -1
- package/views/3d/layers/i3s/I3SIntersectionHandler.js +1 -1
- package/views/3d/layers/i3s/Intersector.js +1 -1
- package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
- package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
- package/views/3d/layers/support/Tiles3DIntersectionHandler.js +1 -1
- package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
- package/views/3d/support/hitTest.js +1 -1
- package/views/3d/terrain/OverlayRenderTargets.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/webgl/ManagedColorAttachment.js +1 -1
- package/views/3d/webgl/ManagedDepthAttachment.js +1 -1
- package/views/3d/webgl/ManagedFBO.js +1 -1
- package/views/3d/webgl/ManagedFBOAttachment.js +1 -1
- package/views/3d/webgl/{ManagedFBObject.js → ManagedFBOResource.js} +1 -1
- package/views/3d/webgl/formats.js +1 -1
- package/views/3d/webgl-engine/core/FBOCache.js +1 -1
- package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
- package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +1 -1
- package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
- package/views/3d/webgl-engine/effects/geometry/RenderOccludedRenderNode.js +1 -1
- package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
- package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
- package/views/3d/webgl-engine/lib/IntersectorInterfaces.js +1 -1
- package/views/3d/webgl-engine/lib/IntersectorTarget.js +1 -1
- package/views/3d/webgl-engine/lib/MainFramebuffer.js +1 -1
- package/views/3d/webgl-engine/lib/Object3D.js +1 -1
- package/views/3d/webgl-engine/lib/ObjectAndLayerIdRenderHelper.js +1 -1
- package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
- package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/ViewshedShadowMap.js +1 -1
- package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
- package/views/3d/webgl-engine/lib/intersectorUtilsConversions.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/Intersector.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/LodResources.js +1 -1
- package/views/3d/webgl.js +1 -1
- package/views/SceneView.js +1 -1
- package/views/webgl/FramebufferObject.js +1 -1
- package/views/webgl/GLObjectType.js +1 -1
- package/views/webgl/Renderbuffer.js +1 -1
- package/assets/esri/core/workers/chunks/534f3d7e4300b662191a.js +0 -1
- package/assets/esri/core/workers/chunks/8e20ec4e8e2cfc582fe7.js +0 -319
|
@@ -382,7 +382,7 @@ return outColor;
|
|
|
382
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);`}
|
|
383
383
|
vec4 finalColor = vec4(shadedColor, opacity_);
|
|
384
384
|
outputColorHighlightOID(finalColor, vpos);
|
|
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 f=(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 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],o=i[u+2]-f[2],n=t*t+r*r+o*o;if(n<=p)continue;const a=Math.sqrt(n),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]+=o*l}this.center=f,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 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 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 x 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 x(e,t)}}const T=()=>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=x.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(),!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,o,a,s,c=0){s||T().error("An attempt to use uninitialized data!"),this._glName||T().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)&&T().error("An attempt to update out of bounds of the texture!"),this._configurePixelStorage();const{gl:x}=d;c&&(o&&a||T().warn("Must pass width and height if `UNPACK_SKIP_ROWS` is used"),x.pixelStorei(x.UNPACK_SKIP_ROWS,c)),p(s)?x.texSubImage2D(m,t,r,i,o,a,u,h,s):f(s)?x.compressedTexSubImage2D(m,t,r,i,o,a,l.internalFormat,s.levels[t]):x.texSubImage2D(m,t,r,i,o,a,u,h,s),c&&x.pixelStorei(x.UNPACK_SKIP_ROWS,0),d.bindTexture(g,e.TEXTURE_UNIT_FOR_UPDATES)}updateData3D(t,r,i,o,a,s,c,l){l||T().error("An attempt to use uninitialized data!"),this._glName||T().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 n.A("Cannot update immutable texture before allocation!");v(g)||T().warn("Attempting to set 3D texture data on a non-3D texture");const x=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)&&T().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,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(x,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(p(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),f(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) {
|
|
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 f=(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 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],o=i[u+2]-f[2],n=t*t+r*r+o*o;if(n<=p)continue;const a=Math.sqrt(n),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]+=o*l}this.center=f,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 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 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 x 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 x(e,t)}}const T=()=>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=x.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(),!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,o,a,s,c=0){s||T().error("An attempt to use uninitialized data!"),this._glName||T().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)&&T().error("An attempt to update out of bounds of the texture!"),this._configurePixelStorage();const{gl:x}=d;c&&(o&&a||T().warn("Must pass width and height if `UNPACK_SKIP_ROWS` is used"),x.pixelStorei(x.UNPACK_SKIP_ROWS,c)),p(s)?x.texSubImage2D(m,t,r,i,o,a,u,h,s):f(s)?x.compressedTexSubImage2D(m,t,r,i,o,a,l.internalFormat,s.levels[t]):x.texSubImage2D(m,t,r,i,o,a,u,h,s),c&&x.pixelStorei(x.UNPACK_SKIP_ROWS,0),d.bindTexture(g,e.TEXTURE_UNIT_FOR_UPDATES)}updateData3D(t,r,i,o,a,s,c,l){l||T().error("An attempt to use uninitialized data!"),this._glName||T().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 n.A("Cannot update immutable texture before allocation!");v(g)||T().warn("Attempting to set 3D texture data on a non-3D texture");const x=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)&&T().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,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(x,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(p(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),f(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) {
|
|
386
386
|
vec3 camToVert = posWorld - camPosWorld;
|
|
387
387
|
bool isBackface = dot(camToVert, normalWorld) > 0.0;
|
|
388
388
|
if (isBackface) {
|
|
@@ -581,13 +581,13 @@ return applyScreenSizePerspectiveScaleFactorVec2(size, screenSizePerspectiveScal
|
|
|
581
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() { vuv0 = uv0; }`);case i.Atlas:return e.attributes.add(s.r.UV0,"vec2"),e.attributes.add(s.r.UVREGION,"vec4"),e.varyings.add("vuv0","vec2"),e.varyings.add("vuvRegion","vec4"),void e.vertex.code.add(a.H`void forwardTextureCoordinates() {
|
|
582
582
|
vuv0 = uv0;
|
|
583
583
|
vuvRegion = uvRegion;
|
|
584
|
-
}`);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.COUNT=3]="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),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"}(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 x=r(69622),T=r(49186),b=r(89192);let A=class extends x.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 T.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 I 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 R=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,R.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,p.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(I),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(I);if(!f.compiled||!v.compiled)return this._enableTime=(0,p.l5)(performance.now()),this.requestRender(b.C7.UPDATE),s.acquire(u,m,o.SSAO,n.RED);0===this._enableTime&&(this._enableTime=(0,p.l5)(performance.now()));const g=this.renderingContext,x=this.view.qualitySettings.fadeDuration,T=c.relativeElevation,A=(0,h.qE)((5e5-T)/2e5,0,1),E=x>0?Math.min(x,performance.now()-this._enableTime)/x: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(f,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() {
|
|
584
|
+
}`);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.COUNT=3]="COUNT"},54849:(e,t,r)=>{r.d(t,{n:()=>V});var i,o,n,a=r(31821),s=r(12791),c=r(90237),l=r(34727),d=r(97768),u=r(36708),h=r(78659),m=r(10107),f=(r(44208),r(53966),r(87811),r(40608)),p=r(37585);r(9093),r(48353),r(9762),(n=i||(i={})).OPAQUE="opaque-color",n.TRANSPARENT="transparent-color",n.COMPOSITE="composite-color",n.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="focusarea",e.FOCUSAREA_COLOR="focusarea-color"}(o||(o={}));var v,g,_=r(63907);(g=v||(v={}))[g.R8=33321]="R8",g[g.R8UI=33330]="R8UI",g[g.RG8=33323]="RG8",g[g.RG8UI=33336]="RG8UI",g[g.RGBA4=32854]="RGBA4",g[g.RGBA8=32856]="RGBA8",g[g.RGBA8_MIPMAP=42843]="RGBA8_MIPMAP",g[g.R16F=33325]="R16F",g[g.RGBA16F=34842]="RGBA16F",_.yQ.DEPTH_COMPONENT16;var x=r(69622),T=r(49186),b=r(89192);let A=class extends x.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,u.wB)((()=>this.view.ready),(e=>{e&&this.view.stage?.renderer.addRenderNode(this)}),u.Vh)])}destroy(){this.view.stage?.renderer?.removeRenderNode(this)}precompile(){}render(){throw new T.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,c._)([(0,m.MZ)({constructOnly:!0})],A.prototype,"view",void 0),(0,c._)([(0,m.MZ)({constructOnly:!0})],A.prototype,"consumes",void 0),(0,c._)([(0,m.MZ)()],A.prototype,"produces",void 0),(0,c._)([(0,m.MZ)({readOnly:!0})],A.prototype,"techniques",null),A=(0,c._)([(0,f.$)("esri.views.3d.webgl.RenderNode")],A);const E=A;var S=r(97220),M=r(98958),w=r(95774),C=r(90644);class I 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 R=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,R.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(30164),B=r(67171);const U=2;let G=class extends E{constructor(e){super(e),this.consumes={required:["normals"]},this.produces=o.SSAO,this.isEnabled=()=>!1,this._enableTime=(0,h.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 B.R;t.wrapMode=_.pF.CLAMP_TO_EDGE,t.pixelFormat=_.Ab.RGB,t.wrapMode=_.pF.REPEAT,t.hasMipmap=!0,t.width=32,t.height=32,this._passParameters.noiseTexture=new F.g(this.renderingContext,t,e),this.techniques.precompile(H),this.techniques.precompile(I),this.addHandles((0,u.wB)((()=>this.isEnabled()),(()=>this._enableTime=(0,h.l5)(0))))}destroy(){this._passParameters.noiseTexture=(0,d.WD)(this._passParameters.noiseTexture)}render(e){const t=this.bindParameters,r=e.find((({name:e})=>"normals"===e)),i=r?.getTexture(),n=r?.getTexture(_.nI),a=this.fboCache,s=t.camera,c=s.fullViewport[2],d=s.fullViewport[3],u=Math.round(c/U),m=Math.round(d/U),f=this.techniques.get(H),g=this.techniques.get(I);if(!f.compiled||!g.compiled)return this._enableTime=(0,h.l5)(performance.now()),this.requestRender(b.C7.UPDATE),a.acquire(u,m,o.SSAO,v.R8);0===this._enableTime&&(this._enableTime=(0,h.l5)(performance.now()));const x=this.renderingContext,T=this.view.qualitySettings.fadeDuration,A=s.relativeElevation,E=(0,l.qE)((5e5-A)/2e5,0,1),S=T>0?Math.min(T,performance.now()-this._enableTime)/T:1,M=S*E;this._passParameters.normalTexture=i,this._passParameters.depthTexture=n,this._passParameters.projScale=1/s.computeScreenPixelSizeAtDist(1),this._passParameters.intensity=4*z/(0,L.g)(s)**6*M;const w=a.acquire(c,d,"ssao input",v.RG8);x.bindFramebuffer(w.fbo),x.setViewport(0,0,c,d),x.bindTechnique(f,t,this._passParameters,this._drawParameters),x.screen.draw();const C=a.acquire(u,m,"ssao blur",v.R8);x.bindFramebuffer(C.fbo),this._drawParameters.colorTexture=w.getTexture(),(0,p.hZ)(this._drawParameters.blurSize,0,U/d),x.bindTechnique(g,t,this._passParameters,this._drawParameters),x.setViewport(0,0,u,m),x.screen.draw(),w.release();const R=a.acquire(u,m,o.SSAO,v.R8);return x.bindFramebuffer(R.fbo),x.setViewport(0,0,c,d),x.setClearColor(1,1,1,0),x.clear(_.NV.COLOR),this._drawParameters.colorTexture=C.getTexture(),(0,p.hZ)(this._drawParameters.blurSize,U/c,0),x.bindTechnique(g,t,this._passParameters,this._drawParameters),x.setViewport(0,0,u,m),x.screen.draw(),x.setViewport4fv(s.fullViewport),C.release(),S<1&&this.requestRender(b.C7.UPDATE),R}};(0,c._)([(0,m.MZ)()],G.prototype,"consumes",void 0),(0,c._)([(0,m.MZ)()],G.prototype,"produces",void 0),(0,c._)([(0,m.MZ)({constructOnly:!0})],G.prototype,"isEnabled",void 0),G=(0,c._)([(0,f.$)("esri.views.3d.webgl-engine.effects.ssao.SSAO")],G);const z=.5;function V(e,t){const r=e.fragment;t.receiveAmbientOcclusion?(r.uniforms.add(new s.x("ssaoTex",(e=>e.ssao?.getTexture()))),r.constants.add("blurSizePixelsInverse","float",1/U),r.code.add(a.H`float evaluateAmbientOcclusionInverse() {
|
|
585
585
|
vec2 ssaoTextureSizeInverse = 1.0 / vec2(textureSize(ssaoTex, 0));
|
|
586
586
|
return texture(ssaoTex, gl_FragCoord.xy * blurSizePixelsInverse * ssaoTextureSizeInverse).r;
|
|
587
587
|
}
|
|
588
588
|
float evaluateAmbientOcclusion() {
|
|
589
589
|
return 1.0 - evaluateAmbientOcclusionInverse();
|
|
590
|
-
}`)):r.code.add(
|
|
590
|
+
}`)):r.code.add(a.H`float evaluateAmbientOcclusionInverse() { return 1.0; }
|
|
591
591
|
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),f=r(40261),p=r(54849),v=r(74081),g=r(98619),_=r(22393),x=r(59469),T=r(25618),b=r(96598),A=r(42398),E=r(11955),S=r(27950),M=r(20693),w=r(33079),C=r(71988),I=r(20304),R=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===x.A9.Normal||z===x.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(R.H`
|
|
592
592
|
forwardNormalizedVertexColor();
|
|
593
593
|
vcolorExt = externalColor;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[1056,8256],{4146:(t,e,n)=>{n.d(e,{A:()=>_});var i=n(90237),r=n(78888),s=n(49186),o=n(65529),a=n(4902),l=n(92474),u=n(53966),c=n(74887),d=n(84952),h=n(10107),g=(n(44208),n(87811),n(40608)),f=n(5443),p=n(16930),b=n(92602),y=n(79677);let v=0,m=class extends(o.A.EventedMixin(a.A.IdentifiableMixin(l.A))){constructor(){super(...arguments),this.attributionDataUrl=null,this.fullExtent=new f.A(-180,-90,180,90,p.A.WGS84),this.id=Date.now().toString(16)+"-layer-"+v++,this.legendEnabled=!0,this.listMode="show",this.opacity=1,this.parent=null,this.persistenceEnabled=!1,this.popupEnabled=!0,this.attributionVisible=!0,this.spatialReference=p.A.WGS84,this.title=null,this.type=null,this.url=null,this.visibilityTimeExtent=null,this.visible=!0}static async fromArcGISServerUrl(t){const e="string"==typeof t?{url:t}:t;return(await n.e(7982).then(n.bind(n,27982))).fromUrl(e)}static fromPortalItem(t){return async function(t){const e="portalItem"in t?t:{portalItem:t},{fromItem:i}=await n.e(5613).then(n.bind(n,45613));try{return await i(e)}catch(t){const n=e?.portalItem,i=n?.id||"unset",r=n?.portal?.url||b.A.portalUrl;throw u.A.getLogger("esri.layers.support.fromPortalItem").error("#fromPortalItem()","Failed to create layer from portal item (portal: '"+r+"', id: '"+i+"')",t),t}}(t)}initialize(){this.when().catch((t=>{(0,c.zf)(t)||u.A.getLogger(this).error("#load()",`Failed to load layer (title: '${this.title??"no title"}', id: '${this.id??"no id"}')`,{error:t})}))}destroy(){const t=this.parent;if(t){const e=this;"layers"in t&&t.layers.includes(e)?t.layers.remove(e):"tables"in t&&t.tables.includes(e)?t.tables.remove(e):"baseLayers"in t&&t.baseLayers.includes(e)?t.baseLayers.remove(e):"referenceLayers"in t&&t.referenceLayers.includes(e)&&t.referenceLayers.remove(e),this._set("parent",null)}}get effectiveVisible(){let t=this.visible;const e=this.parent;return t&&e&&"effectiveVisible"in e&&(t&&=e.effectiveVisible),t}get hasAttributionData(){return null!=this.attributionDataUrl}get parsedUrl(){return(0,d.An)(this.url)}createLayerView(t,e){return Promise.reject(new s.A("layer:create-layer-view","Layer does not support creating a layer view"))}async fetchAttributionData(){const t=this.attributionDataUrl;if(this.hasAttributionData&&t)return(await(0,r.A)(t,{query:{f:"json"},responseType:"json"})).data;throw new s.A("layer:no-attribution-data","Layer does not have attribution data")}};(0,i._)([(0,h.MZ)({type:String})],m.prototype,"attributionDataUrl",void 0),(0,i._)([(0,h.MZ)({readOnly:!0})],m.prototype,"effectiveVisible",null),(0,i._)([(0,h.MZ)({type:f.A})],m.prototype,"fullExtent",void 0),(0,i._)([(0,h.MZ)({readOnly:!0})],m.prototype,"hasAttributionData",null),(0,i._)([(0,h.MZ)({type:String,clonable:!1})],m.prototype,"id",void 0),(0,i._)([(0,h.MZ)({type:Boolean,nonNullable:!0})],m.prototype,"legendEnabled",void 0),(0,i._)([(0,h.MZ)({type:["show","hide","hide-children"]})],m.prototype,"listMode",void 0),(0,i._)([(0,h.MZ)({type:Number,range:{min:0,max:1},nonNullable:!0})],m.prototype,"opacity",void 0),(0,i._)([(0,h.MZ)({clonable:!1})],m.prototype,"parent",void 0),(0,i._)([(0,h.MZ)({readOnly:!0})],m.prototype,"parsedUrl",null),(0,i._)([(0,h.MZ)({type:Boolean,readOnly:!0})],m.prototype,"persistenceEnabled",void 0),(0,i._)([(0,h.MZ)({type:Boolean})],m.prototype,"popupEnabled",void 0),(0,i._)([(0,h.MZ)({type:Boolean})],m.prototype,"attributionVisible",void 0),(0,i._)([(0,h.MZ)({type:p.A})],m.prototype,"spatialReference",void 0),(0,i._)([(0,h.MZ)({type:String})],m.prototype,"title",void 0),(0,i._)([(0,h.MZ)({readOnly:!0,json:{read:!1}})],m.prototype,"type",void 0),(0,i._)([(0,h.MZ)()],m.prototype,"url",void 0),(0,i._)([(0,h.MZ)({type:y.A})],m.prototype,"visibilityTimeExtent",void 0),(0,i._)([(0,h.MZ)({type:Boolean,nonNullable:!0})],m.prototype,"visible",void 0),m=(0,i._)([(0,g.$)("esri.layers.Layer")],m);const _=m},4341:(t,e,n)=>{n.d(e,{I:()=>r});var i=n(26390);class r{constructor(t){this._allocator=t,this._items=[],this._itemsPtr=0,this._grow()}get(){return 0===this._itemsPtr&&(0,i.d)((()=>this._reset())),this._itemsPtr===this._items.length&&this._grow(),this._items[this._itemsPtr++]}_reset(){const t=Math.min(3*Math.max(8,this._itemsPtr),this._itemsPtr+3*s);this._items.length=Math.min(t,this._items.length),this._itemsPtr=0}_grow(){for(let t=0;t<Math.max(8,Math.min(this._items.length,s));t++)this._items.push(this._allocator())}}const s=1024},4902:(t,e,n)=>{n.d(e,{A:()=>c});var i=n(90237),r=n(40608);let s=0;const o=t=>{let e=class extends t{constructor(...t){super(...t),Object.defineProperty(this,"uid",{writable:!1,configurable:!1,value:Date.now().toString(16)+"-object-"+s++})}};return e=(0,i._)([(0,r.$)("esri.core.Identifiable")],e),e},a=t=>{let e=class extends t{constructor(...t){super(...t),Object.defineProperty(this,"uid",{writable:!1,configurable:!1,value:s++})}};return e=(0,i._)([(0,r.$)("esri.core.Identifiable.NumericIdentifiable")],e),e};let l=class extends(o(class{})){};var u;l=(0,i._)([(0,r.$)("esri.core.Identifiable")],l),(u=l||(l={})).IdentifiableMixin=o,u.NumericIdentifiableMixin=a;const c=l},11964:(t,e,n)=>{n.d(e,{Cr:()=>u,H6:()=>h,_I:()=>d,kb:()=>c,vt:()=>l});var i=n(34727),r=n(4341),s=n(38954),o=n(51850),a=n(32114);function l(t){return t?{origin:(0,o.o8)(t.origin),vector:(0,o.o8)(t.vector)}:{origin:(0,o.vt)(),vector:(0,o.vt)()}}function u(t,e,n=l()){return(0,s.c)(n.origin,t),(0,s.d)(n.vector,e,t),n}function c(t,e){const n=(0,s.d)(a.rq.get(),e,t.origin),r=(0,s.f)(t.vector,n),o=(0,s.f)(t.vector,t.vector),l=(0,i.qE)(r/o,0,1),u=(0,s.d)(a.rq.get(),(0,s.h)(a.rq.get(),t.vector,l),n);return(0,s.f)(u,u)}function d(t,e,n){return h(t,e,0,1,n)}function h(t,e,n,r,o){const{vector:l,origin:u}=t,c=(0,s.d)(a.rq.get(),e,u),d=(0,s.f)(l,c)/(0,s.k)(l);return(0,s.h)(o,l,(0,i.qE)(d,n,r)),(0,s.g)(o,o,t.origin)}(0,o.vt)(),(0,o.vt)(),new r.I((()=>l()))},17352:(t,e,n)=>{n.d(e,{b:()=>$,f:()=>_}),n(44208);var i=n(53966),r=n(34727),s=n(4341),o=n(58083),a=n(9093),l=n(38954),u=n(51850),c=n(19419),d=n(88582),h=n(11964),g=n(27921),f=n(71351),p=n(44280),b=n(32114);const y=()=>i.A.getLogger("esri.views.3d.support.geometryUtils.boundedPlane");function v(t=D){return{plane:(0,g.vt)(t.plane),origin:(0,u.o8)(t.origin),basis1:(0,u.o8)(t.basis1),basis2:(0,u.o8)(t.basis2)}}function m(t,e=v()){return _(t.origin,t.basis1,t.basis2,e)}function _(t,e,n,i=v()){return(0,l.c)(i.origin,t),(0,l.c)(i.basis1,e),(0,l.c)(i.basis2,n),M(i),function(t,e){Math.abs((0,l.f)(t.basis1,t.basis2)/((0,l.l)(t.basis1)*(0,l.l)(t.basis2)))>1e-6&&y().warn(e,"Provided basis vectors are not perpendicular"),Math.abs((0,l.f)(t.basis1,x(t)))>1e-6&&y().warn(e,"Basis vectors and plane normal are not perpendicular"),Math.abs(-(0,l.f)(x(t),t.origin)-t.plane[3])>1e-6&&y().warn(e,"Plane offset is not consistent with plane origin")}(i,"fromValues()"),i}function M(t){(0,g.mR)(t.basis2,t.basis1,t.origin,t.plane)}function A(t,e,n){t!==n&&m(t,n);const i=(0,l.h)(b.rq.get(),x(t),e);return(0,l.g)(n.origin,n.origin,i),n.plane[3]-=e,n}function w(t,e=v()){const n=(t[2]-t[0])/2,i=(t[3]-t[1])/2;return(0,l.i)(e.origin,t[0]+n,t[1]+i,0),(0,l.i)(e.basis1,n,0,0),(0,l.i)(e.basis2,0,i,0),(0,g.fA)(0,0,1,0,e.plane),e}function S(t,e,n){return!!(0,g.Ui)(t.plane,e,n)&&L(t,n)}function E(t,e,n){const i=U.get();R(t,e,i,U.get());let s=Number.POSITIVE_INFINITY;for(const o of F){const a=P(t,o,C.get()),u=b.rq.get();if((0,g.T7)(i,a,u)){const t=(0,l.o)(b.rq.get(),e.origin,u),i=Math.abs((0,r.XM)((0,l.f)(e.direction,t)));i<s&&(s=i,(0,l.c)(n,u))}}return s===Number.POSITIVE_INFINITY?I(t,e,n):n}function I(t,e,n){if(S(t,e,n))return n;const i=U.get(),r=U.get();R(t,e,i,r);let s=Number.POSITIVE_INFINITY;for(const o of F){const a=P(t,o,C.get()),u=b.rq.get();if((0,g.gv)(i,a,u)){const t=(0,f.kb)(e,u);if(!(0,g.Tj)(r,u))continue;t<s&&(s=t,(0,l.c)(n,u))}}return q(t,e.origin)<s&&O(t,e.origin,n),n}function O(t,e,n){const i=(0,g._I)(t.plane,e,b.rq.get()),r=(0,h.H6)(j(t,t.basis1),i,-1,1,b.rq.get()),s=(0,h.H6)(j(t,t.basis2),i,-1,1,b.rq.get());return(0,l.d)(n,(0,l.g)(b.rq.get(),r,s),t.origin),n}function T(t,e,n){const{origin:i,basis1:r,basis2:s}=t,o=(0,l.d)(b.rq.get(),e,i),a=(0,p.gr)(r,o),u=(0,p.gr)(s,o),c=(0,p.gr)(x(t),o);return(0,l.i)(n,a,u,c)}function q(t,e){const n=T(t,e,b.rq.get()),{basis1:i,basis2:r}=t,s=(0,l.l)(i),o=(0,l.l)(r),a=Math.max(Math.abs(n[0])-s,0),u=Math.max(Math.abs(n[1])-o,0),c=n[2];return a*a+u*u+c*c}function N(t,e){const n=-t.plane[3];return(0,p.gr)(x(t),e)-n}function x(t){return(0,g.Qj)(t.plane)}function L(t,e){const n=(0,l.d)(b.rq.get(),e,t.origin),i=(0,l.k)(t.basis1),r=(0,l.k)(t.basis2),s=(0,l.f)(t.basis1,n),o=(0,l.f)(t.basis2,n);return-s-i<0&&s-i<0&&-o-r<0&&o-r<0}function j(t,e){const n=C.get();return(0,l.c)(n.origin,t.origin),(0,l.c)(n.vector,e),n}function P(t,e,n){const{basis1:i,basis2:r,origin:s}=t,o=(0,l.h)(b.rq.get(),i,e.origin[0]),a=(0,l.h)(b.rq.get(),r,e.origin[1]);(0,l.g)(n.origin,o,a),(0,l.g)(n.origin,n.origin,s);const u=(0,l.h)(b.rq.get(),i,e.direction[0]),c=(0,l.h)(b.rq.get(),r,e.direction[1]);return(0,l.h)(n.vector,(0,l.g)(u,u,c),2),n}function R(t,e,n,i){const r=x(t);(0,g.mR)(r,e.direction,e.origin,n),(0,g.mR)((0,g.Qj)(n),r,e.origin,i)}const D={plane:(0,g.vt)(),origin:(0,u.fA)(0,0,0),basis1:(0,u.fA)(1,0,0),basis2:(0,u.fA)(0,1,0)},U=new s.I(g.vt),C=new s.I(h.vt),Z=(0,u.vt)(),V=new s.I((()=>v())),F=[{origin:[-1,-1],direction:[1,0]},{origin:[1,-1],direction:[0,1]},{origin:[1,1],direction:[-1,0]},{origin:[-1,1],direction:[0,-1]}],k=(0,a.vt)(),B=(0,a.vt)(),$=Object.freeze(Object.defineProperty({__proto__:null,BoundedPlaneClass:class{constructor(){this.plane=(0,g.vt)(),this.origin=(0,u.vt)(),this.basis1=(0,u.vt)(),this.basis2=(0,u.vt)()}},altitudeAt:N,axisAt:function(t,e,n,i){return function(t,e,n){switch(e){case d._.X:(0,l.c)(n,t.basis1),(0,l.n)(n,n);break;case d._.Y:(0,l.c)(n,t.basis2),(0,l.n)(n,n);break;case d._.Z:(0,l.c)(n,x(t))}return n}(t,n,i)},cameraFrustumCoverage:function(t,e){return(e-t)/e},closestPoint:I,closestPointOnSilhouette:E,copy:m,copyWithoutVerify:function(t,e){(0,l.c)(e.origin,t.origin),(0,l.c)(e.basis1,t.basis1),(0,l.c)(e.basis2,t.basis2),(0,g.C)(e.plane,t.plane)},create:v,distance:function(t,e){return Math.sqrt(q(t,e))},distance2:q,distanceToSilhouette:function(t,e){let n=Number.NEGATIVE_INFINITY;for(const i of F){const r=P(t,i,C.get()),s=(0,h.kb)(r,e);s>n&&(n=s)}return Math.sqrt(n)},elevate:A,equals:function(t,e){return(0,l.p)(t.basis1,e.basis1)&&(0,l.p)(t.basis2,e.basis2)&&(0,l.p)(t.origin,e.origin)},extrusionContainsPoint:function(t,e){return(0,g.Tj)(t.plane,e)&&L(t,e)},fromAABoundingRect:w,fromValues:_,getExtent:function(t,e){const n=t.basis1[0],i=t.basis2[1],[r,s]=t.origin;return(0,c.fA)(r-n,s-i,r+n,s+i,e)},intersectRay:S,intersectRayClosestSilhouette:function(t,e,n){if(S(t,e,n))return n;const i=E(t,e,b.rq.get());return(0,l.g)(n,e.origin,(0,l.h)(b.rq.get(),e.direction,(0,l.j)(e.origin,i)/(0,l.l)(e.direction))),n},normal:x,projectPoint:O,projectPointLocal:T,rotate:function(t,e,n,i){return t!==i&&m(t,i),(0,o.$0)(B,e,n),(0,l.t)(i.basis1,t.basis1,B),(0,l.t)(i.basis2,t.basis2,B),M(i),i},setAltitudeAt:function(t,e,n,i){const r=N(t,e),s=(0,l.h)(Z,x(t),n-r);return(0,l.g)(i,e,s),i},setExtent:function(t,e,n){return w(e,n),A(n,N(t,t.origin),n),n},transform:function(t,e,n){return t!==n&&m(t,n),(0,o.B8)(k,e),(0,o.mg)(k,k),(0,l.t)(n.basis1,t.basis1,k),(0,l.t)(n.basis2,t.basis2,k),(0,l.t)((0,g.Qj)(n.plane),(0,g.Qj)(t.plane),k),(0,l.t)(n.origin,t.origin,e),(0,g.mP)(n.plane,n.plane,n.origin),n},up:D,updateUnboundedPlane:M,wrap:function(t,e,n){const i=V.get();return i.origin=t,i.basis1=e,i.basis2=n,i.plane=(0,g.LV)(0,0,0,0),M(i),i}},Symbol.toStringTag,{value:"Module"}))},36708:(t,e,n)=>{n.d(e,{C_:()=>h,OH:()=>p,Vh:()=>b,on:()=>d,pc:()=>y,wB:()=>l,z7:()=>u});var i=n(37955),r=n(36563),s=n(97768),o=n(74887),a=n(14012);function l(t,e,n={}){return c(t,e,n,g)}function u(t,e,n={}){return c(t,e,n,f)}function c(t,e,n={},i){let r=null;const o=n.once?(t,n)=>{i(t)&&((0,s.xt)(r),e(t,n))}:(t,n)=>{i(t)&&e(t,n)};if(r=(0,a.Cn)(t,o,n.sync,n.equals),n.initial){const e=t();o(e,e)}return r}function d(t,e,n,o={}){let a=null,u=null,c=null;function d(){a&&u&&(u.remove(),o.onListenerRemove?.(a),a=null,u=null)}function h(t){o.once&&o.once&&(0,s.xt)(c),n(t)}const g=l(t,((t,n)=>{d(),(0,i.wb)(t)&&(a=t,u=(0,i.on)(t,e,h),o.onListenerAdd?.(t))}),{sync:o.sync,initial:!0});return c=(0,r.hA)((()=>{g.remove(),d()})),c}function h(t,e){return function(t,e,n){if((0,o.G4)(n))return Promise.reject((0,o.NK)());const i=t();if(e?.(i))return Promise.resolve(i);let a=null;function l(){a=(0,s.xt)(a)}return new Promise(((i,s)=>{a=(0,r.vE)([(0,o.u7)(n,(()=>{l(),s((0,o.NK)())})),c(t,(t=>{l(),i(t)}),{sync:!1,once:!0},e??g)])}))}(t,f,e)}function g(t){return!0}function f(t){return!!t}n(80559);const p={sync:!0},b={initial:!0},y={sync:!0,initial:!0}},44612:(t,e,n)=>{n.d(e,{xH:()=>o,N1:()=>l}),n(38954);var i=n(51850),r=n(71351),s=(n(62258),n(58083),n(70328),n(97937),n(65215));function o(t,e){return a(t)===a(e)}function a(t){if(null==t)return null;const e=null!=t.layer?t.layer.id:"";let n=null;return n=null!=t.objectId?t.objectId:null!=t.layer&&"objectIdField"in t.layer&&null!=t.layer.objectIdField&&null!=t.attributes?t.attributes[t.layer.objectIdField]:t.uid,null==n?null:`o-${e}-${n}`}n(86305),s.R6,s.HE,s.R6,s.R6,s.R6,n(87582),(0,i.vt)();const l={json:{write:{writer:function(t,e){null!=t?.layer?.objectIdField&&null!=t.attributes&&(e.feature={layerId:t.layer.id,objectId:t.attributes[t.layer.objectIdField]})},target:{"feature.layerId":{type:[Number,String],isRequired:!0},"feature.objectId":{type:[Number,String],isRequired:!0}}},origins:{"web-scene":{read:function(t){if(null!=t.layerId&&null!=t.objectId)return{uid:null,layer:{id:t.layerId,objectIdField:"ObjectId"},attributes:{ObjectId:t.objectId}}}}}}};(0,r.vt)(),(0,i.vt)()},45475:(t,e,n)=>{n.d(e,{A:()=>g});var i=n(90237),r=n(69622),s=n(4576),o=n(69540),a=n(4902),l=n(25482),u=n(10107),c=(n(44208),n(53966),n(40608));let d=0,h=class extends(l.A.JSONSupportMixin(o.A.ClonableMixin(a.A.IdentifiableMixin(r.A)))){constructor(t){super(t),this.id=`${Date.now().toString(16)}-analysis-${d++}`,this.title=null}get parent(){return this._get("parent")}set parent(t){const e=this.parent;if(null!=e)switch(e.type){case"line-of-sight":case"dimension":case"viewshed":e.releaseAnalysis(this);break;case"2d":case"3d":e.analyses.includes(this)&&e.analyses.remove(this)}this._set("parent",t)}get isEditable(){return this.requiredPropertiesForEditing.every(s.Ru)}};(0,i._)([(0,u.MZ)({type:String,constructOnly:!0,clonable:!1})],h.prototype,"id",void 0),(0,i._)([(0,u.MZ)({type:String})],h.prototype,"title",void 0),(0,i._)([(0,u.MZ)({clonable:!1,value:null})],h.prototype,"parent",null),(0,i._)([(0,u.MZ)({readOnly:!0})],h.prototype,"isEditable",null),h=(0,i._)([(0,c.$)("esri.analysis.Analysis")],h);const g=h},62258:(t,e,n)=>{var i,r;n.d(e,{dz:()=>i,oH:()=>r}),function(t){t[t.OBJECT=0]="OBJECT",t[t.HUD=1]="HUD",t[t.TERRAIN=2]="TERRAIN",t[t.OVERLAY=3]="OVERLAY",t[t.I3S=4]="I3S",t[t.PCL=5]="PCL",t[t.LOD=6]="LOD",t[t.VOXEL=7]="VOXEL",t[t.TILES3D=8]="TILES3D"}(i||(i={})),function(t){t[t.MIN=0]="MIN",t[t.MINMAX=1]="MINMAX",t[t.ALL=2]="ALL"}(r||(r={}))},62885:(t,e,n)=>{n.d(e,{H:()=>s,V:()=>r});var i=n(5503);function r(t,e,n=i.A){return e||(e=new n),e===t||(e.removeAll(),(r=t)&&(Array.isArray(r)||"items"in r&&Array.isArray(r.items))?e.addMany(t):t&&e.add(t)),e;var r}function s(t){return t}},65215:(t,e,n)=>{n.d(e,{HE:()=>i,R6:()=>r}),n(51850);class i{constructor(t){this.layerViewUid=t}}class r extends i{constructor(t,e){super(t),this.graphicUid=e}}},69540:(t,e,n)=>{n.d(e,{A:()=>h});var i=n(90237),r=n(69622),s=(n(44208),n(4718)),o=(n(53966),n(97768)),a=n(35666),l=n(88620),u=n(40608);const c=t=>{let e=class extends t{clone(){const t=(0,l.oY)(this);(0,o.Lw)(t,"unable to clone instance of non-accessor class");const e=t.metadata,n=t.store,i={},r=new Map;for(const t in e){const o=e[t],l=n?.originOf(t),u=o.clonable;if(o.readOnly||!1===u||l!==a.Gr.USER&&l!==a.Gr.DEFAULTS&&l!==a.Gr.WEB_MAP&&l!==a.Gr.WEB_SCENE)continue;const c=this[t];let d=null;d="function"==typeof u?u(c):"reference"===u?c:(0,s.TU)(c),null!=c&&null==d||(l===a.Gr.DEFAULTS?r.set(t,d):i[t]=d)}const u=new(0,Object.getPrototypeOf(this).constructor)(i);if(r.size){const t=(0,l.oY)(u)?.store;if(t)for(const[e,n]of r)t.set(e,n,a.Gr.DEFAULTS)}return u}};return e=(0,i._)([(0,u.$)("esri.core.Clonable")],e),e};let d=class extends(c(r.A)){};d=(0,i._)([(0,u.$)("esri.core.Clonable")],d),(d||(d={})).ClonableMixin=c;const h=d},71351:(t,e,n)=>{n.d(e,{C:()=>d,Cr:()=>h,LV:()=>c,kb:()=>g,oC:()=>f,vt:()=>l}),n(4576);var i=n(4341),r=(n(77690),n(29242)),s=n(38954),o=n(51850),a=n(32114);function l(t){return t?u((0,o.o8)(t.origin),(0,o.o8)(t.direction)):u((0,o.vt)(),(0,o.vt)())}function u(t,e){return{origin:t,direction:e}}function c(t,e){const n=p.get();return n.origin=t,n.direction=e,n}function d(t,e=l()){return function(t,e,n=l()){return(0,s.c)(n.origin,t),(0,s.c)(n.direction,e),n}(t.origin,t.direction,e)}function h(t,e,n=l()){return(0,s.c)(n.origin,t),(0,s.d)(n.direction,e,t),n}function g(t,e){const n=(0,s.e)(a.rq.get(),(0,s.n)(a.rq.get(),t.direction),(0,s.d)(a.rq.get(),e,t.origin));return(0,s.f)(n,n)}function f(t,e,n){const i=(0,s.f)(t.direction,(0,s.d)(n,e,t.origin));return(0,s.g)(n,t.origin,(0,s.h)(n,t.direction,i)),n}const p=new i.I((()=>l()));(0,o.vt)(),(0,o.vt)(),(0,o.vt)(),(0,r.vt)()},78553:(t,e,n)=>{n.d(e,{D:()=>s,p:()=>r});var i=n(56507);function r(t){const e=(0,i.Vr)(100*(1-t));return Math.max(0,Math.min(e,100))}function s(t){const e=1-t/100;return Math.max(0,Math.min(e,1))}},79677:(t,e,n)=>{n.d(e,{A:()=>g});var i,r=n(90237),s=n(25482),o=n(88930),a=n(10107),l=(n(44208),n(53966),n(87811),n(36005)),u=n(40608),c=n(43937),d=n(98623);let h=class extends s.A{static{i=this}static get allTime(){return f}static get empty(){return p}static fromArray(t){return new i({start:null!=t[0]?new Date(t[0]):t[0],end:null!=t[1]?new Date(t[1]):t[1]})}constructor(t){super(t),this.end=null,this.start=null}readEnd(t,e){return null!=e.end?new Date(e.end):null}writeEnd(t,e){e.end=t?.getTime()??null}get isAllTime(){return this.equals(i.allTime)}get isEmpty(){return this.equals(i.empty)}readStart(t,e){return null!=e.start?new Date(e.start):null}writeStart(t,e){e.start=t?.getTime()??null}clone(){return new i({end:this.end,start:this.start})}equals(t){if(!t)return!1;const e=this.start?.getTime()??this.start,n=this.end?.getTime()??this.end,i=t.start?.getTime()??t.start,r=t.end?.getTime()??t.end;return e===i&&n===r}expandTo(t,e=d.qU){if(this.isEmpty||this.isAllTime)return this.clone();let n=this.start;n&&(n=(0,o.lL)(n,t,e));let r=this.end;if(r){const n=(0,o.lL)(r,t,e);r=r.getTime()===n.getTime()?n:(0,o.S1)(n,1,t,e)}return new i({start:n,end:r})}intersection(t){if(!t)return this.clone();if(this.isEmpty||t.isEmpty)return i.empty;if(this.isAllTime)return t.clone();if(t.isAllTime)return this.clone();const e=this.start?.getTime()??-1/0,n=this.end?.getTime()??1/0,r=t.start?.getTime()??-1/0,s=t.end?.getTime()??1/0;let o,a;return r>=e&&r<=n?o=r:e>=r&&e<=s&&(o=e),n>=r&&n<=s?a=n:s>=e&&s<=n&&(a=s),null==o||null==a||isNaN(o)||isNaN(a)?i.empty:new i({start:o===-1/0?null:new Date(o),end:a===1/0?null:new Date(a)})}offset(t,e,n=d.qU){if(this.isEmpty||this.isAllTime)return this.clone();const r=new i,{start:s,end:a}=this;return null!=s&&(r.start=(0,o.S1)(s,t,e,n)),null!=a&&(r.end=(0,o.S1)(a,t,e,n)),r}toArray(){return this.isEmpty?[void 0,void 0]:[this.start?.getTime()??null,this.end?.getTime()??null]}union(t){if(!t||t.isEmpty)return this.clone();if(this.isEmpty)return t.clone();if(this.isAllTime||t.isAllTime)return f.clone();const e=null!=this.start&&null!=t.start?new Date(Math.min(this.start.getTime(),t.start.getTime())):null,n=null!=this.end&&null!=t.end?new Date(Math.max(this.end.getTime(),t.end.getTime())):null;return new i({start:e,end:n})}};(0,r._)([(0,a.MZ)({type:Date,json:{write:{allowNull:!0}}})],h.prototype,"end",void 0),(0,r._)([(0,l.w)("end")],h.prototype,"readEnd",null),(0,r._)([(0,c.K)("end")],h.prototype,"writeEnd",null),(0,r._)([(0,a.MZ)({readOnly:!0,json:{read:!1}})],h.prototype,"isAllTime",null),(0,r._)([(0,a.MZ)({readOnly:!0,json:{read:!1}})],h.prototype,"isEmpty",null),(0,r._)([(0,a.MZ)({type:Date,json:{write:{allowNull:!0}}})],h.prototype,"start",void 0),(0,r._)([(0,l.w)("start")],h.prototype,"readStart",null),(0,r._)([(0,c.K)("start")],h.prototype,"writeStart",null),h=i=(0,r._)([(0,u.$)("esri.time.TimeExtent")],h);const g=h,f=new h,p=new h({start:void 0,end:void 0})},86305:(t,e,n)=>{n.d(e,{i3:()=>r}),n(38954);var i=n(51850);function r(t){return null!=t?.dist}n(17352),n(62258),(0,i.vt)()},87582:(t,e,n)=>{n.d(e,{h:()=>r}),n(62258);var i=n(65215);n(86305);class r extends i.R6{constructor(t,e,n,i,r){super(t,e),this.layerViewUid=t,this.graphicUid=e,this.triangleNr=n,this.baseBoundingSphere=i,this.numLodLevels=r}}},92071:(t,e,n)=>{n.d(e,{P:()=>m,L:()=>_});var i=n(90237),r=n(69622),s=n(76953),o=n(4718),a=n(35666);class l{constructor(){this._propertyOriginMap=new Map,this._originStores=new Array(a.AU),this._values=new Map,this.multipleOriginsSupported=!0}clone(t){const e=new l,n=this._originStores[a.Gr.DEFAULTS];n&&n.forEach(((t,n)=>{e.set(n,(0,o.o8)(t),a.Gr.DEFAULTS)}));for(let n=a.Gr.SERVICE;n<a.AU;n++){const i=this._originStores[n];i&&i.forEach(((i,r)=>{t&&t.has(r)||e.set(r,(0,o.o8)(i),n)}))}return e}get(t,e){const n=void 0===e?this._values:this._originStores[e];return n?n.get(t):void 0}keys(t){const e=null==t?this._values:this._originStores[t];return e?[...e.keys()]:[]}set(t,e,n=a.Gr.USER){let i=this._originStores[n];if(i||(i=new Map,this._originStores[n]=i),i.set(t,e),!this._values.has(t)||this._propertyOriginMap.get(t)<=n){const i=this._values.get(t);return this._values.set(t,e),this._propertyOriginMap.set(t,n),i!==e}return!1}delete(t,e=a.Gr.USER){const n=this._originStores[e];if(!n)return;const i=n.get(t);if(n.delete(t),this._values.has(t)&&this._propertyOriginMap.get(t)===e){this._values.delete(t);for(let n=e-1;n>=0;n--){const e=this._originStores[n];if(e&&e.has(t)){this._values.set(t,e.get(t)),this._propertyOriginMap.set(t,n);break}}}return i}has(t,e){const n=void 0===e?this._values:this._originStores[e];return!!n&&n.has(t)}revert(t,e){for(;e>0&&!this.has(t,e);)--e;const n=this._originStores[e],i=n?.get(t),r=this._values.get(t);return this._values.set(t,i),this._propertyOriginMap.set(t,e),r!==i}originOf(t){return this._propertyOriginMap.get(t)||a.Gr.DEFAULTS}forEach(t){this._values.forEach(t)}}var u=n(45917),c=n(88620),d=n(40608);const h=t=>{let e=class extends t{constructor(...t){super(...t);const e=(0,c.oY)(this),n=e.store,i=new l;e.store=i,(0,s.k)(e,n,i)}read(t,e){(0,u.L)(this,t,e)}getAtOrigin(t,e){const n=g(this),i=(0,a.aB)(e);if("string"==typeof t)return n.get(t,i);const r={};return t.forEach((t=>{r[t]=n.get(t,i)})),r}originOf(t){return(0,a.OL)(this.originIdOf(t))}originIdOf(t){return g(this).originOf(t)}revert(t,e){const n=g(this),i=(0,a.aB)(e),r=(0,c.oY)(this);let s;s="string"==typeof t?"*"===t?n.keys(i):[t]:t,s.forEach((t=>{r.invalidate(t),n.revert(t,i),r.commit(t)}))}};return e=(0,i._)([(0,d.$)("esri.core.ReadOnlyMultiOriginJSONSupport")],e),e};function g(t){return(0,c.oY)(t).store}let f=class extends(h(r.A)){};f=(0,i._)([(0,d.$)("esri.core.ReadOnlyMultiOriginJSONSupport")],f);var p=n(16649),b=n(49422);const y=t=>{let e=class extends t{constructor(...t){super(...t)}clear(t,e="user"){return v(this).delete(t,(0,a.aB)(e))}write(t,e){return(0,b.M)(this,t=t||{},e),t}setAtOrigin(t,e,n){(0,c.oY)(this).setAtOrigin(t,e,(0,a.aB)(n))}removeOrigin(t){const e=v(this),n=(0,a.aB)(t),i=e.keys(n);for(const t of i)e.originOf(t)===n&&e.set(t,e.get(t,n),a.Gr.USER)}updateOrigin(t,e){const n=v(this),i=(0,a.aB)(e),r=(0,p.Jt)(this,t);for(let e=i+1;e<a.AU;++e)n.delete(t,e);n.set(t,r,i)}toJSON(t){return this.write({},t)}};return e=(0,i._)([(0,d.$)("esri.core.MultiOriginJSONSupport.WriteableMultiOriginJSONSupport")],e),e.prototype.toJSON.isDefaultToJSON=!0,e};function v(t){return(0,c.oY)(t).store}const m=t=>{let e=class extends(y(h(t))){constructor(...t){super(...t)}};return e=(0,i._)([(0,d.$)("esri.core.MultiOriginJSONSupport")],e),e};let _=class extends(m(r.A)){};_=(0,i._)([(0,d.$)("esri.core.MultiOriginJSONSupport")],_)},97937:(t,e,n)=>{n.d(e,{a:()=>A,c:()=>b,e:()=>m,f:()=>w,g:()=>M,i:()=>T,o:()=>R,s:()=>C,w:()=>_}),n(44208),n(53966);var i=n(34727),r=n(58083),s=n(38954),o=n(51850),a=n(87317),l=n(91829),u=n(34304),c=n(88582),d=n(71351);function h(t,e){const n=(0,s.l)(t),r=(0,i.YN)(t[2]/n),o=Math.atan2(t[1]/n,t[0]/n);return(0,s.i)(e,n,r,o),e}var g=n(44280),f=n(32114);const p=b();function b(){return(0,l.vt)()}const y=a.e,v=a.e;function m(t,e){return(0,a.c)(e,t)}function _(t){return t}function M(t){return t[3]}function A(t){return t}function w(t,e,n,i){return(0,l.fA)(t,e,n,i)}function S(t,e,n){if(null==e)return!1;if(!I(t,e,E))return!1;let{t0:i,t1:r}=E;if((i<0||r<i&&r>0)&&(i=r),i<0)return!1;if(n){const{origin:t,direction:r}=e;n[0]=t[0]+r[0]*i,n[1]=t[1]+r[1]*i,n[2]=t[2]+r[2]*i}return!0}const E={t0:0,t1:0};function I(t,e,n){const{origin:i,direction:r}=e,s=O;s[0]=i[0]-t[0],s[1]=i[1]-t[1],s[2]=i[2]-t[2];const o=r[0]*r[0]+r[1]*r[1]+r[2]*r[2];if(0===o)return!1;const a=2*(r[0]*s[0]+r[1]*s[1]+r[2]*s[2]),l=a*a-4*o*(s[0]*s[0]+s[1]*s[1]+s[2]*s[2]-t[3]*t[3]);if(l<0)return!1;const u=Math.sqrt(l);return n.t0=(-a-u)/(2*o),n.t1=(-a+u)/(2*o),!0}const O=(0,o.vt)();function T(t,e){return S(t,e,null)}function q(t,e,n){const i=f.rq.get(),o=f.Rc.get();(0,s.e)(i,e.origin,e.direction);const a=M(t);(0,s.e)(n,i,e.origin),(0,s.h)(n,n,1/(0,s.l)(n)*a);const l=x(t,e.origin),u=(0,g.g7)(e.origin,n);return(0,r.$0)(o,u+l,i),(0,s.t)(n,n,o),n}function N(t,e,n){const i=(0,s.d)(f.rq.get(),e,t),r=(0,s.h)(f.rq.get(),i,t[3]/(0,s.l)(i));return(0,s.g)(n,r,t)}function x(t,e){const n=(0,s.d)(f.rq.get(),e,t),r=(0,s.l)(n),o=M(t),a=o+Math.abs(o-r);return(0,i.XM)(o/a)}const L=(0,o.vt)();function j(t,e,n,i){const r=(0,s.d)(L,e,t);switch(n){case c._.X:{const t=h(r,L)[2];return(0,s.i)(i,-Math.sin(t),Math.cos(t),0)}case c._.Y:{const t=h(r,L),e=t[1],n=t[2],o=Math.sin(e);return(0,s.i)(i,-o*Math.cos(n),-o*Math.sin(n),Math.cos(e))}case c._.Z:return(0,s.n)(i,r);default:return}}function P(t,e){const n=(0,s.d)(D,e,t);return(0,s.l)(n)-t[3]}function R(t,e){const n=(0,s.s)(t,e),i=M(t);return n<=i*i}const D=(0,o.vt)(),U=b(),C=Object.freeze(Object.defineProperty({__proto__:null,NullSphere:p,altitudeAt:P,angleToSilhouette:x,axisAt:j,cameraFrustumCoverage:function(t,e,n,i){const r=M(t),s=r*r,o=e+.5*Math.PI,a=n*n+s-2*Math.cos(o)*n*r,l=Math.sqrt(a),u=a-s;if(u<=0)return.5;const c=Math.sqrt(u),d=Math.acos(c/l)-Math.asin(r/(l/Math.sin(o)));return Math.min(1,(d+.5*i)/i)},clear:function(t){t[0]=t[1]=t[2]=t[3]=0},closestPoint:function(t,e,n){return S(t,e,n)?n:((0,d.oC)(e,t,n),N(t,n,n))},closestPointOnSilhouette:q,containsPoint:R,copy:m,create:b,distanceToSilhouette:function(t,e){const n=(0,s.d)(f.rq.get(),e,t),i=(0,s.k)(n),r=t[3]*t[3];return Math.sqrt(Math.abs(i-r))},elevate:function(t,e,n){return t!==n&&(n[0]=t[0],n[1]=t[1],n[2]=t[2]),n[3]=t[3]+e,n},equals:v,exactEquals:y,fromCenterAndRadius:function(t,e){return(0,l.fA)(t[0],t[1],t[2],e)},fromRadius:function(t,e){return t[0]=t[1]=t[2]=0,t[3]=e,t},fromValues:w,getCenter:A,getExtent:function(t,e){return e},getRadius:M,intersectLine:function(t,e,n){const i=(0,d.Cr)(e,n);if(!I(t,i,E))return[];const{origin:r,direction:a}=i,{t0:l,t1:c}=E,h=e=>{const n=(0,o.vt)();return(0,s.b)(n,r,a,e),N(t,n,n)};return Math.abs(l-c)<(0,u.FD)()?[h(l)]:[h(l),h(c)]},intersectRay:S,intersectRayClosestSilhouette:function(t,e,n){if(S(t,e,n))return n;const i=q(t,e,f.rq.get());return(0,s.g)(n,e.origin,(0,s.h)(f.rq.get(),e.direction,(0,s.j)(e.origin,i)/(0,s.l)(e.direction))),n},intersectsRay:T,projectPoint:N,setAltitudeAt:function(t,e,n,i){const r=P(t,e),o=j(t,e,c._.Z,D),a=(0,s.h)(D,o,n-r);return(0,s.g)(i,e,a)},setExtent:function(t,e,n){return t!==n&&m(t,n),n},tmpSphere:U,union:function(t,e,n=(0,l.vt)()){const i=(0,s.j)(t,e),r=t[3],o=e[3];return i+o<r?((0,a.c)(n,t),n):i+r<o?((0,a.c)(n,e),n):((0,s.m)(n,t,e,(i+o-r)/(2*i)),n[3]=(i+r+o)/2,n)},wrap:_},Symbol.toStringTag,{value:"Module"}))}}]);
|