@arcgis/core 4.33.0-next.20250312 → 4.33.0-next.20250314

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.
Files changed (174) hide show
  1. package/Basemap.js +1 -1
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/065ae931b5891847a06f.js +1 -0
  4. package/assets/esri/core/workers/chunks/{4263eee3247aaf4e64bf.js → 147e412de9972da16a1d.js} +1 -1
  5. package/assets/esri/core/workers/chunks/{3ee2cf2db08164cde43c.js → 23aa7254fffe67e3f1bc.js} +74 -75
  6. package/assets/esri/core/workers/chunks/29ba2022c2978e9bd53e.js +1 -0
  7. package/assets/esri/core/workers/chunks/2b21152c7e2d9c170ed7.js +1 -0
  8. package/assets/esri/core/workers/chunks/7ded83eb64eff069b761.js +1 -0
  9. package/assets/esri/core/workers/chunks/a7a1832274892e99c388.js +1 -0
  10. package/assets/esri/core/workers/chunks/c43c273725b1a33712ec.js +314 -0
  11. package/assets/esri/core/workers/chunks/{2c227d97d00b3849f441.js → d459c790a3b89ac53d2d.js} +1 -1
  12. package/chunks/ComponentShader.glsl.js +7 -8
  13. package/chunks/FocusAreaMask.glsl.js +2 -1
  14. package/chunks/HighlightApply.glsl.js +27 -132
  15. package/chunks/{SingleHighlightBlur.glsl.js → HighlightBlur.glsl.js} +4 -4
  16. package/chunks/HighlightDownsample.glsl.js +8 -8
  17. package/chunks/HighlightToSingle.glsl.js +2 -2
  18. package/chunks/ShadowHighlight.glsl.js +5 -6
  19. package/chunks/Terrain.glsl.js +15 -16
  20. package/core/has.js +1 -1
  21. package/layers/VoxelWasmPerSceneView.js +1 -1
  22. package/layers/orientedImagery/transformations/utils.js +1 -1
  23. package/layers/support/layerUtils.js +1 -1
  24. package/package.json +1 -1
  25. package/support/revision.js +1 -1
  26. package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
  27. package/views/2d/engine/webgl/Painter.js +1 -1
  28. package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
  29. package/views/2d/engine/webgl/effects/FeatureEffect.js +1 -1
  30. package/views/2d/engine/webgl/effects/HighlightEffect.js +1 -1
  31. package/views/2d/engine/webgl/effects/HittestEffect.js +1 -1
  32. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  33. package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
  34. package/views/2d/layers/imagery/VectorFieldTileView2D.js +1 -1
  35. package/views/3d/analysis/Dimension/DimensionVisualization.js +1 -1
  36. package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
  37. package/views/3d/analysis/Slice/SliceTool.js +1 -1
  38. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  39. package/views/3d/environment/CloudsRenderer.js +1 -1
  40. package/views/3d/environment/EnvironmentManager.js +1 -1
  41. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  42. package/views/3d/environment/Fog.js +1 -1
  43. package/views/3d/environment/MarsAtmosphere.js +1 -1
  44. package/views/3d/environment/Precipitation.js +1 -1
  45. package/views/3d/interactive/Manipulator3D.js +1 -1
  46. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentRotate.js +1 -1
  47. package/views/3d/interactive/visualElements/LabelVisualElement.js +1 -1
  48. package/views/3d/interactive/visualElements/LaserlineVisualElement.js +1 -1
  49. package/views/3d/interactive/visualElements/Object3DVisualElement.js +1 -1
  50. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  51. package/views/3d/interactive/visualElements/VisualElement.js +1 -1
  52. package/views/3d/interactive/visualElements/VisualElementResources.js +1 -1
  53. package/views/3d/layers/DrapedSubView3D.js +5 -0
  54. package/views/3d/layers/DynamicLayerView3D.js +1 -1
  55. package/views/3d/layers/I3SMeshView3D.js +1 -1
  56. package/views/3d/layers/ImageryLayerView3D.js +1 -1
  57. package/views/3d/layers/ImagerySubView3D.js +5 -0
  58. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  59. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  60. package/views/3d/layers/Lyr3DWasm.js +1 -1
  61. package/views/3d/layers/MediaLayerView3D.js +1 -1
  62. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  63. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  64. package/views/3d/layers/SubView3D.js +5 -0
  65. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  66. package/views/3d/layers/WMSLayerView3D.js +1 -1
  67. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  68. package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayer.js +1 -1
  69. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  70. package/views/3d/layers/graphics/Graphics3DLodInstanceGraphicLayer.js +1 -1
  71. package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
  72. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  73. package/views/3d/layers/graphics/Labeler.js +1 -1
  74. package/views/3d/layers/graphics/pipeline/Feature3DPipeline.js +1 -1
  75. package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorker.js +1 -1
  76. package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorkerHandle.js +1 -1
  77. package/views/3d/layers/graphics/pipeline/featureData/processingUtils.js +1 -1
  78. package/views/3d/layers/graphics/pipeline/rendering/DirectRenderer.js +1 -1
  79. package/views/3d/layers/graphics/pipeline/rendering/FeaturePipelineRenderManager.js +1 -1
  80. package/views/3d/layers/graphics/pipeline/rendering/LodRenderer.js +1 -1
  81. package/views/3d/layers/graphics/pipeline/rendering/RenderCommandContext.js +1 -1
  82. package/views/3d/layers/graphics/pipeline/symbolization/TestObjectSymbol.js +1 -1
  83. package/views/3d/layers/graphics/pipeline/symbolization/TestSymbol.js +1 -1
  84. package/views/3d/layers/graphics/pipeline/utils.js +1 -1
  85. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  86. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  87. package/views/3d/layers/support/Tiles3DIntersectionHandler.js +1 -1
  88. package/views/3d/state/ViewStateManager.js +1 -1
  89. package/views/3d/state/controllers/FovController.js +1 -1
  90. package/views/3d/state/controllers/PinchAndPanControllerGlobal.js +1 -1
  91. package/views/3d/state/controllers/PinchAndPanControllerLocal.js +1 -1
  92. package/views/3d/state/controllers/RotateController.js +1 -1
  93. package/views/3d/state/controllers/ZoomControllerGlobal.js +1 -1
  94. package/views/3d/state/controllers/ZoomControllerLocal.js +1 -1
  95. package/views/3d/state/controllers/ZoomStepControllerGlobal.js +1 -1
  96. package/views/3d/state/controllers/ZoomStepControllerLocal.js +1 -1
  97. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  98. package/views/3d/support/MemoryController.js +1 -1
  99. package/views/3d/support/SceneViewPerformanceInfo.js +1 -1
  100. package/views/3d/support/SharedSymbolResources.js +1 -1
  101. package/views/3d/support/buffer/InterleavedLayout.js +1 -1
  102. package/views/3d/support/flowUtils.js +5 -0
  103. package/views/3d/terrain/OverlayManager.js +1 -1
  104. package/views/3d/terrain/OverlayRenderTargets.js +1 -1
  105. package/views/3d/terrain/OverlayRenderer.js +1 -1
  106. package/views/3d/terrain/TerrainSurface.js +1 -1
  107. package/views/3d/terrain/TileCompositor.js +1 -1
  108. package/views/3d/terrain/TileRenderer.js +1 -1
  109. package/views/3d/webgl/ManagedFBO.js +1 -1
  110. package/views/3d/webgl/RenderNode.js +1 -1
  111. package/views/3d/webgl/formats.js +1 -1
  112. package/views/3d/webgl-engine/Stage.js +1 -1
  113. package/views/3d/webgl-engine/core/FBOCache.js +1 -1
  114. package/views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js +2 -2
  115. package/views/3d/webgl-engine/core/shaderLibrary/HighlightReadBitmap.glsl.js +3 -3
  116. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +7 -8
  117. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +18 -18
  118. package/views/3d/webgl-engine/core/shaderModules/UintTexture2DBindUniform.js +5 -0
  119. package/views/3d/webgl-engine/core/shaderModules/UintTexture2DDrawUniform.js +5 -0
  120. package/views/3d/webgl-engine/core/shaderModules/UintTexture2DPassUniform.js +5 -0
  121. package/views/3d/webgl-engine/effects/bloom/BloomRenderNode.js +1 -1
  122. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
  123. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +1 -1
  124. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  125. package/views/3d/webgl-engine/effects/geometry/ObjectAndLayerIDRenderNode.js +1 -1
  126. package/views/3d/webgl-engine/effects/geometry/RenderOccludedRenderNode.js +1 -1
  127. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  128. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  129. package/views/3d/webgl-engine/effects/highlight/HighlightBlurTechnique.js +5 -0
  130. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  131. package/views/3d/webgl-engine/effects/laserlines/LaserLineRenderer.js +1 -1
  132. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  133. package/views/3d/webgl-engine/effects/transparency/OITBlendTechnique.js +1 -1
  134. package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
  135. package/views/3d/webgl-engine/lib/MainFramebuffer.js +1 -1
  136. package/views/3d/webgl-engine/lib/OrderIndependentTransparency.js +1 -1
  137. package/views/3d/webgl-engine/lib/Program.js +1 -1
  138. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  139. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  140. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  141. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  142. package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +1 -1
  143. package/views/3d/webgl-engine/shaders/{SingleHighlightBlur.glsl.js → HighlightBlur.glsl.js} +1 -1
  144. package/views/3d/webgl-engine/shaders/HighlightDownsample.glsl.js +1 -1
  145. package/views/3d/webgl-engine/shaders/HighlightToSingle.glsl.js +1 -1
  146. package/views/3d/webgl-engine/shaders/ShadowHighlight.glsl.js +1 -1
  147. package/views/FocusAreas.js +1 -1
  148. package/views/SceneView.js +1 -1
  149. package/views/support/imageReprojection.js +1 -1
  150. package/views/webgl/FramebufferObject.js +1 -1
  151. package/views/webgl/Program.js +1 -1
  152. package/views/webgl/RenderingContext.js +1 -1
  153. package/views/webgl/ShaderBuilder.js +1 -1
  154. package/views/webgl/ShaderTranspiler.js +1 -1
  155. package/views/webgl/Texture.js +1 -1
  156. package/views/webgl/ValidatedTextureDescriptor.js +1 -1
  157. package/views/webgl/capabilities/Capabilities.js +1 -1
  158. package/views/webgl/checkWebGLError.js +1 -1
  159. package/views/webgl/enums.js +1 -1
  160. package/views/webgl/testFloatBufferBlend.js +1 -1
  161. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  162. package/widgets/OrientedImageryViewer/adapters/sketch/DataCaptureAdapter.js +1 -1
  163. package/widgets/OrientedImageryViewer/dataCaptureUtils.js +1 -1
  164. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  165. package/assets/esri/core/workers/chunks/15fe629cd4da1bb2169f.js +0 -1
  166. package/assets/esri/core/workers/chunks/8196ff250c0de00104f7.js +0 -1
  167. package/assets/esri/core/workers/chunks/be883ebdbaf11647b718.js +0 -1
  168. package/assets/esri/core/workers/chunks/d0ad20548eb4786b7750.js +0 -314
  169. package/assets/esri/core/workers/chunks/d374d2a1487faee3672d.js +0 -1
  170. package/assets/esri/core/workers/chunks/dbdca19978fbee8dc106.js +0 -1
  171. package/chunks/SingleHighlightApply.glsl.js +0 -32
  172. package/views/3d/webgl-engine/effects/highlight/SingleHighlightApplyTechnique.js +0 -5
  173. package/views/3d/webgl-engine/effects/highlight/SingleHighlightBlurTechnique.js +0 -5
  174. package/views/3d/webgl-engine/shaders/SingleHighlightApply.glsl.js +0 -5
@@ -1 +1 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[3116],{751:(e,t,r)=>{r.d(t,{CJ:()=>y});var a=r(49186),n=r(4718),s=r(93637),i=r(67124),o=r(83531);const l=new Set(["bing-maps","imagery","imagery-tile","map-image","open-street-map","tile","unknown","unsupported","vector-tile","web-tile","wcs","wms","wmts"]),c=new Set(["catalog","csv","feature","geo-rss","geojson","group","imagery","imagery-tile","kml","knowledge-graph","map-image","map-notes","media","ogc-feature","oriented-imagery","route","stream","subtype-group","tile","unknown","unsupported","vector-tile","web-tile","wcs","wfs","wms","wmts"]),u=new Set([...c,"link-chart"]);function p(e,t){if(t.restrictedWebMapWriting){const r=function(e){switch(e.layerContainerType){case"basemap":return l;case"operational-layers":return"link-chart"===e.origin?u:c;default:return null}}(t);return null==r||r.has(e.type)&&!(0,o.Ov)(e)}return!0}function d(e,t){"maxScale"in e&&(t.maxScale=(0,i.B)(e.maxScale)??void 0),"minScale"in e&&(t.minScale=(0,i.B)(e.minScale)??void 0)}function y(e,t,r){if(!e.persistenceEnabled)return null;if(!("write"in e)||!e.write)return r?.messages&&r.messages.push(new a.A("layer:unsupported",`Layers (${e.title}, ${e.id}) of type '${e.declaredClass}' cannot be persisted`,{layer:e})),null;if((0,o.Ov)(e)&&!e.isTable)t=e.resourceInfo;else if(p(e,r)){const t={};return e.write(t,r)?t:null}return null!=t&&function(e,t){if(function(e,t){if(t)if((0,o.Ov)(e)){const r=(0,s.wc)("featureCollection.layers",t),a=r?.[0]?.layerDefinition;a&&d(e,a)}else"group"!==e.type&&d(e,t)}(e,t),t&&(t.id=e.id,"blendMode"in e&&(t.blendMode=e.blendMode,"normal"===t.blendMode&&delete t.blendMode),t.opacity=(0,i.B)(e.opacity)??void 0,t.title=e.title||"Layer",t.visibility=e.visible,"legendEnabled"in e&&"wmts"!==e.type))if((0,o.Ov)(e)){const r=t.featureCollection;r&&(r.showLegend=e.legendEnabled)}else t.showLegend=e.legendEnabled}(e,t=(0,n.o8)(t)),t}},18047:(e,t,r)=>{r.d(t,{ZV:()=>l,yx:()=>o});var a=r(73444);const n={ar:"ar-u-nu-latn"};let s=new WeakMap,i={};function o(e={}){const t={};return null!=e.digitSeparator&&(t.useGrouping=e.digitSeparator),null!=e.places&&(t.minimumFractionDigits=t.maximumFractionDigits=e.places),t}function l(e,t){return Object.is(e,-0)&&(e=0),function(e){const t=e||i;if(!s.has(t)){const r=(0,a.JK)(),i=n[(0,a.JK)()]||r;s.set(t,new Intl.NumberFormat(i,e))}return s.get(t)}(t).format(e)}(0,a.Ml)((()=>{s=new WeakMap,i={}})),new Map},47566:(e,t,r)=>{r(97770),r(18047),r(71754),r(73444);var a=r(10838),n=r(78888),s=r(49186);async function i(e){if(null!=o.fetchBundleAsset)return o.fetchBundleAsset(e);const t=await(0,n.A)(e,{responseType:"text"});return JSON.parse(t.data)}const o={};var l,c=r(2741);(0,a.ao)((l={pattern:"esri/",location:c.s},new class{constructor({base:e="",pattern:t,location:r=new URL(window.location.href)}){let a;a="string"==typeof r?e=>new URL(e,new URL(r,window.location.href)).href:r instanceof URL?e=>new URL(e,r).href:r,this.pattern="string"==typeof t?new RegExp(`^${t}`):t,this.getAssetUrl=a,e=e?e.endsWith("/")?e:e+"/":"",this.matcher=new RegExp(`^${e}(?:(.*)\\/)?(.*)$`)}fetchMessageBundle(e,t){return async function(e,t,r,n){const o=t.exec(r);if(!o)throw new s.A("esri-intl:invalid-bundle",`Bundle id "${r}" is not compatible with the pattern "${t}"`);const l=o[1]?`${o[1]}/`:"",c=o[2],u=(0,a.xO)(n),p=`${l}${c}.json`,d=u?`${l}${c}_${u}.json`:p;let y;try{y=await i(e(d))}catch(t){if(d===p)throw new s.A("intl:unknown-bundle",`Bundle "${r}" cannot be loaded`,{error:t});try{y=await i(e(p))}catch(e){throw new s.A("intl:unknown-bundle",`Bundle "${r}" cannot be loaded`,{error:e})}}return y}(this.getAssetUrl,this.matcher,e,t)}}(l)))},60999:(e,t,r)=>{r.d(t,{DZ:()=>f,Ke:()=>y,Tj:()=>u,UT:()=>h,jJ:()=>c});var a=r(90237),n=r(69622),s=r(97768),i=r(74887),o=r(10107),l=r(40608);function c(e,t,r){return(0,i.Lx)(e.map(((e,a)=>t.apply(r,[e,a]))))}async function u(e,t,r){return(await(0,i.Lx)(e.map(((e,a)=>t.apply(r,[e,a]))))).map((e=>e.value))}function p(e){return{ok:!0,value:e}}function d(e){return{ok:!1,error:e}}async function y(e){if(null==e)return{ok:!1,error:new Error("no promise provided")};try{return p(await e)}catch(e){return d(e)}}async function f(e){try{return p(await e)}catch(e){return(0,i.QP)(e),d(e)}}function h(e,t){return new m(e,t)}let m=class extends n.A{get value(){return null!=(e=this._result)&&!0===e.ok?e.value:null;var e}get error(){return null!=(e=this._result)&&!1===e.ok?e.error:null;var e}get finished(){return null!=this._result}constructor(e,t){super({}),this._result=null,this._abortHandle=null,this.abort=()=>{this._abortController=(0,s.DC)(this._abortController)},this.remove=this.abort,this._abortController=new AbortController;const{signal:r}=this._abortController;this.promise=e(r),this.promise.then((e=>{this._result=p(e),this._cleanup()}),(e=>{this._result=d(e),this._cleanup()})),this._abortHandle=(0,i.u7)(t,this.abort)}normalizeCtorArgs(){return{}}destroy(){this.abort()}_cleanup(){this._abortHandle=(0,s.xt)(this._abortHandle),this._abortController=null}};(0,a._)([(0,o.MZ)()],m.prototype,"value",null),(0,a._)([(0,o.MZ)()],m.prototype,"error",null),(0,a._)([(0,o.MZ)()],m.prototype,"finished",null),(0,a._)([(0,o.MZ)()],m.prototype,"promise",void 0),(0,a._)([(0,o.MZ)()],m.prototype,"_result",void 0),m=(0,a._)([(0,l.$)("esri.core.asyncUtils.ReactiveTask")],m)},62885:(e,t,r)=>{r.d(t,{H:()=>s,V:()=>n});var a=r(5503);function n(e,t,r=a.A){return t||(t=new r),t===e||(t.removeAll(),(n=e)&&(Array.isArray(n)||"items"in n&&Array.isArray(n.items))?t.addMany(e):e&&t.add(e)),t;var n}function s(e){return e}},71754:(e,t,r)=>{r.d(t,{V:()=>c});var a=r(53966),n=r(93637),s=r(799),i=r(97770),o=r(18047);const l=()=>a.A.getLogger("esri.intl.substitute");function c(e,t,r={}){const{format:a={}}=r;return(0,s.HC)(e,(e=>function(e,t,r){let a,s;const i=e.indexOf(":");if(-1===i?a=e.trim():(a=e.slice(0,i).trim(),s=e.slice(i+1).trim()),!a)return"";const o=(0,n.wc)(a,t);if(null==o)return"";const l=(s?r?.[s]:null)??r?.[a];return l?u(o,l):s?p(o,s):d(o)}(e,t,a)))}function u(e,t){switch(t.type){case"date":return(0,i.Yq)(e,t.intlOptions);case"number":return(0,o.ZV)(e,t.intlOptions);default:return l().warn("missing format descriptor for key {key}"),d(e)}}function p(e,t){switch(t.toLowerCase()){case"dateformat":return(0,i.Yq)(e);case"numberformat":return(0,o.ZV)(e);default:return l().warn(`inline format is unsupported since 4.12: ${t}`),/^(dateformat|datestring)/i.test(t)?(0,i.Yq)(e):/^numberformat/i.test(t)?(0,o.ZV)(e):d(e)}}function d(e){switch(typeof e){case"string":return e;case"number":return(0,o.ZV)(e);case"boolean":return""+e;default:return e instanceof Date?(0,i.Yq)(e):""}}},81583:(e,t,r)=>{r.d(t,{L:()=>o,g:()=>i});var a=r(60999),n=r(5503),s=r(92474);async function i(e,t){return await e.load(),o(e,t)}async function o(e,t){const r=[],i=(...e)=>{for(const t of e)null!=t&&(Array.isArray(t)?i(...t):n.A.isCollection(t)?t.forEach((e=>i(e))):s.A.isLoadable(t)&&r.push(t))};t(i);let o=null;if(await(0,a.Tj)(r,(async e=>{const t=await(0,a.Ke)(function(e){return"loadAll"in e&&"function"==typeof e.loadAll}(e)?e.loadAll():e.load());!1!==t.ok||o||(o=t)})),o)throw o.error;return e}},83116:(e,t,r)=>{r.r(t),r.d(t,{default:()=>Z});var a=r(90237),n=r(78888),s=r(5503),i=r(62885),o=r(25482),l=r(4718),c=r(92474),u=r(81583),p=r(53966),d=r(97768),y=r(74887),f=r(84952),h=r(10107),m=(r(44208),r(40608)),w=r(43937),b=r(16930),g=r(20655),v=r(80812),L=r(43281),_=(r(47566),r(69622)),A=(r(87811),r(73444)),I=r(10838);let M=class extends _.A{constructor(e){super(e),this.apiKey=null,this.id=null,this.language=null,this.places=null,this.serviceUrl="https://basemapstyles-api.arcgis.com/arcgis/rest/services/styles/v2",this.worldview=null}get languageParameter(){const e=this.language;let t="local"===e||"global"===e?e:(0,I.xO)(e??(0,A.JK)())??"global";return t="no"===t?"nb":t,t}};(0,a._)([(0,h.MZ)()],M.prototype,"apiKey",void 0),(0,a._)([(0,h.MZ)()],M.prototype,"id",void 0),(0,a._)([(0,h.MZ)()],M.prototype,"language",void 0),(0,a._)([(0,h.MZ)()],M.prototype,"places",void 0),(0,a._)([(0,h.MZ)()],M.prototype,"serviceUrl",void 0),(0,a._)([(0,h.MZ)()],M.prototype,"worldview",void 0),M=(0,a._)([(0,m.$)("esri.support.BasemapStyle")],M);const S=M;var x,$=r(751);let k=0,C=x=class extends(o.A.JSONSupportMixin(c.A)){constructor(e){super(e),this.id=null,this.portalItem=null,this.spatialReference=null,this.style=null,this.thumbnailUrl=null,this.title="Basemap",this.id=Date.now().toString(16)+"-basemap-"+k++,this.baseLayers=new s.A,this.referenceLayers=new s.A;const t=e=>{e.parent&&e.parent!==this&&"remove"in e.parent&&e.parent.remove(e),e.parent=this,"elevation"===e.type&&p.A.getLogger(this).error(`Layer '${e.title}, id:${e.id}' of type '${e.type}' is not supported as a basemap layer and will therefore be ignored.`)},r=e=>{e.parent=null};this.addHandles([this.baseLayers.on("after-add",(e=>t(e.item))),this.referenceLayers.on("after-add",(e=>t(e.item))),this.baseLayers.on("after-remove",(e=>r(e.item))),this.referenceLayers.on("after-remove",(e=>r(e.item)))])}initialize(){this.when().catch((e=>{p.A.getLogger(this).error("#load()",`Failed to load basemap (title: '${this.title}', id: '${this.id}')`,e)})),this.resourceInfo&&this.read(this.resourceInfo.data,this.resourceInfo.context)}destroy(){const e=this.baseLayers.toArray();for(const t of e)t.destroy();const t=this.referenceLayers.toArray();for(const e of t)e.destroy();this.baseLayers.destroy(),this.referenceLayers.destroy(),this.portalItem=(0,d.pR)(this.portalItem)}normalizeCtorArgs(e){return e&&"resourceInfo"in e&&(this._set("resourceInfo",e.resourceInfo),delete(e={...e}).resourceInfo),e}set baseLayers(e){this._set("baseLayers",(0,i.V)(e,this._get("baseLayers")))}_writeBaseLayers(e,t,r){const a=[];e?(r={...r,layerContainerType:"basemap"},this.baseLayers.forEach((e=>{const t=(0,$.CJ)(e,r.webmap?r.webmap.getLayerJSONFromResourceInfo(e):null,r);null!=t&&a.push(t)})),this.referenceLayers.forEach((e=>{const t=(0,$.CJ)(e,r.webmap?r.webmap.getLayerJSONFromResourceInfo(e):null,r);null!=t&&("scene"!==e.type&&(t.isReference=!0),a.push(t))})),t.baseMapLayers=a):t.baseMapLayers=a}set referenceLayers(e){this._set("referenceLayers",(0,i.V)(e,this._get("referenceLayers")))}writeTitle(e,t){t.title=e||"Basemap"}load(e){return this.addResolvingPromise(this._loadFromSource(e)),Promise.resolve(this)}loadAll(){return(0,u.g)(this,(e=>{e(this.baseLayers,this.referenceLayers)}))}clone(){const e={id:this.id,title:this.title,portalItem:this.portalItem,baseLayers:this.baseLayers.map((e=>(0,l.Nb)(e)?e.clone():e)),referenceLayers:this.referenceLayers.map((e=>(0,l.Nb)(e)?e.clone():e))};return this.loaded&&(e.loadStatus="loaded"),new x({resourceInfo:this.resourceInfo}).set(e)}read(e,t){this.resourceInfo||this._set("resourceInfo",{data:e,context:t}),super.read(e,t)}write(e,t){return e=e||{},t?.origin||(t={origin:"web-map",...t}),super.write(e,t),!this.loaded&&this.resourceInfo?.data.baseMapLayers&&(e.baseMapLayers=this.resourceInfo.data.baseMapLayers.map((e=>{const t=(0,l.o8)(e);return t.url&&(0,f.BQ)(t.url)&&(t.url=`https:${t.url}`),t.templateUrl&&(0,f.BQ)(t.templateUrl)&&(t.templateUrl=`https:${t.templateUrl}`),t}))),e}async _loadFromSource(e){const{resourceInfo:t,portalItem:r,style:a}=this;(0,y.Te)(e);const n=[];if(t){const r=t.context?t.context.url:null;if(n.push(this._loadLayersFromJSON(t.data,r,e)),t.data.id&&!t.data.title){const e=t.data.id;n.push((0,L.q)(e).then((e=>{e&&this.read({title:e},t.context)})))}}else r?n.push(this._loadFromItem(r,e)):a&&n.push(this._loadFromStylesService(a,e));await Promise.all(n)}async _loadLayersFromJSON(e,t,a){const n=this.resourceInfo?.context,s=this.portalItem?.portal||n?.portal||null,i=O[n?.origin||""]??"web-map",{populateOperationalLayers:o}=await Promise.all([r.e(7251),r.e(5356)]).then(r.bind(r,75356)),l=[];if((0,y.Te)(a),e.baseMapLayers&&Array.isArray(e.baseMapLayers)){const r={context:{...n,origin:i,url:t,portal:s,layerContainerType:"basemap"},defaultLayerType:"DefaultTileLayer"},a=e=>"web-scene"===i&&"ArcGISSceneServiceLayer"===e.layerType||e.isReference,c=o(this.baseLayers,e.baseMapLayers.filter((e=>!a(e))),r);l.push(c);const u=o(this.referenceLayers,e.baseMapLayers.filter(a),r);l.push(u)}await Promise.allSettled(l)}async _loadFromItem(e,t){const r=await e.load(t),a=await r.fetchData("json",t),n=(0,f.An)(e.itemUrl??"");return this._set("resourceInfo",{data:a.baseMap??{},context:{origin:U[e.type||""]??"web-map",portal:e.portal||g.A.getDefault(),url:n}}),this.read(this.resourceInfo.data,this.resourceInfo.context),this.read({spatialReference:a.spatialReference},this.resourceInfo.context),this.read({title:e.title,thumbnailUrl:e.thumbnailUrl},{origin:"portal-item",portal:e.portal||g.A.getDefault(),url:n}),this._loadLayersFromJSON(this.resourceInfo.data,n,t)}async _loadFromStylesService(e,t){const r=e.serviceUrl.endsWith("/webmaps")?e.serviceUrl.slice(0,-8):e.serviceUrl,a=`${r}/styles/${e.id}/self`,s=`${r}/webmaps/${e.id}`,[i,o]=await Promise.all([(await(0,n.A)(a,{query:{token:e.apiKey},signal:t?.signal})).data,(await(0,n.A)(s,{query:{language:e.languageParameter,places:e.places,worldview:e.worldview,token:e.apiKey},signal:t?.signal})).data]);this.thumbnailUrl??=i.thumbnailUrl;const l=(0,f.An)(s);if(this._set("resourceInfo",{data:o.baseMap??{},context:{origin:"web-map",url:l}}),this.read(this.resourceInfo.data,this.resourceInfo.context),this.read({spatialReference:o.spatialReference},this.resourceInfo.context),await this._loadLayersFromJSON(this.resourceInfo.data,l,t),e.apiKey)for(const t of[...this.baseLayers,...this.referenceLayers])"apiKey"in t&&(t.apiKey=e.apiKey)}static fromId(e){const t=L.H[e];return t?t.itemId?new x({portalItem:{id:t.itemId,portal:{url:"https://www.arcgis.com"}}}):x.fromJSON(t,{origin:t.is3d?"web-scene":"web-map"}):null}};(0,a._)([(0,h.MZ)({json:{write:{ignoreOrigin:!0,target:"baseMapLayers",writer(e,t,r,a){this._writeBaseLayers(e,t,a)}},origins:{"web-scene":{write:{ignoreOrigin:!0,target:{baseMapLayers:{type:s.A}},writer(e,t,r,a){this._writeBaseLayers(e,t,a)}}}}}})],C.prototype,"baseLayers",null),(0,a._)([(0,h.MZ)({type:String,json:{origins:{"web-scene":{write:!0}}}})],C.prototype,"id",void 0),(0,a._)([(0,h.MZ)({type:v.default})],C.prototype,"portalItem",void 0),(0,a._)([(0,h.MZ)()],C.prototype,"referenceLayers",null),(0,a._)([(0,h.MZ)({readOnly:!0})],C.prototype,"resourceInfo",void 0),(0,a._)([(0,h.MZ)({type:b.A})],C.prototype,"spatialReference",void 0),(0,a._)([(0,h.MZ)({type:S})],C.prototype,"style",void 0),(0,a._)([(0,h.MZ)()],C.prototype,"thumbnailUrl",void 0),(0,a._)([(0,h.MZ)({type:String,json:{origins:{"web-scene":{write:{isRequired:!0}}}}})],C.prototype,"title",void 0),(0,a._)([(0,w.K)("title")],C.prototype,"writeTitle",null),C=x=(0,a._)([(0,m.$)("esri.Basemap")],C);const U={"Web Scene":"web-scene","Web Map":"web-map","Link Chart":"link-chart"},O={"web-scene":"web-scene","web-map":"web-map","link-chart":"link-chart"},Z=C},83531:(e,t,r)=>{r.d(t,{BR:()=>u,Ov:()=>o,TU:()=>i,W_:()=>l,XX:()=>s,tk:()=>p,wI:()=>c});var a=r(70333),n=r(78888);const s={Point:"SceneLayer","3DObject":"SceneLayer",IntegratedMesh:"IntegratedMeshLayer",PointCloud:"PointCloudLayer",Building:"BuildingSceneLayer"};function i(e){const t=e?.type;return"building-scene"===t||"integrated-mesh"===t||"point-cloud"===t||"scene"===t}function o(e){return"feature"===e?.type&&!e.url&&"memory"===e.source?.type}function l(e){const t=e?.type;return("feature"===t||"subtype-group"===t||"oriented-imagery"===t)&&"feature-layer"===e?.source?.type}async function c(e,t){const r=a.id?.findServerInfo(e);if(null!=r?.currentVersion)return r.owningSystemUrl||null;const s=e.toLowerCase().indexOf("/rest/services");if(-1===s)return null;const i=`${e.slice(0,s)}/rest/info`,o=null!=t?t.signal:null,{data:l}=await(0,n.A)(i,{query:{f:"json"},responseType:"json",signal:o});return l?.owningSystemUrl||null}function u(e){return function(e){if(!("capabilities"in e))return!1;switch(e.type){case"catalog":case"catalog-footprint":case"csv":case"feature":case"geojson":case"imagery":case"knowledge-graph-sublayer":case"ogc-feature":case"oriented-imagery":case"scene":case"sublayer":case"subtype-group":case"subtype-sublayer":case"wfs":return!0;default:return!1}}(e)?"effectiveCapabilities"in e?e.effectiveCapabilities:e.capabilities:null}function p(e){return!!function(e){if(!("editingEnabled"in e))return!1;switch(e.type){case"csv":case"feature":case"geojson":case"oriented-imagery":case"scene":case"subtype-group":case"subtype-sublayer":return!0;default:return!1}}(e)&&("effectiveEditingEnabled"in e?e.effectiveEditingEnabled:e.editingEnabled)}}}]);
1
+ "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[3116],{751:(e,t,r)=>{r.d(t,{CJ:()=>y});var a=r(49186),n=r(4718),s=r(93637),i=r(67124),o=r(83531);const l=new Set(["bing-maps","imagery","imagery-tile","map-image","open-street-map","tile","unknown","unsupported","vector-tile","web-tile","wcs","wms","wmts"]),c=new Set(["catalog","csv","feature","geo-rss","geojson","group","imagery","imagery-tile","kml","knowledge-graph","map-image","map-notes","media","ogc-feature","oriented-imagery","route","stream","subtype-group","tile","unknown","unsupported","vector-tile","web-tile","wcs","wfs","wms","wmts"]),u=new Set([...c,"link-chart"]);function p(e,t){if(t.restrictedWebMapWriting){const r=function(e){switch(e.layerContainerType){case"basemap":return l;case"operational-layers":return"link-chart"===e.origin?u:c;default:return null}}(t);return null==r||r.has(e.type)&&!(0,o.Ov)(e)}return!0}function d(e,t){"maxScale"in e&&(t.maxScale=(0,i.B)(e.maxScale)??void 0),"minScale"in e&&(t.minScale=(0,i.B)(e.minScale)??void 0)}function y(e,t,r){if(!e.persistenceEnabled)return null;if(!("write"in e)||!e.write)return r?.messages&&r.messages.push(new a.A("layer:unsupported",`Layers (${e.title}, ${e.id}) of type '${e.declaredClass}' cannot be persisted`,{layer:e})),null;if((0,o.Ov)(e)&&!e.isTable)t=e.resourceInfo;else if(p(e,r)){const t={};return e.write(t,r)?t:null}return null!=t&&function(e,t){if(function(e,t){if(t)if((0,o.Ov)(e)){const r=(0,s.wc)("featureCollection.layers",t),a=r?.[0]?.layerDefinition;a&&d(e,a)}else"group"!==e.type&&d(e,t)}(e,t),t&&(t.id=e.id,"blendMode"in e&&(t.blendMode=e.blendMode,"normal"===t.blendMode&&delete t.blendMode),t.opacity=(0,i.B)(e.opacity)??void 0,t.title=e.title||"Layer",t.visibility=e.visible,"legendEnabled"in e&&"wmts"!==e.type))if((0,o.Ov)(e)){const r=t.featureCollection;r&&(r.showLegend=e.legendEnabled)}else t.showLegend=e.legendEnabled}(e,t=(0,n.o8)(t)),t}},18047:(e,t,r)=>{r.d(t,{ZV:()=>l,yx:()=>o});var a=r(73444);const n={ar:"ar-u-nu-latn"};let s=new WeakMap,i={};function o(e={}){const t={};return null!=e.digitSeparator&&(t.useGrouping=e.digitSeparator),null!=e.places&&(t.minimumFractionDigits=t.maximumFractionDigits=e.places),t}function l(e,t){return Object.is(e,-0)&&(e=0),function(e){const t=e||i;if(!s.has(t)){const r=(0,a.JK)(),i=n[(0,a.JK)()]||r;s.set(t,new Intl.NumberFormat(i,e))}return s.get(t)}(t).format(e)}(0,a.Ml)((()=>{s=new WeakMap,i={}})),new Map},47566:(e,t,r)=>{r(97770),r(18047),r(71754),r(73444);var a=r(10838),n=r(78888),s=r(49186);async function i(e){if(null!=o.fetchBundleAsset)return o.fetchBundleAsset(e);const t=await(0,n.A)(e,{responseType:"text"});return JSON.parse(t.data)}const o={};var l,c=r(2741);(0,a.ao)((l={pattern:"esri/",location:c.s},new class{constructor({base:e="",pattern:t,location:r=new URL(window.location.href)}){let a;a="string"==typeof r?e=>new URL(e,new URL(r,window.location.href)).href:r instanceof URL?e=>new URL(e,r).href:r,this.pattern="string"==typeof t?new RegExp(`^${t}`):t,this.getAssetUrl=a,e=e?e.endsWith("/")?e:e+"/":"",this.matcher=new RegExp(`^${e}(?:(.*)\\/)?(.*)$`)}fetchMessageBundle(e,t){return async function(e,t,r,n){const o=t.exec(r);if(!o)throw new s.A("esri-intl:invalid-bundle",`Bundle id "${r}" is not compatible with the pattern "${t}"`);const l=o[1]?`${o[1]}/`:"",c=o[2],u=(0,a.xO)(n),p=`${l}${c}.json`,d=u?`${l}${c}_${u}.json`:p;let y;try{y=await i(e(d))}catch(t){if(d===p)throw new s.A("intl:unknown-bundle",`Bundle "${r}" cannot be loaded`,{error:t});try{y=await i(e(p))}catch(e){throw new s.A("intl:unknown-bundle",`Bundle "${r}" cannot be loaded`,{error:e})}}return y}(this.getAssetUrl,this.matcher,e,t)}}(l)))},60999:(e,t,r)=>{r.d(t,{DZ:()=>f,Ke:()=>y,Tj:()=>u,UT:()=>h,jJ:()=>c});var a=r(90237),n=r(69622),s=r(97768),i=r(74887),o=r(10107),l=r(40608);function c(e,t,r){return(0,i.Lx)(e.map(((e,a)=>t.apply(r,[e,a]))))}async function u(e,t,r){return(await(0,i.Lx)(e.map(((e,a)=>t.apply(r,[e,a]))))).map((e=>e.value))}function p(e){return{ok:!0,value:e}}function d(e){return{ok:!1,error:e}}async function y(e){if(null==e)return{ok:!1,error:new Error("no promise provided")};try{return p(await e)}catch(e){return d(e)}}async function f(e){try{return p(await e)}catch(e){return(0,i.QP)(e),d(e)}}function h(e,t){return new m(e,t)}let m=class extends n.A{get value(){return null!=(e=this._result)&&!0===e.ok?e.value:null;var e}get error(){return null!=(e=this._result)&&!1===e.ok?e.error:null;var e}get finished(){return null!=this._result}constructor(e,t){super({}),this._result=null,this._abortHandle=null,this.abort=()=>{this._abortController=(0,s.DC)(this._abortController)},this.remove=this.abort,this._abortController=new AbortController;const{signal:r}=this._abortController;this.promise=e(r),this.promise.then((e=>{this._result=p(e),this._cleanup()}),(e=>{this._result=d(e),this._cleanup()})),this._abortHandle=(0,i.u7)(t,this.abort)}normalizeCtorArgs(){return{}}destroy(){this.abort()}_cleanup(){this._abortHandle=(0,s.xt)(this._abortHandle),this._abortController=null}};(0,a._)([(0,o.MZ)()],m.prototype,"value",null),(0,a._)([(0,o.MZ)()],m.prototype,"error",null),(0,a._)([(0,o.MZ)()],m.prototype,"finished",null),(0,a._)([(0,o.MZ)()],m.prototype,"promise",void 0),(0,a._)([(0,o.MZ)()],m.prototype,"_result",void 0),m=(0,a._)([(0,l.$)("esri.core.asyncUtils.ReactiveTask")],m)},62885:(e,t,r)=>{r.d(t,{H:()=>s,V:()=>n});var a=r(5503);function n(e,t,r=a.A){return t||(t=new r),t===e||(t.removeAll(),(n=e)&&(Array.isArray(n)||"items"in n&&Array.isArray(n.items))?t.addMany(e):e&&t.add(e)),t;var n}function s(e){return e}},71754:(e,t,r)=>{r.d(t,{V:()=>c});var a=r(53966),n=r(93637),s=r(799),i=r(97770),o=r(18047);const l=()=>a.A.getLogger("esri.intl.substitute");function c(e,t,r={}){const{format:a={}}=r;return(0,s.HC)(e,(e=>function(e,t,r){let a,s;const i=e.indexOf(":");if(-1===i?a=e.trim():(a=e.slice(0,i).trim(),s=e.slice(i+1).trim()),!a)return"";const o=(0,n.wc)(a,t);if(null==o)return"";const l=(s?r?.[s]:null)??r?.[a];return l?u(o,l):s?p(o,s):d(o)}(e,t,a)))}function u(e,t){switch(t.type){case"date":return(0,i.Yq)(e,t.intlOptions);case"number":return(0,o.ZV)(e,t.intlOptions);default:return l().warn("missing format descriptor for key {key}"),d(e)}}function p(e,t){switch(t.toLowerCase()){case"dateformat":return(0,i.Yq)(e);case"numberformat":return(0,o.ZV)(e);default:return l().warn(`inline format is unsupported since 4.12: ${t}`),/^(dateformat|datestring)/i.test(t)?(0,i.Yq)(e):/^numberformat/i.test(t)?(0,o.ZV)(e):d(e)}}function d(e){switch(typeof e){case"string":return e;case"number":return(0,o.ZV)(e);case"boolean":return""+e;default:return e instanceof Date?(0,i.Yq)(e):""}}},81583:(e,t,r)=>{r.d(t,{L:()=>o,g:()=>i});var a=r(60999),n=r(5503),s=r(92474);async function i(e,t){return await e.load(),o(e,t)}async function o(e,t){const r=[],i=(...e)=>{for(const t of e)null!=t&&(Array.isArray(t)?i(...t):n.A.isCollection(t)?t.forEach((e=>i(e))):s.A.isLoadable(t)&&r.push(t))};t(i);let o=null;if(await(0,a.Tj)(r,(async e=>{const t=await(0,a.Ke)(function(e){return"loadAll"in e&&"function"==typeof e.loadAll}(e)?e.loadAll():e.load());!1!==t.ok||o||(o=t)})),o)throw o.error;return e}},83116:(e,t,r)=>{r.r(t),r.d(t,{default:()=>Z});var a=r(90237),n=r(78888),s=r(5503),i=r(62885),o=r(25482),l=r(4718),c=r(92474),u=r(81583),p=r(53966),d=r(97768),y=r(74887),f=r(84952),h=r(10107),m=(r(44208),r(40608)),w=r(43937),b=r(16930),g=r(20655),v=r(80812),L=r(43281),_=(r(47566),r(69622)),A=(r(87811),r(73444)),I=r(10838);let M=class extends _.A{constructor(e){super(e),this.apiKey=null,this.id=null,this.language=null,this.places=null,this.serviceUrl="https://basemapstyles-api.arcgis.com/arcgis/rest/services/styles/v2",this.worldview=null}get languageParameter(){const e=this.language;let t="local"===e||"global"===e?e:(0,I.xO)(e??(0,A.JK)())??"global";return t="no"===t?"nb":t,t}};(0,a._)([(0,h.MZ)()],M.prototype,"apiKey",void 0),(0,a._)([(0,h.MZ)()],M.prototype,"id",void 0),(0,a._)([(0,h.MZ)()],M.prototype,"language",void 0),(0,a._)([(0,h.MZ)()],M.prototype,"places",void 0),(0,a._)([(0,h.MZ)()],M.prototype,"serviceUrl",void 0),(0,a._)([(0,h.MZ)()],M.prototype,"worldview",void 0),M=(0,a._)([(0,m.$)("esri.support.BasemapStyle")],M);const S=M;var x,$=r(751);let k=0,C=x=class extends(o.A.JSONSupportMixin(c.A)){constructor(e){super(e),this.id=null,this.portalItem=null,this.spatialReference=null,this.style=null,this.thumbnailUrl=null,this.title="Basemap",this.id=Date.now().toString(16)+"-basemap-"+k++,this.baseLayers=new s.A,this.referenceLayers=new s.A;const t=e=>{e.parent&&e.parent!==this&&"remove"in e.parent&&e.parent.remove(e),e.parent=this,"elevation"===e.type&&p.A.getLogger(this).error(`Layer '${e.title}, id:${e.id}' of type '${e.type}' is not supported as a basemap layer and will therefore be ignored.`)},r=e=>{e.parent=null};this.addHandles([this.baseLayers.on("after-add",(e=>t(e.item))),this.referenceLayers.on("after-add",(e=>t(e.item))),this.baseLayers.on("after-remove",(e=>r(e.item))),this.referenceLayers.on("after-remove",(e=>r(e.item)))])}initialize(){this.when().catch((e=>{p.A.getLogger(this).error("#load()",`Failed to load basemap (title: '${this.title}', id: '${this.id}')`,e)})),this.resourceInfo&&this.read(this.resourceInfo.data,this.resourceInfo.context)}destroy(){const e=this.baseLayers.toArray();for(const t of e)t.destroy();const t=this.referenceLayers.toArray();for(const e of t)e.destroy();this.baseLayers.destroy(),this.referenceLayers.destroy(),this.portalItem=(0,d.pR)(this.portalItem)}normalizeCtorArgs(e){return e&&"resourceInfo"in e&&(this._set("resourceInfo",e.resourceInfo),delete(e={...e}).resourceInfo),e}set baseLayers(e){this._set("baseLayers",(0,i.V)(e,this._get("baseLayers")))}_writeBaseLayers(e,t,r){const a=[];e?(r={...r,layerContainerType:"basemap"},this.baseLayers.forEach((e=>{const t=(0,$.CJ)(e,r.webmap?r.webmap.getLayerJSONFromResourceInfo(e):null,r);null!=t&&a.push(t)})),this.referenceLayers.forEach((e=>{const t=(0,$.CJ)(e,r.webmap?r.webmap.getLayerJSONFromResourceInfo(e):null,r);null!=t&&("scene"!==e.type&&(t.isReference=!0),a.push(t))})),t.baseMapLayers=a):t.baseMapLayers=a}set referenceLayers(e){this._set("referenceLayers",(0,i.V)(e,this._get("referenceLayers")))}writeTitle(e,t){t.title=e||"Basemap"}load(e){return this.addResolvingPromise(this._loadFromSource(e)),Promise.resolve(this)}loadAll(){return(0,u.g)(this,(e=>{e(this.baseLayers,this.referenceLayers)}))}clone(){const e={id:this.id,title:this.title,portalItem:this.portalItem,baseLayers:this.baseLayers.map((e=>(0,l.Nb)(e)?e.clone():e)),referenceLayers:this.referenceLayers.map((e=>(0,l.Nb)(e)?e.clone():e))};return this.loaded&&(e.loadStatus="loaded"),new x({resourceInfo:this.resourceInfo}).set(e)}read(e,t){this.resourceInfo||this._set("resourceInfo",{data:e,context:t}),super.read(e,t)}write(e,t){return e=e||{},t?.origin||(t={origin:"web-map",...t}),super.write(e,t),!this.loaded&&this.resourceInfo?.data.baseMapLayers&&(e.baseMapLayers=this.resourceInfo.data.baseMapLayers.map((e=>{const t=(0,l.o8)(e);return t.url&&(0,f.BQ)(t.url)&&(t.url=`https:${t.url}`),t.templateUrl&&(0,f.BQ)(t.templateUrl)&&(t.templateUrl=`https:${t.templateUrl}`),t}))),e}async _loadFromSource(e){const{resourceInfo:t,portalItem:r,style:a}=this;(0,y.Te)(e);const n=[];if(t){const r=t.context?t.context.url:null;if(n.push(this._loadLayersFromJSON(t.data,r,e)),t.data.id&&!t.data.title){const e=t.data.id;n.push((0,L.q)(e).then((e=>{e&&this.read({title:e},t.context)})))}}else r?n.push(this._loadFromItem(r,e)):a&&n.push(this._loadFromStylesService(a,e));await Promise.all(n)}async _loadLayersFromJSON(e,t,a){const n=this.resourceInfo?.context,s=this.portalItem?.portal||n?.portal||null,i=O[n?.origin||""]??"web-map",{populateOperationalLayers:o}=await Promise.all([r.e(7251),r.e(5356)]).then(r.bind(r,75356)),l=[];if((0,y.Te)(a),e.baseMapLayers&&Array.isArray(e.baseMapLayers)){const r={context:{...n,origin:i,url:t,portal:s,layerContainerType:"basemap"},defaultLayerType:"DefaultTileLayer"},a=e=>"web-scene"===i&&"ArcGISSceneServiceLayer"===e.layerType||e.isReference,c=o(this.baseLayers,e.baseMapLayers.filter((e=>!a(e))),r);l.push(c);const u=o(this.referenceLayers,e.baseMapLayers.filter(a),r);l.push(u)}await Promise.allSettled(l)}async _loadFromItem(e,t){const r=await e.load(t),a=await r.fetchData("json",t),n=(0,f.An)(e.itemUrl??"");return this._set("resourceInfo",{data:a.baseMap??{},context:{origin:U[e.type||""]??"web-map",portal:e.portal||g.A.getDefault(),url:n}}),this.read(this.resourceInfo.data,this.resourceInfo.context),this.read({spatialReference:a.spatialReference},this.resourceInfo.context),this.read({title:e.title,thumbnailUrl:e.thumbnailUrl},{origin:"portal-item",portal:e.portal||g.A.getDefault(),url:n}),this._loadLayersFromJSON(this.resourceInfo.data,n,t)}async _loadFromStylesService(e,t){const r=e.serviceUrl.endsWith("/webmaps")?e.serviceUrl.slice(0,-8):e.serviceUrl,a=`${r}/styles/${e.id}/self`,s=`${r}/webmaps/${e.id}`,[i,o]=await Promise.all([(await(0,n.A)(a,{query:{token:e.apiKey},signal:t?.signal})).data,(await(0,n.A)(s,{query:{language:e.languageParameter,places:e.places,worldview:e.worldview,token:e.apiKey},signal:t?.signal})).data]);this.thumbnailUrl??=i.thumbnailUrl;const l=(0,f.An)(s);if(this._set("resourceInfo",{data:o.baseMap??{},context:{origin:"web-map",url:l}}),this.read(this.resourceInfo.data,this.resourceInfo.context),this.read({spatialReference:o.spatialReference},this.resourceInfo.context),await this._loadLayersFromJSON(this.resourceInfo.data,l,t),e.apiKey)for(const t of[...this.baseLayers,...this.referenceLayers])"apiKey"in t&&(t.apiKey=e.apiKey)}static fromId(e){const t=L.H[e];return t?t.itemId?new x({portalItem:{id:t.itemId,portal:{url:"https://www.arcgis.com"}}}):x.fromJSON(t,t.is3d?{origin:"web-scene",portal:new g.A({url:"https://www.arcgis.com"})}:{origin:"web-map"}):null}};(0,a._)([(0,h.MZ)({json:{write:{ignoreOrigin:!0,target:"baseMapLayers",writer(e,t,r,a){this._writeBaseLayers(e,t,a)}},origins:{"web-scene":{write:{ignoreOrigin:!0,target:{baseMapLayers:{type:s.A}},writer(e,t,r,a){this._writeBaseLayers(e,t,a)}}}}}})],C.prototype,"baseLayers",null),(0,a._)([(0,h.MZ)({type:String,json:{origins:{"web-scene":{write:!0}}}})],C.prototype,"id",void 0),(0,a._)([(0,h.MZ)({type:v.default})],C.prototype,"portalItem",void 0),(0,a._)([(0,h.MZ)()],C.prototype,"referenceLayers",null),(0,a._)([(0,h.MZ)({readOnly:!0})],C.prototype,"resourceInfo",void 0),(0,a._)([(0,h.MZ)({type:b.A})],C.prototype,"spatialReference",void 0),(0,a._)([(0,h.MZ)({type:S})],C.prototype,"style",void 0),(0,a._)([(0,h.MZ)()],C.prototype,"thumbnailUrl",void 0),(0,a._)([(0,h.MZ)({type:String,json:{origins:{"web-scene":{write:{isRequired:!0}}}}})],C.prototype,"title",void 0),(0,a._)([(0,w.K)("title")],C.prototype,"writeTitle",null),C=x=(0,a._)([(0,m.$)("esri.Basemap")],C);const U={"Web Scene":"web-scene","Web Map":"web-map","Link Chart":"link-chart"},O={"web-scene":"web-scene","web-map":"web-map","link-chart":"link-chart"},Z=C},83531:(e,t,r)=>{r.d(t,{BR:()=>u,Ov:()=>o,TU:()=>i,W_:()=>l,XX:()=>s,tk:()=>p,wI:()=>c});var a=r(70333),n=r(78888);const s={Point:"SceneLayer","3DObject":"SceneLayer",IntegratedMesh:"IntegratedMeshLayer",PointCloud:"PointCloudLayer",Building:"BuildingSceneLayer"};function i(e){const t=e?.type;return"building-scene"===t||"integrated-mesh"===t||"point-cloud"===t||"scene"===t}function o(e){return"feature"===e?.type&&!e.url&&"memory"===e.source?.type}function l(e){const t=e?.type;return("feature"===t||"subtype-group"===t||"oriented-imagery"===t)&&"feature-layer"===e?.source?.type}async function c(e,t){const r=a.id?.findServerInfo(e);if(null!=r?.currentVersion)return r.owningSystemUrl||null;const s=e.toLowerCase().indexOf("/rest/services");if(-1===s)return null;const i=`${e.slice(0,s)}/rest/info`,o=null!=t?t.signal:null,{data:l}=await(0,n.A)(i,{query:{f:"json"},responseType:"json",signal:o});return l?.owningSystemUrl||null}function u(e){return function(e){if(!("capabilities"in e))return!1;switch(e.type){case"catalog":case"catalog-footprint":case"csv":case"feature":case"geojson":case"imagery":case"knowledge-graph-sublayer":case"ogc-feature":case"oriented-imagery":case"scene":case"sublayer":case"subtype-group":case"subtype-sublayer":case"wfs":return!0;default:return!1}}(e)?"effectiveCapabilities"in e?e.effectiveCapabilities:e.capabilities:null}function p(e){return!!function(e){if(!("editingEnabled"in e))return!1;switch(e.type){case"csv":case"feature":case"geojson":case"oriented-imagery":case"scene":case"subtype-group":case"subtype-sublayer":return!0;default:return!1}}(e)&&("effectiveEditingEnabled"in e?e.effectiveEditingEnabled:e.editingEnabled)}}}]);
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";import{OverlayContent as a}from"../views/3d/terrain/OverlayContent.js";import{IntegratedMeshMode as i}from"../views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js";import{ComponentData as l,ComponentDataType as t}from"../views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js";import{VertexDiscardMode as n}from"../views/3d/webgl-engine/collections/Component/Material/shader/VertexDiscardMode.js";import{ForwardLinearDepth as d}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{ShaderOutput as s,isColorOrColorEmission as g}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SlicePass as m}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as v}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as h}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VertexPosition as u}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js";import{OutputDepth as w}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{computeFragmentNormals as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import{ComputeMaterialColor as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import{ComputeNormalTexture as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateSceneLighting as y,addLightingGlobalFactor as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PBRMode as j,PhysicallyBasedRenderingParameters as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadBaseColorTexture as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import{ReadShadowMapPass as M}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as N}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{OverlayIM as T,getIMColorTexture as $}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{DiscardOrAdjustAlphaDraw as A}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{EllipsoidMode as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/EllipsoidMode.js";import{If as W,glsl as P}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as B}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as R}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{outputColorHighlightOID as z}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as E}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as H}from"../webscene/support/AlphaCutoff.js";function I(I){const V=new E,{vertex:F,fragment:_}=V;V.include(u,I),V.include(h,I),V.include(v,I),V.include(c,I),V.include(d,I),V.include(l,I),V.include(A,I),_.include(m,I),V.include(S,I),V.include(N,I);const{output:G,pbrMode:k,hasNormalTexture:q,snowCover:U,receiveShadows:J,spherical:K,ellipsoidMode:Q}=I,X=k===j.Normal||k===j.Schematic;X&&(V.include(O,I),q&&V.include(f,I));const Y=G===s.Shadow||G===s.ShadowHighlight||G===s.ShadowExcludeHighlight,Z=Y&&I.componentData===t.Varying,ee=I.integratedMeshMode===i.ColorOverlay||I.integratedMeshMode===i.ColorOverlayWithWater;if(ee){V.include(y,I),V.include(T,I);const a=Q===D.Earth,i=Q===D.Earth,l=a?e.radius:i?o.radius:r.radius;F.code.add(`\n ${W(K,`const float invRadius = ${P.float(1/l)};`)}\n vec2 projectOverlay(vec3 pos) { return pos.xy ${W(K,"/ (1.0 + invRadius * pos.z);")}; }`)}const oe=ee&&g(G)&&k===j.WaterOnIntegratedMesh;oe&&(V.varyings.add("tbnTangent","vec3"),V.varyings.add("tbnBiTangent","vec3"),V.varyings.add("groundNormal","vec3"));const re=I.vertexDiscardMode===n.None,ae=I.vertexDiscardMode===n.Opaque,ie=1-1/255;if(F.main.add(P`
5
+ import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";import{OverlayContent as a}from"../views/3d/terrain/OverlayContent.js";import{IntegratedMeshMode as i}from"../views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js";import{ComponentData as t,ComponentDataType as l}from"../views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js";import{VertexDiscardMode as n}from"../views/3d/webgl-engine/collections/Component/Material/shader/VertexDiscardMode.js";import{ForwardLinearDepth as d}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{ShaderOutput as s,isColorOrColorEmission as g}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SlicePass as m}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as v}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as u}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VertexPosition as h}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js";import{OutputDepth as w}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{computeFragmentNormals as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import{ComputeMaterialColor as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import{ComputeNormalTexture as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateSceneLighting as y,addLightingGlobalFactor as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PBRMode as j,PhysicallyBasedRenderingParameters as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadBaseColorTexture as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import{ReadShadowMapPass as M}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as N}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{OverlayIM as T,getIMColorTexture as $}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{DiscardOrAdjustAlphaDraw as A}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{EllipsoidMode as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/EllipsoidMode.js";import{If as W,glsl as P}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as B}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as R}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{outputColorHighlightOID as z}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as E}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as I}from"../webscene/support/AlphaCutoff.js";function V(V){const F=new E,{vertex:H,fragment:_}=F;F.include(h,V),F.include(u,V),F.include(v,V),F.include(c,V),F.include(d,V),F.include(t,V),F.include(A,V),_.include(m,V),F.include(S,V),F.include(N,V);const{output:G,pbrMode:k,hasNormalTexture:q,snowCover:U,receiveShadows:J,spherical:K,ellipsoidMode:Q}=V,X=k===j.Normal||k===j.Schematic;X&&(F.include(O,V),q&&F.include(f,V));const Y=G===s.Shadow||G===s.ShadowHighlight||G===s.ShadowExcludeHighlight,Z=Y&&V.componentData===l.Varying,ee=V.integratedMeshMode===i.ColorOverlay||V.integratedMeshMode===i.ColorOverlayWithWater;if(ee){F.include(y,V),F.include(T,V);const a=Q===D.Earth,i=Q===D.Earth,t=a?e.radius:i?o.radius:r.radius;H.code.add(`\n ${W(K,`const float invRadius = ${P.float(1/t)};`)}\n vec2 projectOverlay(vec3 pos) { return pos.xy ${W(K,"/ (1.0 + invRadius * pos.z);")}; }`)}const oe=ee&&g(G)&&k===j.WaterOnIntegratedMesh;oe&&(F.varyings.add("tbnTangent","vec3"),F.varyings.add("tbnBiTangent","vec3"),F.varyings.add("groundNormal","vec3"));const re=V.vertexDiscardMode===n.None,ae=V.vertexDiscardMode===n.Opaque,ie=1-1/255;if(H.main.add(P`
6
6
  bool castShadows;
7
7
  vec4 externalColor = forwardExternalColor(castShadows);
8
8
  ${W(Z,"if(!castShadows) { gl_Position = vec4(vec3(1e38), 1.0); return; }")}
@@ -27,12 +27,12 @@ import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";imp
27
27
  tbnBiTangent = vec3(0.0, 1.0, 0.0);`)}
28
28
  ${W(ee,"setOverlayVTC(projectOverlay(position));")}
29
29
 
30
- if (externalColor.a < ${P.float(H)}) {
30
+ if (externalColor.a < ${P.float(I)}) {
31
31
  // Discard this vertex
32
32
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
33
33
  return;
34
34
  }
35
- `),g(G))return V.include(C,I),V.include(b,I),V.include(y,I),V.include(z,I),J&&V.include(M,I),_.code.add(P`
35
+ `),g(G))return F.include(C,V),F.include(b,V),F.include(y,V),F.include(z,V),J&&F.include(M,V),_.code.add(P`
36
36
  float evaluateShadow() {
37
37
  return ${J?"readShadowMap(vPositionWorldCameraRelative, linearDepth)":"0.0"};
38
38
  }`),ee&&_.uniforms.add(new R("ovColorTex",((e,o)=>$(e,o)))),_.main.add(P`
@@ -94,15 +94,14 @@ import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";imp
94
94
  // un-gamma the ground color to mix in linear space
95
95
  shadedColor = mix(shadedColor, waterColorNonLinear, waterColorLinear.w);
96
96
  }`)}
97
- `)),_.main.add("outputColorHighlightOID(shadedColor, vPositionWorldCameraRelative);"),V;const le=G===s.Normal,te=G===s.ObjectAndLayerIdColor,ne=G===s.Highlight,de=Y||G===s.ViewshedShadow;return de&&V.include(w,I),le&&V.include(b,I),V.include(p,I),_.main.add(P`
97
+ `)),_.main.add("outputColorHighlightOID(shadedColor, vPositionWorldCameraRelative);"),F;const te=G===s.Normal,le=G===s.ObjectAndLayerIdColor,ne=G===s.Highlight,de=Y||G===s.ViewshedShadow;return de&&F.include(w,V),te&&F.include(b,V),F.include(p,V),_.main.add(P`
98
98
  discardBySlice(vPositionWorldCameraRelative);
99
99
 
100
100
  vec4 textureColor = readBaseColorTexture();
101
101
  discardOrAdjustAlpha(textureColor);
102
102
 
103
103
  ${W(de,"outputDepth(linearDepth);")}
104
- ${W(le,P`fragColor = vec4(vec3(0.5) + 0.5 * fragmentFaceNormalView, 1.0);`)}
105
- ${W(te,ee?"fragColor = getOverlayColorTexel();":"outputObjectAndLayerIdColor();")}
104
+ ${W(te,P`fragColor = vec4(vec3(0.5) + 0.5 * fragmentFaceNormalView, 1.0);`)}
105
+ ${W(le,ee?"fragColor = getOverlayColorTexel();":"outputObjectAndLayerIdColor();")}
106
106
  ${W(ne,P`${W(ee,P`
107
- vec2 overlayHighlightTexel = getAllOverlayHighlightValuesEncoded();
108
- calculateOcclusionAndOutputHighlightOverlay(overlayHighlightTexel);`,P`calculateOcclusionAndOutputHighlight();`)}`)}`),V}const V=Object.freeze(Object.defineProperty({__proto__:null,build:I},Symbol.toStringTag,{value:"Module"}));export{V as C,I as b};
107
+ calculateOcclusionAndOutputHighlightOverlay(getAllOverlayHighlightValuesEncoded());`,P`calculateOcclusionAndOutputHighlight();`)}`)}`),F}const F=Object.freeze(Object.defineProperty({__proto__:null,build:V},Symbol.toStringTag,{value:"Module"}));export{F as C,V as b};
@@ -2,4 +2,5 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{ZEROS as o}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{glsl as i}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Matrix4DrawUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{VertexAttribute as a}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{NoParameters as m}from"../views/webgl/NoParameters.js";import{ShaderBuilder as n}from"../views/webgl/ShaderBuilder.js";class l extends m{constructor(){super(...arguments),this.origin=o}}function d(){const r=new n;return r.attributes.add(a.POSITION,"vec3"),r.outputs.add("fragColor","vec4",0),r.vertex.uniforms.add(new t("proj",(e=>e.camera.projectionMatrix)),new s("view",((r,o)=>e(c,o.camera.viewMatrix,r.origin)))).main.add(i`gl_Position = proj * view * vec4(position, 1.0);`),r.fragment.main.add(i`fragColor = vec4(1., 0., 0., 1.);`),r}const c=r(),f=Object.freeze(Object.defineProperty({__proto__:null,FocusAreaMaskDrawParameters:l,build:d},Symbol.toStringTag,{value:"Module"}));export{l as F,f as a,d as b};
5
+ import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{ZEROS as o}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{glsl as i}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Matrix4DrawUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{VertexAttribute as a}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{NoParameters as n}from"../views/webgl/NoParameters.js";import{ShaderBuilder as m}from"../views/webgl/ShaderBuilder.js";class l extends n{constructor(){super(...arguments),this.origin=o}}function d(){const r=new m;return r.attributes.add(a.POSITION,"vec3"),r.outputs.add("fragColor","vec4",0),r.vertex.uniforms.add(new t("proj",(e=>e.camera.projectionMatrix)),new s("view",((r,o)=>e(c,o.camera.viewMatrix,r.origin)))).main.add(i`gl_Position = proj * view * vec4(position, 1.0);
6
+ gl_Position.z = min(gl_Position.z, gl_Position.w);`),r.fragment.main.add(i`fragColor = vec4(1., 0., 0., 1.);`),r}const c=r(),g=Object.freeze(Object.defineProperty({__proto__:null,FocusAreaMaskDrawParameters:l,build:d},Symbol.toStringTag,{value:"Module"}));export{l as F,g as a,d as b};
@@ -2,136 +2,31 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{HighlightCellGridScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js";import{HighlightReadBitmap as l}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightReadBitmap.glsl.js";import{FloatPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as t}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerBindUniform as o}from"../views/3d/webgl-engine/core/shaderModules/IntegerBindUniform.js";import{Texture2DPassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ShaderBuilder as r}from"../views/webgl/ShaderBuilder.js";function a(){const a=new r;a.include(e);const{fragment:c}=a;return c.uniforms.add(new n("highlightTexture",(e=>e.highlightTexture)),new n("highlightOptionsTexture",(e=>e.highlightOptionsTexture)),new i("pixelRatio",(e=>e.pixelRatio)),new i("occludedIntensityFactor",(e=>e.occludedFactor)),new o("maxHighlightLevel",(e=>e.highlights.length-1))),c.constants.add("pixelSampleScale","float",1),a.include(l),c.code.add(t`const float pascal17[9] = float[9](12870.0, 11440.0, 8008.0, 4368.0, 1820.0, 560.0, 120.0, 16.0, 1.0);
6
- const float denom17 = 65536.0;
7
- float colorWeight[16] = float[16](0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
8
- float colorOcclusion[16] = float[16](0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
9
- float weights[16] = float[16](0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
10
- void applyTexel(vec2 texel, float weight) {
11
- if (texel != vec2(0.0)){
12
- int maxChannel = (maxHighlightLevel >> 2) & 1;
13
- for (int channelIndex = 0; channelIndex <= maxChannel; ++channelIndex){
14
- uint channel = readChannel(texel, channelIndex << 2);
15
- int firstIndex = channelIndex << 2;
16
- int maxIndex = min(firstIndex + 3, maxHighlightLevel);
17
- for (int highlightIndex = firstIndex; highlightIndex <= maxIndex; ++highlightIndex ) {
18
- uint v = readChannelBits(channel, highlightIndex);
19
- if ((v & 1u) == 1u){
20
- colorWeight[highlightIndex] += weight;
21
- if ((v & 2u) == 2u){
22
- colorOcclusion[highlightIndex] += weight;
23
- }
24
- }
25
- }
26
- }
27
- }
28
- }
29
- vec2 readTexel(ivec2 iuv, int du, int dv) {
30
- return texelFetch(highlightTexture, iuv + ivec2(du, dv), 0).rg;
31
- }
32
- void readAndApplyTexel(ivec2 iuv, int du, int dv, float weight) {
33
- vec2 texel = readTexel(iuv, du, dv);
34
- applyTexel(texel, weight);
35
- }
36
- void readAndApply2TexelsU(ivec2 iuv, int du, int dv, float weight) {
37
- readAndApplyTexel(iuv, -du, dv, weight);
38
- readAndApplyTexel(iuv, +du, dv, weight);
39
- }
40
- float getWeight(int pixelDistance) {
41
- float scaledDistance = float(pixelDistance) * pixelSampleScale / pixelRatio;
42
- float d0f = floor(scaledDistance);
43
- int d0 = int(d0f);
44
- if (d0 >= 8){
45
- return 0.0;
46
- }
47
- float w0 = pascal17[d0];
48
- float w1 = pascal17[d0+1];
49
- float f = scaledDistance - d0f;
50
- return mix(w0, w1, f);
51
- }`),c.main.add(t`vec2 highlightTextureSize = vec2(textureSize(highlightTexture,0));
52
- ivec2 iuv = ivec2(sUV * highlightTextureSize);
53
- vec2 centerTexel = texelFetch(highlightTexture, iuv, 0).rg;
54
- bool outlinePossible = false;
55
- if (vOutlinePossible > 0.0){
56
- for (int highlightLevel=0; highlightLevel<= maxHighlightLevel; ++highlightLevel) {
57
- if ((readLevelBits(centerTexel,highlightLevel) & 1u) == 0u) {
58
- outlinePossible = true;
59
- break;
60
- }
61
- }
62
- }
63
- if (outlinePossible) {
64
- int maxPixelDistance = clamp(int(8.0 * pixelRatio / pixelSampleScale), 2, 16);
65
- float weightSum = 0.0;
66
- for(int y = 0; y <= maxPixelDistance; ++y) {
67
- float w = getWeight(y);
68
- weights[y] = w;
69
- weightSum += w * (y == 0 ? 1.0 : 2.0);
70
- }
71
- for(int y = 0; y <= maxPixelDistance; ++y) {
72
- weights[y] = weights[y] / weightSum;
73
- }
74
- float weight0 = weights[0];
75
- applyTexel(centerTexel, weight0 * weight0);
76
- for(int y = 0; y <= maxPixelDistance; y += 1) {
77
- float yFactor = weights[y];
78
- if (y != 0) {
79
- float xFactor = weight0;
80
- float weight = xFactor * yFactor;
81
- if (weight > 0.0) {
82
- readAndApplyTexel(iuv, 0, +y, weight);
83
- readAndApplyTexel(iuv, 0, -y, weight);
84
- }
85
- }
86
- for(int x = 1; x <= maxPixelDistance; x += 1) {
87
- float xFactor = weights[x];
88
- float weight = xFactor * yFactor;
89
- if (weight > 0.0) {
90
- readAndApply2TexelsU(iuv, x, +y, weight);
91
- if (y != 0){
92
- readAndApply2TexelsU(iuv, x, -y, weight);
93
- }
94
- }
95
- }
96
- }
97
- } else {
98
- applyTexel(centerTexel, 1.0);
99
- }
100
- int frontColorIndex = 999;
101
- int maxColorIndex = 0;
102
- for (int i = 0; i <= maxHighlightLevel; ++i) {
103
- if (colorWeight[i] > 0.0){
104
- frontColorIndex = min(frontColorIndex, i);
105
- maxColorIndex = max(maxColorIndex, i);
106
- }
107
- }
108
- if (frontColorIndex == 999){
109
- fragColor = vec4(0.0);
110
- return;
111
- }
112
- vec4 accumulatedColor = vec4(0.0);
113
- for (int curColorIndex = frontColorIndex; curColorIndex <= maxColorIndex; ++curColorIndex) {
114
- float curColorWeight = colorWeight[curColorIndex];
115
- if (curColorWeight <= 0.01){
116
- continue;
117
- }
118
- uint vc = readLevelBits(centerTexel, curColorIndex);
119
- bool centerFilled = (vc & 1u) == 1u;
120
- bool centerOccluded = (vc & 3u) == 3u;
121
- float curColorOcclusion = colorOcclusion[curColorIndex];
122
- bool occluded = centerFilled ? centerOccluded : curColorOcclusion > 0.5 * curColorWeight;
123
- int colorChannel = centerFilled ? 0 : 1;
124
- vec4 colorBase = texelFetch(highlightOptionsTexture, ivec2(curColorIndex, colorChannel), 0);
5
+ import{HighlightCellGridScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js";import{HighlightReadBitmap as t}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightReadBitmap.glsl.js";import{Float2DrawUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as o}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Texture2DPassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{UintTexture2DPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/UintTexture2DPassUniform.js";import{o as g,b as h}from"./HighlightDownsample.glsl.js";import{ShaderBuilder as s}from"../views/webgl/ShaderBuilder.js";function c(){const c=new s;c.include(e);const{fragment:a}=c;return a.uniforms.add(new n("blurInput",(e=>e.highlightBlurTexture)),new i("blurSize",(e=>e.blurSize)),new u("highlightTexture",(e=>e.highlightTexture)),new n("highlightOptionsTexture",(e=>e.highlightOptionsTexture)),new o("highlightLevel",(e=>e.highlightLevel)),new l("occludedIntensityFactor",(e=>e.occludedFactor))),a.constants.add("inner","float",1-(g-h)/g),c.include(t),a.main.add(r`vec2 highlightTextureSize = vec2(textureSize(highlightTexture,0));
6
+ vec2 uv = sUV;
7
+ vec2 center = texture(blurInput, uv).rg;
8
+ vec2 blurredHighlightValue = (vOutlinePossible == 0.0)
9
+ ? center
10
+ : center * 0.204164
11
+ + texture(blurInput, uv + blurSize * 1.407333).rg * 0.304005
12
+ + texture(blurInput, uv - blurSize * 1.407333).rg * 0.304005
13
+ + texture(blurInput, uv + blurSize * 3.294215).rg * 0.093913
14
+ + texture(blurInput, uv - blurSize * 3.294215).rg * 0.093913;
15
+ float highlightIntensity = blurredHighlightValue.r;
16
+ float occlusionWeight = blurredHighlightValue.g;
17
+ if (highlightIntensity <= 0.01) {
18
+ discard;
19
+ }
20
+ vec4 fillColor = texelFetch(highlightOptionsTexture, ivec2(highlightLevel, 0), 0);
21
+ vec4 outlineColor = texelFetch(highlightOptionsTexture, ivec2(highlightLevel, 1), 0);
22
+ uvec2 centerTexel = texelFetch(highlightTexture, ivec2(uv * highlightTextureSize), 0).rg;
23
+ uint centerBits = readLevelBits(centerTexel, highlightLevel);
24
+ bool centerFilled = (centerBits & 1u) == 1u;
25
+ bool centerOccluded = (centerBits & 3u) == 3u;
26
+ bool occluded = centerOccluded || (0.5 * highlightIntensity < occlusionWeight);
125
27
  float occlusionFactor = occluded ? occludedIntensityFactor : 1.0;
126
- float outlineFactor = centerFilled ? 1.0 : smoothstep(0.0, 0.03, curColorWeight);
127
- float intensity = colorBase.a * occlusionFactor * outlineFactor;
128
- vec3 currentColor = colorBase.rgb;
129
- float a0 = accumulatedColor.a;
130
- float a1 = intensity;
131
- float alpha = clamp(a0 + a1 - a0 * a1, 0.0, 1.0);
132
- if (alpha > 0.001){
133
- vec3 blendedColor = ((1.0 - a1) * a0 * accumulatedColor.rgb + a1 * currentColor) / alpha;
134
- accumulatedColor = vec4(blendedColor, alpha);
135
- }
136
- }
137
- fragColor = accumulatedColor;`),a}const c=Object.freeze(Object.defineProperty({__proto__:null,build:a},Symbol.toStringTag,{value:"Module"}));export{c as H,a as b};
28
+ float outlineFactor = centerFilled ? 1.0 : smoothstep(0.0, inner, highlightIntensity);
29
+ float fillFactor = centerFilled ? 1.0 : 0.0;
30
+ vec4 baseColor = mix(outlineColor, fillColor, fillFactor);
31
+ float intensity = baseColor.a * occlusionFactor * outlineFactor;
32
+ fragColor = vec4(baseColor.rgb, intensity);`),c}const a=Object.freeze(Object.defineProperty({__proto__:null,build:c},Symbol.toStringTag,{value:"Module"}));export{a as H,c as b};
@@ -2,15 +2,15 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{HighlightCellGridScreenSpacePass as r}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js";import{Float2DrawUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js";import{glsl as i}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DDrawUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Texture2DDrawUniform.js";import{NoParameters as s}from"../views/webgl/NoParameters.js";import{ShaderBuilder as u}from"../views/webgl/ShaderBuilder.js";class n extends s{constructor(){super(...arguments),this.blurSize=e()}}function o(){const e=new u;return e.include(r),e.outputs.add("fragSingleHighlight","vec2",0),e.fragment.uniforms.add(new t("blurSize",(e=>e.blurSize)),new l("blurInput",(e=>e.blurInput))).main.add(i`vec2 highlightTextureSize = vec2(textureSize(blurInput,0));
5
+ import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{HighlightCellGridScreenSpacePass as r}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js";import{Float2DrawUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js";import{glsl as i}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DDrawUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DDrawUniform.js";import{NoParameters as u}from"../views/webgl/NoParameters.js";import{ShaderBuilder as l}from"../views/webgl/ShaderBuilder.js";class o extends u{constructor(){super(...arguments),this.blurSize=e()}}function n(){const e=new l;return e.include(r),e.outputs.add("fragHighlight","vec2",0),e.fragment.uniforms.add(new t("blurSize",(e=>e.blurSize)),new s("blurInput",(e=>e.blurInput))).main.add(i`vec2 highlightTextureSize = vec2(textureSize(blurInput,0));
6
6
  vec2 center = texture(blurInput, sUV).rg;
7
7
  if (vOutlinePossible == 0.0) {
8
- fragSingleHighlight = center;
8
+ fragHighlight = center;
9
9
  } else {
10
10
  vec2 sum = center * 0.204164;
11
11
  sum += texture(blurInput, sUV + blurSize * 1.407333).rg * 0.304005;
12
12
  sum += texture(blurInput, sUV - blurSize * 1.407333).rg * 0.304005;
13
13
  sum += texture(blurInput, sUV + blurSize * 3.294215).rg * 0.093913;
14
14
  sum += texture(blurInput, sUV - blurSize * 3.294215).rg * 0.093913;
15
- fragSingleHighlight = sum;
16
- }`),e}const g=Object.freeze(Object.defineProperty({__proto__:null,SingleHighlightBlurDrawParameters:n,build:o},Symbol.toStringTag,{value:"Module"}));export{n as S,g as a,o as b};
15
+ fragHighlight = sum;
16
+ }`),e}const g=Object.freeze(Object.defineProperty({__proto__:null,HighlightBlurDrawParameters:o,build:n},Symbol.toStringTag,{value:"Module"}));export{o as H,g as a,n as b};
@@ -2,10 +2,10 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{glsl as t}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DDrawUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Texture2DDrawUniform.js";import{NoParameters as r}from"../views/webgl/NoParameters.js";import{ShaderBuilder as l}from"../views/webgl/ShaderBuilder.js";class u extends r{}function o(){const r=new l,{outputs:u,fragment:o}=r;return r.include(e),o.uniforms.add(new i("textureInput",(e=>e.input))),o.constants.add("outlineWidth","int",Math.ceil(n)),o.constants.add("cellSize","int",c),u.add("fragGrid","vec2"),o.main.add(t`ivec2 inputTextureSize = textureSize(textureInput, 0);
6
- ivec2 cellBottomLeftCornerInput = ivec2(floor(gl_FragCoord.xy) * vec2(cellSize));
5
+ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{glsl as t}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{UintTexture2DPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/UintTexture2DPassUniform.js";import{NoParameters as l}from"../views/webgl/NoParameters.js";import{ShaderBuilder as r}from"../views/webgl/ShaderBuilder.js";class o extends l{}function c(){const l=new r,{outputs:o,fragment:c}=l;return l.include(e),c.uniforms.add(new i("highlightTexture",(e=>e.highlightTexture))),c.constants.add("outlineWidth","int",Math.ceil(n)),c.constants.add("cellSize","int",u),o.add("fragGrid","uvec2"),c.main.add(t`ivec2 inputTextureSize = textureSize(highlightTexture, 0);
6
+ ivec2 cellBottomLeftCornerInput = ivec2(ivec2(floor(gl_FragCoord.xy) * vec2(cellSize)));
7
7
  ivec2 coordMid = cellBottomLeftCornerInput + ivec2(cellSize >> 1);
8
- uvec2 centreTexel = uvec2( texelFetch(textureInput, coordMid, 0).rg * 255.0) & uvec2(0x55u);
8
+ uvec2 centreTexel = texelFetch(highlightTexture, coordMid, 0).rg & uvec2(0x55u);
9
9
  float marginSquare = float(outlineWidth*outlineWidth);
10
10
  uvec2 outputValue = centreTexel & uvec2(0x55u);
11
11
  for(int y = -outlineWidth; y <= cellSize + outlineWidth; y+=2) {
@@ -14,10 +14,10 @@ int xMargin = dy > 0 ? int(ceil(sqrt(marginSquare - float(dy*dy)))) : outlineWid
14
14
  for(int x = -xMargin; x <= cellSize + xMargin; x+=2) {
15
15
  ivec2 coord = cellBottomLeftCornerInput + ivec2(x, y);
16
16
  uvec2[4] texels = uvec2[4] (
17
- uvec2(texelFetch(textureInput,coord+ivec2(0,0),0).rg * 255.0) & uvec2(0x55u),
18
- uvec2(texelFetch(textureInput,coord+ivec2(1,0),0).rg * 255.0) & uvec2(0x55u),
19
- uvec2(texelFetch(textureInput,coord+ivec2(0,1),0).rg * 255.0) & uvec2(0x55u),
20
- uvec2(texelFetch(textureInput,coord+ivec2(1,1),0).rg * 255.0) & uvec2(0x55u)
17
+ texelFetch(highlightTexture,coord+ivec2(0,0),0).rg & uvec2(0x55u),
18
+ texelFetch(highlightTexture,coord+ivec2(1,0),0).rg & uvec2(0x55u),
19
+ texelFetch(highlightTexture,coord+ivec2(0,1),0).rg & uvec2(0x55u),
20
+ texelFetch(highlightTexture,coord+ivec2(1,1),0).rg & uvec2(0x55u)
21
21
  );
22
22
  if (texels[0] == texels[1] && texels[1] == texels[2] && texels[2] == texels[3] && texels[3] == centreTexel) {
23
23
  continue;
@@ -28,4 +28,4 @@ outputValue |= texels[i];
28
28
  }
29
29
  }
30
30
  }
31
- fragGrid = vec2(outputValue) / 255.0;`),r}const c=32,n=9,a=.4,s=Object.freeze(Object.defineProperty({__proto__:null,HighlightDownsampleDrawParameters:u,blurSize:a,build:o,gridCellPixelSize:c,outlineSize:n},Symbol.toStringTag,{value:"Module"}));export{u as H,s as a,a as b,o as c,c as g,n as o};
31
+ fragGrid = outputValue;`),l}const u=32,n=9,s=.4,a=Object.freeze(Object.defineProperty({__proto__:null,HighlightDownsampleDrawParameters:o,blurSize:s,build:c,gridCellPixelSize:u,outlineSize:n},Symbol.toStringTag,{value:"Module"}));export{o as H,a,s as b,c,u as g,n as o};
@@ -2,8 +2,8 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{HighlightCellGridScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js";import{HighlightReadBitmap as i}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightReadBitmap.glsl.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Texture2DPassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ShaderBuilder as t}from"../views/webgl/ShaderBuilder.js";function s(){const s=new t;s.include(e),s.include(i);const{fragment:h}=s;return s.outputs.add("fragSingleHighlight","vec2",0),h.uniforms.add(new g("highlightTexture",(e=>e.highlightTexture)),new l("highlightLevel",(e=>e.highlightLevel))),h.main.add(r`ivec2 iuv = ivec2(gl_FragCoord.xy);
6
- vec2 inputTexel = texelFetch(highlightTexture, iuv, 0).rg;
5
+ import{HighlightCellGridScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js";import{HighlightReadBitmap as i}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightReadBitmap.glsl.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{UintTexture2DPassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/UintTexture2DPassUniform.js";import{ShaderBuilder as t}from"../views/webgl/ShaderBuilder.js";function s(){const s=new t;s.include(e),s.include(i);const{fragment:h}=s;return s.outputs.add("fragSingleHighlight","vec2",0),h.uniforms.add(new g("highlightTexture",(e=>e.highlightTexture)),new l("highlightLevel",(e=>e.highlightLevel))),h.main.add(r`ivec2 iuv = ivec2(gl_FragCoord.xy);
6
+ uvec2 inputTexel = texelFetch(highlightTexture, iuv, 0).rg;
7
7
  uint bits = readLevelBits(inputTexel, highlightLevel);
8
8
  bool hasHighlight = (bits & 1u) == 1u;
9
9
  bool hasOccluded = (bits & 2u) == 2u;
@@ -2,18 +2,17 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{invert as e,translate as i}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as t}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{n as o,t as r}from"./vec32.js";import{create as a}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{NormalFromDepth as l}from"../views/3d/webgl-engine/core/shaderLibrary/NormalFromDepth.glsl.js";import{ScreenSpacePass as h}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadShadowMapPass as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{RgbaFloatEncoding as n}from"../views/3d/webgl-engine/core/shaderLibrary/util/RgbaFloatEncoding.glsl.js";import{Float3BindUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float4PassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as p}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as w}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{SnapshotSlot as f}from"../views/3d/webgl-engine/lib/ShadowMap.js";import{ReadShadowMapConfiguration as v}from"../views/3d/webgl-engine/shaders/ReadShadowMapConfiguration.js";import{ShaderBuilder as x}from"../views/webgl/ShaderBuilder.js";const b=.025;function M(){const t=new x;t.include(s,D),t.include(h),t.include(l);const a=t.fragment;return a.include(n),a.uniforms.add(new m("defaultDepthTex",(e=>e.shadowMap.getSnapshot(f.ExcludeHighlight))),new m("highlightDepthTex",(e=>e.shadowMap.getSnapshot(f.Highlight))),new m("depthMap",(e=>e.depth?.attachment)),new u("highlightTexture",(e=>e.highlight)),new g("uColor",(e=>e.shadowColor)),new c("opacity",(e=>e.shadowOpacity)),new c("occludedOpacity",(e=>e.occludedShadowOpacity)),new c("terminationFactor",(e=>e.opacityElevation*e.dayNightTerminator)),new d("lightingMainDirectionView",(({lighting:e,camera:i})=>o(y,r(y,e.mainLight.direction,i.viewInverseTransposeMatrix)))),new w("inverseViewMatrix",(({camera:t})=>e(S,i(S,t.viewMatrix,t.center))))).main.add(p`
5
+ import{invert as e,translate as i}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as t}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{n as o,t as r}from"./vec32.js";import{create as a}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{NormalFromDepth as l}from"../views/3d/webgl-engine/core/shaderLibrary/NormalFromDepth.glsl.js";import{ScreenSpacePass as h}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadShadowMapPass as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{RgbaFloatEncoding as n}from"../views/3d/webgl-engine/core/shaderLibrary/util/RgbaFloatEncoding.glsl.js";import{Float3BindUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float4PassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as p}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as w}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{UintTexture2DPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/UintTexture2DPassUniform.js";import{SnapshotSlot as f}from"../views/3d/webgl-engine/lib/ShadowMap.js";import{ReadShadowMapConfiguration as v}from"../views/3d/webgl-engine/shaders/ReadShadowMapConfiguration.js";import{ShaderBuilder as x}from"../views/webgl/ShaderBuilder.js";const b=.025;function M(){const t=new x;t.include(s,D),t.include(h),t.include(l);const a=t.fragment;return a.include(n),a.uniforms.add(new w("defaultDepthTex",(e=>e.shadowMap.getSnapshot(f.ExcludeHighlight))),new w("highlightDepthTex",(e=>e.shadowMap.getSnapshot(f.Highlight))),new w("depthMap",(e=>e.depth?.attachment)),new m("highlightTexture",(e=>e.highlightTexture)),new g("uColor",(e=>e.shadowColor)),new c("opacity",(e=>e.shadowOpacity)),new c("occludedOpacity",(e=>e.occludedShadowOpacity)),new c("terminationFactor",(e=>e.opacityElevation*e.dayNightTerminator)),new d("lightingMainDirectionView",(({lighting:e,camera:i})=>o(y,r(y,e.mainLight.direction,i.viewInverseTransposeMatrix)))),new u("inverseViewMatrix",(({camera:t})=>e(S,i(S,t.viewMatrix,t.center))))).main.add(p`
6
6
  ivec2 highlightTextureSize = textureSize(highlightTexture, 0);
7
7
  ivec2 highlightIUV = ivec2(uv * vec2(highlightTextureSize));
8
- vec4 highlightInfo = texelFetch(highlightTexture, highlightIUV, 0);
8
+ uvec2 highlightInfo = texelFetch(highlightTexture, highlightIUV, 0).rg;
9
9
 
10
10
  fragColor = vec4(0.0);
11
11
 
12
12
  // Calculate bit mask to check if pixel is highlit unoccluded at any level
13
- int ored =
14
- (int(highlightInfo.r*255.0) << 0)
15
- | (int(highlightInfo.g*255.0) << 8);
16
- bool visiblyHighlighted = ((ored & ~(ored >> 1)) & (1+4+16+64)) != 0;
13
+ uint ored = (highlightInfo.r << 0) | (highlightInfo.g << 8);
14
+
15
+ bool visiblyHighlighted = ((ored & ~(ored >> 1)) & (1u+4u+16u+64u)) != 0u;
17
16
  if (visiblyHighlighted) {
18
17
  return;
19
18
  }
@@ -2,12 +2,12 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{n as o,i as a}from"./vec32.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{OverlayContent as l}from"../views/3d/terrain/OverlayContent.js";import{TransparencyMode as t}from"../views/3d/terrain/TransparencyMode.js";import{addLinearDepth as n,addNearFar as s,ForwardLinearDepth as c}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{ShaderOutput as d}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as m}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as v}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as g}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as p}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as f}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{OutputDepth as w}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as h}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientOcclusion as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as b,addAmbientBoostFactor as C,addLightingGlobalFactor as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as x,addMainLightIntensity as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PBRMode as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapDraw as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{OverlayMode as T,OverlayTerrain as z}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as P,TerrainTexture as M}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{addProjViewLocalOrigin as $,addViewNormal as N,addCameraPosition as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as W}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as V,If as A}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as F}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{Texture2DBindUniform as U}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{VertexAttribute as _}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{ShaderBuilder as B}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as H}from"../webscene/support/AlphaCutoff.js";class I extends P{}function k(r){const i=new B,{attributes:P,vertex:I,fragment:k,varyings:G}=i,{output:R,pbrMode:J,overlayMode:K,tileBorders:Q,spherical:X,transparencyMode:Y,screenSizePerspective:Z}=r;i.include(g,r),i.include(p,r);const ee=()=>{i.include(j,r),I.code.add(V`vec3 getNormal() {
5
+ import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{n as o,i as a}from"./vec32.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{OverlayContent as l}from"../views/3d/terrain/OverlayContent.js";import{TransparencyMode as t}from"../views/3d/terrain/TransparencyMode.js";import{addLinearDepth as n,addNearFar as s,ForwardLinearDepth as c}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{ShaderOutput as d}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as m}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as v}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as g}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as p}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as f}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{OutputDepth as w}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as u}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientOcclusion as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as h,addAmbientBoostFactor as C,addLightingGlobalFactor as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as x,addMainLightIntensity as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PBRMode as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapDraw as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{OverlayMode as T,OverlayTerrain as z}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as P,TerrainTexture as M}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{addProjViewLocalOrigin as $,addViewNormal as N,addCameraPosition as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as W}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as V,If as A}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as F}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{Texture2DBindUniform as U}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{VertexAttribute as _}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{ShaderBuilder as B}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as I}from"../webscene/support/AlphaCutoff.js";class k extends P{}function H(r){const i=new B,{attributes:P,vertex:k,fragment:H,varyings:G}=i,{output:R,pbrMode:J,overlayMode:K,tileBorders:Q,spherical:X,transparencyMode:Y,screenSizePerspective:Z}=r;i.include(g,r),i.include(p,r);const ee=()=>{i.include(j,r),k.code.add(V`vec3 getNormal() {
6
6
  float z = 1.0 - abs(normalCompressed.x) - abs(normalCompressed.y);
7
7
  vec3 n = vec3(normalCompressed + vec2(normalCompressed.x >= 0.0 ? 1.0 : -1.0,
8
8
  normalCompressed.y >= 0.0 ? 1.0 : -1.0) * min(z, 0.0), z);
9
9
  return normalize(n);
10
- }`)};$(I,r),P.add(_.POSITION,"vec3"),i.include(v,r);const re=Y===t.InvisibleWithDraped||Y===t.Invisible,oe=K!==T.Disabled,ae=oe&&re;switch(R){case d.ColorEmission:case d.Color:{i.include(M,r),i.include(b,r),oe&&(r.pbrMode=J===S.Simplified?S.TerrainWithWater:S.Water,i.include(z,r),r.pbrMode=J);const t=K===T.EnabledWithWater;t&&i.include(f,r),G.add("vnormal","vec3"),G.add("vpos","vec3",{invariant:!0}),G.add("vup","vec3"),ee(),Z&&N(I);const n=r.receiveShadows&&!r.renderOccluded;n&&i.include(c,r),Z&&(G.add("screenSizeDistanceToCamera","float"),G.add("screenSizeCosAngle","float")),I.main.add(V`
10
+ }`)};$(k,r),P.add(_.POSITION,"vec3"),i.include(v,r);const re=Y===t.InvisibleWithDraped||Y===t.Invisible,oe=K!==T.Disabled,ae=oe&&re;switch(R){case d.ColorEmission:case d.Color:{i.include(M,r),i.include(h,r),oe&&(r.pbrMode=J===S.Simplified?S.TerrainWithWater:S.Water,i.include(z,r),r.pbrMode=J);const t=K===T.EnabledWithWater;t&&i.include(f,r),G.add("vnormal","vec3"),G.add("vpos","vec3",{invariant:!0}),G.add("vup","vec3"),ee(),Z&&N(k);const n=r.receiveShadows&&!r.renderOccluded;n&&i.include(c,r),Z&&(G.add("screenSizeDistanceToCamera","float"),G.add("screenSizeCosAngle","float")),k.main.add(V`
11
11
  vpos = position;
12
12
  vec3 positionWorld = position + localOrigin;
13
13
  gl_Position = transformPosition(proj, view, vpos);
@@ -23,9 +23,9 @@ return normalize(n);
23
23
  screenSizeDistanceToCamera = length(viewPos);
24
24
  vec3 viewSpaceNormal = (viewNormal * vec4(normalize(positionWorld), 1.0)).xyz;
25
25
  screenSizeCosAngle = abs(viewSpaceNormal.z);`)}
26
- ${A(n,"forwardLinearDepth();")}`),i.fragment.include(m,r),i.include(b,r),i.include(u,r),i.include(L,r),D(k,r),C(k),y(k),k.uniforms.add(I.uniforms.get("localOrigin"),new W("viewDirection",(({camera:e})=>o(q,a(q,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14]))))),t&&k.uniforms.add(new U("ovWaterTex",(e=>e.overlay?.getTexture(l.WaterNormal))),new F("view",(({origin:r},{camera:o})=>e(E,o.viewMatrix,r))));const s=.2;k.code.add(V`float lum(vec3 c) {
26
+ ${A(n,"forwardLinearDepth();")}`),i.fragment.include(m,r),i.include(h,r),i.include(b,r),i.include(L,r),D(H,r),C(H),y(H),H.uniforms.add(k.uniforms.get("localOrigin"),new W("viewDirection",(({camera:e})=>o(q,a(q,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14]))))),t&&H.uniforms.add(new U("ovWaterTex",(e=>e.overlay?.getTexture(l.WaterNormal))),new F("view",(({origin:r},{camera:o})=>e(E,o.viewMatrix,r))));const s=.2;H.code.add(V`float lum(vec3 c) {
27
27
  return (min(min(c.r, c.g), c.b) + max(max(c.r, c.g), c.b)) * 0.5;
28
- }`),x(k),O(k),k.main.add(V`
28
+ }`),x(H),O(H),H.main.add(V`
29
29
  vec3 normal = normalize(vnormal);
30
30
  float vndl = dot(normal, mainLightDirection);
31
31
 
@@ -37,13 +37,13 @@ return (min(min(c.r, c.g), c.b) + max(max(c.r, c.g), c.b)) * 0.5;
37
37
 
38
38
  ${A(oe,V`vec4 overlayColorOpaque = getOverlayColor(ovColorTex, vtcOverlay);
39
39
  vec4 overlayColor = overlayOpacity * overlayColorOpaque;
40
- ${A(re,`if (overlayColor.a < ${V.float(H)}) { discard; }`)}
40
+ ${A(re,`if (overlayColor.a < ${V.float(I)}) { discard; }`)}
41
41
  vec4 groundColor = tileColor;
42
42
  tileColor = tileColor * (1.0 - overlayColor.a) + overlayColor;`)}
43
43
 
44
44
  // If combined alpha is 0 we can discard pixel. The performance impact by having a discard here
45
45
  // is neglectable because terrain typically renders first into the framebuffer.
46
- if(tileColor.a < ${V.float(H)}) {
46
+ if(tileColor.a < ${V.float(I)}) {
47
47
  discard;
48
48
  }
49
49
 
@@ -94,22 +94,21 @@ return (min(min(c.r, c.g), c.b) + max(max(c.r, c.g), c.b)) * 0.5;
94
94
  vec2 edgeFactors = smoothstep(vec2(0.0), 1.5 * dVuv, min(vuv0, 1.0 - vuv0));
95
95
  float edgeFactor = 1.0 - min(edgeFactors.x, edgeFactors.y);
96
96
  fragColor = mix(fragColor, vec4(1.0, 0.0, 0.0, 1.0), edgeFactor);`)}
97
- fragColor = applySlice(fragColor, vpos);`)}break;case d.Depth:ae&&i.include(z,r),I.main.add(V`
97
+ fragColor = applySlice(fragColor, vpos);`)}break;case d.Depth:ae&&i.include(z,r),k.main.add(V`
98
98
  ${A(ae,"setOverlayVTC(getUV0());")}
99
- gl_Position = transformPosition(proj, view, position);`),k.main.add(`${A(ae,`if (getCombinedOverlayColor().a < ${V.float(H)}) discard;`)}`);break;case d.Shadow:case d.ShadowHighlight:case d.ShadowExcludeHighlight:case d.ViewshedShadow:i.include(w,r),n(i),s(i),I.main.add(V`gl_Position = transformPositionWithDepth(proj, view, position, nearFar, linearDepth);`),k.main.add(V`outputDepth(linearDepth);`);break;case d.Normal:ae&&i.include(z,r),G.add("vnormal","vec3"),N(I),ee(),I.main.add(V`
99
+ gl_Position = transformPosition(proj, view, position);`),H.main.add(`${A(ae,`if (getCombinedOverlayColor().a < ${V.float(I)}) discard;`)}`);break;case d.Shadow:case d.ShadowHighlight:case d.ShadowExcludeHighlight:case d.ViewshedShadow:i.include(w,r),n(i),s(i),k.main.add(V`gl_Position = transformPositionWithDepth(proj, view, position, nearFar, linearDepth);`),H.main.add(V`outputDepth(linearDepth);`);break;case d.Normal:ae&&i.include(z,r),G.add("vnormal","vec3"),N(k),ee(),k.main.add(V`
100
100
  ${A(ae,"setOverlayVTC(getUV0());")}
101
101
  gl_Position = transformPosition(proj, view, position);
102
- vnormal = normalize((viewNormal * vec4(getNormal(), 1.0)).xyz);`),k.main.add(V`
103
- ${A(ae,`if (getCombinedOverlayColor().a < ${V.float(H)}) discard;`)}
102
+ vnormal = normalize((viewNormal * vec4(getNormal(), 1.0)).xyz);`),H.main.add(V`
103
+ ${A(ae,`if (getCombinedOverlayColor().a < ${V.float(I)}) discard;`)}
104
104
  vec3 normal = normalize(vnormal);
105
105
  if (gl_FrontFacing == false) {
106
106
  normal = -normal;
107
107
  }
108
- fragColor = vec4(vec3(0.5) + 0.5 * normal, 1.0);`);break;case d.Highlight:oe&&i.include(z,r),I.main.add(V`
108
+ fragColor = vec4(vec3(0.5) + 0.5 * normal, 1.0);`);break;case d.Highlight:oe&&i.include(z,r),k.main.add(V`
109
109
  ${A(oe,"setOverlayVTC(getUV0());")}
110
- gl_Position = transformPosition(proj, view, position);`),i.include(h,r),k.main.add(V`
110
+ gl_Position = transformPosition(proj, view, position);`),i.include(u,r),H.main.add(V`
111
111
  ${A(oe,V`
112
- vec2 overlayHighlightTexel = getAllOverlayHighlightValuesEncoded();
113
- calculateOcclusionAndOutputHighlightOverlay(overlayHighlightTexel);`,"calculateOcclusionAndOutputHighlight();")}
114
- `)}if(R===d.ObjectAndLayerIdColor)if(oe)r.pbrMode=S.Disabled,i.include(z,r),r.pbrMode=J,I.main.add(V`gl_Position = transformPosition(proj, view, position);
115
- setOverlayVTC(getUV0());`),k.main.add(V`fragColor = getOverlayColorTexel();`);else{const e=Y===t.Opaque;I.main.add(V`${A(e,"gl_Position = transformPosition(proj, view, position);")}`),k.main.add(V`fragColor = vec4(0.0);`)}return i}const E=r(),q=i(),G=Object.freeze(Object.defineProperty({__proto__:null,TerrainPassParameters:I,build:k},Symbol.toStringTag,{value:"Module"}));export{I as T,G as a,k as b};
112
+ calculateOcclusionAndOutputHighlightOverlay(getAllOverlayHighlightValuesEncoded());`,"calculateOcclusionAndOutputHighlight();")}
113
+ `)}if(R===d.ObjectAndLayerIdColor)if(oe)r.pbrMode=S.Disabled,i.include(z,r),r.pbrMode=J,k.main.add(V`gl_Position = transformPosition(proj, view, position);
114
+ setOverlayVTC(getUV0());`),H.main.add(V`fragColor = getOverlayColorTexel();`);else{const e=Y===t.Opaque;k.main.add(V`${A(e,"gl_Position = transformPosition(proj, view, position);")}`),H.main.add(V`fragColor = vec4(0.0);`)}return i}const E=r(),q=i(),G=Object.freeze(Object.defineProperty({__proto__:null,TerrainPassParameters:k,build:H},Symbol.toStringTag,{value:"Module"}));export{k as T,G as a,H as b};