@arcgis/core 4.34.0-next.40 → 4.34.0-next.42

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 (180) hide show
  1. package/assets/esri/core/workers/RemoteClient.js +1 -1
  2. package/assets/esri/core/workers/chunks/016d421114118307d4dd.js +1 -0
  3. package/assets/esri/core/workers/chunks/1a2278b9fe9666342728.js +1 -0
  4. package/assets/esri/core/workers/chunks/250b1629becca0410f2a.js +1 -0
  5. package/assets/esri/core/workers/chunks/3245d20ea4bb779f87ef.js +1 -0
  6. package/assets/esri/core/workers/chunks/6b73926feb5c5d957062.js +1 -0
  7. package/assets/esri/core/workers/chunks/{6269c4bbf0f224a954e9.js → 6f4079b7a2b45f304ee6.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{4e6e5677b90b00622146.js → 7ef7f3925495b9ade88c.js} +1 -1
  9. package/assets/esri/core/workers/chunks/82955562805ad5514ed8.js +346 -0
  10. package/assets/esri/core/workers/chunks/{5fe3c279d57f44416c28.js → a1d3f1c221389eb6090c.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{306a68137e62656b0f05.js → d5d2d4df407cf078bb81.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{94850c094e076d81a016.js → dca2b487152cde45fb65.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{31ad9949b08a5b07218c.js → eea3e0bd17479a767160.js} +2 -2
  14. package/assets/esri/core/workers/chunks/fe6fa1f2c2d54d41645e.js +1 -0
  15. package/config.js +1 -1
  16. package/core/workers/registry.js +1 -1
  17. package/editing/sharedTemplates/executor/support/createFeatureServiceEdit.js +1 -1
  18. package/geometry/support/curves/closestPointOnCurve.js +1 -1
  19. package/geometry/support/curves/curveExtent.js +1 -1
  20. package/geometry/support/curves/curveLength.js +1 -1
  21. package/geometry/support/curves/curveUtils.js +1 -1
  22. package/geometry/support/curves/densifyCurvedGeometry.js +1 -1
  23. package/geometry/support/curves/ellipticArc7Utils.js +1 -1
  24. package/geometry/support/curves/splitCurveAtPoint.js +1 -1
  25. package/geometry/support/meshUtils/exporters/gltf/gltf.js +1 -1
  26. package/interfaces.d.ts +24 -2
  27. package/kernel.js +1 -1
  28. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  29. package/layers/PointCloudLayer.js +1 -1
  30. package/package.json +1 -1
  31. package/rest/networks/support/CircuitPath.js +1 -1
  32. package/smartMapping/raster/support/adapters/ImageryLayerAdapter.js +1 -1
  33. package/support/revision.js +1 -1
  34. package/views/2d/engine/flow/styles/Imagery.js +1 -1
  35. package/views/2d/engine/flow/styles/Particles.js +1 -1
  36. package/views/2d/engine/flow/styles/Streamlines.js +1 -1
  37. package/views/2d/engine/imagery/RasterVFDisplayObject.js +1 -1
  38. package/views/2d/engine/vectorTiles/RenderBucket.js +1 -1
  39. package/views/2d/engine/webgl/BitBlitRenderer.js +1 -1
  40. package/views/2d/engine/webgl/Mesh2D.js +1 -1
  41. package/views/2d/engine/webgl/VertexStream.js +1 -1
  42. package/views/2d/engine/webgl/brushes/WGLBrushStencil.js +1 -1
  43. package/views/2d/engine/webgl/brushes/WGLBrushTileDebugInfo.js +1 -1
  44. package/views/2d/engine/webgl/brushes/WGLBrushVTLBackground.js +1 -1
  45. package/views/2d/engine/webgl/cpuMapped/Buffer.js +1 -1
  46. package/views/2d/engine/webgl/cpuMapped/MappedMesh.js +1 -1
  47. package/views/2d/engine/webgl/effects/highlight/HighlightRenderer.js +1 -1
  48. package/views/2d/engine/webgl/meshing/Mesh.js +1 -1
  49. package/views/2d/engine/webgl/meshing/SimpleMesh.js +1 -1
  50. package/views/2d/engine/webgl/shaderGraph/techniques/overlay/OverlayTechnique.js +1 -1
  51. package/views/2d/engine/webgl/shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js +1 -1
  52. package/views/2d/interactive/editingTools/ControlPointsTransformTool.js +1 -1
  53. package/views/2d/interactive/editingTools/TransformTool.js +1 -1
  54. package/views/2d/layers/BaseDynamicLayerView2D.js +1 -1
  55. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  56. package/views/2d/layers/KMLLayerView2D.js +1 -1
  57. package/views/2d/layers/MapImageLayerView2D.js +1 -1
  58. package/views/2d/layers/MediaLayerView2D.js +1 -1
  59. package/views/2d/layers/TileLayerView2D.js +1 -1
  60. package/views/2d/layers/WMSLayerView2D.js +1 -1
  61. package/views/2d/layers/features/processor/TrackStrategy.js +1 -1
  62. package/views/2d/layers/features/sources/FeatureSource.js +1 -1
  63. package/views/2d/layers/graphics/GraphicBoundsRenderer.js +1 -1
  64. package/views/2d/layers/support/DebugOverlay.js +1 -1
  65. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementPathHelper.js +1 -1
  66. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  67. package/views/3d/analysis/VolumeMeasurement/CutFillVolumeMeasurementController.js +1 -1
  68. package/views/3d/environment/LocalAtmosphere.js +1 -1
  69. package/views/3d/environment/MarsAtmosphere.js +1 -1
  70. package/views/3d/environment/Precipitation.js +1 -1
  71. package/views/3d/interactive/editingTools/media/MediaElementControllerControlPoints.js +1 -1
  72. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  73. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentScale.js +1 -1
  74. package/views/3d/layers/FlowSubView3D.js +1 -1
  75. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  76. package/views/3d/layers/I3SMeshView3D.js +1 -1
  77. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  78. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  79. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  80. package/views/3d/layers/graphics/pipeline/rendering/DirectRenderer.js +1 -1
  81. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  82. package/views/3d/layers/support/FlowTileTree3DDebugger.js +1 -1
  83. package/views/3d/support/GaussianSplatSortWorker.js +5 -0
  84. package/views/3d/support/GaussianSplatWorkerHandle.js +5 -0
  85. package/views/3d/support/flow/FlowSubViewTiles3D.js +1 -1
  86. package/views/3d/support/flow/geometryUtils.js +1 -1
  87. package/views/3d/support/flow/loadUtils.js +1 -1
  88. package/views/3d/support/intersectionUtils.js +1 -1
  89. package/views/3d/terrain/PatchGeometryFactory.js +1 -1
  90. package/views/3d/terrain/PatchRenderData.js +1 -1
  91. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  92. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  93. package/views/3d/webgl-engine/effects/RenderPlugin.js +1 -1
  94. package/views/3d/webgl-engine/effects/ScreenSpaceGeometry.js +1 -1
  95. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  96. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  97. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathData.js +1 -1
  98. package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
  99. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  100. package/views/3d/webgl-engine/lib/edgeRendering/bufferLayouts.js +1 -1
  101. package/views/3d/webgl-engine/lib/edgeRendering/edgeBufferWriters.js +1 -1
  102. package/views/3d/webgl-engine/lib/glUtil3D.js +1 -1
  103. package/views/3d/webgl-engine/lib/lodRendering/BackedBufferObject.js +1 -1
  104. package/views/3d/webgl-engine/lib/lodRendering/LodComponentData.js +1 -1
  105. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  106. package/views/3d/webgl-engine/lib/lodRendering/RenderInstanceData.js +1 -1
  107. package/views/3d/webgl-engine/materials/renderers/MergedBuffer.js +5 -0
  108. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  109. package/views/3d/webgl-engine/materials/renderers/PerBufferData.js +1 -1
  110. package/views/3d/webgl-engine/materials/renderers/VaoCache.js +1 -1
  111. package/views/3d/webgl-engine/materials/renderers/VaoRenderer.js +5 -0
  112. package/views/PopupView.js +1 -1
  113. package/views/VideoView.js +1 -1
  114. package/views/draw/DrawAction.js +1 -1
  115. package/views/draw/DrawOperation.js +1 -1
  116. package/views/draw/SegmentDrawAction.js +1 -1
  117. package/views/draw/support/Reshape.js +1 -1
  118. package/views/interactive/SegmentLabels.js +1 -1
  119. package/views/interactive/editGeometry/EditGeometry.js +1 -1
  120. package/views/interactive/editGeometry/EditGeometryOperations.js +1 -1
  121. package/views/interactive/editGeometry/operations/AppendVertex.js +1 -1
  122. package/views/interactive/editGeometry/operations/ClosePart.js +5 -0
  123. package/views/interactive/editGeometry/operations/MoveMesh.js +1 -1
  124. package/views/interactive/editGeometry/operations/MoveVertex.js +1 -1
  125. package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
  126. package/views/interactive/editGeometry/operations/RemoveVertices.js +1 -1
  127. package/views/interactive/editGeometry/operations/RotateVertex.js +1 -1
  128. package/views/interactive/editGeometry/operations/ScaleVertex.js +1 -1
  129. package/views/interactive/editGeometry/operations/SetAllVertexPositions.js +1 -1
  130. package/views/interactive/editGeometry/operations/SetVertexPosition.js +1 -1
  131. package/views/interactive/editGeometry/operations/SplitSegment.js +5 -0
  132. package/views/interactive/editGeometry/operations/UpdateVertices.js +1 -1
  133. package/views/interactive/editGeometry/operations/curveOperationUtils.js +5 -0
  134. package/views/interactive/editGeometry/operations.js +1 -1
  135. package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
  136. package/views/interactive/snapping/LineSnapper.js +1 -1
  137. package/views/interactive/snapping/ParallelLineSnapper.js +1 -1
  138. package/views/interactive/snapping/RightAngleSnapper.js +1 -1
  139. package/views/interactive/snapping/RightAngleTriangleSnapper.js +1 -1
  140. package/views/interactive/snapping/SnappingDragPipelineStep.js +1 -1
  141. package/views/layers/support/MapServiceLayerViewHelper.js +1 -1
  142. package/views/support/TileTreeDebugger.js +1 -1
  143. package/views/webgl/BufferObject.js +1 -1
  144. package/views/webgl/Util.js +1 -1
  145. package/views/webgl/VertexArrayObject.js +1 -1
  146. package/views/webgl/VertexBuffer.js +1 -1
  147. package/views/webgl/testFloatBufferBlend.js +1 -1
  148. package/views/webgl/testSVGPremultipliedAlpha.js +1 -1
  149. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  150. package/widgets/Editor/AddAssociationWorkflow.js +1 -1
  151. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  152. package/widgets/Editor/EditorViewModel.js +1 -1
  153. package/widgets/Editor/support/SketchController.js +1 -1
  154. package/widgets/Feature/FeatureMedia.js +1 -1
  155. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  156. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  157. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  158. package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
  159. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  160. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
  161. package/widgets/Features.js +1 -1
  162. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  163. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  164. package/widgets/OrientedImageryViewer/adapters/sketch/MeasurementAdapter.js +1 -1
  165. package/widgets/OrientedImageryViewer/adapters/sketch/TriangulatedMeasurementAdapter.js +1 -1
  166. package/widgets/PanoramicViewer/support/PanoramicMeshManager.js +5 -0
  167. package/widgets/PanoramicViewer/support/PanoramicMeshWorker.js +5 -0
  168. package/widgets/Spinner.js +1 -1
  169. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeature.js +1 -1
  170. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  171. package/widgets/UtilityNetworkTrace.js +1 -1
  172. package/widgets/UtilityNetworkTraceAnalysis/UtilityNetworkTraceAnalysisViewModel.js +1 -1
  173. package/widgets/smartMapping/HeatmapSlider/HeatmapSliderViewModel.js +1 -1
  174. package/assets/esri/core/workers/chunks/01bd8f90e55081e65b38.js +0 -1
  175. package/assets/esri/core/workers/chunks/0a27f9b11d03874809ee.js +0 -346
  176. package/assets/esri/core/workers/chunks/34f677e8c1691c10e4e9.js +0 -1
  177. package/assets/esri/core/workers/chunks/e95a8c988ef822723503.js +0 -1
  178. package/assets/esri/core/workers/chunks/fd3009164d5e38fda85f.js +0 -1
  179. package/views/interactive/editGeometry/operations/CloseComponent.js +0 -5
  180. package/views/interactive/editGeometry/operations/SplitEdge.js +0 -5
@@ -1,346 +0,0 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[6544],{13259:(e,t,r)=>{r.d(t,{H:()=>B,b:()=>R,c:()=>F,f:()=>D});var n=r(37585),i=r(48163),s=r(91829),o=r(79258),a=r(76591),l=r(36782),c=r(47522),d=r(40268),u=r(63578),h=r(50832),f=r(42593),m=r(42398),p=r(63365),g=r(26835),y=r(52587),_=r(25178),v=r(47286),b=r(14314),x=r(81961),C=r(71988),w=r(33094),A=r(20304),S=r(31821),I=r(12791),P=r(63761),O=r(14113),M=r(49788);function R(e){const t=new O.N5,{signedDistanceFieldEnabled:r,occlusionTestEnabled:i,horizonCullingEnabled:R,pixelSnappingEnabled:D,hasScreenSizePerspective:B,debugDrawLabelBorder:E,hasVVSize:V,hasVVColor:L,hasRotation:U,occludedFragmentFade:H,sampleSignedDistanceFieldTexelCenter:G}=e;t.include(d.Q,e),t.vertex.include(a.rA,e);const{occlusionPass:k,output:q,oitPass:$}=e;if(k)return t.include(u.I,e),t;const{vertex:N,fragment:Y}=t;t.include(y.Y6),t.include(m.A,e),t.include(l.g,e),i&&t.include(h.y),Y.include(g.W),Y.include(p.a),t.varyings.add("vcolor","vec4"),t.varyings.add("vtc","vec2"),t.varyings.add("vsize","vec2");const X=8===q,W=X&&i;W&&t.varyings.add("voccluded","float"),N.uniforms.add(new b.I("viewport",e=>e.camera.fullViewport),new v.G("screenOffset",(e,t)=>(0,n.hZ)(z,2*e.screenOffset[0]*t.camera.pixelRatio,2*e.screenOffset[1]*t.camera.pixelRatio)),new v.G("anchorPosition",e=>F(e)),new C.E("materialColor",e=>e.color),new A.m("materialRotation",e=>e.rotation),new P.N("tex",e=>e.texture)),(0,_.Nz)(N),r&&(N.uniforms.add(new C.E("outlineColor",e=>e.outlineColor)),Y.uniforms.add(new C.E("outlineColor",e=>T(e)?e.outlineColor:s.uY),new A.m("outlineSize",e=>T(e)?e.outlineSize:0))),R&&N.uniforms.add(new x.V("pointDistanceSphere",(e,t)=>{const r=t.camera.eye,n=e.origin;return(0,s.fA)(n[0]-r[0],n[1]-r[1],n[2]-r[2],o.$O.radius)})),D&&N.include(c.K),B&&((0,y.pM)(N),(0,y.OH)(N)),E&&t.varyings.add("debugBorderCoords","vec4"),t.attributes.add("uvi","vec2"),t.attributes.add("color","vec4"),t.attributes.add("size","vec2"),t.attributes.add("rotation","float"),(V||L)&&t.attributes.add("featureAttribute","vec4"),N.code.add(R?S.H`bool behindHorizon(vec3 posModel) {
2
- vec3 camToEarthCenter = pointDistanceSphere.xyz - localOrigin;
3
- vec3 camToPos = pointDistanceSphere.xyz + posModel;
4
- float earthRadius = pointDistanceSphere.w;
5
- float a = dot(camToPos, camToPos);
6
- float b = dot(camToPos, camToEarthCenter);
7
- float c = dot(camToEarthCenter, camToEarthCenter) - earthRadius * earthRadius;
8
- return b > 0.0 && b < a && b * b > a * c;
9
- }`:S.H`bool behindHorizon(vec3 posModel) { return false; }`),N.main.add(S.H`
10
- ProjectHUDAux projectAux;
11
- vec4 posProj = projectPositionHUD(projectAux);
12
- forwardObjectAndLayerIdColor();
13
-
14
- if (rejectBySlice(projectAux.posModel)) {
15
- // Project outside of clip plane
16
- gl_Position = vec4(1e038, 1e038, 1e038, 1.0);
17
- return;
18
- }
19
-
20
- if (behindHorizon(projectAux.posModel)) {
21
- // Project outside of clip plane
22
- gl_Position = vec4(1e038, 1e038, 1e038, 1.0);
23
- return;
24
- }
25
-
26
- vec2 inputSize;
27
- ${(0,S.If)(B,S.H`
28
- inputSize = screenSizePerspectiveScaleVec2(size, projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspective);
29
- vec2 screenOffsetScaled = screenSizePerspectiveScaleVec2(screenOffset, projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspectiveAlignment);`,S.H`
30
- inputSize = size;
31
- vec2 screenOffsetScaled = screenOffset;`)}
32
- ${(0,S.If)(V,S.H`inputSize *= vvScale(featureAttribute).xx;`)}
33
-
34
- vec2 combinedSize = inputSize * pixelRatio;
35
- vec4 quadOffset = vec4(0.0);
36
-
37
- ${(0,S.If)(i,S.H`
38
- bool visible = testHUDVisibility(posProj);
39
- if (!visible) {
40
- vtc = vec2(0.0);
41
- ${(0,S.If)(E,"debugBorderCoords = vec4(0.5, 0.5, 1.5 / combinedSize);")}
42
- return;
43
- }`)}
44
- ${(0,S.If)(W,S.H`voccluded = visible ? 0.0 : 1.0;`)}
45
- `);const Z=S.H`
46
- vec2 uvi1 = vec2(uvi.x < 0.0 ? 1.0 : 0.0, uvi.y < 0.0 ? 1.0 : 0.0);
47
- vec2 uv = abs(uvi + uvi1);
48
- vec2 texSize = vec2(textureSize(tex, 0));
49
- uv.x = uv.x >= ${j} ? 1.0 : uv.x / texSize.x;
50
- uv.y = uv.y >= ${j} ? 1.0 : uv.y / texSize.y;
51
- quadOffset.xy = (uvi1 - anchorPosition) * 2.0 * combinedSize;
52
-
53
- ${(0,S.If)(U,S.H`
54
- float angle = radians(materialRotation + rotation);
55
- float cosAngle = cos(angle);
56
- float sinAngle = sin(angle);
57
- mat2 rotate = mat2(cosAngle, -sinAngle, sinAngle, cosAngle);
58
-
59
- quadOffset.xy = rotate * quadOffset.xy;
60
- `)}
61
-
62
- quadOffset.xy = (quadOffset.xy + screenOffsetScaled) / viewport.zw * posProj.w;
63
- `,Q=D?r?S.H`posProj = alignToPixelOrigin(posProj, viewport.zw) + quadOffset;`:S.H`posProj += quadOffset;
64
- if (inputSize.x == size.x) {
65
- posProj = alignToPixelOrigin(posProj, viewport.zw);
66
- }`:S.H`posProj += quadOffset;`;N.main.add(S.H`
67
- ${Z}
68
- ${L?"vcolor = interpolateVVColor(featureAttribute.y) * materialColor;":"vcolor = color / 255.0 * materialColor;"}
69
-
70
- ${(0,S.If)(9===q,S.H`vcolor.a = 1.0;`)}
71
-
72
- bool alphaDiscard = vcolor.a < ${S.H.float(M.Q)};
73
- ${(0,S.If)(r,`alphaDiscard = alphaDiscard && outlineColor.a < ${S.H.float(M.Q)};`)}
74
- if (alphaDiscard) {
75
- // "early discard" if both symbol color (= fill) and outline color (if applicable) are transparent
76
- gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
77
- return;
78
- } else {
79
- ${Q}
80
- gl_Position = posProj;
81
- }
82
-
83
- vtc = uv;
84
-
85
- ${(0,S.If)(E,S.H`debugBorderCoords = vec4(uv01, 1.5 / combinedSize);`)}
86
- vsize = inputSize;
87
- `),Y.uniforms.add(new P.N("tex",e=>e.texture)),H&&!X&&Y.uniforms.add(new I.x("depthMap",e=>e.mainDepth),new w.U("occludedOpacity",e=>e.hudOccludedFragmentOpacity));const J=E?S.H`(isBorder > 0.0 ? 0.0 : ${S.H.float(M.Q)})`:S.H.float(M.Q),K=S.H`
88
- ${(0,S.If)(E,S.H`float isBorder = float(any(lessThan(debugBorderCoords.xy, debugBorderCoords.zw)) || any(greaterThan(debugBorderCoords.xy, 1.0 - debugBorderCoords.zw)));`)}
89
-
90
- vec2 samplePos = vtc;
91
-
92
- ${(0,S.If)(G,S.H`
93
- float txSize = float(textureSize(tex, 0).x);
94
- float texelSize = 1.0 / txSize;
95
-
96
- // Calculate how much we have to add/subtract to/from each texel to reach the size of an onscreen pixel
97
- vec2 scaleFactor = (vsize - txSize) * texelSize;
98
- samplePos += (vec2(1.0, -1.0) * texelSize) * scaleFactor;`)}
99
-
100
- ${r?S.H`
101
- vec4 fillPixelColor = vcolor;
102
-
103
- // Get distance and map it into [-0.5, 0.5]
104
- float d = rgbaTofloat(texture(tex, samplePos)) - 0.5;
105
-
106
- // Distance in output units (i.e. pixels)
107
- float dist = d * vsize.x;
108
-
109
- // Create smooth transition from the icon into its outline
110
- float fillAlphaFactor = clamp(0.5 - dist, 0.0, 1.0);
111
- fillPixelColor.a *= fillAlphaFactor;
112
-
113
- if (outlineSize > 0.25) {
114
- vec4 outlinePixelColor = outlineColor;
115
- float clampedOutlineSize = min(outlineSize, 0.5*vsize.x);
116
-
117
- // Create smooth transition around outline
118
- float outlineAlphaFactor = clamp(0.5 - (abs(dist) - 0.5*clampedOutlineSize), 0.0, 1.0);
119
- outlinePixelColor.a *= outlineAlphaFactor;
120
-
121
- if (
122
- outlineAlphaFactor + fillAlphaFactor < ${J} ||
123
- fillPixelColor.a + outlinePixelColor.a < ${S.H.float(M.Q)}
124
- ) {
125
- discard;
126
- }
127
-
128
- // perform un-premultiplied over operator (see https://en.wikipedia.org/wiki/Alpha_compositing#Description)
129
- float compositeAlpha = outlinePixelColor.a + fillPixelColor.a * (1.0 - outlinePixelColor.a);
130
- vec3 compositeColor = vec3(outlinePixelColor) * outlinePixelColor.a +
131
- vec3(fillPixelColor) * fillPixelColor.a * (1.0 - outlinePixelColor.a);
132
-
133
- ${(0,S.If)(!X,S.H`fragColor = vec4(compositeColor, compositeAlpha);`)}
134
- } else {
135
- if (fillAlphaFactor < ${J}) {
136
- discard;
137
- }
138
-
139
- ${(0,S.If)(!X,S.H`fragColor = premultiplyAlpha(fillPixelColor);`)}
140
- }
141
-
142
- // visualize SDF:
143
- // fragColor = vec4(clamp(-dist/vsize.x*2.0, 0.0, 1.0), clamp(dist/vsize.x*2.0, 0.0, 1.0), 0.0, 1.0);
144
- `:S.H`
145
- vec4 texColor = texture(tex, samplePos, -0.5);
146
- if (texColor.a < ${J}) {
147
- discard;
148
- }
149
- ${(0,S.If)(!X,S.H`fragColor = texColor * premultiplyAlpha(vcolor);`)}
150
- `}
151
-
152
- ${(0,S.If)(H&&!X,S.H`
153
- float zSample = texelFetch(depthMap, ivec2(gl_FragCoord.xy), 0).x;
154
- if (zSample < gl_FragCoord.z) {
155
- fragColor *= occludedOpacity;
156
- }
157
- `)}
158
-
159
- ${(0,S.If)(!X&&E,S.H`fragColor = mix(fragColor, vec4(1.0, 0.0, 1.0, 1.0), isBorder * 0.5);`)}
160
- `;switch(q){case 0:case 1:t.outputs.add("fragColor","vec4",0),1===q&&t.outputs.add("fragEmission","vec4",1),1===$&&t.outputs.add("fragAlpha","float",1===q?2:1),Y.main.add(S.H`
161
- ${K}
162
- ${(0,S.If)(2===$,S.H`fragColor.rgb /= fragColor.a;`)}
163
- ${(0,S.If)(1===q,S.H`fragEmission = vec4(0.0);`)}
164
- ${(0,S.If)(1===$,S.H`fragAlpha = fragColor.a;`)}`);break;case 9:Y.main.add(S.H`
165
- ${K}
166
- outputObjectAndLayerIdColor();`);break;case 8:t.include(f.Q,e),Y.main.add(S.H`
167
- ${K}
168
- outputHighlight(${(0,S.If)(W,S.H`voccluded == 1.0`,S.H`false`)});`)}return t}function T(e){return e.outlineColor[3]>0&&e.outlineSize>0}function F(e){return e.textureIsSignedDistanceField?(t=e.anchorPosition,r=e.distanceFieldBoundingBox,i=z,(0,n.hZ)(i,t[0]*(r[2]-r[0])+r[0],t[1]*(r[3]-r[1])+r[1])):(0,n.C)(z,e.anchorPosition),z;var t,r,i}const z=(0,i.vt)(),D=32e3,j=S.H.float(D),B=Object.freeze(Object.defineProperty({__proto__:null,build:R,calculateAnchorPosition:F,fullUV:D},Symbol.toStringTag,{value:"Module"}))},18251:(e,t,r)=>{r.d(t,{A:()=>d});var n=r(31635),i=r(69540),s=r(25482),o=r(10107),a=(r(44208),r(53966),r(87811),r(93223)),l=r(40608),c=r(51850);let d=class extends((0,i.O)(s.o)){constructor(e){super(e),this.type="local",this.origin=(0,c.vt)()}};(0,n.Cg)([(0,a.e)({local:"local"},{readOnly:!0})],d.prototype,"type",void 0),(0,n.Cg)([(0,o.MZ)({type:[Number],nonNullable:!0,json:{write:!0}})],d.prototype,"origin",void 0),d=(0,n.Cg)([(0,l.$)("esri.geometry.support.MeshLocalVertexSpace")],d)},26835:(e,t,r)=>{r.d(t,{W:()=>i});var n=r(31821);function i(e){e.code.add(n.H`const float MAX_RGBA_FLOAT =
169
- 255.0 / 256.0 +
170
- 255.0 / 256.0 / 256.0 +
171
- 255.0 / 256.0 / 256.0 / 256.0 +
172
- 255.0 / 256.0 / 256.0 / 256.0 / 256.0;
173
- const vec4 FIXED_POINT_FACTORS = vec4(1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0);
174
- vec4 float2rgba(const float value) {
175
- float valueInValidDomain = clamp(value, 0.0, MAX_RGBA_FLOAT);
176
- vec4 fixedPointU8 = floor(fract(valueInValidDomain * FIXED_POINT_FACTORS) * 256.0);
177
- const float toU8AsFloat = 1.0 / 255.0;
178
- return fixedPointU8 * toU8AsFloat;
179
- }`),e.code.add(n.H`const vec4 RGBA_TO_FLOAT_FACTORS = vec4(
180
- 255.0 / (256.0),
181
- 255.0 / (256.0 * 256.0),
182
- 255.0 / (256.0 * 256.0 * 256.0),
183
- 255.0 / (256.0 * 256.0 * 256.0 * 256.0)
184
- );
185
- float rgbaTofloat(vec4 rgba) {
186
- return dot(rgba, RGBA_TO_FLOAT_FACTORS);
187
- }`),e.code.add(n.H`const vec4 uninterpolatedRGBAToFloatFactors = vec4(
188
- 1.0 / 256.0,
189
- 1.0 / 256.0 / 256.0,
190
- 1.0 / 256.0 / 256.0 / 256.0,
191
- 1.0 / 256.0 / 256.0 / 256.0 / 256.0
192
- );
193
- float uninterpolatedRGBAToFloat(vec4 rgba) {
194
- return (dot(round(rgba * 255.0), uninterpolatedRGBAToFloatFactors) - 0.5) * 2.0;
195
- }`)}},27615:(e,t,r)=>{r.d(t,{CK:()=>l,Hq:()=>a,MW:()=>c,TE:()=>d,yJ:()=>u});var n=r(38954),i=r(86738),s=r(95696),o=r(18251);function a(e){return null!=e.origin}function l(e){return a(e.vertexSpace)}function c(e,t){if(!a(e))return null;const[r,n,s]=e.origin;return new i.A({x:r,y:n,z:s,spatialReference:t})}function d(e,t){const{x:r,y:n,z:i,spatialReference:a}=e,l=[r,n,i??0];return"local"===(t?.vertexSpace??function(e){return e.isGeographic||e.isWebMercator?"local":"georeferenced"}(a))?new o.A({origin:l}):new s.A({origin:l})}function u(e,t){return e.type===t.type&&(e.origin===t.origin||null!=e.origin&&null!=t.origin&&(0,n.q)(e.origin,t.origin))}},31756:(e,t,r)=>{r.d(t,{j:()=>s});var n=r(83047),i=r(79258);const s={unknown:1,inches:(0,n.oU)(1,"meters","inches"),feet:(0,n.oU)(1,"meters","feet"),"us-feet":(0,n.oU)(1,"meters","us-feet"),yards:(0,n.oU)(1,"meters","yards"),miles:(0,n.oU)(1,"meters","miles"),"nautical-miles":(0,n.oU)(1,"meters","nautical-miles"),millimeters:(0,n.oU)(1,"meters","millimeters"),centimeters:(0,n.oU)(1,"meters","centimeters"),decimeters:(0,n.oU)(1,"meters","decimeters"),meters:(0,n.oU)(1,"meters","meters"),kilometers:(0,n.oU)(1,"meters","kilometers"),"decimal-degrees":1/(0,n.vl)(1,"meters",i.$O.radius)}},40268:(e,t,r)=>{r.d(t,{Q:()=>u,R:()=>d});var n=r(35640),i=r(52587),s=r(25178),o=r(14314),a=r(33094),l=r(20304),c=r(31821);const d=.5;function u(e,t){e.include(i.Y6),e.attributes.add("position","vec3"),e.attributes.add("normal","vec3"),e.attributes.add("centerOffsetAndDistance","vec4");const r=e.vertex;(0,s.NB)(r,t),(0,s.yu)(r,t),r.uniforms.add(new o.I("viewport",e=>e.camera.fullViewport),new l.m("polygonOffset",e=>e.shaderPolygonOffset),new a.U("cameraGroundRelative",e=>e.camera.aboveGround?1:-1)),t.hasVerticalOffset&&(0,n.VQ)(r),r.code.add(c.H`struct ProjectHUDAux {
196
- vec3 posModel;
197
- vec3 posView;
198
- vec3 vnormal;
199
- float distanceToCamera;
200
- float absCosAngle;
201
- };`),r.code.add(c.H`
202
- float applyHUDViewDependentPolygonOffset(float pointGroundDistance, float absCosAngle, inout vec3 posView) {
203
- float pointGroundSign = ${t.terrainDepthTest?c.H.float(0):c.H`sign(pointGroundDistance)`};
204
- if (pointGroundSign == 0.0) {
205
- pointGroundSign = cameraGroundRelative;
206
- }
207
-
208
- // cameraGroundRelative is -1 if camera is below ground, 1 if above ground
209
- // groundRelative is 1 if both camera and symbol are on the same side of the ground, -1 otherwise
210
- float groundRelative = cameraGroundRelative * pointGroundSign;
211
-
212
- // view angle dependent part of polygon offset emulation: we take the absolute value because the sign that is
213
- // dropped is instead introduced using the ground-relative position of the symbol and the camera
214
- if (polygonOffset > .0) {
215
- float cosAlpha = clamp(absCosAngle, 0.01, 1.0);
216
- float tanAlpha = sqrt(1.0 - cosAlpha * cosAlpha) / cosAlpha;
217
- float factor = (1.0 - tanAlpha / viewport[2]);
218
-
219
- // same side of the terrain
220
- if (groundRelative > 0.0) {
221
- posView *= factor;
222
- }
223
- // opposite sides of the terrain
224
- else {
225
- posView /= factor;
226
- }
227
- }
228
-
229
- return groundRelative;
230
- }
231
- `),t.draped&&!t.hasVerticalOffset||(0,s.S7)(r),t.draped||(r.uniforms.add(new a.U("perDistancePixelRatio",e=>Math.tan(e.camera.fovY/2)/(e.camera.fullViewport[2]/2))),r.code.add(c.H`
232
- void applyHUDVerticalGroundOffset(vec3 normalModel, inout vec3 posModel, inout vec3 posView) {
233
- float distanceToCamera = length(posView);
234
-
235
- // Compute offset in world units for a half pixel shift
236
- float pixelOffset = distanceToCamera * perDistancePixelRatio * ${c.H.float(d)};
237
-
238
- // Apply offset along normal in the direction away from the ground surface
239
- vec3 modelOffset = normalModel * cameraGroundRelative * pixelOffset;
240
-
241
- // Apply the same offset also on the view space position
242
- vec3 viewOffset = (viewNormal * vec4(modelOffset, 1.0)).xyz;
243
-
244
- posModel += modelOffset;
245
- posView += viewOffset;
246
- }
247
- `)),t.screenCenterOffsetUnitsEnabled&&(0,s.Nz)(r),t.hasScreenSizePerspective&&(0,i.OH)(r),r.code.add(c.H`
248
- vec4 projectPositionHUD(out ProjectHUDAux aux) {
249
- vec3 centerOffset = centerOffsetAndDistance.xyz;
250
- float pointGroundDistance = centerOffsetAndDistance.w;
251
-
252
- aux.posModel = position;
253
- aux.posView = (view * vec4(aux.posModel, 1.0)).xyz;
254
- aux.vnormal = normal;
255
- ${t.draped?"":"applyHUDVerticalGroundOffset(aux.vnormal, aux.posModel, aux.posView);"}
256
-
257
- // Screen sized offset in world space, used for example for line callouts
258
- // Note: keep this implementation in sync with the CPU implementation, see
259
- // - MaterialUtil.verticalOffsetAtDistance
260
- // - HUDMaterial.applyVerticalOffsetTransformation
261
-
262
- aux.distanceToCamera = length(aux.posView);
263
-
264
- vec3 viewDirObjSpace = normalize(cameraPosition - aux.posModel);
265
- float cosAngle = dot(aux.vnormal, viewDirObjSpace);
266
-
267
- aux.absCosAngle = abs(cosAngle);
268
-
269
- ${t.hasScreenSizePerspective&&(t.hasVerticalOffset||t.screenCenterOffsetUnitsEnabled)?"vec3 perspectiveFactor = screenSizePerspectiveScaleFactor(aux.absCosAngle, aux.distanceToCamera, screenSizePerspectiveAlignment);":""}
270
-
271
- ${t.hasVerticalOffset?t.hasScreenSizePerspective?"float verticalOffsetScreenHeight = applyScreenSizePerspectiveScaleFactorFloat(verticalOffset.x, perspectiveFactor);":"float verticalOffsetScreenHeight = verticalOffset.x;":""}
272
-
273
- ${t.hasVerticalOffset?c.H`
274
- float worldOffset = clamp(verticalOffsetScreenHeight * verticalOffset.y * aux.distanceToCamera, verticalOffset.z, verticalOffset.w);
275
- vec3 modelOffset = aux.vnormal * worldOffset;
276
- aux.posModel += modelOffset;
277
- vec3 viewOffset = (viewNormal * vec4(modelOffset, 1.0)).xyz;
278
- aux.posView += viewOffset;
279
- // Since we elevate the object, we need to take that into account
280
- // in the distance to ground
281
- pointGroundDistance += worldOffset;`:""}
282
-
283
- float groundRelative = applyHUDViewDependentPolygonOffset(pointGroundDistance, aux.absCosAngle, aux.posView);
284
-
285
- ${t.screenCenterOffsetUnitsEnabled?"":c.H`
286
- // Apply x/y in view space, but z in screen space (i.e. along posView direction)
287
- aux.posView += vec3(centerOffset.x, centerOffset.y, 0.0);
288
-
289
- // Same material all have same z != 0.0 condition so should not lead to
290
- // branch fragmentation and will save a normalization if it's not needed
291
- if (centerOffset.z != 0.0) {
292
- aux.posView -= normalize(aux.posView) * centerOffset.z;
293
- }
294
- `}
295
-
296
- vec4 posProj = proj * vec4(aux.posView, 1.0);
297
-
298
- ${t.screenCenterOffsetUnitsEnabled?t.hasScreenSizePerspective?"float centerOffsetY = applyScreenSizePerspectiveScaleFactorFloat(centerOffset.y, perspectiveFactor);":"float centerOffsetY = centerOffset.y;":""}
299
-
300
- ${t.screenCenterOffsetUnitsEnabled?"posProj.xy += vec2(centerOffset.x, centerOffsetY) * pixelRatio * 2.0 / viewport.zw * posProj.w;":""}
301
-
302
- // constant part of polygon offset emulation
303
- posProj.z -= groundRelative * polygonOffset * posProj.w;
304
- return posProj;
305
- }
306
- `)}},47522:(e,t,r)=>{r.d(t,{K:()=>s});var n=r(32976),i=r(31821);function s(e){e.uniforms.add(new n.o("alignPixelEnabled",e=>e.alignPixelEnabled)),e.code.add(i.H`vec4 alignToPixelCenter(vec4 clipCoord, vec2 widthHeight) {
307
- if (!alignPixelEnabled)
308
- return clipCoord;
309
- vec2 xy = vec2(0.500123) + 0.5 * clipCoord.xy / clipCoord.w;
310
- vec2 pixelSz = vec2(1.0) / widthHeight;
311
- vec2 ij = (floor(xy * widthHeight) + vec2(0.5)) * pixelSz;
312
- vec2 result = (ij * 2.0 - vec2(1.0)) * clipCoord.w;
313
- return vec4(result, clipCoord.zw);
314
- }`),e.code.add(i.H`vec4 alignToPixelOrigin(vec4 clipCoord, vec2 widthHeight) {
315
- if (!alignPixelEnabled)
316
- return clipCoord;
317
- vec2 xy = vec2(0.5) + 0.5 * clipCoord.xy / clipCoord.w;
318
- vec2 pixelSz = vec2(1.0) / widthHeight;
319
- vec2 ij = floor((xy + 0.5 * pixelSz) * widthHeight) * pixelSz;
320
- vec2 result = (ij * 2.0 - vec2(1.0)) * clipCoord.w;
321
- return vec4(result, clipCoord.zw);
322
- }`)}},50832:(e,t,r)=>{r.d(t,{y:()=>l});var n=r(47522),i=r(14314),s=r(33094),o=r(31821),a=r(12791);function l(e){e.vertex.uniforms.add(new s.U("renderTransparentlyOccludedHUD",e=>0===e.hudRenderStyle?1:1===e.hudRenderStyle?0:.75),new i.I("viewport",e=>e.camera.fullViewport),new a.x("hudVisibilityTexture",e=>e.hudVisibility?.getTexture())),e.vertex.include(n.K),e.vertex.code.add(o.H`bool testHUDVisibility(vec4 posProj) {
323
- vec4 posProjCenter = alignToPixelCenter(posProj, viewport.zw);
324
- vec4 occlusionPixel = texture(hudVisibilityTexture, .5 + .5 * posProjCenter.xy / posProjCenter.w);
325
- if (renderTransparentlyOccludedHUD > 0.5) {
326
- return occlusionPixel.r * occlusionPixel.g > 0.0 && occlusionPixel.g * renderTransparentlyOccludedHUD < 1.0;
327
- }
328
- return occlusionPixel.r * occlusionPixel.g > 0.0 && occlusionPixel.g == 1.0;
329
- }`)}},52106:(e,t,r)=>{r.d(t,{A:()=>b});var n,i=r(31635),s=r(13874),o=r(69540),a=r(51447),l=r(25482),c=r(53966),d=r(36708),u=r(24326),h=r(10107),f=(r(44208),r(87811),r(40608)),m=r(12195),p=r(65864),g=r(50498),y=r(54339),_=r(33910);function v(e){if(null==e)return null;const t={};for(const r in e){const n=e[r];n&&(t[r]=n.toJSON())}return 0!==Object.keys(t).length?t:null}let b=class extends((0,o.O)(l.o)){static{n=this}constructor(e){super(e),this.isAggregate=!1,this.layer=null,this.origin=null,this.sourceLayer=null,this._version=0,Object.defineProperty(this,"uid",{value:(0,u.c)(),configurable:!0}),Object.defineProperty(this,"_lastMeshTransform",{value:{},configurable:!0,writable:!0,enumerable:!1}),arguments.length>1&&(0,a.eF)(c.A.getLogger(this),"Graphic",{version:"4.30"})}initialize(){this._watchMeshGeometryChanges()}set aggregateGeometries(e){const t=this._get("aggregateGeometries");JSON.stringify(t)!==JSON.stringify(e)&&this._set("aggregateGeometries",e)}set attributes(e){const t=this._get("attributes");t!==e&&(this._set("attributes",e),this._notifyLayer("attributes",t,e))}set geometry(e){const t=this._get("geometry");t!==e&&(this._set("geometry",e),"mesh"!==e?.type&&this._notifyLayer("geometry",t,e))}set popupTemplate(e){const t=this._get("popupTemplate");t!==e&&(this._set("popupTemplate",e),this._notifyLayer("popupTemplate",t,e))}set symbol(e){const t=this._get("symbol");t!==e&&(this._set("symbol",e),this._notifyLayer("symbol",t,e))}get version(){return this._version}set visible(e){const t=this._get("visible");t!==e&&(this._set("visible",e),this._notifyLayer("visible",t,e))}cloneShallow(){return new n({aggregateGeometries:this.aggregateGeometries,attributes:this.attributes,geometry:this.geometry,isAggregate:this.isAggregate,layer:this.layer,popupTemplate:this.popupTemplate,sourceLayer:this.sourceLayer,symbol:this.symbol,visible:this.visible,origin:this.origin})}getEffectivePopupTemplate(e=!1){if(this.popupTemplate)return this.popupTemplate;const t=this.origin&&"layer"in this.origin?this.origin.layer:null;for(const r of[t,this.sourceLayer,this.layer])if(r&&"object"==typeof r){if("popupTemplate"in r&&r.popupTemplate)return r.popupTemplate;if(e&&"defaultPopupTemplate"in r&&null!=r.defaultPopupTemplate)return r.defaultPopupTemplate}return null}getAttribute(e){return this.attributes?.[e]}setAttribute(e,t){if(this.attributes){const r=this.getAttribute(e);this.attributes[e]=t,this._notifyLayer("attributes",r,t,e)}else this.attributes={[e]:t}}getObjectId(){const e=this.sourceLayer??this.layer;return e?(0,y.r)(this,e):null}getGlobalId(){const e=this.sourceLayer??this.layer;return e&&"globalIdField"in e&&e.globalIdField?this.getAttribute(e.globalIdField):null}toJSON(){return{aggregateGeometries:v(this.aggregateGeometries),geometry:null!=this.geometry?this.geometry.toJSON():null,symbol:null!=this.symbol?this.symbol.toJSON():null,attributes:(0,m.W)(this.attributes)?this.attributes.toJSON():{...this.attributes},popupTemplate:this.popupTemplate?.toJSON()??null}}notifyMeshTransformChanged(e={}){const{geometry:t}=this;if("mesh"===t?.type){const r={origin:t.origin,transform:t.transform};this._notifyLayer("origin-transform",r,r,e.action)}}_notifyLayer(e,t,r,n){if(this._version++,!this.layer||!("graphicChanged"in this.layer))return;const i={graphic:this,property:e,oldValue:t,newValue:r};"origin-transform"===e&&(i.action=n),"attributes"===e&&(i.attributeName=n),this.layer.graphicChanged(i)}_watchMeshGeometryChanges(){this.addHandles([(0,d.z7)(()=>"mesh"===this.geometry?.type&&this.geometry.vertexSpace.origin?{localMatrix:this.geometry.transform?.localMatrix,origin:this.geometry.vertexSpace.origin}:void 0,({localMatrix:e,origin:t})=>{this._lastMeshTransform.localMatrix===e&&this._lastMeshTransform.origin===t||(this._lastMeshTransform.localMatrix=e,this._lastMeshTransform.origin=t,this.notifyMeshTransformChanged())}),(0,d.z7)(()=>"mesh"===this.geometry?.type?{vertexAttributes:this.geometry.vertexAttributes}:void 0,()=>{const e=this.geometry;"mesh"===e?.type&&e.vertexSpace.origin?(this._lastMeshTransform.localMatrix=e.transform?.localMatrix,this._lastMeshTransform.origin=e.vertexSpace.origin):(this._lastMeshTransform.localMatrix=void 0,this._lastMeshTransform.origin=void 0),this._notifyLayer("geometry",this.geometry,this.geometry)},{equals:(e,t)=>e===t,sync:!0})])}};(0,i.Cg)([(0,h.MZ)({value:null,json:{read:function(e){if(!e)return null;const t={};for(const r in e){const n=(0,p.rS)(e[r]);n&&(t[r]=n)}return 0!==Object.keys(t).length?t:null}}})],b.prototype,"aggregateGeometries",null),(0,i.Cg)([(0,h.MZ)({value:null})],b.prototype,"attributes",null),(0,i.Cg)([(0,h.MZ)({value:null,types:g.yR,json:{read:p.rS}})],b.prototype,"geometry",null),(0,i.Cg)([(0,h.MZ)({type:Boolean})],b.prototype,"isAggregate",void 0),(0,i.Cg)([(0,h.MZ)({clonable:!1})],b.prototype,"layer",void 0),(0,i.Cg)([(0,h.MZ)({clonable:"reference"})],b.prototype,"origin",void 0),(0,i.Cg)([(0,h.MZ)({type:s.A,value:null})],b.prototype,"popupTemplate",null),(0,i.Cg)([(0,h.MZ)({clonable:"reference"})],b.prototype,"sourceLayer",void 0),(0,i.Cg)([(0,h.MZ)({value:null,types:_.Es})],b.prototype,"symbol",null),(0,i.Cg)([(0,h.MZ)({clonable:!1,json:{read:!1,write:!1}})],b.prototype,"_version",void 0),(0,i.Cg)([(0,h.MZ)({type:Boolean,value:!0})],b.prototype,"visible",null),b=n=(0,i.Cg)([(0,f.$)("esri.Graphic")],b)},60999:(e,t,r)=>{r.d(t,{DZ:()=>m,Ke:()=>f,Tj:()=>d,UT:()=>p,jJ:()=>c});var n=r(31635),i=r(65008),s=r(97768),o=r(74887),a=r(10107),l=r(40608);function c(e,t,r){return(0,o.Lx)(e.map((e,n)=>t.apply(r,[e,n])))}async function d(e,t,r){return(await(0,o.Lx)(e.map((e,n)=>t.apply(r,[e,n])))).map(e=>e.value)}function u(e){return{ok:!0,value:e}}function h(e){return{ok:!1,error:e}}async function f(e){if(null==e)return{ok:!1,error:new Error("no promise provided")};try{return u(await e)}catch(e){return h(e)}}async function m(e){try{return u(await e)}catch(e){return(0,o.QP)(e),h(e)}}function p(e,t){return new g(e,t)}let g=class extends i.A{get value(){return null!=(e=this._result)&&!0===e.ok?e.value:null;var e}get error(){return null!=(e=this._result)&&!1===e.ok?e.error:null;var e}get finished(){return null!=this._result}constructor(e,t){super({}),this._result=null,this._abortHandle=null,this.abort=()=>{this._abortController=(0,s.DC)(this._abortController)},this.remove=this.abort,this._abortController=new AbortController;const{signal:r}=this._abortController;this.promise=e(r),this.promise.then(e=>{this._result=u(e),this._cleanup()},e=>{this._result=h(e),this._cleanup()}),this._abortHandle=(0,o.u7)(t,this.abort)}normalizeCtorArgs(){return{}}destroy(){this.abort()}_cleanup(){this._abortHandle=(0,s.xt)(this._abortHandle),this._abortController=null}};(0,n.Cg)([(0,a.MZ)()],g.prototype,"value",null),(0,n.Cg)([(0,a.MZ)()],g.prototype,"error",null),(0,n.Cg)([(0,a.MZ)()],g.prototype,"finished",null),(0,n.Cg)([(0,a.MZ)()],g.prototype,"promise",void 0),(0,n.Cg)([(0,a.MZ)()],g.prototype,"_result",void 0),g=(0,n.Cg)([(0,l.$)("esri.core.asyncUtils.ReactiveTask")],g)},63578:(e,t,r)=>{r.d(t,{I:()=>o});var n=r(47522),i=r(96598),s=r(31821);function o(e,t){const{vertex:r,fragment:o}=e;e.include(i.Z,t),r.include(n.K),r.main.add(s.H`vec4 posProjCenter;
330
- if (dot(position, position) > 0.0) {
331
- ProjectHUDAux projectAux;
332
- vec4 posProj = projectPositionHUD(projectAux);
333
- posProjCenter = alignToPixelCenter(posProj, viewport.zw);
334
- forwardViewPosDepth(projectAux.posView);
335
- vec3 vpos = projectAux.posModel;
336
- if (rejectBySlice(vpos)) {
337
- posProjCenter = vec4(1e038, 1e038, 1e038, 1.0);
338
- }
339
- } else {
340
- posProjCenter = vec4(1e038, 1e038, 1e038, 1.0);
341
- }
342
- gl_Position = posProjCenter;
343
- gl_PointSize = 1.0;`),o.main.add(s.H`fragColor = vec4(1);
344
- if(discardByTerrainDepth()) {
345
- fragColor.g = 0.5;
346
- }`)}},65215:(e,t,r)=>{r.d(t,{H:()=>n,R:()=>i});class n{constructor(e){this.layerViewUid=e}}class i extends n{constructor(e,t){super(e),this.graphicUid=t}}},65494:(e,t,r)=>{r.d(t,{L:()=>l,r:()=>o});var n=r(67076),i=r(90360),s=r(41214);function o(e,t){return l(e,null,t)}const a=(0,i.C)({types:s.Hg});function l(e,t,r){return e?e&&(e.styleName||e.styleUrl)&&"uniqueValue"!==e.type?(r?.messages&&r.messages.push(new n.A("renderer:unsupported","Only UniqueValueRenderer can be referenced from a web style, but found '"+e.type+"'",{definition:e,context:r})),null):a(e,t,r):null}},72385:(e,t,r)=>{function n(){return new Float32Array(3)}function i(e){const t=new Float32Array(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function s(e,t,r){const n=new Float32Array(3);return n[0]=e,n[1]=t,n[2]=r,n}function o(){return n()}function a(){return s(1,1,1)}function l(){return s(1,0,0)}function c(){return s(0,1,0)}function d(){return s(0,0,1)}r.d(t,{fA:()=>s,o8:()=>i,vt:()=>n});const u=o(),h=a(),f=l(),m=c(),p=d();Object.freeze(Object.defineProperty({__proto__:null,ONES:h,UNIT_X:f,UNIT_Y:m,UNIT_Z:p,ZEROS:u,clone:i,create:n,fromValues:s,ones:a,unitX:l,unitY:c,unitZ:d,zeros:o},Symbol.toStringTag,{value:"Module"}))},75503:(e,t,r)=>{r.d(t,{EC:()=>S,wq:()=>a});var n=r(4576),i=r(21818),s=(r(44208),r(15142)),o=r(11006);class a{constructor(e=9,t){this._compareMinX=h,this._compareMinY=f,this._toBBox=e=>e,this._maxEntries=Math.max(4,e||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),t&&("function"==typeof t?this._toBBox=t:this._initFormat(t)),this.clear()}destroy(){this.clear(),x.prune(),C.prune(),w.prune(),A.prune()}all(e){l(this._data,e)}search(e,t){let r=this._data;const n=this._toBBox;if(v(e,r))for(x.clear();r;){for(let i=0,s=r.children.length;i<s;i++){const s=r.children[i],o=r.leaf?n(s):s;v(e,o)&&(r.leaf?t(s):_(e,o)?l(s,t):x.push(s))}r=x.pop()}}collides(e){let t=this._data;const r=this._toBBox;if(!v(e,t))return!1;for(x.clear();t;){for(let n=0,i=t.children.length;n<i;n++){const i=t.children[n],s=t.leaf?r(i):i;if(v(e,s)){if(t.leaf||_(e,s))return!0;x.push(i)}}t=x.pop()}return!1}load(e){if(!e.length)return this;if(e.length<this._minEntries){for(let t=0,r=e.length;t<r;t++)this.insert(e[t]);return this}let t=this._build(e.slice(),0,e.length-1,0);if(this._data.children.length)if(this._data.height===t.height)this._splitRoot(this._data,t);else{if(this._data.height<t.height){const e=this._data;this._data=t,t=e}this._insert(t,this._data.height-t.height-1,!0)}else this._data=t;return this}insert(e){return e&&this._insert(e,this._data.height-1),this}clear(){return this._data=new P([]),this}remove(e){if(!e)return this;let t,r=this._data,s=null,o=0,a=!1;const l=this._toBBox(e);for(w.clear(),A.clear();r||w.length>0;){if(r||(r=w.pop(),s=w.data[w.length-1],o=A.pop()??0,a=!0),r.leaf&&(t=(0,n.qh)(r.children,(0,i.zI)(e),r.children.length,r.indexHint),-1!==t))return r.children.splice(t,1),w.push(r),this._condense(w),this;a||r.leaf||!_(r,l)?s?(o++,r=s.children[o],a=!1):r=null:(w.push(r),A.push(o),o=0,s=r,r=r.children[0])}return this}toJSON(){return this._data}fromJSON(e){return this._data=e,this}_build(e,t,r,n){const i=r-t+1;let s=this._maxEntries;if(i<=s){const n=new P(e.slice(t,r+1));return c(n,this._toBBox),n}n||(n=Math.ceil(Math.log(i)/Math.log(s)),s=Math.ceil(i/s**(n-1)));const o=new O([]);o.height=n;const a=Math.ceil(i/s),l=a*Math.ceil(Math.sqrt(s));b(e,t,r,l,this._compareMinX);for(let i=t;i<=r;i+=l){const t=Math.min(i+l-1,r);b(e,i,t,a,this._compareMinY);for(let r=i;r<=t;r+=a){const i=Math.min(r+a-1,t);o.children.push(this._build(e,r,i,n-1))}}return c(o,this._toBBox),o}_insert(e,t,r){const n=this._toBBox,i=r?e:n(e);w.clear();const s=function(e,t,r,n){for(;n.push(t),!0!==t.leaf&&n.length-1!==r;){let r,n=1/0,i=1/0;for(let s=0,o=t.children.length;s<o;s++){const o=t.children[s],a=m(o),l=g(e,o)-a;l<i?(i=l,n=a<n?a:n,r=o):l===i&&a<n&&(n=a,r=o)}t=r||t.children[0]}return t}(i,this._data,t,w);for(s.children.push(e),u(s,i);t>=0&&w.data[t].children.length>this._maxEntries;)this._split(w,t),t--;!function(e,t,r){for(let n=r;n>=0;n--)u(t.data[n],e)}(i,w,t)}_split(e,t){const r=e.data[t],n=r.children.length,i=this._minEntries;this._chooseSplitAxis(r,i,n);const s=this._chooseSplitIndex(r,i,n);if(!s)return;const o=r.children.splice(s,r.children.length-s),a=r.leaf?new P(o):new O(o);a.height=r.height,c(r,this._toBBox),c(a,this._toBBox),t?e.data[t-1].children.push(a):this._splitRoot(r,a)}_splitRoot(e,t){this._data=new O([e,t]),this._data.height=e.height+1,c(this._data,this._toBBox)}_chooseSplitIndex(e,t,r){let n,i,s;n=i=1/0;for(let o=t;o<=r-t;o++){const t=d(e,0,o,this._toBBox),a=d(e,o,r,this._toBBox),l=y(t,a),c=m(t)+m(a);l<n?(n=l,s=o,i=c<i?c:i):l===n&&c<i&&(i=c,s=o)}return s}_chooseSplitAxis(e,t,r){const n=e.leaf?this._compareMinX:h,i=e.leaf?this._compareMinY:f;this._allDistMargin(e,t,r,n)<this._allDistMargin(e,t,r,i)&&e.children.sort(n)}_allDistMargin(e,t,r,n){e.children.sort(n);const i=this._toBBox,s=d(e,0,t,i),o=d(e,r-t,r,i);let a=p(s)+p(o);for(let n=t;n<r-t;n++){const t=e.children[n];u(s,e.leaf?i(t):t),a+=p(s)}for(let n=r-t-1;n>=t;n--){const t=e.children[n];u(o,e.leaf?i(t):t),a+=p(o)}return a}_condense(e){for(let t=e.length-1;t>=0;t--){const r=e.data[t];if(0===r.children.length)if(t>0){const i=e.data[t-1],s=i.children;s.splice((0,n.qh)(s,r,s.length,i.indexHint),1)}else this.clear();else c(r,this._toBBox)}}_initFormat(e){const t=["return a"," - b",";"];this._compareMinX=new Function("a","b",t.join(e[0])),this._compareMinY=new Function("a","b",t.join(e[1])),this._toBBox=new Function("a","return {minX: a"+e[0]+", minY: a"+e[1]+", maxX: a"+e[2]+", maxY: a"+e[3]+"};")}}function l(e,t){let r=e;for(C.clear();r;){if(!0===r.leaf)for(const e of r.children)t((0,i.zI)(e));else C.pushArray(r.children);r=C.pop()??null}}function c(e,t){d(e,0,e.children.length,t,e)}function d(e,t,r,n,i){i||(i=new P([])),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(let s,o=t;o<r;o++)s=e.children[o],u(i,e.leaf?n(s):s);return i}function u(e,t){e.minX=Math.min(e.minX,t.minX),e.minY=Math.min(e.minY,t.minY),e.maxX=Math.max(e.maxX,t.maxX),e.maxY=Math.max(e.maxY,t.maxY)}function h(e,t){return e.minX-t.minX}function f(e,t){return e.minY-t.minY}function m(e){return(e.maxX-e.minX)*(e.maxY-e.minY)}function p(e){return e.maxX-e.minX+(e.maxY-e.minY)}function g(e,t){return(Math.max(t.maxX,e.maxX)-Math.min(t.minX,e.minX))*(Math.max(t.maxY,e.maxY)-Math.min(t.minY,e.minY))}function y(e,t){const r=Math.max(e.minX,t.minX),n=Math.max(e.minY,t.minY),i=Math.min(e.maxX,t.maxX),s=Math.min(e.maxY,t.maxY);return Math.max(0,i-r)*Math.max(0,s-n)}function _(e,t){return e.minX<=t.minX&&e.minY<=t.minY&&t.maxX<=e.maxX&&t.maxY<=e.maxY}function v(e,t){return t.minX<=e.maxX&&t.minY<=e.maxY&&t.maxX>=e.minX&&t.maxY>=e.minY}function b(e,t,r,n,i){const s=[t,r];for(;s.length;){const t=s.pop(),r=s.pop();if(t-r<=n)continue;const a=r+Math.ceil((t-r)/n/2)*n;(0,o.q)(e,a,r,t,i),s.push(r,a,a,t)}}const x=new s.A,C=new s.A,w=new s.A,A=new s.A({deallocator:void 0});class S{constructor(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0}}class I extends S{constructor(){super(...arguments),this.height=1,this.indexHint=new n.vW}}class P extends I{constructor(e){super(),this.children=e,this.leaf=!0}}class O extends I{constructor(e){super(),this.children=e,this.leaf=!1}}},77121:(e,t,r)=>{r.r(t),r.d(t,{default:()=>Jr});var n=r(31635),i=r(65529),s=r(74887),o=r(36708),a=r(10107),l=r(44208),c=(r(53966),r(87811),r(40608)),d=r(5443),u=r(98988),h=r(16930),f=r(95422),m=r(61956),p=r(65494);class g{constructor(e,t,r){this.renderCommandContext=e,this.renderCommandBuffer=t,this.pipelineStateCommands=r}append(e){this.appendRenderCommands(e.renderCommandBuffer),this.appendPipelineStateCommands(e.pipelineStateCommands)}appendRenderCommands(e){this.renderCommandBuffer.commands.push(...e.commands),this.renderCommandBuffer.transferList.push(...e.transferList)}appendPipelineStateCommand(e){this.pipelineStateCommands.push(e)}appendPipelineStateCommands(e){for(const t of e)this.appendPipelineStateCommand(t)}async execute(){for(const e of this.pipelineStateCommands)e();await this.renderCommandContext.dispatchRenderCommands(this.renderCommandBuffer)}static create(e,t=[]){return new g(e,e.createRenderCommandBuffer(),t)}}var y=r(68197),_=r(18574),v=r(87403),b=r(28975);function x(){return new _.A({material:new b.N({color:new y.A("red")})})}var C=r(9093),w=r(51850),A=r(91829),S=r(6847),I=r(83047),P=r(58083),O=r(87317),M=r(70328),R=r(19419);r(12359),r(95108),r(27615),r(52106),r(4718),r(34275),r(65864);var T=r(37585),F=r(48163),z=r(34727),D=r(26857);new Map,(()=>{let e="";for(let t=32;t<127;t++)e+=String.fromCharCode(t)})();const j=[];{const e=16;for(let t=0;t<360;t+=360/e)j.push([Math.cos(Math.PI*t/180),Math.sin(Math.PI*t/180)])}Object.freeze({left:0,center:.5,right:1});const B=Object.freeze({"bottom-left":(0,F.fA)(0,0),bottom:(0,F.fA)(.5,0),"bottom-right":(0,F.fA)(1,0),left:(0,F.fA)(0,.5),center:(0,F.fA)(.5,.5),right:(0,F.fA)(1,.5),"top-left":(0,F.fA)(0,1),top:(0,F.fA)(.5,1),"top-right":(0,F.fA)(1,1)});var E=r(9762),V=r(27993);function L(e){const{featureCount:t}=e;if(0===t)return new Uint32Array;const r=new Uint32Array(t);return e.getObjectIdsArray(r),r}function U(e){const{featureCount:t}=e;if(0===t)return new Float64Array;const r=new Float64Array(3*t);return e.getCoordinatesArray(r),r}function H(e,t){const r=t.viewSpatialReference,n=t.renderSpatialReference,{extent:i}=e,s=(0,R.gX)(i),o=(0,w.vt)();return(0,V.F)([s[0],s[1],0],r,o,n),o}var G=r(97146);function k(e){const t=new Map;for(const[r,n]of e)t.set(r,{...n,indices:(0,G.Dg)(n.indices)});return t}var q=r(40804);r(48833);const $=(0,A.CN)(.25,.25,.75,.75);function N(e){return"cross"===e||"x"===e}function Y(e,t=128,r=.5*t,n=0){switch(e){case"circle":default:return function(e,t){const r=e/2-.5;return J(e,Z(r,r,t/2))}(t,r);case"square":return function(e,t){return X(e,t,!1)}(t,r);case"cross":return function(e,t,r=0){return W(e,t,!1,r)}(t,r,n);case"x":return function(e,t,r=0){return W(e,t,!0,r)}(t,r,n);case"kite":return function(e,t){return X(e,t,!0)}(t,r);case"triangle":return function(e,t){return J(e,Q(e/2,t,t/2))}(t,r);case"arrow":return function(e,t){const r=t,n=t/2,i=e/2,s=.8*r,o=Z(i,(e-t)/2-s,Math.sqrt(s*s+n*n)),a=Q(i,r,n);return J(e,(e,t)=>Math.max(a(e,t),-o(e,t)))}(t,r)}}function X(e,t,r){return r&&(t/=Math.SQRT2),J(e,(n,i)=>{let s=n-.5*e+.25,o=.5*e-i-.75;if(r){const e=(s+o)/Math.SQRT2;o=(o-s)/Math.SQRT2,s=e}return Math.max(Math.abs(s),Math.abs(o))-.5*t})}function W(e,t,r,n=0){t-=n,r&&(t*=Math.SQRT2);const i=.5*t;return J(e,(t,s)=>{let o,a=t-.5*e,l=.5*e-s-1;if(r){const e=(a+l)/Math.SQRT2;l=(l-a)/Math.SQRT2,a=e}return a=Math.abs(a),l=Math.abs(l),o=a>l?a>i?Math.sqrt((a-i)*(a-i)+l*l):l:l>i?Math.sqrt(a*a+(l-i)*(l-i)):a,o-=n/2,o})}function Z(e,t,r){return(n,i)=>{const s=n-e,o=i-t;return Math.sqrt(s*s+o*o)-r}}function Q(e,t,r){const n=Math.sqrt(t*t+r*r);return(i,s)=>{const o=Math.abs(i-e)-r,a=s-e+t/2+.75,l=(t*o+r*a)/n,c=-a;return Math.max(l,c)}}function J(e,t){const r=new Uint8Array(4*e*e);for(let n=0;n<e;n++)for(let i=0;i<e;i++){const s=i+e*n;let o=t(i,n);o=o/e+.5,(0,q.U)(o,r,4*s)}return r}var K=r(46610);class ee{constructor(e,t){this._context=null,this._symbolLayer=null,this._draped=!1,this._loaded=!1,this._loadingPromise=null,this._iconTextureID=null,this._materialId=null,this._context=t,this._symbolLayer=e}get loaded(){return this._loaded}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}_destroy(){this._iconTextureID=null}async _load(){const e=this._context.renderCommandContext,t=await e.createTexture(()=>function(e,t=128,r=.5*t,n=0){return{data:Y(e,t,r,n),parameters:{mipmap:!1,wrap:{s:33071,t:33071},width:t,height:t,components:4,noUnpackFlip:!0,reloadable:!0}}}("circle"));this._iconTextureID=t;const r={anchorPosition:B.center,occlusionTest:!0,hasSlicePlane:!1,color:this._getFillColor(),outlineColor:this._getOutlineColor(),outlineSize:1,distanceFieldBoundingBox:$,textureId:t,textureIsSignedDistanceField:!0,sampleSignedDistanceFieldTexelCenter:N("circle")};this._materialId=await e.createMaterial({type:"hud",parameters:r}),await e.createDirectRenderer(this._materialId),this._loaded=!0}async createAddCommand(e){const{_materialId:t,_context:r}=this,{renderCommandContext:n}=r;if(null==t)throw new Error("expected material not to be null");const i=await this._createGeometry(e);if(null==i)return r.createPipelineCommand();const s=H(e,r);return r.createPipelineCommand(n.addDirectRendererGeometry(e.id,i,s))}async _createGeometry(e){const{_materialId:t,_context:r}=this,{mainThreadDelegate:n}=r,{featureCount:i}=e;if(0===i||null==t)return null;const s=L(e),o=U(e),a=function(e,t){const r=e.length/3,n=t.viewSpatialReference,i=t.renderSpatialReference,s=new Float64Array(3*r);if(!(0,E.projectBuffer)(e,n,0,s,i,0,r))throw new Error("Failed to project coordinates");return s}(await n.applyElevationAlignmentTo(o),r),l=new Float64Array([0,0,1]),c=new Float64Array([255,255,255,255]),d=new Float64Array([24,24]),u=new Float64Array([0,0,0,1]),h=new Float64Array([0,0]),f=new Float64Array([0]),m=new Uint32Array(i);for(let e=0;e<i;++e)m[e]=e;const p=new Uint32Array(i);for(let e=0;e<i;++e)p[e]=0;const g=[["position",new K.n(a,m,3,!0)],["normal",new K.n(l,p,3,!0)],["uv0",new K.n(h,p,2,!0)],["color",new K.n(c,p,4,!0)],["rotation",new K.n(f,p,1,!0)],["size",new K.n(d,p,2,!0)],["centerOffsetAndDistance",new K.n(u,p,4,!0)]],y=new Uint8Array(i);return e.getVisibilityArray(y),{attributes:k(g),olidColor:void 0,transformation:(0,C.vt)(),materialId:t,objectIds:s,visibilities:y}}async createRemoveCommand(e){const{_materialId:t,_context:r}=this,n=r.renderCommandContext;return null==t?r.createPipelineCommand():r.createPipelineCommand(n.removeDirectRendererGeometryBuffer(t,e))}async createUpdateVisibilityCommand(e){const{_materialId:t,_context:r}=this,n=r.renderCommandContext;if(null==t)return r.createPipelineCommand();const i=new Uint8Array(e.featureCount);return e.getVisibilityArray(i),r.createPipelineCommand(n.updateVisibility(t,e.id,i))}async createUpdateLayerViewOpacityCommand(e){const{_context:t,_materialId:r}=this,n=t.renderCommandContext;return null==r?t.createPipelineCommand():t.createPipelineCommand(n.updateMaterial({type:"hud",materialId:r,parameters:{color:this._getFillColor(),outlineColor:this._getOutlineColor()}}))}async createUpdateElevationCommand(e){const{_materialId:t,_context:r}=this,{renderCommandContext:n}=r,{featureCount:i,id:s}=e;if(null==t||0===i)return r.createPipelineCommand();const o=await this._createGeometry(e);if(null==o)return r.createPipelineCommand();const a=H(e,r);return r.createPipelineCommand(n.updateDirectRendererGeometry(s,o,a))}async createDestroyCommand(){const{_iconTextureID:e,_context:t}=this,r=t.renderCommandContext;let n;return n=null!=e?await r.releaseTexture(e):g.create(r),n.appendPipelineStateCommand(()=>this._destroy()),n}_getOutlineColor(){const e=this._getLayerOpacity(),t=this._symbolLayer,r=t?.outline?.color;if(null!=r){const t=y.A.toUnitRGB(r),n=r.a*e;return[t[0],t[1],t[2],n]}return[0,0,0,0]}_getFillColor(){if(function(e){return null!=e&&("cross"===e||"x"===e)}(this._getPrimitive()))return re;const e=null==this._getPrimitive(),t=this._symbolLayer?.material?.color;return this._getCombinedOpacityAndColor(t,{hasIntrinsicColor:e})}_getLayerOpacity(){return this._context.layerViewInfo.fullOpacity}_getCombinedOpacity(e,t=te){const r=this._draped?1:this._getLayerOpacity();return e?r*e.a:t.hasIntrinsicColor?r:0}_getCombinedOpacityAndColor(e,t=te){const r=this._getCombinedOpacity(e,t);return function(e,t,r=null){const n=(0,A.o8)(A.Un);return null!=e&&(n[0]=e[0],n[1]=e[1],n[2]=e[2],e.length>3&&(n[3]=e[3])),null!=t&&(n[3]=t),r&&(0,O.d)(n,n,r),n}(null!=e?y.A.toUnitRGB(e):w.Un,r)}_getPrimitive(){return e=this._symbolLayer,e.resource?.href?null:e.resource?.primitive??S.r;var e}}const te={hasIntrinsicColor:!1},re=A.uY;class ne{constructor(e,t){this._loaded=!1,this._loadingPromise=null,this._context=null,this._symbol=null,this._symbolLayerRenderers=[],this._context=t,this._symbol=e}_destroy(){}get loaded(){return this._loaded}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const{_context:e,_symbol:t,_symbolLayerRenderers:r}=this,n=[];for(const i of t.symbolLayers){const t=e.symbolRendererFactory.createSymbolRendererFromSymbolLayer(i);null!=t&&(n.push(t.load()),r.push(t))}await Promise.all(n),this._loaded=!0}async createDestroyCommand(){const{_context:e,_symbolLayerRenderers:t}=this,r=[];for(const e of t)r.push(e.createDestroyCommand());const n=e.joinPipelineCommands(await Promise.all(r));return n.appendPipelineStateCommand(()=>this._destroy()),n}async createAddCommand(e){const{_context:t,_symbolLayerRenderers:r}=this,n=[];for(const t of r)n.push(t.createAddCommand(e));return t.joinPipelineCommands(await Promise.all(n))}async createRemoveCommand(e){const{_context:t,_symbolLayerRenderers:r}=this,n=[];for(const t of r)n.push(t.createRemoveCommand(e));return t.joinPipelineCommands(await Promise.all(n))}async createUpdateVisibilityCommand(e){const{_context:t,_symbolLayerRenderers:r}=this,n=[];for(const t of r)n.push(t.createUpdateVisibilityCommand(e));return t.joinPipelineCommands(await Promise.all(n))}async createUpdateLayerViewOpacityCommand(e){const{_context:t,_symbolLayerRenderers:r}=this,n=[];for(const t of r)n.push(t.createUpdateLayerViewOpacityCommand(e));return t.joinPipelineCommands(await Promise.all(n))}async createUpdateElevationCommand(e){const{_context:t,_symbolLayerRenderers:r}=this,n=[];for(const t of r)n.push(t.createUpdateElevationCommand(e));return t.joinPipelineCommands(await Promise.all(n))}}class ie{constructor(e,t){this._symbol=null,this._featureData=new Map,this._loaded=!1,this._loadingPromise=null,this._renderer=null,this._context=t,this._renderer=e}async load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const{_renderer:e,_context:t}=this;this._symbol=t.symbolRendererFactory.createSymbolRendererFromSymbol(e.symbol),this._loaded=!0}get loaded(){return this._loaded}async createAddCommand(e){const t=this._context,r=await this._provisionSymbol(),n=null==r?t.createPipelineCommand():await r.createAddCommand(e);return n.appendPipelineStateCommand(()=>this._featureData.set(e.id,e)),n}async createRemoveCommand(e){const t=this._context,r=await this._provisionSymbol(),n=null==r?t.createPipelineCommand():await r.createRemoveCommand(e);return n.appendPipelineStateCommand(()=>this._featureData.delete(e)),n}async createUpdateVisibilityCommand(e){const t=this._context,r=await this._provisionSymbol();return null==r?t.createPipelineCommand():await r.createUpdateVisibilityCommand(e)}async createUpdateLayerViewOpacityCommand(e){const t=this._context,r=await this._provisionSymbol();return null==r?t.createPipelineCommand():await r.createUpdateLayerViewOpacityCommand(e)}async createUpdateElevationCommand(){const{_featureData:e,_context:t}=this,r=await this._provisionSymbol();if(null==r)return t.createPipelineCommand();const n=[];for(const t of e.values())n.push(r.createUpdateElevationCommand(t));const i=await Promise.all(n);return t.joinPipelineCommands(i)}async createDestroyCommand(){const{_symbol:e,_context:t,_featureData:r}=this;if(!e)return t.createPipelineCommand();const n=[];for(const e of r.keys())n.push(this.createRemoveCommand(e));n.push(e.createDestroyCommand());const i=await Promise.all(n);return t.joinPipelineCommands(i)}async _provisionSymbol(){const e=this._symbol;return e?(e.loaded||await e.load(),e):null}}var se=r(48353),oe=r(30809),ae=r(8887),le=r(38954),ce=r(72385),de=(r(4197),r(11868)),ue=r(27921),he=(r(71351),r(73941));function fe(e,t){const r=e[t],n=e[t+1],i=e[t+2];return Math.sqrt(r*r+n*n+i*i)}function me(e,t){const r=e[t],n=e[t+1],i=e[t+2],s=1/Math.sqrt(r*r+n*n+i*i);e[t]*=s,e[t+1]*=s,e[t+2]*=s}function pe(e,t,r){e[t]*=r,e[t+1]*=r,e[t+2]*=r}r(37539),r(20498),r(87170),(0,F.vt)(),(0,F.vt)();var ge=r(620);const ye=new Array(36);for(let e=0;e<6;e++)for(let t=0;t<6;t++)ye[6*e+t]=e;const _e=new Array(36);for(let e=0;e<6;e++)_e[6*e]=0,_e[6*e+1]=1,_e[6*e+2]=2,_e[6*e+3]=2,_e[6*e+4]=3,_e[6*e+5]=0;const ve=(0,ce.fA)(-.5,0,-.5),be=(0,ce.fA)(.5,0,-.5),xe=(0,ce.fA)(0,0,.5),Ce=(0,ce.fA)(0,.5,0),we=(0,ce.vt)(),Ae=(0,ce.vt)(),Se=(0,ce.vt)(),Ie=(0,ce.vt)(),Pe=(0,ce.vt)();(0,le.d)(we,ve,Ce),(0,le.d)(Ae,ve,be),(0,le.h)(Se,we,Ae),(0,le.n)(Se,Se),(0,le.d)(we,be,Ce),(0,le.d)(Ae,be,xe),(0,le.h)(Ie,we,Ae),(0,le.n)(Ie,Ie),(0,le.d)(we,xe,Ce),(0,le.d)(Ae,xe,ve),(0,le.h)(Pe,we,Ae),(0,le.n)(Pe,Pe),Se[0],Se[1],Se[2],Ie[0],Ie[1],Ie[2],Pe[0],Pe[1],Pe[2],(0,w.vt)();var Oe=r(4576),Me=r(69397);r(6867),r(87582);var Re=r(57917);function Te(e,t){const r=(e,r,n=!1)=>({levels:e.map(e=>{const i=k(r(e.tesselation));return n&&function(e){const t=e,r=t.get("position").data,n=t.get("normal").data;if(n){const t=Fe(e,"normal").data;for(let e=0;e<n.length;e+=3){const r=n[e+1];t[e+1]=-n[e+2],t[e+2]=r}}if(r){const t=Fe(e,"position").data;for(let e=0;e<r.length;e+=3){const n=r[e+1];t[e+1]=-r[e+2],t[e+2]=n}}}(i),{components:[{attributes:i,olidColor:void 0,transformation:null,materialId:t,visibilities:new Uint8Array([1]),objectIds:new Uint32Array([-1])}],minScreenSpaceRadius:e.minScreenSpaceRadius}})});switch(e){case"cone":return r(ze,e=>function(e,t,r,n,i=!0,s=!0){let o=0;const a=t,l=e;let c=(0,ce.fA)(0,o,0),d=(0,ce.fA)(0,o+l,0),u=(0,ce.fA)(0,-1,0),h=(0,ce.fA)(0,1,0);n&&(o=l,d=(0,ce.fA)(0,0,0),c=(0,ce.fA)(0,o,0),u=(0,ce.fA)(0,1,0),h=(0,ce.fA)(0,-1,0));const f=[d,c],m=[u,h],p=r+2,g=Math.sqrt(l*l+a*a);if(n)for(let e=r-1;e>=0;e--){const t=e*(2*Math.PI/r),n=(0,ce.fA)(Math.cos(t)*a,o,Math.sin(t)*a);f.push(n);const i=(0,ce.fA)(l*Math.cos(t)/g,-a/g,l*Math.sin(t)/g);m.push(i)}else for(let e=0;e<r;e++){const t=e*(2*Math.PI/r),n=(0,ce.fA)(Math.cos(t)*a,o,Math.sin(t)*a);f.push(n);const i=(0,ce.fA)(l*Math.cos(t)/g,a/g,l*Math.sin(t)/g);m.push(i)}const y=new Array,_=new Array;if(i){for(let e=3;e<f.length;e++)y.push(1),y.push(e-1),y.push(e),_.push(0),_.push(0),_.push(0);y.push(f.length-1),y.push(2),y.push(1),_.push(0),_.push(0),_.push(0)}if(s){for(let e=3;e<f.length;e++)y.push(e),y.push(e-1),y.push(0),_.push(e),_.push(e-1),_.push(1);y.push(0),y.push(2),y.push(f.length-1),_.push(1),_.push(2),_.push(m.length-1)}const v=(0,de.oe)(3*p);for(let e=0;e<p;e++)v[3*e]=f[e][0],v[3*e+1]=f[e][1],v[3*e+2]=f[e][2];const b=(0,de.oe)(3*p);for(let e=0;e<p;e++)b[3*e]=m[e][0],b[3*e+1]=m[e][1],b[3*e+2]=m[e][2];return[["position",new K.n(v,y,3,!0)],["normal",new K.n(b,_,3,!0)]]}(1,.5,e,!1),!0);case"sphere":return r([{tesselation:0,minScreenSpaceRadius:0},{tesselation:1,minScreenSpaceRadius:8},{tesselation:2,minScreenSpaceRadius:16},{tesselation:3,minScreenSpaceRadius:50},{tesselation:4,minScreenSpaceRadius:250}],e=>function(e,t,r){const n=e;let i,s;if(r)i=[0,-1,0,1,0,0,0,0,1,-1,0,0,0,0,-1,0,1,0],s=[0,1,2,0,2,3,0,3,4,0,4,1,1,5,2,2,5,3,3,5,4,4,5,1];else{const e=n*(1+Math.sqrt(5))/2;i=[-n,e,0,n,e,0,-n,-e,0,n,-e,0,0,-n,e,0,n,e,0,-n,-e,0,n,-e,e,0,-n,e,0,n,-e,0,-n,-e,0,n],s=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1]}for(let t=0;t<i.length;t+=3)pe(i,t,e/fe(i,t));let o={};function a(t,r){t>r&&([t,r]=[r,t]);const n=t.toString()+"."+r.toString();if(o[n])return o[n];let s=i.length;return i.length+=3,function(e,t,r,n,i,s=t){(i=i||e)[s]=e[t]+r[n],i[s+1]=e[t+1]+r[n+1],i[s+2]=e[t+2]+r[n+2]}(i,3*t,i,3*r,i,s),pe(i,s,e/fe(i,s)),s/=3,o[n]=s,s}for(let e=0;e<t;e++){const e=s.length,t=new Array(4*e);for(let r=0;r<e;r+=3){const e=s[r],n=s[r+1],i=s[r+2],o=a(e,n),l=a(n,i),c=a(i,e),d=4*r;t[d]=e,t[d+1]=o,t[d+2]=c,t[d+3]=n,t[d+4]=l,t[d+5]=o,t[d+6]=i,t[d+7]=c,t[d+8]=l,t[d+9]=o,t[d+10]=l,t[d+11]=c}s=t,o={}}const l=(0,de.Wz)(i);for(let e=0;e<l.length;e+=3)me(l,e);return[["position",new K.n((0,de.Wz)(i),s,3,!0)],["normal",new K.n(l,s,3,!0)]]}(.5,e,!0));case"cube":case"inverted-cone":case"cylinder":case"tetrahedron":case"diamond":throw new Error("not implemented");default:return}}function Fe(e,t){let r=e.get(t);return r&&!r.exclusive&&(r={...r,exclusive:!0,data:(0,Re.S)(r.data)},e.set(t,r)),r}const ze=[{tesselation:6,minScreenSpaceRadius:0},{tesselation:18,minScreenSpaceRadius:7},{tesselation:64,minScreenSpaceRadius:65}];var De=r(63573),je=r(74810);class Be{constructor(e,t){this._loaded=!1,this._loadingPromise=null,this._primitiveMaterialId=null,this._lodRendererId=null,this._context=null,this._symbolLayer=null,this._primitive=null,this._context=t,this._symbolLayer=e}_destroy(){this._lodRendererId=null,this._primitiveMaterialId=null}get loaded(){return this._loaded}get _isPrimitive(){return null!=this._primitive}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const e=this._context.renderCommandContext,t=this._getLayerOpacity();let r={usePBR:!0,isSchematic:!0,mrrFactors:je.Bt,ambient:w.Un,diffuse:w.Un,hasSlicePlane:!1,castShadows:!0,layerOpacity:t,offsetTransparentBackfaces:!1,screenSizePerspective:{}};if(r.externalColor=A.Un,r.instanced=!0,this._isPrimitive){const e=new De.fs;e.layerOpacity=t,r={...r,cullFace:Ee((0,De.ty)(e))}}const n=await e.createMaterial({type:"default",parameters:r}),i=this._symbolLayer.resource;this._primitive=i&&function(e){switch(e){case"sphere":case"cube":case"diamond":case"cylinder":case"cone":case"inverted-cone":case"tetrahedron":return!0}return!1}(i?.primitive)?i.primitive:oe.r;const s=Te(this._primitive,n);this._lodRendererId=await e.createLodRenderer(s),this._primitiveMaterialId=n,this._loaded=!0}async createDestroyCommand(){const{_lodRendererId:e,_primitiveMaterialId:t,_context:r}=this,n=r.renderCommandContext,i=[];return null!=e&&i.push(n.destroyLodRenderer(e)),null!=t&&i.push(n.destroyMaterial(t)),new g(n,n.mergeRenderCommandBuffers(i),[()=>this._destroy()])}async createAddCommand(e){const t=this._context,{renderCommandContext:r,mainThreadDelegate:n}=t;if(null==this._lodRendererId)throw new Error("expected lod renderer id to not be null");const{featureCount:i}=e;if(0===i)return t.createPipelineCommand();const s=this._isPrimitive,o=this._primitive||oe.r,a=(0,M.vt)((0,ae.Fq)(o)),l=(0,w.ci)((0,M.Ej)(a)),c=(0,w.ci)((0,ae.Bb)(l,{isPrimitive:s,width:100,depth:null,height:null})),d=new Float64Array(16*i),u=new Float64Array(16*i),h=U(e),f=await n.applyElevationAlignmentTo(h);for(let e=0;e<i;++e){const t=e,r=f[3*e+0],n=f[3*e+1],i=f[3*e+2],s=this._computeGlobalTransform(r,n,i,this._context.viewSpatialReference,Ue),o=this._computeLocalTransform(c,l,Le);this._writeMatrixToTypedBuffer(d,t,o),this._writeMatrixToTypedBuffer(u,t,s)}const m=L(e),p=new Uint8Array(i);e.getVisibilityArray(p);const g={featureIds:new Uint32Array(m),visibility:p,localTransforms:d,globalTransforms:u};return t.createPipelineCommand(r.addLodInstances(this._lodRendererId,e.id,g))}async createRemoveCommand(e){const{_context:t,_lodRendererId:r}=this,n=t.renderCommandContext;return null==r?t.createPipelineCommand():t.createPipelineCommand(n.removeLodInstances(r,e))}async createUpdateVisibilityCommand(e){const{_lodRendererId:t,_context:r}=this,n=r.renderCommandContext;if(null==t)return r.createPipelineCommand();const i=new Uint8Array(e.featureCount);return e.getVisibilityArray(i),r.createPipelineCommand(n.updateVisibility(t,e.id,i))}async createUpdateLayerViewOpacityCommand(e){const{_context:t}=this,r=t.renderCommandContext,n=this._primitiveMaterialId;if(null==n)return t.createPipelineCommand();const i=this._getLayerOpacity();let s={layerOpacity:i};if(this._isPrimitive){const e=new De.fs;e.layerOpacity=i,s={...s,cullFace:Ee((0,De.ty)(e))}}return t.createPipelineCommand(r.updateMaterial({type:"default",materialId:n,parameters:s}))}async createUpdateElevationCommand(e){const{_context:t,_lodRendererId:r}=this,{renderCommandContext:n,mainThreadDelegate:i}=t,{featureCount:s,id:o}=e;if(null==r||0===s)return t.createPipelineCommand();const a=new Float64Array(16*s),l=U(e),c=await i.applyElevationAlignmentTo(l);for(let e=0;e<s;++e){const t=e,r=c[3*e+0],n=c[3*e+1],i=c[3*e+2],s=this._computeGlobalTransform(r,n,i,this._context.viewSpatialReference,Ue);this._writeMatrixToTypedBuffer(a,t,s)}return t.createPipelineCommand(n.updateLodInstancesData(r,o,a))}_writeMatrixToTypedBuffer(e,t,r){let n=16*t;for(let t=0;t<16;t++)e[n++]=r[t]}_computeGlobalTransform(e,t,r,n,i){return Ve[0]=e,Ve[1]=t,Ve[2]=r,(0,se.l)(n,Ve,i,this._context.renderSpatialReference),i}_computeLocalTransform(e,t,r){return(0,P.D_)(r),this._applyObjectScale(e,t,r),r}_applyObjectScale(e,t,r){const n=function(e=w.Un,t,r,n=1){const i=new Array(3);if(null==t||null==r)i[0]=1,i[1]=1,i[2]=1;else{let n,s=0;for(let o=2;o>=0;o--){const a=e[o],l=null!=a,c=0===o&&!n&&!l,d=r[o];let u;"symbol-value"===a||c?u=0!==d?t[o]/d:1:l&&"proportional"!==a&&isFinite(a)&&(u=0!==d?a/d:1),null!=u&&(i[o]=u,n=u,s=Math.max(s,Math.abs(u)))}for(let e=2;e>=0;e--)null==i[e]?i[e]=n:0===i[e]&&(i[e]=.001*s)}for(let e=2;e>=0;e--)i[e]/=n;return(0,w.ci)(i)}(e,e,t,this._context.renderCoordsHelper.unitInMeters);1===n[0]&&1===n[1]&&1===n[2]||(0,P.hs)(r,r,n)}_getLayerOpacity(){return this._context.layerViewInfo.fullOpacity}}function Ee(e){return e?0:2}const Ve=(0,w.vt)(),Le=(0,C.vt)(),Ue=(0,C.vt)();class He{constructor(e,t){this._symbols=new Array,this._featureDataPartitioning=new Map,this._loaded=!1,this._loadingPromise=null,this._renderer=null,this._context=t,this._renderer=e}async load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){this._symbols[0]=new ee(x(),this._context),this._symbols[1]=new Be(new v.A,this._context),this._loaded=!0}get loaded(){return this._loaded}async createAddCommand(e){const t=this._context,r=this._partition(e),n=await Promise.all(r.map(async({index:e,features:t})=>{const r=await this._provisionSymbol(e);return await(r?.createAddCommand(t))})),i=t.joinPipelineCommands(n);return i.appendPipelineStateCommand(()=>this._featureDataPartitioning.set(e.id,r)),i}async createRemoveCommand(e){const{_featureDataPartitioning:t,_context:r}=this,n=r.renderCommandContext,i=t.get(e);if(null==i)return new g(n,n.createRenderCommandBuffer(),[]);const s=await Promise.all(i.map(async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createRemoveCommand(t.id))})),o=r.joinPipelineCommands(s);return o.appendPipelineStateCommand(()=>t.delete(e)),o}async createUpdateVisibilityCommand(e){const{_featureDataPartitioning:t,_context:r}=this,n=r.renderCommandContext,i=t.get(e.id);if(null==i)return new g(n,n.createRenderCommandBuffer(),[]);const s=await Promise.all(i.map(async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createUpdateVisibilityCommand(t))}));return r.joinPipelineCommands(s)}async createUpdateLayerViewOpacityCommand(e){const t=this._context,r=[];for(let t=0;t<this._symbols.length;++t){const n=this._symbols[t];null!=n&&n.loaded&&r.push(n.createUpdateLayerViewOpacityCommand(e))}const n=await Promise.all(r);return t.joinPipelineCommands(n)}async createUpdateElevationCommand(){const{_featureDataPartitioning:e,_context:t}=this,r=[];for(const t of e.values()){const e=t.map(async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createUpdateElevationCommand(t))});r.push(...e)}const n=await Promise.all(r);return t.joinPipelineCommands(n)}async createDestroyCommand(){const{_featureDataPartitioning:e,_context:t}=this,r=[];for(const t of e.keys())r.push(this.createRemoveCommand(t));for(const e of this._symbols)r.push(e.createDestroyCommand());const n=await Promise.all(r);return t.joinPipelineCommands(n)}async _provisionSymbol(e){if(null==e)return null;const t=this._symbols[e];return t?(t.loaded||await t.load(),t):null}_getLoadedSymbol(e){if(null==e)return null;const t=this._symbols[e];return null!=t&&t.loaded?t:null}_partition(e){const t=L(e);if(null==t)throw new Error("unable to fetch objectIds");const{featureCount:r}=e,n=[[],[]];for(let e=0;e<r;++e)n[t[e]%2].push(e);return n.map((t,r)=>new Ge(r,e.subset(new Uint32Array(t)))).filter(e=>e.features.featureCount>0)}}class Ge{constructor(e,t){this.index=e,this.features=t}}class ke{constructor(e,t,r,n,i,s,o){this.viewSpatialReference=e,this.renderSpatialReference=t,this.mainThreadDelegate=r,this.renderCoordsHelper=n,this.renderCommandContext=i,this.layerInfo=s,this.layerViewInfo=o,this.symbolRendererFactory=new qe(this)}createPipelineCommand(e=this.renderCommandContext.createRenderCommandBuffer(),t=[]){return new g(this.renderCommandContext,e,t)}joinPipelineCommands(e){return 0===e.length?this.createPipelineCommand():e.filter(e=>null!=e).reduce((e,t)=>(e.append(t),e))}}class qe{constructor(e){this.context=e}createSymbolRendererFromJSON(e){const t=(0,p.L)(e??$e)??void 0;if(!t)throw new Error("Failed to create renderer");const r=t.type;switch(r){case"simple":return new ie(t,this.context);case"unique-value":return new He(t,this.context);default:return console.warn(`Unable to create symbolrenderer for renderer of ${r}`),this.createSymbolRendererFromJSON($e)}}createSymbolRendererFromSymbol(e){const t=e?.type;switch(t){case"point-3d":return new ne(e,this.context);case"picture-marker":case"simple-marker":return new ee(x(),this.context);default:return console.warn(`Unable to create symbolrenderer for symbol of ${t}`),null}}createSymbolRendererFromSymbolLayer(e){const t=e.type;return"icon"===t?new ee(e,this.context):(console.warn(`Unable to create symbolrenderer for symbolLayer of ${t}`),null)}}const $e={type:"simple"};var Ne=r(65008),Ye=r(60999),Xe=r(32587),We=r(96211),Ze=r(24326);function Qe(e=""){return`${e}${(0,Ze.c)()}`}new Float64Array(3);class Je{constructor(e,t){this._parent=e,this._subsetIndices=t,this.id=Qe(`featureDataSubset-${e.id}-`)}get tileId(){return this._parent.tileId}get extent(){return this._parent.extent}get featureCount(){return this._subsetIndices.length}get usedMemory(){return this._parent.usedMemory+Me.qK+this._subsetIndices.byteLength}get isFullyEnabled(){for(const e of this._subsetIndices)if(!this._parent.getEnabled(e))return!1;return!0}getObjectId(e){return this._parent.getObjectId(this._subsetIndices[e])}getAttribute(e,t){return this._parent.getAttribute(this._subsetIndices[e],t)}getAttributeAsTimestamp(e,t){return this._parent.getAttribute(this._subsetIndices[e],t)}getAttributes(e){return this._parent.getAttributes(this._subsetIndices[e])}getCoordinates(e,t,r){return this._parent.getCoordinates(this._subsetIndices[e],t,r)}getOptimizedGeometry(e){return this._parent.getOptimizedGeometry(this._subsetIndices[e])}getCentroid(e,t){return this._parent.getCentroid(this._subsetIndices[e],t)}getBounds(e){return this._parent.getBounds(this._subsetIndices[e])}getBoundingBox(e){return this._parent.getBoundingBox(this._subsetIndices[e])}getObjectIdsArray(e,t,r){return this._parent.getObjectIdsArray(e,this._translatedIndices(t),r)}getCoordinatesArray(e,t,r){return this._parent.getCoordinatesArray(e,this._translatedIndices(t),r)}objectIds(e){return this._parent.objectIds(this._translatedIndices(e))}subset(e){const{_subsetIndices:t}=this,r=new Uint32Array(e.length);for(let n=0;n<r.length;++n)r[n]=t[e[n]];return new Je(this._parent,r)}disableObjectIds(e){if(0===e.size)return;const{featureCount:t}=this,r=new Array;for(let n=0;n<t;++n)this.getEnabled(n)&&e.has(this.getObjectId(n))&&r.push(n);if(0!==r.length)for(const e of r)this.setEnabled(e,!1)}setEnabled(e,t){this._parent.setEnabled(this._subsetIndices[e],t)}getEnabled(e){return this._parent.getEnabled(this._subsetIndices[e])}enableAll(){const{_subsetIndices:e,_parent:t}=this;for(const r of e)t.setEnabled(r,!0)}getVisibilityArray(e,t,r){return this._parent.getVisibilityArray(e,this._translatedIndices(t),r)}enabledObjectIds(e){return this._parent.enabledObjectIds(this._translatedIndices(e))}*_translatedIndices(e){const{_subsetIndices:t}=this;if(null!=e)for(const r of e)yield t[r];else yield*t}}class Ke{constructor(e){this._tile=e,this.id=Qe(`featureData-${e.id}-`),this._enabled=new Array(e.featureCount).fill(!0)}get tileId(){return this._tile.id}get featureCount(){return this._tile.featureCount}get usedMemory(){return Me.qK+(0,Me.$B)(this.id)}get extent(){return this._tile.descriptor.extent}get isFullyEnabled(){return this._enabled.every(e=>e)}getObjectId(e){return this._tile.getObjectId(e)}getAttribute(e,t){return this._tile.getAttribute(e,t)}getAttributeAsTimestamp(e,t){return this._tile.getAttribute(e,t)}getAttributes(e){return this._tile.getAttributes(e)}getCoordinates(e,t,r){return this._tile.getCoordinates(e,t,r)}getOptimizedGeometry(e){return this._tile.getOptimizedGeometry(e)}getCentroid(e,t){return this._tile.getCentroid(e,t)}getBounds(e){return this._tile.getBounds(e)}getBoundingBox(e){return this._tile.getBoundingBox(e)}getObjectIdsArray(e,t,r){return this._tile.getObjectIdsArray(e,t,r)}getCoordinatesArray(e,t,r){return this._tile.getCoordinatesArray(e,t,r)}objectIds(e){return this._tile.objectIds(e)}subset(e){return new Je(this,e)}disableObjectIds(e){if(0===e.size)return;const{_enabled:t}=this,r=new Array;for(const n of this._allFeatureIndices())t[n]&&e.has(this.getObjectId(n))&&r.push(n);if(0!==r.length)for(const e of r)t[e]=!1}setEnabled(e,t){this._enabled[e]=t}getEnabled(e){return this._enabled[e]}enableAll(){this._enabled.fill(!0)}getVisibilityArray(e,t=this._allFeatureIndices(),r=0){const{_enabled:n}=this;for(const i of t)e[r++]=Number(n[i]);return r}*enabledObjectIds(e=this._allFeatureIndices()){const{_enabled:t}=this;for(const r of e)t[r]&&(yield this.getObjectId(r))}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}}let et=class extends Ne.A{constructor(e){super(e),this.extent=null,this._tileHandles=new Xe.A,this._wanted=new Xe.A,this._updateRequested=!1,this._synchronizationTask=null,this._requestedTiles=new Array}destroy(){this._tileHandles.clear(),this._wanted.clear()}get updating(){return this._updateRequested||!(this._synchronizationTask?.finished??1)}get _boundingRect(){const{extent:e}=this;return null==e?null:(0,R.VY)(e)}get _missingTiles(){const e=new Array,t=this._wanted,r=this._tileHandles;for(const n of t.values())null==r.get(n.id)?.featureData&&e.push(n);return e}onTileTreeChange({tiles:e}){this._requestedTiles=e,this._scheduleTilesSync()}_scheduleTilesSync(){if(this._updateRequested)return;this._updateRequested=!0;const e=this._synchronizationTask,t=(0,Ye.UT)(async()=>{try{await(0,o.C_)(()=>e?.finished??!0),await(0,We.NO)(),this._updateRequested=!1,await this._synchronizeTiles()}finally{this._synchronizationTask===t&&(this._synchronizationTask=null)}});this._synchronizationTask=t}async _synchronizeTiles(){const e=this._requestedTiles,t=this._tileHandles,r=new Array;for(const n of e)t.has(n.id)||r.push(n);const n=new Array;for(const r of t.values()){const{id:t}=r;e.every(e=>e.id!==t)&&n.push(r.descriptor)}const i=this._tileHandles,{_boundingRect:s}=this,o=null!=s?r.filter(e=>!e.extent||(0,R.HY)(s,e.extent)):r,a=this._wanted,l=new Array;for(const{id:e}of n)a.delete(e);for(const e of o)a.set(e.id,e);const c=this._missingTiles;for(const e of n){const{id:t}=e;if(c.some(t=>tt(t,e)||tt(e,t)))continue;const r=i.get(t);null!=r&&l.push(this._removeTile(r))}for(const e of o)l.push(this._addTile(e));const d=await Promise.allSettled(l);for(const e of d)"rejected"===e.status&&console.error(e.reason)}forEachTile(e){for(const t of this._tileHandles.values()){const r=t.featureData;null!=r&&e(r)}}*loadedTiles(){for(const e of this._tileHandles.values()){const t=e.featureData;null!=t&&(yield t)}}async _removeTile(e){e.loadTask.abort(),this._tileHandles.delete(e.id),this._validate();const{featureData:t}=e;if(null!=t){const e={stack:[],error:void 0,hasError:!1};try{(0,n.mS)(e,await this.tileLocks.lock([t.tileId]),!1);const r=await this.createRemoveCommand(t.id);await(r?.execute())}catch(t){e.error=t,e.hasError=!0}finally{(0,n.hk)(e)}}}async _addTile(e){const{_tileHandles:t}=this,r=t.get(e.id);if(null!=r){if(!nt(r)||r.featureData.isFullyEnabled)return;return r.featureData.enableAll(),void await this._onTileLoad(r)}const n=new rt(e,(0,Ye.UT)(async t=>{const r=await this.loadTile(e,t);return(0,s.Te)(t),new Ke(r)}));this._tileHandles.set(n.id,n);try{await n.loadTask.promise}catch(e){return void(0,s.jH)(e)}(function(e){if(!nt(e))throw new Error})(n),await this._onTileLoad(n)}async _onTileLoad(e){const t={stack:[],error:void 0,hasError:!1};try{const{_wanted:r,_tileHandles:i,_missingTiles:s}=this,o=e.descriptor,a=new Array,l=new Array,c=new Array,d=new Set;for(const t of i.values()){if(t===e)continue;const{descriptor:n,id:c}=t;if(!r.has(c)&&!s.some(e=>tt(e,n)||tt(n,e))){i.delete(c),t.loadTask.abort();const{featureData:e}=t;null!=e&&a.push(e);continue}if(nt(t)){if(tt(o,n)){const e=t.featureData;for(const t of e.objectIds())d.add(t)}if(tt(n,o)){const{featureData:e}=t;l.push(e)}}}d.size>0&&(e.featureData.disableObjectIds(d),this._validateRemoval(e.featureData,d)),this._validate(),c.push(e.featureData);const u=[...c,...a,...l].map(e=>e.tileId);if((0,n.mS)(t,await this.tileLocks.lock(u),!1),0!==l.length){const t=e.featureData,r=new Set(t.objectIds());for(const e of l)e.disableObjectIds(r),this._validateRemoval(e,r)}const h=a.map(e=>this.createRemoveCommand(e.id)),f=c.map(e=>this.createAddCommand(e)),m=l.map(e=>this.createUpdateCommand(e)),p=function(e){return 0===e.length?null:e.reduce((e,t)=>(e.append(t),e))}((await Promise.all([...h,...f,...m])).filter(Oe.Ru));await(p?.execute())}catch(e){t.error=e,t.hasError=!0}finally{(0,n.hk)(t)}}_validate(){if(!(0,l.A)("feature-pipeline-3d-test-validation"))return;const e=new Array;for(const t of this._tileHandles.values()){if(!nt(t))continue;const{featureData:r}=t;e.push({featureData:r,objectIds:new Set(r.enabledObjectIds())})}for(let t=0;t<e.length;++t){const{featureData:r,objectIds:n}=e[t];for(let i=t+1;i<e.length;++i){const{featureData:t,objectIds:s}=e[i];for(const e of s)if(n.has(e))throw new Error(`${r.id} and ${t.id} both contain ${e}.`)}}}_validateRemoval(e,t){if((0,l.A)("feature-pipeline-3d-test-validation"))for(const r of e.enabledObjectIds())if(t.has(r))throw new Error(`Failed to remove ${r} from ${e.id}!`)}};function tt({lij:[e,t,r]},{lij:[n,i,s]}){const o=n-e;return o>=0&&t===i>>o&&r===s>>o}(0,n.Cg)([(0,a.MZ)()],et.prototype,"updating",null),(0,n.Cg)([(0,a.MZ)({constructOnly:!0})],et.prototype,"loadTile",void 0),(0,n.Cg)([(0,a.MZ)({constructOnly:!0})],et.prototype,"createAddCommand",void 0),(0,n.Cg)([(0,a.MZ)({constructOnly:!0})],et.prototype,"createRemoveCommand",void 0),(0,n.Cg)([(0,a.MZ)({constructOnly:!0})],et.prototype,"createUpdateCommand",void 0),(0,n.Cg)([(0,a.MZ)({constructOnly:!0})],et.prototype,"tileLocks",void 0),(0,n.Cg)([(0,a.MZ)()],et.prototype,"extent",void 0),(0,n.Cg)([(0,a.MZ)()],et.prototype,"_boundingRect",null),(0,n.Cg)([(0,a.MZ)()],et.prototype,"_missingTiles",null),(0,n.Cg)([(0,a.MZ)()],et.prototype,"_updateRequested",void 0),(0,n.Cg)([(0,a.MZ)()],et.prototype,"_synchronizationTask",void 0),et=(0,n.Cg)([(0,c.$)("esri.views.3d.layers.graphics.pipeline.Tile3DManager")],et);class rt{constructor(e,t){this.descriptor=e,this.loadTask=t}get id(){return this.descriptor.id}get featureData(){return this.loadTask.value}}function nt(e){return null!=e.featureData}var it=r(36563);class st{constructor(){this._previousActions=new Map}async lock(e){const{_previousActions:t}=this,r=e.map(e=>t.get(e)).filter(Oe.Ru),n=Promise.allSettled(r),i=(0,s.Tw)(),o=(0,it.hA)(()=>i.resolve()),a=i.promise.finally(()=>{for(const r of e)t.get(r)===a&&t.delete(r)});for(const r of e)t.set(r,a);return await n,(0,it.Bf)(o)}}var ot=r(75503),at=r(27647),lt=r(92722);class ct{constructor(e,t){this._index=e,this._view=t}get usedMemory(){return Me.qK+Me.RS}getObjectId(){return this._view.getObjectId(this._index)}getAttribute(e){return this._view.getAttribute(this._index,e)}getAttributeAsTimestamp(e){return this._view.getAttributeAsTimestamp(this._index,e)}getAttributes(){return this._view.getAttributes(this._index)}getOptimizedGeometry(){return this._view.getOptimizedGeometry(this._index)}getCentroid(e){return this._view.getCentroid(this._index,e)}getBounds(){return this._view.getBounds(this._index)}getBoundingBox(){return this._view.getBoundingBox(this._index)}cloneWithGeometry(e){return new dt(this._index,this._view,e)}}class dt extends ct{constructor(e,t,r){super(e,t),this._geometryOverride=r}getOptimizedGeometry(){return this._geometryOverride}getCentroid(e){return(0,at.Q)(new lt.A,this._geometryOverride,e.hasZ,e.hasM)}}class ut{constructor(e,t){this.featureData=e,this.bounds=t}}class ht{constructor(){this._tileBounds=new Map,this.events=new i.bk,this.featureAdapter=ft.shared}get usedMemory(){return Me.qK+Me.qK*this._tileBounds.size}addTile(e){const{featureCount:t}=e;if(0===t)return;const r=new ot.wq(9,t=>e.getBounds(t)),n=new Array;for(let e=0;e<t;++e)n[e]=e;r.load(n),this._tileBounds.set(e.id,new ut(e,r)),this.events.emit("changed")}removeTile(e){this._tileBounds.delete(e),this.events.emit("changed")}clear(){this._tileBounds.clear(),this.events.emit("changed")}forEach(e){for(const{featureData:t,bounds:r}of this._tileBounds.values())r.all(r=>{t.getEnabled(r)&&e(new ct(r,t))})}forEachInBounds(e,t){mt.minX=e[0],mt.minY=e[1],mt.maxX=e[2],mt.maxY=e[3];for(const{featureData:e,bounds:r}of this._tileBounds.values())r.search(mt,r=>{e.getEnabled(r)&&t(new ct(r,e))})}forEachBounds(e,t){for(const r of e)t(r.getBoundingBox())}getFullExtent(e){let t=1/0,r=1/0,n=-1/0,i=-1/0;for(const{bounds:e}of this._tileBounds.values()){const{minX:s,minY:o,maxX:a,maxY:l}=e.toJSON();t=Math.min(t,s),r=Math.min(r,o),n=Math.min(n,a),i=Math.min(i,l)}return{xmin:t,ymin:r,xmax:n,ymax:i,spatialReference:e}}}class ft{static{this.shared=new ft}getObjectId(e){return e.getObjectId()}getAttribute(e,t){return e.getAttribute(t)}getAttributeAsTimestamp(e,t){return e.getAttributeAsTimestamp(t)}getAttributes(e){return e.getAttributes()}getGeometry(e){return e.getOptimizedGeometry()}getCentroid(e,t){return e.getCentroid(t)}cloneWithGeometry(e,t){return e.cloneWithGeometry(t)}}const mt=new ot.EC;var pt=r(80893);class gt{constructor(e,t,r){this.descriptor=e,this._pages=t,this._pageSize=r;const n=Me.ez+t.reduce((e,{usedMemory:t})=>e+t,0),i=3*Me.RS;this.usedMemory=Me.qK+n+i,this.featureCount=t.reduce((e,t)=>e+t.featureCount,0)}get id(){return this.descriptor.id}getObjectId(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getObjectId(r)}getAttribute(e,t){const{pageIndex:r,featurePageIndex:n}=this._translateIndex(e);return this._pages[r].getAttribute(n,t)}getAttributeAsTimestamp(e,t){const{pageIndex:r,featurePageIndex:n}=this._translateIndex(e);return this._pages[r].getAttributeAsTimestamp(n,t)}getAttributes(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getAttributes(r)}getCoordinates(e,t,r){const{pageIndex:n,featurePageIndex:i}=this._translateIndex(e);this._pages[n].getCoordinates(i,t,r)}getOptimizedGeometry(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getOptimizedGeometry(r)}getCentroid(e,t){const{pageIndex:r,featurePageIndex:n}=this._translateIndex(e);return this._pages[r].getCentroid(n,t)}getBounds(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getBounds(r)}getBoundingBox(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getBoundingBox(r)}getObjectIdsArray(e,t=this._allFeatureIndices(),r=0){let n=r;for(const{page:r,indices:i}of this._batchPageIndices(t))n=r.getObjectIdsArray(e,i,n);return n}getCoordinatesArray(e,t=this._allFeatureIndices(),r=0){let n=r;for(const{page:r,indices:i}of this._batchPageIndices(t))n=r.getCoordinatesArray(e,i,n);return n}*objectIds(e=this._allFeatureIndices()){for(const{page:t,indices:r}of this._batchPageIndices(e))for(const e of t.objectIds(r))yield e}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}_translateIndex(e){const{_pageSize:t}=this;return{pageIndex:Math.floor(e/t),featurePageIndex:e%t}}*_batchPageIndices(e){const t=new Array;{let r=0,n=new Array;for(const i of e){const{pageIndex:e,featurePageIndex:s}=this._translateIndex(i);r!==e&&(0!==n.length&&t.push({pageIndex:r,indices:n}),r=e,n=[]),n.push(s)}0!==n.length&&t.push({pageIndex:r,indices:n})}const{_pages:r}=this;for(const{pageIndex:e,indices:n}of t)yield{page:r[e],indices:n}}}var yt=r(49186),_t=r(51624),vt=r(62577),bt=r(95466),xt=r(53655);class Ct{constructor(e){this._reader=new _t.A(new Uint8Array(e),new DataView(e)),this._index=function(e){for(;e.next();){if(2===e.tag())return wt(e.getMessage());e.skip()}St()}(this._reader)}get featureCount(){return this._index.featureIndices.length}get exceededTransferLimit(){return this._index.exceededTransferLimit}get usedMemory(){return this._reader.usedMemory}getObjectId(e){return this.getAttribute(e,this._index.objectIdFieldName)}getAttribute(e,t){const{_index:{fieldsIndex:r,attributeIndices:n}}=this,i=r.get(t)?.index;if(null==i)return;const s=n[e*r.fields.length+i],o=this._reader;return o.move(s),It(o)}getAttributeAsTimestamp(e,t){const r=this.getAttribute(e,t);return"string"==typeof r?new Date(r).getTime():"number"==typeof r||null==r?r:null}getAttributes(e){const{_index:{fieldsIndex:t,attributeIndices:r}}=this,n=e*t.fields.length,i=this._reader,s={};for(const e of t.fields){const t=r[n+e.index];i.move(t),s[e.name]=It(i)}return s}getCoordinates(e,t,r=0){const n=this._reader,{transform:i,featureIndices:s}=this._index,{scale:o,translate:a}=i;n.move(s[e]),this._readCoordinates(o,a,t,r)}getOptimizedGeometry(e){const t=(0,w.vt)();return this.getCoordinates(e,t),new lt.A([],t)}getCentroid(e,{hasZ:t,hasM:r}){this.getCoordinates(e,Pt);const[n,i,s]=Pt,o=[n,i];return t&&(o[3]=s),r&&(o[t?4:3]=0),new lt.A([],o)}getBounds(e){this.getCoordinates(e,Pt);const[t,r]=Pt,n=new ot.EC;return n.minX=t,n.minY=r,n.maxX=t,n.maxY=r,n}getBoundingBox(e){this.getCoordinates(e,Pt);const[t,r,n]=Pt;return(0,M.fA)(t,r,n,t,r,n)}getObjectIdsArray(e,t=this._allFeatureIndices(),r=0){const n=this._reader,{objectIdFieldName:i,attributeIndices:s,fieldsIndex:o}=this._index,a=o.get(i).index,l=o.fields.length;for(const i of t){const t=s[i*l+a];n.move(t),e[r++]=It(n)}return r}getCoordinatesArray(e,t=this._allFeatureIndices(),r=0){const n=this._reader,{transform:i,featureIndices:s}=this._index,{scale:o,translate:a}=i;for(const i of t){const t=s[i];n.move(t),r=this._readCoordinates(o,a,e,r)}return r}*objectIds(e=this._allFeatureIndices()){const t=this._reader,{objectIdFieldName:r,attributeIndices:n,fieldsIndex:i}=this._index,s=i.get(r).index,o=i.fields.length;for(const r of e){const e=n[r*o+s];t.move(e),yield It(t)}}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}_readCoordinates([e,t,r],[n,i,s],o,a){const l=this._reader,c=l.getLength(),d=l.pos()+c;for(;l.pos()<d&&l.next();)switch(l.tag()){case 2:{const c=l.getLength(),d=l.pos()+c;for(;l.pos()<d&&l.next();)3===l.tag()?(l.getUInt32(),o[a++]=n+e*l.getSInt64(),o[a++]=i+t*l.getSInt64(),o[a++]=s+r*l.getSInt64()):l.skip();break}default:l.skip()}return a}}function wt(e){for(;e.next();){if(1===e.tag())return At(e.getMessage());e.skip()}St()}function At(e){let t,r,n=!1,i=!1,s=0;const o=new Array,a=new Array,l=new Array;for(;e.next();)switch(e.tag()){case 1:r=e.getString();break;case 7:0!==e.getEnum()&&St();break;case 9:n=e.getBool()??!1;break;case 12:t=(0,vt.Q1)(e.processMessage(xt.ae));break;case 13:{const t=e.processMessage(xt.cn);t.index=s++,o.push(t);break}case 15:{a.push(e.pos());const t=e.getUInt32(),r=e.pos()+t;for(;e.pos()<r&&e.next();)1===e.tag()?(l.push(e.pos()),e.skip()):e.skip();break}case 10:i=e.getBool()??!1;break;default:e.skip()}const c=new bt.A(o);return null!=t&&i&&null!=r&&c.has(r)||St(),{transform:t,exceededTransferLimit:n,fieldsIndex:c,objectIdFieldName:r,featureIndices:a,attributeIndices:l}}function St(){const e=new yt.A("pbf-parsing-failed","Error while parsing PBF",new Error);throw console.error(e),e}function It(e){const t=e.getLength(),r=e.pos()+t;for(;e.pos()<r&&e.next();)switch(e.tag()){case 1:return e.getString();case 2:return e.getFloat();case 3:return e.getDouble();case 4:return e.getSInt32();case 5:return e.getUInt32();case 6:return e.getInt64();case 7:return e.getUInt64();case 8:return e.getSInt64();case 9:return e.getBool();default:return e.skip(),null}return null}const Pt=(0,w.vt)();class Ot{constructor(e,t,r,n,i){this.spatialReference=e,this.url=r,this.objectIdField=n,this.capabilities=i;const{supportsMaxRecordCountFactor:s,maxRecordCount:o}=this.capabilities.query,a=s?4:1,l=(o??8e3)*a;this._pageSize=Math.min(8e3,l);const c=t.clone();c.cacheHint=!0,c.resultType="tile",c.outSpatialReference=e,c.returnGeometry=!0,c.returnZ=!0,c.maxRecordCountFactor=a,c.num=this._pageSize,c.outFields=[n],this._baseQuery=c}async fetch(e,t){const{spatialReference:r,_pageSize:n}=this,i=(0,R.w1)(e.extent,r),o=this._baseQuery.clone();o.geometry=i;const a=new Array;let l=0,c=!1,d=1;for(;!c;){const e=[];for(let r=0;r<d;++r)e.push(this._fetchPage(o,l++,t));const r=await Promise.all(e);(0,s.Te)(t);for(const e of r){const t=0!==e.featureCount;c||=!e.exceededTransferLimit||!t,t&&a.push(e)}d=Math.min(d+1,4)}return new gt(e,a,n)}async _fetchPage(e,t,r){const n=e.clone();n.start=t*this._pageSize;const i=(await(0,pt.kS)(this.url,n,{signal:r})).data;return(0,s.Te)(r),new Ct(i)}}var Mt=r(29920),Rt=r(77690),Tt=r(29242);var Ft=r(13030),zt=r(78662),Dt=r(49255),jt=r(40268),Bt=r(16943),Et=r(25634),Vt=r(11725),Lt=r(77194);class Ut{constructor(){this.scale=0,this.factor=0,this.minScaleFactor=0}}var Ht=r(59907),Gt=r(43616),kt=r(13259),qt=r(1843),$t=r(97220),Nt=r(98958),Yt=r(33524),Xt=r(63907),Wt=r(90644);class Zt extends Nt.w{constructor(e,t){super(e,t,new $t.$(kt.H,()=>r.e(8241).then(r.bind(r,48241))),((0,Bt.E)()?Kt:Jt).locations),this.primitiveType=t.occlusionPass?Xt.WR.POINTS:Xt.WR.TRIANGLES}initializePipeline(e){const{oitPass:t,hasPolygonOffset:r,draped:n,output:i,depthTestEnabled:s,occlusionPass:o}=e,a=0===t,l=s&&!n&&!(1===t)&&!o&&!(8===i);return(0,Wt.Ey)({blending:(0,Dt.RN)(i)?a?Wt.RC:(0,Yt.ez)(t):null,depthTest:s&&!n?{func:515}:null,depthWrite:l?Wt.Uy:null,drawBuffers:(0,Yt.m6)(t,i),colorWrite:Wt.kn,polygonOffset:r?Qt:null})}}const Qt={factor:0,units:-4},Jt=(0,qt.BP)().vec3f("position").vec3f("normal").vec2i16("uvi").vec4u8("color").vec2f("size").f32("rotation").vec4f("centerOffsetAndDistance").vec4f("featureAttribute"),Kt=Jt.clone().vec4u8("olidColor");var er=r(51976),tr=r(35256);class rr extends tr.E{constructor(e){super(),this.spherical=e,this.screenCenterOffsetUnitsEnabled=!1,this.occlusionTestEnabled=!0,this.signedDistanceFieldEnabled=!1,this.sampleSignedDistanceFieldTexelCenter=!1,this.hasVVSize=!1,this.hasVVColor=!1,this.hasVerticalOffset=!1,this.hasScreenSizePerspective=!1,this.hasRotation=!1,this.debugDrawLabelBorder=!1,this.hasPolygonOffset=!1,this.depthTestEnabled=!0,this.pixelSnappingEnabled=!0,this.draped=!1,this.terrainDepthTest=!1,this.cullAboveTerrain=!1,this.occlusionPass=!1,this.occludedFragmentFade=!1,this.horizonCullingEnabled=!0,this.isFocused=!0,this.olidColorInstanced=!1,this.textureCoordinateType=0,this.emissionSource=0,this.discardInvisibleFragments=!0,this.hasVVInstancing=!1,this.snowCover=!1}}(0,n.Cg)([(0,er.W)()],rr.prototype,"screenCenterOffsetUnitsEnabled",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"occlusionTestEnabled",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"signedDistanceFieldEnabled",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"sampleSignedDistanceFieldTexelCenter",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"hasVVSize",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"hasVVColor",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"hasVerticalOffset",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"hasScreenSizePerspective",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"hasRotation",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"debugDrawLabelBorder",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"hasPolygonOffset",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"depthTestEnabled",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"pixelSnappingEnabled",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"draped",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"terrainDepthTest",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"cullAboveTerrain",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"occlusionPass",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"occludedFragmentFade",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"horizonCullingEnabled",void 0),(0,n.Cg)([(0,er.W)()],rr.prototype,"isFocused",void 0);var nr=r(49788);class ir extends Vt.i{constructor(e,t){super(e,Or),this.produces=new Map([[12,e=>(0,Dt.Mb)(e)&&!this.parameters.drawAsLabel],[13,e=>(0,Dt.Mb)(e)&&this.parameters.drawAsLabel],[11,()=>this.parameters.occlusionTest],[17,e=>this.parameters.draped&&(0,Dt.Mb)(e)]]),this._visible=!0,this._configuration=new rr(t)}getConfiguration(e,t){const r=this.parameters.draped;return super.getConfiguration(e,t,this._configuration),this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.hasVerticalOffset=!!this.parameters.verticalOffset,this._configuration.hasScreenSizePerspective=!!this.parameters.screenSizePerspective,this._configuration.screenCenterOffsetUnitsEnabled="screen"===this.parameters.centerOffsetUnits,this._configuration.hasPolygonOffset=this.parameters.polygonOffset,this._configuration.draped=r,this._configuration.occlusionTestEnabled=this.parameters.occlusionTest,this._configuration.pixelSnappingEnabled=this.parameters.pixelSnappingEnabled,this._configuration.signedDistanceFieldEnabled=this.parameters.textureIsSignedDistanceField,this._configuration.sampleSignedDistanceFieldTexelCenter=this.parameters.sampleSignedDistanceFieldTexelCenter,this._configuration.hasRotation=this.parameters.hasRotation,this._configuration.hasVVSize=!!this.parameters.vvSize,this._configuration.hasVVColor=!!this.parameters.vvColor,this._configuration.occlusionPass=11===t.slot,this._configuration.occludedFragmentFade=!r&&this.parameters.occludedFragmentFade,this._configuration.horizonCullingEnabled=this.parameters.horizonCullingEnabled,this._configuration.isFocused=this.parameters.isFocused,this._configuration.depthTestEnabled=this.parameters.depthEnabled||11===t.slot,(0,Dt.RN)(e)&&(this._configuration.debugDrawLabelBorder=!!D.b.LABELS_SHOW_BORDER),this._configuration.oitPass=t.oitPass,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration}intersect(e,t,r,n,i,s){const{options:{selectionMode:o,hud:a,excludeLabels:l},point:c,camera:d}=r,{parameters:u}=this;if(!o||!a||l&&u.isLabel||!e.visible||!c||!d)return;const h=e.attributes.get("featureAttribute"),f=null==h?null:(0,A.ci)(h.data,Cr),{scaleX:m,scaleY:p}=Rr(f,u,d.pixelRatio);(0,Rt.z0)(gr,t),e.attributes.has("featureAttribute")&&function(e){const t=e[0],r=e[1],n=e[2],i=e[3],s=e[4],o=e[5],a=e[6],l=e[7],c=e[8],d=1/Math.sqrt(t*t+r*r+n*n),u=1/Math.sqrt(i*i+s*s+o*o),h=1/Math.sqrt(a*a+l*l+c*c);e[0]=t*d,e[1]=r*d,e[2]=n*d,e[3]=i*u,e[4]=s*u,e[5]=o*u,e[6]=a*h,e[7]=l*h,e[8]=c*h}(gr);const g=e.attributes.get("position"),y=e.attributes.get("size"),_=e.attributes.get("normal"),v=e.attributes.get("rotation"),b=e.attributes.get("centerOffsetAndDistance");(0,ge.vA)(g.size>=3);const x=(0,kt.c)(u),C="screen"===this.parameters.centerOffsetUnits;for(let e=0;e<g.data.length/g.size;e++){const n=e*g.size;(0,le.i)(cr,g.data[n],g.data[n+1],g.data[n+2]),(0,le.t)(cr,cr,t),(0,le.t)(cr,cr,d.viewMatrix);const i=e*b.size;if((0,le.i)(br,b.data[i],b.data[i+1],b.data[i+2]),!C&&(cr[0]+=br[0],cr[1]+=br[1],0!==br[2])){const e=br[2];(0,le.n)(br,cr),(0,le.d)(cr,cr,(0,le.g)(br,br,e))}const o=e*_.size;if((0,le.i)(dr,_.data[o],_.data[o+1],_.data[o+2]),or(dr,gr,d,wr),Tr(this.parameters,cr,wr,d,lr),d.applyProjection(cr,ur),ur[0]>-1){C&&(br[0]||br[1])&&(ur[0]+=br[0]*d.pixelRatio,0!==br[1]&&(ur[1]+=(0,Lt.m0)(br[1],lr.factorAlignment)*d.pixelRatio),d.unapplyProjection(ur,cr)),ur[0]+=this.parameters.screenOffset[0]*d.pixelRatio,ur[1]+=this.parameters.screenOffset[1]*d.pixelRatio,ur[0]=Math.floor(ur[0]),ur[1]=Math.floor(ur[1]);const t=e*y.size;Ir[0]=y.data[t],Ir[1]=y.data[t+1],(0,Lt.MD)(Ir,lr.factor,Ir);const n=Ar*d.pixelRatio;let i=0;u.textureIsSignedDistanceField&&(i=Math.min(u.outlineSize,.5*Ir[0])*d.pixelRatio/2),Ir[0]*=m,Ir[1]*=p;const o=e*v.size,a=u.rotation+v.data[o];if(ar(c,ur[0],ur[1],Ir,n,i,a,u,x)){const e=r.ray;if((0,le.t)(fr,cr,(0,P.B8)(_r,d.viewMatrix)),ur[0]=c[0],ur[1]=c[1],d.unprojectFromRenderScreen(ur,cr)){const t=(0,w.vt)();(0,le.c)(t,e.direction);const r=1/(0,le.l)(t);(0,le.g)(t,t,r),s((0,le.j)(e.origin,cr)*r,t,-1,fr)}}}}}intersectDraped(e,t,r,n,i){const s=e.attributes.get("position"),o=e.attributes.get("size"),a=e.attributes.get("rotation"),l=this.parameters,c=(0,kt.c)(l),d=e.attributes.get("featureAttribute"),u=null==d?null:(0,A.ci)(d.data,Cr),{scaleX:h,scaleY:f}=Rr(u,l,e.screenToWorldRatio),m=Sr*e.screenToWorldRatio;for(let t=0;t<s.data.length/s.size;t++){const d=t*s.size,u=s.data[d],p=s.data[d+1],g=t*o.size;Ir[0]=o.data[g],Ir[1]=o.data[g+1];let y=0;l.textureIsSignedDistanceField&&(y=Math.min(l.outlineSize,.5*Ir[0])*e.screenToWorldRatio/2),Ir[0]*=h,Ir[1]*=f;const _=t*a.size,v=l.rotation+a.data[_];ar(r,u,p,Ir,m,y,v,l,c)&&n(i.distance,i.normal,-1)}}createBufferWriter(){return new Mr}applyShaderOffsetsView(e,t,r,n,i,s,o){const a=or(t,r,i,wr);return this._applyVerticalGroundOffsetView(e,a,i,o),Tr(this.parameters,o,a,i,s),this._applyPolygonOffsetView(o,a,n[3],i,o),this._applyCenterOffsetView(o,n,o),o}applyShaderOffsetsNDC(e,t,r,n,i){return this._applyCenterOffsetNDC(e,t,r,n),null!=i&&(0,le.c)(i,n),this._applyPolygonOffsetNDC(n,t,r,n),n}_applyPolygonOffsetView(e,t,r,n,i){const s=n.aboveGround?1:-1;let o=Math.sign(r);0===o&&(o=s);const a=s*o;if(this.parameters.shaderPolygonOffset<=0)return(0,le.c)(i,e);const l=(0,z.qE)(Math.abs(t.cosAngle),.01,1),c=1-Math.sqrt(1-l*l)/l/n.viewport[2];return(0,le.g)(i,e,a>0?c:1/c),i}_applyVerticalGroundOffsetView(e,t,r,n){const i=(0,le.l)(e),s=r.aboveGround?1:-1,o=r.computeRenderPixelSizeAtDist(i)*jt.R,a=(0,le.g)(cr,t.normal,s*o);return(0,le.f)(n,e,a),n}_applyCenterOffsetView(e,t,r){const n="screen"!==this.parameters.centerOffsetUnits;return r!==e&&(0,le.c)(r,e),n&&(r[0]+=t[0],r[1]+=t[1],t[2]&&((0,le.n)(dr,r),(0,le.a)(r,r,(0,le.g)(dr,dr,t[2])))),r}_applyCenterOffsetNDC(e,t,r,n){const i="screen"!==this.parameters.centerOffsetUnits;return n!==e&&(0,le.c)(n,e),i||(n[0]+=t[0]/r.fullWidth*2,n[1]+=t[1]/r.fullHeight*2),n}_applyPolygonOffsetNDC(e,t,r,n){const i=this.parameters.shaderPolygonOffset;if(e!==n&&(0,le.c)(n,e),i){const e=r.aboveGround?1:-1,s=e*Math.sign(t[3]);n[2]-=(s||e)*i}return n}set visible(e){this._visible=e}get visible(){const{color:e,outlineSize:t,outlineColor:r}=this.parameters,n=e[3]>=nr.Q||t>=nr.Q&&r[3]>=nr.Q;return this._visible&&n}createGLMaterial(e){return new sr(e)}calculateRelativeScreenBounds(e,t,r=(0,R.vt)()){return function(e,t,r,n){n[0]=e.anchorPosition[0]*-t[0]+e.screenOffset[0]*r,n[1]=e.anchorPosition[1]*-t[1]+e.screenOffset[1]*r}(this.parameters,e,t,r),r[2]=r[0]+e[0],r[3]=r[1]+e[1],r}}class sr extends Et.m8{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){return this.updateTexture(this._material.parameters.textureId),this._material.setParameters(this.textureBindParameters),this.getTechnique(Zt,e)}}function or(e,t,r,n){return function(e){return(t=e)instanceof Float32Array&&t.length>=16||function(e){return Array.isArray(e)&&e.length>=16}(e);var t}(t)&&(t=(0,Rt.z0)(yr,t)),(0,le.o)(n.normal,e,t),(0,le.t)(n.normal,n.normal,r.viewInverseTransposeMatrix),n.cosAngle=(0,le.e)(hr,Pr),n}function ar(e,t,r,n,i,s,o,a,l){let c=t-i-n[0]*l[0],d=c+n[0]+2*i,u=r-i-n[1]*l[1],h=u+n[1]+2*i;const f=a.distanceFieldBoundingBox;return a.textureIsSignedDistanceField&&null!=f&&(c+=n[0]*f[0],u+=n[1]*f[1],d-=n[0]*(1-f[2]),h-=n[1]*(1-f[3]),c-=s,d+=s,u-=s,h+=s),(0,T.hZ)(pr,t,r),(0,T.e$)(mr,e,pr,(0,z.kU)(o)),mr[0]>c&&mr[0]<d&&mr[1]>u&&mr[1]<h}const lr=new class{constructor(){this.factor=new Ut,this.factorAlignment=new Ut}},cr=(0,w.vt)(),dr=(0,w.vt)(),ur=(0,A.vt)(),hr=(0,w.vt)(),fr=(0,w.vt)(),mr=(0,F.vt)(),pr=(0,F.vt)(),gr=(0,Tt.vt)(),yr=(0,Tt.vt)(),_r=(0,C.vt)(),vr=(0,A.vt)(),br=(0,w.vt)(),xr=(0,w.vt)(),Cr=(0,A.vt)(),wr={normal:hr,cosAngle:0},Ar=1,Sr=2,Ir=(0,F.fA)(0,0),Pr=(0,w.fA)(0,0,1);class Or extends Et.NV{constructor(){super(...arguments),this.renderOccluded=1,this.isDecoration=!1,this.color=(0,A.CN)(1,1,1,1),this.polygonOffset=!1,this.anchorPosition=(0,F.fA)(.5,.5),this.screenOffset=[0,0],this.shaderPolygonOffset=1e-5,this.textureIsSignedDistanceField=!1,this.sampleSignedDistanceFieldTexelCenter=!1,this.outlineColor=(0,A.CN)(1,1,1,1),this.outlineSize=0,this.distanceFieldBoundingBox=(0,A.vt)(),this.rotation=0,this.hasRotation=!1,this.vvSizeEnabled=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.vvSymbolAnchor=null,this.vvSymbolRotationMatrix=null,this.hasSlicePlane=!1,this.pixelSnappingEnabled=!0,this.occlusionTest=!0,this.occludedFragmentFade=!1,this.horizonCullingEnabled=!1,this.centerOffsetUnits="world",this.drawAsLabel=!1,this.depthEnabled=!0,this.isFocused=!0,this.focusStyle="bright",this.draped=!1,this.isLabel=!1}get hasVVSize(){return!!this.vvSize}get hasVVColor(){return!!this.vvColor}get hasVVOpacity(){return!!this.vvOpacity}}class Mr{constructor(){this.layout=(0,Bt.E)()?Kt:Jt}elementCount(e){return 6*e.get("position").indices.length}write(e,t,r,n,i,s){const{position:o,normal:a,uvi:l,color:c,size:d,rotation:u,centerOffsetAndDistance:h,featureAttribute:f}=i;(0,Ht.Hk)(r.get("position"),e,o,s,6),(0,Ht.p1)(r.get("normal"),t,a,s,6);const m=r.get("uvi")?.data;let p=0,g=0,y=-1-kt.f,_=-1-kt.f;m&&m.length>=4&&(p=m[0],g=m[1],y=-1-m[2],_=-1-m[3]);let v=r.get("position").indices.length,b=s;for(let e=0;e<v;++e)l.set(b,0,p),l.set(b,1,g),b++,l.set(b,0,y),l.set(b,1,g),b++,l.set(b,0,y),l.set(b,1,_),b++,l.set(b,0,y),l.set(b,1,_),b++,l.set(b,0,p),l.set(b,1,_),b++,l.set(b,0,p),l.set(b,1,g),b++;(0,Ht.tb)(r.get("color"),4,c,s,6);const{data:x,indices:C}=r.get("size");v=C.length,b=s;for(let e=0;e<v;++e){const t=x[2*C[e]],r=x[2*C[e]+1];for(let e=0;e<6;++e)d.set(b,0,t),d.set(b,1,r),b++}if((0,Ht.uO)(r.get("rotation"),u,s,6),r.get("centerOffsetAndDistance")?(0,Ht.Ut)(r.get("centerOffsetAndDistance"),h,s,6):(0,Ht.Pq)(h,s,6*v),r.get("featureAttribute")?(0,Ht.Ut)(r.get("featureAttribute"),f,s,6):(0,Ht.Pq)(f,s,6*v),null!=n){const e=r.get("position")?.indices;if(e){const t=e.length,r=i.getField("olidColor",Ft.XP);(0,Ht.vx)(n,r,t,s,6)}}return{numVerticesPerItem:6,numItems:v}}intersect(e,t,r,n,i,s,o){const{options:{selectionMode:a,hud:l,excludeLabels:c},point:d,camera:u}=n;if(!a||!l||c&&t.isLabel||!d)return;const h=this.layout.createView(e),f=h.getField("position",Ft.xs),m=h.getField("normal",Ft.xs),p=h.getField("rotation",Ft.Y$),g=h.getField("size",Ft.gH),y=h.getField("featureAttribute",Ft.Eq),_=h.getField("centerOffsetAndDistance",Ft.Eq),v="screen"===t.centerOffsetUnits,b=(0,kt.c)(t);if(null==f||null==m||null==p||null==g||null==_||null==u)return;const x=null==y?null:y.getVec(0,Cr),{scaleX:C,scaleY:A}=Rr(x,t,u.pixelRatio),S=f.count/6;for(let e=0;e<S;e++){const i=6*e;if(f.getVec(i,cr),null!=r&&(0,le.f)(cr,cr,r),(0,le.t)(cr,cr,u.viewMatrix),_.getVec(i,vr),(0,le.i)(br,vr[0],vr[1],vr[2]),!v&&(cr[0]+=br[0],cr[1]+=br[1],0!==br[2])){const e=br[2];(0,le.n)(br,cr),(0,le.d)(cr,cr,(0,le.g)(br,br,e))}if(m.getVec(i,dr),or(dr,gr,u,wr),Tr(t,cr,wr,u,lr),u.applyProjection(cr,ur),ur[0]>-1){v&&(br[0]||br[1])&&(ur[0]+=br[0]*u.pixelRatio,0!==br[1]&&(ur[1]+=(0,Lt.m0)(br[1],lr.factorAlignment)*u.pixelRatio),u.unapplyProjection(ur,cr)),ur[0]+=t.screenOffset[0]*u.pixelRatio,ur[1]+=t.screenOffset[1]*u.pixelRatio,ur[0]=Math.floor(ur[0]),ur[1]=Math.floor(ur[1]),g.getVec(i,Ir),(0,Lt.MD)(Ir,lr.factor,Ir);const r=Ar*u.pixelRatio;let s=0;t.textureIsSignedDistanceField&&(s=Math.min(t.outlineSize,.5*Ir[0])*u.pixelRatio/2),Ir[0]*=C,Ir[1]*=A;const a=p.get(i),l=t.rotation+a;if(ar(d,ur[0],ur[1],Ir,r,s,l,t,b)){const t=n.ray;if((0,le.t)(fr,cr,(0,P.B8)(_r,u.viewMatrix)),ur[0]=d[0],ur[1]=d[1],u.unprojectFromRenderScreen(ur,cr)){const r=(0,w.vt)();(0,le.c)(r,t.direction);const n=1/(0,le.l)(r);(0,le.g)(r,r,n),o((0,le.j)(t.origin,cr)*n,r,e,fr)}}}}}}function Rr(e,t,r){return null==e||null==t.vvSize?{scaleX:r,scaleY:r}:((0,zt.VC)(xr,t,e),{scaleX:xr[0]*r,scaleY:xr[1]*r})}function Tr(e,t,r,n,i){if(!e.verticalOffset?.screenLength)return e.screenSizePerspective||e.screenSizePerspectiveAlignment?Fr(e,i,(0,le.l)(t),r.cosAngle):(i.factor.scale=1,i.factorAlignment.scale=1),t;const s=(0,le.l)(t),o=e.screenSizePerspectiveAlignment??e.screenSizePerspective,a=(0,Gt.kE)(n,s,e.verticalOffset,r.cosAngle,o);return Fr(e,i,s,r.cosAngle),(0,le.g)(r.normal,r.normal,a),(0,le.f)(t,t,r.normal)}function Fr(e,t,r,n){null!=e.screenSizePerspective?(0,Lt.cJ)(n,r,e.screenSizePerspective,t.factor):(t.factor.scale=1,t.factor.factor=0,t.factor.minScaleFactor=0),null!=e.screenSizePerspectiveAlignment?(0,Lt.cJ)(n,r,e.screenSizePerspectiveAlignment,t.factorAlignment):(t.factorAlignment.factor=t.factor.factor,t.factorAlignment.scale=t.factor.scale,t.factorAlignment.minScaleFactor=t.factor.minScaleFactor)}class zr{constructor(e,t){this._mainThreadDelegate=t,this._bufferWriters=new Map,this.globalViewingMode=1===e}createRenderCommandBuffer(e=[],t=[]){return{commands:e,transferList:t}}mergeRenderCommandBuffers(e){const t=this.createRenderCommandBuffer();for(const r of e)null!=r&&(t.commands.push(...r.commands),t.transferList.push(...r.transferList));return t}async createTexture(e){const{data:t,parameters:r}=e();return await this._mainThreadDelegate.createTexture(t,r)}async releaseTexture(e){const t=this._destroyTexture(e);return new g(this,t,[])}_destroyTexture(e){return{commands:[{id:"destroy-texture",textureId:e}],transferList:[]}}async createMaterial(e){const{type:t,parameters:r}=e,n=Qe("material");let i,s;switch(t){case"default":i=new De.$U(e.parameters,{spherical:this.globalViewingMode}),s={type:t,materialId:n,parameters:e.parameters};break;case"hud":i=new ir(r,this.globalViewingMode),s={type:t,materialId:n,parameters:e.parameters}}return this._bufferWriters.set(n,i.createBufferWriter()),await this._mainThreadDelegate.createMaterial(s),n}destroyMaterial(e){return{commands:[{id:"destroy-material",materialId:e}],transferList:[]}}updateMaterial(e){return{commands:[{...e,id:"update-material"}],transferList:[]}}async createDirectRenderer(e){return await this._mainThreadDelegate.createDirectRenderer(e),e}async destroyDirectRenderer(e){await this._mainThreadDelegate.destroyDirectRenderer(e)}addDirectRendererGeometry(e,t,r){const{materialId:n}=t;if(null==this._bufferWriters.get(n))throw new Error(`no bufferwriter found for material ${n}`);const{renderGeometryBuffer:i,renderGeometryBufferItems:s}=this.createRenderGeometryBuffer(t,r);return this.addDirectRendererGeometryBuffer(n,e,i,s,r)}updateDirectRendererGeometry(e,t,r){const{materialId:n}=t;if(null==this._bufferWriters.get(n))throw new Error(`no bufferwriter found for material ${n}`);const{renderGeometryBuffer:i,renderGeometryBufferItems:s}=this.createRenderGeometryBuffer(t,r);return this.updateDirectRendererGeometryBuffer(n,e,i,s,r)}addDirectRendererGeometryBuffer(e,t,r,n,i){const{objectIds:s,visibilities:o}=n;return{commands:[{id:"add-direct-renderer-geometry-buffer",rendererId:e,groupId:t,renderGeometryBuffer:r,renderGeometryBufferItems:n,localOrigin:i}],transferList:[r.data,s.buffer,o.buffer]}}updateDirectRendererGeometryBuffer(e,t,r,n,i){const{objectIds:s,visibilities:o}=n;return{commands:[{id:"update-direct-renderer-geometry-buffer",rendererId:e,groupId:t,renderGeometryBuffer:r,renderGeometryBufferItems:n,localOrigin:i}],transferList:[r.data,s.buffer,o.buffer]}}removeDirectRendererGeometryBuffer(e,t){return{commands:[{id:"remove-direct-renderer-geometry-buffer",rendererId:e,groupId:t}],transferList:[]}}async createLodRenderer(e){const t=Qe("lod-renderer"),r=new Set,n={levels:e.levels.map(e=>({components:e.components.map(e=>{const t=e.attributes.get("position");if(!t||0===t.indices.length)throw new Error("positions attribute expected");const n=(0,G.tM)(t.indices.length/3),i=new Mt.j(n,3,t);if(null==this._bufferWriters.get(e.materialId))throw new Error("writer not found");const{renderGeometryBuffer:s}=this.createRenderGeometryBuffer(e,null);return r.add(s.data),{materialId:e.materialId,renderGeometryBuffer:s,boundingInfo:{bbMax:i.bbMax,bbMin:i.bbMin}}}),minScreenSpaceRadius:e.minScreenSpaceRadius}))};return await this._mainThreadDelegate.createLodRenderer(t,n,Array.from(r)),t}destroyLodRenderer(e){return{commands:[{id:"destroy-lod-renderer",rendererId:e}],transferList:[]}}addLodInstances(e,t,r){return{commands:[{id:"add-lod-instances",rendererId:e,groupId:t,data:r}],transferList:[r.featureIds.buffer,r.globalTransforms.buffer,r.localTransforms.buffer,r.visibility.buffer]}}removeLodInstances(e,t){return{commands:[{id:"remove-lod-instances",rendererId:e,groupId:t}],transferList:[]}}updateLodInstancesData(e,t,r){return{commands:[{id:"update-lod-instance-data",rendererId:e,groupId:t,globalTransforms:r}],transferList:[r.buffer]}}updateVisibility(e,t,r){return{commands:[{id:"update-visibility",rendererId:e,groupId:t,visibility:r}],transferList:[r.buffer]}}async dispatchRenderCommands(e){0!==e.commands.length&&await this._mainThreadDelegate.executeRenderCommands(e)}createRenderGeometryBuffer(e,t){const{materialId:r,visibilities:n,objectIds:i}=e,s=this._bufferWriters.get(r);if(null==s)throw new Error("no registered bufferWriter for material found");let o=null;if(e.transformation&&t)(0,P.C)(Dr,e.transformation),Dr[12]-=t[0],Dr[13]-=t[1],Dr[14]-=t[2],o=Dr;else{if(t)throw new Error("not implemented");e.transformation&&(o=e.transformation)}let a=null;o&&((0,P.B8)(jr,Dr),(0,P.mg)(jr,jr),a=jr);const l=e.attributes,c=s.elementCount(l),d=s.layout.stride/4;c>Math.floor(Br/d)&&console.warn("geometry with very large number of elements encountered");const u=s.layout.createBuffer(c),h=s.write(o,a,l,e.olidColor,u,0);if(null==h)throw new Error("Bufferwriter.write does not provide item information.");if(n.length!==h.numItems||i.length!==h.numItems)throw new Error("Unexpected mismatch between number of RenderGeometryBufferItems and provided objectIds/visibility flags.");return{renderGeometryBuffer:{data:u.buffer,elementCount:c},renderGeometryBufferItems:{objectIds:i,visibilities:n,ranges:{numVertices:h.numVerticesPerItem,numItems:h.numItems}}}}}const Dr=(0,C.vt)(),jr=(0,C.vt)(),Br=4194304;var Er=r(98764),Vr=r(65806);const Lr=(0,w.vt)();var Ur=r(17352),Hr=r(97937);function Gr(e,t,r=function(e){return{operations:e,value:e.create()}}(e)){return r.operations=e,e.copy(t,r.value),r}const kr=2**50;function qr(e,t,r,n){return e.operations.setAltitudeAt(e.value,t,r,n)}function $r(e,t,r){return e.operations.elevate(e.value,t,r.value)}const Nr=(0,w.vt)();(0,w.vt)();var Yr=r(44280),Xr=r(32114);function Wr(e){return"point"===e.type}class Zr{constructor(e,t,r,n){this.viewingMode=e,this.spatialReference=t,this.unitInMeters=r,this._coordinateSystem=n,this._tmpCoordinateSystem=function(e){const{value:t,operations:r}=e;return{operations:r,value:r.create(t)}}(n),this.referenceEllipsoid=(0,he.tO)(t),this.sphericalPCPF=(0,Er.lO)(t)}set extent(e){e&&function(e,t,r){e.operations.setExtent(e.value,t,r.value)}(this._coordinateSystem,e,this._coordinateSystem)}get extent(){return e=this._coordinateSystem,t=(0,R.vt)(),e.operations.getExtent(e.value,t),t;var e,t}getAltitude(e){return function(e,t){return e.operations.altitudeAt(e.value,t)}(this._coordinateSystem,e)}setAltitude(e,t,r=e){return qr(this._coordinateSystem,r,t,e)}setAltitudeOfTransformation(e,t){var r,n,i,s;r=this._coordinateSystem,i=e,(n=t)!==(s=t)&&(0,P.C)(s,n),(0,le.i)(Nr,s[12],s[13],s[14]),qr(r,Nr,i,Nr),s[12]=Nr[0],s[13]=Nr[1],s[14]=Nr[2]}worldUpAtPosition(e,t){return function(e,t,r){return e.operations.axisAt(e.value,t,2,r)}(this._coordinateSystem,e,t)}worldBasisAtPosition(e,t,r){return function(e,t,r,n){return e.operations.axisAt(e.value,t,r,n)}(this._coordinateSystem,e,t,r)}basisMatrixAtPosition(e,t){const r=this.worldBasisAtPosition(e,0,Xr.rq.get()),n=this.worldBasisAtPosition(e,1,Xr.rq.get()),i=this.worldBasisAtPosition(e,2,Xr.rq.get());return(0,P.hZ)(t,r[0],r[1],r[2],0,n[0],n[1],n[2],0,i[0],i[1],i[2],0,0,0,0,1),t}headingAtPosition(e,t){const r=this.worldUpAtPosition(e,Xr.rq.get()),n=this.worldBasisAtPosition(e,1,Xr.rq.get()),i=(0,Yr.EJ)(t,n,r);return(0,z.KJ)(i)}intersectManifoldClosestSilhouette(e,t,r){return $r(this._coordinateSystem,t,this._tmpCoordinateSystem),function(e,t,r){e.operations.intersectRayClosestSilhouette(e.value,t,r)}(this._tmpCoordinateSystem,e,r),r}intersectManifold(e,t,r){$r(this._coordinateSystem,t,this._tmpCoordinateSystem);const n=Xr.rq.get();return function(e,t,r){return e.operations.intersectRay(e.value,t,r)}(this._tmpCoordinateSystem,e,n)?(0,le.c)(r,n):null}intersectInfiniteManifold(e,t,r){if(1===this.viewingMode)return this.intersectManifold(e,t,r);$r(this._coordinateSystem,t,this._tmpCoordinateSystem);const n=this._tmpCoordinateSystem.value,i=Xr.rq.get();return(0,ue.Ui)(n.plane,e,i)?(0,le.c)(r,i):null}toRenderCoords(e,t,r){return Wr(e)?(0,Vr.g)(e,t,this.spatialReference):(0,V.F)(e,t,r,this.spatialReference)}fromRenderCoords(e,t,r=null){return Wr(t)?(null!=r&&(t.spatialReference=r),function(e,t,r){return!!(0,V.F)(e,t,Lr,r.spatialReference)&&(r.x=Lr[0],r.y=Lr[1],r.z=Lr[2],!0)}(e,this.spatialReference,t)?t:null):(0,V.F)(e,this.spatialReference,t,r)?t:null}static create(e,t){switch(e){case 2:return new Zr(2,t,(0,I.GA)(t),Gr(Ur.b,(0,Ur.f)([0,0,0],[kr,0,0],[0,kr,0])));case 1:return new Zr(1,t,1,function(e){return Gr(Hr.s,(0,Hr.f)(0,0,0,(0,he.tO)(e).radius))}(t))}}static renderUnitScaleFactor(e,t){return(0,I.KX)(e)/(0,I.KX)(t)}}let Qr=class extends i.nJ{constructor(){super(...arguments),this.remoteClient=null,this._featureStore=new ht,this._tileLocks=new st,this._tileManager=null,this._renderer=null,this._fetcher=null,this._queryEngine=null,this._defaultQueryJSON=null,this._mainThreadDelegate=null,this._viewSpatialReference=null,this._renderCommandContext=null,this._context=null}get updating(){return this._tileManager.updating}destroy(){this._featureStore.clear(),this._tileManager?.destroy()}async setup({viewSpatialReference:e,renderSpatialReference:t,viewingMode:r,layerInfo:n,layerViewInfo:i}){const s=h.A.fromJSON(e);this._viewSpatialReference=s;const a=h.A.fromJSON(t);this._fetcher=new Ot(this._viewSpatialReference,m.A.fromJSON(n.baseQuery),n.url,n.objectIdField,n.capabilities),this._queryEngine=new f.do({hasZ:!0,hasM:!1,geometryType:"esriGeometryPoint",featureIdInfo:{type:"object-id",fieldName:n.objectIdField},fieldsIndex:n.fieldIndex,availableFields:[n.objectIdField],spatialReference:e,featureStore:this._featureStore,timeInfo:n.timeInfo}),this._mainThreadDelegate={createTexture:async(e,t)=>{const r={data:e,parameters:t};return await this.remoteClient.invoke("createTexture",r,{transferList:[e.buffer]})},releaseTexture:async e=>{const t={uid:e};await this.remoteClient.invoke("releaseTexture",t)},createMaterial:async e=>{const t={materialJSON:e};await this.remoteClient.invoke("createMaterial",t)},destroyMaterial:async e=>{const t={materialId:e};await this.remoteClient.invoke("destroyMaterial",t)},createDirectRenderer:async e=>{const t={materialId:e};await this.remoteClient.invoke("createDirectRenderer",t)},destroyDirectRenderer:async e=>{const t={materialId:e};await this.remoteClient.invoke("destroyDirectRenderer",t)},createLodRenderer:async(e,t,r)=>{const n={rendererId:e,lodRenderGeometry:t};await this.remoteClient.invoke("createLoDRenderer",n,{transferList:r})},destroyLodRenderer:async e=>{const t={rendererId:e};await this.remoteClient.invoke("destroyLoDRenderer",t)},executeRenderCommands:async e=>{const t={commands:e.commands};await this.remoteClient.invoke("dispatchRenderCommands",t,{transferList:e.transferList})},applyElevationAlignmentTo:async e=>{const t={mapPoints:e};return await this.remoteClient.invoke("applyElevationAlignment",t,{transferList:[e.buffer]})}};const l=Zr.create(r,a),c=new zr(r,this._mainThreadDelegate);this._renderCommandContext=c;const p=new ke(s,a,this._mainThreadDelegate,l,c,n,i);this._context=p,this._renderer=p.symbolRendererFactory.createSymbolRendererFromJSON(n.renderer),this._defaultQueryJSON=new m.A({outSpatialReference:s}).toJSON();let g=null;if(null!=n.fullExtent){const e=d.A.fromJSON(n.fullExtent);await(0,u.initializeProjection)(e.spatialReference,s),g=(0,u.project)(e,s)}return this._tileManager=new et({loadTile:(e,t)=>this._fetcher.fetch(e,t),createAddCommand:(e,t)=>this._createAddFeatureDataCommand(e,t),createRemoveCommand:e=>this._createRemoveFeatureDataCommand(e),createUpdateCommand:(e,t)=>this._createUpdateFeatureDataVisibilityCommand(e,t),tileLocks:this._tileLocks,extent:g}),this.addHandles((0,o.wB)(()=>this.updating,e=>{this.emit("notify-updating",{updating:e})}),o.Vh),null!=this._renderer&&await this._renderer.load(),Kr}async executeQuery(e,t){return{result:await this._queryEngine.executeQuery(this._ensureQuery(e),t)}}async executeQueryForIds(e,t){const r=await this._queryEngine.executeQueryForIdSet(this._ensureQuery(e),t);return{result:Array.from(r)}}async executeQueryForCount(e,t){return{result:await this._queryEngine.executeQueryForCount(this._ensureQuery(e),t)}}async executeQueryForExtent(e,t){return{result:await this._queryEngine.executeQueryForExtent(this._ensureQuery(e),t)}}async executeQueryForLatestObservations(e,t){return{result:await this._queryEngine.executeQueryForLatestObservations(this._ensureQuery(e),t)}}onTileTreeChange(e){return this._tileManager.onTileTreeChange(e),Promise.resolve(Kr)}async onElevationChange(e){return Kr}async onLayerViewOpacityChange(e){const{_context:t,_renderer:r}=this;if(t.layerViewInfo.fullOpacity=e,null==r)return Kr;const n=await r.createUpdateLayerViewOpacityCommand(e);return await n.execute(),Kr}async onRendererChange(e){const{_context:t}=this,r=t.symbolRendererFactory.createSymbolRendererFromJSON(e);await r.load();const i=this._renderer;this._renderer=r;const s=[...this._tileManager.loadedTiles()],o=s.map(e=>e.tileId);{const e={stack:[],error:void 0,hasError:!1};try{(0,n.mS)(e,await this._tileLocks.lock(o),!1);const a=s.flatMap(e=>[i.createRemoveCommand(e.id),r.createAddCommand(e)]),l=await Promise.all(a),c=t.joinPipelineCommands(l);await c.execute()}catch(t){e.error=t,e.hasError=!0}finally{(0,n.hk)(e)}}const a=await i.createDestroyCommand();return await a.execute(),Kr}async _createAddFeatureDataCommand(e,t){const r=this._featureStore,n=this._renderer;let i;return i=null!=n?await n.createAddCommand(e):g.create(this._renderCommandContext),(0,s.Te)(t),i.appendPipelineStateCommand(()=>{r.addTile(e)}),i}async _createRemoveFeatureDataCommand(e){const t=this._featureStore,r=this._renderer;let n;return n=null!=r?await r.createRemoveCommand(e):g.create(this._renderCommandContext),n.appendPipelineStateCommand(()=>{t.removeTile(e)}),n}async _createUpdateFeatureDataVisibilityCommand(e,t){const r=this._renderer;let n;return n=null!=r?await r.createUpdateVisibilityCommand(e):g.create(this._renderCommandContext),(0,s.Te)(t),n}_ensureQuery(e){return e??this._defaultQueryJSON}};(0,n.Cg)([(0,a.MZ)()],Qr.prototype,"updating",null),Qr=(0,n.Cg)([(0,c.$)("esri.views.3d.layers.graphics.pipeline.Feature3DPipelineWorker")],Qr);const Jr=Qr,Kr={result:void 0}},77548:(e,t,r)=>{r.d(t,{Gh:()=>p,tk:()=>u,BR:()=>d,wI:()=>c,G$:()=>f,$x:()=>h,Ov:()=>a,W_:()=>l,OP:()=>m,TU:()=>o,XX:()=>s});var n=r(70333),i=r(78888);r(7762),r(84952),r(36563),r(36708),new WeakMap;const s={Point:"SceneLayer","3DObject":"SceneLayer",IntegratedMesh:"IntegratedMeshLayer",PointCloud:"PointCloudLayer",Building:"BuildingSceneLayer"};function o(e){const t=e?.type;return"building-scene"===t||"integrated-mesh"===t||"point-cloud"===t||"scene"===t}function a(e){return"feature"===e?.type&&!e.url&&"memory"===e.source?.type}function l(e){const t=e?.type;return("feature"===t||"subtype-group"===t||"oriented-imagery"===t)&&"feature-layer"===e?.source?.type}async function c(e,t){const r=n.id?.findServerInfo(e);if(null!=r?.currentVersion)return r.owningSystemUrl||null;const s=e.toLowerCase().indexOf("/rest/services");if(-1===s)return null;const o=`${e.slice(0,s)}/rest/info`,a=null!=t?t.signal:null,{data:l}=await(0,i.A)(o,{query:{f:"json"},responseType:"json",signal:a});return l?.owningSystemUrl||null}function d(e){return function(e){if(!("capabilities"in e))return!1;switch(e.type){case"catalog":case"catalog-footprint":case"csv":case"feature":case"geojson":case"imagery":case"knowledge-graph-sublayer":case"ogc-feature":case"oriented-imagery":case"scene":case"sublayer":case"subtype-group":case"subtype-sublayer":case"wfs":return!0;default:return!1}}(e)?"effectiveCapabilities"in e?e.effectiveCapabilities:e.capabilities:null}function u(e){return!!function(e){if(!("editingEnabled"in e))return!1;switch(e.type){case"csv":case"feature":case"geojson":case"oriented-imagery":case"scene":case"subtype-group":case"subtype-sublayer":return!0;default:return!1}}(e)&&("effectiveEditingEnabled"in e?e.effectiveEditingEnabled:e.editingEnabled)}function h(e,t){return null}function f(e){return null}function m(e){return!e||"Feature Service"===e.type&&!e.sourceUrl}function p(e,t){if(!t||!m(e))return;const r=(e.url,null);r&&(e.url=r)}},81961:(e,t,r)=>{r.d(t,{V:()=>i});var n=r(74333);class i extends n.n{constructor(e,t,r){super(e,"vec4",2,(n,i,s)=>n.setUniform4fv(e,t(i,s),r))}}},87582:(e,t,r)=>{r(6867),r(65215).R},95696:(e,t,r)=>{r.d(t,{A:()=>d});var n,i=r(31635),s=r(69540),o=r(25482),a=r(10107),l=(r(44208),r(53966),r(87811),r(93223)),c=r(40608);let d=class extends((0,s.O)(o.o)){static{n=this}constructor(e){super(e),this.type="georeferenced",this.origin=null}static{this.absolute=new n}};(0,i.Cg)([(0,l.e)({georeferenced:"georeferenced"},{readOnly:!0})],d.prototype,"type",void 0),(0,i.Cg)([(0,a.MZ)({type:[Number],nonNullable:!1,json:{write:!0}})],d.prototype,"origin",void 0),d=n=(0,i.Cg)([(0,c.$)("esri.geometry.support.MeshGeoreferencedVertexSpace")],d)},96576:(e,t,r)=>{r.d(t,{A:()=>h});var n,i=r(31635),s=r(4718),o=r(10107),a=(r(44208),r(53966),r(93223)),l=r(40608),c=r(92438),d=r(63988),u=r(49849);let h=n=class extends((0,d.h)(c.A)){constructor(e){super(e),this.description=null,this.label=null,this.symbol=null,this.type="simple"}async collectRequiredFields(e,t){await Promise.all([this.collectSymbolFields(e,t),this.collectVVRequiredFields(e,t)])}async collectSymbolFields(e,t){await Promise.all(this.symbols.map(r=>r.collectRequiredFields(e,t)))}getSymbol(e,t){return this.symbol}async getSymbolAsync(e,t){return this.symbol}get symbols(){return this.symbol?[this.symbol]:[]}getAttributeHash(){return this.visualVariables?.reduce((e,t)=>e+t.getAttributeHash(),"")??""}getMeshHash(){return this.symbols.reduce((e,t)=>e+JSON.stringify(t),"")}get arcadeRequired(){return this.arcadeRequiredForVisualVariables}clone(){return new n({description:this.description,label:this.label,symbol:(0,s.o8)(this.symbol),visualVariables:(0,s.o8)(this.visualVariables),authoringInfo:(0,s.o8)(this.authoringInfo)})}};(0,i.Cg)([(0,o.MZ)({type:String,json:{write:!0}})],h.prototype,"description",void 0),(0,i.Cg)([(0,o.MZ)({type:String,json:{write:!0}})],h.prototype,"label",void 0),(0,i.Cg)([(0,o.MZ)(u.Wp)],h.prototype,"symbol",void 0),(0,i.Cg)([(0,a.e)({simple:"simple"})],h.prototype,"type",void 0),h=n=(0,i.Cg)([(0,l.$)("esri.renderers.SimpleRenderer")],h)}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[431],{431:(t,e,n)=>{n.d(e,{o6:()=>U,HY:()=>b,hx:()=>G,Jb:()=>M});var r=n(9318);function i(t,e,n){const r=e/3,i=new Uint32Array(n+1),s=new Uint32Array(n+1),o=(t,e)=>{t<e?i[t+1]++:s[e+1]++};for(let e=0;e<r;e++){const n=t[3*e],r=t[3*e+1],i=t[3*e+2];o(n,r),o(r,i),o(i,n)}let a=0,c=0;for(let t=0;t<n;t++){const e=i[t+1],n=s[t+1];i[t+1]=a,s[t+1]=c,a+=e,c+=n}const u=new Uint32Array(6*r),f=i[n],l=(t,e,n)=>{if(t<e){const r=i[t+1]++;u[2*r]=e,u[2*r+1]=n}else{const r=s[e+1]++;u[2*f+2*r]=t,u[2*f+2*r+1]=n}};for(let e=0;e<r;e++){const n=t[3*e],r=t[3*e+1],i=t[3*e+2];l(n,r,e),l(r,i,e),l(i,n,e)}const h=(t,e)=>{const n=2*t,r=e-t;for(let t=1;t<r;t++){const e=u[n+2*t],r=u[n+2*t+1];let i=t-1;for(;i>=0&&u[n+2*i]>e;i--)u[n+2*i+2]=u[n+2*i],u[n+2*i+3]=u[n+2*i+1];u[n+2*i+2]=e,u[n+2*i+3]=r}};for(let t=0;t<n;t++)h(i[t],i[t+1]),h(f+s[t],f+s[t+1]);const d=new Int32Array(3*r),_=(e,n)=>e===t[3*n]?0:e===t[3*n+1]?1:e===t[3*n+2]?2:-1,p=(t,e)=>{const n=_(t,e);d[3*e+n]=-1},E=(t,e,n,r)=>{const i=_(t,e);d[3*e+i]=r;const s=_(n,r);d[3*r+s]=e};for(let t=0;t<n;t++){let e=i[t];const n=i[t+1];let r=s[t];const o=s[t+1];for(;e<n&&r<o;){const n=u[2*e],i=u[2*f+2*r];n===i?(E(t,u[2*e+1],i,u[2*f+2*r+1]),e++,r++):n<i?(p(t,u[2*e+1]),e++):(p(i,u[2*f+2*r+1]),r++)}for(;e<n;)p(t,u[2*e+1]),e++;for(;r<o;)p(u[2*f+2*r],u[2*f+2*r+1]),r++}return d}var s=n(1843),o=n(3055),a=n(87811),c=n(38954),u=n(51850),f=n(4431),l=n(34727);function h(t,e,n,r,i,s=2){const o=1/(Math.abs(n)+Math.abs(r)+Math.abs(i)),a=n*o,c=r*o,u=i<=0?(a>=0?1:-1)*(1-Math.abs(c)):a,f=i<=0?(c>=0?1:-1)*(1-Math.abs(a)):c,l=e*s;t[l]=d(u),t[l+1]=d(f)}function d(t){return(0,l.qE)(Math.round(32767*t),-32767,32767)}n(11868),n(34275);class _{updateSettings(t){this.settings=t,this._edgeHashFunction=t.reducedPrecision?m:A}write(t,e,n){T.seed=this._edgeHashFunction(n);const r=T.getIntRange(0,255),i=T.getIntRange(0,this.settings.variants-1),s=T.getFloat(),o=255*(.5*function(t){return Math.abs(t)**1.2*Math.sign(t)}(-(1-Math.min(s/.7,1))+Math.max(0,s-.7)/(1-.7))+.5);t.position0.setVec(e,n.position0),t.position1.setVec(e,n.position1),t.componentIndex.set(e,n.componentIndex),t.variantOffset.set(e,r),t.variantStroke.set(e,i),t.variantExtension.set(e,o)}}const p=new Float32Array(6),E=new Uint32Array(p.buffer),g=new Uint32Array(1);function A(t){return p[0]=t.position0[0],p[1]=t.position0[1],p[2]=t.position0[2],p[3]=t.position1[0],p[4]=t.position1[1],p[5]=t.position1[2],g[0]=31*(31*(31*(31*(31*(166811+E[0])+E[1])+E[2])+E[3])+E[4])+E[5],g[0]}function m(t){const e=p;e[0]=S(t.position0[0]),e[1]=S(t.position0[1]),e[2]=S(t.position0[2]),e[3]=S(t.position1[0]),e[4]=S(t.position1[1]),e[5]=S(t.position1[2]),g[0]=5381;for(let t=0;t<E.length;t++)g[0]=31*g[0]+E[t];return g[0]}const N=1e4;function S(t){return Math.round(t*N)/N}class R{constructor(){this._commonWriter=new _}updateSettings(t){this._commonWriter.updateSettings(t)}allocate(t){return o.gr.createBuffer(t)}write(t,e,n){this._commonWriter.write(t,e,n),(0,c.f)(I,n.faceNormal0,n.faceNormal1),(0,c.n)(I,I);const{typedBuffer:r,typedBufferStride:i}=t.normalCompressed;h(r,e,I[0],I[1],I[2],i)}static{this.Layout=o.gr}static{this.glLayout=(0,f.U)(o.gr,1)}}class y{constructor(){this._commonWriter=new _}updateSettings(t){this._commonWriter.updateSettings(t)}allocate(t){return o.In.createBuffer(t)}write(t,e,n){this._commonWriter.write(t,e,n);{const{typedBuffer:r,typedBufferStride:i}=t.normalCompressed;h(r,e,n.faceNormal0[0],n.faceNormal0[1],n.faceNormal0[2],i)}{const{typedBuffer:r,typedBufferStride:i}=t.normal2Compressed;h(r,e,n.faceNormal1[0],n.faceNormal1[1],n.faceNormal1[2],i)}}static{this.Layout=o.In}static{this.glLayout=(0,f.U)(o.In,1)}}const I=(0,u.vt)(),T=new a.A;var w=n(93406);function U(t){const e=G(t.data,t.skipDeduplicate,t.indices,t.indicesLength);return B.updateSettings(t.writerSettings),v.updateSettings(t.writerSettings),(0,w.K)(e,B,v)}function G(t,e,n,s){if(e){const e=i(n,s,t.count);return new F(n,s,e,t)}const a=(0,r.b)(t.buffer,t.stride/4,{originalIndices:n}),c=i(a.indices,s,a.uniqueCount);return{faces:a.indices,facesLength:a.indices.length,neighbors:c,vertices:o.I$.createView(a.buffer)}}class F{constructor(t,e,n,r){this.faces=t,this.facesLength=e,this.neighbors=n,this.vertices=r}}const B=new R,v=new y,M=(0,s.BP)().vec3f("position0").vec3f("position1"),b=(0,s.BP)().vec3f("position0").vec3f("position1").u16("componentIndex")},1843:(t,e,n)=>{n.d(e,{BP:()=>l,l5:()=>h});var r=n(20498),i=n(13030),s=n(90239),o=n(4431),a=n(620),c=n(85079);class u{constructor(t,e){this.layout=t,this.buffer="number"==typeof e?new ArrayBuffer(e*t.stride):e;for(const e of t.fields.keys()){const n=t.fields.get(e);this[e]=new n.constructor(this.buffer,n.offset,this.stride)}}get stride(){return this.layout.stride}get count(){return this.buffer.byteLength/this.stride}get byteLength(){return this.buffer.byteLength}getField(t,e){const n=this[t];return n&&n.elementCount===e.ElementCount&&n.elementType===e.ElementType?n:null}slice(t,e){return new u(this.layout,this.buffer.slice(t*this.stride,e*this.stride))}copyFrom(t,e=0,n=0,r=t.count){const i=this.stride;if(i%4==0){const s=new Uint32Array(t.buffer,e*i,r*i/4);new Uint32Array(this.buffer,n*i,r*i/4).set(s)}else{const s=new Uint8Array(t.buffer,e*i,r*i);new Uint8Array(this.buffer,n*i,r*i).set(s)}return this}get cachedMemory(){return this.byteLength}dispose(){}}class f{constructor(t){this._stride=0,this._fields=new Map,t&&(this._stride=t.stride,t.fields.forEach(t=>this._fields.set(t[0],{...t[1],constructor:p(t[1].constructor)})))}freeze(){return this}get locations(){return(0,c.Xk)((0,o.U)(this))}vec2f16(t,e){return this._appendField(t,r.SX?i.ZD:i.gH,e),this}vec2f(t,e){return this._appendField(t,i.gH,e),this}vec2f64(t,e){return this._appendField(t,i.si,e),this}vec3f16(t,e){return this._appendField(t,r.SX?i.EC:i.xs,e),this}vec3f(t,e){return this._appendField(t,i.xs,e),this}vec3f64(t,e){return this._appendField(t,i.Xm,e),this}vec4f16(t,e){return this._appendField(t,r.SX?i.jz:i.Eq,e),this}vec4f(t,e){return this._appendField(t,i.Eq,e),this}vec4f64(t,e){return this._appendField(t,i.Aj,e),this}mat3f(t,e){return this._appendField(t,i.jZ,e),this}mat3f64(t,e){return this._appendField(t,i.j0,e),this}mat4f(t,e){return this._appendField(t,i.Sx,e),this}mat4f64(t,e){return this._appendField(t,i.E$,e),this}vec4u8(t,e){return this._appendField(t,i.XP,e),this}f16(t,e){return this._appendField(t,r.SX?i.XW:i.Y$,e),this}f32(t,e){return this._appendField(t,i.Y$,e),this}f64(t,e){return this._appendField(t,i.qB,e),this}u8(t,e){return this._appendField(t,i.SL,e),this}u16(t,e){return this._appendField(t,i.h,e),this}i8(t,e){return this._appendField(t,i.bf,e),this}vec2i8(t,e){return this._appendField(t,i.D6,e),this}vec2i16(t,e){return this._appendField(t,i.mJ,e),this}vec2u8(t,e){return this._appendField(t,i.LC,e),this}vec2u16(t,e){return this._appendField(t,i.Yi,e),this}vec4u16(t,e){return this._appendField(t,i.Uz,e),this}u32(t,e){return this._appendField(t,i.P,e),this}_appendField(t,e,n){this._fields.has(t)&&(0,a.vA)(!1,`${t} already added to vertex buffer layout`);const r=e.ElementCount*(0,s.GJ)(e.ElementType),i=this._stride;this._fields.set(t,{constructor:e,size:r,offset:i,optional:n}),this._alignFields()}_alignFields(){let t=0,e=1;this._fields.forEach(n=>{const r=(0,s.GJ)(n.constructor.ElementType);t=Math.floor((t+r-1)/r)*r,n.offset=t,t+=n.size,e=Math.max(e,r)}),t=Math.floor((t+e-1)/e)*e,this._stride=t}createBuffer(t){return new u(this,t)}createView(t){return new u(this,t)}clone(){const t=new f;return t._stride=this._stride,t._fields=new Map,this._fields.forEach((e,n)=>t._fields.set(n,e)),t.BufferType=this.BufferType,t}get stride(){return this._stride}get fields(){return this._fields}}function l(){return new f}class h{constructor(t){this.fields=new Array,t.fields.forEach((t,e)=>{const n={...t,constructor:_(t.constructor)};this.fields.push([e,n])}),this.stride=t.stride}}const d=[i.Y$,i.gH,i.xs,i.Eq,i.jZ,i.Sx,i.qB,i.si,i.Xm,i.Aj,i.j0,i.E$,i.SL,i.LC,i.eI,i.XP,i.h,i.Yi,i.nS,i.Uz,i.P,i.An,i.H$,i.ml,i.bf,i.D6,i.m8,i.TX,i.Qt,i.mJ,i.Vp,i.E7,i.My,i.UL,i.zD,i.Y4];function _(t){return`${t.ElementType}_${t.ElementCount}`}function p(t){return E.get(t)}const E=new Map;d.forEach(t=>E.set(_(t),t))},3055:(t,e,n)=>{n.d(e,{I$:()=>o,In:()=>f,gr:()=>u});var r=n(4431),i=n(1843),s=n(85079);const o=(0,i.BP)().vec3f("position").u16("componentIndex").freeze(),a=(0,i.BP)().vec2u8("sideness").freeze(),c=(0,r.U)(a),u=(0,i.BP)().vec3f("position0").vec3f("position1").vec2i16("normalCompressed").u16("componentIndex").u8("variantOffset",{glNormalized:!0}).u8("variantStroke").u8("variantExtension",{glNormalized:!0}).freeze(),f=(0,i.BP)().vec3f("position0").vec3f("position1").vec2i16("normalCompressed").vec2i16("normal2Compressed").u16("componentIndex").u8("variantOffset",{glNormalized:!0}).u8("variantStroke").u8("variantExtension",{glNormalized:!0}).freeze();(0,s._u)([c,(0,r.U)(u)]),(0,s._u)([c,(0,r.U)(f)])},4431:(t,e,n)=>{n.d(e,{U:()=>s}),n(44208);var r=n(63907),i=n(74038);function s(t,e=0){const n=t.stride;return Array.from(t.fields.keys()).map(s=>{const o=t.fields.get(s),a=o.constructor.ElementCount,c=function(t){switch(t){case"u8":return r.pe.UNSIGNED_BYTE;case"u16":return r.pe.UNSIGNED_SHORT;case"u32":return r.pe.UNSIGNED_INT;case"i8":return r.pe.BYTE;case"i16":return r.pe.SHORT;case"i32":return r.pe.INT;case"f16":return r.pe.HALF_FLOAT;case"f32":return r.pe.FLOAT;default:throw new Error("BufferType not supported in WebGL")}}(o.constructor.ElementType),u=o.offset,f=o.optional?.glNormalized??!1;return new i._(s,a,c,u,n,f,e)})}},9318:(t,e,n)=>{n.d(e,{b:()=>s});var r=n(34727),i=n(97146);function s(t,e,n){const s=Array.isArray(t),f=s?t.length/e:t.byteLength/(4*e),l=s?t:new Uint32Array(t,0,f*e),h=n?.minReduction??0,d=n?.originalIndices||null,_=d?d.length:0,p=n?.componentOffsets||null;let E=0;if(p)for(let t=0;t<p.length-1;t++){const e=p[t+1]-p[t];e>E&&(E=e)}else E=f;const g=Math.floor(1.1*E)+1;(null==u||u.length<2*g)&&(u=new Uint32Array((0,r.cU)(2*g)));for(let t=0;t<2*g;t++)u[t]=0;let A=0;const m=!!p&&!!d,N=m?_:f;let S=(0,i.my)(f);const R=new Uint32Array(_),y=1.96;let I=0!==h?Math.ceil(4*y*y/(h*h)*h*(1-h)):N,T=1,w=p?p[1]:N;for(let t=0;t<N;t++){if(t===I){const e=1-A/t;if(e+y*Math.sqrt(e*(1-e)/t)<h)return null;I*=2}if(t===w){for(let t=0;t<2*g;t++)u[t]=0;if(d)for(let t=p[T-1];t<p[T];t++)R[t]=S[d[t]];w=p[++T]}const n=m?d[t]:t,r=n*e,i=c(l,r,e);let s=i%g,a=A;for(;0!==u[2*s+1];){if(u[2*s]===i){const t=u[2*s+1]-1;if(o(l,r,t*e,e)){a=S[t];break}}s++,s>=g&&(s-=g)}a===A&&(u[2*s]=i,u[2*s+1]=n+1,A++),S[n]=a}if(0!==h&&1-A/f<h)return null;if(m){for(let t=p[T-1];t<R.length;t++)R[t]=S[d[t]];S=(0,i.uW)(R)}const U=s?new Array(A):new Uint32Array(A*e);A=0;for(let t=0;t<N;t++)S[t]===A&&(a(l,(m?d[t]:t)*e,U,A*e,e),A++);if(d&&!m){const t=new Uint32Array(_);for(let e=0;e<t.length;e++)t[e]=S[d[e]];S=(0,i.uW)(t)}return{buffer:Array.isArray(U)?U:U.buffer,indices:S,uniqueCount:A}}function o(t,e,n,r){for(let i=0;i<r;i++)if(t[e+i]!==t[n+i])return!1;return!0}function a(t,e,n,r,i){for(let s=0;s<i;s++)n[r+s]=t[e+s]}function c(t,e,n){let r=0;for(let i=0;i<n;i++)r=t[e+i]+r|0,r=r+(r<<11)+(r>>>2)|0;return r>>>0}let u=null},11868:(t,e,n)=>{n.d(e,{Wz:()=>s,oe:()=>i});var r=n(34275);function i(t,e=!1){return t<=r.y9?e?new Array(t).fill(0):new Array(t):new Float32Array(t)}function s(t){return(Array.isArray(t)?t.length:t.byteLength/8)<=r.y9?Array.from(t):new Float32Array(t)}},34727:(t,e,n)=>{n.d(e,{$8:()=>R,Cc:()=>o,Hx:()=>p,Io:()=>S,KJ:()=>u,Sp:()=>h,XM:()=>f,YN:()=>l,ZH:()=>_,cU:()=>i,gg:()=>d,hs:()=>a,kU:()=>c,or:()=>I,pF:()=>w,pq:()=>T,qE:()=>s});const r=new Float32Array(1);function i(t){--t;for(let e=1;e<32;e<<=1)t|=t>>e;return t+1}function s(t,e,n){return Math.min(Math.max(t,e),n)}function o(t,e,n){return t+(e-t)*n}function a(t,e,n,r,i){return o(r,i,(t-e)/(n-e))}function c(t){return t*Math.PI/180}function u(t){return 180*t/Math.PI}function f(t){return Math.acos(s(t,-1,1))}function l(t){return Math.asin(s(t,-1,1))}function h(t,e,n=1e-6){return t===e||!(!Number.isFinite(t)||!Number.isFinite(e))&&(t>e?t-e:e-t)<=n}function d(t,e,n=1e-6){return!h(t,e,n)&&t>e}function _(t,e,n=1e-6){return!h(t,e,n)&&t<e}function p(t,e,n=1e-6){return h(t,e,n)||t>e}const E=new DataView(new ArrayBuffer(Float64Array.BYTES_PER_ELEMENT));function g(t){return E.setFloat64(0,t),E.getBigInt64(0)}const A=1000000n,m=N(1);function N(t){const e=g(t=Math.abs(t)),n=function(t){return E.setBigInt64(0,t),E.getFloat64(0)}(e<=A?A:e-A);return Math.abs(t-n)}function S(t,e,n=m){if(t===e)return!0;if(!Number.isFinite(t)||!Number.isFinite(e))return!1;if(null!=n&&N(Math.min(Math.abs(t),Math.abs(e)))<n)return Math.abs(t-e)<=n;const r=g(t),i=g(e);return r<0==i<0&&!((r<i?i-r:r-i)>A)}function R(t){return y(Math.max(-T,Math.min(t,T)))}function y(t){return r[0]=t,r[0]}function I(t){const e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[3]*t[3]+t[4]*t[4]+t[5]*t[5],r=t[6]*t[6]+t[7]*t[7]+t[8]*t[8];return!(h(e,1)&&h(n,1)&&h(r,1))}const T=y(34028234663852886e22);function w(t,e,n){if(void 0===n||0===+n)return Math[t](e);if(e=+e,n=+n,isNaN(e)||"number"!=typeof n||n%1!=0)return NaN;let r=e.toString().split("e");return r=(e=Math[t](+(r[0]+"e"+(r[1]?+r[1]-n:-n)))).toString().split("e"),+(r[0]+"e"+(r[1]?+r[1]+n:n))}},51850:(t,e,n)=>{function r(){return[0,0,0]}function i(t){return[t[0],t[1],t[2]]}function s(t,e,n){return[t,e,n]}function o(t,e,n){return[t,e,n]}function a(t,e=[0,0,0]){const n=Math.min(3,t.length);for(let r=0;r<n;++r)e[r]=t[r];return e}function c(){return s(1,1,1)}function u(){return s(1,0,0)}function f(){return s(0,1,0)}function l(){return s(0,0,1)}n.d(e,{CN:()=>o,Cb:()=>E,Cw:()=>_,JP:()=>p,Un:()=>d,ci:()=>a,fA:()=>s,o8:()=>i,uY:()=>h,vt:()=>r});const h=[0,0,0],d=c(),_=u(),p=f(),E=l();Object.freeze(Object.defineProperty({__proto__:null,ONES:d,UNIT_X:_,UNIT_Y:p,UNIT_Z:E,ZEROS:h,clone:i,create:r,freeze:o,fromArray:a,fromValues:s,ones:c,unitX:u,unitY:f,unitZ:l,zeros:function(){return[0,0,0]}},Symbol.toStringTag,{value:"Module"}))},63907:(t,e,n)=>{n.d(e,{CQ:()=>p,Fq:()=>d,H0:()=>s,SB:()=>c,WR:()=>r,XN:()=>o,iE:()=>a,ld:()=>u,nI:()=>_,pe:()=>i,r6:()=>l,vt:()=>f,yI:()=>h});const r={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},i={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,HALF_FLOAT:5131},s={RGBA4:32854,R16F:33325,RG16F:33327,RGB32F:34837,RGBA16F:34842,R32F:33326,RG32F:33328,RGBA32F:34836,R11F_G11F_B10F:35898,RGB8:32849,RGBA8:32856,RGB5_A1:32855,R8:33321,RG8:33323,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,RGB16F:34843,RGB9_E5:35901,SRGB8:35905,SRGB8_ALPHA8:35907,RGB565:36194,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,RGB10_A2:32857,RGB10_A2UI:36975},o=Object.values(s),a={DEPTH24_STENCIL8:35056,DEPTH32F_STENCIL8:36013},c={DEPTH_COMPONENT16:33189,DEPTH_COMPONENT24:33190,DEPTH_COMPONENT32F:36012},u={FLOAT:i.FLOAT,UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_INT_24_8:34042,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,BYTE:i.BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,SHORT:i.SHORT,UNSIGNED_INT:i.UNSIGNED_INT,INT:i.INT,HALF_FLOAT:5131,UNSIGNED_INT_2_10_10_10_REV:33640,UNSIGNED_INT_10F_11F_11F_REV:35899,UNSIGNED_INT_5_9_9_9_REV:35902,FLOAT_32_UNSIGNED_INT_24_8_REV:36269},f={Texture:0,TileTexture:1,BufferObject:2,VertexArrayObject:3,Shader:4,Program:5,FramebufferObject:6,Renderbuffer:7,TransformFeedback:8,Sync:9,UNCOUNTED:10,LinesOfCode:10,Uniform:11,COUNT:12},l=36064,h=36065,d=36066,_=33306,p={COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497}},74038:(t,e,n)=>{n.d(e,{_:()=>r});class r{constructor(t,e,n,r,i,s=!1,o=0){this.name=t,this.count=e,this.type=n,this.offset=r,this.stride=i,this.normalized=s,this.divisor=o}}},85079:(t,e,n)=>{function r(t){let e=0;return new Map(t.map(({name:t,count:n})=>{const r=[t,e];return 16===n?e+=4:9===n?e+=3:++e,r}))}function i(t){const e=new Map;let n=0;return t.forEach(t=>t.forEach(({name:t,count:r})=>{e.set(t,n),16===r?n+=4:9===r?n+=3:++n})),e}n.d(e,{Xk:()=>r,_u:()=>i})},90239:(t,e,n)=>{function r(t){switch(t){case"u8":case"i8":return 1;case"u16":case"i16":case"f16":return 2;case"u32":case"i32":case"f32":return 4;case"f64":return 8}}n.d(e,{GJ:()=>r})},93406:(t,e,n)=>{n.d(e,{K:()=>c});var r=n(34727),i=n(15142),s=n(38954),o=n(51850);const a=-1;function c(t,e,n){const r=t.vertices.position,i=t.vertices.componentIndex,o=p.position0,c=p.position1,l=p.faceNormal0,d=p.faceNormal1,{edges:_,normals:E}=f(t),g=_.length/4,A=e.allocate(g);let m=0;const N=g,y=n?.allocate(N);let T=0,w=0,U=0;h.length=0;for(let t=0;t<g;++t){const e=4*t;r.getVec(_.data[e],o),r.getVec(_.data[e+1],c);const n=h.pushNew();n.index=4*t,n.length=(0,s.j)(o,c)}h.sort((t,e)=>e.length-t.length);const G=new Array,F=new Array;h.forAll(({length:t,index:f})=>{const h=_.data[f],g=_.data[f+1],N=_.data[f+2],B=_.data[f+3],v=B===a;if(r.getVec(h,o),r.getVec(g,c),v){const t=3*N;(0,s.i)(l,E.data[t],E.data[t+1],E.data[t+2]),(0,s.c)(d,l),p.componentIndex=i.get(h),p.cosAngle=(0,s.e)(l,d)}else{let t=3*N;if((0,s.i)(l,E.data[t],E.data[t+1],E.data[t+2]),t=3*B,(0,s.i)(d,E.data[t],E.data[t+1],E.data[t+2]),p.componentIndex=i.get(h),p.cosAngle=(0,s.e)(l,d),function(t,e){return t.cosAngle>e}(p,R))return;p.cosAngle<-.9999&&(0,s.c)(d,l)}w+=t,U++,v||function(t,e){return t.cosAngle<e}(p,I)?(e.write(A,m++,p),G.push(t)):u(p,S)&&(y&&n&&n.write(y,T++,p),F.push(t))});const B=new Float32Array(G.reverse()),v=new Float32Array(F.reverse()),M=y&&n?{instancesData:y.slice(0,T),lodInfo:{lengths:v}}:void 0;return{regular:{instancesData:A.slice(0,m),lodInfo:{lengths:B}},silhouette:M,averageEdgeLength:w/U}}function u(t,e){const n=(0,r.XM)(t.cosAngle);return(0,s.E)(g,t.position1,t.position0),n*((0,s.e)((0,s.h)(E,t.faceNormal0,t.faceNormal1),g)>0?-1:1)>e}function f(t){const e=t.faces.length/3,n=t.faces,r=t.neighbors,i=t.vertices.position;d.length=_.length=0;for(let t=0;t<e;t++){const e=3*t,o=r[e],c=r[e+1],u=r[e+2],f=n[e],l=n[e+1],h=n[e+2];i.getVec(f,A),i.getVec(l,m),i.getVec(h,N),(0,s.d)(m,m,A),(0,s.d)(N,N,A),(0,s.h)(A,m,N),(0,s.n)(A,A),_.pushArray(A),(o===a||f<l)&&(d.push(f),d.push(l),d.push(t),d.push(o)),(c===a||l<h)&&(d.push(l),d.push(h),d.push(t),d.push(c)),(u===a||h<f)&&(d.push(h),d.push(f),d.push(t),d.push(u))}return{edges:d,normals:_}}class l{constructor(){this.index=0,this.length=0}}const h=new i.A({allocator:t=>t||new l,deallocator:null}),d=new i.A({deallocator:null}),_=new i.A({deallocator:null}),p=new class{constructor(){this.position0=(0,o.vt)(),this.position1=(0,o.vt)(),this.faceNormal0=(0,o.vt)(),this.faceNormal1=(0,o.vt)(),this.componentIndex=0,this.cosAngle=0}},E=(0,o.vt)(),g=(0,o.vt)(),A=(0,o.vt)(),m=(0,o.vt)(),N=(0,o.vt)(),S=(0,r.kU)(4),R=Math.cos(S),y=(0,r.kU)(35),I=Math.cos(y)},97146:(t,e,n)=>{n.d(e,{Dg:()=>s,my:()=>o,tM:()=>f,uW:()=>i});var r=n(34275);function i(t){return s(t,!0)}function s(t,e){if(Array.isArray(t)){if(t.length<r.y9)return t}else if(t.length<r.y9)return Array.from(t);let n=!0,i=!0;return t.some((t,e)=>(n=n&&0===t,i=i&&t===e,!n&&!i)),n?function(t){if(1===t)return c;if(t<r.y9)return new Array(t).fill(0);if(t>h.length){const e=Math.max(2*h.length,t);h=new Uint8Array(e)}return new Uint8Array(h.buffer,0,t)}(t.length):i?f(t.length):(0,r.iu)(t)&&t.BYTES_PER_ELEMENT===Uint16Array.BYTES_PER_ELEMENT?t:function(t,e){for(const n of t){if(n>=65536)return(0,r.iu)(t)?t:new Uint32Array(t);n>=256&&(e=!1)}return e?new Uint8Array(t):new Uint16Array(t)}(t,!e)}function o(t){return t<=r.y9?new Array(t):t<=65536?new Uint16Array(t):new Uint32Array(t)}let a=l(131072);const c=[0],u=(()=>{const t=new Uint16Array(65536);for(let e=0;e<t.length;++e)t[e]=e;return t})();function f(t){return 1===t?c:t<r.y9?Array.from(new Uint16Array(u.buffer,0,t)):t<u.length?new Uint16Array(u.buffer,0,t):(t>a.length&&(a=l(Math.max(2*a.length,t))),new Uint32Array(a.buffer,0,t))}function l(t){const e=new Uint32Array(t);for(let t=0;t<e.length;t++)e[t]=t;return e}let h=new Uint8Array(65536)}}]);