@arcgis/core 5.1.0-next.54 → 5.1.0-next.55

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 (190) hide show
  1. package/analysis/VolumeMeasurement/volumeMeasurementConfiguration.js +1 -1
  2. package/applications/Components/navigationDuration.d.ts +15 -0
  3. package/applications/Components/navigationDuration.js +2 -0
  4. package/assets/esri/core/workers/RemoteClient.js +1 -1
  5. package/assets/esri/core/workers/chunks/05bc675c029ed311427f.js +1 -0
  6. package/assets/esri/core/workers/chunks/{123e15c9e068a053d54e.js → 05d25a98c54679233902.js} +1 -1
  7. package/assets/esri/core/workers/chunks/{16a46688df5fad5cf8d5.js → 0b4a2361b9f9a6c0b8a7.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{1fdd736c4932655ff1d9.js → 0e88e61d89f89994c4bf.js} +1 -1
  9. package/assets/esri/core/workers/chunks/0f2ab57e4eb722b3b0c0.js +1 -0
  10. package/assets/esri/core/workers/chunks/{ce59ec4f0cfbdf780bcb.js → 1f91280032aa42b1585b.js} +1 -1
  11. package/assets/esri/core/workers/chunks/254898b41cabe313b6ce.js +1 -0
  12. package/assets/esri/core/workers/chunks/26cafd20c8d03c274389.js +1 -0
  13. package/assets/esri/core/workers/chunks/{a69f1879735a031f62e9.js → 2a2d5f9ea42cb2eee9c6.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{c03190faca955bffc8c1.js → 2bc6edeb3156d241677b.js} +1 -1
  15. package/assets/esri/core/workers/chunks/{d587b7842091affdaac3.js → 3158a3487d3e8a61b680.js} +1 -1
  16. package/assets/esri/core/workers/chunks/{07e791530677f7e70f32.js → 3a2ecb883fdb5c598544.js} +2 -2
  17. package/assets/esri/core/workers/chunks/{d7456829e404874a9e2f.js → 3e0752a81a7247c567ab.js} +1 -1
  18. package/assets/esri/core/workers/chunks/{fcda652fb5262696d59c.js → 3ef740d25dc17bef11b2.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{2304f7b8173cf86dd805.js → 457bbf27e9bc18132464.js} +1 -1
  20. package/assets/esri/core/workers/chunks/45eddf3918973fa8d751.js +1 -0
  21. package/assets/esri/core/workers/chunks/4a6186001323b47c23a4.js +1 -0
  22. package/assets/esri/core/workers/chunks/{0b79630ad435a7734104.js → 4b3622fc355fd2fd8678.js} +1 -1
  23. package/assets/esri/core/workers/chunks/{193775b3b7de8f5dc578.js → 4fb718174c6e07d752e0.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{cd14b6157862f33ab116.js → 5143f74f1fe7533a6069.js} +1 -1
  25. package/assets/esri/core/workers/chunks/{36425d29aaa5852cb41d.js → 522bc1d79dbe957301e4.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{f80f04657762666b9165.js → 52dbfd7519555028a8af.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{f4472e3486fdc33abb9a.js → 56bce3a6701f8549606b.js} +1 -1
  28. package/assets/esri/core/workers/chunks/572fcd33ae3648ed4f9c.js +1 -0
  29. package/assets/esri/core/workers/chunks/{d6f1ed8d8f76a32bc81d.js → 576a1784e93c5406e657.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{ddc7956d80498518551e.js → 5a1d975b3e9e6b7eff67.js} +1 -1
  31. package/assets/esri/core/workers/chunks/5a83ea967ecde01d5622.js +1 -0
  32. package/assets/esri/core/workers/chunks/{4c38af9ae023fde2b5cd.js → 5aff2d6ae0d2a2d92ecc.js} +1 -1
  33. package/assets/esri/core/workers/chunks/5eb9fdb076488de9cd83.js +1 -0
  34. package/assets/esri/core/workers/chunks/{b59f03c64e4965d87291.js → 66fc3c4d6c54eee231b9.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{de359f89e03da18999fc.js → 691d0a60354b6458b9de.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{d44217de4c73475f9c66.js → 73a045061e69a22b6869.js} +1 -1
  37. package/assets/esri/core/workers/chunks/76064c2c801da55cd844.js +1 -0
  38. package/assets/esri/core/workers/chunks/770880ad43f252962017.js +1 -0
  39. package/assets/esri/core/workers/chunks/{52c90975cf22add7ee2b.js → 78cb6b9ab32abdd1d530.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{11fed97adc9bca0f95e9.js → 7b6e3cc086d13da770fa.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{d69cdee402ba4fc3735f.js → 7ed2aa1092c0a2c839c0.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{097c037705ab485372ee.js → 83113a9e284701d053b5.js} +1 -1
  43. package/assets/esri/core/workers/chunks/8418ad9ad7b6481ebe82.js +1 -0
  44. package/assets/esri/core/workers/chunks/{173d94e162b210dee0a2.js → 85c72d9fa533552a6e8a.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{5d202f60891fcae7174d.js → 861a7d0e665add901e11.js} +1 -1
  46. package/assets/esri/core/workers/chunks/{16ed8c0af8bb8b400163.js → 87077f4cbca13e030411.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{199f70c0373f6008a545.js → 8df0c154bb0d79a905c0.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{0f4759efc0982fb0ea03.js → 9066f095f16448c0a04e.js} +1 -1
  49. package/assets/esri/core/workers/chunks/91718795fc4ca6516ac7.js +1 -0
  50. package/assets/esri/core/workers/chunks/{796d27d1bbb2eed53cbd.js → 9321f5ec514805307219.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{57dc80942e51dedd8335.js → 93d1118f7a909d123b40.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{e6220c1fa887e21ffbbd.js → 9a235c92f21df2c17aa8.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{6666ef3fd6ce877a4509.js → 9d11e7972bc298cb94ce.js} +1 -1
  54. package/assets/esri/core/workers/chunks/a11f05ddd8314b648f76.js +1 -0
  55. package/assets/esri/core/workers/chunks/{d4961d307651431328a8.js → a256edc8337e462f80f0.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{2714ec856c2b3223425b.js → a41fabf8b2cf15b7d0c9.js} +1 -1
  57. package/assets/esri/core/workers/chunks/{e2d1d9929ed7744785a1.js → a7a553e245ba011d259f.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{7ef1c1f765b6d423e474.js → a9eb90b901e64e67b7a3.js} +1 -1
  59. package/assets/esri/core/workers/chunks/{21decfc1e477fb769204.js → aa7aaeae31ddb259e55e.js} +1 -1
  60. package/assets/esri/core/workers/chunks/{a7b315a660f0f4e1d197.js → ad1946c084219bb678a0.js} +1 -1
  61. package/assets/esri/core/workers/chunks/b056b4c79bcd542dd1d2.js +1 -0
  62. package/assets/esri/core/workers/chunks/{bae1d6dd2376dff271e8.js → b1a0a7cdaf50f98adb3e.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{c1ad062ccc1817cbee4c.js → b20f4c82d0b44fdb4670.js} +1 -1
  64. package/assets/esri/core/workers/chunks/{1a1e57267306c07e5bdb.js → b3f0600729227b458a75.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{16f5cd740321a3539bf1.js → bacc343a79828e456de7.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{e23fc5853e2f4016936b.js → c250799c131aa4ed2c35.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{a495e60996a36ce19a32.js → c4da2ca1dee0c44051d0.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{be60a6e210186ff09ae2.js → c6149e0ac1c103e03baf.js} +1 -1
  69. package/assets/esri/core/workers/chunks/c69fefe9d51ac7c2b0a6.js +1 -0
  70. package/assets/esri/core/workers/chunks/{bbb9659f79511c2c4690.js → c91d39e8e14be3d8bdf5.js} +1 -1
  71. package/assets/esri/core/workers/chunks/{c93454e37ae0f124bcb0.js → c9c5e6996f36ec4b1558.js} +1 -1
  72. package/assets/esri/core/workers/chunks/{4c8c69d081ed37bf5bc5.js → cd391415b8b8320e12e4.js} +1 -1
  73. package/assets/esri/core/workers/chunks/d3b3e8c6d7096bc59489.js +1 -0
  74. package/assets/esri/core/workers/chunks/{bad82ce3f84f7efb7ab7.js → da2a10e72a315c3c1f82.js} +1 -1
  75. package/assets/esri/core/workers/chunks/de79645e559a2d1ffa67.js +1 -0
  76. package/assets/esri/core/workers/chunks/{8569ae372fc64641b6b1.js → e2e3c39876bbe019c57a.js} +1 -1
  77. package/assets/esri/core/workers/chunks/{d31e68e73527c88b8276.js → e7e565e7c0ce1464c6b0.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{f3f26f6116ab9126c2e7.js → e8a23ae30d586e3a973c.js} +1 -1
  79. package/assets/esri/core/workers/chunks/{d1aa1d51662f4a01e793.js → ea068f75397c3b3337ec.js} +3 -3
  80. package/assets/esri/core/workers/chunks/{c09bc36347e8eb9fff00.js → f09446b9ff937a84d6d3.js} +1 -1
  81. package/assets/esri/core/workers/chunks/{354b309c8225336bc1e5.js → f6d047358d14328f3622.js} +1 -1
  82. package/assets/esri/core/workers/chunks/{b43889ed9737c27e89f1.js → fb9a889ec9fd23739a14.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{b2a67fe89f6505498bc3.js → fe1b67ab7748a3aef231.js} +1 -1
  84. package/assets/esri/themes/base/_Ui.scss +3 -3
  85. package/assets/esri/themes/base/_mixins.scss +2 -2
  86. package/assets/esri/themes/base/widgets/_Attachments.scss +3 -3
  87. package/assets/esri/themes/base/widgets/_BasemapGallery.scss +8 -8
  88. package/assets/esri/themes/base/widgets/_BasemapToggle.scss +1 -1
  89. package/assets/esri/themes/base/widgets/_BuildingExplorer.scss +1 -1
  90. package/assets/esri/themes/base/widgets/_BuildingLevelPicker.scss +4 -4
  91. package/assets/esri/themes/base/widgets/_BuildingPhasePicker.scss +1 -1
  92. package/assets/esri/themes/base/widgets/_CoordinateConversion.scss +2 -2
  93. package/assets/esri/themes/base/widgets/_DatePicker.scss +4 -4
  94. package/assets/esri/themes/base/widgets/_Daylight.scss +1 -1
  95. package/assets/esri/themes/base/widgets/_Editor.scss +2 -2
  96. package/assets/esri/themes/base/widgets/_ElevationProfile.scss +2 -2
  97. package/assets/esri/themes/base/widgets/_FeatureMedia.scss +1 -1
  98. package/assets/esri/themes/base/widgets/_FeatureTable.scss +1 -1
  99. package/assets/esri/themes/base/widgets/_FloorFilter.scss +2 -2
  100. package/assets/esri/themes/base/widgets/_Grid.scss +1 -1
  101. package/assets/esri/themes/base/widgets/_GridControls.scss +1 -1
  102. package/assets/esri/themes/base/widgets/_ItemList.scss +1 -1
  103. package/assets/esri/themes/base/widgets/_Legend.scss +1 -1
  104. package/assets/esri/themes/base/widgets/_LineOfSight.scss +1 -1
  105. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +1 -1
  106. package/assets/esri/themes/base/widgets/_OrientedImageryViewerNavigationUI.scss +3 -3
  107. package/assets/esri/themes/base/widgets/_Popup.scss +1 -1
  108. package/assets/esri/themes/base/widgets/_Print.scss +3 -3
  109. package/assets/esri/themes/base/widgets/_Sketch.scss +1 -1
  110. package/assets/esri/themes/base/widgets/_Slice.scss +1 -1
  111. package/assets/esri/themes/base/widgets/_Slider.scss +3 -3
  112. package/assets/esri/themes/base/widgets/_SnappingControls.scss +2 -2
  113. package/assets/esri/themes/base/widgets/_Spinner.scss +2 -2
  114. package/assets/esri/themes/base/widgets/_Swipe.scss +2 -2
  115. package/assets/esri/themes/base/widgets/_Tooltip.scss +2 -2
  116. package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +1 -1
  117. package/assets/esri/themes/base/widgets/_VideoPlayer.scss +2 -2
  118. package/assets/esri/themes/base/widgets/_Widget.scss +8 -8
  119. package/assets/esri/themes/dark/main.css +1 -1
  120. package/assets/esri/themes/light/main.css +1 -1
  121. package/assets/esri/themes/light/view.css +1 -1
  122. package/chunks/CutFillComposition.glsl.js +10 -4
  123. package/chunks/RibbonLine.glsl.js +75 -63
  124. package/chunks/Water.glsl.js +24 -16
  125. package/config.js +1 -1
  126. package/geometry/operators/offsetOperator.d.ts +1 -1
  127. package/geometry/operators/proximityOperator.d.ts +1 -1
  128. package/geometry/support/curves/bezierCurveUtils.js +1 -1
  129. package/geometry/support/curves/circularArcUtils.js +1 -1
  130. package/geometry/support/curves/ellipticArc4Utils.js +1 -1
  131. package/geometry/support/curves/ellipticArc7Utils.js +1 -1
  132. package/geometry/support/zscale.js +1 -1
  133. package/interfaces.d.ts +7 -0
  134. package/kernel.js +1 -1
  135. package/layers/LinkChartLayer.js +1 -1
  136. package/layers/OrientedImageryLayer.d.ts +0 -152
  137. package/layers/OrientedImageryLayer.js +1 -1
  138. package/layers/support/layerUtils.js +1 -1
  139. package/package.json +1 -1
  140. package/portal/schemas/definitions.js +1 -1
  141. package/support/revision.js +1 -1
  142. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  143. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
  144. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  145. package/views/3d/interactive/manipulators/ShiftManipulator.js +1 -1
  146. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  147. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  148. package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
  149. package/views/3d/layers/graphics/lineUtils.js +1 -1
  150. package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
  151. package/views/3d/support/gaussianSplatting/GaussianSplatFadeHelper.js +1 -1
  152. package/views/3d/support/gaussianSplatting/GaussianTile.js +1 -1
  153. package/views/3d/terrain/TerrainRenderer.js +1 -1
  154. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  155. package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js +1 -1
  156. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js +1 -1
  157. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  158. package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +1 -1
  159. package/views/3d/webgl-engine/lib/CutFillVisualizationRenderNode.js +1 -1
  160. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  161. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  162. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  163. package/views/3d/webgl-engine/materials/PolygonOffset.js +1 -1
  164. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  165. package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
  166. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  167. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  168. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  169. package/views/3d/webgl.js +1 -1
  170. package/views/draw/plugins/TangentArcSegmentPlugin.js +2 -0
  171. package/views/webgl/checkWebGLError.js +1 -1
  172. package/widgets/Sketch/support/PluginManager.js +1 -1
  173. package/assets/esri/core/workers/chunks/0ab19ad980fda1cf402a.js +0 -1
  174. package/assets/esri/core/workers/chunks/1cce2f8837ad765acf44.js +0 -1
  175. package/assets/esri/core/workers/chunks/20f9f3470cad47d01803.js +0 -1
  176. package/assets/esri/core/workers/chunks/23a9070e9362b8439770.js +0 -1
  177. package/assets/esri/core/workers/chunks/28ac3a75130fe2b57ac7.js +0 -1
  178. package/assets/esri/core/workers/chunks/36a0e48113ab59a4f21d.js +0 -1
  179. package/assets/esri/core/workers/chunks/440a650ed0867a16f559.js +0 -1
  180. package/assets/esri/core/workers/chunks/440f76c397a813b0dcf9.js +0 -1
  181. package/assets/esri/core/workers/chunks/5344919fc6e8050450f1.js +0 -1
  182. package/assets/esri/core/workers/chunks/5e9bd5ed6ecee5b15127.js +0 -1
  183. package/assets/esri/core/workers/chunks/64845b1f53eca9db1229.js +0 -1
  184. package/assets/esri/core/workers/chunks/7278cc37e85f0242f19b.js +0 -1
  185. package/assets/esri/core/workers/chunks/7d56b2ac5030dd8b748e.js +0 -1
  186. package/assets/esri/core/workers/chunks/96e799ca97989a6ed448.js +0 -1
  187. package/assets/esri/core/workers/chunks/9db2ff1d4cbb5d1b623e.js +0 -1
  188. package/assets/esri/core/workers/chunks/ab414a60808ea05a63e6.js +0 -1
  189. package/assets/esri/core/workers/chunks/ec65c9c72507ef9a9cf9.js +0 -1
  190. package/assets/esri/core/workers/chunks/f1767b8ba82fdd9bd947.js +0 -1
@@ -1,6 +1,9 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{create as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ScreenSpacePass as r}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{Float4PassUniform as o}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as l}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{NoParameters as i}from"../views/webgl/NoParameters.js";import{ShaderBuilder as a}from"../views/webgl/ShaderBuilder.js";class m extends i{constructor(){super(...arguments),this.borderColor=e()}}function c(){const e=new a;return e.include(r),e.outputs.add("fragColor","vec4",0),e.fragment.uniforms.add(new t("colorTexture",e=>e.color),new t("cutFillVolumes",e=>e.cutFillVolumes),new t("cutFillMask",e=>e.cutFillMask),new s("pixelRatio",(e,r)=>r.camera.pixelRatio),new o("borderColor",e=>e.borderColor)).main.add(l`vec4 color = texture(colorTexture, uv, 0.0);
3
- vec4 volumesColor = texture(cutFillVolumes, uv, 0.0);
2
+ import{create as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ScreenSpacePass as r}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{Float4PassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as o}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{NoParameters as i}from"../views/webgl/NoParameters.js";import{ShaderBuilder as c}from"../views/webgl/ShaderBuilder.js";class a extends i{constructor(){super(...arguments),this.borderColor=e()}}function u(){const e=new c;return e.include(r),e.outputs.add("fragColor","vec4",0),e.fragment.uniforms.add(new s("colorTexture",e=>e.color),new s("cutVolume",e=>e.cutVolume),new s("fillVolume",e=>e.fillVolume),new s("cutFillMask",e=>e.cutFillMask),new s("depthTexture",e=>e.sceneDepth),new s("cutFillReferenceDepthTexture",e=>e.referenceDepth),new l("pixelRatio",(e,r)=>r.camera.pixelRatio),new t("borderColor",e=>e.borderColor)).main.add(o`vec4 color = texture(colorTexture, uv, 0.0);
3
+ vec4 cutVolume = texture(cutVolume, uv, 0.0);
4
+ vec4 fillVolume = texture(fillVolume, uv, 0.0);
5
+ float sceneDepth = texture(depthTexture, uv, 0.0).r;
6
+ float referenceDepth = texture(cutFillReferenceDepthTexture, uv, 0.0).r;
4
7
  ivec2 iuv = ivec2(uv * vec2(textureSize(cutFillMask, 0)));
5
8
  vec2 m0 = texelFetch(cutFillMask, iuv, 0).rg;
6
9
  vec2 m1 = texelFetch(cutFillMask, iuv + ivec2(-1, 0), 0).rg;
@@ -13,5 +16,8 @@ step(1.5, abs(m0.r - m1.r) + abs(m0.g - m1.g))
13
16
  + step(1.5, abs(m0.r - m3.r) + abs(m0.g - m3.g))
14
17
  + step(1.5, abs(m0.r - m4.r) + abs(m0.g - m4.g))
15
18
  ) * 0.25 * pixelRatio;
16
- vec4 base = mix(color, volumesColor, max(m0.r, m0.g) * volumesColor.a);
17
- fragColor = mix(base, borderColor, d);`),e}const u=Object.freeze(Object.defineProperty({__proto__:null,CutFillCompositionPassParameters:m,build:c},Symbol.toStringTag,{value:"Module"}));export{m as C,u as a,c as b};
19
+ float visibleAgainstScene = step(referenceDepth, sceneDepth);
20
+ vec4 base = mix(color, cutVolume, m0.r * cutVolume.a * visibleAgainstScene);
21
+ base = mix(base, fillVolume, m0.g * fillVolume.a);
22
+ float borderFade = mix(0.5, 1.0, visibleAgainstScene);
23
+ fragColor = mix(base, borderColor, d * borderFade);`),e}const m=Object.freeze(Object.defineProperty({__proto__:null,CutFillCompositionPassParameters:a,build:u},Symbol.toStringTag,{value:"Module"}));export{a as C,m as a,u as b};
@@ -1,20 +1,21 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- 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{positionOutsideClipSpace as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{terrainDepthTest as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as d,NoPerspectiveRead as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as m,addPixelRatio as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as u}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 D,If as x}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as L}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{alphaCutoff as w}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{AnimatedLine as b}from"../views/3d/webgl-engine/shaders/AnimatedLine.glsl.js";import{outputColorHighlightOLID as y}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as P}from"../views/webgl/ShaderBuilder.js";const j=1;function z(z){const C=new P,{attributes:W,varyings:R,vertex:F,fragment:A}=C,{applyMarkerOffset:V,draped:T,output:E,capType:O,stippleEnabled:N,falloffEnabled:M,roundJoins:$,wireframe:_,innerColorEnabled:k,hasAnimation:I,hasScreenSizePerspective:B,worldSizedImagePattern:H}=z;A.include(a),C.include(t,z),C.include(n,z),C.include(i,z),C.include(l,z),C.include(b,z);const J=V&&!T;J&&(F.uniforms.add(new S("markerScale",e=>e.markerScale)),C.include(o,{space:2,hasScreenSizePerspective:B})),m(F,z),F.uniforms.add(new L("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new f("nearFar",e=>e.camera.nearFar),new S("miterLimit",e=>"miter"!==e.join?0:e.miterLimit),new g("viewport",e=>e.camera.fullViewport)),F.constants.add("LARGE_HALF_FLOAT","float",65500),W.add("position","vec3"),W.add("previousDelta","vec4"),W.add("nextDelta","vec4"),W.add("lineParameters","vec2"),W.add("u0","float"),R.add("vColor","vec4"),R.add("vpos","vec3",{invariant:!0}),R.add("vLineDistance","float"),R.add("vLineWidth","float");const U=N;U&&R.add("vLineSizeInv","float");const G=2===O,q=N&&G,K=M||q;K&&R.add("vLineDistanceNorm","float"),G&&(R.add("vSegmentSDF","float"),R.add("vReverseSegmentSDF","float")),F.code.add(D`vec2 perpendicular(vec2 v) {
3
- return vec2(v.y, -v.x);
2
+ 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 o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as r}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{positionOutsideClipSpace as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{terrainDepthTest as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as p,NoPerspectiveRead as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as m,addPixelRatio as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as x}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as S,If as D}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as w}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{alphaCutoff as L}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{AnimatedLine as b}from"../views/3d/webgl-engine/shaders/AnimatedLine.glsl.js";import{outputColorHighlightOLID as y}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as z}from"../views/webgl/ShaderBuilder.js";const P=1;function j(j){const C=new z,{attributes:W,varyings:R,vertex:F,fragment:A}=C,{applyMarkerOffset:V,draped:T,output:E,capType:N,stippleEnabled:O,falloffEnabled:M,roundJoins:$,wireframe:_,innerColorEnabled:k,hasAnimation:I,hasScreenSizePerspective:B,worldSizedImagePattern:H}=j;A.include(a),C.include(t,j),C.include(n,j),C.include(i,j),C.include(l,j),C.include(b,j);const J=V&&!T;J&&(F.uniforms.add(new u("markerScale",e=>e.markerScale)),C.include(r,{space:2,hasScreenSizePerspective:B})),m(F,j),F.uniforms.add(new w("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new f("nearFar",e=>e.camera.nearFar),new u("miterLimit",e=>"miter"!==e.join?0:e.miterLimit),new g("viewport",e=>e.camera.fullViewport)),F.constants.add("LARGE_HALF_FLOAT","float",65500),W.add("position","vec3"),W.add("previousDelta","vec4"),W.add("nextDelta","vec4"),W.add("lineParameters","vec2"),W.add("u0","float"),R.add("vColor","vec4"),R.add("vpos","vec3",{invariant:!0}),R.add("vLineDistance","float"),R.add("vLineWidth","float");const U=O;U&&R.add("vLineSizeInv","float");const Z=2===N,G=O&&Z,X=M||G;X&&R.add("vLineDistanceNorm","float"),Z&&(R.add("vSegmentSDF","float"),R.add("vReverseSegmentSDF","float")),F.code.add(S`vec3 perpendicular(vec3 v) {
3
+ return vec3(v.y, -v.x, 0.0);
4
4
  }
5
5
  float interp(float ncp, vec4 a, vec4 b) {
6
6
  return (-ncp - a.z) / (b.z - a.z);
7
7
  }
8
- vec2 rotate(vec2 v, float a) {
8
+ vec3 rotateZ(vec3 v, float a) {
9
9
  float s = sin(a);
10
10
  float c = cos(a);
11
11
  mat2 m = mat2(c, -s, s, c);
12
- return m * v;
13
- }`),F.code.add(D`vec4 projectAndScale(vec4 pos) {
12
+ return vec3(m * v.xy, v.z);
13
+ }`),F.code.add(S`vec4 projectAndScale(vec4 pos) {
14
14
  vec4 posNdc = proj * pos;
15
15
  posNdc.xy *= viewport.zw / posNdc.w;
16
+ posNdc.z /= posNdc.w;
16
17
  return posNdc;
17
- }`),F.code.add(D`void clip(
18
+ }`),F.code.add(S`void clip(
18
19
  inout vec4 pos,
19
20
  inout vec4 prev,
20
21
  inout vec4 next,
@@ -45,7 +46,7 @@ if (next.z > -nearFar[0]) {
45
46
  next = mix(next, pos, interp(vnp, next, pos));
46
47
  }
47
48
  }
48
- }`),v(F),F.constants.add("aaWidth","float",N?0:1).main.add(D`
49
+ }`),v(F),F.constants.add("aaWidth","float",O?0:1).main.add(S`
49
50
  // unpack values from vertex type
50
51
  bool isStartVertex = abs(abs(lineParameters.y) - 3.0) == 1.0;
51
52
  vec3 prevPosition = position + previousDelta.xyz * previousDelta.w;
@@ -64,11 +65,11 @@ next = mix(next, pos, interp(vnp, next, pos));
64
65
  vec4 next = view * vec4(nextPosition, 1.0);
65
66
 
66
67
  bool isJoin = abs(lineParameters.y) < 3.0;
67
- `),J&&F.main.add(D`vec4 other = isStartVertex ? next : prev;
68
+ `),J&&F.main.add(S`vec4 other = isStartVertex ? next : prev;
68
69
  bool markersHidden = areWorldMarkersHidden(pos.xyz, other.xyz);
69
70
  if (!isJoin && !markersHidden) {
70
71
  pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
71
- }`),C.include(d),F.main.add(D`
72
+ }`),C.include(p),F.main.add(S`
72
73
  clip(pos, prev, next, isStartVertex);
73
74
 
74
75
  vec3 clippedPos = pos.xyz;
@@ -80,24 +81,24 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
80
81
  next = projectAndScale(next);
81
82
  prev = projectAndScale(prev);
82
83
 
83
- vec2 left = (pos.xy - prev.xy);
84
- vec2 right = (next.xy - pos.xy);
84
+ vec3 left = (pos.xyz - prev.xyz);
85
+ vec3 right = (next.xyz - pos.xyz);
85
86
 
86
87
  float leftLen = length(left);
87
88
  float rightLen = length(right);
88
89
 
89
- float lineSize = getSize(${x(B,"clippedPos")});
90
- ${x(N&&B,"float patternLineSize = getSize(clippedCenter);")}
91
- ${x(N&&!B,"float patternLineSize = lineSize;")}
90
+ float lineSize = getSize(${D(B,"clippedPos")});
91
+ ${D(O&&B,"float patternLineSize = getSize(clippedCenter);")}
92
+ ${D(O&&!B,"float patternLineSize = lineSize;")}
92
93
 
93
- ${x(H,D`
94
+ ${D(H,S`
94
95
  lineSize += aaWidth;
95
96
  float lineWidth = lineSize * pixelRatio * worldToScreenRatio;
96
97
  if (lineWidth < 1.0) {
97
98
  coverage = lineWidth;
98
99
  lineWidth = 1.0;
99
100
  }
100
- `,D`
101
+ `,S`
101
102
  if (lineSize < 1.0) {
102
103
  coverage = lineSize; // convert sub-pixel coverage to alpha
103
104
  lineSize = 1.0;
@@ -108,21 +109,22 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
108
109
  `)}
109
110
 
110
111
  vLineWidth = noPerspectiveWrite(lineWidth, pos.w);
111
- ${U?D`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:""}
112
- `);(N||G)&&F.main.add(D`
112
+ ${U?S`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:""}
113
+ `);(O||Z)&&F.main.add(S`
113
114
  float isEndVertex = float(!isStartVertex);
114
- vec2 segmentOrigin = mix(pos.xy, prev.xy, isEndVertex);
115
- vec2 segment = mix(right, left, isEndVertex);
116
- ${G?D`vec2 segmentEnd = mix(next.xy, pos.xy, isEndVertex);`:""}
117
- `),F.main.add(D`left = (leftLen > 0.001) ? left/leftLen : vec2(0.0, 0.0);
118
- right = (rightLen > 0.001) ? right/rightLen : vec2(0.0, 0.0);
119
- vec2 capDisplacementDir = vec2(0, 0);
120
- vec2 joinDisplacementDir = vec2(0, 0);
115
+ vec3 segmentOrigin = mix(pos.xyz, prev.xyz, isEndVertex);
116
+ vec3 segment = mix(right, left, isEndVertex);
117
+ ${Z?S`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:""}
118
+ `),F.main.add(S`left = (leftLen > 0.001) ? left/leftLen : vec3(0.0, 0.0, 0.0);
119
+ right = (rightLen > 0.001) ? right/rightLen : vec3(0.0, 0.0, 0.0);
120
+ vec3 segmentDirection = isStartVertex ? right : left;
121
+ vec3 capDisplacementDir = vec3(0.0, 0.0, 0.0);
122
+ vec3 joinDisplacementDir = vec3(0.0, 0.0, 0.0);
121
123
  float displacementLen = lineWidth;
122
124
  if (isJoin) {
123
125
  bool isOutside = (left.x * right.y - left.y * right.x) * lineParameters.y > 0.0;
124
- joinDisplacementDir = normalize(left + right);
125
- joinDisplacementDir = perpendicular(joinDisplacementDir);
126
+ vec3 joinDirection = normalize(left + right);
127
+ joinDisplacementDir = perpendicular(joinDirection);
126
128
  if (leftLen > 0.001 && rightLen > 0.001) {
127
129
  float nDotSeg = dot(joinDisplacementDir, left);
128
130
  displacementLen /= length(nDotSeg * left - joinDisplacementDir);
@@ -131,18 +133,18 @@ displacementLen = min(displacementLen, min(leftLen, rightLen)/abs(nDotSeg));
131
133
  }
132
134
  }
133
135
  float subdivisionFactor = lineParameters.x;
134
- if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),$?F.main.add(D`
135
- vec2 startDir = leftLen < 0.001 ? right : left;
136
+ if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),$?F.main.add(S`
137
+ vec3 startDir = leftLen < 0.001 ? right : left;
136
138
  startDir = perpendicular(startDir);
137
139
 
138
- vec2 endDir = rightLen < 0.001 ? left : right;
140
+ vec3 endDir = rightLen < 0.001 ? left : right;
139
141
  endDir = perpendicular(endDir);
140
142
 
141
- float factor = ${N?D`min(1.0, subdivisionFactor * ${D.float((j+2)/(j+1))})`:D`subdivisionFactor`};
143
+ float factor = ${O?S`min(1.0, subdivisionFactor * ${S.float((P+2)/(P+1))})`:S`subdivisionFactor`};
142
144
 
143
- float rotationAngle = acos(clamp(dot(startDir, endDir), -1.0, 1.0));
144
- joinDisplacementDir = rotate(startDir, -sign(lineParameters.y) * factor * rotationAngle);
145
- `):F.main.add(D`if (leftLen < 0.001) {
145
+ float rotationAngle = acos(clamp(dot(startDir.xy, endDir.xy), -1.0, 1.0));
146
+ joinDisplacementDir = rotateZ(startDir, -sign(lineParameters.y) * factor * rotationAngle);
147
+ `):F.main.add(S`if (leftLen < 0.001) {
146
148
  joinDisplacementDir = right;
147
149
  }
148
150
  else if (rightLen < 0.001) {
@@ -151,7 +153,7 @@ joinDisplacementDir = left;
151
153
  else {
152
154
  joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? right : left;
153
155
  }
154
- joinDisplacementDir = perpendicular(joinDisplacementDir);`);const Q=0!==O;return F.main.add(D`
156
+ joinDisplacementDir = perpendicular(joinDisplacementDir);`);const Y=0!==N;return F.main.add(S`
155
157
  displacementLen = lineWidth;
156
158
  }
157
159
  } else {
@@ -159,30 +161,39 @@ joinDisplacementDir = perpendicular(joinDisplacementDir);`);const Q=0!==O;return
159
161
  joinDisplacementDir = isStartVertex ? right : left;
160
162
  joinDisplacementDir = perpendicular(joinDisplacementDir);
161
163
 
162
- ${Q?D`capDisplacementDir = isStartVertex ? -right : left;`:""}
164
+ ${Y?S`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`:""}
163
165
  }
164
- `),F.main.add(D`
166
+ `),F.main.add(S`
165
167
  // Displacement (in pixels) caused by join/or cap
166
- vec2 dpos = joinDisplacementDir * sign(lineParameters.y) * displacementLen + capDisplacementDir * displacementLen;
168
+ vec2 dposXY = (joinDisplacementDir.xy * sign(lineParameters.y) + capDisplacementDir.xy) * displacementLen;
169
+
170
+ /**
171
+ * To prevent z-fighting between layers, we also adjust the z value.
172
+ * We want to ensure that the orientation of the final triangles is the same, regardless of the line width.
173
+ * To do so, the below formula projects the xy displacement onto the original segment direction
174
+ * to find the z-offset necessary so the triangle orientation is independent of the width.
175
+ */
176
+ float dposZ = dot(dposXY, segmentDirection.xy) / dot(segmentDirection.xy, segmentDirection.xy) * segmentDirection.z;
177
+ vec3 dpos = vec3(dposXY, dposZ);
167
178
  float lineDistNorm = noPerspectiveWrite(sign(lineParameters.y), pos.w);
168
179
 
169
180
  vLineDistance = lineWidth * lineDistNorm;
170
- ${K?D`vLineDistanceNorm = lineDistNorm;`:""}
181
+ ${X?S`vLineDistanceNorm = lineDistNorm;`:""}
171
182
 
172
- pos.xy += dpos;
173
- `),G&&F.main.add(D`vec2 segmentDir = normalize(segment);
174
- vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin, segmentDir)), pos.w);
175
- vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd, -segmentDir)), pos.w);`),N&&(T?F.uniforms.add(new u("worldToScreenRatio",e=>1/e.screenToPCSRatio)):F.main.add(D`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
176
- float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),F.main.add(D`float segmentLengthScreenDouble = length(segment);
183
+ pos.xyz += dpos;
184
+ `),Z&&F.main.add(S`vec2 segmentDir = normalize(segment.xy);
185
+ vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin.xy, segmentDir)), pos.w);
186
+ vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),O&&(T?F.uniforms.add(new x("worldToScreenRatio",e=>1/e.screenToPCSRatio)):F.main.add(S`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
187
+ float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),F.main.add(S`float segmentLengthScreenDouble = length(segment.xy);
177
188
  float segmentLengthScreen = segmentLengthScreenDouble * 0.5;
178
189
  float discreteWorldToScreenRatio = discretizeWorldToScreenRatio(worldToScreenRatio);
179
190
  float segmentLengthRender = length(mix(nextPosition - position, position - prevPosition, isEndVertex));
180
- vStipplePatternStretch = worldToScreenRatio / discreteWorldToScreenRatio;`),T?F.main.add(D`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteWorldToScreenRatio / worldToScreenRatio;
181
- float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):F.main.add(D`float startPseudoScreen = mix(u0, u0 - segmentLengthRender, isEndVertex) * discreteWorldToScreenRatio;
182
- float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),F.uniforms.add(new S("stipplePatternPixelSize",e=>r(e))),F.main.add(D`
191
+ vStipplePatternStretch = worldToScreenRatio / discreteWorldToScreenRatio;`),T?F.main.add(S`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteWorldToScreenRatio / worldToScreenRatio;
192
+ float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):F.main.add(S`float startPseudoScreen = mix(u0, u0 - segmentLengthRender, isEndVertex) * discreteWorldToScreenRatio;
193
+ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),F.uniforms.add(new u("stipplePatternPixelSize",e=>o(e))),F.main.add(S`
183
194
  float patternLength = patternLineSize * stipplePatternPixelSize;
184
195
 
185
- ${x(H,D`
196
+ ${D(H,S`
186
197
  float uu = mix(u0, u0 - segmentLengthRender, isEndVertex);
187
198
  vStippleDistanceLimits = vec2(uu, uu + segmentLengthRender);
188
199
  vStipplePatternStretch = 1.0;
@@ -190,7 +201,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
190
201
  // The v-coordinate used in case of an image pattern.
191
202
  bool isLeft = sign(lineParameters.y) < 0.0;
192
203
  vStippleV = isLeft ? 0.0 : 1.0;
193
- `,D`
204
+ `,S`
194
205
  // Compute the coordinates at both start and end of the line segment, because we need both to clamp to in the
195
206
  // fragment shader
196
207
  vStippleDistanceLimits = computeStippleDistanceLimits(startPseudoScreen, segmentLengthPseudoScreen, segmentLengthScreen, patternLength);
@@ -203,8 +214,8 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
203
214
  if (segmentLengthScreenDouble >= 0.001) {
204
215
  // Project the actual vertex position onto the line segment. Note that the resulting factor is within [0..1]
205
216
  // at the original vertex positions, and slightly outside of that range at the displaced positions
206
- vec2 stippleDisplacement = pos.xy - segmentOrigin;
207
- float stippleDisplacementFactor = dot(segment, stippleDisplacement) / (segmentLengthScreenDouble * segmentLengthScreenDouble);
217
+ vec3 stippleDisplacement = pos.xyz - segmentOrigin;
218
+ float stippleDisplacementFactor = dot(segment.xy, stippleDisplacement.xy) / (segmentLengthScreenDouble * segmentLengthScreenDouble);
208
219
 
209
220
  // Apply this offset to the actual vertex coordinate (can be screen or pseudo-screen space)
210
221
  vStippleDistance += (stippleDisplacementFactor - isEndVertex) * (vStippleDistanceLimits.y - vStippleDistanceLimits.x);
@@ -221,9 +232,10 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
221
232
  isStartVertex ?
222
233
  vec2(-1e34, vStippleDistanceLimits.y) :
223
234
  vec2(vStippleDistanceLimits.x, 1e34);
224
- `)),F.main.add(D`
235
+ `)),F.main.add(S`
225
236
  // Convert back into NDC
226
237
  pos.xy = (pos.xy / viewport.zw) * pos.w;
238
+ pos.z = pos.z * pos.w;
227
239
 
228
240
  vColor = getColor();
229
241
  vColor.a = noPerspectiveWrite(vColor.a * coverage, pos.w);
@@ -234,37 +246,37 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
234
246
  vpos = (inverseProjectionMatrix * pos).xyz;
235
247
  gl_Position = pos;
236
248
  forwardObjectAndLayerIdColor();
237
- }`),C.fragment.include(e,z),C.include(y,z),A.include(p),A.main.add(D`discardBySlice(vpos);
238
- discardByTerrainDepth();`),C.include(c),A.include(w),A.main.add(D`
249
+ }`),C.fragment.include(e,j),C.include(y,j),A.include(d),A.main.add(S`discardBySlice(vpos);
250
+ discardByTerrainDepth();`),C.include(c),A.include(L),A.main.add(S`
239
251
  float lineWidth = noPerspectiveRead(vLineWidth);
240
252
  float lineDistance = noPerspectiveRead(vLineDistance);
241
- ${x(K,D`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
242
- `),_?A.main.add(D`vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);`):(G&&A.main.add(D`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
253
+ ${D(X,S`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
254
+ `),_?A.main.add(S`vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);`):(Z&&A.main.add(S`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
243
255
  vec2 fragmentPosition = vec2(min(sdf, 0.0), lineDistance);
244
256
  float fragmentRadius = length(fragmentPosition);
245
257
  float fragmentCapSDF = (fragmentRadius - lineWidth) * 0.5;
246
258
  float capCoverage = clamp(0.5 - fragmentCapSDF, 0.0, 1.0);
247
259
  if (capCoverage < alphaCutoff) {
248
260
  discard;
249
- }`),q?A.main.add(D`vec2 stipplePosition = vec2(
261
+ }`),G?A.main.add(S`vec2 stipplePosition = vec2(
250
262
  min(getStippleSDF() * 2.0 - 1.0, 0.0),
251
263
  lineDistanceNorm
252
264
  );
253
265
  float stippleRadius = length(stipplePosition * lineWidth);
254
266
  float stippleCapSDF = (stippleRadius - lineWidth) * 0.5;
255
267
  float stippleCoverage = clamp(0.5 - stippleCapSDF, 0.0, 1.0);
256
- float stippleAlpha = step(alphaCutoff, stippleCoverage);`):A.main.add(D`float stippleAlpha = getStippleAlpha(lineWidth);`),11!==E&&A.main.add(D`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),C.include(c),A.uniforms.add(new h("intrinsicColor",e=>e.color)).main.add(D`vec4 color = intrinsicColor * vColor;
257
- color.a = noPerspectiveRead(color.a);`),k&&A.uniforms.add(new h("innerColor",e=>e.innerColor??e.color),new S("innerWidth",(e,i)=>e.innerWidth*i.camera.pixelRatio)).main.add(D`float distToInner = abs(lineDistance) - innerWidth;
268
+ float stippleAlpha = step(alphaCutoff, stippleCoverage);`):A.main.add(S`float stippleAlpha = getStippleAlpha(lineWidth);`),11!==E&&A.main.add(S`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),C.include(c),A.uniforms.add(new h("intrinsicColor",e=>e.color)).main.add(S`vec4 color = intrinsicColor * vColor;
269
+ color.a = noPerspectiveRead(color.a);`),k&&A.uniforms.add(new h("innerColor",e=>e.innerColor??e.color),new u("innerWidth",(e,i)=>e.innerWidth*i.camera.pixelRatio)).main.add(S`float distToInner = abs(lineDistance) - innerWidth;
258
270
  float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
259
271
  float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
260
- color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),A.main.add(D`vec4 finalColor = blendStipple(color, stippleAlpha);`),M&&(A.uniforms.add(new S("falloff",e=>e.falloff)),A.main.add(D`finalColor.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),N||A.main.add(D`float featherStartDistance = max(lineWidth - 2.0, 0.0);
272
+ color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),A.main.add(S`vec4 finalColor = blendStipple(color, stippleAlpha);`),M&&(A.uniforms.add(new u("falloff",e=>e.falloff)),A.main.add(S`finalColor.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),O||A.main.add(S`float featherStartDistance = max(lineWidth - 2.0, 0.0);
261
273
  float value = abs(lineDistance);
262
274
  float feather = (value - featherStartDistance) / (lineWidth - featherStartDistance);
263
- finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);`),I&&A.main.add(D`
275
+ finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);`),I&&A.main.add(S`
264
276
  finalColor = animate(finalColor);
265
277
 
266
- ${x(11!==E,D`
278
+ ${D(11!==E,S`
267
279
  if (finalColor.a <= alphaCutoff) {
268
280
  discard;
269
281
  }`)}
270
- `)),A.main.add(D`outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),C}const C=Object.freeze(Object.defineProperty({__proto__:null,build:z,ribbonlineNumRoundJoinSubdivisions:j},Symbol.toStringTag,{value:"Module"}));export{C as R,z as b,j as r};
282
+ `)),A.main.add(S`outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),C}const C=Object.freeze(Object.defineProperty({__proto__:null,build:j,ribbonlineNumRoundJoinSubdivisions:P},Symbol.toStringTag,{value:"Module"}));export{C as R,j as b,P as r};
@@ -1,14 +1,14 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- 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 o}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as i}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{WaterColor as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js";import{WaterDistortion as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js";import{ColorConversion as v}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(o),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`
3
- if (waterColor.a < ${h.float(j)}) {
2
+ import e from"../core/Error.js";import{isColor as r}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as o}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 a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{OutputHighlight as t}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientLighting as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js";import{addMainLightDirection as s,addMainLightIntensity as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDraw as c}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{WaterColor as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js";import{WaterDistortion as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js";import{ColorConversion as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as u,addCameraPosition as w}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as b}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOLID as y}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as j}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as L}from"../webscene/support/AlphaCutoff.js";function P(P){const C=new j,{vertex:x,fragment:S,varyings:_}=C,{output:D,draped:O,receiveShadows:M}=P;u(x,P),C.include(i),C.attributes.add("position","vec3"),C.attributes.add("uv0","vec2");const F=new f("waterColor",e=>e.color);if(_.add("vpos","vec3",{invariant:!0}),x.uniforms.add(F),r(D)){if(O)return x.main.add(b`
3
+ if (waterColor.a < ${b.float(L)}) {
4
4
  // Discard this vertex
5
5
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
6
6
  return;
7
7
  }
8
8
 
9
9
  vpos = position;
10
- gl_Position = transformPosition(proj, view, vpos);`),x.uniforms.add(_),x.main.add(h`fragColor = waterColor;`),C;C.include(l,L),S.add("vuv","vec2"),S.add("vnormal","vec3"),S.add("vtbnMatrix","mat3"),P.main.add(h`
11
- if (waterColor.a < ${h.float(j)}) {
10
+ gl_Position = transformPosition(proj, view, vpos);`),S.uniforms.add(F),S.main.add(b`fragColor = waterColor;`),C;C.include(d,P),_.add("vuv","vec2"),_.add("vnormal","vec3"),_.add("vtbnMatrix","mat3"),x.main.add(b`
11
+ if (waterColor.a < ${b.float(L)}) {
12
12
  // Discard this vertex
13
13
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
14
14
  return;
@@ -22,7 +22,7 @@ import{isColor as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutpu
22
22
  forwardViewPosDepth((view * vec4(vpos, 1.0)).xyz);
23
23
 
24
24
  gl_Position = transformPosition(proj, view, vpos);
25
- forwardLinearDepthToReadShadowMap();`)}switch(C.include(d,L),C.include(g,L),O){case 0:case 1:case 2:x.include(t,{pbrMode:0}),C.include(m),C.include(c,L),x.include(r,L),C.include(b,L),x.include(v),w(x,L),n(x),s(x),x.uniforms.add(_,new f("timeElapsed",({timeElapsed:e})=>e),P.uniforms.get("view"),P.uniforms.get("localOrigin")).main.add(h`
25
+ forwardLinearDepthToReadShadowMap();`)}switch(C.include(c,P),C.include(g,P),D){case 0:case 1:case 2:S.include(n,{pbrMode:0}),C.include(v),C.include(m,P),S.include(o,P),C.include(y,P),S.include(p),w(S,P),s(S),l(S),S.uniforms.add(F,new h("timeElapsed",({timeElapsed:e})=>e),x.uniforms.get("view"),x.uniforms.get("localOrigin")).main.add(b`
26
26
  discardBySlice(vpos);
27
27
  discardByTerrainDepth();
28
28
  vec3 localUp = vnormal;
@@ -32,13 +32,13 @@ import{isColor as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutpu
32
32
  // we rotate the normal according to the tangent-bitangent-normal-Matrix
33
33
  vec3 n = normalize(vtbnMatrix * tangentNormalFoam.xyz);
34
34
  vec3 v = -normalize(vpos - cameraPosition);
35
- float shadow = ${M?h`1.0 - readShadowMap(vpos, linearDepth)`:"1.0"};
35
+ float shadow = ${M?b`1.0 - readShadowMap(vpos, linearDepth)`:"1.0"};
36
36
  vec4 vPosView = view * vec4(vpos, 1.0);
37
37
  vec4 final = vec4(getWaterColor(n, v, mainLightDirection, waterColor.rgb, mainLightIntensity, localUp, shadow, tangentNormalFoam.w, vPosView.xyz, vpos + localOrigin), waterColor.w);
38
38
 
39
39
  fragColor = delinearizeGamma(final);
40
- outputColorHighlightOLID(applySlice(fragColor, vpos), final.rgb);`);break;case 4:C.include(l,L),C.include(m,L),x.include(r,L),S.add("vuv","vec2"),P.main.add(h`
41
- if (waterColor.a < ${h.float(j)}) {
40
+ outputColorHighlightOLID(applySlice(fragColor, vpos), final.rgb);`);break;case 4:C.include(d,P),C.include(v,P),S.include(o,P),_.add("vuv","vec2"),x.main.add(b`
41
+ if (waterColor.a < ${b.float(L)}) {
42
42
  // Discard this vertex
43
43
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
44
44
  return;
@@ -47,20 +47,28 @@ import{isColor as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutpu
47
47
  vuv = uv0;
48
48
  vpos = position;
49
49
 
50
- gl_Position = transformPosition(proj, view, vpos);`),x.uniforms.add(new f("timeElapsed",({timeElapsed:e})=>e)).main.add(h`discardBySlice(vpos);
50
+ gl_Position = transformPosition(proj, view, vpos);`),S.uniforms.add(new h("timeElapsed",({timeElapsed:e})=>e)).main.add(b`discardBySlice(vpos);
51
51
  vec4 tangentNormalFoam = getSurfaceNormalAndFoam(vuv, timeElapsed);
52
52
  tangentNormalFoam.xyz = normalize(tangentNormalFoam.xyz);
53
- fragColor = vec4((tangentNormalFoam.xyz + vec3(1.0)) * 0.5, tangentNormalFoam.w);`);break;case 10:C.include(a,L),P.main.add(h`
54
- if (waterColor.a < ${h.float(j)}) {
53
+ fragColor = vec4((tangentNormalFoam.xyz + vec3(1.0)) * 0.5, tangentNormalFoam.w);`);break;case 3:x.main.add(b`
54
+ if (waterColor.a < ${b.float(L)}) {
55
55
  // Discard this vertex
56
56
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
57
57
  return;
58
58
  }
59
59
 
60
60
  vpos = position;
61
- gl_Position = transformPosition(proj, view, vpos);`),x.include(r,L),x.main.add(h`discardBySlice(vpos);
62
- calculateOcclusionAndOutputHighlight();`);break;case 11:C.include(i,L),P.main.add(h`
63
- if (waterColor.a < ${h.float(j)}) {
61
+ gl_Position = transformPosition(proj, view, vpos);`),S.include(o,P),S.main.add("discardBySlice(vpos);");break;case 10:C.include(t,P),x.main.add(b`
62
+ if (waterColor.a < ${b.float(L)}) {
63
+ // Discard this vertex
64
+ gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
65
+ return;
66
+ }
67
+
68
+ vpos = position;
69
+ gl_Position = transformPosition(proj, view, vpos);`),S.include(o,P),S.main.add(b`discardBySlice(vpos);
70
+ calculateOcclusionAndOutputHighlight();`);break;case 11:C.include(a,P),x.main.add(b`
71
+ if (waterColor.a < ${b.float(L)}) {
64
72
  // Discard this vertex
65
73
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
66
74
  return;
@@ -68,5 +76,5 @@ calculateOcclusionAndOutputHighlight();`);break;case 11:C.include(i,L),P.main.ad
68
76
 
69
77
  vpos = position;
70
78
  gl_Position = transformPosition(proj, view, vpos);
71
- forwardObjectAndLayerIdColor();`),x.include(r,L),x.main.add(h`discardBySlice(vpos);
72
- outputObjectAndLayerIdColor();`)}return C}const C=Object.freeze(Object.defineProperty({__proto__:null,build:L},Symbol.toStringTag,{value:"Module"}));export{C as W,L as b};
79
+ forwardObjectAndLayerIdColor();`),S.include(o,P),S.main.add(b`discardBySlice(vpos);
80
+ outputObjectAndLayerIdColor();`);break;default:throw new e("shaderbuilder:missing-output",`Unimplemented shader output ${D} for WaterTechnique`)}return C}const C=Object.freeze(Object.defineProperty({__proto__:null,build:P},Symbol.toStringTag,{value:"Module"}));export{C as W,P as b};
package/config.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- 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.1.0-next.54";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
2
+ 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.1.0-next.55";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
@@ -40,7 +40,7 @@
40
40
  * ![Square joins](https://developers.arcgis.com/javascript/latest/assets/references/core/operators/squareDiagram.png "Square joins")
41
41
  *
42
42
  * @since 4.31
43
- * @see ![Sample - Geometry operator - offset analysis](https://developers.arcgis.com/javascript/latest/sample-code/geometry-operator-offset-visualizer/)
43
+ * @see [Sample - Geometry operator - offset analysis](https://developers.arcgis.com/javascript/latest/sample-code/geometry-operator-offset-visualizer/)
44
44
  */
45
45
  import type { LengthUnit } from "../../core/units.js";
46
46
  import type { GeometryUnion, GeometryWithoutMeshUnion } from "../types.js";
@@ -4,7 +4,7 @@
4
4
  * ![Proximity operator](https://developers.arcgis.com/javascript/latest/assets/references/core/operators/proximity.png "Proximity operator")
5
5
  *
6
6
  * @since 4.31
7
- * @see ![Sample - Geometry operator - proximity analysis](https://developers.arcgis.com/javascript/latest/sample-code/geometry-operator-proximity/)
7
+ * @see [Sample - Geometry operator - proximity analysis](https://developers.arcgis.com/javascript/latest/sample-code/geometry-operator-proximity/)
8
8
  */
9
9
  import type Point from "../Point.js";
10
10
  import type { LengthUnit } from "../../core/units.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{floatEqualRelative as t,floatEqualAbsolute as n}from"../../../core/mathUtils.js";import{expandPointInPlace as o,containsXY as r,expandXInPlace as s,expandYInPlace as c}from"../aaBoundingRect.js";import{distance2 as u,interpolateSegment as e,findClosestAndFurthestCurveParametersToPoint as f}from"./mathUtils.js";const i=[0,0];function a(t){const n=1-t,o=n*n,r=t*t;return[o*n,3*t*o,3*r*n,r*t]}function h(t,n,o,r,s){const[c,u,e,f]=a(s);return[t[0]*c+n[0]*u+o[0]*e+r[0]*f,t[1]*c+n[1]*u+o[1]*e+r[1]*f]}function m(t,n,o,r,s){const[c,u,e,f]=a(s);return t*c+n*u+o*e+r*f}function p(t,n,o){const r=t,[s,c,u]=n.b;return h(r,c,u,s,o)}function M(t,n,o){const r=t,[s,c,u]=n.b,f=e([0,0],r,c,o),a=e(i,c,u,o),h=e([0,0],u,s,o),m=e([0,0],f,a,o),p=e([0,0],a,h,o);return[{b:[e([],m,p,o),f,m]},{b:[[...s],p,h]}]}function b(o,r,s){const c=o,[u,e,i]=r.b,a=f(s,[.1,.5,.9],t=>{const n=1-t,[o,r]=h(c,e,i,u,t);return[o,r,3*n*n*(e[0]-c[0])+6*n*t*(i[0]-e[0])+3*t*t*(u[0]-i[0]),3*n*n*(e[1]-c[1])+6*n*t*(i[1]-e[1])+3*t*t*(u[1]-i[1]),6*n*(i[0]-2*e[0]+c[0])+6*t*(u[0]-2*i[0]+e[0]),6*n*(i[1]-2*e[1]+c[1])+6*t*(u[1]-2*i[1]+e[1])]}).map(t=>Math.min(1,Math.max(0,t)));a.push(0,1);let m=1/0;const p=a.map(t=>{const n=h(c,e,i,u,t),[o,r]=n,f=s[0]-o,a=s[1]-r,p=Math.sqrt(f*f+a*a);return m=Math.min(p,m),{t,curvePoint:n,distance:p}}),M=[];for(const f of p){const{t:o,distance:r}=f;t(r,m)&&!M.some(({t})=>n(t,o))&&M.push(f)}return M}function l(t,n,u){const e=n,[f,i,a]=u.b;if(o(t,e),o(t,f),r(t,i[0],i[1])&&r(t,a[0],a[1]))return t;for(const o of q(e[0],i[0],a[0],f[0]))o>0&&o<1&&s(t,m(e[0],i[0],a[0],f[0],o));for(const o of q(e[1],i[1],a[1],f[1]))o>0&&o<1&&c(t,m(e[1],i[1],a[1],f[1],o));return t}function q(t,n,o,r){const s=3*(3*(n-o)-t+r),c=6*(t-2*n+o),u=3*(n-t);if(0===s)return 0!==c?[-u/c]:[];const e=Math.sqrt(c*c-4*s*u);return[(-c+e)/(2*s),(-c-e)/(2*s)]}function d(t,n,o){const r=16;let s=0,c=[n];for(let e=0;e<r;e++){let n=t;const r=[];for(const t of c)r.push(...M(n,t,.5)),n=t.b[0];c=r,n=t,s=0;let e=0;for(const t of c){const[o,r,c]=t.b,f=Math.sqrt(u(n,o));s+=(f+(Math.sqrt(u(n,r))+Math.sqrt(u(r,c))+Math.sqrt(u(c,o))))/2,e+=f,n=o}if(s-e<o)return s}return s}export{l as bezierCurveExtent,d as bezierCurveLength,b as closestPointsOnBezierCurve,p as interpolateBezierCurve,h as interpolateCubicBezier,m as interpolateCubicBezier1D,M as splitBezierCurve};
2
+ import{floatEqualRelative as t,floatEqualAbsolute as n}from"../../../core/mathUtils.js";import{expandPointInPlace as o,containsXY as r,expandXInPlace as s,expandYInPlace as c}from"../aaBoundingRect.js";import{distance2 as u,interpolateSegment as e,findClosestAndFurthestCurveParametersToPoint as f}from"./mathUtils.js";const i=[0,0];function a(t){const n=1-t,o=n*n,r=t*t;return[o*n,3*t*o,3*r*n,r*t]}function h(t,n,o,r,s){const[c,u,e,f]=a(s);return[t[0]*c+n[0]*u+o[0]*e+r[0]*f,t[1]*c+n[1]*u+o[1]*e+r[1]*f]}function m(t,n,o,r,s){const[c,u,e,f]=a(s);return t*c+n*u+o*e+r*f}function b(t,n,o){const r=t,[s,c,u]=n.b;return h(r,c,u,s,o)}function p(t,n){const[o,r,s]=n.b;return o[0]!==s[0]||o[1]!==s[1]?[o[0]-s[0],o[1]-s[1]]:o[0]!==r[0]||o[1]!==r[1]?[o[0]-r[0],o[1]-r[1]]:[o[0]-t[0],o[1]-t[1]]}function M(t,n,o){const r=t,[s,c,u]=n.b,f=e([0,0],r,c,o),a=e(i,c,u,o),h=e([0,0],u,s,o),m=e([0,0],f,a,o),b=e([0,0],a,h,o);return[{b:[e([],m,b,o),f,m]},{b:[[...s],b,h]}]}function l(o,r,s){const c=o,[u,e,i]=r.b,a=f(s,[.1,.5,.9],t=>{const n=1-t,[o,r]=h(c,e,i,u,t);return[o,r,3*n*n*(e[0]-c[0])+6*n*t*(i[0]-e[0])+3*t*t*(u[0]-i[0]),3*n*n*(e[1]-c[1])+6*n*t*(i[1]-e[1])+3*t*t*(u[1]-i[1]),6*n*(i[0]-2*e[0]+c[0])+6*t*(u[0]-2*i[0]+e[0]),6*n*(i[1]-2*e[1]+c[1])+6*t*(u[1]-2*i[1]+e[1])]}).map(t=>Math.min(1,Math.max(0,t)));a.push(0,1);let m=1/0;const b=a.map(t=>{const n=h(c,e,i,u,t),[o,r]=n,f=s[0]-o,a=s[1]-r,b=Math.sqrt(f*f+a*a);return m=Math.min(b,m),{t,curvePoint:n,distance:b}}),p=[];for(const f of b){const{t:o,distance:r}=f;t(r,m)&&!p.some(({t})=>n(t,o))&&p.push(f)}return p}function q(t,n,u){const e=n,[f,i,a]=u.b;if(o(t,e),o(t,f),r(t,i[0],i[1])&&r(t,a[0],a[1]))return t;for(const o of d(e[0],i[0],a[0],f[0]))o>0&&o<1&&s(t,m(e[0],i[0],a[0],f[0],o));for(const o of d(e[1],i[1],a[1],f[1]))o>0&&o<1&&c(t,m(e[1],i[1],a[1],f[1],o));return t}function d(t,n,o,r){const s=3*(3*(n-o)-t+r),c=6*(t-2*n+o),u=3*(n-t);if(0===s)return 0!==c?[-u/c]:[];const e=Math.sqrt(c*c-4*s*u);return[(-c+e)/(2*s),(-c-e)/(2*s)]}function j(t,n,o){const r=16;let s=0,c=[n];for(let e=0;e<r;e++){let n=t;const r=[];for(const t of c)r.push(...M(n,t,.5)),n=t.b[0];c=r,n=t,s=0;let e=0;for(const t of c){const[o,r,c]=t.b,f=Math.sqrt(u(n,o));s+=(f+(Math.sqrt(u(n,r))+Math.sqrt(u(r,c))+Math.sqrt(u(c,o))))/2,e+=f,n=o}if(s-e<o)return s}return s}export{q as bezierCurveExtent,j as bezierCurveLength,p as calculateBezierCurveTangent,l as closestPointsOnBezierCurve,b as interpolateBezierCurve,h as interpolateCubicBezier,m as interpolateCubicBezier1D,M as splitBezierCurve};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{set as t,determinant as n}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as r}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{DerivedCircle as c,interpolateCircle as i}from"./circleUtils.js";import{interpolateSegment as o,distance2 as s,wrapAtan2 as a}from"./mathUtils.js";const e=r();function m(r,c,i){const[o,a]=r,[m,l]=c,[u,f]=i;t(e,o,m,u,a,l,f,1,1,1);const h=n(e),M=4*h/(s(r,c)+s(c,i)+s(i,r));if(!isFinite(M)||Math.abs(M)<1e-8)return null;const p=o**2+a**2,b=m**2+l**2,j=u**2+f**2;t(e,p,b,j,a,l,f,1,1,1);const x=n(e);t(e,p,b,j,o,m,u,1,1,1);return[x/h*.5,n(e)/h*-.5]}function l(t,n){const[r,i]=n.c,s=m(t,i,r),e=null==s,l=s??o([],t,r,.5),[u,f]=t,[h,M]=i,[p,b]=r,[j,x]=l,d=u-j,g=f-x,I=Math.sqrt(d*d+g*g),P=a(f-x,u-j),U=a(M-x,h-j);let q=a(b-x,p-j);return(U-P)*(q-U)<0&&(q+=2*Math.sign(P-q)*Math.PI),new c(j,x,I,P,q,e)}function u(t,n,r){const c=i(t,r/2),o=i(t,r),s=i(t,(r+1)/2);return[{c:[o,c]},{c:[[...n.c[0]],s]}]}function f(t,n){const[r]=n.c,{cx:c,cy:i,thetaStart:o,thetaEnd:s,radius:a,isInvalid:e}=l(t,n);return{a:[r,[c,i],Math.abs(s-o)<Math.PI?1:0,o>s?1:0,e?o:0,a,e?0:1]}}export{l as deriveCircleFromCircularArc,u as splitCircularArc,f as toEllipticArc7};
2
+ import{set as t,determinant as n}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as r}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{DerivedCircle as c,interpolateCircle as o}from"./circleUtils.js";import{interpolateSegment as i,distance2 as s,wrapAtan2 as a}from"./mathUtils.js";const e=r();function m(r,c,o){const[i,a]=r,[m,u]=c,[l,f]=o;t(e,i,m,l,a,u,f,1,1,1);const h=n(e),M=4*h/(s(r,c)+s(c,o)+s(o,r));if(!isFinite(M)||Math.abs(M)<1e-8)return null;const p=i**2+a**2,x=m**2+u**2,b=l**2+f**2;t(e,p,x,b,a,u,f,1,1,1);const d=n(e);t(e,p,x,b,i,m,l,1,1,1);return[d/h*.5,n(e)/h*-.5]}function u(t,n){const[r,o]=n.c,s=m(t,o,r),e=null==s,u=s??i([],t,r,.5),[l,f]=t,[h,M]=o,[p,x]=r,[b,d]=u,j=l-b,g=f-d,I=Math.sqrt(j*j+g*g),y=a(f-d,l-b),E=a(M-d,h-b);let P=a(x-d,p-b);return(E-y)*(P-E)<0&&(P+=2*Math.sign(y-P)*Math.PI),new c(b,d,I,y,P,e)}function l(t,n,r){const c=o(t,r/2),i=o(t,r),s=o(t,(r+1)/2);return[{c:[i,c]},{c:[[...n.c[0]],s]}]}function f(t,n){const[r,c]=n.c[0],{cx:o,cy:i,thetaEnd:s,thetaStart:a}=u(t,n),e=r-o,m=c-i;return s>a?[-m,e]:[m,-e]}function h(t,n){const[r]=n.c,{cx:c,cy:o,thetaStart:i,thetaEnd:s,radius:a,isInvalid:e}=u(t,n);return{a:[r,[c,o],Math.abs(s-i)<Math.PI?1:0,i>s?1:0,e?i:0,a,e?0:1]}}export{f as calculateCircularArcTangent,u as deriveCircleFromCircularArc,l as splitCircularArc,h as toEllipticArc7};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{floatEqualRelative as t}from"../../../core/mathUtils.js";import{DerivedCircle as a,interpolateCircle as r}from"./circleUtils.js";import{angularRangeOriented as o,wrapAtan2 as s}from"./mathUtils.js";function h(r,h){const[n,c,i,e]=h.a,[m,M]=r,[f,l]=n,[p,u]=c,j=m-p,U=M-u,b=Math.sqrt(j*j+U*U),q=f-p,x=l-u,I=Math.sqrt(q*q+x*x),P=0===b||0===I||!t(b,I),d=b,[w,y]=o(s(M-u,m-p),Math.atan2(l-u,f-p),i,e);return new a(p,u,d,w,y,P)}function n(t,a,o){const{cx:s,cy:h,thetaStart:n,thetaEnd:c}=t,[i,e,m,M]=a.a,f=n*(1-o)+c*o;return[{a:[r(t,o),[s,h],Math.abs(f-n)<Math.PI?1:0,M]},{a:[[...i],[s,h],Math.abs(c-f)<Math.PI?1:0,M]}]}export{h as deriveCircleFromEllipticArc4,n as splitEllipticArc4};
2
+ import{floatEqualRelative as t}from"../../../core/mathUtils.js";import{DerivedCircle as a,interpolateCircle as r}from"./circleUtils.js";import{angularRangeOriented as n,wrapAtan2 as o}from"./mathUtils.js";function c(r,c){const[h,s,e,i]=c.a,[m,M]=r,[f,u]=h,[l,p]=s,j=m-l,x=M-p,U=Math.sqrt(j*j+x*x),b=f-l,d=u-p,q=Math.sqrt(b*b+d*d),y=0===U||0===q||!t(U,q),E=U,[I,P]=n(o(M-p,m-l),Math.atan2(u-p,f-l),e,i);return new a(l,p,E,I,P,y)}function h(t,a,n){const{cx:o,cy:c,thetaStart:h,thetaEnd:s}=t,[e,i,m,M]=a.a,f=h*(1-n)+s*n;return[{a:[r(t,n),[o,c],Math.abs(f-h)<Math.PI?1:0,M]},{a:[[...e],[o,c],Math.abs(s-f)<Math.PI?1:0,M]}]}function s(t,a){const[r,n]=a.a[0],{cx:o,cy:h,thetaEnd:s,thetaStart:e}=c(t,a),i=r-o,m=n-h;return s>e?[-m,i]:[m,-i]}export{s as calculateEllipticArc4Tangent,c as deriveCircleFromEllipticArc4,h as splitEllipticArc4};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{set as t,invert as s,transpose as n,multiply as a}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as r}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{transformMat3 as o}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{expandPointInPlace as i}from"../aaBoundingRect.js";import{cloneCurve as c}from"./curveUtils.js";import{angularRangeWrap as h,angularRangeOriented as u,wrapAtan2 as e,angularRange as f,distance2 as m,intersectLineLine as M,findClosestAndFurthestCurveParametersToPoint as l}from"./mathUtils.js";class b{constructor(t,s,n,a,r,o,i,c,h){this.cx=t,this.cy=s,this.a=n,this.b=a,this.cosR=r,this.sinR=o,this.u1=i,this.u2=c,this.isInvalid=h}}function p(t,s){const[n,a,r,o,i,c,h]=s.a,[f,m]=t,[M,l]=n,[p,R]=a,d=c*h,x=Math.cos(i),q=Math.sin(i),[I,g]=u(e(1/d*(m-R)*x-1/d*(f-p)*q,1/c*(m-R)*q+1/c*(f-p)*x),Math.atan2(1/d*(l-R)*x-1/d*(M-p)*q,1/c*(l-R)*q+1/c*(M-p)*x),r,o);return new b(p,R,c,d,x,q,I,g,0===c||0===d)}function R(t,s){const{a:n,b:a,cosR:r,sinR:o,cx:i,cy:c}=t,h=Math.cos(s),u=Math.sin(s);return[n*h*r-a*u*o+i,n*h*o+a*u*r+c]}function d(t,s){const{u1:n,u2:a}=t;return R(t,n*(1-s)+a*s)}function x(t,s,n){if(n<0||n>1)return[];if(0===n||1===n)return[c(s)];const[a,[r,o],i,h,u,e,f]=s.a,{u1:m,u2:M}=t,l=m*(1-n)+M*n;return[{a:[[...d(t,n)],[r,o],Math.abs(l-m)<Math.PI?1:0,h,u,e,f]},{a:[[...a],[r,o],Math.abs(M-l)<Math.PI?1:0,h,u,e,f]}]}function q(t,s){const{a:n,b:a,cosR:r,sinR:o,u1:i,u2:c}=t,u=Math.PI/6,e=l(s,[1*u,2*u,4*u,5*u,7*u,8*u,10*u,11*u],s=>{const i=Math.cos(s),c=Math.sin(s),[h,u]=R(t,s);return[h,u,-n*r*c-a*o*i,-n*o*c+a*r*i,-n*r*i+a*o*c,-n*o*i-a*r*c]}),m=f(i,c),M=new Set(e.map(t=>h(m,t)).filter(t=>t>m.min&&t<m.max));M.add(i),M.add(c);let b,p,d=1/0;for(const h of M){const n=R(t,h),[a,r]=n,o=s[0]-a,u=s[1]-r,e=o*o+u*u;e<d&&(b=(h-i)/(c-i),p=n,d=e)}return{t:b,curvePoint:p,distance:Math.sqrt(d)}}function I(t,s,n){const a=p(s,n),{a:r,b:o,u1:c,u2:u,cosR:e,sinR:m,isInvalid:M}=a,l=n.a[0];if(i(t,s),i(t,l),M)return t;const b=Math.atan2(-o*m,r*e),d=b+Math.PI,x=Math.atan2(o*e,r*m),q=x+Math.PI,I=f(c,u);for(const f of[b,d,x,q].map(t=>h(I,t)))f>I.min&&f<I.max&&i(t,R(a,f));return t}function g(t,s,n){const[a,r,o,i,c,h,u]=s.a,e=p(t,s),{u1:f,u2:l,isInvalid:b}=e,x=l-f;if(b)return Math.sqrt(m(t,a));const q=14,I=[0,0];let g=0,j=[d(e,0),d(e,.25),d(e,.5),d(e,.75),d(e,1)];for(let p=0;p<q;p++){const t=j.length-1,s=x/(2*t),a=[];for(let n=0;n<t;n++)a.push(j[n]),a.push(R(e,f+(2*n+1)*s));a.push(j[j.length-1]),j=a,g=0;let o=0;for(let n=1;n<j.length;n++){const t=j[n-1],s=j[n];if(g+=Math.sqrt(m(t,s)),n>1){const a=j[n-2],i=M(I,a,t,r,s);o+=i?Math.sqrt(m(t,i)):Math.abs(s[0]-t[0])+Math.abs(s[1]-t[1])}else o+=g}if(o-g<n)return g}return g}const j=r(),v=r(),P=r(),y=r();function w(r,i,c){const[h,u,f,M,l,b,R]=i.a,d=p(r,i),{cosR:x,sinR:q,a:I,b:g,cx:w,cy:U}=d,B=o([0,0],h,c),S=o([0,0],u,c),k=c[0]*c[4]<0?1-M:M;{const s=I*I*q*q+g*g*x*x,n=2*(g*g-I*I)*q*x,a=I*I*x*x+g*g*q*q,r=-2*s*w-n*U,o=-n*w-2*a*U;t(j,s,n/2,r/2,n/2,a,o/2,r/2,o/2,s*w*w+n*w*U+a*U*U-I*I*g*g)}if(s(v,c),null==v){const t=o([0,0],r,c);return{a:[B,S,f,M,e(B[1],B[0]),Math.sqrt(m(B,t))/2,0]}}n(P,v),a(y,a(y,P,j),v);{const t=y[0],s=2*y[1],n=y[4],a=2*y[2],r=2*y[5],o=s*s-4*t*n,i=2*(t*r*r+n*a*a-s*a*r+o*y[8]),c=Math.sqrt((t-n)**2+s*s),h=-Math.sqrt(i*(t+n+c))/o,u=-Math.sqrt(i*(t+n-c))/o;return{a:[B,S,f,k,.5*e(-s,n-t),h,u/h]}}}export{b as DerivedEllipse,q as closestPointOnEllipse,p as deriveEllipse,I as ellipticArcExtent,g as ellipticArcLength,d as interpolateEllipse,x as splitEllipticArc7,w as transformEllipticArc};
2
+ import{set as t,invert as n,transpose as s,multiply as a}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as r}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{transformMat3 as o,length as i}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{expandPointInPlace as c}from"../aaBoundingRect.js";import{cloneCurve as u}from"./curveUtils.js";import{angularRangeWrap as h,angularRangeOriented as e,wrapAtan2 as f,angularRange as M,distance2 as l,intersectLineLine as m,findClosestAndFurthestCurveParametersToPoint as b}from"./mathUtils.js";class R{constructor(t,n,s,a,r,o,i,c,u){this.cx=t,this.cy=n,this.a=s,this.b=a,this.cosR=r,this.sinR=o,this.u1=i,this.u2=c,this.isInvalid=u}}function p(t,n){const[s,a,r,o,i,c,u]=n.a,[h,M]=t,[l,m]=s,[b,p]=a,d=c*u,x=Math.cos(i),q=Math.sin(i),[I,g]=e(f(1/d*(M-p)*x-1/d*(h-b)*q,1/c*(M-p)*q+1/c*(h-b)*x),Math.atan2(1/d*(m-p)*x-1/d*(l-b)*q,1/c*(m-p)*q+1/c*(l-b)*x),r,o);return new R(b,p,c,d,x,q,I,g,0===c||0===d)}function d(t,n){const{a:s,b:a,cosR:r,sinR:o,cx:i,cy:c}=t,u=Math.cos(n),h=Math.sin(n);return[s*u*r-a*h*o+i,s*u*o+a*h*r+c]}function x(t,n){const{u1:s,u2:a}=t;return d(t,s*(1-n)+a*n)}function q(t,n){const[s,a]=n.a[0],{a:r,b:o,cx:c,cy:u,cosR:h,sinR:e,isInvalid:f,u1:M,u2:l}=p(t,n);if(f)return[s-t[0],a-t[1]];const m=Math.sqrt(r*r-o*o),b=[c+m*h,u+m*e],R=[c-m*h,u-m*e],d=[s-b[0],a-b[1]],x=[s-R[0],a-R[1]],q=i(d),I=i(x),[g,v]=[d[0]/q+x[0]/I,d[1]/q+x[1]/I];return l>M?[-v,g]:[v,g]}function I(t,n,s){if(s<0||s>1)return[];if(0===s||1===s)return[u(n)];const[a,[r,o],i,c,h,e,f]=n.a,{u1:M,u2:l}=t,m=M*(1-s)+l*s;return[{a:[[...x(t,s)],[r,o],Math.abs(m-M)<Math.PI?1:0,c,h,e,f]},{a:[[...a],[r,o],Math.abs(l-m)<Math.PI?1:0,c,h,e,f]}]}function g(t,n){const{a:s,b:a,cosR:r,sinR:o,u1:i,u2:c}=t,u=Math.PI/6,e=b(n,[1*u,2*u,4*u,5*u,7*u,8*u,10*u,11*u],n=>{const i=Math.cos(n),c=Math.sin(n),[u,h]=d(t,n);return[u,h,-s*r*c-a*o*i,-s*o*c+a*r*i,-s*r*i+a*o*c,-s*o*i-a*r*c]}),f=M(i,c),l=new Set(e.map(t=>h(f,t)).filter(t=>t>f.min&&t<f.max));l.add(i),l.add(c);let m,R,p=1/0;for(const h of l){const s=d(t,h),[a,r]=s,o=n[0]-a,u=n[1]-r,e=o*o+u*u;e<p&&(m=(h-i)/(c-i),R=s,p=e)}return{t:m,curvePoint:R,distance:Math.sqrt(p)}}function v(t,n,s){const a=p(n,s),{a:r,b:o,u1:i,u2:u,cosR:e,sinR:f,isInvalid:l}=a,m=s.a[0];if(c(t,n),c(t,m),l)return t;const b=Math.atan2(-o*f,r*e),R=b+Math.PI,x=Math.atan2(o*e,r*f),q=x+Math.PI,I=M(i,u);for(const M of[b,R,x,q].map(t=>h(I,t)))M>I.min&&M<I.max&&c(t,d(a,M));return t}function j(t,n,s){const[a,r,o,i,c,u,h]=n.a,e=p(t,n),{u1:f,u2:M,isInvalid:b}=e,R=M-f;if(b)return Math.sqrt(l(t,a));const q=14,I=[0,0];let g=0,v=[x(e,0),x(e,.25),x(e,.5),x(e,.75),x(e,1)];for(let p=0;p<q;p++){const t=v.length-1,n=R/(2*t),a=[];for(let s=0;s<t;s++)a.push(v[s]),a.push(d(e,f+(2*s+1)*n));a.push(v[v.length-1]),v=a,g=0;let o=0;for(let s=1;s<v.length;s++){const t=v[s-1],n=v[s];if(g+=Math.sqrt(l(t,n)),s>1){const a=v[s-2],i=m(I,a,t,r,n);o+=i?Math.sqrt(l(t,i)):Math.abs(n[0]-t[0])+Math.abs(n[1]-t[1])}else o+=g}if(o-g<s)return g}return g}const P=r(),y=r(),w=r(),U=r();function B(r,i,c){const[u,h,e,M,m,b,R]=i.a,d=p(r,i),{cosR:x,sinR:q,a:I,b:g,cx:v,cy:j}=d,B=o([0,0],u,c),S=o([0,0],h,c),k=c[0]*c[4]<0?1-M:M;{const n=I*I*q*q+g*g*x*x,s=2*(g*g-I*I)*q*x,a=I*I*x*x+g*g*q*q,r=-2*n*v-s*j,o=-s*v-2*a*j;t(P,n,s/2,r/2,s/2,a,o/2,r/2,o/2,n*v*v+s*v*j+a*j*j-I*I*g*g)}if(n(y,c),null==y){const t=o([0,0],r,c);return{a:[B,S,e,M,f(B[1],B[0]),Math.sqrt(l(B,t))/2,0]}}s(w,y),a(U,a(U,w,P),y);{const t=U[0],n=2*U[1],s=U[4],a=2*U[2],r=2*U[5],o=n*n-4*t*s,i=2*(t*r*r+s*a*a-n*a*r+o*U[8]),c=Math.sqrt((t-s)**2+n*n),u=-Math.sqrt(i*(t+s+c))/o,h=-Math.sqrt(i*(t+s-c))/o;return{a:[B,S,e,k,.5*f(-n,s-t),u,h/u]}}}export{R as DerivedEllipse,q as calculateEllipticArc7Tangent,g as closestPointOnEllipse,p as deriveEllipse,v as ellipticArcExtent,j as ellipticArcLength,x as interpolateEllipse,I as splitEllipticArc7,B as transformEllipticArc};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{getMetersPerVerticalUnitForSR as n}from"../../core/units.js";import{isSphericalPCPF as o}from"../ellipsoidUtils.js";import{equals as t}from"./spatialReferenceUtils.js";import{getEndpoint as e}from"./curves/curveUtils.js";function r(n,o,t){const e=i(o,t);if(1!==e)switch(n){case"point":case"esriGeometryPoint":return n=>s(n,e);case"polyline":case"esriGeometryPolyline":return n=>f(n,e);case"polygon":case"esriGeometryPolygon":return n=>c(n,e);case"multipoint":case"esriGeometryMultipoint":return n=>l(n,e);case"extent":case"esriGeometryEnvelope":return n=>u(n,e);default:return}}function i(e,r){if(null==e||null==r||(e.vcsWkid??null)!==(r.vcsWkid??null)||t(e,r)||o(e)||o(r))return 1;return n(e)/n(r)}function s(n,o){null!=n?.z&&(n.z*=o)}function c(n,o){if(n){if(n.curveRings)for(const t of n.curveRings)for(const n of t){const t=e(n);t.length>2&&(t[2]*=o)}if(n.rings)for(const t of n.rings)for(const n of t)n.length>2&&(n[2]*=o)}}function f(n,o){if(n){if(n.curvePaths)for(const t of n.curvePaths)for(const n of t){const t=e(n);t.length>2&&(t[2]*=o)}if(n.paths)for(const t of n.paths)for(const n of t)n.length>2&&(n[2]*=o)}}function l(n,o){if(n)for(const t of n.points)t.length>2&&(t[2]*=o)}function u(n,o){n&&null!=n.zmin&&null!=n.zmax&&(n.zmin*=o,n.zmax*=o)}export{r as getGeometryZScaler,i as zScale};
2
+ import{getMetersPerVerticalUnitForSR as o}from"../../core/units.js";import{isSphericalPCPF as n}from"../ellipsoidUtils.js";import{equals as t}from"./spatialReferenceUtils.js";import{getEndpoint as e}from"./curves/curveUtils.js";function r(o,n,t){const e=i(n,t);if(1!==e)switch(o){case"point":case"esriGeometryPoint":return o=>s(o,e);case"polyline":case"esriGeometryPolyline":return o=>c(o,e);case"polygon":case"esriGeometryPolygon":return o=>f(o,e);case"multipoint":case"esriGeometryMultipoint":return o=>l(o,e);case"extent":case"esriGeometryEnvelope":return o=>u(o,e);default:return}}function i(e,r){if(null==e||null==r||r.vcsWkid||t(e,r)||n(e)||n(r))return 1;return o(e)/o(r)}function s(o,n){null!=o?.z&&(o.z*=n)}function f(o,n){if(o){if(o.curveRings)for(const t of o.curveRings)for(const o of t){const t=e(o);t.length>2&&(t[2]*=n)}if(o.rings)for(const t of o.rings)for(const o of t)o.length>2&&(o[2]*=n)}}function c(o,n){if(o){if(o.curvePaths)for(const t of o.curvePaths)for(const o of t){const t=e(o);t.length>2&&(t[2]*=n)}if(o.paths)for(const t of o.paths)for(const o of t)o.length>2&&(o[2]*=n)}}function l(o,n){if(o)for(const t of o.points)t.length>2&&(t[2]*=n)}function u(o,n){o&&null!=o.zmin&&null!=o.zmax&&(o.zmin*=n,o.zmax*=n)}export{r as getGeometryZScaler,i as zScale};
package/interfaces.d.ts CHANGED
@@ -781,6 +781,13 @@ declare namespace __esri {
781
781
 
782
782
  export const layersEffectsJsonUtils: layersEffectsJsonUtils;
783
783
 
784
+ /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
785
+ interface navigationDuration {
786
+ getGoToDuration: typeof import("./applications/Components/navigationDuration.js").getGoToDuration;
787
+ }
788
+
789
+ export const navigationDuration: navigationDuration;
790
+
784
791
  /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
785
792
  interface previewSymbol2D {
786
793
  getContrastingBackgroundTheme: typeof import("./applications/Components/previewSymbol2D.js").getContrastingBackgroundTheme;
package/kernel.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- 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.1";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.1.0-next.54",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
+ 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.1";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.1.0-next.55",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};