@arcgis/core 6.0.0-next.32 → 6.0.0-next.34

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 (142) hide show
  1. package/README.md +2 -2
  2. package/applications/Urban/meshUtils.d.ts +1 -0
  3. package/applications/Urban/meshUtils.js +1 -1
  4. package/assets/esri/core/workers/RemoteClient.js +1 -1
  5. package/assets/esri/core/workers/chunks/{f3dc0bc0e00635855a7a.js → 03daf6f235c6edef6268.js} +1 -1
  6. package/assets/esri/core/workers/chunks/04a1d08c3b5b1dc7628f.js +1 -0
  7. package/assets/esri/core/workers/chunks/{1eaf8bfdd3765a90ccc2.js → 0523f893870a1546d7d9.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{72d20d3957d612f86431.js → 0a508e25ec05363e1f04.js} +1 -1
  9. package/assets/esri/core/workers/chunks/{84038dd85005fea413eb.js → 139e753d95cfc9470e74.js} +1 -1
  10. package/assets/esri/core/workers/chunks/15950c2fb173b62ee0ec.js +1 -0
  11. package/assets/esri/core/workers/chunks/{418addce122dbb8897b4.js → 1a614bac5db42c6263f8.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{58c3ae6030def2ed5f31.js → 1b17f5f720f6cf3f6d73.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{f9dc38761b314d33890f.js → 1f51567f47c2e2fc8a23.js} +1 -1
  14. package/assets/esri/core/workers/chunks/2211ff0a1f1ae8100231.js +1 -0
  15. package/assets/esri/core/workers/chunks/24ada9511b074dc5ae27.js +1 -0
  16. package/assets/esri/core/workers/chunks/29c610ce1c81ebb84a6b.js +1 -0
  17. package/assets/esri/core/workers/chunks/2b4dd42920d37b1ff0a9.js +2 -0
  18. package/assets/esri/core/workers/chunks/2c8ca43563c4f3e94535.js +1 -0
  19. package/assets/esri/core/workers/chunks/{55a9eaeb152a3abada67.js → 311e4969f19df63451dd.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{8da2a10318f49d0dc73a.js → 31ef7b7074b3e3829763.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{360c944c610efa2051fc.js → 379db67f78161ebd5468.js} +2 -2
  22. package/assets/esri/core/workers/chunks/{b8fd7c3b36981261378b.js → 38df7b1d58c4bcf693d0.js} +1 -1
  23. package/assets/esri/core/workers/chunks/{be55771758e4bcef0976.js → 3e406043a374ee17475b.js} +1 -1
  24. package/assets/esri/core/workers/chunks/46c290108a90518ef695.js +1 -0
  25. package/assets/esri/core/workers/chunks/{a596779eaeec7310671d.js → 478a89317a12e9b4d146.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{fcc3902d6d9eda6f09f5.js → 48b8b57f559a53c6c513.js} +1 -1
  27. package/assets/esri/core/workers/chunks/4f3e0d583cfa9d1d6727.js +2 -0
  28. package/assets/esri/core/workers/chunks/507ecc3692e6d0700958.js +1 -0
  29. package/assets/esri/core/workers/chunks/{bd46a04a9ee4ea9e6ef1.js → 5864bce1498a13ee5b7e.js} +2 -2
  30. package/assets/esri/core/workers/chunks/{f4d91d470ca5fea0bd26.js → 5bd1414220e42cb8ebcf.js} +1 -1
  31. package/assets/esri/core/workers/chunks/5c3aa8386705c5e40358.js +1 -0
  32. package/assets/esri/core/workers/chunks/{176d75e76318bfc25a53.js → 60c8eedd06080edab3e3.js} +1 -1
  33. package/assets/esri/core/workers/chunks/661847f1b7044f21600f.js +1 -0
  34. package/assets/esri/core/workers/chunks/{1a8d8274df292d65f82e.js → 676c8c0329d68f9f3ac4.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{29cc6b1705418b1be5d7.js → 687deb918eb48a963c8f.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{0694c7bcfe71692e2ccf.js → 723df53cfa0189837d01.js} +1 -1
  37. package/assets/esri/core/workers/chunks/7582654a0fc70910731c.js +1 -0
  38. package/assets/esri/core/workers/chunks/{1ee4df0fd61440cb5f02.js → 7810586c35dfe1437516.js} +1 -1
  39. package/assets/esri/core/workers/chunks/8517d96fc8ba7b21d845.js +2 -0
  40. package/assets/esri/core/workers/chunks/90360c0bd053d3e3fd77.js +1 -0
  41. package/assets/esri/core/workers/chunks/9c3de54513bf8619271c.js +1 -0
  42. package/assets/esri/core/workers/chunks/{0e445ec3523de9f2dfa2.js → a107f16cd004626b5018.js} +1 -1
  43. package/assets/esri/core/workers/chunks/{e3b212f8af448ec29eef.js → a1e8209d00809c9520a0.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{46453ebfee17b5421d9d.js → bf62be00f3040f91aaee.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{89dc49e784f7ba3b93ea.js → c034c30e577d620b8e28.js} +1 -1
  46. package/assets/esri/core/workers/chunks/c5bf19da62a3d31009fe.js +2 -0
  47. package/assets/esri/core/workers/chunks/{2226c20c38e20713bcb5.js.LICENSE.txt → c5bf19da62a3d31009fe.js.LICENSE.txt} +1 -1
  48. package/assets/esri/core/workers/chunks/{6bb191b19ce43a27f205.js → caad4f475d6eb01c2850.js} +1 -1
  49. package/assets/esri/core/workers/chunks/cd55cad81accf51d2989.js +1 -0
  50. package/assets/esri/core/workers/chunks/db1f7b2562de495b3401.js +2 -0
  51. package/assets/esri/core/workers/chunks/e0a37d3bcb9a944e53dd.js +1 -0
  52. package/assets/esri/core/workers/chunks/{fe6dcb21570395e46ce8.js → e0a7a75709121a26f255.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{096b2bf1c0d69d27f20c.js → e8e54faf947a582b4cf7.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{636e9c4ac1f9ae98f9d1.js → ea81f9d71b0842a4be26.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{164c8eeefa8232b2b191.js → eaa0e906b46ae4c84d72.js} +2 -2
  56. package/assets/esri/core/workers/chunks/{a504a5e06cb89a620799.js → ec8b7476eac4718eb0ac.js} +1 -1
  57. package/chunks/GlobalIllumination.glsl.js +55 -46
  58. package/chunks/GlobalIlluminationBlur.glsl.js +13 -9
  59. package/chunks/RibbonLine.glsl.js +90 -88
  60. package/config.js +1 -1
  61. package/core/has.js +1 -1
  62. package/core/workers.d.ts +1 -0
  63. package/geometry/support/MeshLocalVertexSpace.d.ts +3 -3
  64. package/geometry/support/aaBoundingRect.js +1 -1
  65. package/geometry/support/meshUtils/convertMeshVertexSpace.js +1 -1
  66. package/geometry/support/meshUtils/vertexSpaceConversion.js +1 -1
  67. package/identity/IdentityManagerBase.js +1 -1
  68. package/kernel.d.ts +3 -3
  69. package/kernel.js +1 -1
  70. package/layers/VoxelWasmPerSceneView.js +1 -1
  71. package/layers/WFSLayer.d.ts +8 -4
  72. package/layers/graphics/sources/WFSSource.js +1 -1
  73. package/layers/graphics/sources/geojson/geojson.js +1 -1
  74. package/layers/mixins/ArcGISMapService.d.ts +17 -0
  75. package/layers/mixins/ArcGISMapService.js +1 -1
  76. package/layers/ogc/wfsUtils.d.ts +7 -2
  77. package/layers/ogc/wfsUtils.js +1 -1
  78. package/layers/ogc/xmlUtils.js +1 -1
  79. package/package.json +4 -4
  80. package/rest/route.d.ts +1 -1
  81. package/rest/support/AreasAndLengthsParameters.d.ts +1 -1
  82. package/rest/support/LengthsParameters.d.ts +1 -1
  83. package/symbols/TextSymbol.d.ts +0 -1
  84. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  85. package/views/3d/FocusAreasView.js +1 -1
  86. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
  87. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
  88. package/views/3d/analysis/ElevationProfile/ElevationProfileLineSceneComputation.js +1 -1
  89. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  90. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  91. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  92. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  93. package/views/3d/layers/graphics/Graphics3DMeshObject3DGraphicLayer.js +1 -1
  94. package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
  95. package/views/3d/layers/graphics/Graphics3DWaterSymbolLayer.js +1 -1
  96. package/views/3d/layers/graphics/Graphics3DWebStyleSymbol.js +1 -1
  97. package/views/3d/layers/graphics/MeshFastUpdateProcessor.js +1 -1
  98. package/views/3d/layers/graphics/polygonUtils.js +1 -1
  99. package/views/3d/state/ScreenSizePerspective.js +1 -1
  100. package/views/3d/state/ViewStateManager.js +1 -1
  101. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  102. package/views/3d/support/RenderCoordsHelper.js +1 -1
  103. package/views/3d/terrain/TerrainRenderer.js +1 -1
  104. package/views/3d/terrain/TerrainSurface.js +1 -1
  105. package/views/3d/terrain/TileRenderer.js +1 -1
  106. package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
  107. package/views/3d/webgl-engine/lib/NavigationDepthCache.js +1 -1
  108. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  109. package/views/3d/webgl-engine/lib/RibbonLineVertexInfo.js +1 -1
  110. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  111. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  112. package/views/SceneView.js +1 -1
  113. package/views/webgl/BufferObject.js +1 -1
  114. package/views/webgl/FramebufferObject.js +1 -1
  115. package/widgets/ElevationProfile/ElevationProfileLineView.js +1 -1
  116. package/widgets/HistogramRangeSlider.d.ts +1 -1
  117. package/assets/esri/core/workers/chunks/0cc7fba402a93e6d2455.js +0 -2
  118. package/assets/esri/core/workers/chunks/131185d26343a997495e.js +0 -1
  119. package/assets/esri/core/workers/chunks/1a3f71c4d97c36050030.js +0 -1
  120. package/assets/esri/core/workers/chunks/2226c20c38e20713bcb5.js +0 -2
  121. package/assets/esri/core/workers/chunks/2981e904ab62f3ed80d0.js +0 -2
  122. package/assets/esri/core/workers/chunks/32cc59e126df8c96a0cf.js +0 -2
  123. package/assets/esri/core/workers/chunks/5bb6c255bdc8aa9ba23e.js +0 -1
  124. package/assets/esri/core/workers/chunks/654f5441227579d2b6b4.js +0 -1
  125. package/assets/esri/core/workers/chunks/7084dd6e10c6c1393e92.js +0 -1
  126. package/assets/esri/core/workers/chunks/7566321c6a2913f2852b.js +0 -1
  127. package/assets/esri/core/workers/chunks/7b5cd150a4d0139850be.js +0 -1
  128. package/assets/esri/core/workers/chunks/7cc9d7a88b64e25fce14.js +0 -1
  129. package/assets/esri/core/workers/chunks/844eedda8f749972f707.js +0 -2
  130. package/assets/esri/core/workers/chunks/87177e0f82e8a6ae3189.js +0 -1
  131. package/assets/esri/core/workers/chunks/9976eaa81085c0d17e14.js +0 -1
  132. package/assets/esri/core/workers/chunks/a2196a49f89d57a0a1c7.js +0 -1
  133. package/assets/esri/core/workers/chunks/aba259a70bee68d2edb7.js +0 -1
  134. package/assets/esri/core/workers/chunks/b9cb92858a576eb6aa06.js +0 -1
  135. package/assets/esri/core/workers/chunks/c33a9635c294c8774977.js +0 -1
  136. package/assets/esri/core/workers/chunks/f39c700f3db7db52b522.js +0 -1
  137. /package/assets/esri/core/workers/chunks/{844eedda8f749972f707.js.LICENSE.txt → 2b4dd42920d37b1ff0a9.js.LICENSE.txt} +0 -0
  138. /package/assets/esri/core/workers/chunks/{32cc59e126df8c96a0cf.js.LICENSE.txt → 4f3e0d583cfa9d1d6727.js.LICENSE.txt} +0 -0
  139. /package/assets/esri/core/workers/chunks/{bd46a04a9ee4ea9e6ef1.js.LICENSE.txt → 5864bce1498a13ee5b7e.js.LICENSE.txt} +0 -0
  140. /package/assets/esri/core/workers/chunks/{0cc7fba402a93e6d2455.js.LICENSE.txt → 8517d96fc8ba7b21d845.js.LICENSE.txt} +0 -0
  141. /package/assets/esri/core/workers/chunks/{2981e904ab62f3ed80d0.js.LICENSE.txt → db1f7b2562de495b3401.js.LICENSE.txt} +0 -0
  142. /package/assets/esri/core/workers/chunks/{164c8eeefa8232b2b191.js.LICENSE.txt → eaa0e906b46ae4c84d72.js.LICENSE.txt} +0 -0
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{sliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{EvaluateAmbientOcclusion as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as ee}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{forwardLocalUp as te}from"../views/3d/webgl-engine/core/shaderLibrary/shading/forwardLocalUp.glsl.js";import{mainLightIntensity as ne}from"../views/3d/webgl-engine/core/shaderLibrary/shading/lightingUniforms.js";import{LineStipple as re,computePixelSize as ie}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as ae}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{PiUtils as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{readFragmentShadow as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readFragmentShadow.glsl.js";import{metersPerRenderUnit as o,screenPixelSizePerDistance as s,inverseProjectionMatrix as c,nearFar as l,viewport as u,pixelRatio as oe}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as f,NoPerspectiveRead as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{getPackedUint32Field as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/PackedUint32.glsl.js";import{addProjViewLocalOrigin as h}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as _}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as v,If as y}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{ribbonLineVertexInfoPacking as b,ribbonVertexTypeSignBit as se,ribbonSubdivisionScale as ce,ribbonInsideJoinOffset as x}from"../views/3d/webgl-engine/lib/RibbonLineVertexInfo.js";import{alphaCutoff as S}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{animatedAlpha as C}from"../views/3d/webgl-engine/shaders/animatedAlpha.glsl.js";import{groundMetersToScreenRatio as w,planarDistanceToScreenRatio as T}from"../views/3d/webgl-engine/shaders/lineUniforms.js";import{outputColorHighlightOLID as E}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getTextureBackedBufferModule as D}from"../views/3d/webgl-engine/shaders/RibbonLineTextureBuffer.glsl.js";import{ShaderBuilder as O}from"../views/webgl/ShaderBuilder.js";const k=1;function A(k){let A=new O,{attributes:j,varyings:M,vertex:N,fragment:P}=A,{applyMarkerOffset:F,draped:I,shadingEnabled:L,output:R,capType:z,stippleEnabled:B,falloffEnabled:V,wireframe:H,innerColorEnabled:U,hasAnimation:W,hasScreenSizePerspective:G,worldSized:K,imagePattern:le,useFlatJoinVarying:q}=k,J=z===2,Y=B&&J,X=V||Y,ue=B||J,Z=B&&k.usePerspectiveCorrectStipple,Q=D(k).createBuilder(A,k);N.inputs.add(`position`,()=>Q.getTextureAttribute(`position`)),k.hasVVSize?N.inputs.add(`sizeFeatureAttribute`,()=>Q.getTextureAttribute(`sizeFeatureAttribute`)):N.inputs.add(`size`,()=>k.hasVertexSize?Q.getTextureAttribute(`size`):v`1.0`),k.hasVVOpacity&&N.inputs.add(`opacityFeatureAttribute`,()=>Q.getTextureAttribute(`opacityFeatureAttribute`)),k.hasVVColor?N.inputs.add(`colorFeatureAttribute`,()=>Q.getTextureAttribute(`colorFeatureAttribute`)):N.inputs.add(`color`,()=>k.hasVertexColor?Q.getTextureAttribute(`color`):v`vec4(1.0)`),P.include(r),A.include(t,k),A.include(re,k),R===11?(A.varyings.add(`objectAndLayerIdColorVarying`,`vec4`),N.code.add(v`
2
+ import{sliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{EvaluateAmbientOcclusion as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{forwardLocalUp as ee}from"../views/3d/webgl-engine/core/shaderLibrary/shading/forwardLocalUp.glsl.js";import{mainLightIntensity as te}from"../views/3d/webgl-engine/core/shaderLibrary/shading/lightingUniforms.js";import{LineStipple as ne,computePixelSize as re}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as ie}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{PiUtils as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{readFragmentShadow as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readFragmentShadow.glsl.js";import{metersPerRenderUnit as s,screenPixelSizePerDistance as c,inverseProjectionMatrix as l,nearFar as u,viewport as d,pixelRatio as f}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as ae}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as p,NoPerspectiveRead as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{getPackedUint32Field as h}from"../views/3d/webgl-engine/core/shaderLibrary/util/PackedUint32.glsl.js";import{addProjViewLocalOrigin as g}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as _}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as v}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as y,If as b}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{ribbonLineVertexInfoPacking as x,ribbonLineVertexTypePacking as S,ribbonSubdivisionScale as oe}from"../views/3d/webgl-engine/lib/RibbonLineVertexInfo.js";import{alphaCutoff as se}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{animatedAlpha as C}from"../views/3d/webgl-engine/shaders/animatedAlpha.glsl.js";import{groundMetersToScreenRatio as w,planarDistanceToScreenRatio as T}from"../views/3d/webgl-engine/shaders/lineUniforms.js";import{outputColorHighlightOLID as E}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getTextureBackedBufferModule as D}from"../views/3d/webgl-engine/shaders/RibbonLineTextureBuffer.glsl.js";import{ShaderBuilder as O}from"../views/webgl/ShaderBuilder.js";const k=1;function A(k){let A=new O,{attributes:j,varyings:M,vertex:N,fragment:P}=A,{applyMarkerOffset:F,draped:I,shadingEnabled:L,output:R,capType:z,stippleEnabled:B,falloffEnabled:V,wireframe:H,innerColorEnabled:U,hasAnimation:W,hasScreenSizePerspective:G,worldSized:K,imagePattern:ce,useFlatJoinVarying:q}=k,J=z===2,Y=B&&J,X=V||Y,le=B||J,Z=B&&k.usePerspectiveCorrectStipple,Q=D(k).createBuilder(A,k);N.inputs.add(`position`,()=>Q.getTextureAttribute(`position`)),k.hasVVSize?N.inputs.add(`sizeFeatureAttribute`,()=>Q.getTextureAttribute(`sizeFeatureAttribute`)):N.inputs.add(`size`,()=>k.hasVertexSize?Q.getTextureAttribute(`size`):y`1.0`),k.hasVVOpacity&&N.inputs.add(`opacityFeatureAttribute`,()=>Q.getTextureAttribute(`opacityFeatureAttribute`)),k.hasVVColor?N.inputs.add(`colorFeatureAttribute`,()=>Q.getTextureAttribute(`colorFeatureAttribute`)):N.inputs.add(`color`,()=>k.hasVertexColor?Q.getTextureAttribute(`color`):y`vec4(1.0)`),P.include(i),A.include(t,k),A.include(ne,k),R===11?(A.varyings.add(`objectAndLayerIdColorVarying`,`vec4`),N.code.add(y`
3
3
  vec4 getOlidColor() {
4
4
  return ${Q.getTextureAttribute(`olidColor`)};
5
5
  }
@@ -7,9 +7,9 @@ import{sliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.gls
7
7
  void forwardObjectAndLayerIdColor() {
8
8
  objectAndLayerIdColorVarying = getOlidColor();
9
9
  }
10
- `),P.code.add(v`void outputObjectAndLayerIdColor() {
10
+ `),P.code.add(y`void outputObjectAndLayerIdColor() {
11
11
  fragColor = objectAndLayerIdColorVarying;
12
- }`)):(N.code.add(v`void forwardObjectAndLayerIdColor() {}`),P.code.add(v`void outputObjectAndLayerIdColor() {}`));let $=F&&!I;$&&A.include(ae,k),h(N,k),I&&(K||B)&&N.uniforms.add(K?w:T),K&&!I&&N.uniforms.add(o,s),N.uniforms.add(c,l,u,new _(`miterLimit`,e=>e.join===`miter`?e.miterLimit:0)),N.constants.add(`LARGE_HALF_FLOAT`,`float`,65500),N.constants.add(`EPS`,`float`,.001),N.constants.add(`NUM_JOIN_SUBDIVISIONS`,`float`,k.numJoinSubdivisions),j.add(`ribbonLineVertexInfo`,`uint`),M.add(`vColor`,`vec4`),M.add(`vpos`,`vec3`,{invariant:!0}),M.add(`vLineDistance`,`float`),M.add(`vLineWidth`,`float`),q?M.add(`vIsInsideJoin`,`int`,{flat:!0}):M.add(`vIsInsideJoin`,`float`),M.add(`vStretchFactor`,`float`),M.add(`vJoinCenterLineSDFs`,`vec2`),M.add(`vSubdivisionFactor`,`float`),B&&M.add(`vLineSizeInv`,`float`),X&&M.add(`vLineDistanceNorm`,`float`),J&&(M.add(`vSegmentSDF`,`float`),M.add(`vReverseSegmentSDF`,`float`)),N.code.add(v`vec3 perpendicular(vec3 v) {
12
+ }`)):(N.code.add(y`void forwardObjectAndLayerIdColor() {}`),P.code.add(y`void outputObjectAndLayerIdColor() {}`));let $=F&&!I;return $&&A.include(ie,k),g(N,k),I&&(K||B)&&N.uniforms.add(K?w:T),K&&!I&&N.uniforms.add(s,c),N.uniforms.add(l,u,d,new v(`miterLimit`,e=>e.join===`miter`?e.miterLimit:0)),N.constants.add(`LARGE_HALF_FLOAT`,`float`,65500),N.constants.add(`EPS`,`float`,.001),N.constants.add(`NUM_JOIN_SUBDIVISIONS`,`float`,k.numJoinSubdivisions),j.add(`ribbonLineVertexInfo`,`uint`),M.add(`vColor`,`vec4`),M.add(`vpos`,`vec3`,{invariant:!0}),M.add(`vLineDistance`,`float`),M.add(`vLineWidth`,`float`),q?M.add(`vIsInsideJoin`,`int`,{flat:!0}):M.add(`vPointTag`,`vec2`),M.add(`vStretchFactor`,`float`),M.add(`vJoinCenterLineSDFs`,`vec2`),M.add(`vSubdivisionFactor`,`float`),B&&M.add(`vLineSizeInv`,`float`),X&&M.add(`vLineDistanceNorm`,`float`),J&&(M.add(`vSegmentSDF`,`float`),M.add(`vReverseSegmentSDF`,`float`)),N.code.add(y`vec3 perpendicular(vec3 v) {
13
13
  return vec3(v.y, -v.x, 0.0);
14
14
  }
15
15
  float nearPlaneInterpolationFactor(float nearPlaneDistance, vec4 start, vec4 end) {
@@ -20,17 +20,17 @@ float s = sin(a);
20
20
  float c = cos(a);
21
21
  mat2 m = mat2(c, -s, s, c);
22
22
  return vec3(m * v.xy, v.z);
23
- }`),N.code.add(v`vec4 projectAndScale(vec4 pos) {
23
+ }`),N.code.add(y`vec4 projectAndScale(vec4 pos) {
24
24
  vec4 posNdc = proj * pos;
25
25
  posNdc.xy *= viewport.zw / posNdc.w;
26
26
  posNdc.z /= posNdc.w;
27
27
  return posNdc;
28
- }`),N.code.add(v`
28
+ }`),N.code.add(y`
29
29
  void clip(
30
30
  inout vec4 pos,
31
31
  inout vec4 prev,
32
32
  inout vec4 next,
33
- ${y(Z,v`inout float u0, inout float prevU0, inout float nextU0,`)}
33
+ ${b(Z,y`inout float u0, inout float prevU0, inout float nextU0,`)}
34
34
  bool isStartVertex
35
35
  ) {
36
36
  float adjustedNearPlaneDistance = nearFar[0] * 0.99;
@@ -41,7 +41,7 @@ return posNdc;
41
41
  if (prev.z < -nearFar[0]) {
42
42
  // Previous position in front of near plane
43
43
  float clipFactor = nearPlaneInterpolationFactor(adjustedNearPlaneDistance, prev, pos);
44
- ${y(Z,v`u0 = mix(prevU0, u0, clipFactor); nextU0 = u0;`)}
44
+ ${b(Z,y`u0 = mix(prevU0, u0, clipFactor); nextU0 = u0;`)}
45
45
  pos = mix(prev, pos, clipFactor);
46
46
  next = pos;
47
47
  } else {
@@ -51,7 +51,7 @@ return posNdc;
51
51
  if (next.z < -nearFar[0]) {
52
52
  // Next position in front of near plane
53
53
  float clipFactor = nearPlaneInterpolationFactor(adjustedNearPlaneDistance, pos, next);
54
- ${y(Z,v`u0 = mix(u0, nextU0, clipFactor); prevU0 = u0;`)}
54
+ ${b(Z,y`u0 = mix(u0, nextU0, clipFactor); prevU0 = u0;`)}
55
55
  pos = mix(pos, next, clipFactor);
56
56
  prev = pos;
57
57
  } else {
@@ -63,61 +63,55 @@ return posNdc;
63
63
  if (prev.z > -nearFar[0]) {
64
64
  // Previous position behind near plane
65
65
  float clipFactor = nearPlaneInterpolationFactor(adjustedNearPlaneDistance, pos, prev);
66
- ${y(Z,v`prevU0 = mix(u0, prevU0, clipFactor);`)}
66
+ ${b(Z,y`prevU0 = mix(u0, prevU0, clipFactor);`)}
67
67
  prev = mix(pos, prev, clipFactor);
68
68
  }
69
69
 
70
70
  if (next.z > -nearFar[0]) {
71
71
  // Next position behind near plane
72
72
  float clipFactor = nearPlaneInterpolationFactor(adjustedNearPlaneDistance, next, pos);
73
- ${y(Z,v`nextU0 = mix(nextU0, u0, clipFactor);`)}
73
+ ${b(Z,y`nextU0 = mix(nextU0, u0, clipFactor);`)}
74
74
  next = mix(next, pos, clipFactor);
75
75
  }
76
76
  }
77
77
  }
78
- `),N.uniforms.add(oe),N.constants.add(`aaWidth`,`float`,1),P.constants.add(`aaWidth`,`float`,1);let de=b.getField(1);return N.main.add(v`
79
- uint vertexTypeBits = ${m(b,1,v`ribbonLineVertexInfo`)};
80
- // Sign-extend the packed type; casting its unsigned field to int does not extend the field's sign bit.
81
- uint signExtendedVertexTypeBits = (vertexTypeBits & ${v.hexuint(se)}) != 0u ? (vertexTypeBits | ~${v.hexuint(de.max)}) : vertexTypeBits;
82
- int signedVertexType = int(signExtendedVertexTypeBits);
83
- float subdivisionFactor = float(${m(b,2,v`ribbonLineVertexInfo`)}) / ${v.float(ce)};
78
+ `),N.uniforms.add(f),N.constants.add(`aaWidth`,`float`,1),P.constants.add(`aaWidth`,`float`,1),N.main.add(y`
79
+ uint vertexType = ${h(x,1,y`ribbonLineVertexInfo`)};
80
+ bool isJoin = ${h(S,0,y`vertexType`)} == 0u;
81
+ float lineSide = ${h(S,1,y`vertexType`)} == 0u ? 1.0 : -1.0;
82
+ bool isStartVertex = ${h(S,2,y`vertexType`)} != 0u;
83
+ float subdivisionFactor = float(${h(x,2,y`ribbonLineVertexInfo`)}) / ${y.float(oe)};
84
84
  vec3 position = ${Q.getTextureAttribute(`position`)};
85
- ${B?v`float u0 = ${Q.getTextureAttribute(`u0`)};`:``}
86
- ${B&&K?v`
85
+ ${B?y`float u0 = ${Q.getTextureAttribute(`u0`)};`:``}
86
+ ${B&&K?y`
87
87
  float prevU0 = ${Q.getTextureAttribute(`u0`,-1)};
88
88
  float nextU0 = ${Q.getTextureAttribute(`u0`,1)};
89
- ${y(!I,v`
89
+ ${b(!I,y`
90
90
  u0 *= metersPerRenderUnit;
91
91
  prevU0 *= metersPerRenderUnit;
92
92
  nextU0 *= metersPerRenderUnit;
93
93
  `)}
94
94
  `:``}
95
- // unpack values from vertex type
96
- int vertexType = abs(signedVertexType);
97
- ${y(!q,v`
98
- bool isInsideJoin = vertexType > ${v.int(x)};
99
- vertexType -= isInsideJoin ? ${v.int(x)} : 0;
95
+ ${b(!q,y`
96
+ float textureIndexParity = float(${h(x,0,y`ribbonLineVertexInfo`)} % 2u);
97
+ vPointTag = vec2(textureIndexParity, 1.0 - textureIndexParity);
100
98
  `)}
101
- float lineSide = float(sign(signedVertexType));
102
- bool isStartVertex = vertexType == 2 || vertexType == 3;
103
99
  vec3 prevPosition = ${Q.getTextureAttribute(`position`,-1)};
104
100
  vec3 nextPosition = ${Q.getTextureAttribute(`position`,1)};
105
101
 
106
- // Cleared geometry has a zero descriptor; a zero vertex type marks geometry to hide.
107
- if (signedVertexType == 0) {
108
- gl_Position = ${i};
102
+ // Cleared geometry has a zero descriptor. Texture index 0 is never valid for a vertex, as it is only used for padding.
103
+ if (ribbonLineVertexInfo == 0u) {
104
+ gl_Position = ${a};
109
105
  }
110
106
  else {
111
107
  vec4 pos = view * vec4(position, 1.0);
112
108
  vec4 prev = view * vec4(prevPosition, 1.0);
113
109
  vec4 next = view * vec4(nextPosition, 1.0);
114
-
115
- bool isJoin = vertexType < 3;
116
- `),$&&N.main.add(v`vec4 other = isStartVertex ? next : prev;
110
+ `),$&&N.main.add(y`vec4 other = isStartVertex ? next : prev;
117
111
  bool markersHidden = areWorldMarkersHidden(pos.xyz, other.xyz);
118
112
  if (!isJoin && !markersHidden) {
119
113
  pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
120
- }`),A.include(f),N.code.add(v`
114
+ }`),A.include(p),N.code.add(y`
121
115
  vec2 computeJoinAndCapDisplacement(
122
116
  bool isJoin,
123
117
  bool isStartVertex,
@@ -163,7 +157,7 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
163
157
  }
164
158
 
165
159
  // Compute stretch compensation for feathering.
166
- ${y(q,v`
160
+ ${b(q,y`
167
161
  if (subdivisionFactor > 0.0) {
168
162
  vIsInsideJoin = 1;
169
163
  }
@@ -197,14 +191,14 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
197
191
  }
198
192
 
199
193
  if (isOutside && displacementLen > miterLimit * lineWidth) {
200
- ${y(k.roundJoins,v`
194
+ ${b(k.roundJoins,y`
201
195
  vec3 startDir = perpendicular(leftLen < EPS ? right : left);
202
196
  vec3 endDir = perpendicular(rightLen < EPS ? left : right);
203
- float factor = ${B?v`min(1.0, subdivisionFactor * ((NUM_JOIN_SUBDIVISIONS + 1.0) / NUM_JOIN_SUBDIVISIONS))`:v`subdivisionFactor`};
197
+ float factor = ${B?y`min(1.0, subdivisionFactor * ((NUM_JOIN_SUBDIVISIONS + 1.0) / NUM_JOIN_SUBDIVISIONS))`:y`subdivisionFactor`};
204
198
 
205
199
  float rotationAngle = acos(clamp(dot(startDir.xy, endDir.xy), -1.0, 1.0));
206
200
  joinDisplacementDir = rotateZ(startDir, -lineSide * factor * rotationAngle);
207
- `,v`
201
+ `,y`
208
202
  /**
209
203
  * Convert to bevel join if miterLimit is exceeded.
210
204
  * Here vertices with a subdivisionFactor > 0 are either START vertices or
@@ -216,19 +210,19 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
216
210
  vec3 startDir = perpendicular(leftLen < EPS ? right : left);
217
211
  vec3 endDir = perpendicular(rightLen < EPS ? left : right);
218
212
 
219
- ${y(B,v`joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? endDir : startDir;`,v`joinDisplacementDir = mix(startDir, endDir, subdivisionFactor);`)}
213
+ ${b(B,y`joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? endDir : startDir;`,y`joinDisplacementDir = mix(startDir, endDir, subdivisionFactor);`)}
220
214
  `)}
221
215
  displacementLen = lineWidth;
222
216
  }
223
217
  } else {
224
218
  joinDisplacementDir = perpendicular(isStartVertex ? right : left);
225
- ${z===0?``:v`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`}
219
+ ${z===0?``:y`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`}
226
220
  }
227
221
 
228
222
  return (joinDisplacementDir.xy * lineSide + capDisplacementDir.xy) * displacementLen;
229
223
  }
230
- `),N.main.add(v`
231
- clip(pos, prev, next, ${y(Z,v`u0, prevU0, nextU0,`)} isStartVertex);
224
+ `),N.main.add(y`
225
+ clip(pos, prev, next, ${b(Z,y`u0, prevU0, nextU0,`)} isStartVertex);
232
226
 
233
227
  vec3 clippedPos = pos.xyz;
234
228
  vec3 clippedCenter = mix(pos.xyz, isStartVertex ? next.xyz : prev.xyz, 0.5);
@@ -240,29 +234,29 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
240
234
  vec3 left = (pos.xyz - prev.xyz);
241
235
  vec3 right = (next.xyz - pos.xyz);
242
236
 
243
- float lineSize = getSize(${y(G,`clippedPos`)});
244
- ${y(B&&G,`float patternLineSize = getSize(clippedCenter);`)}
245
- ${y(B&&!G,`float patternLineSize = lineSize;`)}
237
+ float lineSize = getSize(${b(G,`clippedPos`)});
238
+ ${b(B&&G,`float patternLineSize = getSize(clippedCenter);`)}
239
+ ${b(B&&!G,`float patternLineSize = lineSize;`)}
246
240
 
247
- ${y(K,v`
248
- ${y(I,v`float lineSizeScreen = lineSize * groundMetersToScreenRatio;`,v`
241
+ ${b(K,y`
242
+ ${b(I,y`float lineSizeScreen = lineSize * groundMetersToScreenRatio;`,y`
249
243
  float metersPerScreenPixel = max(-clippedPos.z, nearFar[0]) * metersPerRenderUnit * screenPixelSizePerDistance;
250
244
  float lineSizeScreen = lineSize / metersPerScreenPixel;
251
245
  `)}
252
246
  float lineWidth = lineSizeScreen * pixelRatio + aaWidth;
253
- `,v`
247
+ `,y`
254
248
  float lineWidth = lineSize * pixelRatio + aaWidth;
255
249
  `)}
256
250
 
257
251
  vLineWidth = noPerspectiveWrite(lineWidth, pos.w);
258
252
  ${B?`vLineSizeInv = noPerspectiveWrite(1.0 / ${K?`lineSize`:`max(lineSize, 1.0)`}, pos.w);`:``}
259
- `),ue&&N.main.add(v`
253
+ `),le&&N.main.add(y`
260
254
  float isEndVertex = float(!isStartVertex);
261
255
  vec3 segmentOrigin = mix(pos.xyz, prev.xyz, isEndVertex);
262
256
  vec3 segment = mix(right, left, isEndVertex);
263
257
  ${J?`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:``}
264
- `),N.main.add(v`
265
- vIsInsideJoin = ${q?v`0`:v`float(isInsideJoin)`};
258
+ `),N.main.add(y`
259
+ ${b(q,y`vIsInsideJoin = 0;`)}
266
260
  vStretchFactor = 1.0;
267
261
  vSubdivisionFactor = 0.0;
268
262
  vJoinCenterLineSDFs = vec2(LARGE_HALF_FLOAT);
@@ -291,10 +285,10 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
291
285
  float lineDistNorm = noPerspectiveWrite(lineSide, pos.w);
292
286
 
293
287
  vLineDistance = lineWidth * lineDistNorm;
294
- ${X?v`vLineDistanceNorm = lineDistNorm;`:``}
288
+ ${X?y`vLineDistanceNorm = lineDistNorm;`:``}
295
289
 
296
290
  pos.xyz += displacement;
297
- `),N.main.add(v`if (isJoin) {
291
+ `),N.main.add(y`if (isJoin) {
298
292
  vec2 joinCenterToVertex = displacementXY;
299
293
  vec2 leftCenterlineDir = left.xy;
300
294
  vec2 rightCenterlineDir = right.xy;
@@ -309,36 +303,36 @@ dot(vec2(leftCenterlineDir.y, -leftCenterlineDir.x), joinCenterToVertex)
309
303
  ),
310
304
  pos.w
311
305
  );
312
- }`),J&&N.main.add(v`vec2 segmentDir = normalize(segment.xy);
306
+ }`),J&&N.main.add(y`vec2 segmentDir = normalize(segment.xy);
313
307
  vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin.xy, segmentDir)), pos.w);
314
- vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),B&&(I?N.main.add(`float stippleDistanceToScreenRatio = ${K?`groundMetersToScreenRatio`:`planarDistanceToScreenRatio`};`):N.main.add(v`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
315
- float stippleDistanceToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),N.main.add(v`
308
+ vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),B&&(I?N.main.add(`float stippleDistanceToScreenRatio = ${K?`groundMetersToScreenRatio`:`planarDistanceToScreenRatio`};`):N.main.add(y`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
309
+ float stippleDistanceToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),N.main.add(y`
316
310
  float segmentLengthScreenDouble = length(segment.xy);
317
311
  float segmentLengthScreen = segmentLengthScreenDouble * 0.5;
318
312
  float discreteStippleDistanceToScreenRatio = discretizeStippleDistanceToScreenRatio(stippleDistanceToScreenRatio);
319
- float segmentLengthRender = ${y(K,v`abs(mix(nextU0 - u0, u0 - prevU0, isEndVertex))`,v`length(mix(nextPosition - position, position - prevPosition, isEndVertex))`)};
313
+ float segmentLengthRender = ${b(K,y`abs(mix(nextU0 - u0, u0 - prevU0, isEndVertex))`,y`length(mix(nextPosition - position, position - prevPosition, isEndVertex))`)};
320
314
 
321
- ${y(!I||K,v`
322
- float segmentStartRender = ${y(K,v`mix(u0, prevU0, isEndVertex)`,v`mix(u0, u0 - segmentLengthRender, isEndVertex)`)};
315
+ ${b(!I||K,y`
316
+ float segmentStartRender = ${b(K,y`mix(u0, prevU0, isEndVertex)`,y`mix(u0, u0 - segmentLengthRender, isEndVertex)`)};
323
317
  `)}
324
318
 
325
319
  vStipplePatternStretch = stippleDistanceToScreenRatio / discreteStippleDistanceToScreenRatio;
326
- `),I?N.main.add(v`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteStippleDistanceToScreenRatio / stippleDistanceToScreenRatio;
327
- float startPseudoScreen = u0 * discreteStippleDistanceToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):N.main.add(v`float startPseudoScreen = segmentStartRender * discreteStippleDistanceToScreenRatio;
328
- float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceToScreenRatio;`),N.uniforms.add(new _(`stipplePatternPixelSize`,e=>ie(e))),N.main.add(v`
320
+ `),I?N.main.add(y`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteStippleDistanceToScreenRatio / stippleDistanceToScreenRatio;
321
+ float startPseudoScreen = u0 * discreteStippleDistanceToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):N.main.add(y`float startPseudoScreen = segmentStartRender * discreteStippleDistanceToScreenRatio;
322
+ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceToScreenRatio;`),N.uniforms.add(new v(`stipplePatternPixelSize`,e=>re(e))),N.main.add(y`
329
323
  float patternLength = patternLineSize * stipplePatternPixelSize;
330
324
  vec2 stippleDistanceLimits;
331
325
 
332
- ${y(K,v`
326
+ ${b(K,y`
333
327
  stippleDistanceLimits = vec2(segmentStartRender, segmentStartRender + segmentLengthRender);
334
328
  vStipplePatternStretch = 1.0;
335
329
 
336
- ${y(le,v`
330
+ ${b(ce,y`
337
331
  // The v-coordinate used in case of an image pattern.
338
332
  bool isLeft = lineSide < 0.0;
339
333
  vStippleV = isLeft ? 0.0 : 1.0;
340
334
  `)}
341
- `,v`
335
+ `,y`
342
336
  // Compute the coordinates at both start and end of the line segment, because we need both to clamp to in the
343
337
  // fragment shader
344
338
  stippleDistanceLimits = computeStippleDistanceLimits(startPseudoScreen, segmentLengthPseudoScreen, segmentLengthScreen, patternLength);
@@ -358,7 +352,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceT
358
352
  vStippleDistance += (stippleDisplacementFactor - isEndVertex) * (stippleDistanceLimits.y - stippleDistanceLimits.x);
359
353
  }
360
354
 
361
- ${y(Z,v`
355
+ ${b(Z,y`
362
356
  float segmentStartInverseW = 1.0 / mix(pos.w, prev.w, isEndVertex);
363
357
  float segmentEndInverseW = 1.0 / mix(next.w, pos.w, isEndVertex);
364
358
  vStipplePerspective = noPerspectiveWrite(
@@ -374,7 +368,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceT
374
368
  // Disable stipple distance limits on caps
375
369
  vStippleLimitsAndCaps.zw = isJoin ? vec2(0.0) :
376
370
  isStartVertex ? vec2(1.0, 0.0) : vec2(0.0, 1.0);
377
- `)),N.main.add(v`
371
+ `)),N.main.add(y`
378
372
  // Convert back into NDC
379
373
  pos.xy = (pos.xy / viewport.zw) * pos.w;
380
374
  pos.z = pos.z * pos.w;
@@ -388,25 +382,33 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceT
388
382
  vpos = (inverseProjectionMatrix * pos).xyz;
389
383
  gl_Position = pos;
390
384
  forwardObjectAndLayerIdColor();
391
- }`),A.include(E,k),A.include(p),P.include(d),P.include(S),P.include(e,k),P.main.add(`discardBySlice(vpos);`),P.code.add(v`float lineFeatheringFactor(float lineWidth, float lineDistance) {
392
- float stretchFactor = float(vIsInsideJoin) > 0.5 ? noPerspectiveRead(vStretchFactor) : 1.0;
393
- float featherWidth = 2.0;
394
- float featherStartDistance = lineWidth - featherWidth / stretchFactor;
395
- float straightFeatherStartDistance = lineWidth - featherWidth;
396
- float value = abs(lineDistance);
397
- float feather = (value - featherStartDistance) / (lineWidth - featherStartDistance);
398
- vec2 joinCenterSDFs = noPerspectiveRead(vJoinCenterLineSDFs);
399
- float joinCenterDistance = abs(vSubdivisionFactor > 0.5 ? joinCenterSDFs.x : joinCenterSDFs.y);
400
- float straightFeather = (joinCenterDistance - straightFeatherStartDistance) / (lineWidth - straightFeatherStartDistance);
401
- feather = float(vIsInsideJoin) > 0.5 ? max(feather, straightFeather) : feather;
402
- float coverage = min(lineWidth - aaWidth, 1.0);
403
- return clamp(1.0 - feather, 0.0, coverage);
404
- }`),P.main.add(v`
385
+ }`),A.include(E,k),A.include(m),P.include(ae),P.include(se),P.include(e,k),P.main.add(`discardBySlice(vpos);`),P.code.add(y`
386
+ float lineFeatheringFactor(float lineWidth, float lineDistance) {
387
+ /**
388
+ * Determine whether we are inside the feathering region or not, under
389
+ * consideration of triangle stretch and the distance to the centerline.
390
+ */
391
+ bool isInsideJoin = ${q?y`vIsInsideJoin == 1`:y`any(equal(vPointTag, vec2(0.0)))`};
392
+ float stretchFactor = isInsideJoin ? noPerspectiveRead(vStretchFactor) : 1.0;
393
+ float featherWidth = 2.0;
394
+ // Keep the filter in render-target pixels, including when its two sides overlap on a subpixel stroke.
395
+ float featherStartDistance = lineWidth - featherWidth / stretchFactor;
396
+ float straightFeatherStartDistance = lineWidth - featherWidth;
397
+ float value = abs(lineDistance);
398
+ float feather = (value - featherStartDistance) / (lineWidth - featherStartDistance);
399
+ vec2 joinCenterSDFs = noPerspectiveRead(vJoinCenterLineSDFs);
400
+ float joinCenterDistance = abs(vSubdivisionFactor > 0.5 ? joinCenterSDFs.x : joinCenterSDFs.y);
401
+ float straightFeather = (joinCenterDistance - straightFeatherStartDistance) / (lineWidth - straightFeatherStartDistance);
402
+ feather = isInsideJoin ? max(feather, straightFeather) : feather;
403
+ float coverage = min(lineWidth - aaWidth, 1.0);
404
+ return clamp(1.0 - feather, 0.0, coverage);
405
+ }
406
+ `),P.main.add(y`
405
407
  float lineWidth = noPerspectiveRead(vLineWidth);
406
408
  float lineDistance = noPerspectiveRead(vLineDistance);
407
- ${y(X,v`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
408
- `),Y&&P.main.add(v`float nominalLineWidth = lineWidth - aaWidth;`),H?P.main.add(v`vec4 albedo = vec4(1.0, 0.0, 1.0, 1.0);
409
- vec4 finalColor = albedo;`):(J&&P.main.add(v`
409
+ ${b(X,y`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
410
+ `),Y&&P.main.add(y`float nominalLineWidth = lineWidth - aaWidth;`),H?P.main.add(y`vec4 albedo = vec4(1.0, 0.0, 1.0, 1.0);
411
+ vec4 finalColor = albedo;`):(J&&P.main.add(y`
410
412
  float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
411
413
  vec2 fragmentPosition = vec2(min(sdf, 0.0), lineDistance);
412
414
 
@@ -417,7 +419,7 @@ vec4 finalColor = albedo;`):(J&&P.main.add(v`
417
419
  if (capCoverage < alphaCutoff) {
418
420
  discard;
419
421
  }
420
- `),Y?P.main.add(v`vec2 stipplePosition = vec2(
422
+ `),Y?P.main.add(y`vec2 stipplePosition = vec2(
421
423
  min(getStippleCapDistance(), 0.0) * nominalLineWidth,
422
424
  lineDistance
423
425
  );
@@ -425,11 +427,11 @@ float stippleRadius = length(stipplePosition);
425
427
  float stippleCapSDF = (stippleRadius - nominalLineWidth) * 0.5;
426
428
  float stippleCoverage = clamp(0.5 - stippleCapSDF, 0.0, 1.0);
427
429
  float lineCoverage = min(lineFeatheringFactor(lineWidth, lineDistance), capCoverage);
428
- float stippleAlpha = lineCoverage > 0.0 ? min(stippleCoverage, lineCoverage) / lineCoverage : 0.0;`):P.main.add(v`float stippleAlpha = getStippleAlpha(lineWidth);`),R!==11&&P.main.add(v`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),P.uniforms.add(new g(`intrinsicColor`,e=>e.color)).main.add(v`vec4 color = intrinsicColor * vColor;
429
- color.a = noPerspectiveRead(color.a);`),U&&P.uniforms.add(new g(`innerColor`,e=>e.innerColor??e.color),new _(`innerWidth`,(e,t)=>e.innerWidth*t.camera.pixelRatio)).main.add(v`float distToInner = abs(lineDistance) - innerWidth;
430
+ float stippleAlpha = lineCoverage > 0.0 ? min(stippleCoverage, lineCoverage) / lineCoverage : 0.0;`):P.main.add(y`float stippleAlpha = getStippleAlpha(lineWidth);`),R!==11&&P.main.add(y`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),P.uniforms.add(new _(`intrinsicColor`,e=>e.color)).main.add(y`vec4 color = intrinsicColor * vColor;
431
+ color.a = noPerspectiveRead(color.a);`),U&&P.uniforms.add(new _(`innerColor`,e=>e.innerColor??e.color),new v(`innerWidth`,(e,t)=>e.innerWidth*t.camera.pixelRatio)).main.add(y`float distToInner = abs(lineDistance) - innerWidth;
430
432
  float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
431
433
  float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
432
- color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),P.main.add(`vec4 albedo = blendStipple(color, stippleAlpha);`),V&&(P.uniforms.add(new _(`falloff`,e=>e.falloff)),P.main.add(v`albedo.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),P.main.add(v`albedo.a *= ${Y?`lineCoverage`:`lineFeatheringFactor(lineWidth, lineDistance)`};`),W&&(N.main.add(`vec4 animatedAlphaTimeStamps = ${Q.getTextureAttribute(`timeStamps`)};`),A.include(C,k),P.main.add(`albedo.a *= animatedAlpha();`)),L?(A.include(te,k),N.main.add(v`forwardLocalUp(position, localOrigin);`),N.main.add(`forwardLinearDepthToReadShadow();`),A.include(a,k),P.include(ee,k),P.include(n,k),P.uniforms.add(ne).main.add(v`vec3 normal = normalize(upNormal);
434
+ color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),P.main.add(`vec4 albedo = blendStipple(color, stippleAlpha);`),V&&(P.uniforms.add(new v(`falloff`,e=>e.falloff)),P.main.add(y`albedo.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),P.main.add(y`albedo.a *= ${Y?`lineCoverage`:`lineFeatheringFactor(lineWidth, lineDistance)`};`),W&&(N.main.add(`vec4 animatedAlphaTimeStamps = ${Q.getTextureAttribute(`timeStamps`)};`),A.include(C,k),P.main.add(`albedo.a *= animatedAlpha();`)),L?(A.include(ee,k),N.main.add(y`forwardLocalUp(position, localOrigin);`),N.main.add(`forwardLinearDepthToReadShadow();`),A.include(o,k),P.include(r,k),P.include(n,k),P.uniforms.add(te).main.add(y`vec3 normal = normalize(upNormal);
433
435
  float additionalAmbientScale = additionalDirectedAmbientLight(normal);
434
436
  float shadow = readFragmentShadow(additionalAmbientScale);
435
437
  float ssao = evaluateAmbientOcclusionInverse();
@@ -438,4 +440,4 @@ vec3 viewDirection = normalize((inverseViewMatrix * vec4(vpos, 0.0)).xyz);
438
440
  vec4 finalColor = vec4(
439
441
  evaluateSceneLighting(normal, albedo.rgb, shadow, 1.0 - ssao, additionalLight,viewDirection, normal),
440
442
  albedo.a
441
- );`)):P.main.add(`vec4 finalColor = albedo;`)),P.main.add(v`outputColorHighlightOLID(applySlice(finalColor, vpos), albedo.rgb);`),A}const j=Object.freeze(Object.defineProperty({__proto__:null,build:A,numRoundJoinSubdivisions:1},Symbol.toStringTag,{value:`Module`}));export{j as R,A as b,k as n};
443
+ );`)):P.main.add(`vec4 finalColor = albedo;`)),P.main.add(y`outputColorHighlightOLID(applySlice(finalColor, vpos), albedo.rgb);`),A}const j=Object.freeze(Object.defineProperty({__proto__:null,build:A,numRoundJoinSubdivisions:1},Symbol.toStringTag,{value:`Module`}));export{j as R,A as b,k as n};
package/config.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import"./core/has.js";import{deepMerge as e}from"./core/object.js";const t={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}};globalThis.esriConfig&&(e(t,globalThis.esriConfig,!0),delete t.has),t.assetsPath||(t.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@6.0.0-next.32/assets`,t.defaultAssetsPath=t.assetsPath);export{t as default};
2
+ import"./core/has.js";import{deepMerge as e}from"./core/object.js";const t={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}};globalThis.esriConfig&&(e(t,globalThis.esriConfig,!0),delete t.has),t.assetsPath||(t.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@6.0.0-next.34/assets`,t.defaultAssetsPath=t.assetsPath);export{t as default};
package/core/has.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- const e=globalThis,t={...e.esriConfig?.has};function has(n){return typeof t[n]==`function`?t[n]=t[n](e):t[n]}has.add=(e,n,r,i)=>{(i||t[e]===void 0)&&(t[e]=n),r&&has(e)},has.cache=t,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`,e.WorkerGlobalScope!==void 0&&self instanceof e.WorkerGlobalScope);let t=typeof window<`u`&&typeof location<`u`&&typeof document<`u`&&window.location===location&&window.document===document;if(has.add(`host-browser`,t),has.add(`host-node`,!!(typeof e.process==`object`&&e.process.versions?.node&&e.process.versions.v8)),has.add(`dom`,t),has(`host-browser`)){let e=navigator,t=e.userAgent,n=e.appVersion,r=parseFloat(n);if(has.add(`wp`,parseFloat(t.split(`Windows Phone`)[1])||void 0),has.add(`msapp`,parseFloat(t.split(`MSAppHost/`)[1])||void 0),has.add(`khtml`,n.includes(`Konqueror`)?r:void 0),has.add(`edge`,parseFloat(t.split(`Edge/`)[1])||void 0),has.add(`opr`,parseFloat(t.split(`OPR/`)[1])||void 0),has.add(`webkit`,!has(`wp`)&&!has(`edge`)&&parseFloat(t.split(`WebKit/`)[1])||void 0),has.add(`chrome`,!has(`edge`)&&!has(`opr`)&&parseFloat(t.split(`Chrome/`)[1])||void 0),has.add(`android`,!has(`wp`)&&parseFloat(t.split(`Android `)[1])||void 0),has.add(`safari`,n.includes(`Safari`)&&!has(`wp`)&&!has(`chrome`)&&!has(`android`)&&!has(`edge`)&&!has(`opr`)?parseFloat(n.split(`Version/`)[1]):void 0),has.add(`mac`,n.includes(`Macintosh`)),!has(`wp`)&&/(iPhone|iPod|iPad)/.test(t)){let e=RegExp.$1.replace(/P/,`p`),n=/OS ([\d_]+)/.test(t)?RegExp.$1:`1`,r=parseFloat(n.replace(/_/,`.`).replaceAll(`_`,``));has.add(e,r),has.add(`ios`,r)}has(`webkit`)||(t.includes(`Gecko`)&&!has(`wp`)&&!has(`khtml`)&&!has(`edge`)&&has.add(`mozilla`,r),has(`mozilla`)&&has.add(`ff`,parseFloat(t.split(`Firefox/`)[1]||t.split(`Minefield/`)[1])||void 0))}})(),(()=>{if(e.navigator){let e=navigator.userAgent,t=/Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini|IEMobile/i.test(e),n=/iPhone/i.test(e);t&&has.add(`esri-mobile`,t),n&&has.add(`esri-iPhone`,n),has.add(`esri-geolocation`,!!navigator.geolocation)}has.add(`esri-wasm`,`WebAssembly`in e),has.add(`esri-temporal`,`Temporal`in e),has.add(`esri-performance-mode-frames-between-render`,20),has.add(`esri-force-performance-mode`,!1),has.add(`esri-shared-array-buffer`,()=>{let t=`SharedArrayBuffer`in e,n=e.crossOriginIsolated===!1;return t&&!n}),has.add(`wasm-simd`,()=>WebAssembly.validate(new Uint8Array([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]))),has.add(`esri-atomics`,`Atomics`in e),has.add(`esri-workers`,`Worker`in e),has.add(`web-feat:cache`,`caches`in e),has.add(`esri-workers-arraybuffer-transfer`,!has(`safari`)||Number(has(`safari`))>=12),has.add(`min-workers-pool-size`,2),has.add(`max-workers-pool-size`,has(`esri-mobile`)?3:8),has.add(`featurelayer-simplify-thresholds`,[.5,.5,.5,.5]),has.add(`featurelayer-simplify-payload-size-factors`,[1,1,4]),has.add(`featurelayer-animation-enabled`,!0),has.add(`featurelayer-hybrid-tile-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-allow-editable`,!1),has.add(`featurelayer-snapshot-coverage`,.1),has.add(`featurelayer-pixel-buffering-enabled`,!0),has.add(`featurelayer-query-max-depth`,4),has.add(`featurelayer-query-max-page-size`,8e3),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-snapping-density-sample-interval`,10),has.add(`featurelayer-snapping-density-max-vertices-per-feature`,16),has.add(`featurelayer-snapping-density-max-distance`,8),has.add(`featurelayer-advanced-symbols`,!1),has.add(`featurelayer-pbf`,!0),has.add(`featurelayer-pbf-statistics`,!1),has.add(`featurelayer-pbf-true-curves`,!0),has.add(`feature-layers-workers`,!0),has.add(`feature-polyline-generalization-factor`,1),has.add(`featurelayer-relative-time-queries-enabled`,!0),has.add(`featurelayer-relative-time-queries-bin-window-public`,1),has.add(`featurelayer-relative-time-queries-bin-window-private`,60),has.add(`parquetlayer-full-query-feature-count`,5e5),has.add(`parquetlayer-persistence-enabled`,!0),has.add(`parquetlayer-cache-enabled`,!0),has.add(`parquetlayer-legacy-field-overrides-enabled`,!1),has.add(`sketch-layer-enabled`,!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`,64),has.add(`request-queue-concurrency-hosted`,16),has.add(`request-queue-concurrency-non-hosted`,16),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:im-shading`,!0),has.add(`enable-feature:im-vertex-normals`,!0),!has(`host-webworker`)&&has(`host-browser`)&&(has.add(`esri-csp-restrictions`,()=>{try{Function()}catch{return!0}return!1}),has.add(`esri-url-encodes-apostrophe`,()=>{let e=window.document.createElement(`a`);return e.href=`?'`,e.href.includes(`?%27`)}))})();export{has as default};
2
+ const e=globalThis,t={...e.esriConfig?.has};function has(n){return typeof t[n]==`function`?t[n]=t[n](e):t[n]}has.add=(e,n,r,i)=>{(i||t[e]===void 0)&&(t[e]=n),r&&has(e)},has.cache=t,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`,e.WorkerGlobalScope!==void 0&&self instanceof e.WorkerGlobalScope);let t=typeof window<`u`&&typeof location<`u`&&typeof document<`u`&&window.location===location&&window.document===document;if(has.add(`host-browser`,t),has.add(`host-node`,!!(typeof e.process==`object`&&e.process.versions?.node&&e.process.versions.v8)),has.add(`dom`,t),has(`host-browser`)){let e=navigator,t=e.userAgent,n=e.appVersion,r=parseFloat(n);if(has.add(`wp`,parseFloat(t.split(`Windows Phone`)[1])||void 0),has.add(`msapp`,parseFloat(t.split(`MSAppHost/`)[1])||void 0),has.add(`khtml`,n.includes(`Konqueror`)?r:void 0),has.add(`edge`,parseFloat(t.split(`Edge/`)[1])||void 0),has.add(`opr`,parseFloat(t.split(`OPR/`)[1])||void 0),has.add(`webkit`,!has(`wp`)&&!has(`edge`)&&parseFloat(t.split(`WebKit/`)[1])||void 0),has.add(`chrome`,!has(`edge`)&&!has(`opr`)&&parseFloat(t.split(`Chrome/`)[1])||void 0),has.add(`android`,!has(`wp`)&&parseFloat(t.split(`Android `)[1])||void 0),has.add(`safari`,n.includes(`Safari`)&&!has(`wp`)&&!has(`chrome`)&&!has(`android`)&&!has(`edge`)&&!has(`opr`)?parseFloat(n.split(`Version/`)[1]):void 0),has.add(`mac`,n.includes(`Macintosh`)),!has(`wp`)&&/(iPhone|iPod|iPad)/.test(t)){let e=RegExp.$1.replace(/P/,`p`),n=/OS ([\d_]+)/.test(t)?RegExp.$1:`1`,r=parseFloat(n.replace(/_/,`.`).replaceAll(`_`,``));has.add(e,r),has.add(`ios`,r)}has(`webkit`)||(t.includes(`Gecko`)&&!has(`wp`)&&!has(`khtml`)&&!has(`edge`)&&has.add(`mozilla`,r),has(`mozilla`)&&has.add(`ff`,parseFloat(t.split(`Firefox/`)[1]||t.split(`Minefield/`)[1])||void 0))}})(),(()=>{if(e.navigator){let e=navigator.userAgent,t=/Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini|IEMobile/i.test(e),n=/iPhone/i.test(e);t&&has.add(`esri-mobile`,t),n&&has.add(`esri-iPhone`,n),has.add(`esri-geolocation`,!!navigator.geolocation)}has.add(`esri-wasm`,`WebAssembly`in e),has.add(`esri-temporal`,`Temporal`in e),has.add(`esri-performance-mode-frames-between-render`,20),has.add(`esri-force-performance-mode`,!1),has.add(`esri-shared-array-buffer`,()=>{let t=`SharedArrayBuffer`in e,n=e.crossOriginIsolated===!1;return t&&!n}),has.add(`wasm-simd`,()=>WebAssembly.validate(new Uint8Array([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]))),has.add(`esri-atomics`,`Atomics`in e),has.add(`esri-workers`,`Worker`in e),has.add(`web-feat:cache`,`caches`in e),has.add(`esri-workers-arraybuffer-transfer`,!has(`safari`)||Number(has(`safari`))>=12),has.add(`min-workers-pool-size`,2),has.add(`max-workers-pool-size`,has(`esri-mobile`)?3:8),has.add(`featurelayer-simplify-thresholds`,[.5,.5,.5,.5]),has.add(`featurelayer-simplify-payload-size-factors`,[1,1,4]),has.add(`featurelayer-animation-enabled`,!0),has.add(`featurelayer-hybrid-tile-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-allow-editable`,!1),has.add(`featurelayer-snapshot-coverage`,.1),has.add(`featurelayer-pixel-buffering-enabled`,!0),has.add(`featurelayer-query-max-depth`,4),has.add(`featurelayer-query-max-page-size`,8e3),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-snapping-density-sample-interval`,10),has.add(`featurelayer-snapping-density-max-vertices-per-feature`,16),has.add(`featurelayer-snapping-density-max-distance`,8),has.add(`featurelayer-advanced-symbols`,!1),has.add(`featurelayer-pbf`,!0),has.add(`featurelayer-pbf-statistics`,!0),has.add(`featurelayer-pbf-true-curves`,!0),has.add(`feature-layers-workers`,!0),has.add(`feature-polyline-generalization-factor`,1),has.add(`featurelayer-relative-time-queries-enabled`,!0),has.add(`featurelayer-relative-time-queries-bin-window-public`,1),has.add(`featurelayer-relative-time-queries-bin-window-private`,60),has.add(`parquetlayer-full-query-feature-count`,5e5),has.add(`parquetlayer-persistence-enabled`,!0),has.add(`parquetlayer-cache-enabled`,!0),has.add(`parquetlayer-legacy-field-overrides-enabled`,!1),has.add(`sketch-layer-enabled`,!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`,64),has.add(`request-queue-concurrency-hosted`,16),has.add(`request-queue-concurrency-non-hosted`,16),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:im-shading`,!0),has.add(`enable-feature:im-vertex-normals`,!0),!has(`host-webworker`)&&has(`host-browser`)&&(has.add(`esri-csp-restrictions`,()=>{try{Function()}catch{return!0}return!1}),has.add(`esri-url-encodes-apostrophe`,()=>{let e=window.document.createElement(`a`);return e.href=`?'`,e.href.includes(`?%27`)}))})();export{has as default};
package/core/workers.d.ts CHANGED
@@ -50,6 +50,7 @@ export interface OpenOptions extends AbortOptions {
50
50
  * Set to `true` when loading a custom ES module worker.
51
51
  * The default is `false` for backward compatibility with legacy AMD custom workers. Loading custom workers this way is deprecated.
52
52
  *
53
+ * @deprecated since version 5.2. This option is temporary and will be removed at version 6.0 when custom worker modules default to ESM. Until then, migrate custom workers to ES modules and set this option to `true`.
53
54
  * @default false
54
55
  * @since 5.2
55
56
  */
@@ -18,9 +18,9 @@ export interface MeshLocalVertexSpaceProperties extends Partial<Pick<MeshLocalVe
18
18
  * [Mesh.spatialReference](https://developers.arcgis.com/javascript/latest/references/core/geometry/Mesh/#spatialReference). For example, with WGS84 the origin contains longitude,
19
19
  * latitude, and elevation values; with Web Mercator it contains Web Mercator x, y, and z values.
20
20
  *
21
- * In a global scene with WGS84, CGCS2000, or Web Mercator, the SDK places the model on a
22
- * [local tangent plane](https://en.wikipedia.org/wiki/Local_tangent_plane_coordinates) at the origin. The x-axis points
23
- * east, the y-axis points north, and the z-axis points up.
21
+ * In a global scene with WGS84, CGCS2000, or Web Mercator, the SDK places the model in a
22
+ * [local tangent plane](https://en.wikipedia.org/wiki/Local_tangent_plane_coordinates)
23
+ * on the ellipsoid at the origin. The x-axis points east, the y-axis points north, and the z-axis points up.
24
24
  *
25
25
  * The word local refers to local coordinates from the source model. It does not mean this vertex space is used for
26
26
  * a [local](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/#viewingMode) SceneView. For local scenes, use
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{clamp as e,floatEqualUlp as t}from"../../core/mathUtils.js";import n from"../Extent.js";function r(e){return e}function i(e=Q){return r([e[0],e[1],e[2],e[3]])}function a(e){return r([e[0],e[1],e[2],e[3]])}function o(e,t){return e!==t&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3]),e}function s(e,t,n,r,a=i()){return a[0]=e,a[1]=t,a[2]=n,a[3]=r,a}function c(e,t=i()){return t[0]=e.xmin,t[1]=e.ymin,t[2]=e.xmax,t[3]=e.ymax,t}function l(e,t,r=new n){return r.xmin=e[0],r.ymin=e[1],r.xmax=e[2],r.ymax=e[3],r.spatialReference=t,r}function u(e,t){t[0]<e[0]&&(e[0]=t[0]),t[0]>e[2]&&(e[2]=t[0]),t[1]<e[1]&&(e[1]=t[1]),t[1]>e[3]&&(e[3]=t[1])}function d(e,t){t<e[0]&&(e[0]=t),t>e[2]&&(e[2]=t)}function f(e,t){t<e[1]&&(e[1]=t),t>e[3]&&(e[3]=t)}function p(e,{xmin:t,ymin:n,xmax:r,ymax:i}){e[0]=Math.min(e[0],t),e[1]=Math.min(e[1],n),e[2]=Math.max(e[2],r),e[3]=Math.max(e[3],i)}function m(e,t,n){if(t==null)o(n,e);else if(`length`in t)U(t)?(n[0]=Math.min(e[0],t[0]),n[1]=Math.min(e[1],t[1]),n[2]=Math.max(e[2],t[2]),n[3]=Math.max(e[3],t[3])):(t.length===2||t.length===3)&&(n[0]=Math.min(e[0],t[0]),n[1]=Math.min(e[1],t[1]),n[2]=Math.max(e[2],t[0]),n[3]=Math.max(e[3],t[1]));else switch(t.type){case`extent`:n[0]=Math.min(e[0],t.xmin),n[1]=Math.min(e[1],t.ymin),n[2]=Math.max(e[2],t.xmax),n[3]=Math.max(e[3],t.ymax);break;case`point`:n[0]=Math.min(e[0],t.x),n[1]=Math.min(e[1],t.y),n[2]=Math.max(e[2],t.x),n[3]=Math.max(e[3],t.y)}}function h(e,t){e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[2]),e[3]=Math.max(e[3],t[3])}function g(e,t,n=e){let r=t.length,i=e[0],a=e[1],o=e[2],s=e[3];for(let e=0;e<r;e++){let n=t[e];i=Math.min(i,n[0]),a=Math.min(a,n[1]),o=Math.max(o,n[0]),s=Math.max(s,n[1])}return n[0]=i,n[1]=a,n[2]=o,n[3]=s,n}function _(e){for(let t=0;t<4;t++)if(!isFinite(e[t]))return!1;return!0}function v(e){return e==null||e[0]>=e[2]?0:e[2]-e[0]}function y(e){return e==null||e[1]>=e[3]?0:e[3]-e[1]}function b(e){return v(e)*y(e)}function x(e){return v(e)>0&&y(e)>0}function S(e,t=[0,0]){return t[0]=(e[0]+e[2])/2,t[1]=(e[1]+e[3])/2,t}function C(e){let t=v(e),n=y(e);return Math.sqrt(t*t+n*n)}function w(e,t){return O(e,t[0],t[1])}function T(e,t){let n=t.radius,r=(e[0]+e[2])*.5,i=Math.abs(t.center[0]-r),a=(e[2]-e[0])*.5;if(i>n+a)return!1;let o=(e[1]+e[3])*.5,s=(e[3]-e[1])*.5,c=Math.abs(t.center[1]-o);if(c>n+s)return!1;if(i<a||c<s)return!0;let l=i-a,u=c-s;return l*l+u*u<=n*n}function E(e,t,n){let r=e[0],i=e[1],a=e[2],o=e[3],{x:s,y:c}=t,{x:l,y:u}=n,d=(e,t)=>(u-c)*e+(s-l)*t+(l*c-s*u)<0,f=d(r,o),p=d(a,o),m=d(a,i),h=d(r,i);return!(f===p&&p===m&&m===h&&h===f||s<r&&l<r||s>a&&l>a||c>o&&u>o||c<i&&u<i)}function D(e,t){return e?O(e,t.x,t.y):!1}function O(e,t,n){return t>=e[0]&&n>=e[1]&&t<=e[2]&&n<=e[3]}function k(e,t,n,r){return t>=e[0]-r&&n>=e[1]-r&&t<=e[2]+r&&n<=e[3]+r}function A(e,t,n){return t[0]>=e[0]-n&&t[1]>=e[1]-n&&t[0]<=e[2]+n&&t[1]<=e[3]+n}function j(e,t){return Math.max(t[0],e[0])<=Math.min(t[2],e[2])&&Math.max(t[1],e[1])<=Math.min(t[3],e[3])}function M(e,t,n){return Math.max(t[0],e[0])-n<=Math.min(t[2],e[2])&&Math.max(t[1],e[1])-n<=Math.min(t[3],e[3])}function N(e,t){return t[0]>=e[0]&&t[2]<=e[2]&&t[1]>=e[1]&&t[3]<=e[3]}function P(e,t,n){return t==null?o(n,e):(n[0]=Math.min(e[0],t[0]),n[1]=Math.min(e[1],t[1]),n[2]=Math.max(e[2],t[2]),n[3]=Math.max(e[3],t[3]),n)}function F(t,n,r){if(n==null)return o(r,t);let i=n[0],a=n[1],s=n[2],c=n[3];return r[0]=e(t[0],i,s),r[1]=e(t[1],a,c),r[2]=e(t[2],i,s),r[3]=e(t[3],a,c),r}function I(e,t){let n=(e[0]+e[2])/2,r=(e[1]+e[3])/2,i=Math.max(Math.abs(t[0]-n)-v(e)/2,0),a=Math.max(Math.abs(t[1]-r)-y(e)/2,0);return Math.sqrt(i*i+a*a)}function L(e,t){t[0]=e[2]-e[0],t[1]=e[3]-e[1]}function R(e,t,n,r){return r??=e,r[0]=e[0]+t,r[1]=e[1]+n,r[2]=e[2]+t,r[3]=e[3]+n,r}function z(e,t,n=e){return n[0]=e[0]-t,n[1]=e[1]-t,n[2]=e[2]+t,n[3]=e[3]+t,n}function B(e,t,n=e){return n[0]=t[0],n[1]=t[1],n!==e&&(n[2]=e[2],n[3]=e[3]),n}function V(e,t,n=e){return n[2]=t[0],n[3]=t[1],n!==e&&(n[0]=e[0],n[1]=e[1]),e}function H(e){return e?o(e,Z):i(Z)}function U(e){return e!=null&&e.length===4}function W(e){return(v(e)===0||!isFinite(e[0]))&&(y(e)===0||!isFinite(e[1]))}function G(e,t){return!U(e)||!U(t)?e==null&&t==null||e===t:e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function K(e,n,r){return e!=null&&n!=null&&e.every((e,i)=>t(e,n[i],r))}function q(e,t,n){return t==null?!1:n?n.contains(e[0],e[2],t[0])&&n.contains(e[0],e[2],t[2])&&t[1]>e[1]&&t[3]<e[3]:N(e,t)}function J(e,t,n){return e==null?!1:n?(n.contains(t[0],t[2],e[0])||n.contains(t[0],t[2],e[2])||n.contains(e[0],e[2],t[0]))&&!(e[1]>t[3]||e[3]<t[1]):j(e,t)}function Y(e,t){if(t.length!==4||e[0]===e[2]||e[1]===e[3])return!1;for(let n=0;n<t.length;n++){let r=t[n],i=t[(n+1)%t.length];if(r[0]!==e[0]&&r[0]!==e[2]||r[1]!==e[1]&&r[1]!==e[3])return!1;let a=r[1]===i[1]&&r[0]!==i[0],o=r[0]===i[0]&&r[1]!==i[1];if(!a&&!o)return!1}return!0}const X=r([-1/0,-1/0,1/0,1/0]),Z=r([1/0,1/0,-1/0,-1/0]),Q=r([0,0,0,0]),$=r([0,0,1,1]);export{_ as allFinite,K as almostEquals,b as area,S as center,a as clone,N as contains,w as containsPoint,D as containsPointObject,A as containsPointWithMargin,O as containsXY,k as containsXYWithMargin,o as copy,i as create,C as diagonal,I as distance,H as empty,G as equals,Y as equalsPoints,m as expand,p as expandExtentInPlace,u as expandPointInPlace,g as expandWithNestedArray,h as expandWithRect,d as expandXInPlace,f as expandYInPlace,c as fromExtent,s as fromValues,x as hasArea,y as height,F as intersection,j as intersects,E as intersectsSegment,T as intersectsSphere,M as intersectsWithMargin,U as is,W as isPoint,Z as negativeInfinity,R as offset,z as pad,X as positiveInfinity,q as rectangleContainsRectangleCyclicalAware,J as rectanglesIntersectCyclicalAware,V as setMax,B as setMin,L as size,l as toExtent,P as union,$ as unit,v as width,Q as zero};
2
+ import{clamp as e,floatEqualUlp as t}from"../../core/mathUtils.js";import n from"../Extent.js";function r(e){return e}function i(e=$){return r([e[0],e[1],e[2],e[3]])}function a(e){return r([e[0],e[1],e[2],e[3]])}function o(e,t){return e!==t&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3]),e}function s(e,t,n,r,a=i()){return a[0]=e,a[1]=t,a[2]=n,a[3]=r,a}function c(e,t=i()){return t[0]=e.xmin,t[1]=e.ymin,t[2]=e.xmax,t[3]=e.ymax,t}function l(e,t,r=new n){return r.xmin=e[0],r.ymin=e[1],r.xmax=e[2],r.ymax=e[3],r.spatialReference=t,r}function u(e,t){d(e,t[0],t[1])}function d(e,t,n){f(e,t),p(e,n)}function f(e,t){t<e[0]&&(e[0]=t),t>e[2]&&(e[2]=t)}function p(e,t){t<e[1]&&(e[1]=t),t>e[3]&&(e[3]=t)}function m(e,{xmin:t,ymin:n,xmax:r,ymax:i}){e[0]=Math.min(e[0],t),e[1]=Math.min(e[1],n),e[2]=Math.max(e[2],r),e[3]=Math.max(e[3],i)}function h(e,t,n){if(t==null)o(n,e);else if(`length`in t)W(t)?(n[0]=Math.min(e[0],t[0]),n[1]=Math.min(e[1],t[1]),n[2]=Math.max(e[2],t[2]),n[3]=Math.max(e[3],t[3])):(t.length===2||t.length===3)&&(n[0]=Math.min(e[0],t[0]),n[1]=Math.min(e[1],t[1]),n[2]=Math.max(e[2],t[0]),n[3]=Math.max(e[3],t[1]));else switch(t.type){case`extent`:n[0]=Math.min(e[0],t.xmin),n[1]=Math.min(e[1],t.ymin),n[2]=Math.max(e[2],t.xmax),n[3]=Math.max(e[3],t.ymax);break;case`point`:n[0]=Math.min(e[0],t.x),n[1]=Math.min(e[1],t.y),n[2]=Math.max(e[2],t.x),n[3]=Math.max(e[3],t.y)}}function g(e,t){e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[2]),e[3]=Math.max(e[3],t[3])}function _(e,t,n=e){let r=t.length,i=e[0],a=e[1],o=e[2],s=e[3];for(let e=0;e<r;e++){let n=t[e];i=Math.min(i,n[0]),a=Math.min(a,n[1]),o=Math.max(o,n[0]),s=Math.max(s,n[1])}return n[0]=i,n[1]=a,n[2]=o,n[3]=s,n}function v(e){for(let t=0;t<4;t++)if(!isFinite(e[t]))return!1;return!0}function y(e){return e==null||e[0]>=e[2]?0:e[2]-e[0]}function b(e){return e==null||e[1]>=e[3]?0:e[3]-e[1]}function x(e){return y(e)*b(e)}function S(e){return y(e)>0&&b(e)>0}function C(e,t=[0,0]){return t[0]=(e[0]+e[2])/2,t[1]=(e[1]+e[3])/2,t}function w(e){let t=y(e),n=b(e);return Math.sqrt(t*t+n*n)}function T(e,t){return k(e,t[0],t[1])}function E(e,t){let n=t.radius,r=(e[0]+e[2])*.5,i=Math.abs(t.center[0]-r),a=(e[2]-e[0])*.5;if(i>n+a)return!1;let o=(e[1]+e[3])*.5,s=(e[3]-e[1])*.5,c=Math.abs(t.center[1]-o);if(c>n+s)return!1;if(i<a||c<s)return!0;let l=i-a,u=c-s;return l*l+u*u<=n*n}function D(e,t,n){let r=e[0],i=e[1],a=e[2],o=e[3],{x:s,y:c}=t,{x:l,y:u}=n,d=(e,t)=>(u-c)*e+(s-l)*t+(l*c-s*u)<0,f=d(r,o),p=d(a,o),m=d(a,i),h=d(r,i);return!(f===p&&p===m&&m===h&&h===f||s<r&&l<r||s>a&&l>a||c>o&&u>o||c<i&&u<i)}function O(e,t){return e?k(e,t.x,t.y):!1}function k(e,t,n){return t>=e[0]&&n>=e[1]&&t<=e[2]&&n<=e[3]}function A(e,t,n,r){return t>=e[0]-r&&n>=e[1]-r&&t<=e[2]+r&&n<=e[3]+r}function j(e,t,n){return t[0]>=e[0]-n&&t[1]>=e[1]-n&&t[0]<=e[2]+n&&t[1]<=e[3]+n}function M(e,t){return Math.max(t[0],e[0])<=Math.min(t[2],e[2])&&Math.max(t[1],e[1])<=Math.min(t[3],e[3])}function N(e,t,n){return Math.max(t[0],e[0])-n<=Math.min(t[2],e[2])&&Math.max(t[1],e[1])-n<=Math.min(t[3],e[3])}function P(e,t){return t[0]>=e[0]&&t[2]<=e[2]&&t[1]>=e[1]&&t[3]<=e[3]}function F(e,t,n){return t==null?o(n,e):(n[0]=Math.min(e[0],t[0]),n[1]=Math.min(e[1],t[1]),n[2]=Math.max(e[2],t[2]),n[3]=Math.max(e[3],t[3]),n)}function I(t,n,r){if(n==null)return o(r,t);let i=n[0],a=n[1],s=n[2],c=n[3];return r[0]=e(t[0],i,s),r[1]=e(t[1],a,c),r[2]=e(t[2],i,s),r[3]=e(t[3],a,c),r}function L(e,t){let n=(e[0]+e[2])/2,r=(e[1]+e[3])/2,i=Math.max(Math.abs(t[0]-n)-y(e)/2,0),a=Math.max(Math.abs(t[1]-r)-b(e)/2,0);return Math.sqrt(i*i+a*a)}function R(e,t){t[0]=e[2]-e[0],t[1]=e[3]-e[1]}function z(e,t,n,r){return r??=e,r[0]=e[0]+t,r[1]=e[1]+n,r[2]=e[2]+t,r[3]=e[3]+n,r}function B(e,t,n=e){return n[0]=e[0]-t,n[1]=e[1]-t,n[2]=e[2]+t,n[3]=e[3]+t,n}function V(e,t,n=e){return n[0]=t[0],n[1]=t[1],n!==e&&(n[2]=e[2],n[3]=e[3]),n}function H(e,t,n=e){return n[2]=t[0],n[3]=t[1],n!==e&&(n[0]=e[0],n[1]=e[1]),e}function U(e){return e?o(e,Q):i(Q)}function W(e){return e!=null&&e.length===4}function G(e){return(y(e)===0||!isFinite(e[0]))&&(b(e)===0||!isFinite(e[1]))}function K(e,t){return!W(e)||!W(t)?e==null&&t==null||e===t:e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function q(e,n,r){return e!=null&&n!=null&&e.every((e,i)=>t(e,n[i],r))}function J(e,t,n){return t==null?!1:n?n.contains(e[0],e[2],t[0])&&n.contains(e[0],e[2],t[2])&&t[1]>e[1]&&t[3]<e[3]:P(e,t)}function Y(e,t,n){return e==null?!1:n?(n.contains(t[0],t[2],e[0])||n.contains(t[0],t[2],e[2])||n.contains(e[0],e[2],t[0]))&&!(e[1]>t[3]||e[3]<t[1]):M(e,t)}function X(e,t){if(t.length!==4||e[0]===e[2]||e[1]===e[3])return!1;for(let n=0;n<t.length;n++){let r=t[n],i=t[(n+1)%t.length];if(r[0]!==e[0]&&r[0]!==e[2]||r[1]!==e[1]&&r[1]!==e[3])return!1;let a=r[1]===i[1]&&r[0]!==i[0],o=r[0]===i[0]&&r[1]!==i[1];if(!a&&!o)return!1}return!0}const Z=r([-1/0,-1/0,1/0,1/0]),Q=r([1/0,1/0,-1/0,-1/0]),$=r([0,0,0,0]),ee=r([0,0,1,1]);export{v as allFinite,q as almostEquals,x as area,C as center,a as clone,P as contains,T as containsPoint,O as containsPointObject,j as containsPointWithMargin,k as containsXY,A as containsXYWithMargin,o as copy,i as create,w as diagonal,L as distance,U as empty,K as equals,X as equalsPoints,h as expand,m as expandExtentInPlace,u as expandPointInPlace,_ as expandWithNestedArray,g as expandWithRect,f as expandXInPlace,d as expandXYInPlace,p as expandYInPlace,c as fromExtent,s as fromValues,S as hasArea,b as height,I as intersection,M as intersects,D as intersectsSegment,E as intersectsSphere,N as intersectsWithMargin,W as is,G as isPoint,Q as negativeInfinity,z as offset,B as pad,Z as positiveInfinity,J as rectangleContainsRectangleCyclicalAware,Y as rectanglesIntersectCyclicalAware,H as setMax,V as setMin,R as size,l as toExtent,F as union,ee as unit,y as width,$ as zero};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../../../core/Error.js";import{clone as t}from"../../../core/lang.js";import{throwIfAborted as n}from"../../../core/promiseUtils.js";import r from"../MeshVertexAttributes.js";import{addMeshCloneContext as i}from"./meshCloneUtils.js";import{convertVertexSpace as a}from"./vertexSpaceConversion.js";async function o(o,s,c){await Promise.resolve(),n(c);let l=a(o,s,{useEllipsoid:c?.useEllipsoid});if(!l)throw new e(`meshUtils:convertVertexSpace()`,`Failed to convert to provided vertex space due to projection errors`);return o.clone(i(void 0,{vertexAttributes:new r({...l,uv:t(o.vertexAttributes.uv),color:t(o.vertexAttributes.color)}),vertexSpace:s,transform:null}))}export{o as convertMeshVertexSpace};
2
+ import e from"../../../core/Error.js";import{clone as t}from"../../../core/lang.js";import{throwIfAborted as n}from"../../../core/promiseUtils.js";import r from"../MeshVertexAttributes.js";import{addMeshCloneContext as i}from"./meshCloneUtils.js";import{convertVertexSpace as a}from"./vertexSpaceConversion.js";async function o(o,s,c){await Promise.resolve(),n(c);let l=a(o,s);if(!l)throw new e(`meshUtils:convertVertexSpace()`,`Failed to convert to provided vertex space due to projection errors`);return o.clone(i(void 0,{vertexAttributes:new r({...l,uv:t(o.vertexAttributes.uv),color:t(o.vertexAttributes.color)}),vertexSpace:s,transform:null}))}export{o as convertMeshVertexSpace};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../../../core/Logger.js";import{floatEqualUlp as t}from"../../../core/mathUtils.js";import{getMetersPerCartesianUnitForSR as n,convertUnit as r}from"../../../core/units.js";import{normalFromMat4 as i}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as a}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{exactEquals as o,scale as s,invert as c,copy as l,multiply as u}from"../../../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as d,create as f}from"../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{negate as p,subtract as m,transformMat4 as h}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{create as g}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{isEarth as _}from"../../ellipsoidUtils.js";import{WGS84ECEFSpatialReference as v,getSphericalPCPF as y}from"../../spatialReferenceEllipsoidUtils.js";import{computeTranslationToOriginAndRotation as b}from"../../projection/computeTranslationToOriginAndRotation.js";import{projectPointToVector as x}from"../../projection/projectPointToVector.js";import{isRelativeVertexSpace as ee,vertexSpaceEquals as te}from"../meshVertexSpaceUtils.js";import{a as S,t as C,b as w}from"../../../chunks/vec3.js";import{logProjectionError as T,projectToPCPF as E,projectNormalToPCPF as D,projectTangentToPCPF as O,transformNormal as k,transformTangent as A,projectFromPCPF as ne,projectNormalFromPCPF as j,projectTangentFromPCPF as M}from"./projection.js";const N=()=>e.getLogger(`esri.geometry.support.meshUtils.vertexSpaceConversion`);function P(e,t,{vertexSpace:n,spatialReference:r}){if(n.type===`georeferenced`){let i=e;if(!x(t,i,r))return!1;let{origin:a}=n;return m(e,i,a),!0}let i=y(r),a=e;if(!x(t,a,i))return!1;let{origin:o}=n,s=$;if(!b(r,o,s,i))return!1;let l=c($,s);return l!=null&&(h(e,a,l),!0)}function F(e,t,n){let{vertexSpace:r,transform:i,vertexAttributes:a}=e,s=ee(r)?i:null,c=q(e.spatialReference,n,3);if(te(r,t)&&(!s||o(s.localMatrix,d))&&J(c)){let{position:e,normal:t,tangent:r}=a,i=n?.allowBufferReuse;return{position:i?e:e.slice(),normal:i?t:t?.slice(),tangent:i?r:r?.slice()}}switch(e.vertexSpace.type){case`local`:return t.type===`local`?V(e,e.vertexSpace,t.origin,n):R(e,e.vertexSpace,t.origin,n);case`georeferenced`:return t.type===`local`?z(e,e.vertexSpace,t.origin,n):I(e,e.vertexSpace,t.origin,n)}}function I({vertexAttributes:e,transform:t,spatialReference:n},{origin:r},i,a){let o=q(n,a,3),s=r||!J(o)?l(X,t?.localMatrix??d):null;s&&K(s,n,a,3);let{position:c,normal:u,tangent:f}=s?H(e,s):e,m=a?.allowBufferReuse,h=m?c:new Float64Array(c.length),g=c;if(r&&(g=S(h,g,r)),i){let e=p(Q,i);g=S(h,g,e)}return{position:g===e.position&&!m?g.slice():g,normal:u===e.normal&&!m?u?.slice():u,tangent:f===e.tangent&&!m?f?.slice():f}}function L(e,t){return t?.useEllipsoid&&_(e)?v:y(e)}function R({spatialReference:e,vertexAttributes:t,transform:n},{origin:r},i,a){let o=L(e,a);if(!b(e,r,X,o))return T(N(),e,o),null;n&&u(X,X,n.localMatrix),K(X,e,a,1);let s=new Float64Array(t.position.length),c=U(t.position,X,e,s,o);if(!c)return null;let l=W(c,e,s,o,t.normal,X);if(t.normal&&!l)return null;let d=G(c,e,s,o,t.tangent,X);if(t.tangent&&!d)return null;if(i){let e=p(Q,i);S(c,c,e)}return{position:c,normal:l,tangent:d}}function z({vertexAttributes:e,spatialReference:t,transform:n},{origin:r},a,o){let l=L(t,o);if(!b(t,a,X,l))return T(N(),t,l),null;let u=1/q(t,o,2);s(X,X,[u,u,u]);let d=c(Z,X),{position:f,normal:p,tangent:m}=B(e,r,n),h=new Float64Array(f.length),g=re(f,t,d,h,l);if(!g)return null;let _=i(oe,d),v=ie(p,f,t,h,l,_,p===e.normal?void 0:p);if(!v&&p)return null;let y=ae(m,f,t,h,l,_,m===e.tangent?void 0:m);return!y&&m?null:{position:g,normal:v,tangent:y}}function B(e,t,n){if(!t)return e;if(!n){let{position:n,normal:r,tangent:i}=e;return{position:S(new Float64Array(n.length),n,t),tangent:i,normal:r}}let r=H(e,n.localMatrix);return S(r.position,r.position,t),r}function V({vertexAttributes:e,spatialReference:t,transform:n},{origin:r},i,a){let o=L(t,a);if(!b(t,r,X,o))return T(N(),t,o),null;if(n&&u(X,X,n.localMatrix),!b(t,i,Z,o))return T(N(),o,t),null;c(Z,Z);let s=u(X,Z,X);return K(s,t,a,3),H(e,s)}function H(e,t){let n=new Float64Array(e.position.length);C(n,e.position,t);let r=e.normal?new Float32Array(e.normal.length):null,i=e.tangent?new Float32Array(e.tangent.length):null;return r&&e.normal&&k(e.normal,r,t),i&&e.tangent&&A(e.tangent,i,t),{position:n,normal:r,tangent:i}}function U(e,t,n,r,i){C(r,e,t);let a=new Float64Array(e.length);return ne(r,i,a,n)?a:(T(N(),i,n),null)}function W(e,t,n,r,i,a){if(i==null)return null;let o=new Float32Array(i.length);return k(i,o,a),j(o,e,t,n,r,o)?o:(T(N(),r,t),null)}function G(e,t,n,r,i,a){if(i==null)return null;let o=new Float32Array(i.length);return A(i,o,a),M(o,e,t,n,r,o)?o:(T(N(),r,t),null)}function K(e,t,n,r){let i=q(t,n,r);J(i)||s(e,e,[i,i,i])}function q(e,t,n){let r=!!(n&1),i=!!(n&2),a=t?.sourceUnit,o=t?.targetUnit;if(!a&&!o)return 1;let s=Y(a,e);!r&&a&&!J(s)&&(N().warn(`source unit conversion not supported`),s=1);let c=1/Y(o,e);return!i&&o&&!J(c)&&(N().warn(`target unit conversion not supported`),c=1),s*c}function J(e){return t(e,1)}function re(e,t,n,r,i){let a=E(e,t,r,i);if(!a)return T(N(),t,i),null;let o=new Float64Array(a.length);return C(o,a,n),o}function ie(e,t,n,r,i,a,o){if(e==null)return null;let s=o??new Float32Array(e.length);return D(e,t,n,r,i,s)?(w(s,s,a),s):(T(N(),n,i),null)}function ae(e,t,n,r,i,a,o){if(e==null)return null;let s=o??new Float32Array(e.length);return O(e,t,n,r,i,s)?(w(s,s,a,4),s):(T(N(),n,i),null)}function Y(e,t){if(e==null)return 1;let i=n(t);return 1/r(i,`meters`,e)}const X=f(),Z=f(),oe=a(),Q=g(),$=f();export{F as convertVertexSpace,Y as getUnitToSpatialReferenceScaleConversion,P as projectPointToVertexSpace};
2
+ import e from"../../../core/Logger.js";import{floatEqualUlp as t}from"../../../core/mathUtils.js";import{getMetersPerCartesianUnitForSR as n,convertUnit as r}from"../../../core/units.js";import{normalFromMat4 as i}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as a}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{exactEquals as o,scale as s,invert as c,copy as l,multiply as u}from"../../../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as d,create as f}from"../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{negate as p,subtract as m,transformMat4 as h}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{create as g}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{isEarth as _}from"../../ellipsoidUtils.js";import{WGS84ECEFSpatialReference as v,getSphericalPCPF as y}from"../../spatialReferenceEllipsoidUtils.js";import{computeTranslationToOriginAndRotation as b}from"../../projection/computeTranslationToOriginAndRotation.js";import{projectPointToVector as x}from"../../projection/projectPointToVector.js";import{isRelativeVertexSpace as S,vertexSpaceEquals as C}from"../meshVertexSpaceUtils.js";import{a as w,t as T,b as E}from"../../../chunks/vec3.js";import{logProjectionError as D,projectToPCPF as O,projectNormalToPCPF as k,projectTangentToPCPF as ee,transformNormal as A,transformTangent as j,projectFromPCPF as M,projectNormalFromPCPF as N,projectTangentFromPCPF as P}from"./projection.js";const F=()=>e.getLogger(`esri.geometry.support.meshUtils.vertexSpaceConversion`);function te(e,t,{vertexSpace:n,spatialReference:r}){if(n.type===`georeferenced`){let i=e;if(!x(t,i,r))return!1;let{origin:a}=n;return m(e,i,a),!0}let i=I(r),a=e;if(!x(t,a,i))return!1;let{origin:o}=n,s=$;if(!b(r,o,s,i))return!1;let l=c($,s);return l!=null&&(h(e,a,l),!0)}function ne(e,t,n){let{vertexSpace:r,transform:i,vertexAttributes:a}=e,s=S(r)?i:null,c=q(e.spatialReference,n,3);if(C(r,t)&&(!s||o(s.localMatrix,d))&&J(c)){let{position:e,normal:t,tangent:r}=a,i=n?.allowBufferReuse;return{position:i?e:e.slice(),normal:i?t:t?.slice(),tangent:i?r:r?.slice()}}switch(e.vertexSpace.type){case`local`:return t.type===`local`?V(e,e.vertexSpace,t.origin,n):ie(e,e.vertexSpace,t.origin,n);case`georeferenced`:return t.type===`local`?z(e,e.vertexSpace,t.origin,n):re(e,e.vertexSpace,t.origin,n)}}function re({vertexAttributes:e,transform:t,spatialReference:n},{origin:r},i,a){let o=q(n,a,3),s=r||!J(o)?l(X,t?.localMatrix??d):null;s&&K(s,n,a,3);let{position:c,normal:u,tangent:f}=s?H(e,s):e,m=a?.allowBufferReuse,h=m?c:new Float64Array(c.length),g=c;if(r&&(g=w(h,g,r)),i){let e=p(Q,i);g=w(h,g,e)}return{position:g===e.position&&!m?g.slice():g,normal:u===e.normal&&!m?u?.slice():u,tangent:f===e.tangent&&!m?f?.slice():f}}function I(e){return e==null||_(e)?v:y(e)}function ie(e,t,n,r){let{spatialReference:i,vertexAttributes:a}=e,o=I(i),s=R(e,t,r);if(!s)return null;let c=new Float64Array(a.position.length),l=U(a.position,s,i,c,o);if(!l)return null;let u=W(l,i,c,o,a.normal,s);if(a.normal&&!u)return null;let d=G(l,i,c,o,a.tangent,s);if(a.tangent&&!d)return null;if(n){let e=p(Q,n);w(l,l,e)}return{position:l,normal:u,tangent:d}}function L(e,t,n){let r=R(e,t);if(!r)return null;let i=H(e.vertexAttributes,r),a=I(e.spatialReference);return M(i.position,a,i.position,n)?i:(D(F(),a,n),null)}function R({spatialReference:e,transform:t},{origin:n},r){let i=I(e);return b(e,n,X,i)?(t&&u(X,X,t.localMatrix),K(X,e,r,1),X):(D(F(),e,i),null)}function z({vertexAttributes:e,spatialReference:t,transform:n},{origin:r},a,o){let l=I(t);if(!b(t,a,X,l))return D(F(),t,l),null;let u=1/q(t,o,2);s(X,X,[u,u,u]);let d=c(Z,X),{position:f,normal:p,tangent:m}=B(e,r,n),h=new Float64Array(f.length),g=ae(f,t,d,h,l);if(!g)return null;let _=i(ce,d),v=oe(p,f,t,h,l,_,p===e.normal?void 0:p);if(!v&&p)return null;let y=se(m,f,t,h,l,_,m===e.tangent?void 0:m);return!y&&m?null:{position:g,normal:v,tangent:y}}function B(e,t,n){if(!t)return e;if(!n){let{position:n,normal:r,tangent:i}=e;return{position:w(new Float64Array(n.length),n,t),tangent:i,normal:r}}let r=H(e,n.localMatrix);return w(r.position,r.position,t),r}function V({vertexAttributes:e,spatialReference:t,transform:n},{origin:r},i,a){let o=I(t);if(!b(t,r,X,o))return D(F(),t,o),null;if(n&&u(X,X,n.localMatrix),!b(t,i,Z,o))return D(F(),o,t),null;c(Z,Z);let s=u(X,Z,X);return K(s,t,a,3),H(e,s)}function H(e,t){let n=new Float64Array(e.position.length);T(n,e.position,t);let r=e.normal?new Float32Array(e.normal.length):null,i=e.tangent?new Float32Array(e.tangent.length):null;return r&&e.normal&&A(e.normal,r,t),i&&e.tangent&&j(e.tangent,i,t),{position:n,normal:r,tangent:i}}function U(e,t,n,r,i){T(r,e,t);let a=new Float64Array(e.length);return M(r,i,a,n)?a:(D(F(),i,n),null)}function W(e,t,n,r,i,a){if(i==null)return null;let o=new Float32Array(i.length);return A(i,o,a),N(o,e,t,n,r,o)?o:(D(F(),r,t),null)}function G(e,t,n,r,i,a){if(i==null)return null;let o=new Float32Array(i.length);return j(i,o,a),P(o,e,t,n,r,o)?o:(D(F(),r,t),null)}function K(e,t,n,r){let i=q(t,n,r);J(i)||s(e,e,[i,i,i])}function q(e,t,n){let r=!!(n&1),i=!!(n&2),a=t?.sourceUnit,o=t?.targetUnit;if(!a&&!o)return 1;let s=Y(a,e);!r&&a&&!J(s)&&(F().warn(`source unit conversion not supported`),s=1);let c=1/Y(o,e);return!i&&o&&!J(c)&&(F().warn(`target unit conversion not supported`),c=1),s*c}function J(e){return t(e,1)}function ae(e,t,n,r,i){let a=O(e,t,r,i);if(!a)return D(F(),t,i),null;let o=new Float64Array(a.length);return T(o,a,n),o}function oe(e,t,n,r,i,a,o){if(e==null)return null;let s=o??new Float32Array(e.length);return k(e,t,n,r,i,s)?(E(s,s,a),s):(D(F(),n,i),null)}function se(e,t,n,r,i,a,o){if(e==null)return null;let s=o??new Float32Array(e.length);return ee(e,t,n,r,i,s)?(E(s,s,a,4),s):(D(F(),n,i),null)}function Y(e,t){if(e==null)return 1;let i=n(t);return 1/r(i,`meters`,e)}const X=f(),Z=f(),ce=a(),Q=g(),$=f();export{ne as convertVertexSpace,Y as getUnitToSpatialReferenceScaleConversion,L as projectLocalVertexSpaceToPCPF,te as projectPointToVertexSpace};