@arcgis/core 5.0.0-next.27 → 5.0.0-next.29

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 (95) hide show
  1. package/Map.js +1 -1
  2. package/WebScene.js +1 -1
  3. package/assets/esri/core/workers/RemoteClient.js +1 -1
  4. package/assets/esri/core/workers/chunks/{aca72ca7f43f70eb8077.js → 0bfb7db0a151a5e85dd1.js} +1 -1
  5. package/assets/esri/core/workers/chunks/2d0d8243ed0c21f8a498.js +1 -0
  6. package/assets/esri/core/workers/chunks/{e873359e00e0866d4ef6.js → 66853ecdebfc2aa68ce7.js} +21 -22
  7. package/assets/esri/core/workers/chunks/6c8f5a56e94fdbe6a4a5.js +1 -0
  8. package/assets/esri/core/workers/chunks/6ce7ca6bebdc61d8eada.js +1 -0
  9. package/assets/esri/core/workers/chunks/{8b33732e3c2924c1f60d.js → e615983fab688d515205.js} +1 -1
  10. package/assets/esri/core/workers/chunks/e6fa6f9c278589c8a713.js +1 -0
  11. package/chunks/CheckerBoard.glsl.js +2 -2
  12. package/chunks/ColorMaterial.glsl.js +2 -2
  13. package/chunks/ComponentShader.glsl.js +2 -2
  14. package/chunks/DefaultMaterial.glsl.js +2 -2
  15. package/chunks/ImageMaterial.glsl.js +2 -2
  16. package/chunks/LineMarker.glsl.js +2 -2
  17. package/chunks/NativeLine.glsl.js +2 -2
  18. package/chunks/Path.glsl.js +3 -3
  19. package/chunks/Pattern.glsl.js +2 -2
  20. package/chunks/RealisticTree.glsl.js +2 -2
  21. package/chunks/RibbonLine.glsl.js +2 -2
  22. package/chunks/ShadedColorMaterial.glsl.js +2 -2
  23. package/chunks/Terrain.glsl.js +27 -37
  24. package/chunks/WaterSurface.glsl.js +2 -2
  25. package/config.js +1 -1
  26. package/core/accessorSupport/decorators/property.js +1 -1
  27. package/core/has.js +1 -1
  28. package/geometry/Circle.js +1 -1
  29. package/geometry/support/MeshMaterial.js +1 -1
  30. package/geometry/support/MeshMaterialMetallicRoughness.js +1 -1
  31. package/interfaces.d.ts +29 -23
  32. package/kernel.js +1 -1
  33. package/layers/orientedImagery/transformations/imageToWorld.js +1 -1
  34. package/package.json +2 -2
  35. package/renderers/support/UniqueValueClass.js +1 -1
  36. package/renderers/visualVariables/SizeVariable.js +1 -1
  37. package/support/revision.js +1 -1
  38. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterColorizerTechnique.js +1 -1
  39. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  40. package/views/3d/layers/i3s/I3SMaterialUtil.js +1 -1
  41. package/views/3d/layers/support/Tiles3DIntersectionHandler.js +1 -1
  42. package/views/3d/state/ViewState.js +1 -1
  43. package/views/3d/state/ViewStateManager.js +1 -1
  44. package/views/3d/state/controllers/PinchAndPanControllerGlobal.js +1 -1
  45. package/views/3d/state/controllers/PinchAndPanControllerLocal.js +1 -1
  46. package/views/3d/support/QualityProfile.js +1 -1
  47. package/views/3d/terrain/TerrainRenderer.js +1 -1
  48. package/views/3d/terrain/TerrainSurface.js +1 -1
  49. package/views/3d/webgl-engine/Stage.js +1 -1
  50. package/views/3d/webgl-engine/collections/Component/ComponentData.js +1 -1
  51. package/views/3d/webgl-engine/collections/Component/ComponentObject.js +1 -1
  52. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  53. package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticBVH.js +1 -1
  54. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  55. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentShader.glsl.js +1 -1
  56. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  57. package/views/3d/webgl-engine/lib/TriangleIntersectionData.js +1 -1
  58. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  59. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  60. package/views/3d/webgl-engine/shaders/CheckerBoard.glsl.js +1 -1
  61. package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
  62. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  63. package/views/3d/webgl-engine/shaders/ImageMaterial.glsl.js +1 -1
  64. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  65. package/views/3d/webgl-engine/shaders/NativeLine.glsl.js +1 -1
  66. package/views/3d/webgl-engine/shaders/{OutputColorHighlightOID.glsl.js → OutputColorHighlightOLID.glsl.js} +2 -3
  67. package/views/3d/webgl-engine/shaders/Path.glsl.js +1 -1
  68. package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
  69. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  70. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  71. package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +1 -1
  72. package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
  73. package/views/3d/webgl-engine/shaders/WaterSurface.glsl.js +1 -1
  74. package/views/SceneView.js +1 -1
  75. package/views/View.js +1 -1
  76. package/views/View2D.js +1 -1
  77. package/views/Viewport2DMixin.js +1 -1
  78. package/views/navigation/Momentum.js +1 -1
  79. package/views/video/VideoOperationalDataView.js +1 -1
  80. package/webscene/Slide.js +1 -1
  81. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  82. package/widgets/BasemapToggle/BasemapToggleViewModel.js +1 -1
  83. package/widgets/Editor/UpdateFeaturesWorkflowData.js +1 -1
  84. package/widgets/FeatureTable.js +1 -1
  85. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  86. package/widgets/OrientedImageryViewer/adapters/view/MapViewAdapter.js +1 -1
  87. package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
  88. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  89. package/widgets/UtilityNetworkTrace.js +1 -1
  90. package/widgets/Widget.js +1 -1
  91. package/assets/esri/core/workers/chunks/3f2b1d2102eef7ac29b4.js +0 -1
  92. package/assets/esri/core/workers/chunks/7532e819d2f4ee4813be.js +0 -1
  93. package/assets/esri/core/workers/chunks/76f2ce14d0d3001620a9.js +0 -1
  94. package/assets/esri/core/workers/chunks/ab5c386100b84bc564dd.js +0 -1
  95. package/views/3d/webgl-engine/lib/ComponentUtils.js +0 -5
@@ -2,7 +2,7 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColor as o}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstanceColor as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstanceColor.glsl.js";import{InstancedDoublePrecision as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{MaskedColorDefinition as t,CreateMaskedFromNaNColor as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/MaskedColor.glsl.js";import{NormalAttribute as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{SymbolColor as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as g}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VerticalOffset as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as v}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{EvaluateAmbientOcclusion as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as w,addAmbientBoostFactor as p,addLightingGlobalFactor as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as f,addMainLightIntensity as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PhysicallyBasedRendering as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import{PhysicallyBasedRenderingParameters as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapPass as C,ReadShadowMapDraw as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{VisualVariables as M}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as O}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{MixExternalColor as N}from"../views/3d/webgl-engine/core/shaderLibrary/util/MixExternalColor.glsl.js";import{addProjViewLocalOrigin as P,addCameraPosition as S}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as A}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{Float4PassUniform as E}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as D}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as F,If as V}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as T}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{SnowCover as $}from"../views/3d/webgl-engine/effects/weather/SnowCover.glsl.js";import{colorMixModes as I}from"../views/3d/webgl-engine/materials/internal/MaterialUtil.js";import{outputColorHighlightOID as k}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as R}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as B}from"../webscene/support/AlphaCutoff.js";function _(_){const z=new R,{attributes:U,vertex:W,fragment:H,varyings:G}=z,{output:q,offsetBackfaces:J,pbrMode:K,snowCover:Q,spherical:X}=_,Y=1===K||2===K;if(P(W,_),U.add("position","vec3"),G.add("vpos","vec3",{invariant:!0}),z.include(M,_),z.include(l,_),z.include(m,_),z.include(j,_),!o(q))return z.include(v,_),z;S(z.vertex,_),z.include(n,_),z.include(i),J&&z.include(e),G.add("vNormalWorld","vec3"),G.add("localvpos","vec3",{invariant:!0}),z.include(c,_),z.include(d,_),z.include(a,_),z.include(g,_),W.include(t),W.include(s),W.uniforms.add(new E("externalColor",e=>e.externalColor,{supportsNaN:!0})),G.add("vcolorExt","vec4"),z.include(_.instancedDoublePrecision?C:L,_),W.main.add(F`
5
+ import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColor as o}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstanceColor as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstanceColor.glsl.js";import{InstancedDoublePrecision as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{MaskedColorDefinition as t,CreateMaskedFromNaNColor as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/MaskedColor.glsl.js";import{NormalAttribute as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{SymbolColor as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as g}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VerticalOffset as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as v}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{EvaluateAmbientOcclusion as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as w,addAmbientBoostFactor as p,addLightingGlobalFactor as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as f,addMainLightIntensity as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PhysicallyBasedRendering as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import{PhysicallyBasedRenderingParameters as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapPass as C,ReadShadowMapDraw as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{VisualVariables as M}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as O}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{MixExternalColor as N}from"../views/3d/webgl-engine/core/shaderLibrary/util/MixExternalColor.glsl.js";import{addProjViewLocalOrigin as P,addCameraPosition as S}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as A}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{Float4PassUniform as E}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as D}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as F,If as V}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as T}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{SnowCover as $}from"../views/3d/webgl-engine/effects/weather/SnowCover.glsl.js";import{colorMixModes as I}from"../views/3d/webgl-engine/materials/internal/MaterialUtil.js";import{outputColorHighlightOLID as k}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as R}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as B}from"../webscene/support/AlphaCutoff.js";function _(_){const z=new R,{attributes:U,vertex:W,fragment:H,varyings:G}=z,{output:q,offsetBackfaces:J,pbrMode:K,snowCover:Q,spherical:X}=_,Y=1===K||2===K;if(P(W,_),U.add("position","vec3"),G.add("vpos","vec3",{invariant:!0}),z.include(M,_),z.include(l,_),z.include(m,_),z.include(j,_),!o(q))return z.include(v,_),z;S(z.vertex,_),z.include(n,_),z.include(i),J&&z.include(e),G.add("vNormalWorld","vec3"),G.add("localvpos","vec3",{invariant:!0}),z.include(c,_),z.include(d,_),z.include(a,_),z.include(g,_),W.include(t),W.include(s),W.uniforms.add(new E("externalColor",e=>e.externalColor,{supportsNaN:!0})),G.add("vcolorExt","vec4"),z.include(_.instancedDoublePrecision?C:L,_),W.main.add(F`
6
6
  forwardNormalizedVertexColor();
7
7
 
8
8
  MaskedColor maskedColorExt =
@@ -60,4 +60,4 @@ import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.
60
60
  ${V(Q,"mrr = applySnowToMRR(mrr, snow);")}
61
61
  vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, viewDirection, groundNormal, mrr, additionalAmbientIrradiance);`:F`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
62
62
  vec4 finalColor = vec4(shadedColor, opacity_);
63
- outputColorHighlightOID(finalColor, vpos, albedo ${V(Q,", 1.0")});`),z}const z=Object.freeze(Object.defineProperty({__proto__:null,build:_},Symbol.toStringTag,{value:"Module"}));export{z as R,_ as b};
63
+ outputColorHighlightOLID(finalColor, vpos, albedo ${V(Q,", 1.0")});`),z}const z=Object.freeze(Object.defineProperty({__proto__:null,build:_},Symbol.toStringTag,{value:"Module"}));export{z as R,_ as b};
@@ -2,7 +2,7 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{SliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{LineStipple as n,computePixelSize as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{PiUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{terrainDepthTest as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as p,NoPerspectiveRead as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as c,addPixelRatio as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as v}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as D}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as S}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as h,If as x}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{AnimatedLine as L}from"../views/3d/webgl-engine/shaders/AnimatedLine.glsl.js";import{outputColorHighlightOID as w}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as b}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as y}from"../webscene/support/AlphaCutoff.js";const P=1;function j(j){const z=new b,{attributes:C,varyings:W,vertex:R,fragment:F}=z,{applyMarkerOffset:A,draped:V,output:T,capType:E,stippleEnabled:O,falloffEnabled:M,roundJoins:N,wireframe:$,innerColorEnabled:_,hasAnimation:k,hasScreenSizePerspective:B}=j;F.include(a),z.include(t,j),z.include(n,j),z.include(i,j),z.include(s,j),z.include(L,j);const H=A&&!V;H&&(R.uniforms.add(new S("markerScale",e=>e.markerScale)),z.include(o,{space:2,hasScreenSizePerspective:B})),c(R,j),R.uniforms.add(new u("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new v("nearFar",e=>e.camera.nearFar),new S("miterLimit",e=>"miter"!==e.join?0:e.miterLimit),new f("viewport",e=>e.camera.fullViewport)),R.constants.add("LARGE_HALF_FLOAT","float",65500),C.add("position","vec3"),C.add("previousDelta","vec4"),C.add("nextDelta","vec4"),C.add("lineParameters","vec2"),C.add("u0","float"),W.add("vColor","vec4"),W.add("vpos","vec3",{invariant:!0}),W.add("vLineDistance","float"),W.add("vLineWidth","float");const I=O;I&&W.add("vLineSizeInv","float");const J=2===E,U=O&&J,G=M||U;G&&W.add("vLineDistanceNorm","float"),J&&(W.add("vSegmentSDF","float"),W.add("vReverseSegmentSDF","float")),R.code.add(h`vec2 perpendicular(vec2 v) {
5
+ import{SliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{LineStipple as n,computePixelSize as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{PiUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{terrainDepthTest as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as p,NoPerspectiveRead as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as c,addPixelRatio as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as v}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as D}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as S}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as h,If as x}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{AnimatedLine as L}from"../views/3d/webgl-engine/shaders/AnimatedLine.glsl.js";import{outputColorHighlightOLID as w}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as b}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as y}from"../webscene/support/AlphaCutoff.js";const P=1;function j(j){const z=new b,{attributes:C,varyings:W,vertex:R,fragment:F}=z,{applyMarkerOffset:A,draped:V,output:T,capType:E,stippleEnabled:O,falloffEnabled:M,roundJoins:N,wireframe:$,innerColorEnabled:_,hasAnimation:k,hasScreenSizePerspective:B}=j;F.include(a),z.include(t,j),z.include(n,j),z.include(i,j),z.include(s,j),z.include(L,j);const H=A&&!V;H&&(R.uniforms.add(new S("markerScale",e=>e.markerScale)),z.include(o,{space:2,hasScreenSizePerspective:B})),c(R,j),R.uniforms.add(new u("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new v("nearFar",e=>e.camera.nearFar),new S("miterLimit",e=>"miter"!==e.join?0:e.miterLimit),new f("viewport",e=>e.camera.fullViewport)),R.constants.add("LARGE_HALF_FLOAT","float",65500),C.add("position","vec3"),C.add("previousDelta","vec4"),C.add("nextDelta","vec4"),C.add("lineParameters","vec2"),C.add("u0","float"),W.add("vColor","vec4"),W.add("vpos","vec3",{invariant:!0}),W.add("vLineDistance","float"),W.add("vLineWidth","float");const I=O;I&&W.add("vLineSizeInv","float");const J=2===E,U=O&&J,G=M||U;G&&W.add("vLineDistanceNorm","float"),J&&(W.add("vSegmentSDF","float"),W.add("vReverseSegmentSDF","float")),R.code.add(h`vec2 perpendicular(vec2 v) {
6
6
  return vec2(v.y, -v.x);
7
7
  }
8
8
  float interp(float ncp, vec4 a, vec4 b) {
@@ -230,4 +230,4 @@ finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);`),k&&F.main.add(h`
230
230
  if (finalColor.a <= ${h.float(y)}) {
231
231
  discard;
232
232
  }`)}
233
- `)),F.main.add(h`outputColorHighlightOID(finalColor, vpos, finalColor.rgb);`),z}const z=Object.freeze(Object.defineProperty({__proto__:null,build:j,ribbonlineNumRoundJoinSubdivisions:P},Symbol.toStringTag,{value:"Module"}));export{z as R,j as b,P as r};
233
+ `)),F.main.add(h`outputColorHighlightOLID(finalColor, vpos, finalColor.rgb);`),z}const z=Object.freeze(Object.defineProperty({__proto__:null,build:j,ribbonlineNumRoundJoinSubdivisions:P},Symbol.toStringTag,{value:"Module"}));export{z as R,j as b,P as r};
@@ -2,7 +2,7 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{create as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ScreenSizeScaling as o}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSizeScaling.glsl.js";import{SliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{terrainDepthTest as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as s,addViewNormal as a}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{Float4PassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{If as c,glsl as g}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOID as m}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as v}from"../views/webgl/ShaderBuilder.js";function w(e){const w=new v;w.include(i),w.include(o,e),w.fragment.include(r,e),w.include(m,e),w.include(n,e);const{vertex:u,fragment:b}=w;return b.include(l),s(u,e),b.uniforms.add(new t("uColor",e=>e.color)),w.attributes.add("position","vec3"),w.varyings.add("vWorldPosition","vec3"),e.screenSizeEnabled&&w.attributes.add("offset","vec3"),e.shadingEnabled&&(a(u),w.attributes.add("normal","vec3"),w.varyings.add("vViewNormal","vec3"),b.uniforms.add(new d("shadingDirection",e=>e.shadingDirection)),b.uniforms.add(new t("shadedColor",e=>f(e.shadingTint,e.color)))),u.main.add(g`
5
+ import{create as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ScreenSizeScaling as o}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSizeScaling.glsl.js";import{SliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{terrainDepthTest as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as s,addViewNormal as a}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{Float4PassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{If as c,glsl as g}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOLID as m}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as v}from"../views/webgl/ShaderBuilder.js";function w(e){const w=new v;w.include(i),w.include(o,e),w.fragment.include(r,e),w.include(m,e),w.include(n,e);const{vertex:u,fragment:b}=w;return b.include(l),s(u,e),b.uniforms.add(new t("uColor",e=>e.color)),w.attributes.add("position","vec3"),w.varyings.add("vWorldPosition","vec3"),e.screenSizeEnabled&&w.attributes.add("offset","vec3"),e.shadingEnabled&&(a(u),w.attributes.add("normal","vec3"),w.varyings.add("vViewNormal","vec3"),b.uniforms.add(new d("shadingDirection",e=>e.shadingDirection)),b.uniforms.add(new t("shadedColor",e=>f(e.shadingTint,e.color)))),u.main.add(g`
6
6
  vWorldPosition = ${e.screenSizeEnabled?g`screenSizeScaling(offset, position)`:g`position`};
7
7
  ${c(e.shadingEnabled,g`vec3 worldNormal = normal;
8
8
  vViewNormal = (viewNormal * vec4(worldNormal, 1)).xyz;`)}
@@ -14,4 +14,4 @@ import{create as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{Sc
14
14
  ${e.shadingEnabled?g`vec3 viewNormalNorm = normalize(vViewNormal);
15
15
  float shadingFactor = 1.0 - clamp(-dot(viewNormalNorm, shadingDirection), 0.0, 1.0);
16
16
  vec4 finalColor = mix(uColor, shadedColor, shadingFactor);`:g`vec4 finalColor = uColor;`}
17
- outputColorHighlightOID(finalColor, vWorldPosition, finalColor.rgb);`),w}function f(e,o){const r=1-e[3],i=e[3]+o[3]*r;return 0===i?(u[3]=i,u):(u[0]=(e[0]*e[3]+o[0]*o[3]*r)/i,u[1]=(e[1]*e[3]+o[1]*o[3]*r)/i,u[2]=(e[2]*e[3]+o[2]*o[3]*r)/i,u[3]=o[3],u)}const u=e(),b=Object.freeze(Object.defineProperty({__proto__:null,build:w},Symbol.toStringTag,{value:"Module"}));export{b as S,w as b};
17
+ outputColorHighlightOLID(finalColor, vWorldPosition, finalColor.rgb);`),w}function f(e,o){const r=1-e[3],i=e[3]+o[3]*r;return 0===i?(u[3]=i,u):(u[0]=(e[0]*e[3]+o[0]*o[3]*r)/i,u[1]=(e[1]*e[3]+o[1]*o[3]*r)/i,u[2]=(e[2]*e[3]+o[2]*o[3]*r)/i,u[3]=o[3],u)}const u=e(),b=Object.freeze(Object.defineProperty({__proto__:null,build:w},Symbol.toStringTag,{value:"Module"}));export{b as S,w as b};
@@ -2,25 +2,25 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/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,h as a}from"./vec32.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{addLinearDepth as l}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{addNearFar as t}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import{SliceDraw as n}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as s}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{OutputDepth as v}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as g}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{EvaluateAmbientOcclusion as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as f,addAmbientBoostFactor as w,addLightingGlobalFactor as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as h,addMainLightIntensity as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDraw as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{OverlayTerrain as x}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as L,TerrainTexture as O}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{addProjViewLocalOrigin as T,addViewNormal as M,addCameraPosition as P}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as $}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{If as z,glsl as S}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as N}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{Texture2DBindUniform as F}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{ShaderBuilder as D}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as _}from"../webscene/support/AlphaCutoff.js";class A extends L{}function V(r){const i=new D,{attributes:L,vertex:A,fragment:V,varyings:B}=i;L.add("position","vec3"),i.include(d,r),i.include(c,r);const k=()=>{i.include(C,r),A.code.add(S`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,h as a}from"./vec32.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{addLinearDepth as l}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{addNearFar as t}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import{SliceDraw as n}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as s}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{OutputDepth as v}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as g}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{EvaluateAmbientOcclusion as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as f,addAmbientBoostFactor as w,addLightingGlobalFactor as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as h,addMainLightIntensity as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDraw as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{OverlayTerrain as x}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as L,TerrainTexture as O}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{addProjViewLocalOrigin as T,addViewNormal as M,addCameraPosition as P}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as $}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{If as S,glsl as z}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 D}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{ShaderBuilder as _}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as A}from"../webscene/support/AlphaCutoff.js";class V extends L{}function N(r){const i=new _,{attributes:L,vertex:V,fragment:N,varyings:k}=i;L.add("position","vec3"),i.include(d,r),i.include(c,r);const H=()=>{i.include(C,r),V.code.add(z`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
- }`)};T(A,r),i.include(s);const{output:H,pbrMode:E,overlayMode:q,tileBorders:I,spherical:R,transparencyMode:G,overlayEnabled:J}=r,K=2===G||3===G,Q=J&&K;switch(H){case 0:{i.include(O,r),i.include(f,r),J&&(r.pbrMode=5===E?6:3,i.include(x,r),r.pbrMode=E);const l=2===q;l&&i.include(m,r),B.add("vnormal","vec3"),B.add("vpos","vec3",{invariant:!0}),B.add("vup","vec3"),k(),A.main.add(S`
10
+ }`)};T(V,r),i.include(s);const{output:U,pbrMode:E,overlayMode:q,tileBorders:I,transparencyMode:R,overlayEnabled:G}=r,J=2===R||3===R,K=G&&J;switch(U){case 0:{i.include(O,r),i.include(f,r),G&&(r.pbrMode=5===E?6:3,i.include(x,r),r.pbrMode=E);const l=2===q;l&&i.include(m,r),k.add("vnormal","vec3"),k.add("vpos","vec3",{invariant:!0}),k.add("vup","vec3"),H(),V.main.add(z`
11
11
  vpos = position;
12
12
  vec3 positionWorld = position + localOrigin;
13
13
  gl_Position = transformPosition(proj, view, vpos);
14
14
  vnormal = getNormal();
15
15
  vup = getLocalUp(position, localOrigin);
16
- ${z(l,S`forwardVertexTangent(vnormal);`)}
16
+ ${S(l,z`forwardVertexTangent(vnormal);`)}
17
17
 
18
18
  forwardTextureCoordinatesWithTransform(uv0);
19
- ${z(J,"setOverlayVTC(uv0);")}
20
- ${z(I,"forwardTextureCoordinates();")}
21
- forwardLinearDepthToReadShadowMap();`),i.include(j,r),V.include(n,r),i.include(f,r),V.include(u,r),P(V,r),w(V),b(V),V.uniforms.add(A.uniforms.get("localOrigin"),new $("viewDirection",({camera:e})=>o(U,a(U,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14])))),l&&V.uniforms.add(new F("ovWaterTex",e=>e.overlay?.getTexture(3)),new N("view",({origin:r},{camera:o})=>e(W,o.viewMatrix,r)));const t=.2;V.code.add(S`float lum(vec3 c) {
19
+ ${S(G,"setOverlayVTC(uv0);")}
20
+ ${S(I,"forwardTextureCoordinates();")}
21
+ forwardLinearDepthToReadShadowMap();`),i.include(j,r),N.include(n,r),i.include(f,r),N.include(u,r),P(N,r),w(N),b(N),N.uniforms.add(V.uniforms.get("localOrigin"),new $("viewDirection",({camera:e})=>o(B,a(B,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14])))),l&&N.uniforms.add(new D("ovWaterTex",e=>e.overlay?.getTexture(3)),new F("view",({origin:r},{camera:o})=>e(W,o.viewMatrix,r)));const t=.2;N.code.add(z`float lum(vec3 c) {
22
22
  return (min(min(c.r, c.g), c.b) + max(max(c.r, c.g), c.b)) * 0.5;
23
- }`),h(V),y(V),V.main.add(S`
23
+ }`),h(N),y(N),N.main.add(z`
24
24
  vec3 normal = normalize(vnormal);
25
25
  float vndl = dot(normal, mainLightDirection);
26
26
 
@@ -29,31 +29,30 @@ return (min(min(c.r, c.g), c.b) + max(max(c.r, c.g), c.b)) * 0.5;
29
29
  float ssao = evaluateAmbientOcclusionInverse();
30
30
  vec4 tileColor = getTileColor();
31
31
 
32
- ${z(J,S`vec4 overlayColorOpaque = getOverlayColor(ovColorTex, vtcOverlay);
32
+ ${S(G,z`vec4 overlayColorOpaque = getOverlayColor(ovColorTex, vtcOverlay);
33
33
  vec4 overlayColor = overlayOpacity * overlayColorOpaque;
34
- ${z(K,`if (overlayColor.a < ${S.float(_)}) { discard; }`)}
34
+ ${S(J,`if (overlayColor.a < ${z.float(A)}) { discard; }`)}
35
35
  vec4 groundColor = tileColor;
36
36
  tileColor = tileColor * (1.0 - overlayColor.a) + overlayColor;`)}
37
37
 
38
38
  // If combined alpha is 0 we can discard pixel. The performance impact by having a discard here
39
39
  // is neglectable because terrain typically renders first into the framebuffer.
40
- if(tileColor.a < ${S.float(_)}) {
40
+ if(tileColor.a < ${z.float(A)}) {
41
41
  discard;
42
42
  }
43
43
 
44
44
  bool sliced = rejectBySlice(vpos);
45
45
  if (sliced) {
46
- tileColor *= ${S.float(t)};
46
+ tileColor *= ${z.float(t)};
47
47
  }
48
48
 
49
49
  vec3 albedo = tileColor.rgb;
50
50
 
51
51
  // heuristic shading function used in the old terrain, now used to add ambient lighting
52
-
53
52
  vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
54
53
 
55
- ${5===E||6===E?S`fragColor = vec4(evaluatePBRSimplifiedLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight, normalize(vpos - cameraPosition), vup), tileColor.a);`:S`fragColor = vec4(evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight), tileColor.a);`}
56
- ${z(l,S`vec4 overlayWaterMask = getOverlayColor(ovWaterTex, vtcOverlay);
54
+ ${5===E||6===E?z`fragColor = vec4(evaluatePBRSimplifiedLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight, normalize(vpos - cameraPosition), vup), tileColor.a);`:z`fragColor = vec4(evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight), tileColor.a);`}
55
+ ${S(l,z`vec4 overlayWaterMask = getOverlayColor(ovWaterTex, vtcOverlay);
57
56
  float waterNormalLength = length(overlayWaterMask);
58
57
  if (waterNormalLength > 0.95) {
59
58
  mat3 tbnMatrix = mat3(tbnTangent, tbnBiTangent, vnormal);
@@ -61,38 +60,29 @@ return (min(min(c.r, c.g), c.b) + max(max(c.r, c.g), c.b)) * 0.5;
61
60
  vec4 viewPosition = view*vec4(vpos, 1.0);
62
61
  vec4 waterColorLinear = getOverlayWaterColor(overlayWaterMask, waterOverlayColor, -normalize(vpos - cameraPosition), shadow, vnormal, tbnMatrix, viewPosition.xyz, vpos + localOrigin);
63
62
  vec4 waterColorNonLinear = delinearizeGamma(vec4(waterColorLinear.xyz, 1.0));
64
- float opacity = sliced ? ${S.float(t)} : 1.0;
63
+ float opacity = sliced ? ${z.float(t)} : 1.0;
65
64
  // un-gamma the ground color to mix in linear space
66
65
  fragColor = mix(groundColor, waterColorNonLinear, waterColorLinear.w) * opacity;
67
66
  }`)}
68
- ${z(r.visualizeNormals,R?S`
69
- vec3 localUp = normalize(vpos + localOrigin);
70
- vec3 right = normalize(cross(vec3(0.0, 0.0, 1.0), localUp));
71
- vec3 forward = normalize(cross(localUp, right));
72
- mat3 tbn = mat3(right, forward, localUp);
73
- vec3 tNormal = normalize(normal * tbn);
74
- fragColor = vec4(vec3(0.5) + 0.5 * tNormal, 0.0);`:S`
75
- vec3 tNormal = normalize(normal);
76
- fragColor = vec4(vec3(0.5) + 0.5 * tNormal, 0.0);`)}
77
- ${z(I,S`vec2 dVuv = fwidth(vuv0);
67
+ ${S(I,z`vec2 dVuv = fwidth(vuv0);
78
68
  vec2 edgeFactors = smoothstep(vec2(0.0), 1.5 * dVuv, min(vuv0, 1.0 - vuv0));
79
69
  float edgeFactor = 1.0 - min(edgeFactors.x, edgeFactors.y);
80
70
  fragColor = mix(fragColor, vec4(1.0, 0.0, 0.0, 1.0), edgeFactor);`)}
81
- fragColor = applySlice(fragColor, vpos);`)}break;case 1:Q&&i.include(x,r),A.main.add(S`
82
- ${z(Q,"setOverlayVTC(uv0);")}
83
- gl_Position = transformPosition(proj, view, position);`),V.main.add(`${z(Q,`if (getCombinedOverlayColor().a < ${S.float(_)}) discard;`)}`);break;case 3:case 4:case 5:case 6:case 7:i.include(v,r),l(i),t(i),A.main.add(S`gl_Position = transformPositionWithDepth(proj, view, position, nearFar, linearDepth);`),V.main.add(S`outputDepth(linearDepth);`);break;case 2:Q&&i.include(x,r),B.add("vnormal","vec3"),M(A),k(),A.main.add(S`
84
- ${z(Q,"setOverlayVTC(uv0);")}
71
+ fragColor = applySlice(fragColor, vpos);`)}break;case 1:K&&i.include(x,r),V.main.add(z`
72
+ ${S(K,"setOverlayVTC(uv0);")}
73
+ gl_Position = transformPosition(proj, view, position);`),N.main.add(`${S(K,`if (getCombinedOverlayColor().a < ${z.float(A)}) discard;`)}`);break;case 3:case 4:case 5:case 6:case 7:i.include(v,r),l(i),t(i),V.main.add(z`gl_Position = transformPositionWithDepth(proj, view, position, nearFar, linearDepth);`),N.main.add(z`outputDepth(linearDepth);`);break;case 2:K&&i.include(x,r),k.add("vnormal","vec3"),M(V),H(),V.main.add(z`
74
+ ${S(K,"setOverlayVTC(uv0);")}
85
75
  gl_Position = transformPosition(proj, view, position);
86
- vnormal = normalize((viewNormal * vec4(getNormal(), 1.0)).xyz);`),V.main.add(S`
87
- ${z(Q,`if (getCombinedOverlayColor().a < ${S.float(_)}) discard;`)}
76
+ vnormal = normalize((viewNormal * vec4(getNormal(), 1.0)).xyz);`),N.main.add(z`
77
+ ${S(K,`if (getCombinedOverlayColor().a < ${z.float(A)}) discard;`)}
88
78
  vec3 normal = normalize(vnormal);
89
79
  if (gl_FrontFacing == false) {
90
80
  normal = -normal;
91
81
  }
92
- fragColor = vec4(vec3(0.5) + 0.5 * normal, 1.0);`);break;case 8:J&&(i.include(x,r),i.include(p,r)),A.main.add(S`
93
- ${z(J,"setOverlayVTC(uv0);")}
94
- gl_Position = transformPosition(proj, view, position);`),i.include(g,r),V.main.add(S`
95
- ${z(J,S`
82
+ fragColor = vec4(vec3(0.5) + 0.5 * normal, 1.0);`);break;case 8:G&&(i.include(x,r),i.include(p,r)),V.main.add(z`
83
+ ${S(G,"setOverlayVTC(uv0);")}
84
+ gl_Position = transformPosition(proj, view, position);`),i.include(g,r),N.main.add(z`
85
+ ${S(G,z`
96
86
  calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded());`,"calculateOcclusionAndOutputHighlight();")}
97
- `)}if(9===H)if(J)r.pbrMode=0,i.include(x,r),r.pbrMode=E,A.main.add(S`gl_Position = transformPosition(proj, view, position);
98
- setOverlayVTC(uv0);`),V.main.add(S`fragColor = getOverlayColorTexel();`);else{const e=0===G;A.main.add(S`${z(e,"gl_Position = transformPosition(proj, view, position);")}`),V.main.add(S`fragColor = vec4(0.0);`)}return i}const W=r(),U=i(),B=Object.freeze(Object.defineProperty({__proto__:null,TerrainPassParameters:A,build:V},Symbol.toStringTag,{value:"Module"}));export{A as T,B as a,V as b};
87
+ `)}if(9===U)if(G)r.pbrMode=0,i.include(x,r),r.pbrMode=E,V.main.add(z`gl_Position = transformPosition(proj, view, position);
88
+ setOverlayVTC(uv0);`),N.main.add(z`fragColor = getOverlayColorTexel();`);else{const e=0===R;V.main.add(z`${S(e,"gl_Position = transformPosition(proj, view, position);")}`),N.main.add(z`fragColor = vec4(0.0);`)}return i}const W=r(),B=i(),k=Object.freeze(Object.defineProperty({__proto__:null,TerrainPassParameters:V,build:N},Symbol.toStringTag,{value:"Module"}));export{V as T,k as a,N as b};
@@ -2,7 +2,7 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{isColor as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as o}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{OutputHighlight as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientLighting as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js";import{addMainLightDirection as n,addMainLightIntensity as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDraw as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as g}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{Water as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Water.glsl.js";import{WaterDistortion as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js";import{ColorConversion as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as p,addCameraPosition as w}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as f}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as h}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOID as b}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as y}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as j}from"../webscene/support/AlphaCutoff.js";function L(L){const C=new y,{vertex:P,fragment:x,varyings:S}=C,{output:O,draped:D,receiveShadows:M}=L;p(P,L),C.include(i),C.attributes.add("position","vec3"),C.attributes.add("uv0","vec2");const _=new u("waterColor",e=>e.color);if(S.add("vpos","vec3",{invariant:!0}),P.uniforms.add(_),e(O)){if(D)return P.main.add(h`
5
+ import{isColor as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as o}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{OutputHighlight as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientLighting as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js";import{addMainLightDirection as n,addMainLightIntensity as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDraw as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as g}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{Water as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Water.glsl.js";import{WaterDistortion as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js";import{ColorConversion as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as p,addCameraPosition as w}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as f}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as h}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOLID as b}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as y}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as j}from"../webscene/support/AlphaCutoff.js";function L(L){const C=new y,{vertex:P,fragment:x,varyings:S}=C,{output:O,draped:D,receiveShadows:M}=L;p(P,L),C.include(i),C.attributes.add("position","vec3"),C.attributes.add("uv0","vec2");const _=new u("waterColor",e=>e.color);if(S.add("vpos","vec3",{invariant:!0}),P.uniforms.add(_),e(O)){if(D)return P.main.add(h`
6
6
  if (waterColor.a < ${h.float(j)}) {
7
7
  // Discard this vertex
8
8
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
@@ -40,7 +40,7 @@ import{isColor as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutpu
40
40
  vec4 final = vec4(getSeaColor(n, v, mainLightDirection, waterColor.rgb, mainLightIntensity, localUp, shadow, tangentNormalFoam.w, vPosView.xyz, vpos + localOrigin), waterColor.w);
41
41
 
42
42
  fragColor = delinearizeGamma(final);
43
- outputColorHighlightOID(fragColor, vpos, final.rgb);`);break;case 2:C.include(l,L),C.include(v,L),x.include(r,L),S.add("vuv","vec2"),P.main.add(h`
43
+ outputColorHighlightOLID(fragColor, vpos, final.rgb);`);break;case 2:C.include(l,L),C.include(v,L),x.include(r,L),S.add("vuv","vec2"),P.main.add(h`
44
44
  if (waterColor.a < ${h.float(j)}) {
45
45
  // Discard this vertex
46
46
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
package/config.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.0.0-next.27";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
5
+ import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.0.0-next.29";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import t from"../../Logger.js";import{ensureArrayTyped as r,ensureOneOfType as e,ensureRange as o,isLongFormType as n,ensureLongFormType as i,isOneOf as s,ensureOneOf as a,ensureNArrayTyped as c,ensureArray as f,ensureNArray as p,ensureType as u}from"../ensureType.js";import{get as l}from"../get.js";import{getPropertyMetadata as g,mergeProperty as y}from"../metadata.js";import{set as d}from"../set.js";function m(n={}){return(i,s)=>{if(i===Function.prototype)throw new Error(`Inappropriate use of @property() on a static field: ${i.name}.${s}. Accessor does not support static properties.`);const a=Object.getOwnPropertyDescriptor(i,s),c=g(i,s);a&&(a.get||a.set?(c.get=a.get||c.get,c.set=a.set||c.set):"value"in a&&("value"in n&&t.getLogger("esri.core.accessorSupport.decorators.property").warn(`@property() will redefine the value of "${s}" on "${i.constructor.name}" already defined in the metadata`,n),c.value=n.value=a.value)),null!=n.readOnly&&(c.readOnly=n.readOnly);const f=n.aliasOf;if(f){const t="string"==typeof f?f:f.source,r="string"==typeof f?null:!0===f.overridable;let e;c.dependsOn=[t],c.get=function(){let r=l(this,t);if("function"==typeof r){e||(e=t.split(".").slice(0,-1).join("."));const o=l(this,e);o&&(r=r.bind(o))}return r},c.readOnly||(c.set=r?function(t){this._override(s,t)}:function(r){d(this,t,r)})}const p=n.type,u=n.types;if(!c.cast){let t;p?t=v(p):u&&(t=Array.isArray(u)?r(e(u[0])):e(u)),n.cast=h(n.cast,t)}y(c,n),n.range&&(c.cast=o(c.cast,n.range))}}function j(t,r,e){const o=g(t,e);o.json||(o.json={});let n=o.json;return void 0!==r&&(n.origins||(n.origins={}),n.origins[r]||(n.origins[r]={}),n=n.origins[r]),n}function v(t){let r=0,e=t;if(n(t))return i(t);for(;Array.isArray(e)&&1===e.length&&"string"!=typeof e[0]&&"number"!=typeof e[0];)e=e[0],r++;const o=e;if(s(o))return 0===r?a(o):c(a(o),r);if(1===r)return f(o);if(r>1)return p(o,r);const l=t;return l.from?l.from:u(l)}function h(t,r){if(t||r)return t?r?(e,o)=>r(t(e,o),o):t:r}export{h as composeCasters,m as property,j as propertyJSONMeta};
5
+ import t from"../../Logger.js";import{ensureArrayTyped as e,ensureOneOfType as r,ensureRange as o,isLongFormType as n,ensureLongFormType as s,isOneOf as i,ensureOneOf as a,ensureNArrayTyped as c,ensureArray as f,ensureNArray as p,ensureType as u}from"../ensureType.js";import{get as l}from"../get.js";import{getPropertyMetadata as g,mergeProperty as y}from"../metadata.js";import{set as d}from"../set.js";function m(n={}){return(s,i)=>{if(s===Function.prototype)throw new Error(`Inappropriate use of @property() on a static field: ${s.name}.${i}. Accessor does not support static properties.`);const a=Object.getOwnPropertyDescriptor(s,i),c=g(s,i);a&&(a.get||a.set?(c.get=a.get||c.get,c.set=a.set||c.set):"value"in a&&("value"in n&&t.getLogger("esri.core.accessorSupport.decorators.property").warn(`@property() will redefine the value of "${i}" on "${s.constructor.name}" already defined in the metadata`,n),c.value=n.value=a.value)),null!=n.readOnly&&(c.readOnly=n.readOnly);const f=n.aliasOf;if(f){const t="string"==typeof f?f:f.source,e="string"==typeof f?null:!0===f.overridable;let r;c.dependsOn=[t],c.get=function(){let e=l(this,t);if("function"==typeof e){r||(r=t.split(".").slice(0,-1).join("."));const o=l(this,r);o&&(e=e.bind(o))}return e},c.readOnly||(c.set=e?function(t){this._override(i,t)}:function(e){d(this,t,e)})}const p=n.type,u=n.types;if(!c.cast){let t;p&&!1!==n.useTypeForAutocast?t=v(p):u&&(t=Array.isArray(u)?e(r(u[0])):r(u)),n.cast=h(n.cast,t)}y(c,n),n.range&&(c.cast=o(c.cast,n.range))}}function j(t,e,r){const o=g(t,r);o.json||(o.json={});let n=o.json;return void 0!==e&&(n.origins||(n.origins={}),n.origins[e]||(n.origins[e]={}),n=n.origins[e]),n}function v(t){let e=0,r=t;if(n(t))return s(t);for(;Array.isArray(r)&&1===r.length&&"string"!=typeof r[0]&&"number"!=typeof r[0];)r=r[0],e++;const o=r;if(i(o))return 0===e?a(o):c(a(o),e);if(1===e)return f(o);if(e>1)return p(o,e);const l=t;return l.from?l.from:u(l)}function h(t,e){if(t||e)return t?e?(r,o)=>e(t(r,o),o):t:e}export{h as composeCasters,m as property,j as propertyJSONMeta};
package/core/has.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- let e;const a=globalThis;function has(d){return"function"==typeof e[d]?e[d]=e[d](a):e[d]}e=a.dojoConfig?.has||a.esriConfig?.has?{...a.dojoConfig?.has,...a.esriConfig?.has}:{},has.add=(a,d,r,t)=>{(t||void 0===e[a])&&(e[a]=d),r&&has(a)},has.cache=e,has.add("big-integer-warning-enabled",!0),has.add("esri-deprecation-warnings",!0),has.add("esri-tests-disable-screenshots",!1),has.add("esri-tests-use-full-window",!1),has.add("esri-tests-post-to-influx",!0),has.add("esri-cim-animations-enable-status","enabled"),has.add("esri-cim-animations-spotlight",!1),has.add("esri-cim-animations-freeze-time",!1),(()=>{has.add("host-webworker",void 0!==a.WorkerGlobalScope&&self instanceof a.WorkerGlobalScope);const e="undefined"!=typeof window&&"undefined"!=typeof location&&"undefined"!=typeof document&&window.location===location&&window.document===document;if(has.add("host-browser",e),has.add("host-node",!("object"!=typeof a.process||!a.process.versions?.node||!a.process.versions.v8)),has.add("dom",e),has("host-browser")){const e=navigator,a=e.userAgent,d=e.appVersion,r=parseFloat(d);if(has.add("wp",parseFloat(a.split("Windows Phone")[1])||void 0),has.add("msapp",parseFloat(a.split("MSAppHost/")[1])||void 0),has.add("khtml",d.includes("Konqueror")?r:void 0),has.add("edge",parseFloat(a.split("Edge/")[1])||void 0),has.add("opr",parseFloat(a.split("OPR/")[1])||void 0),has.add("webkit",!has("wp")&&!has("edge")&&parseFloat(a.split("WebKit/")[1])||void 0),has.add("chrome",!has("edge")&&!has("opr")&&parseFloat(a.split("Chrome/")[1])||void 0),has.add("android",!has("wp")&&parseFloat(a.split("Android ")[1])||void 0),has.add("safari",!d.includes("Safari")||has("wp")||has("chrome")||has("android")||has("edge")||has("opr")?void 0:parseFloat(d.split("Version/")[1])),has.add("mac",d.includes("Macintosh")),!has("wp")&&/(iPhone|iPod|iPad)/.test(a)){const e=RegExp.$1.replace(/P/,"p"),d=/OS ([\d_]+)/.test(a)?RegExp.$1:"1",r=parseFloat(d.replace(/_/,".").replaceAll("_",""));has.add(e,r),has.add("ios",r)}has("webkit")||(!a.includes("Gecko")||has("wp")||has("khtml")||has("edge")||has.add("mozilla",r),has("mozilla")&&has.add("ff",parseFloat(a.split("Firefox/")[1]||a.split("Minefield/")[1])||void 0))}})(),(()=>{if(a.navigator){const e=navigator.userAgent,a=/Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini|IEMobile/i.test(e),d=/iPhone/i.test(e);a&&has.add("esri-mobile",a),d&&has.add("esri-iPhone",d),has.add("esri-geolocation",!!navigator.geolocation)}has.add("esri-wasm","WebAssembly"in a),has.add("esri-performance-mode-frames-between-render",20),has.add("esri-force-performance-mode",!1),has.add("esri-shared-array-buffer",()=>{const e="SharedArrayBuffer"in a,d=!1===a.crossOriginIsolated;return e&&!d}),has.add("wasm-simd",()=>{const e=[0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11];return WebAssembly.validate(new Uint8Array(e))}),has.add("esri-atomics","Atomics"in a),has.add("esri-workers","Worker"in a),has.add("web-feat:cache","caches"in a),has.add("esri-workers-arraybuffer-transfer",!has("safari")||Number(has("safari"))>=12),has.add("workers-pool-size",8),has.add("featurelayer-simplify-thresholds",[.5,.5,.5,.5]),has.add("featurelayer-simplify-payload-size-factors",[1,1,4]),has.add("featurelayer-fast-triangulation-enabled",!0),has.add("featurelayer-animation-enabled",!0),has.add("featurelayer-snapshot-enabled",!0),has.add("featurelayer-snapshot-initial-tolerance",0),has.add("featurelayer-snapshot-point-min-threshold",8e4),has.add("featurelayer-snapshot-point-max-threshold",4e5),has.add("featurelayer-snapshot-multipoint-min-threshold",2e4),has.add("featurelayer-snapshot-multipoint-max-threshold",1e5),has.add("featurelayer-snapshot-polygon-min-threshold",2e3),has.add("featurelayer-snapshot-polygon-max-threshold",2e3),has.add("featurelayer-snapshot-polyline-min-threshold",2e3),has.add("featurelayer-snapshot-polyline-max-threshold",2e3),has.add("featurelayer-snapshot-max-vertex-count",25e4),has.add("featurelayer-snapshot-non-hosted-exceedslimit-enabled",!0),has.add("featurelayer-snapshot-concurrency",4),has.add("featurelayer-snapshot-coverage",.1),has.add("featurelayer-query-max-depth",4),has.add("featurelayer-query-pausing-enabled",!1),has.add("featurelayer-query-tile-concurrency",4),has.add("featurelayer-query-tile-max-features",6e5),has.add("featurelayer-advanced-symbols",!1),has.add("featurelayer-pbf",!0),has.add("featurelayer-pbf-statistics",!1),has.add("feature-layers-workers",!0),has.add("feature-polyline-generalization-factor",1),has.add("parquetlayer-full-query-feature-count",2e4),has.add("parquetlayer-hittest-max-feature-count",1),has.add("mapview-transitions-duration",200),has.add("mapview-essential-goto-duration",200),has.add("mapview-srswitch-adjust-rotation-scale-threshold",24e6),has.add("mapserver-pbf-version-support",10.81),has.add("mapservice-popup-identify-max-tolerance",20),has.add("request-queue-concurrency-global",50),has.add("request-queue-concurrency-hosted",16),has.add("request-queue-concurrency-non-hosted",4),has.add("curve-densification-coarse-segments",128),has.add("curve-densification-max-segments",2e3),has.add("curve-densification-min-segments",3),has.add("curve-densification-pixel-deviation",.5),has.add("view-readyState-waiting-delay",1e3),has.add("gradient-depth-bias",.01),has.add("gradient-depth-epsilon",1e-8),has.add("enable-feature:esri-compress-textures",!0),has.add("enable-feature:basemap-groundlayers",!0),has("host-webworker")||has("host-browser")&&(has.add("esri-csp-restrictions",()=>{try{new Function}catch{return!0}return!1}),has.add("esri-url-encodes-apostrophe",()=>{const e=window.document.createElement("a");return e.href="?'",e.href.includes("?%27")}))})();export{has as default};
5
+ let e;const a=globalThis;function has(d){return"function"==typeof e[d]?e[d]=e[d](a):e[d]}e=a.dojoConfig?.has||a.esriConfig?.has?{...a.dojoConfig?.has,...a.esriConfig?.has}:{},has.add=(a,d,r,t)=>{(t||void 0===e[a])&&(e[a]=d),r&&has(a)},has.cache=e,has.add("big-integer-warning-enabled",!0),has.add("esri-deprecation-warnings",!0),has.add("esri-tests-disable-screenshots",!1),has.add("esri-tests-use-full-window",!1),has.add("esri-tests-post-to-influx",!0),has.add("esri-cim-animations-enable-status","enabled"),has.add("esri-cim-animations-spotlight",!1),has.add("esri-cim-animations-freeze-time",!1),(()=>{has.add("host-webworker",void 0!==a.WorkerGlobalScope&&self instanceof a.WorkerGlobalScope);const e="undefined"!=typeof window&&"undefined"!=typeof location&&"undefined"!=typeof document&&window.location===location&&window.document===document;if(has.add("host-browser",e),has.add("host-node",!("object"!=typeof a.process||!a.process.versions?.node||!a.process.versions.v8)),has.add("dom",e),has("host-browser")){const e=navigator,a=e.userAgent,d=e.appVersion,r=parseFloat(d);if(has.add("wp",parseFloat(a.split("Windows Phone")[1])||void 0),has.add("msapp",parseFloat(a.split("MSAppHost/")[1])||void 0),has.add("khtml",d.includes("Konqueror")?r:void 0),has.add("edge",parseFloat(a.split("Edge/")[1])||void 0),has.add("opr",parseFloat(a.split("OPR/")[1])||void 0),has.add("webkit",!has("wp")&&!has("edge")&&parseFloat(a.split("WebKit/")[1])||void 0),has.add("chrome",!has("edge")&&!has("opr")&&parseFloat(a.split("Chrome/")[1])||void 0),has.add("android",!has("wp")&&parseFloat(a.split("Android ")[1])||void 0),has.add("safari",!d.includes("Safari")||has("wp")||has("chrome")||has("android")||has("edge")||has("opr")?void 0:parseFloat(d.split("Version/")[1])),has.add("mac",d.includes("Macintosh")),!has("wp")&&/(iPhone|iPod|iPad)/.test(a)){const e=RegExp.$1.replace(/P/,"p"),d=/OS ([\d_]+)/.test(a)?RegExp.$1:"1",r=parseFloat(d.replace(/_/,".").replaceAll("_",""));has.add(e,r),has.add("ios",r)}has("webkit")||(!a.includes("Gecko")||has("wp")||has("khtml")||has("edge")||has.add("mozilla",r),has("mozilla")&&has.add("ff",parseFloat(a.split("Firefox/")[1]||a.split("Minefield/")[1])||void 0))}})(),(()=>{if(a.navigator){const e=navigator.userAgent,a=/Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini|IEMobile/i.test(e),d=/iPhone/i.test(e);a&&has.add("esri-mobile",a),d&&has.add("esri-iPhone",d),has.add("esri-geolocation",!!navigator.geolocation)}has.add("esri-wasm","WebAssembly"in a),has.add("esri-performance-mode-frames-between-render",20),has.add("esri-force-performance-mode",!1),has.add("esri-shared-array-buffer",()=>{const e="SharedArrayBuffer"in a,d=!1===a.crossOriginIsolated;return e&&!d}),has.add("wasm-simd",()=>{const e=[0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11];return WebAssembly.validate(new Uint8Array(e))}),has.add("esri-atomics","Atomics"in a),has.add("esri-workers","Worker"in a),has.add("web-feat:cache","caches"in a),has.add("esri-workers-arraybuffer-transfer",!has("safari")||Number(has("safari"))>=12),has.add("workers-pool-size",8),has.add("featurelayer-simplify-thresholds",[.5,.5,.5,.5]),has.add("featurelayer-simplify-payload-size-factors",[1,1,4]),has.add("featurelayer-fast-triangulation-enabled",!0),has.add("featurelayer-animation-enabled",!0),has.add("featurelayer-snapshot-enabled",!0),has.add("featurelayer-snapshot-initial-tolerance",0),has.add("featurelayer-snapshot-point-min-threshold",8e4),has.add("featurelayer-snapshot-point-max-threshold",4e5),has.add("featurelayer-snapshot-multipoint-min-threshold",2e4),has.add("featurelayer-snapshot-multipoint-max-threshold",1e5),has.add("featurelayer-snapshot-polygon-min-threshold",2e3),has.add("featurelayer-snapshot-polygon-max-threshold",2e3),has.add("featurelayer-snapshot-polyline-min-threshold",2e3),has.add("featurelayer-snapshot-polyline-max-threshold",2e3),has.add("featurelayer-snapshot-max-vertex-count",25e4),has.add("featurelayer-snapshot-non-hosted-exceedslimit-enabled",!0),has.add("featurelayer-snapshot-concurrency",4),has.add("featurelayer-snapshot-coverage",.1),has.add("featurelayer-query-max-depth",4),has.add("featurelayer-query-pausing-enabled",!1),has.add("featurelayer-query-tile-concurrency",4),has.add("featurelayer-query-tile-max-features",6e5),has.add("featurelayer-advanced-symbols",!1),has.add("featurelayer-pbf",!0),has.add("featurelayer-pbf-statistics",!1),has.add("feature-layers-workers",!0),has.add("feature-polyline-generalization-factor",1),has.add("parquetlayer-full-query-feature-count",2e4),has.add("parquetlayer-hittest-max-feature-count",1),has.add("mapview-transitions-duration",200),has.add("mapview-essential-goto-duration",200),has.add("mapview-srswitch-adjust-rotation-scale-threshold",24e6),has.add("mapserver-pbf-version-support",10.81),has.add("mapservice-popup-identify-max-tolerance",20),has.add("request-queue-concurrency-global",50),has.add("request-queue-concurrency-hosted",16),has.add("request-queue-concurrency-non-hosted",4),has.add("curve-densification-coarse-segments",128),has.add("curve-densification-max-segments",2e3),has.add("curve-densification-min-segments",3),has.add("curve-densification-pixel-deviation",.5),has.add("view-readyState-waiting-delay",1e3),has.add("gradient-depth-bias",.01),has.add("gradient-depth-epsilon",1e-8),has.add("enable-feature:esri-compress-textures",!0),has.add("enable-feature:basemap-groundlayers",!0),!has("host-webworker")&&has("host-browser")&&(has.add("esri-csp-restrictions",()=>{try{new Function}catch{return!0}return!1}),has.add("esri-url-encodes-apostrophe",()=>{const e=window.document.createElement("a");return e.href="?'",e.href.includes("?%27")}))})();export{has as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{convertUnit as r,isProjectedWKT as t,getMetersPerUnit as s,lengthToDegrees as i}from"../core/units.js";import{property as o,subclass as c}from"../core/accessorSupport/decorators.js";import{getReferenceEllipsoid as n}from"./ellipsoidUtils.js";import a from"./Point.js";import p from"./Polygon.js";import l from"./SpatialReference.js";import{directGeodeticSolver as d}from"./support/geodesicUtils.js";import{webMercatorToGeographic as h,geographicToWebMercator as u}from"./support/webMercatorUtils.js";import m from"./support/WKIDUnitConversion.js";var f;let g=f=class extends p{constructor(e){super(e),this.center=null,this.geodesic=!1,this.numberOfPoints=60,this.radius=1e3,this.radiusUnit="meters"}initialize(){const e=this.center,o=this.numberOfPoints;if(this.hasZ=e?.hasZ??!1,0!==this.rings.length||!e)return;const c=r(this.radius,this.radiusUnit,"meters"),a=e.spatialReference;let p,l="geographic";if(a.isWebMercator?l="webMercator":(null!=(a.wkid&&m[a.wkid])||(a.wkt2||a.wkt)&&t(a.wkt2||a.wkt))&&(l="projected"),this.geodesic){let r;switch(l){case"webMercator":r=h(e);break;case"projected":console.error("Creating a geodesic circle requires the center to be specified in web mercator or geographic coordinate system");break;case"geographic":r=e}p=this._createGeodesicCircle(r,c,o),"webMercator"===l&&(p=u(p))}else{let r;"webMercator"===l||"projected"===l?r=c/s(e.spatialReference):"geographic"===l&&(r=i(c,"meters",n(e.spatialReference).radius)),p=this._createPlanarCircle(e,r,o)}this.spatialReference=p.spatialReference,this.addRing(p.rings[0])}clone(){const{center:e,numberOfPoints:r,radius:t,radiusUnit:s,geodesic:i}=this;return new f({center:e?.clone(),numberOfPoints:r,radius:t,radiusUnit:s,geodesic:i})}_createGeodesicCircle(e,r,t){const s=[],i=[e.x,e.y];for(let o=0;o<360;o+=360/t){const t=this.hasZ?[0,0,e.z??0]:[0,0];d(t,i,o,r,l.WGS84),s.push(t)}return s.push(s[0]),new p({rings:[s]})}_createPlanarCircle(e,r,t){const s=[],i=2*Math.PI/t;for(let o=0;o<t;++o){const t=i*o,c=[e.x+Math.cos(-t)*r,e.y+Math.sin(-t)*r];this.hasZ&&c.push(e.z??0),s.push(c)}return s.push(s[0]),new p({spatialReference:e.spatialReference,rings:[s]})}};e([o({type:a})],g.prototype,"center",void 0),e([o()],g.prototype,"geodesic",void 0),e([o()],g.prototype,"numberOfPoints",void 0),e([o()],g.prototype,"radius",void 0),e([o()],g.prototype,"radiusUnit",void 0),g=f=e([c("esri.geometry.Circle")],g);const b=g;export{b as default};
5
+ import{__decorate as e}from"tslib";import{convertUnit as t,isProjectedWKT as r,getMetersPerUnit as s,lengthToDegrees as i}from"../core/units.js";import{property as o,subclass as c}from"../core/accessorSupport/decorators.js";import{ensureType as n}from"../core/accessorSupport/ensureType.js";import{getReferenceEllipsoid as a}from"./ellipsoidUtils.js";import p from"./Point.js";import l from"./Polygon.js";import u from"./SpatialReference.js";import{directGeodeticSolver as h}from"./support/geodesicUtils.js";import{webMercatorToGeographic as d,geographicToWebMercator as m}from"./support/webMercatorUtils.js";import f from"./support/WKIDUnitConversion.js";var g;let b=g=class extends l{constructor(e){super(e),this.geodesic=!1,this.numberOfPoints=60,this.radius=1e3,this.radiusUnit="meters"}initialize(){const e=this.center,o=this.numberOfPoints;if(this.hasZ=e?.hasZ??!1,0!==this.rings.length||!e)return;const c=t(this.radius,this.radiusUnit,"meters"),n=e.spatialReference;let p,l="geographic";if(n.isWebMercator?l="webMercator":(null!=(n.wkid&&f[n.wkid])||(n.wkt2||n.wkt)&&r(n.wkt2||n.wkt))&&(l="projected"),this.geodesic){let t;switch(l){case"webMercator":t=d(e);break;case"projected":console.error("Creating a geodesic circle requires the center to be specified in web mercator or geographic coordinate system");break;case"geographic":t=e}p=this._createGeodesicCircle(t,c,o),"webMercator"===l&&(p=m(p))}else{let t;"webMercator"===l||"projected"===l?t=c/s(e.spatialReference):"geographic"===l&&(t=i(c,"meters",a(e.spatialReference).radius)),p=this._createPlanarCircle(e,t,o)}this.spatialReference=p.spatialReference,this.addRing(p.rings[0])}get center(){return this._get("center")}set center(e){this._set("center",n(p,e))}clone(){const{center:e,numberOfPoints:t,radius:r,radiusUnit:s,geodesic:i}=this;return new g({center:e?.clone(),numberOfPoints:t,radius:r,radiusUnit:s,geodesic:i})}_createGeodesicCircle(e,t,r){const s=[],i=[e.x,e.y];for(let o=0;o<360;o+=360/r){const r=this.hasZ?[0,0,e.z??0]:[0,0];h(r,i,o,t,u.WGS84),s.push(r)}return s.push(s[0]),new l({rings:[s]})}_createPlanarCircle(e,t,r){const s=[],i=2*Math.PI/r;for(let o=0;o<r;++o){const r=i*o,c=[e.x+Math.cos(-r)*t,e.y+Math.sin(-r)*t];this.hasZ&&c.push(e.z??0),s.push(c)}return s.push(s[0]),new l({spatialReference:e.spatialReference,rings:[s]})}};e([o({type:p,useTypeForAutocast:!1,value:null})],b.prototype,"center",null),e([o()],b.prototype,"geodesic",void 0),e([o()],b.prototype,"numberOfPoints",void 0),e([o()],b.prototype,"radius",void 0),e([o()],b.prototype,"radiusUnit",void 0),b=g=e([c("esri.geometry.Circle")],b);const w=b;export{w as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as o}from"tslib";import r from"../../Color.js";import{ClonableMixin as e}from"../../core/Clonable.js";import{JSONSupport as t}from"../../core/JSONSupport.js";import{property as s,subclass as l}from"../../core/accessorSupport/decorators.js";import i from"./MeshTexture.js";import n from"./MeshTextureTransform.js";import{getMeshMaterialCloneContext as a,addMeshTextureCloneContext as p}from"./meshUtils/meshCloneUtils.js";let m=class extends(e(t)){constructor(o){super(o),this.color=null,this.colorTexture=null,this.colorTextureTransform=null,this.normalTexture=void 0,this.normalTextureTransform=void 0,this.alphaMode="auto",this.alphaCutoff=.5,this.doubleSided=!0}clone(o){const r=a(o),e=r?.materialMap?.get(this);if(e)return e;const t=super.clone(p(o));return r?.materialMap?.set(this,t),t}get memoryUsage(){return this.getMemoryUsage()}getMemoryUsage(){let o=0;return o+=null!=this.color?16:0,null!=this.colorTexture&&(o+=this.colorTexture.memoryUsage),o+=null!=this.colorTextureTransform?20:0,null!=this.normalTexture&&(o+=this.normalTexture.memoryUsage),o+=null!=this.normalTextureTransform?20:0,o}};o([s({type:r,json:{write:!0}})],m.prototype,"color",void 0),o([s({type:i,json:{write:!0}})],m.prototype,"colorTexture",void 0),o([s({type:n,json:{write:!0}})],m.prototype,"colorTextureTransform",void 0),o([s({type:i,json:{write:!0}})],m.prototype,"normalTexture",void 0),o([s({type:n,json:{write:!0}})],m.prototype,"normalTextureTransform",void 0),o([s({nonNullable:!0,json:{write:!0}})],m.prototype,"alphaMode",void 0),o([s({nonNullable:!0,json:{write:!0}})],m.prototype,"alphaCutoff",void 0),o([s({nonNullable:!0,json:{write:!0}})],m.prototype,"doubleSided",void 0),m=o([l("esri.geometry.support.MeshMaterial")],m);export{m as default};
5
+ import{__decorate as e}from"tslib";import r from"../../Color.js";import{ClonableMixin as o}from"../../core/Clonable.js";import{JSONSupport as t}from"../../core/JSONSupport.js";import{property as l,subclass as s}from"../../core/accessorSupport/decorators.js";import n from"./MeshTexture.js";import u from"./MeshTextureTransform.js";import{getMeshMaterialCloneContext as i,addMeshTextureCloneContext as a}from"./meshUtils/meshCloneUtils.js";let m=class extends(o(t)){constructor(e){super(e),this.color=null,this.colorTextureTransform=null,this.normalTextureTransform=void 0,this.alphaMode="auto",this.alphaCutoff=.5,this.doubleSided=!0}get colorTexture(){return this._get("colorTexture")}set colorTexture(e){this._set("colorTexture",null==e?null:n.from(e))}get normalTexture(){return this._get("normalTexture")}set normalTexture(e){this._set("normalTexture",null==e?null:n.from(e))}clone(e){const r=i(e),o=r?.materialMap?.get(this);if(o)return o;const t=super.clone(a(e));return r?.materialMap?.set(this,t),t}get memoryUsage(){return this.getMemoryUsage()}getMemoryUsage(){let e=0;return e+=null!=this.color?16:0,null!=this.colorTexture&&(e+=this.colorTexture.memoryUsage),e+=null!=this.colorTextureTransform?20:0,null!=this.normalTexture&&(e+=this.normalTexture.memoryUsage),e+=null!=this.normalTextureTransform?20:0,e}};e([l({type:r,json:{write:!0}})],m.prototype,"color",void 0),e([l({type:n,json:{write:!0},value:null})],m.prototype,"colorTexture",null),e([l({type:u,json:{write:!0}})],m.prototype,"colorTextureTransform",void 0),e([l({type:n,json:{write:!0},value:null})],m.prototype,"normalTexture",null),e([l({type:u,json:{write:!0}})],m.prototype,"normalTextureTransform",void 0),e([l({nonNullable:!0,json:{write:!0}})],m.prototype,"alphaMode",void 0),e([l({nonNullable:!0,json:{write:!0}})],m.prototype,"alphaCutoff",void 0),e([l({nonNullable:!0,json:{write:!0}})],m.prototype,"doubleSided",void 0),m=e([s("esri.geometry.support.MeshMaterial")],m);export{m as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import s from"../../Color.js";import{property as t,subclass as o}from"../../core/accessorSupport/decorators.js";import r from"./MeshMaterial.js";import i from"./MeshTexture.js";import l from"./MeshTextureTransform.js";let u=class extends r{constructor(e){super(e),this.emissiveColor=null,this.emissiveTexture=null,this.emissiveTextureTransform=void 0,this.occlusionTexture=null,this.occlusionTextureTransform=void 0,this.metallic=1,this.roughness=1,this.metallicRoughnessTexture=null,this.metallicRoughnessTextureTransform=void 0}getMemoryUsage(){let e=super.getMemoryUsage();return e+=null!=this.emissiveColor?16:0,null!=this.emissiveTexture&&(e+=this.emissiveTexture.memoryUsage),e+=null!=this.emissiveTextureTransform?20:0,null!=this.occlusionTexture&&(e+=this.occlusionTexture.memoryUsage),e+=null!=this.occlusionTextureTransform?20:0,null!=this.metallicRoughnessTexture&&(e+=this.metallicRoughnessTexture.memoryUsage),e+=null!=this.metallicRoughnessTextureTransform?20:0,e}};e([t({type:s,json:{write:!0}})],u.prototype,"emissiveColor",void 0),e([t({type:i,json:{write:!0}})],u.prototype,"emissiveTexture",void 0),e([t({type:l,json:{write:!0}})],u.prototype,"emissiveTextureTransform",void 0),e([t({type:i,json:{write:!0}})],u.prototype,"occlusionTexture",void 0),e([t({type:l,json:{write:!0}})],u.prototype,"occlusionTextureTransform",void 0),e([t({type:Number,nonNullable:!0,json:{write:!0},range:{min:0,max:1}})],u.prototype,"metallic",void 0),e([t({type:Number,nonNullable:!0,json:{write:!0},range:{min:0,max:1}})],u.prototype,"roughness",void 0),e([t({type:i,json:{write:!0}})],u.prototype,"metallicRoughnessTexture",void 0),e([t({type:l,json:{write:!0}})],u.prototype,"metallicRoughnessTextureTransform",void 0),u=e([o("esri.geometry.support.MeshMaterialMetallicRoughness")],u);export{u as default};
5
+ import{__decorate as e}from"tslib";import t from"../../Color.js";import{property as s,subclass as r}from"../../core/accessorSupport/decorators.js";import o from"./MeshMaterial.js";import i from"./MeshTexture.js";import l from"./MeshTextureTransform.js";let u=class extends o{constructor(e){super(e),this.emissiveColor=null,this.emissiveTextureTransform=void 0,this.occlusionTextureTransform=void 0,this.metallic=1,this.roughness=1,this.metallicRoughnessTextureTransform=void 0}get emissiveTexture(){return this._get("emissiveTexture")}set emissiveTexture(e){this._set("emissiveTexture",null==e?null:i.from(e))}get occlusionTexture(){return this._get("occlusionTexture")}set occlusionTexture(e){this._set("occlusionTexture",null==e?null:i.from(e))}get metallicRoughnessTexture(){return this._get("metallicRoughnessTexture")}set metallicRoughnessTexture(e){this._set("metallicRoughnessTexture",null==e?null:i.from(e))}getMemoryUsage(){let e=super.getMemoryUsage();return e+=null!=this.emissiveColor?16:0,null!=this.emissiveTexture&&(e+=this.emissiveTexture.memoryUsage),e+=null!=this.emissiveTextureTransform?20:0,null!=this.occlusionTexture&&(e+=this.occlusionTexture.memoryUsage),e+=null!=this.occlusionTextureTransform?20:0,null!=this.metallicRoughnessTexture&&(e+=this.metallicRoughnessTexture.memoryUsage),e+=null!=this.metallicRoughnessTextureTransform?20:0,e}};e([s({type:t,json:{write:!0}})],u.prototype,"emissiveColor",void 0),e([s({type:i,json:{write:!0},value:null})],u.prototype,"emissiveTexture",null),e([s({type:l,json:{write:!0}})],u.prototype,"emissiveTextureTransform",void 0),e([s({type:i,json:{write:!0},value:null})],u.prototype,"occlusionTexture",null),e([s({type:l,json:{write:!0}})],u.prototype,"occlusionTextureTransform",void 0),e([s({type:Number,nonNullable:!0,json:{write:!0},range:{min:0,max:1}})],u.prototype,"metallic",void 0),e([s({type:Number,nonNullable:!0,json:{write:!0},range:{min:0,max:1}})],u.prototype,"roughness",void 0),e([s({type:i,json:{write:!0},value:null})],u.prototype,"metallicRoughnessTexture",null),e([s({type:l,json:{write:!0}})],u.prototype,"metallicRoughnessTextureTransform",void 0),u=e([r("esri.geometry.support.MeshMaterialMetallicRoughness")],u);export{u as default};
package/interfaces.d.ts CHANGED
@@ -20079,6 +20079,12 @@ declare namespace __esri {
20079
20079
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ElevationLayer.html#url Read more...}
20080
20080
  */
20081
20081
  url: string | nullish;
20082
+ /**
20083
+ * The version of ArcGIS Server in which the elevation service (image service) is published.
20084
+ *
20085
+ * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ElevationLayer.html#version Read more...}
20086
+ */
20087
+ readonly version: number;
20082
20088
  /**
20083
20089
  * ElevationLayer is a tile layer used for rendering elevations in {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html SceneViews}.
20084
20090
  *
@@ -48137,7 +48143,7 @@ declare namespace __esri {
48137
48143
  */
48138
48144
  declare useViewTime: ImageryTileMixin["useViewTime"];
48139
48145
  /**
48140
- * The version of Web Coverage Service currently being used.
48146
+ * The version of [Web Coverage Service](https://www.ogc.org/standards/wcs) used.
48141
48147
  *
48142
48148
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-WCSLayer.html#version Read more...}
48143
48149
  */
@@ -48438,7 +48444,7 @@ declare namespace __esri {
48438
48444
  */
48439
48445
  useViewTime?: ImageryTileMixinProperties["useViewTime"];
48440
48446
  /**
48441
- * The version of Web Coverage Service currently being used.
48447
+ * The version of [Web Coverage Service](https://www.ogc.org/standards/wcs) used.
48442
48448
  *
48443
48449
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-WCSLayer.html#version Read more...}
48444
48450
  */
@@ -49779,7 +49785,7 @@ declare namespace __esri {
49779
49785
  */
49780
49786
  useViewTime: boolean;
49781
49787
  /**
49782
- * Version of the [WMS specification](http://www.opengeospatial.org/standards/wms) to use.
49788
+ * The version of the [WMS specification](https://www.ogc.org/standards/wms/) used.
49783
49789
  *
49784
49790
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-WMSLayer.html#version Read more...}
49785
49791
  */
@@ -50063,7 +50069,7 @@ declare namespace __esri {
50063
50069
  */
50064
50070
  useViewTime?: boolean;
50065
50071
  /**
50066
- * Version of the [WMS specification](http://www.opengeospatial.org/standards/wms) to use.
50072
+ * The version of the [WMS specification](https://www.ogc.org/standards/wms/) used.
50067
50073
  *
50068
50074
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-WMSLayer.html#version Read more...}
50069
50075
  */
@@ -50185,7 +50191,7 @@ declare namespace __esri {
50185
50191
  */
50186
50192
  url: string;
50187
50193
  /**
50188
- * Version of the [WMTS specification](http://www.opengeospatial.org/standards/wmts) to use.
50194
+ * The version of the [WMTS specification](https://www.ogc.org/standards/wmts/) used.
50189
50195
  *
50190
50196
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-WMTSLayer.html#version Read more...}
50191
50197
  */
@@ -50332,7 +50338,7 @@ declare namespace __esri {
50332
50338
  */
50333
50339
  url?: string;
50334
50340
  /**
50335
- * Version of the [WMTS specification](http://www.opengeospatial.org/standards/wmts) to use.
50341
+ * The version of the [WMTS specification](https://www.ogc.org/standards/wmts/) used.
50336
50342
  *
50337
50343
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-WMTSLayer.html#version Read more...}
50338
50344
  */
@@ -53533,7 +53539,7 @@ declare namespace __esri {
53533
53539
  }
53534
53540
 
53535
53541
  export interface ServiceEditsIdentifierFields {
53536
- globalIdField: string | nullish;
53542
+ globalIdField?: string | nullish;
53537
53543
  objectIdField: string;
53538
53544
  }
53539
53545
 
@@ -54273,7 +54279,7 @@ declare namespace __esri {
54273
54279
  */
54274
54280
  constructor(properties?: FieldsContentProperties);
54275
54281
  /**
54276
- * Array of {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-FieldInfo.html fieldInfos}.
54282
+ * Array of {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-FieldInfo.html `fieldInfos`}.
54277
54283
  *
54278
54284
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-FieldsContent.html#fieldInfos Read more...}
54279
54285
  */
@@ -54311,7 +54317,7 @@ declare namespace __esri {
54311
54317
  */
54312
54318
  description?: string | nullish;
54313
54319
  /**
54314
- * Array of {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-FieldInfo.html fieldInfos}.
54320
+ * Array of {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-FieldInfo.html `fieldInfos`}.
54315
54321
  *
54316
54322
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-FieldsContent.html#fieldInfos Read more...}
54317
54323
  */
@@ -105914,6 +105920,14 @@ declare namespace __esri {
105914
105920
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#animation Read more...}
105915
105921
  */
105916
105922
  animation: ViewAnimation | nullish;
105923
+ /**
105924
+ * Indicates whether animations are enabled in the view.
105925
+ *
105926
+ * @default true
105927
+ *
105928
+ * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#animationsEnabled Read more...}
105929
+ */
105930
+ animationsEnabled: boolean;
105917
105931
  /**
105918
105932
  * Represents the view for a single basemap after it has been added to the map.
105919
105933
  *
@@ -106357,6 +106371,12 @@ declare namespace __esri {
106357
106371
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#animation Read more...}
106358
106372
  */
106359
106373
  animation?: ViewAnimation | nullish;
106374
+ /**
106375
+ * Indicates whether animations are enabled in the view.
106376
+ *
106377
+ * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#animationsEnabled Read more...}
106378
+ */
106379
+ animationsEnabled?: boolean;
106360
106380
  /**
106361
106381
  * Represents the view for a single basemap after it has been added to the map.
106362
106382
  *
@@ -106741,14 +106761,6 @@ declare namespace __esri {
106741
106761
  }
106742
106762
 
106743
106763
  export class View2D {
106744
- /**
106745
- * Indicates whether animations are enabled in the view.
106746
- *
106747
- * @default true
106748
- *
106749
- * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#animationsEnabled Read more...}
106750
- */
106751
- animationsEnabled: boolean;
106752
106764
  /**
106753
106765
  * The ARIA attributes for the view container.
106754
106766
  *
@@ -107068,12 +107080,6 @@ declare namespace __esri {
107068
107080
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#analyses Read more...}
107069
107081
  */
107070
107082
  analyses?: CollectionProperties<Analysis>;
107071
- /**
107072
- * Indicates whether animations are enabled in the view.
107073
- *
107074
- * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#animationsEnabled Read more...}
107075
- */
107076
- animationsEnabled?: boolean;
107077
107083
  /**
107078
107084
  * The ARIA attributes for the view container.
107079
107085
  *
package/kernel.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.0";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.0.0-next.27",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
5
+ import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.0";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.0.0-next.29",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{isArrayLike as e}from"../../../core/arrayUtils.js";import{deg2rad as t}from"../../../core/mathUtils.js";import{clone as a,zeros as r}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import i from"../../../geometry/Point.js";import{isElevationSource as n}from"../core/ElevationSourceDefinitions.js";import{rectifyMapPointPanoramic as o,rectifyMapPoint as c}from"./rectifyMapPoint.js";import{getWebMercatorScalingFactor as s,hasAngles as f,convertPixelToHeadingPitch as l,isElevationSampler as m,reducerFn as p,validatePixelsToTransform as h,validateRotationMatrix as u,computeFarplaneVertices as y,computeHFOVAndVFOV as d,vecToPoint as w,or as g,isUpdateElevationWithElevationSource as v,scaleAndAddWithFactor as x,computeNewReferenceCoordinates as M,projectiveTransform as R}from"./utils.js";import{worldToImage as A}from"./worldToImage.js";import{viewingLimit as P}from"../../../widgets/OrientedImageryViewer/constants.js";async function V(e,t,a){const{verticalFieldOfView:r,imageBoundaries:i,scalingFactor:n,farPlaneVertices:o,cameraLocation:c,pixelsToTransform:s,vecToPoint:f,pixelDepths:l}=S(e,t),m=new Array;return await j(s,o,i,f,t,m,c,n,r,a,l),Array.isArray(e)?m:m[0]}async function j(e,t,a,r,n,o,s,f,l,p,h){let u=n.averageElevation;const y=e.length;for(let d=0;d<y;d+=1){const y=e.at(d),w=L(t,a,y,r,n),x=h?.at(d);if("number"==typeof x){const e=F(w,s,f),t=x*f,a=[s[0]+e[0]*t,s[1]+e[1]*t,s[2]+e[2]*x];o.push(new i(a,n.cameraLocation.spatialReference));continue}if(p&&g(m(p.elevationSample),v(p))){u=(await c(r(w),{x:y[0],y:y[1]},{...n,...p,farPlaneVertices:t.map(r)}))[2]}o.push(r(b(w,s,f,u,n.cameraPitch,l)))}}function F(e,t,a){const i=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2],c=Math.hypot(i,n)/a,s=Math.hypot(o,c)*a,f=r();return f[0]=i/s,f[1]=n/s,f[2]=o/s,f[2]=f[2]*a,f}function b(e,t,r,i,n,o){let c=a(e);const s=F(e,t,r);if(T(e[2],i,n,o)){const e=Math.abs((t[2]-i)/-s[2])*r;c=x(t,s,e,r)}else c[2]=i;return c}function T(e,t,a,r){return e<t||a+r/2<P}function L(e,t,a,r,i){let n=null;const o=9;let c,s=0,f=e,l=t;for(;s<=o;){const e=D(a,l,f,i);if(c=e.error,n=e.transformedPoint,g(c<=1,s===o))break;f=M(f,c,a,t),l=O(f,r,i),s++}return n}function O(e,t,a){return A(e.map(t),a).map(({x:e,y:t})=>[e,t,1])}function D(e,t,a,r){const{cameraLocation:n}=r,o=R(e,t,a),{x:c,y:s}=A(new i(o,n.spatialReference),r);return{transformedPoint:o,error:E(e,[c,s,1])}}function E(e,t){return Math.abs(e[0]-t[0])+Math.abs(e[1]-t[1])}function S(t,a){const r=e(t)||"items"in t?t:[t],{cameraLocation:n,rotationMatrix:o}=a;if(h(r,n),u(o),9!==o?.length)throw new Error("Rotation matrix is not provided or is not a valid 3x3 matrix");const c=s(n.y,n.spatialReference),f=y({...a,scalingFactor:c}),l=A(f.map(e=>new i(e,n.spatialReference)),a),{vfov:m}=d(a.horizontalFieldOfView,a.verticalFieldOfView,a.cameraRoll);return{cameraLocation:n.toArray(),imageBoundaries:l.map(({x:e,y:t})=>[e,t,1]),verticalFieldOfView:m,farPlaneVertices:f,scalingFactor:c,pixelsToTransform:r.map(e=>[e.x,e.y,1]),vecToPoint:w(n.spatialReference),pixelDepths:r.map(e=>B(e)?e.depth:void 0)}}function B(e){return"depth"in e&&"number"==typeof e.depth}async function H(e,a,r){const{cameraHeading:c,cameraLocation:h,farDistance:u,imageHeight:y,imageWidth:d,verticalFieldOfView:w}=a,g=s(h.y,h.spatialReference),v=u*g,x=new Array,[M,R,A]=h.toArray(),P=Array.isArray(e)?e:[e];for(const s of P){let e,P;const V=B(s),j=V?s.depth*g:v;if(f(s))e=s.heading,P=s.pitch;else{const t=l({x:s.x,y:s.y},d,y);e=t.heading,P=t.pitch}e=(e+c)%360;const F=[M+Math.sin(t(e))*Math.sin(t(P))*j,R+Math.cos(t(e))*Math.sin(t(P))*j,A+-Math.cos(t(P))*(V?s.depth:u)];if(V){x.push(new i(F,h.spatialReference));continue}let T=a.averageElevation;if(r&&(n(r)||m(r.elevationSample))){T=(await o(new i(F,h.spatialReference),{heading:e,pitch:P},{...a,...r,farPlaneVertices:p(u,u).map(([e,t])=>new i([h.x+e,h.y+t],h.spatialReference))}))[2]}x.push(new i(b(F,h.toArray(),g,T,P,w),h.spatialReference))}return Array.isArray(e)?x:x[0]}export{V as imageToWorld,H as imageToWorldPanoramic};
5
+ import{isArrayLike as e}from"../../../core/arrayUtils.js";import{deg2rad as t}from"../../../core/mathUtils.js";import{clone as a,zeros as r}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import i from"../../../geometry/Point.js";import{isElevationSource as n}from"../core/ElevationSourceDefinitions.js";import{rectifyMapPointPanoramic as o,rectifyMapPoint as c}from"./rectifyMapPoint.js";import{getWebMercatorScalingFactor as s,hasAngles as f,convertPixelToHeadingPitch as l,isElevationSampler as m,reducerFn as p,validatePixelsToTransform as h,validateRotationMatrix as u,computeFarplaneVertices as y,computeHFOVAndVFOV as d,vecToPoint as w,or as g,isUpdateElevationWithElevationSource as v,scaleAndAddWithFactor as x,computeNewReferenceCoordinates as M,projectiveTransform as R}from"./utils.js";import{worldToImage as A}from"./worldToImage.js";import{viewingLimit as P}from"../../../widgets/OrientedImageryViewer/constants.js";async function V(e,t,a){const{verticalFieldOfView:r,imageBoundaries:i,scalingFactor:n,farPlaneVertices:o,cameraLocation:c,pixelsToTransform:s,vecToPoint:f,pixelDepths:l}=S(e,t),m=new Array;return await j(s,o,i,f,t,m,c,n,r,a,l),Array.isArray(e)?m:m[0]}async function j(e,t,a,r,n,o,s,f,l,m,p){let h=n.averageElevation;const u=e.length;for(let y=0;y<u;y+=1){const u=e.at(y),d=L(t,a,u,r,n),w=p?.at(y);if("number"==typeof w){const e=F(d,s,f),t=w*f,a=[s[0]+e[0]*t,s[1]+e[1]*t,s[2]+e[2]*w];o.push(new i(a,n.cameraLocation.spatialReference));continue}if(m&&g("elevationSample"in m,v(m))){h=(await c(r(d),{x:u[0],y:u[1]},{...n,...m,farPlaneVertices:t.map(r)}))[2]}o.push(r(b(d,s,f,h,n.cameraPitch,l)))}}function F(e,t,a){const i=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2],c=Math.hypot(i,n)/a,s=Math.hypot(o,c)*a,f=r();return f[0]=i/s,f[1]=n/s,f[2]=o/s,f[2]=f[2]*a,f}function b(e,t,r,i,n,o){let c=a(e);const s=F(e,t,r);if(T(e[2],i,n,o)){const e=Math.abs((t[2]-i)/-s[2])*r;c=x(t,s,e,r)}else c[2]=i;return c}function T(e,t,a,r){return e<t||a+r/2<P}function L(e,t,a,r,i){let n=null;const o=9;let c,s=0,f=e,l=t;for(;s<=o;){const e=D(a,l,f,i);if(c=e.error,n=e.transformedPoint,g(c<=1,s===o))break;f=M(f,c,a,t),l=O(f,r,i),s++}return n}function O(e,t,a){return A(e.map(t),a).map(({x:e,y:t})=>[e,t,1])}function D(e,t,a,r){const{cameraLocation:n}=r,o=R(e,t,a),{x:c,y:s}=A(new i(o,n.spatialReference),r);return{transformedPoint:o,error:E(e,[c,s,1])}}function E(e,t){return Math.abs(e[0]-t[0])+Math.abs(e[1]-t[1])}function S(t,a){const r=e(t)||"items"in t?t:[t],{cameraLocation:n,rotationMatrix:o}=a;if(h(r,n),u(o),9!==o?.length)throw new Error("Rotation matrix is not provided or is not a valid 3x3 matrix");const c=s(n.y,n.spatialReference),f=y({...a,scalingFactor:c}),l=A(f.map(e=>new i(e,n.spatialReference)),a),{vfov:m}=d(a.horizontalFieldOfView,a.verticalFieldOfView,a.cameraRoll);return{cameraLocation:n.toArray(),imageBoundaries:l.map(({x:e,y:t})=>[e,t,1]),verticalFieldOfView:m,farPlaneVertices:f,scalingFactor:c,pixelsToTransform:r.map(e=>[e.x,e.y,1]),vecToPoint:w(n.spatialReference),pixelDepths:r.map(e=>B(e)?e.depth:void 0)}}function B(e){return"depth"in e&&"number"==typeof e.depth}async function H(e,a,r){const{cameraHeading:c,cameraLocation:h,farDistance:u,imageHeight:y,imageWidth:d,verticalFieldOfView:w}=a,g=s(h.y,h.spatialReference),v=u*g,x=new Array,[M,R,A]=h.toArray(),P=Array.isArray(e)?e:[e];for(const s of P){let e,P;const V=B(s),j=V?s.depth*g:v;if(f(s))e=s.heading,P=s.pitch;else{const t=l({x:s.x,y:s.y},d,y);e=t.heading,P=t.pitch}e=(e+c)%360;const F=[M+Math.sin(t(e))*Math.sin(t(P))*j,R+Math.cos(t(e))*Math.sin(t(P))*j,A+-Math.cos(t(P))*(V?s.depth:u)];if(V){x.push(new i(F,h.spatialReference));continue}let T=a.averageElevation;if(r&&(n(r)||m(r.elevationSample))){T=(await o(new i(F,h.spatialReference),{heading:e,pitch:P},{...a,...r,farPlaneVertices:p(u,u).map(([e,t])=>new i([h.x+e,h.y+t],h.spatialReference))}))[2]}x.push(new i(b(F,h.toArray(),g,T,P,w),h.spatialReference))}return Array.isArray(e)?x:x[0]}export{V as imageToWorld,H as imageToWorldPanoramic};