@arcgis/core 4.32.0-next.20250121 → 4.32.0-next.20250122
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.
- package/WebLinkChart.js +1 -1
- package/arcade/treeAnalysis.js +1 -1
- package/assets/esri/core/t9n/Units_ar.json +1 -1
- package/assets/esri/core/t9n/Units_bg.json +1 -1
- package/assets/esri/core/t9n/Units_bs.json +1 -1
- package/assets/esri/core/t9n/Units_ca.json +1 -1
- package/assets/esri/core/t9n/Units_cs.json +1 -1
- package/assets/esri/core/t9n/Units_da.json +1 -1
- package/assets/esri/core/t9n/Units_de.json +1 -1
- package/assets/esri/core/t9n/Units_el.json +1 -1
- package/assets/esri/core/t9n/Units_es.json +1 -1
- package/assets/esri/core/t9n/Units_et.json +1 -1
- package/assets/esri/core/t9n/Units_fi.json +1 -1
- package/assets/esri/core/t9n/Units_fr.json +1 -1
- package/assets/esri/core/t9n/Units_he.json +1 -1
- package/assets/esri/core/t9n/Units_hr.json +1 -1
- package/assets/esri/core/t9n/Units_hu.json +1 -1
- package/assets/esri/core/t9n/Units_id.json +1 -1
- package/assets/esri/core/t9n/Units_it.json +1 -1
- package/assets/esri/core/t9n/Units_ja.json +1 -1
- package/assets/esri/core/t9n/Units_ko.json +1 -1
- package/assets/esri/core/t9n/Units_lt.json +1 -1
- package/assets/esri/core/t9n/Units_lv.json +1 -1
- package/assets/esri/core/t9n/Units_nl.json +1 -1
- package/assets/esri/core/t9n/Units_no.json +1 -1
- package/assets/esri/core/t9n/Units_pl.json +1 -1
- package/assets/esri/core/t9n/Units_pt-BR.json +1 -1
- package/assets/esri/core/t9n/Units_pt-PT.json +1 -1
- package/assets/esri/core/t9n/Units_ro.json +1 -1
- package/assets/esri/core/t9n/Units_ru.json +1 -1
- package/assets/esri/core/t9n/Units_sk.json +1 -1
- package/assets/esri/core/t9n/Units_sl.json +1 -1
- package/assets/esri/core/t9n/Units_sr.json +1 -1
- package/assets/esri/core/t9n/Units_sv.json +1 -1
- package/assets/esri/core/t9n/Units_th.json +1 -1
- package/assets/esri/core/t9n/Units_tr.json +1 -1
- package/assets/esri/core/t9n/Units_uk.json +1 -1
- package/assets/esri/core/t9n/Units_vi.json +1 -1
- package/assets/esri/core/t9n/Units_zh-CN.json +1 -1
- package/assets/esri/core/t9n/Units_zh-HK.json +1 -1
- package/assets/esri/core/t9n/Units_zh-TW.json +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/03b94362ed2a45ee5ea3.js +1 -0
- package/assets/esri/core/workers/chunks/0446f2ffad255cd40272.js +1 -0
- package/assets/esri/core/workers/chunks/059119f1731c2103c91c.js +1 -0
- package/assets/esri/core/workers/chunks/05e58286f8015dba6768.js +1 -0
- package/assets/esri/core/workers/chunks/060414956bf316529c48.js +1 -0
- package/assets/esri/core/workers/chunks/{f8e188af5608293d5b2b.js → 07bff9e742f3e5877f3f.js} +1 -1
- package/assets/esri/core/workers/chunks/{6400f39a965900f66ce7.js → 083c73428945fb3d4558.js} +1 -1
- package/assets/esri/core/workers/chunks/0d3154b90bc3fd7e6b4c.js +1 -0
- package/assets/esri/core/workers/chunks/0ec2ae595fa22998ffea.js +1 -0
- package/assets/esri/core/workers/chunks/{105dcc7b7284b1e965b7.js → 15c5b1dd8f398f641f6e.js} +1 -1
- package/assets/esri/core/workers/chunks/163451124c66a7a0bcdc.js +1 -0
- package/assets/esri/core/workers/chunks/17cc6638a510da164f58.js +1 -0
- package/assets/esri/core/workers/chunks/1e3ab66d0e8a7f160f33.js +1 -0
- package/assets/esri/core/workers/chunks/1e9349411af082ec03d0.js +1 -0
- package/assets/esri/core/workers/chunks/1eb47cfca815ac432cf5.js +1 -0
- package/assets/esri/core/workers/chunks/{82266ca8002554198208.js → 20e7fae0c173807ba9a2.js} +1 -1
- package/assets/esri/core/workers/chunks/{af0b0a7eedebcf99d05d.js → 2118e9ffb24178ed7f59.js} +1 -1
- package/assets/esri/core/workers/chunks/21c12edc0632eb911e73.js +1 -0
- package/assets/esri/core/workers/chunks/21c3882a282a4755e032.js +1 -0
- package/assets/esri/core/workers/chunks/{435c037ccba71f1e22d3.js → 2488a0da3be64b0a26f4.js} +1 -1
- package/assets/esri/core/workers/chunks/254fbd8055ae7a0bb393.js +1 -0
- package/assets/esri/core/workers/chunks/2d55eb8059a532ffcc56.js +1 -0
- package/assets/esri/core/workers/chunks/3034df78da56fe1c0535.js +1 -0
- package/assets/esri/core/workers/chunks/32a96ef30f4608f377d6.js +1 -0
- package/assets/esri/core/workers/chunks/{97d66b0d0ff1132966de.js → 33b2f59c2ec10b2a1034.js} +1 -1
- package/assets/esri/core/workers/chunks/402de76b5de05615e111.js +1 -0
- package/assets/esri/core/workers/chunks/{17726b0ab1bf66185d66.js → 40efcdf03c5224e6c4f7.js} +1 -1
- package/assets/esri/core/workers/chunks/424c7788a708abbf9299.js +1 -0
- package/assets/esri/core/workers/chunks/484d99910d110830df76.js +1 -0
- package/assets/esri/core/workers/chunks/{9970e0e74cf2877a7ffc.js → 486969dba1dc99402172.js} +2 -2
- package/assets/esri/core/workers/chunks/{02b2175132c9720bc756.js → 48f4ba1a5bb692903d06.js} +1 -1
- package/assets/esri/core/workers/chunks/4d7bd2bbe9045a2fee7a.js +1 -0
- package/assets/esri/core/workers/chunks/{decd316936df1ad3fa65.js → 50b538c93696de5eda97.js} +1 -1
- package/assets/esri/core/workers/chunks/{de00150030003de05146.js → 52aea8a4f292a66f5cfa.js} +1 -1
- package/assets/esri/core/workers/chunks/56f0eb9802f5cf9ad0d9.js +1 -0
- package/assets/esri/core/workers/chunks/57ddd64f0c22274d87e0.js +1 -0
- package/assets/esri/core/workers/chunks/5b5be7eb139b153934f5.js +1 -0
- package/assets/esri/core/workers/chunks/{4af0674fabfc965f1660.js → 5b876743865ef91b5648.js} +1 -1
- package/assets/esri/core/workers/chunks/62b88350892198de5055.js +1 -0
- package/assets/esri/core/workers/chunks/{206194cf069ad4bcc3ad.js → 6adf4f3d807f1af1c7c1.js} +1 -1
- package/assets/esri/core/workers/chunks/6b1285db2d6695a87553.js +1 -0
- package/assets/esri/core/workers/chunks/6c425e1041bdeef32832.js +1 -0
- package/assets/esri/core/workers/chunks/6eb829a7959df2269b0e.js +1 -0
- package/assets/esri/core/workers/chunks/765b4aefce7c11bbcb1f.js +1 -0
- package/assets/esri/core/workers/chunks/{6d17488396583d83d9be.js → 79a265dc21e29d3fd888.js} +1 -1
- package/assets/esri/core/workers/chunks/7a9e1696dc6120df15b0.js +1 -0
- package/assets/esri/core/workers/chunks/7ae1f26ded268099f429.js +1 -0
- package/assets/esri/core/workers/chunks/7bf08823f861628144a1.js +1 -0
- package/assets/esri/core/workers/chunks/7e4d72279cc599b7029c.js +1 -0
- package/assets/esri/core/workers/chunks/{ee5f43fbe4c2cc199e64.js → 8434cd16effc5efbf1bd.js} +1 -1
- package/assets/esri/core/workers/chunks/86149b4a5a148744c7d1.js +1 -0
- package/assets/esri/core/workers/chunks/{2779cf112299b612a73a.js → 875cb81f143ff8fe03b5.js} +1 -1
- package/assets/esri/core/workers/chunks/885814ef0e34c01a589f.js +1 -0
- package/assets/esri/core/workers/chunks/{e610dd938d30f75778bc.js → 8be2d16663a238de9438.js} +1 -1
- package/assets/esri/core/workers/chunks/91d5cb094a7051abb6c5.js +1 -0
- package/assets/esri/core/workers/chunks/93ba76749746871357e7.js +314 -0
- package/assets/esri/core/workers/chunks/991c597f27daa67158c5.js +1 -0
- package/assets/esri/core/workers/chunks/9bd22cdf6eb158555906.js +1 -0
- package/assets/esri/core/workers/chunks/{33eebe5cb22a03ae90c8.js → 9c88ce9b0020b6f9a37a.js} +1 -1
- package/assets/esri/core/workers/chunks/9df7bffadbe0b4aad442.js +1 -0
- package/assets/esri/core/workers/chunks/a0a056698f8227210f49.js +1 -0
- package/assets/esri/core/workers/chunks/a1cdd09968e11d95c701.js +1 -0
- package/assets/esri/core/workers/chunks/a28cb975974b99540432.js +1 -0
- package/assets/esri/core/workers/chunks/a29958273958c3e3e932.js +1 -0
- package/assets/esri/core/workers/chunks/{98da074899c82f0ded0b.js → af224962edae72b002fa.js} +1 -1
- package/assets/esri/core/workers/chunks/af2ed4c8ac238b932d89.js +1 -0
- package/assets/esri/core/workers/chunks/af75107f207b2ba01bb4.js +1 -0
- package/assets/esri/core/workers/chunks/b1661e6c76ef0800ffd6.js +1 -0
- package/assets/esri/core/workers/chunks/b42ecc7c3eb2fd8d1308.js +1 -0
- package/assets/esri/core/workers/chunks/b44cf0e4c2f93408cabc.js +1 -0
- package/assets/esri/core/workers/chunks/b846052b6f80ad6ada89.js +1 -0
- package/assets/esri/core/workers/chunks/{399e67ccb69a5b206354.js → c1fd87af3129873369fd.js} +1 -1
- package/assets/esri/core/workers/chunks/c473756f8785ab868ba5.js +1 -0
- package/assets/esri/core/workers/chunks/c5368ca97b7f7261967a.js +1 -0
- package/assets/esri/core/workers/chunks/c685991c9a30f7435933.js +1 -0
- package/assets/esri/core/workers/chunks/ca5bd71bc2c1b1b3f9d9.js +1 -0
- package/assets/esri/core/workers/chunks/ce1c89b5a10fb5a7bb49.js +1 -0
- package/assets/esri/core/workers/chunks/d45ff061bf71b73e9f26.js +1 -0
- package/assets/esri/core/workers/chunks/d4760e583dfac95dc8a1.js +1 -0
- package/assets/esri/core/workers/chunks/de2ca2dc1b5d62c0d82e.js +1 -0
- package/assets/esri/core/workers/chunks/dfa4be2e07cc4c0938b0.js +1 -0
- package/assets/esri/core/workers/chunks/e067cef3b3ac3af49b88.js +1 -0
- package/assets/esri/core/workers/chunks/e2775bcceb62fd0df41b.js +1 -0
- package/assets/esri/core/workers/chunks/{c81204ae663e58c7b689.js → e63ff8d57fd771413488.js} +1 -1
- package/assets/esri/core/workers/chunks/e9993d4f2bfdc434fbcc.js +1 -0
- package/assets/esri/core/workers/chunks/{54c149f90bf94b797b36.js → ed30f46236da29c15430.js} +1 -1
- package/assets/esri/core/workers/chunks/f016205a8f1fb665d6dd.js +1 -0
- package/assets/esri/core/workers/chunks/f02119812ec852edda57.js +1 -0
- package/assets/esri/core/workers/chunks/f272070f0878cd3e39a4.js +1 -0
- package/assets/esri/core/workers/chunks/f2cf05fbbb51d657d300.js +1 -0
- package/assets/esri/core/workers/chunks/{e4f4ad67d778dea5b956.js → f4f6f4933ca58438d7bc.js} +1 -1
- package/assets/esri/core/workers/chunks/fdc3d97510c6d43a8882.js +1 -0
- package/assets/esri/core/workers/chunks/fef135e55706d84d1947.js +1 -0
- package/assets/esri/core/workers/chunks/ff4107b4fd3d3ce24e84.js +1 -0
- package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
- package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
- package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core-simd.wasm +0 -0
- package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core.wasm +0 -0
- package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +24 -0
- package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +49 -24
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_en.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_en.json +1 -1
- package/chunks/arcgis-knowledge-client-core-simd.js +1 -1
- package/chunks/arcgis-knowledge-client-core.js +1 -1
- package/chunks/lyr3DMain.js +1 -1
- package/chunks/lyr3DWorker.js +1 -1
- package/editing/sharedTemplates/SharedTemplate.js +1 -1
- package/editing/sharedTemplates/SharedTemplateMetadata.d.ts +4 -0
- package/editing/sharedTemplates/SharedTemplateMetadata.js +1 -1
- package/editing/templateUtils.js +5 -0
- package/geometry/operators/projectOperator.d.ts +4 -0
- package/geometry/operators/shapePreservingProjectOperator.d.ts +4 -0
- package/geometry/operators/support/GeographicTransformation.d.ts +4 -0
- package/geometry/operators/support/GeographicTransformation.js +1 -1
- package/geometry/operators/support/GeographicTransformationStep.d.ts +4 -0
- package/geometry/operators/support/geographicTransformationUtils.d.ts +4 -0
- package/geometry/support/GeographicTransformation.d.ts +2 -2
- package/geometry/support/GeographicTransformationStep.d.ts +2 -2
- package/interfaces.d.ts +522 -53
- package/layers/ILyr3DWasmPerSceneView.js +1 -1
- package/layers/LinkChartLayer.js +1 -1
- package/layers/Lyr3DWasmPerSceneView.js +1 -1
- package/networks/support/utils.js +1 -1
- package/package.json +1 -1
- package/rest/featureService/FeatureService.js +1 -1
- package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsConfiguration.d.ts +4 -0
- package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsConfiguration.js +5 -0
- package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsEntity.d.ts +4 -0
- package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsEntity.js +5 -0
- package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsPathFilter.d.ts +4 -0
- package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsPathFilter.js +5 -0
- package/rest/knowledgeGraph/toolService/findPaths/CIMKGTraversalDirection.d.ts +4 -0
- package/rest/knowledgeGraph/toolService/findPaths/CIMKGTraversalDirection.js +5 -0
- package/rest/knowledgeGraph/toolService/findPaths/FindPathsToolSettings.d.ts +4 -0
- package/rest/knowledgeGraph/toolService/findPaths/FindPathsToolSettings.js +5 -0
- package/rest/knowledgeGraphService.js +1 -1
- package/support/revision.js +1 -1
- package/undoredo/support/Services.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/layers/Lyr3DWasm.js +1 -1
- package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
- package/widgets/Editor/UpdateWorkflow.js +1 -1
- package/widgets/Editor/workflowUtils.js +1 -1
- package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/FeatureFormUtilityNetworkAssociationList.js +1 -1
- package/widgets/FeatureForm/UtilityNetworkAssociationInput.js +1 -1
- package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
- package/widgets/FeatureTemplates/TemplateItem.js +1 -1
- package/widgets/FeatureTemplates/featureTemplatesUtils.js +1 -1
- package/widgets/FeatureTemplates.js +1 -1
- package/widgets/LayerList/LayerListItem.js +1 -1
- package/widgets/Locate.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerVisibleElements.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/sketch/MeasurementAdapter.js +1 -1
- package/widgets/OrientedImageryViewer/components/ImageAreaMeasurement.js +5 -0
- package/widgets/OrientedImageryViewer/components/ImageDistanceMeasurement.js +5 -0
- package/widgets/OrientedImageryViewer/components/ImageMeasurement.js +5 -0
- package/widgets/OrientedImageryViewer/css.js +1 -1
- package/widgets/OrientedImageryViewer/imageMeasurementUtils.js +1 -1
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeature.js +5 -0
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeaturesDrillIn.js +5 -0
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
- package/widgets/UtilityNetworkTrace.js +1 -1
- package/widgets/support/UtilityNetworkAssociations/UtilityNetworkAssociationList.js +1 -1
- package/widgets/support/UtilityNetworkAssociations/UtilityNetworkAssociationsViewModel.js +1 -1
- package/assets/esri/core/workers/chunks/0651586dc7bd2e8b34db.js +0 -1
- package/assets/esri/core/workers/chunks/077070295499b9bfabb6.js +0 -1
- package/assets/esri/core/workers/chunks/090cfc7f088a729afd47.js +0 -1
- package/assets/esri/core/workers/chunks/0d387baa64a89f88b1de.js +0 -1
- package/assets/esri/core/workers/chunks/134de9fa142129a43b1e.js +0 -1
- package/assets/esri/core/workers/chunks/16fa0a5f73ab67a8d3e4.js +0 -1
- package/assets/esri/core/workers/chunks/1797f62e9bf8f1ac8d13.js +0 -1
- package/assets/esri/core/workers/chunks/182722e2fe0a35c4d8db.js +0 -1
- package/assets/esri/core/workers/chunks/1b3215f3290fb2f07ab8.js +0 -1
- package/assets/esri/core/workers/chunks/1f4dd96aacf8c40a1120.js +0 -1
- package/assets/esri/core/workers/chunks/22748779ca94eda44de5.js +0 -1
- package/assets/esri/core/workers/chunks/2427a01678f3d9fbf30b.js +0 -1
- package/assets/esri/core/workers/chunks/33a13544b9e5f4f20bce.js +0 -1
- package/assets/esri/core/workers/chunks/423329432fbf007c620b.js +0 -1
- package/assets/esri/core/workers/chunks/467bd3c0da9518a0058b.js +0 -1
- package/assets/esri/core/workers/chunks/4c1d11a91291b28a73be.js +0 -1
- package/assets/esri/core/workers/chunks/51fbbd082ca78e4417d9.js +0 -1
- package/assets/esri/core/workers/chunks/5c05c899f7e6f764fedd.js +0 -1
- package/assets/esri/core/workers/chunks/6c1470dc0bd4389d1a2d.js +0 -1
- package/assets/esri/core/workers/chunks/6e804ee2d96d4de85a5f.js +0 -1
- package/assets/esri/core/workers/chunks/712f0dd46932c544df68.js +0 -1
- package/assets/esri/core/workers/chunks/71e88c90e9f9a9bddcd8.js +0 -1
- package/assets/esri/core/workers/chunks/74ba752dfab8ea5b6d2a.js +0 -314
- package/assets/esri/core/workers/chunks/79903647d4ed16d9a402.js +0 -1
- package/assets/esri/core/workers/chunks/7b4880b2dc6b01d70ccc.js +0 -1
- package/assets/esri/core/workers/chunks/7c98e4fcba1dc24eb788.js +0 -1
- package/assets/esri/core/workers/chunks/7d0fc25ce1f74adcfeb6.js +0 -1
- package/assets/esri/core/workers/chunks/8249351daa45ca82ca0c.js +0 -1
- package/assets/esri/core/workers/chunks/87ddc3d5d751d565cd97.js +0 -1
- package/assets/esri/core/workers/chunks/88bb55bca76f978c0aa3.js +0 -1
- package/assets/esri/core/workers/chunks/89198ca24466d939e4e8.js +0 -1
- package/assets/esri/core/workers/chunks/8cda8dbd95f0a78063a8.js +0 -1
- package/assets/esri/core/workers/chunks/8e0e5183c88a45fbfd8e.js +0 -1
- package/assets/esri/core/workers/chunks/90eea0c2435bb5d10460.js +0 -1
- package/assets/esri/core/workers/chunks/93c1541241f92fc07eaa.js +0 -1
- package/assets/esri/core/workers/chunks/964f2897794d8d71dcb7.js +0 -1
- package/assets/esri/core/workers/chunks/976daa00d35ee7f27a26.js +0 -1
- package/assets/esri/core/workers/chunks/99b4f146d0f1661a217c.js +0 -1
- package/assets/esri/core/workers/chunks/aa96a05b94ae642c1c9f.js +0 -1
- package/assets/esri/core/workers/chunks/b0055e7b2e840d478de8.js +0 -1
- package/assets/esri/core/workers/chunks/b1bf8ad629a6b8f4489a.js +0 -1
- package/assets/esri/core/workers/chunks/b1e3448ba51557ff6c13.js +0 -1
- package/assets/esri/core/workers/chunks/b30046a40bcfbec8abe4.js +0 -1
- package/assets/esri/core/workers/chunks/b538d02706a25bbbe2d0.js +0 -1
- package/assets/esri/core/workers/chunks/c436a112a3119ceabebf.js +0 -1
- package/assets/esri/core/workers/chunks/c690268f48bc84778b23.js +0 -1
- package/assets/esri/core/workers/chunks/c8a09db652389f0d254d.js +0 -1
- package/assets/esri/core/workers/chunks/c8a645601d041f411060.js +0 -1
- package/assets/esri/core/workers/chunks/cb3b7f83b3efb315bd14.js +0 -1
- package/assets/esri/core/workers/chunks/cdc5e4cd1214362e752a.js +0 -1
- package/assets/esri/core/workers/chunks/da5fc368eb5b3592d05e.js +0 -1
- package/assets/esri/core/workers/chunks/dae7e8357936466482fe.js +0 -1
- package/assets/esri/core/workers/chunks/dd935b6335c674b6f596.js +0 -1
- package/assets/esri/core/workers/chunks/ddd20894b5107b76b815.js +0 -1
- package/assets/esri/core/workers/chunks/df4d7f100222ea671730.js +0 -1
- package/assets/esri/core/workers/chunks/eb256e8488e341c4a6f2.js +0 -1
- package/assets/esri/core/workers/chunks/ebc0094355504ec09fb8.js +0 -1
- package/assets/esri/core/workers/chunks/f1b63f092e239f84b849.js +0 -1
- package/assets/esri/core/workers/chunks/f2126b79f41dc62cc576.js +0 -1
- package/assets/esri/core/workers/chunks/f3e0b0f07a622fcdd6ae.js +0 -1
- package/assets/esri/core/workers/chunks/f581aec77accce7411e0.js +0 -1
- package/assets/esri/core/workers/chunks/f877bcbd277a28154d82.js +0 -1
- package/assets/esri/core/workers/chunks/fa1c68f2ffcdff7986b6.js +0 -1
- package/assets/esri/core/workers/chunks/feeb36ffdffb227c4353.js +0 -1
- package/widgets/support/templateUtils.js +0 -5
- /package/assets/esri/core/workers/chunks/{9970e0e74cf2877a7ffc.js.LICENSE.txt → 486969dba1dc99402172.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[2311],{52106:(e,t,r)=>{r.d(t,{A:()=>v});var i,s=r(90237),n=r(59456),o=r(13874),a=r(61147),l=r(69540),c=r(51447),h=r(25482),d=r(53966),u=r(36708),f=r(24326),p=r(10107),_=(r(44208),r(87811),r(40608)),g=r(65864);function m(e){if(null==e)return null;const t={};for(const r in e){const i=e[r];i&&(t[r]=i.toJSON())}return 0!==Object.keys(t).length?t:null}let y=i=class extends(l.A.ClonableMixin(h.A)){constructor(e){super(e),this.isAggregate=!1,this.layer=null,this.origin=null,this.popupTemplate=null,this.sourceLayer=null,this._version=0,Object.defineProperty(this,"uid",{value:(0,f.c)(),configurable:!0}),Object.defineProperty(this,"_lastMeshTransform",{value:{},configurable:!0,writable:!0,enumerable:!1}),arguments.length>1&&(0,c.eF)(d.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 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 i({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){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},this._notifyLayer("attributes",void 0,t,e)}getObjectId(){return this.sourceLayer&&"objectIdField"in this.sourceLayer&&this.sourceLayer.objectIdField?this.getAttribute(this.sourceLayer.objectIdField):null}toJSON(){return{aggregateGeometries:m(this.aggregateGeometries),geometry:null!=this.geometry?this.geometry.toJSON():null,symbol:null!=this.symbol?this.symbol.toJSON():null,attributes:h.A.isSerializable(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,i){if(this._version++,!this.layer||!("graphicChanged"in this.layer))return;const s={graphic:this,property:e,oldValue:t,newValue:r};"origin-transform"===e&&(s.action=i),"attributes"===e&&(s.attributeName=i),this.layer.graphicChanged(s)}_watchMeshGeometryChanges(){this.addHandles([(0,u.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,u.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,s._)([(0,p.MZ)({value:null,json:{read:function(e){if(!e)return null;const t={};for(const r in e){const i=(0,g.rS)(e[r]);i&&(t[r]=i)}return 0!==Object.keys(t).length?t:null}}})],y.prototype,"aggregateGeometries",null),(0,s._)([(0,p.MZ)({value:null})],y.prototype,"attributes",null),(0,s._)([(0,p.MZ)({value:null,types:n.yR,json:{read:g.rS}})],y.prototype,"geometry",null),(0,s._)([(0,p.MZ)({type:Boolean})],y.prototype,"isAggregate",void 0),(0,s._)([(0,p.MZ)({clonable:"reference"})],y.prototype,"layer",void 0),(0,s._)([(0,p.MZ)({clonable:"reference"})],y.prototype,"origin",void 0),(0,s._)([(0,p.MZ)({type:o.A})],y.prototype,"popupTemplate",void 0),(0,s._)([(0,p.MZ)({clonable:"reference"})],y.prototype,"sourceLayer",void 0),(0,s._)([(0,p.MZ)({value:null,types:a.Es})],y.prototype,"symbol",null),(0,s._)([(0,p.MZ)({clonable:!1,json:{read:!1,write:!1}})],y.prototype,"_version",void 0),(0,s._)([(0,p.MZ)({type:Boolean,value:!0})],y.prototype,"visible",null),y=i=(0,s._)([(0,_.$)("esri.Graphic")],y);const v=y},13259:(e,t,r)=>{r.d(t,{H:()=>P,b:()=>C,c:()=>D,s:()=>E});var i=r(37585),s=r(48163),n=r(91829),o=r(79258),a=r(49255),l=r(76591),c=r(36782),h=r(47522),d=r(40268),u=r(63578),f=r(13755),p=r(93904),_=r(42398),g=r(35093),m=r(63365),y=r(26835),v=r(52587),x=r(20693),b=r(47286),w=r(81961),T=r(71988),A=r(20304),S=r(2597),O=r(85977),R=r(63761),I=r(59643),M=r(46540);const E={occludedFadeFactor:1};function C(e){const t=new O.N5,r=e.signedDistanceFieldEnabled;t.include(d.Q,e),t.vertex.include(l.rA,e);const{occlusionPass:s,output:C,oitPass:P}=e;if(s)return t.include(u.I,e),t;const{vertex:N,fragment:z}=t;t.include(v.Y6),t.include(_.A,e),t.include(c.g,e),t.include(f.y),z.include(y.W),z.include(m.a),t.varyings.add("vcolor","vec4"),t.varyings.add("vtc","vec2"),t.varyings.add("vsize","vec2");const B=C===a.V.Highlight,V=B&&e.occlusionTestEnabled;V&&t.varyings.add("voccluded","float"),N.uniforms.add(new T.E("viewport",((e,t)=>t.camera.fullViewport)),new b.G("screenOffset",((e,t)=>(0,i.hZ)(L,2*e.screenOffset[0]*t.camera.pixelRatio,2*e.screenOffset[1]*t.camera.pixelRatio))),new b.G("anchorPosition",(e=>D(e))),new T.E("materialColor",(e=>e.color)),new A.m("materialRotation",(e=>e.rotation))),(0,x.Nz)(N),r&&(N.uniforms.add(new T.E("outlineColor",(e=>e.outlineColor))),z.uniforms.add(new T.E("outlineColor",(e=>F(e)?e.outlineColor:n.uY)),new A.m("outlineSize",(e=>F(e)?e.outlineSize:0)))),e.horizonCullingEnabled&&N.uniforms.add(new w.V("pointDistanceSphere",((e,t)=>{const r=t.camera.eye,i=e.origin;return(0,n.fA)(i[0]-r[0],i[1]-r[1],i[2]-r[2],o.$O.radius)}))),e.pixelSnappingEnabled&&N.include(h.K),e.hasScreenSizePerspective&&((0,v.pM)(N),(0,v.OH)(N)),e.debugDrawLabelBorder&&t.varyings.add("debugBorderCoords","vec4"),t.attributes.add(M.r.UV0,"vec2"),t.attributes.add(M.r.COLOR,"vec4"),t.attributes.add(M.r.SIZE,"vec2"),t.attributes.add(M.r.ROTATION,"float"),t.attributes.add(M.r.FEATUREATTRIBUTE,"vec4"),N.code.add(e.horizonCullingEnabled?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)(e.hasScreenSizePerspective,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)(e.vvSize,S.H`inputSize *= vvScale(featureAttribute).xx;`)}
|
|
33
|
+
|
|
34
|
+
vec2 combinedSize = inputSize * pixelRatio;
|
|
35
|
+
vec4 quadOffset = vec4(0.0);
|
|
36
|
+
|
|
37
|
+
${(0,S.If)(e.occlusionTestEnabled,S.H`
|
|
38
|
+
bool visible = testHUDVisibility(posProj);
|
|
39
|
+
if (!visible) {
|
|
40
|
+
vtc = vec2(0.0);
|
|
41
|
+
${(0,S.If)(e.debugDrawLabelBorder,"debugBorderCoords = vec4(0.5, 0.5, 1.5 / combinedSize);")}
|
|
42
|
+
return;
|
|
43
|
+
}`)}
|
|
44
|
+
${(0,S.If)(V,S.H`voccluded = visible ? 0.0 : 1.0;`)}
|
|
45
|
+
`);const j=S.H`
|
|
46
|
+
vec2 uv01 = floor(uv0);
|
|
47
|
+
vec2 uv = uv0 - uv01;
|
|
48
|
+
quadOffset.xy = (uv01 - anchorPosition) * 2.0 * combinedSize;
|
|
49
|
+
|
|
50
|
+
${(0,S.If)(e.hasRotation,S.H`
|
|
51
|
+
float angle = radians(materialRotation + rotation);
|
|
52
|
+
float cosAngle = cos(angle);
|
|
53
|
+
float sinAngle = sin(angle);
|
|
54
|
+
mat2 rotate = mat2(cosAngle, -sinAngle, sinAngle, cosAngle);
|
|
55
|
+
|
|
56
|
+
quadOffset.xy = rotate * quadOffset.xy;
|
|
57
|
+
`)}
|
|
58
|
+
|
|
59
|
+
quadOffset.xy = (quadOffset.xy + screenOffsetScaled) / viewport.zw * posProj.w;
|
|
60
|
+
`,H=e.pixelSnappingEnabled?r?S.H`posProj = alignToPixelOrigin(posProj, viewport.zw) + quadOffset;`:S.H`posProj += quadOffset;
|
|
61
|
+
if (inputSize.x == size.x) {
|
|
62
|
+
posProj = alignToPixelOrigin(posProj, viewport.zw);
|
|
63
|
+
}`:S.H`posProj += quadOffset;`;N.main.add(S.H`
|
|
64
|
+
${j}
|
|
65
|
+
${e.vvColor?"vcolor = interpolateVVColor(featureAttribute.y) * materialColor;":"vcolor = color / 255.0 * materialColor;"}
|
|
66
|
+
|
|
67
|
+
${(0,S.If)(C===a.V.ObjectAndLayerIdColor,S.H`vcolor.a = 1.0;`)}
|
|
68
|
+
|
|
69
|
+
bool alphaDiscard = vcolor.a < ${S.H.float(g.Q)};
|
|
70
|
+
${(0,S.If)(r,`alphaDiscard = alphaDiscard && outlineColor.a < ${S.H.float(g.Q)};`)}
|
|
71
|
+
if (alphaDiscard) {
|
|
72
|
+
// "early discard" if both symbol color (= fill) and outline color (if applicable) are transparent
|
|
73
|
+
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
74
|
+
return;
|
|
75
|
+
} else {
|
|
76
|
+
${H}
|
|
77
|
+
gl_Position = posProj;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
vtc = uv;
|
|
81
|
+
|
|
82
|
+
${(0,S.If)(e.debugDrawLabelBorder,S.H`debugBorderCoords = vec4(uv01, 1.5 / combinedSize);`)}
|
|
83
|
+
vsize = inputSize;
|
|
84
|
+
`),z.uniforms.add(new R.N("tex",(e=>e.texture))),e.occludedFragmentFade&&(z.uniforms.add(new R.N("depthMap",((e,t)=>t.mainDepth))),z.uniforms.add(new A.m("fadeFactor",(()=>E.occludedFadeFactor))));const U=e.debugDrawLabelBorder?S.H`(isBorder > 0.0 ? 0.0 : ${S.H.float(g.Q)})`:S.H.float(g.Q),G=S.H`
|
|
85
|
+
${(0,S.If)(e.debugDrawLabelBorder,S.H`float isBorder = float(any(lessThan(debugBorderCoords.xy, debugBorderCoords.zw)) || any(greaterThan(debugBorderCoords.xy, 1.0 - debugBorderCoords.zw)));`)}
|
|
86
|
+
|
|
87
|
+
${(0,S.If)(e.sampleSignedDistanceFieldTexelCenter,S.H`
|
|
88
|
+
float txSize = float(textureSize(tex, 0).x);
|
|
89
|
+
float texelSize = 1.0 / txSize;
|
|
90
|
+
|
|
91
|
+
// Calculate how much we have to add/subtract to/from each texel to reach the size of an onscreen pixel
|
|
92
|
+
vec2 scaleFactor = (vsize - txSize) * texelSize;
|
|
93
|
+
vec2 samplePos = vtc + (vec2(1.0, -1.0) * texelSize) * scaleFactor;`,S.H`vec2 samplePos = vtc;`)}
|
|
94
|
+
|
|
95
|
+
${r?S.H`
|
|
96
|
+
vec4 fillPixelColor = vcolor;
|
|
97
|
+
|
|
98
|
+
// Get distance and map it into [-0.5, 0.5]
|
|
99
|
+
float d = rgbaTofloat(texture(tex, samplePos)) - 0.5;
|
|
100
|
+
|
|
101
|
+
// Distance in output units (i.e. pixels)
|
|
102
|
+
float dist = d * vsize.x;
|
|
103
|
+
|
|
104
|
+
// Create smooth transition from the icon into its outline
|
|
105
|
+
float fillAlphaFactor = clamp(0.5 - dist, 0.0, 1.0);
|
|
106
|
+
fillPixelColor.a *= fillAlphaFactor;
|
|
107
|
+
|
|
108
|
+
if (outlineSize > 0.25) {
|
|
109
|
+
vec4 outlinePixelColor = outlineColor;
|
|
110
|
+
float clampedOutlineSize = min(outlineSize, 0.5*vsize.x);
|
|
111
|
+
|
|
112
|
+
// Create smooth transition around outline
|
|
113
|
+
float outlineAlphaFactor = clamp(0.5 - (abs(dist) - 0.5*clampedOutlineSize), 0.0, 1.0);
|
|
114
|
+
outlinePixelColor.a *= outlineAlphaFactor;
|
|
115
|
+
|
|
116
|
+
if (
|
|
117
|
+
outlineAlphaFactor + fillAlphaFactor < ${U} ||
|
|
118
|
+
fillPixelColor.a + outlinePixelColor.a < ${S.H.float(g.Q)}
|
|
119
|
+
) {
|
|
120
|
+
discard;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// perform un-premultiplied over operator (see https://en.wikipedia.org/wiki/Alpha_compositing#Description)
|
|
124
|
+
float compositeAlpha = outlinePixelColor.a + fillPixelColor.a * (1.0 - outlinePixelColor.a);
|
|
125
|
+
vec3 compositeColor = vec3(outlinePixelColor) * outlinePixelColor.a +
|
|
126
|
+
vec3(fillPixelColor) * fillPixelColor.a * (1.0 - outlinePixelColor.a);
|
|
127
|
+
|
|
128
|
+
${(0,S.If)(!B,S.H`fragColor = vec4(compositeColor, compositeAlpha);`)}
|
|
129
|
+
} else {
|
|
130
|
+
if (fillAlphaFactor < ${U}) {
|
|
131
|
+
discard;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
${(0,S.If)(!B,S.H`fragColor = premultiplyAlpha(fillPixelColor);`)}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// visualize SDF:
|
|
138
|
+
// 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);
|
|
139
|
+
`:S.H`
|
|
140
|
+
vec4 texColor = texture(tex, vtc, -0.5);
|
|
141
|
+
if (texColor.a < ${U}) {
|
|
142
|
+
discard;
|
|
143
|
+
}
|
|
144
|
+
${(0,S.If)(!B,S.H`fragColor = texColor * premultiplyAlpha(vcolor);`)}
|
|
145
|
+
`}
|
|
146
|
+
|
|
147
|
+
${(0,S.If)(e.occludedFragmentFade&&!B,S.H`
|
|
148
|
+
float zSample = texelFetch(depthMap, ivec2(gl_FragCoord.xy), 0).x;
|
|
149
|
+
if (zSample < gl_FragCoord.z) {
|
|
150
|
+
fragColor *= fadeFactor;
|
|
151
|
+
}
|
|
152
|
+
`)}
|
|
153
|
+
|
|
154
|
+
${(0,S.If)(!B&&e.debugDrawLabelBorder,S.H`fragColor = mix(fragColor, vec4(1.0, 0.0, 1.0, 1.0), isBorder * 0.5);`)}
|
|
155
|
+
`;switch(C){case a.V.Color:case a.V.ColorEmission:t.outputs.add("fragColor","vec4",0),C===a.V.ColorEmission&&t.outputs.add("fragEmission","vec4",1),P===I.Y.ColorAlpha&&t.outputs.add("fragAlpha","float",C===a.V.ColorEmission?2:1),z.main.add(S.H`
|
|
156
|
+
${G}
|
|
157
|
+
${(0,S.If)(P===I.Y.FrontFace,S.H`fragColor.rgb /= fragColor.a;`)}
|
|
158
|
+
${(0,S.If)(C===a.V.ColorEmission,S.H`fragEmission = vec4(0.0);`)}
|
|
159
|
+
${(0,S.If)(P===I.Y.ColorAlpha,S.H`fragAlpha = fragColor.a;`)}`);break;case a.V.ObjectAndLayerIdColor:z.main.add(S.H`
|
|
160
|
+
${G}
|
|
161
|
+
outputObjectAndLayerIdColor();`);break;case a.V.Highlight:t.include(p.Q,e),z.main.add(S.H`
|
|
162
|
+
${G}
|
|
163
|
+
outputHighlight(${(0,S.If)(V,S.H`voccluded == 1.0`,S.H`false`)});`)}return t}function F(e){return e.outlineColor[3]>0&&e.outlineSize>0}function D(e,t=L){return e.textureIsSignedDistanceField?function(e,t,r){null!=t?(0,i.hZ)(r,e[0]*(t[2]-t[0])+t[0],e[1]*(t[3]-t[1])+t[1]):(0,i.hZ)(r,0,0)}(e.anchorPosition,e.distanceFieldBoundingBox,t):(0,i.C)(t,e.anchorPosition),t}const L=(0,s.vt)(),P=Object.freeze(Object.defineProperty({__proto__:null,build:C,calculateAnchorPosForRendering:D,shaderSettings:E},Symbol.toStringTag,{value:"Module"}))},66344:(e,t,r)=>{r.d(t,{q:()=>l});var i,s,n=r(3694);(s=i||(i={}))[s.ALL=0]="ALL",s[s.SOME=1]="SOME";class o{get size(){return this._size}constructor(e=10485760){this._maxSize=e,this._db=new Map,this._size=0,this._hit=0,this._miss=0,this._removeFuncs=new n.A,this._users=new n.A}destroy(){this.clearAll(),this._removeFuncs.clear(),this._users.clear()}register(e){this._users.push(e)}deregister(e){this._users.removeUnordered(e)}registerRemoveFunc(e,t){this._removeFuncs.push([e,t])}deregisterRemoveFunc(e){this._removeFuncs.filterInPlace((t=>t[0]!==e))}get maxSize(){return this._maxSize}set maxSize(e){this._maxSize=Math.max(e,-1),this._checkSize()}getSize(e,t){const r=this._db.get(e.id+t);return r?.size??0}put(e,t,r,s,n){t=e.id+t;const o=this._db.get(t);if(o&&(this._size-=o.size,e.size-=o.size,this._db.delete(t),o.entry!==r&&this._notifyRemove(t,o.entry,o.size,i.ALL)),s>this._maxSize)return void this._notifyRemove(t,r,s,i.ALL);if(void 0===r)return void console.warn("Refusing to cache undefined entry ");if(!s||s<0)return console.warn(`Refusing to cache entry with size ${s} for key ${t}`),void this._notifyRemove(t,r,0,i.ALL);const l=1+Math.max(n,-4)- -3;this._db.set(t,new a(r,s,l)),this._size+=s,e.size+=s,this._checkSize()}updateSize(e,t,r,s){t=e.id+t;const n=this._db.get(t);if(n&&n.entry===r){for(this._size-=n.size,e.size-=n.size;s>this._maxSize;){const e=this._notifyRemove(t,r,s,i.SOME);if(!(null!=e&&e>0))return void this._db.delete(t);s=e}n.size=s,this._size+=s,e.size+=s,this._checkSize()}}pop(e,t){t=e.id+t;const r=this._db.get(t);if(r)return this._size-=r.size,e.size-=r.size,this._db.delete(t),++this._hit,r.entry;++this._miss}get(e,t){t=e.id+t;const r=this._db.get(t);if(void 0!==r)return this._db.delete(t),r.lives=r.lifetime,this._db.set(t,r),++this._hit,r.entry;++this._miss}peek(e,t){const r=this._db.get(e.id+t);return r?++this._hit:++this._miss,r?.entry}get performanceInfo(){const e={Size:Math.round(this._size/1048576)+"/"+Math.round(this._maxSize/1048576)+"MB","Hit rate":Math.round(100*this._getHitRate())+"%",Entries:this._db.size.toString()},t={},r=new Array;this._db.forEach(((e,i)=>{const s=e.lifetime;r[s]=(r[s]||0)+e.size,this._users.forAll((r=>{const{id:s,name:n}=r;if(i.startsWith(s)){const r=t[n]||0;t[n]=r+e.size}}))}));const i={};this._users.forAll((e=>{const r=e.name;if("hitRate"in e&&"number"==typeof e.hitRate&&!isNaN(e.hitRate)&&e.hitRate>0){const s=t[r]||0;t[r]=s,i[r]=Math.round(100*e.hitRate)+"%"}else i[r]="0%"}));const s=Object.keys(t);s.sort(((e,r)=>t[r]-t[e])),s.forEach((r=>e[r]=Math.round(t[r]/2**20)+"MB / "+i[r]));for(let t=r.length-1;t>=0;--t){const i=r[t];i&&(e["Priority "+(t+-3-1)]=Math.round(i/this._size*100)+"%")}return e}resetStats(){this._hit=this._miss=0,this._users.forAll((e=>e.resetHitRate()))}clear(e){const t=e.id;this._db.forEach(((e,r)=>{r.startsWith(t)&&(this._size-=e.size,this._db.delete(r),this._notifyRemove(r,e.entry,e.size,i.ALL))})),e.size=0}clearAll(){this._db.forEach(((e,t)=>this._notifyRemove(t,e.entry,e.size,i.ALL))),this._users.forAll((e=>e.size=0)),this._size=0,this._db.clear()}_getHitRate(){return this._hit/(this._hit+this._miss)}_notifyRemove(e,t,r,i){let s;return this._removeFuncs.some((n=>{if(e.startsWith(n[0])){const e=n[1](t,i,r);return"number"==typeof e&&(s=e),!0}return!1})),s}_checkSize(){this._users.forAll((e=>this._checkSizeLimits(e))),this._checkSizeLimits()}_checkSizeLimits(e){const t=e??this;if(t.maxSize<0||t.size<=t.maxSize)return;const r=e?.id;let i=!0;for(;i;){i=!1;for(const[s,n]of this._db)if(0===n.lifetime&&(!r||s.startsWith(r))){if(this._purgeItem(s,n,e),t.size<=.9*t.maxSize)return;i||=this._db.has(s)}}for(const[i,s]of this._db)if((!r||i.startsWith(r))&&(this._purgeItem(i,s,e),t.size<=.9*t.maxSize))return}_purgeItem(e,t,r=this._users.find((t=>e.startsWith(t.id)))){if(this._db.delete(e),t.lives<=1){this._size-=t.size,r&&(r.size-=t.size);const s=this._notifyRemove(e,t.entry,t.size,i.SOME);null!=s&&s>0&&(this._size+=s,r&&(r.size+=s),t.lives=t.lifetime,t.size=s,this._db.set(e,t))}else--t.lives,this._db.set(e,t)}}class a{constructor(e,t,r){this.entry=e,this.size=t,this.lifetime=r,this.lives=r}}class l{constructor(e,t){this._storage=new o,this.id="",this.name="",this.size=0,this._storage.maxSize=e,this._storage.register(this),t&&this._storage.registerRemoveFunc("",t)}destroy(){this._storage.deregister(this),this._storage.destroy()}put(e,t,r=1){this._storage.put(this,e,t,r,1)}pop(e){return this._storage.pop(this,e)}get(e){return this._storage.get(this,e)}clear(){this._storage.clearAll()}get maxSize(){return this._storage.maxSize}set maxSize(e){this._storage.maxSize=e}resetHitRate(){}}},60999:(e,t,r)=>{r.d(t,{DZ:()=>p,Ke:()=>f,Tj:()=>h,UT:()=>_,jJ:()=>c});var i=r(90237),s=r(69622),n=r(97768),o=r(74887),a=r(10107),l=r(40608);function c(e,t,r){return(0,o.Lx)(e.map(((e,i)=>t.apply(r,[e,i]))))}async function h(e,t,r){return(await(0,o.Lx)(e.map(((e,i)=>t.apply(r,[e,i]))))).map((e=>e.value))}function d(e){return{ok:!0,value:e}}function u(e){return{ok:!1,error:e}}async function f(e){if(null==e)return{ok:!1,error:new Error("no promise provided")};try{return d(await e)}catch(e){return u(e)}}async function p(e){try{return d(await e)}catch(e){return(0,o.QP)(e),u(e)}}function _(e,t){return new g(e,t)}let g=class extends s.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,n.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=d(e),this._cleanup()}),(e=>{this._result=u(e),this._cleanup()})),this._abortHandle=(0,o.u7)(t,this.abort)}normalizeCtorArgs(){return{}}destroy(){this.abort()}_cleanup(){this._abortHandle=(0,n.xt)(this._abortHandle),this._abortController=null}};(0,i._)([(0,a.MZ)()],g.prototype,"value",null),(0,i._)([(0,a.MZ)()],g.prototype,"error",null),(0,i._)([(0,a.MZ)()],g.prototype,"finished",null),(0,i._)([(0,a.MZ)()],g.prototype,"promise",void 0),(0,i._)([(0,a.MZ)()],g.prototype,"_result",void 0),g=(0,i._)([(0,l.$)("esri.core.asyncUtils.ReactiveTask")],g)},72385:(e,t,r)=>{function i(){return new Float32Array(3)}function s(e){const t=new Float32Array(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function n(e,t,r){const i=new Float32Array(3);return i[0]=e,i[1]=t,i[2]=r,i}function o(){return i()}function a(){return n(1,1,1)}function l(){return n(1,0,0)}function c(){return n(0,1,0)}function h(){return n(0,0,1)}r.d(t,{fA:()=>n,o8:()=>s,vt:()=>i});const d=o(),u=a(),f=l(),p=c(),_=h();Object.freeze(Object.defineProperty({__proto__:null,ONES:u,UNIT_X:f,UNIT_Y:p,UNIT_Z:_,ZEROS:d,clone:s,create:i,createView:function(e,t){return new Float32Array(e,t,3)},fromValues:n,ones:a,unitX:l,unitY:c,unitZ:h,zeros:o},Symbol.toStringTag,{value:"Module"}))},75503:(e,t,r)=>{r.d(t,{E:()=>S,w:()=>a});var i=r(4576),s=r(21818),n=(r(44208),r(3694)),o=r(11006);class a{constructor(e=9,t){this._compareMinX=u,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(),b.prune(),w.prune(),T.prune(),A.prune()}all(e){l(this._data,e)}search(e,t){let r=this._data;const i=this._toBBox;if(v(e,r))for(b.clear();r;){for(let s=0,n=r.children.length;s<n;s++){const n=r.children[s],o=r.leaf?i(n):n;v(e,o)&&(r.leaf?t(n):y(e,o)?l(n,t):b.push(n))}r=b.pop()}}collides(e){let t=this._data;const r=this._toBBox;if(!v(e,t))return!1;for(b.clear();t;){for(let i=0,s=t.children.length;i<s;i++){const s=t.children[i],n=t.leaf?r(s):s;if(v(e,n)){if(t.leaf||y(e,n))return!0;b.push(s)}}t=b.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 R([]),this}remove(e){if(!e)return this;let t,r=this._data,n=null,o=0,a=!1;const l=this._toBBox(e);for(T.clear(),A.clear();r||T.length>0;){if(r||(r=T.pop(),n=T.data[T.length-1],o=A.pop()??0,a=!0),r.leaf&&(t=(0,i.qh)(r.children,(0,s.zI)(e),r.children.length,r.indexHint),-1!==t))return r.children.splice(t,1),T.push(r),this._condense(T),this;a||r.leaf||!y(r,l)?n?(o++,r=n.children[o],a=!1):r=null:(T.push(r),A.push(o),o=0,n=r,r=r.children[0])}return this}toJSON(){return this._data}fromJSON(e){return this._data=e,this}_build(e,t,r,i){const s=r-t+1;let n=this._maxEntries;if(s<=n){const i=new R(e.slice(t,r+1));return c(i,this._toBBox),i}i||(i=Math.ceil(Math.log(s)/Math.log(n)),n=Math.ceil(s/n**(i-1)));const o=new I([]);o.height=i;const a=Math.ceil(s/n),l=a*Math.ceil(Math.sqrt(n));x(e,t,r,l,this._compareMinX);for(let s=t;s<=r;s+=l){const t=Math.min(s+l-1,r);x(e,s,t,a,this._compareMinY);for(let r=s;r<=t;r+=a){const s=Math.min(r+a-1,t);o.children.push(this._build(e,r,s,i-1))}}return c(o,this._toBBox),o}_insert(e,t,r){const i=this._toBBox,s=r?e:i(e);T.clear();const n=function(e,t,r,i){for(;i.push(t),!0!==t.leaf&&i.length-1!==r;){let r,i=1/0,s=1/0;for(let n=0,o=t.children.length;n<o;n++){const o=t.children[n],a=p(o),l=g(e,o)-a;l<s?(s=l,i=a<i?a:i,r=o):l===s&&a<i&&(i=a,r=o)}t=r||t.children[0]}return t}(s,this._data,t,T);for(n.children.push(e),d(n,s);t>=0&&T.data[t].children.length>this._maxEntries;)this._split(T,t),t--;!function(e,t,r){for(let i=r;i>=0;i--)d(t.data[i],e)}(s,T,t)}_split(e,t){const r=e.data[t],i=r.children.length,s=this._minEntries;this._chooseSplitAxis(r,s,i);const n=this._chooseSplitIndex(r,s,i);if(!n)return;const o=r.children.splice(n,r.children.length-n),a=r.leaf?new R(o):new I(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 I([e,t]),this._data.height=e.height+1,c(this._data,this._toBBox)}_chooseSplitIndex(e,t,r){let i,s,n;i=s=1/0;for(let o=t;o<=r-t;o++){const t=h(e,0,o,this._toBBox),a=h(e,o,r,this._toBBox),l=m(t,a),c=p(t)+p(a);l<i?(i=l,n=o,s=c<s?c:s):l===i&&c<s&&(s=c,n=o)}return n}_chooseSplitAxis(e,t,r){const i=e.leaf?this._compareMinX:u,s=e.leaf?this._compareMinY:f;this._allDistMargin(e,t,r,i)<this._allDistMargin(e,t,r,s)&&e.children.sort(i)}_allDistMargin(e,t,r,i){e.children.sort(i);const s=this._toBBox,n=h(e,0,t,s),o=h(e,r-t,r,s);let a=_(n)+_(o);for(let i=t;i<r-t;i++){const t=e.children[i];d(n,e.leaf?s(t):t),a+=_(n)}for(let i=r-t-1;i>=t;i--){const t=e.children[i];d(o,e.leaf?s(t):t),a+=_(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 s=e.data[t-1],n=s.children;n.splice((0,i.qh)(n,r,n.length,s.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(w.clear();r;){if(!0===r.leaf)for(const e of r.children)t((0,s.zI)(e));else w.pushArray(r.children);r=w.pop()??null}}function c(e,t){h(e,0,e.children.length,t,e)}function h(e,t,r,i,s){s||(s=new R([])),s.minX=1/0,s.minY=1/0,s.maxX=-1/0,s.maxY=-1/0;for(let n,o=t;o<r;o++)n=e.children[o],d(s,e.leaf?i(n):n);return s}function d(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 u(e,t){return e.minX-t.minX}function f(e,t){return e.minY-t.minY}function p(e){return(e.maxX-e.minX)*(e.maxY-e.minY)}function _(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 m(e,t){const r=Math.max(e.minX,t.minX),i=Math.max(e.minY,t.minY),s=Math.min(e.maxX,t.maxX),n=Math.min(e.maxY,t.maxY);return Math.max(0,s-r)*Math.max(0,n-i)}function y(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 x(e,t,r,i,s){const n=[t,r];for(;n.length;){const t=n.pop(),r=n.pop();if(t-r<=i)continue;const a=r+Math.ceil((t-r)/i/2)*i;(0,o.q)(e,a,r,t,s),n.push(r,a,a,t)}}const b=new n.A,w=new n.A,T=new n.A,A=new n.A({deallocator:void 0});class S{constructor(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0}}class O extends S{constructor(){super(...arguments),this.height=1,this.indexHint=new i.vW}}class R extends O{constructor(e){super(),this.children=e,this.leaf=!0}}class I extends O{constructor(e){super(),this.children=e,this.leaf=!1}}},51624:(e,t,r)=>{r.d(t,{A:()=>d});var i,s,n=r(44208),o=r(69397),a=r(93687);(s=i||(i={}))[s.varint=0]="varint",s[s.fixed64=1]="fixed64",s[s.delimited=2]="delimited",s[s.fixed32=5]="fixed32",s[s.unknown=99]="unknown";const l=4294967296,c=new TextDecoder("utf-8"),h=(0,n.A)("safari")||(0,n.A)("ios")?6:(0,n.A)("ff")?12:32;class d{constructor(e,t,r=0,s=(e?e.byteLength:0)){this._tag=0,this._dataType=i.unknown,this._init(e,t,r,s)}_init(e,t,r,i){this._data=e,this._dataView=t,this._pos=r,this._end=i}get usedMemory(){return 64+(0,o.Qf)(this._data)}asUnsafe(){return this}clone(){return new d(this._data,this._dataView,this._pos,this._end)}pos(){return this._pos}move(e){this._pos=e}nextTag(e){for(;;){if(this._pos===this._end)return!1;const t=this._decodeVarint();if(this._tag=t>>3,this._dataType=7&t,!e||e===this._tag)break;this.skip()}return!0}next(){if(this._pos===this._end)return!1;const e=this._decodeVarint();return this._tag=e>>3,this._dataType=7&e,!0}empty(){return this._pos>=this._end}tag(){return this._tag}getInt32(){return this._decodeVarint()}getInt64(){return this._decodeVarint()}getUInt32(){let e=4294967295;if(e=(127&this._data[this._pos])>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<7)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<14)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<21)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(15&this._data[this._pos])<<28)>>>0,this._data[this._pos++]<128)return e;throw new Error("Varint overflow")}getUInt64(){return this._decodeVarint()}getSInt32(){const e=this.getUInt32();return e>>>1^-(1&e)}getSInt64(){return this._decodeSVarint()}getBool(){const e=0!==this._data[this._pos];return this._skip(1),e}getEnum(){return this._decodeVarint()}getFixed64(){const e=this._dataView,t=this._pos,r=e.getUint32(t,!0)+e.getUint32(t+4,!0)*l;return this._skip(8),r}getSFixed64(){const e=this._dataView,t=this._pos,r=e.getUint32(t,!0)+e.getInt32(t+4,!0)*l;return this._skip(8),r}getDouble(){const e=this._dataView.getFloat64(this._pos,!0);return this._skip(8),e}getFixed32(){const e=this._dataView.getUint32(this._pos,!0);return this._skip(4),e}getSFixed32(){const e=this._dataView.getInt32(this._pos,!0);return this._skip(4),e}getFloat(){const e=this._dataView.getFloat32(this._pos,!0);return this._skip(4),e}getString(){const e=this._getLength(),t=this._pos,r=this._toString(this._data,t,t+e);return this._skip(e),r}getBytes(){const e=this._getLength(),t=this._pos,r=this._toBytes(this._data,t,t+e);return this._skip(e),r}getLength(){return this._getLengthUnsafe()}processMessageWithArgs(e,t,r,i){const s=this.getMessage(),n=e(s,t,r,i);return s.release(),n}processMessage(e){const t=this.getMessage(),r=e(t);return t.release(),r}getMessage(){const e=this._getLength(),t=d.pool.acquire();return t._init(this._data,this._dataView,this._pos,this._pos+e),this._skip(e),t}release(){d.pool.release(this)}dataType(){return this._dataType}skip(){switch(this._dataType){case i.varint:this._decodeVarint();break;case i.fixed64:this._skip(8);break;case i.delimited:this._skip(this._getLength());break;case i.fixed32:this._skip(4);break;default:throw new Error("Invalid data type!")}}skipLen(e){this._skip(e)}_skip(e){if(this._pos+e>this._end)throw new Error("Attempt to skip past the end of buffer!");this._pos+=e}_decodeVarint(){const e=this._data;let t=this._pos,r=0,i=0;if(this._end-t>=10)do{if(i=e[t++],r|=127&i,!(128&i))break;if(i=e[t++],r|=(127&i)<<7,!(128&i))break;if(i=e[t++],r|=(127&i)<<14,!(128&i))break;if(i=e[t++],r|=(127&i)<<21,!(128&i))break;if(i=e[t++],r+=268435456*(127&i),!(128&i))break;if(i=e[t++],r+=34359738368*(127&i),!(128&i))break;if(i=e[t++],r+=4398046511104*(127&i),!(128&i))break;if(i=e[t++],r+=562949953421312*(127&i),!(128&i))break;if(i=e[t++],r+=72057594037927940*(127&i),!(128&i))break;if(i=e[t++],r+=0x8000000000000000*(127&i),!(128&i))break;throw new Error("Varint too long!")}while(0);else{let s=1;for(;t!==this._end&&(i=e[t],128&i);)++t,r+=(127&i)*s,s*=128;if(t===this._end)throw new Error("Varint overrun!");++t,r+=i*s}return this._pos=t,r}_decodeSVarint(){const e=this._data;let t,r=0,i=0;const s=1&e[this._pos];if(i=e[this._pos++],r|=127&i,!(128&i))return s?-(r+1)/2:r/2;if(i=e[this._pos++],r|=(127&i)<<7,!(128&i))return s?-(r+1)/2:r/2;if(i=e[this._pos++],r|=(127&i)<<14,!(128&i))return s?-(r+1)/2:r/2;if(i=e[this._pos++],r|=(127&i)<<21,!(128&i))return s?-(r+1)/2:r/2;if(i=e[this._pos++],r+=268435456*(127&i),!(128&i))return s?-(r+1)/2:r/2;if(i=e[this._pos++],r+=34359738368*(127&i),!(128&i))return s?-(r+1)/2:r/2;if(i=e[this._pos++],r+=4398046511104*(127&i),!(128&i))return s?-(r+1)/2:r/2;if(t=BigInt(r),i=e[this._pos++],t+=0x2000000000000n*BigInt(127&i),!(128&i))return Number(s?-(t+1n)/2n:t/2n);if(i=e[this._pos++],t+=0x100000000000000n*BigInt(127&i),!(128&i))return Number(s?-(t+1n)/2n:t/2n);if(i=e[this._pos++],t+=0x8000000000000000n*BigInt(127&i),!(128&i))return Number(s?-(t+1n)/2n:t/2n);throw new Error("Varint too long!")}_getLength(){if(this._dataType!==i.delimited)throw new Error("Not a delimited data type!");return this._decodeVarint()}_getLengthUnsafe(){return this.getUInt32()}_toString(e,t,r){if((r=Math.min(this._end,r))-t>h){const i=e.subarray(t,r);return c.decode(i)}let i="",s="";for(let n=t;n<r;++n){const t=e[n];128&t?s+="%"+t.toString(16):(i+=decodeURIComponent(s)+String.fromCharCode(t),s="")}return s.length&&(i+=decodeURIComponent(s)),i}_toBytes(e,t,r){return r=Math.min(this._end,r),new Uint8Array(e.buffer,t,r-t)}}d.pool=new a.A(d,void 0,(e=>{e._data=null,e._dataView=null}))},95696:(e,t,r)=>{r.d(t,{A:()=>d});var i,s=r(90237),n=r(69540),o=r(25482),a=r(10107),l=(r(44208),r(53966),r(87811),r(93223)),c=r(40608);let h=i=class extends(n.A.ClonableMixin(o.A)){constructor(e){super(e),this.type="georeferenced",this.origin=null}};h.absolute=new i,(0,s._)([(0,l.e)({georeferenced:"georeferenced"},{readOnly:!0})],h.prototype,"type",void 0),(0,s._)([(0,a.MZ)({type:[Number],nonNullable:!1,json:{write:!0}})],h.prototype,"origin",void 0),h=i=(0,s._)([(0,c.$)("esri.geometry.support.MeshGeoreferencedVertexSpace")],h);const d=h},18251:(e,t,r)=>{r.d(t,{A:()=>d});var i=r(90237),s=r(69540),n=r(25482),o=r(10107),a=(r(44208),r(53966),r(87811),r(93223)),l=r(40608),c=r(51850);let h=class extends(s.A.ClonableMixin(n.A)){constructor(e){super(e),this.type="local",this.origin=(0,c.vt)()}};(0,i._)([(0,a.e)({local:"local"},{readOnly:!0})],h.prototype,"type",void 0),(0,i._)([(0,o.MZ)({type:[Number],nonNullable:!0,json:{write:!0}})],h.prototype,"origin",void 0),h=(0,i._)([(0,l.$)("esri.geometry.support.MeshLocalVertexSpace")],h);const d=h},82919:(e,t,r)=>{r.d(t,{C:()=>m,vt:()=>g,ui:()=>y,m7:()=>v});var i=r(4341),s=r(58083),n=r(38954),o=r(51850),a=r(87317),l=r(91829),c=r(71351);function h(e){return e?{ray:(0,c.vt)(e.ray),c0:e.c0,c1:e.c1}:{ray:(0,c.vt)(),c0:0,c1:Number.MAX_VALUE}}new i.I((()=>h()));var d,u,f,p=r(27921),_=r(32114);function g(e){return e?[(0,p.vt)(e[0]),(0,p.vt)(e[1]),(0,p.vt)(e[2]),(0,p.vt)(e[3]),(0,p.vt)(e[4]),(0,p.vt)(e[5])]:[(0,p.vt)(),(0,p.vt)(),(0,p.vt)(),(0,p.vt)(),(0,p.vt)(),(0,p.vt)()]}function m(e,t){for(let r=0;r<x;r++)(0,p.C)(e[r],t[r]);return e}function y(e,t,r,i=T){const o=(0,s.lw)(_.Rc.get(),t,e);(0,s.B8)(o,o);for(let e=0;e<b;++e){const t=(0,a.t)(_.Km.get(),w[e],o);(0,n.i)(i[e],t[0]/t[3],t[1]/t[3],t[2]/t[3])}!function(e,t){(0,p.Cr)(t[u.FAR_BOTTOM_LEFT],t[u.NEAR_BOTTOM_LEFT],t[u.NEAR_TOP_LEFT],e[d.LEFT]),(0,p.Cr)(t[u.NEAR_BOTTOM_RIGHT],t[u.FAR_BOTTOM_RIGHT],t[u.FAR_TOP_RIGHT],e[d.RIGHT]),(0,p.Cr)(t[u.FAR_BOTTOM_LEFT],t[u.FAR_BOTTOM_RIGHT],t[u.NEAR_BOTTOM_RIGHT],e[d.BOTTOM]),(0,p.Cr)(t[u.NEAR_TOP_LEFT],t[u.NEAR_TOP_RIGHT],t[u.FAR_TOP_RIGHT],e[d.TOP]),(0,p.Cr)(t[u.NEAR_BOTTOM_LEFT],t[u.NEAR_BOTTOM_RIGHT],t[u.NEAR_TOP_RIGHT],e[d.NEAR]),(0,p.Cr)(t[u.FAR_BOTTOM_RIGHT],t[u.FAR_BOTTOM_LEFT],t[u.FAR_TOP_LEFT],e[d.FAR])}(r,i)}function v(e,t){for(let r=0;r<x;r++){const i=e[r];if(i[0]*t[0]+i[1]*t[1]+i[2]*t[2]+i[3]>=t[3])return!1}return!0}(f=d||(d={}))[f.LEFT=0]="LEFT",f[f.RIGHT=1]="RIGHT",f[f.BOTTOM=2]="BOTTOM",f[f.TOP=3]="TOP",f[f.NEAR=4]="NEAR",f[f.FAR=5]="FAR",function(e){e[e.NEAR_BOTTOM_LEFT=0]="NEAR_BOTTOM_LEFT",e[e.NEAR_BOTTOM_RIGHT=1]="NEAR_BOTTOM_RIGHT",e[e.NEAR_TOP_RIGHT=2]="NEAR_TOP_RIGHT",e[e.NEAR_TOP_LEFT=3]="NEAR_TOP_LEFT",e[e.FAR_BOTTOM_LEFT=4]="FAR_BOTTOM_LEFT",e[e.FAR_BOTTOM_RIGHT=5]="FAR_BOTTOM_RIGHT",e[e.FAR_TOP_RIGHT=6]="FAR_TOP_RIGHT",e[e.FAR_TOP_LEFT=7]="FAR_TOP_LEFT"}(u||(u={})),u.FAR_BOTTOM_RIGHT,u.NEAR_BOTTOM_RIGHT,u.NEAR_BOTTOM_LEFT,u.FAR_BOTTOM_LEFT,u.NEAR_BOTTOM_LEFT,u.NEAR_BOTTOM_RIGHT,u.NEAR_TOP_RIGHT,u.NEAR_TOP_LEFT,u.FAR_BOTTOM_RIGHT,u.FAR_BOTTOM_LEFT,u.FAR_TOP_LEFT,u.FAR_TOP_RIGHT,u.NEAR_BOTTOM_RIGHT,u.FAR_BOTTOM_RIGHT,u.FAR_TOP_RIGHT,u.NEAR_TOP_RIGHT,u.FAR_BOTTOM_LEFT,u.NEAR_BOTTOM_LEFT,u.NEAR_TOP_LEFT,u.FAR_TOP_LEFT,u.FAR_TOP_LEFT,u.NEAR_TOP_LEFT,u.NEAR_TOP_RIGHT,u.FAR_TOP_RIGHT;const x=6,b=8,w=[(0,l.fA)(-1,-1,-1,1),(0,l.fA)(1,-1,-1,1),(0,l.fA)(1,1,-1,1),(0,l.fA)(-1,1,-1,1),(0,l.fA)(-1,-1,1,1),(0,l.fA)(1,-1,1,1),(0,l.fA)(1,1,1,1),(0,l.fA)(-1,1,1,1)],T=(new i.I(h),[(0,o.vt)(),(0,o.vt)(),(0,o.vt)(),(0,o.vt)(),(0,o.vt)(),(0,o.vt)(),(0,o.vt)(),(0,o.vt)()])},27615:(e,t,r)=>{r.d(t,{CK:()=>d,Hq:()=>h,MW:()=>u,TE:()=>f,yJ:()=>p});var i=r(51447),s=r(53966),n=r(38954),o=r(86738),a=r(95696),l=r(18251);function c(){return s.A.getLogger("esri.geometry.Mesh")}function h(e){return null!=e.origin}function d(e){return h(e.vertexSpace)}function u(e,t){if(!h(e))return null;const[r,i,s]=e.origin;return new o.A({x:r,y:i,z:s,spatialReference:t})}function f(e,t){const{x:r,y:s,z:n,spatialReference:o}=e,h=[r,s,n??0];return void 0!==t?.geographic&&((0,i.io)(c(),"option: geographic",{replacement:"Use the `vertexSpace` option instead.",version:"4.29",warnOnce:!0}),t.vertexSpace&&c().warn("Deprecated geographic flag ignored since vertexSpace option is provided.")),"local"===(t?.vertexSpace??(d=t?.geographic,null==d?void 0:d?"local":"georeferenced")??function(e){return e.isGeographic||e.isWebMercator?"local":"georeferenced"}(o))?new l.A({origin:h}):new a.A({origin:h});var d}function p(e,t){return e.type===t.type&&(e.origin===t.origin||null!=e.origin&&null!=t.origin&&(0,n.p)(e.origin,t.origin))}},31756:(e,t,r)=>{r.d(t,{j:()=>n});var i=r(83047),s=r(79258);const n={unknown:1,inches:(0,i.oU)(1,"meters","inches"),feet:(0,i.oU)(1,"meters","feet"),"us-feet":(0,i.oU)(1,"meters","us-feet"),yards:(0,i.oU)(1,"meters","yards"),miles:(0,i.oU)(1,"meters","miles"),"nautical-miles":(0,i.oU)(1,"meters","nautical-miles"),millimeters:(0,i.oU)(1,"meters","millimeters"),centimeters:(0,i.oU)(1,"meters","centimeters"),decimeters:(0,i.oU)(1,"meters","decimeters"),meters:(0,i.oU)(1,"meters","meters"),kilometers:(0,i.oU)(1,"meters","kilometers"),"decimal-degrees":1/(0,i.vl)(1,"meters",s.$O.radius)}},10536:(e,t,r)=>{function i(e){const t={};for(const r in e){if("declaredClass"===r)continue;const s=e[r];if(null!=s&&"function"!=typeof s)if(Array.isArray(s)){t[r]=[];for(let e=0;e<s.length;e++)t[r][e]=i(s[e])}else"object"==typeof s?s.toJSON&&(t[r]=JSON.stringify(s)):t[r]=s}return t}r.d(t,{z:()=>i})},53655:(e,t,r)=>{r.d(t,{SH:()=>I,ae:()=>T,cn:()=>y});var i=r(49186),s=r(51624),n=r(92722),o=r(69418);const a=["esriFieldTypeSmallInteger","esriFieldTypeInteger","esriFieldTypeSingle","esriFieldTypeDouble","esriFieldTypeString","esriFieldTypeDate","esriFieldTypeOID","esriFieldTypeGeometry","esriFieldTypeBlob","esriFieldTypeRaster","esriFieldTypeGUID","esriFieldTypeGlobalID","esriFieldTypeXML","esriFieldTypeBigInteger","esriFieldTypeDateOnly","esriFieldTypeTimeOnly","esriFieldTypeTimestampOffset"],l=["sqlTypeBigInt","sqlTypeBinary","sqlTypeBit","sqlTypeChar","sqlTypeDate","sqlTypeDecimal","sqlTypeDouble","sqlTypeFloat","sqlTypeGeometry","sqlTypeGUID","sqlTypeInteger","sqlTypeLongNVarchar","sqlTypeLongVarbinary","sqlTypeLongVarchar","sqlTypeNChar","sqlTypeNVarchar","sqlTypeOther","sqlTypeReal","sqlTypeSmallInt","sqlTypeSqlXml","sqlTypeTime","sqlTypeTimestamp","sqlTypeTimestamp2","sqlTypeTinyInt","sqlTypeVarbinary","sqlTypeVarchar"],c=["upperLeft","lowerLeft"];function h(e){return e>=a.length?null:a[e]}function d(e){return e>=l.length?null:l[e]}function u(e){return e>=c.length?null:c[e]}function f(e,t){return t>=e.geometryTypes.length?null:e.geometryTypes[t]}function p(e,t,r){const i=e.asUnsafe(),s=t.createPointGeometry(r);for(;i.next();)switch(i.tag()){case 3:{const e=i.getUInt32(),r=i.pos()+e;let n=0;for(;i.pos()<r;)t.addCoordinatePoint(s,i.getSInt64(),n++);break}default:i.skip()}return s}function _(e,t,r){const i=e.asUnsafe(),s=t.createGeometry(r),n=2+(r.hasZ?1:0)+(r.hasM?1:0);for(;i.next();)switch(i.tag()){case 2:{const e=i.getUInt32(),r=i.pos()+e;let n=0;for(;i.pos()<r;)t.addLength(s,i.getUInt32(),n++);break}case 3:{const e=i.getUInt32(),r=i.pos()+e;let o=0;for(t.allocateCoordinates(s);i.pos()<r;)t.addCoordinate(s,i.getSInt64(),o),o++,o===n&&(o=0);break}default:i.skip()}return s}function g(e){const t=e.asUnsafe(),r=new n.A;let i="esriGeometryPoint";for(;t.next();)switch(t.tag()){case 2:{const e=t.getUInt32(),i=t.pos()+e;for(;t.pos()<i;)r.lengths.push(t.getUInt32());break}case 3:{const e=t.getUInt32(),i=t.pos()+e;for(;t.pos()<i;)r.coords.push(t.getSInt64());break}case 1:i=o.z[t.getEnum()];break;default:t.skip()}return{queryGeometry:r,queryGeometryType:i}}function m(e){const t=e.asUnsafe();for(;t.next();)switch(t.tag()){case 1:return t.getString();case 2:return t.getFloat();case 3:return t.getDouble();case 4:return t.getSInt32();case 5:return t.getUInt32();case 6:return t.getInt64();case 7:return t.getUInt64();case 8:return t.getSInt64();case 9:return t.getBool();default:return t.skip(),null}return null}function y(e){const t=e.asUnsafe(),r={type:h(0)};for(;t.next();)switch(t.tag()){case 1:r.name=t.getString();break;case 2:r.type=h(t.getEnum());break;case 3:r.alias=t.getString();break;case 4:r.sqlType=d(t.getEnum());break;case 5:default:t.skip();break;case 6:r.defaultValue=t.getString()}return r}function v(e){const t={},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.name=r.getString();break;case 2:t.isSystemMaintained=r.getBool();break;default:r.skip()}return t}function x(e,t,r,i){const s=t.createFeature(r);let n=0;for(;e.next();)switch(e.tag()){case 1:{const t=i[n++].name;s.attributes[t]=e.processMessage(m);break}case 2:s.geometry=e.processMessageWithArgs(_,t,r);break;case 4:s.centroid=e.processMessageWithArgs(p,t,r);break;default:e.skip()}return s}function b(e){const t=[1,1,1,1],r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t[0]=r.getDouble();break;case 2:t[1]=r.getDouble();break;case 4:t[2]=r.getDouble();break;case 3:t[3]=r.getDouble();break;default:r.skip()}return t}function w(e){const t=[0,0,0,0],r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t[0]=r.getDouble();break;case 2:t[1]=r.getDouble();break;case 4:t[2]=r.getDouble();break;case 3:t[3]=r.getDouble();break;default:r.skip()}return t}function T(e){const t={originPosition:u(0)},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.originPosition=u(r.getEnum());break;case 2:t.scale=r.processMessage(b);break;case 3:t.translate=r.processMessage(w);break;default:r.skip()}return t}function A(e){const t={},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.shapeAreaFieldName=r.getString();break;case 2:t.shapeLengthFieldName=r.getString();break;case 3:t.units=r.getString();break;default:r.skip()}return t}function S(e,t){const r=t.createSpatialReference();for(;e.next();)switch(e.tag()){case 1:r.wkid=e.getUInt32();break;case 5:r.wkt=e.getString();break;case 2:r.latestWkid=e.getUInt32();break;case 3:r.vcsWkid=e.getUInt32();break;case 4:r.latestVcsWkid=e.getUInt32();break;default:e.skip()}return r}function O(e,t){const r=t.createFeatureResult(),i=e.asUnsafe();r.geometryType=f(t,0);let s=!1;for(;i.next();)switch(i.tag()){case 1:r.objectIdFieldName=i.getString();break;case 3:r.globalIdFieldName=i.getString();break;case 4:r.geohashFieldName=i.getString();break;case 5:r.geometryProperties=i.processMessage(A);break;case 7:r.geometryType=f(t,i.getEnum());break;case 8:r.spatialReference=i.processMessageWithArgs(S,t);break;case 10:r.hasZ=i.getBool();break;case 11:r.hasM=i.getBool();break;case 12:r.transform=i.processMessage(T);break;case 9:r.exceededTransferLimit=i.getBool();break;case 13:t.addField(r,i.processMessage(y));break;case 15:s||(t.prepareFeatures(r),s=!0),t.addFeature(r,i.processMessageWithArgs(x,t,r,r.fields));break;case 2:r.uniqueIdField=i.processMessage(v);break;default:i.skip()}return t.finishFeatureResult(r),r}function R(e,t){const r={};let i=null;for(;e.next();)switch(e.tag()){case 4:i=e.processMessageWithArgs(g);break;case 1:r.featureResult=e.processMessageWithArgs(O,t);break;default:e.skip()}return null!=i&&r.featureResult&&t.addQueryGeometry(r,i),r}function I(e,t){try{const r=2,i=new s.A(new Uint8Array(e),new DataView(e)),n={};for(;i.next();)i.tag()===r?n.queryResult=i.processMessageWithArgs(R,t):i.skip();return n}catch(e){throw new i.A("query:parsing-pbf","Error while parsing FeatureSet PBF payload",{error:e})}}},69418:(e,t,r)=>{r.d(t,{S:()=>c,z:()=>l});var i=r(83047),s=r(21325),n=r(43334),o=r(58512),a=r(92722);const l=["esriGeometryPoint","esriGeometryMultipoint","esriGeometryPolyline","esriGeometryPolygon"];class c{constructor(e){this._options=e,this.geometryTypes=l,this._coordinatePtr=0,this._vertexDimension=0}createFeatureResult(){return new o.A}prepareFeatures(e){this._vertexDimension=2,e.hasZ&&this._vertexDimension++,e.hasM&&this._vertexDimension++}finishFeatureResult(e){if(!e?.features||!e.hasZ||!this._options.sourceSpatialReference||!e.spatialReference||(0,s.aI)(e.spatialReference,this._options.sourceSpatialReference)||e.spatialReference.vcsWkid)return;const t=(0,i.G9)(this._options.sourceSpatialReference)/(0,i.G9)(e.spatialReference);if(1!==t)for(const r of e.features){if(!(0,n.N3)(r))continue;const e=r.geometry.coords;for(let r=2;r<e.length;r+=3)e[r]*=t}}addFeature(e,t){e.features.push(t)}createFeature(){return new n.Om(null,{},null,0)}createSpatialReference(){return{wkid:0}}createGeometry(){return new a.A}addField(e,t){e.fields.push(t)}allocateCoordinates(e){e.coords.length=e.lengths.reduce(((e,t)=>e+t),0)*this._vertexDimension,this._coordinatePtr=0}addCoordinate(e,t){e.coords[this._coordinatePtr++]=t}addCoordinatePoint(e,t){e.coords.push(t)}addLength(e,t){e.lengths.push(t)}addQueryGeometry(e,t){e.queryGeometry=t.queryGeometry,e.queryGeometryType=t.queryGeometryType}createPointGeometry(){return new a.A}}},66208:(e,t,r)=>{r.d(t,{m:()=>s});var i=r(53655);function s(e,t){const r=(0,i.SH)(e,t),s=r.queryResult.featureResult,n=r.queryResult.queryGeometry,o=r.queryResult.queryGeometryType;if(s&&s.features&&s.features.length&&s.objectIdFieldName){const e=s.objectIdFieldName;for(const t of s.features)t.attributes&&(t.objectId=t.attributes[e])}return s&&(s.queryGeometry=n,s.queryGeometryType=o),s}},80893:(e,t,r)=>{r.d(t,{IJ:()=>p,Jf:()=>y,Pk:()=>g,eW:()=>f,gW:()=>m,kS:()=>_});var i=r(78888),s=r(84952),n=r(65864),o=r(17136),a=r(21325),l=r(10536),c=r(66208),h=r(58501);const d="Layer does not support extent calculation.";function u(e,t){const r=e.geometry,i=e.toJSON();delete i.compactGeometryEnabled,delete i.defaultSpatialReferenceEnabled;const s=i;let o,l,c;if(null!=r&&(l=r.spatialReference,c=(0,a.YX)(l),s.geometryType=(0,n.$B)(r),s.geometry=function(e,t){if(t&&"extent"===e.type)return`${e.xmin},${e.ymin},${e.xmax},${e.ymax}`;if(t&&"point"===e.type)return`${e.x},${e.y}`;const r=e.toJSON();return delete r.spatialReference,JSON.stringify(r)}(r,e.compactGeometryEnabled),s.inSR=c),i.groupByFieldsForStatistics&&(s.groupByFieldsForStatistics=i.groupByFieldsForStatistics.join(",")),i.objectIds&&(s.objectIds=i.objectIds.join(",")),i.orderByFields&&(s.orderByFields=i.orderByFields.join(",")),!i.outFields||!i.returnDistinctValues&&(t?.returnCountOnly||t?.returnExtentOnly||t?.returnIdsOnly)?delete s.outFields:i.outFields.includes("*")?s.outFields="*":s.outFields=i.outFields.join(","),i.outSR?(s.outSR=(0,a.YX)(i.outSR),o=e.outSpatialReference):r&&(i.returnGeometry||i.returnCentroid)&&(s.outSR=s.inSR,o=l),i.returnGeometry&&delete i.returnGeometry,i.outStatistics&&(s.outStatistics=JSON.stringify(i.outStatistics)),i.fullText&&(s.fullText=JSON.stringify(i.fullText)),i.pixelSize&&(s.pixelSize=JSON.stringify(i.pixelSize)),i.quantizationParameters&&(e.defaultSpatialReferenceEnabled&&null!=l&&null!=e.quantizationParameters?.extent&&l.equals(e.quantizationParameters.extent.spatialReference)&&delete i.quantizationParameters.extent.spatialReference,s.quantizationParameters=JSON.stringify(i.quantizationParameters)),i.parameterValues&&(s.parameterValues=JSON.stringify(i.parameterValues)),i.rangeValues&&(s.rangeValues=JSON.stringify(i.rangeValues)),i.dynamicDataSource&&(s.layer=JSON.stringify({source:i.dynamicDataSource}),delete i.dynamicDataSource),i.timeExtent){const e=i.timeExtent,{start:t,end:r}=e;null==t&&null==r||(s.time=t===r?t:`${t??"null"},${r??"null"}`),delete i.timeExtent}return e.defaultSpatialReferenceEnabled&&null!=l&&null!=o&&l.equals(o)&&(s.defaultSR=s.inSR,delete s.inSR,delete s.outSR),s}async function f(e,t,r,i){const s=null!=t.timeExtent&&t.timeExtent.isEmpty?{data:{features:[]}}:await v(e,t,"json",i);return(0,h.q)(t,r,s.data),s}async function p(e,t,r,i){if(null!=t.timeExtent&&t.timeExtent.isEmpty)return{data:r.createFeatureResult()};const s=await _(e,t,i),n=s;return n.data=(0,c.m)(s.data,r),n}function _(e,t,r){return v(e,t,"pbf",r)}function g(e,t,r){return null!=t.timeExtent&&t.timeExtent.isEmpty?Promise.resolve({data:{objectIds:[]}}):v(e,t,"json",r,{returnIdsOnly:!0})}function m(e,t,r){return null!=t.timeExtent&&t.timeExtent.isEmpty?Promise.resolve({data:{count:0}}):v(e,t,"json",r,{returnIdsOnly:!0,returnCountOnly:!0})}async function y(e,t,r){if(null!=t.timeExtent&&t.timeExtent.isEmpty)return{data:{count:0,extent:null}};const i=await v(e,t,"json",r,{returnExtentOnly:!0,returnCountOnly:!0}),s=i.data;if(s.hasOwnProperty("extent"))return i;if(s.features)throw new Error(d);if(s.hasOwnProperty("count"))throw new Error(d);return i}async function v(e,t,r,n={},a={}){const c="string"==typeof e?(0,s.An)(e):e,h=t.geometry?[t.geometry]:[],d=await(0,o.el)(h,null,{signal:n.signal}),f=d?.[0];null!=f&&((t=t.clone()).geometry=f);const p=(0,l.z)({...c.query,f:r,...a,...u(t,a)});return(0,i.A)((0,s.fj)(c.path,(_=a,null==t.formatOf3DObjects||_.returnCountOnly||_.returnExtentOnly||_.returnIdsOnly?"query":"query3d")),{...n,responseType:"pbf"===r?"array-buffer":"json",query:{...p,...n.query}});var _}},58501:(e,t,r)=>{r.d(t,{q:()=>s});var i=r(62815);function s(e,t,r){if(!r?.features||!r.hasZ)return;const s=(0,i.N)(r.geometryType,t,e.outSpatialReference);if(null!=s)for(const e of r.features)s(e.geometry)}},83237:(e,t,r)=>{r.r(t),r.d(t,{default:()=>rs});var i=r(90237),s=r(65529),n=r(74887),o=r(36708),a=r(10107),l=r(44208),c=r(53966),h=(r(87811),r(40608)),d=r(16930),u=r(19730),f=r(61956),p=r(69622),_=r(4576),g=r(60999),m=r(32587);let y=class extends p.A{constructor(e){super(e),this._removing=0,this._tiles=new m.A,this._wanted=new m.A}destroy(){for(const e of this._tiles.values())e.abort();this._tiles.clear(),this._wanted.clear()}get updating(){return this._removing>0||this._loadingCount>0}get _loadingCount(){let e=0;for(const t of this._tiles.values())t.isLoaded||++e;return e}async onTileTreeChange(e){const{added:t,removed:r}=e,i=this._tiles,s=this._wanted,n=[];for(const e of r){const{id:r}=e;if(s.delete(r),t.some((t=>v(t,e)||v(e,t))))continue;const o=i.get(r);null!=o&&(o.abort(),o.isLoaded&&n.push(r),i.delete(r))}for(const e of t){const{id:t}=e;s.set(t,e),i.has(t)||i.set(t,this._loadTile(e))}await this._removeTiles(n)}async _addTile(e,t){const r=await this.addTile(e,t);return(0,n.Te)(t),r}async _removeTiles(e){this._removing++,await this.removeTiles(e),this._removing--}_loadTile(e){const t=(0,g.UT)((t=>this._addTile(e,t))),r=new x(e,t);return(0,n.QZ)(this._onTileLoad(t.promise)),r}async _onTileLoad(e){await e;const t=this._tiles,r=this._wanted,i=new Map(r),s=Array.from(this._tiles.values()).map((e=>e.data)).filter(_.Ru);for(const e of s)i.delete(e.descriptor.id);const n=Array.from(i.values()),o=new Array;for(const e of t.values()){const{descriptor:t}=e;r.has(t.id)||n.some((e=>v(e,t)||v(t,e)))||o.push(t.id)}if(0!==o.length){for(const e of o)t.delete(e);await this._removeTiles(o)}}};function v({lij:[e,t,r]},{lij:[i,s,n]}){const o=i-e;return o>=0&&t===s>>o&&r===n>>o}(0,i._)([(0,a.MZ)()],y.prototype,"updating",null),(0,i._)([(0,a.MZ)({constructOnly:!0})],y.prototype,"addTile",void 0),(0,i._)([(0,a.MZ)({constructOnly:!0})],y.prototype,"removeTiles",void 0),(0,i._)([(0,a.MZ)()],y.prototype,"_removing",void 0),(0,i._)([(0,a.MZ)()],y.prototype,"_loadingCount",null),y=(0,i._)([(0,h.$)("esri.views.3d.layers.graphics.pipeline.Tile3DManager")],y);class x{constructor(e,t){this.descriptor=e,this._task=t}get id(){return this.descriptor.id}get data(){return this._task.value}get isLoaded(){return null!=this.data}abort(){this._task.abort()}}var b=r(69397);class w{constructor(e,t){this._tile=e,this._tileIndices=t}get id(){return this._tile.id}get featureCount(){return this._tileIndices?.length??this._tile.featureCount}get usedMemory(){return b.qK+(this._tileIndices?.byteLength??0)}get extent(){return this._tile.descriptor.extent}readObjectIds(e,t){const{_tileIndices:r,_tile:i}=this;return i.readObjectIds(e,r,t)}readCoordinates(e,t){const{_tileIndices:r,_tile:i}=this;return i.readCoordinates(e,r,t)}subset(e){const{_tileIndices:t,_tile:r}=this;if(null==t)return new w(r,e);const i=new Uint32Array(e.length);for(let r=0;r<i.length;++r)i[r]=t[e[r]];return new w(r,i)}}class T{constructor(){this._tileIdToFeatureData=new Map}add(e){this._tileIdToFeatureData.set(e.id,e)}remove(e){this._tileIdToFeatureData.delete(e)}get(e){return this._tileIdToFeatureData.get(e)}pop(e){const{_tileIdToFeatureData:t}=this,r=t.get(e);return t.delete(e),r}}var A=r(75503),S=r(27647),O=r(92722);class R{constructor(e,t){this._index=e,this._view=t}get usedMemory(){return b.qK+b.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 I(this._index,this._view,e)}}class I extends R{constructor(e,t,r){super(e,t),this._geometryOverride=r}getOptimizedGeometry(){return this._geometryOverride}getCentroid(e){return(0,S.Q)(new O.A,this._geometryOverride,e.hasZ,e.hasM)}}class M{constructor(){this._storedTiles=new Map,this._tileBounds=new Map,this.events=new s.A,this.featureAdapter=E.shared}get usedMemory(){return b.qK+b.qK*this._storedTiles.size+(b.qK+b.qK*this._tileBounds.size)}addTile(e){this._storedTiles.set(e.descriptor.id,e);const{featureCount:t}=e;if(0===t)return;const r=new A.w(9,(t=>e.getBounds(t))),i=new Array;for(let e=0;e<t;++e)i[e]=e;r.load(i),this._tileBounds.set(e,r),this.events.emit("changed")}removeTile(e){const t=this._storedTiles,r=t.get(e);null!=r&&(t.delete(e),this._tileBounds.delete(r),this.events.emit("changed"))}clear(){this._storedTiles.clear(),this._tileBounds.clear(),this.events.emit("changed")}forEach(e){for(const[t,r]of this._tileBounds)r.all((r=>e(new R(r,t))))}forEachInBounds(e,t){C.minX=e[0],C.minY=e[1],C.maxX=e[2],C.maxY=e[3];for(const[e,r]of this._tileBounds)r.search(C,(r=>t(new R(r,e))))}forEachBounds(e,t){for(const r of e)t(r.getBoundingBox())}getFullExtent(e){let t=1/0,r=1/0,i=-1/0,s=-1/0;for(const e of this._tileBounds.values()){const{minX:n,minY:o,maxX:a,maxY:l}=e.toJSON();t=Math.min(t,n),r=Math.min(r,o),i=Math.min(i,a),s=Math.min(s,l)}return{xmin:t,ymin:r,xmax:i,ymax:s,spatialReference:e}}}class E{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)}}E.shared=new E;const C=new A.E;var F=r(19419),D=r(80893);class L{constructor(e,t,r){this.descriptor=e,this._pageSize=t,this._pages=r,this.featureCount=r.reduce(((e,{featureCount:t})=>e+t),0);const i=b.ez+r.reduce(((e,{usedMemory:t})=>e+t),0),s=3*b.RS;this.usedMemory=b.qK+i+s}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:i}=this._translateIndex(e);return this._pages[r].getAttribute(i,t)}getAttributeAsTimestamp(e,t){const{pageIndex:r,featurePageIndex:i}=this._translateIndex(e);return this._pages[r].getAttributeAsTimestamp(i,t)}getAttributes(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getAttributes(r)}getCoordinates(e,t,r){const{pageIndex:i,featurePageIndex:s}=this._translateIndex(e);this._pages[i].getCoordinates(s,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:i}=this._translateIndex(e);return this._pages[r].getCentroid(i,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)}readObjectIds(e,t,r=0){let i=r;if(null==t)for(const t of this._pages)i=t.readObjectIds(e,void 0,i);else this._readIndexed(t,((t,r)=>{i=t.readObjectIds(e,r,i)}));return i}readCoordinates(e,t,r=0){let i=r;if(null==t)for(const t of this._pages)i=t.readCoordinates(e,void 0,i);else this._readIndexed(t,((t,r)=>{i=t.readCoordinates(e,r,i)}));return i}_translateIndex(e){const{_pageSize:t}=this;return{pageIndex:Math.floor(e/t),featurePageIndex:e%t}}_readIndexed(e,t){const r=new Array;{let t=0,i=new Array;for(const s of e){const{pageIndex:e,featurePageIndex:n}=this._translateIndex(s);t!==e&&(0!==i.length&&r.push({pageIndex:t,indices:i}),t=e,i=[]),i.push(n)}0!==i.length&&r.push({pageIndex:t,indices:i})}const{_pages:i}=this;for(const{pageIndex:e,indices:s}of r)t(i[e],s)}}var P=r(49186),N=r(51624),z=r(51850),B=r(70328),V=r(62577),j=r(95466),H=r(53655);class U{constructor(e){this._reader=new N.A(new Uint8Array(e),new DataView(e)),this._index=function(e){for(;e.next();){if(2===e.tag())return G(e.getMessage());e.skip()}q()}(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:i}}=this,s=r.get(t)?.index;if(null==s)return;const n=i[e*r.fields.length+s],o=this._reader;return o.move(n),Z(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,i=e*t.fields.length,s=this._reader,n={};for(const e of t.fields){const t=r[i+e.index];s.move(t),n[e.name]=Z(s)}return n}getCoordinates(e,t,r=0){const i=this._reader,{transform:s,featureIndices:n}=this._index,{scale:o,translate:a}=s;i.move(n[e]),this._readCoordinates(o,a,t,r)}getOptimizedGeometry(e){const t=(0,z.vt)();return this.getCoordinates(e,t),new O.A([],t)}getCentroid(e,{hasZ:t,hasM:r}){this.getCoordinates(e,W);const[i,s,n]=W,o=[i,s];return t&&(o[3]=n),r&&(o[t?4:3]=0),new O.A([],o)}getBounds(e){this.getCoordinates(e,W);const[t,r]=W,i=new A.E;return i.minX=t,i.minY=r,i.maxX=t,i.maxY=r,i}getBoundingBox(e){this.getCoordinates(e,W);const[t,r,i]=W;return(0,B.fA)(t,r,i,t,r,i)}readObjectIds(e,t=this._allFeatureIndices(),r=0){const i=this._reader,{objectIdFieldName:s,attributeIndices:n,fieldsIndex:o}=this._index,a=o.get(s).index,l=o.fields.length;for(const s of t){const t=n[s*l+a];i.move(t),e[r++]=Z(i)}return r}readCoordinates(e,t=this._allFeatureIndices(),r=0){const i=this._reader,{transform:s,featureIndices:n}=this._index,{scale:o,translate:a}=s;for(const s of t){const t=n[s];i.move(t),r=this._readCoordinates(o,a,e,r)}return r}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}_readCoordinates([e,t,r],[i,s,n],o,a){const l=this._reader,c=l.getLength(),h=l.pos()+c;for(;l.pos()<h&&l.next();)switch(l.tag()){case 2:{const c=l.getLength(),h=l.pos()+c;for(;l.pos()<h&&l.next();)3===l.tag()?(l.getUInt32(),o[a++]=i+e*l.getSInt64(),o[a++]=s+t*l.getSInt64(),o[a++]=n+r*l.getSInt64()):l.skip();break}default:l.skip()}return a}}function G(e){for(;e.next();){if(1===e.tag())return k(e.getMessage());e.skip()}q()}function k(e){let t,r,i=!1,s=!1,n=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()&&q();break;case 9:i=e.getBool()??!1;break;case 12:t=(0,V.Q1)(e.processMessage(H.ae));break;case 13:{const t=e.processMessage(H.cn);t.index=n++,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:s=e.getBool()??!1;break;default:e.skip()}const c=new j.A(o);return null!=t&&s&&null!=r&&c.has(r)||q(),{transform:t,exceededTransferLimit:i,fieldsIndex:c,objectIdFieldName:r,featureIndices:a,attributeIndices:l}}function q(){const e=new P.A("pbf-parsing-failed","Error while parsing PBF",new Error);throw console.error(e),e}function Z(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 W=(0,z.vt)();class Y{constructor(e,t,r,i,s){this.spatialReference=e,this.url=r,this.objectIdField=i,this.capabilities=s;const{supportsMaxRecordCountFactor:n,maxRecordCount:o}=this.capabilities.query,a=n?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=[i],this._baseQuery=c}async fetch(e,t){const{spatialReference:r}=this,i=(0,F.w1)(e.extent,r),s=this._baseQuery.clone();s.geometry=i;const o=new Array;let a=0,l=!1,c=1;for(;!l;){const e=[];for(let r=0;r<c;++r)e.push(this._fetchPage(s,a++,t));const r=await Promise.all(e);(0,n.Te)(t);for(const e of r){const t=0!==e.featureCount;l||=!e.exceededTransferLimit||!t,t&&o.push(e)}c=Math.min(c+1,4)}return new L(e,this._pageSize,o)}async _fetchPage(e,t,r){const i=e.clone();i.start=t*this._pageSize;const s=(await(0,D.kS)(this.url,i,{signal:r})).data;return(0,n.Te)(r),new U(s)}}var X=r(24151),$=r(97146),J=r(36563),Q=r(97768),K=r(91829),ee=r(37585),te=r(48163),re=r(34727),ie=r(26857);new Map,(()=>{let e="";for(let t=32;t<127;t++)e+=String.fromCharCode(t)})();const se=[];{const e=16;for(let t=0;t<360;t+=360/e)se.push([Math.cos(Math.PI*t/180),Math.sin(Math.PI*t/180)])}var ne,oe;(oe=ne||(ne={}))[oe.Left=0]="Left",oe[oe.Center=1]="Center",oe[oe.Right=2]="Right",Object.freeze({left:0,center:.5,right:1});const ae=Object.freeze({"bottom-left":(0,te.fA)(0,0),bottom:(0,te.fA)(.5,0),"bottom-right":(0,te.fA)(1,0),left:(0,te.fA)(0,.5),center:(0,te.fA)(.5,.5),right:(0,te.fA)(1,.5),"top-left":(0,te.fA)(0,1),top:(0,te.fA)(.5,1),"top-right":(0,te.fA)(1,1)});var le=r(4431),ce=r(49255);const he={required:[]};ce.V.Depth;class de extends p.A{precompile(e){const t=this.acquireTechniques(e);return function(e){Array.isArray(e)?e.forEach((e=>e?.release())):e?.release()}(t),null!=t}consumes(){return he}get usedMemory(){return 0}get isDecoration(){return!1}get running(){return!1}modify(e){}get numGeometries(){return 0}get hasOccludees(){return!1}get hasEmissions(){return!1}forEachGeometry(e){}queryRenderOccludedState(e){return!1}}class ue extends de{}class fe extends de{}var pe=r(89192);class _e{constructor(e,t){this._material=e,this._repository=t,this._map=new Map}dispose(){this._map.forEach(((e,t)=>{null!=e&&this._repository.release(this._material,t)}))}load(e,t,r){const i=this._material.produces.get(t);if(!i?.(r))return null;this._map.has(r)||this._map.set(r,this._repository.acquire(this._material,t,r));const s=this._map.get(r);if(null!=s){if(s.ensureResources(e)===pe.Am.LOADED)return s;this._repository.requestRender()}return null}}var ge=r(13464),me=r(72824);class ye extends me.gy{constructor(e=(0,z.vt)()){super(),this.origin=e}get slicePlaneLocalOrigin(){return this.origin}}let ve=class extends ue{constructor(e){super(e),this._hasHighlights=!1,this._glMaterials=null,this._produces=new Map,this._renderGeometries=new Map,this._vaoCache=null,this._drawParameters=new ye,this._bufferWriter=null}get produces(){return this._produces}get numFeatures(){let e=0;return this._renderGeometries.forEach((t=>e+=t.numElements/6)),e}get usedMemory(){let e=0;return this._renderGeometries.forEach((t=>{e+=t.vao.usedMemory})),e}initialize(){this._bufferWriter=this.material.createBufferWriter(),this.material.produces.forEach(((e,t)=>{this._produces.set(t,(t=>!!(t!==ce.V.Highlight&&t!==ce.V.ShadowHighlight||this._hasHighlights)&&e(t)))}))}destroy(){this._glMaterials.dispose();const e=this._renderGeometries.keys();for(const t of e)this.removeRenderGeometry(t)}acquireTechniques(e){const t=this.material;if(!t.shouldRender(e))return null;const{output:r,bind:i}=e,s=t.produces.get(i.slot);if(!s?.(r))return null;if((r===ce.V.Highlight||r===ce.V.ShadowHighlight)&&!this._hasHighlights)return null;const n=this._glMaterials.load(e.rctx,i.slot,r);return n?.beginSlot(i)}render(e,t){const r=this._renderGeometries;if(0===r.size)return;const{bind:i}=e,s=i.slot===ge.N.OCCLUDER_MATERIAL||i.slot===ge.N.TRANSPARENT_OCCLUDER_MATERIAL?i.slot:null,n=e.rctx;n.runAppleAmdDriverHelper(),n.bindTechnique(t,i,this.material.parameters);const o=t.program;for(const[e,a]of r)this._drawParameters.origin=a.localOrigin,o.bindDraw(i,this.material.parameters,this._drawParameters),t.ensureAttributeLocations(a.vao),n.bindVAO(a.vao),n.setPipelineState(t.getPipeline(!1,s)),n.drawArrays(t.primitiveType,0,a.numElements)}initializeRenderContext(e,t){this._glMaterials=new _e(this.material,e.materials),this._vaoCache=e.renderContext.rctx.getVaoCache(this.material.vertexAttributeLocations,(0,le.U)(this._bufferWriter.vertexBufferLayout))}uninitializeRenderContext(){}addRenderGeometry(e,t,r){this.removeRenderGeometry(e);const i=this._vaoCache.newVao(t.data.byteLength);i.vertexBuffers.get("geometry").setSubData(new Uint8Array(t.data),0,0,t.data.byteLength);const s={localOrigin:r,vao:i,numElements:t.elementCount};return this._renderGeometries.set(e,s),s}removeRenderGeometry(e){const t=this._renderGeometries.get(e);null!=t&&(this._vaoCache.deleteVao(t.vao),this._renderGeometries.delete(e))}hasHighlightOptions(e){return!1}};(0,i._)([(0,a.MZ)({constructOnly:!0})],ve.prototype,"material",void 0),ve=(0,i._)([(0,h.$)("esri.views.3d.layers.graphics.pipeline.rendering.DirectRenderer")],ve);var xe,be,we,Te,Ae=r(69720),Se=r(46540),Oe=r(91869),Re=r(9093),Ie=r(38954),Me=r(1843),Ee=r(90629),Ce=r(58083),Fe=r(87317),De=r(82919),Le=r(71351),Pe=r(44280);r(3694),(Te=xe||(xe={}))[Te.Default=0]="Default",Te[Te.Screenshot=1]="Screenshot",Te[Te.ObjectAndLayerID=2]="ObjectAndLayerID",function(e){e[e.TOP=0]="TOP",e[e.RIGHT=1]="RIGHT",e[e.BOTTOM=2]="BOTTOM",e[e.LEFT=3]="LEFT"}(be||(be={}));let Ne=we=class extends p.A{constructor(e){super(e),this._ray=(0,Le.vt)(),this._viewport=(0,K.fA)(0,0,1,1),this._padding=(0,K.fA)(0,0,0,0),this._fov=55/180*Math.PI,this._nearFar=(0,te.fA)(1,1e3),this._viewDirty=!0,this._viewMatrix=(0,Re.vt)(),this._viewProjectionDirty=!0,this._viewProjectionMatrix=(0,Re.vt)(),this._viewInverseTransposeMatrixDirty=!0,this._viewInverseTransposeMatrix=(0,Re.vt)(),this._frustumDirty=!0,this._frustum=(0,De.vt)(),this._fullViewport=(0,K.vt)(),this._pixelRatio=1,this.row=0,this.column=0,this._rows=1,this._columns=1,this._center=(0,z.vt)(),this._up=(0,z.vt)(),this.relativeElevation=0}get pixelRatio(){return this._pixelRatio}set pixelRatio(e){this._pixelRatio=e>0?e:1}get rows(){return this._rows}set rows(e){this._rows=Math.max(1,e)}get columns(){return this._columns}set columns(e){this._columns=Math.max(1,e)}get eye(){return this._ray.origin}set eye(e){this._compareAndSetView(e,this._ray.origin)}get center(){return this._center}set center(e){this._compareAndSetView(e,this._center,"_center")}get ray(){return(0,Ie.d)(this._ray.direction,this.center,this.eye),this._ray}get up(){return this._up}set up(e){this._compareAndSetView(e,this._up,"_up")}get viewMatrix(){return this._ensureViewClean(),this._viewMatrix}set viewMatrix(e){(0,Ce.C)(this._viewMatrix,e),this.notifyChange("_viewMatrix"),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get viewForward(){return this._ensureViewClean(),(0,Ie.i)((0,z.vt)(),-this._viewMatrix[2],-this._viewMatrix[6],-this._viewMatrix[10])}get viewUp(){return this._ensureViewClean(),(0,Ie.i)((0,z.vt)(),this._viewMatrix[1],this._viewMatrix[5],this._viewMatrix[9])}get viewRight(){return this._ensureViewClean(),(0,Ie.i)((0,z.vt)(),this._viewMatrix[0],this._viewMatrix[4],this._viewMatrix[8])}get nearFar(){return this._nearFar}get near(){return this._nearFar[0]}set near(e){this._nearFar[0]!==e&&(this._nearFar[0]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_nearFar"))}get far(){return this._nearFar[1]}set far(e){this._nearFar[1]!==e&&(this._nearFar[1]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_nearFar"))}get viewport(){return this._viewport}set viewport(e){this.x=e[0],this.y=e[1],this.width=e[2],this.height=e[3]}get screenViewport(){if(1===this.pixelRatio)return this._viewport;const e=(0,Fe.b)((0,K.vt)(),this._viewport,1/this.pixelRatio),t=this._get("screenViewport");return t&&(0,Fe.e)(e,t)?t:e}get screenPadding(){if(1===this.pixelRatio)return this._padding;const e=(0,Fe.b)((0,K.vt)(),this._padding,1/this.pixelRatio),t=this._get("screenPadding");return t&&(0,Fe.e)(e,t)?t:e}get x(){return this._viewport[0]}set x(e){e+=this._padding[be.LEFT],this._viewport[0]!==e&&(this._viewport[0]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get y(){return this._viewport[1]}set y(e){e+=this._padding[be.BOTTOM],this._viewport[1]!==e&&(this._viewport[1]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get width(){return this._viewport[2]}set width(e){this._viewport[2]!==e&&(this._viewport[2]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get height(){return this._viewport[3]}set height(e){this._viewport[3]!==e&&(this._viewport[3]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get fullWidth(){return this._viewport[2]+this._padding[be.RIGHT]+this._padding[be.LEFT]}set fullWidth(e){this.width=e-(this._padding[be.RIGHT]+this._padding[be.LEFT])}get fullHeight(){return this._viewport[3]+this._padding[be.TOP]+this._padding[be.BOTTOM]}set fullHeight(e){this.height=e-(this._padding[be.TOP]+this._padding[be.BOTTOM])}get fullViewport(){return this._fullViewport[0]=this._viewport[0]-this._padding[be.LEFT],this._fullViewport[1]=this._viewport[1]-this._padding[be.BOTTOM],this._fullViewport[2]=this.fullWidth,this._fullViewport[3]=this.fullHeight,this._fullViewport}get _aspect(){return this.width/this.height}get padding(){return this._padding}set padding(e){(0,Fe.a)(this._padding,e)||(this._viewport[0]+=e[be.LEFT]-this._padding[be.LEFT],this._viewport[1]+=e[be.BOTTOM]-this._padding[be.BOTTOM],this._viewport[2]-=e[be.RIGHT]+e[be.LEFT]-(this._padding[be.RIGHT]+this._padding[be.LEFT]),this._viewport[3]-=e[be.TOP]+e[be.BOTTOM]-(this._padding[be.TOP]+this._padding[be.BOTTOM]),(0,Fe.c)(this._padding,e),this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_padding"),this.notifyChange("_viewport"))}get viewProjectionMatrix(){return this._viewProjectionDirty&&((0,Ce.lw)(this._viewProjectionMatrix,this.projectionMatrix,this.viewMatrix),this._viewProjectionDirty=!1),this._viewProjectionMatrix}get projectionMatrix(){return this._projectionMatrixInternal}get inverseProjectionMatrix(){return(0,Ce.B8)((0,Re.vt)(),this.projectionMatrix)||this._get("inverseProjectionMatrix")||(0,Re.vt)()}get fov(){return this._fov}set fov(e){this._fov=e,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovX(){return function(e,t,r){return 2*Math.atan(t*Math.tan(.5*e)/Math.sqrt(t*t+r*r))}(this._fov,this.width,this.height)}set fovX(e){this._fov=function(e,t,r){return 2*Math.atan(Math.sqrt(t*t+r*r)*Math.tan(.5*e)/t)}(e,this.width,this.height),this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovY(){return function(e,t,r){return 2*Math.atan(r*Math.tan(.5*e)/Math.sqrt(t*t+r*r))}(this._fov,this.width,this.height)}set fovY(e){this._fov=function(e,t,r){return 2*Math.atan(Math.sqrt(t*t+r*r)*Math.tan(.5*e)/r)}(e,this.width,this.height),this._viewProjectionDirty=!0,this._frustumDirty=!0}get distance(){return(0,Ie.j)(this.center,this.eye)}get frustum(){return this._recomputeFrustum(),this._frustum}get viewInverseTransposeMatrix(){return(this._viewInverseTransposeMatrixDirty||this._viewDirty)&&((0,Ce.B8)(this._viewInverseTransposeMatrix,this.viewMatrix),(0,Ce.mg)(this._viewInverseTransposeMatrix,this._viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this._viewInverseTransposeMatrix}depthNDCToWorld(e){const{near:t,far:r}=this;return 2*t*r/(r+t-e*(r-t))}get perRenderPixelRatio(){return Math.tan(this.fovX/2)/(this.width/2)}get perScreenPixelRatio(){return this.perRenderPixelRatio*this.pixelRatio}get aboveGround(){return null!=this.relativeElevation&&this.relativeElevation>=0}get _projectionMatrixInternal(){const e=this.width,t=this.height,r=this.near*Math.tan(this.fovY/2)*2,i=r*this._aspect,s=r/this.rows,n=i/this.columns,o=-i/2+this.column*n,a=o+n,l=-r/2+this.row*s,c=l+s,h=(0,Ce.$h)((0,Re.vt)(),o*(1+2*this._padding[be.LEFT]/e),a*(1+2*this._padding[be.RIGHT]/e),l*(1+2*this._padding[be.BOTTOM]/t),c*(1+2*this._padding[be.TOP]/t),this.near,this.far),d=this._get("projectionMatrix");return d&&(0,Ce.aI)(d,h)?d:h}copyFrom(e){(0,Ie.c)(this._ray.origin,e.eye),this.center=e.center,this.up=e.up,(0,Fe.c)(this._viewport,e.viewport),this.notifyChange("_viewport"),(0,Fe.c)(this._padding,e.padding),this.notifyChange("_padding"),(0,ee.C)(this._nearFar,e.nearFar),this.notifyChange("_nearFar"),this._fov=e.fov,this.row=e.row,this.column=e.column,this.rows=e.rows,this.columns=e.columns,this.relativeElevation=e.relativeElevation;const t=e;return this._viewDirty=t._viewDirty,this._viewDirty||((0,Ce.C)(this._viewMatrix,e.viewMatrix),this.notifyChange("_viewMatrix")),this._viewProjectionDirty=!0,this._frustumDirty=t._frustumDirty,this._frustumDirty||((0,De.C)(this._frustum,e.frustum),this._frustumDirty=!1),t._viewInverseTransposeMatrixDirty?this._viewInverseTransposeMatrixDirty=!0:((0,Ce.C)(this._viewInverseTransposeMatrix,e.viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),(0,Fe.c)(this._fullViewport,e.fullViewport),this.pixelRatio=e.pixelRatio,this}copyViewFrom(e){this.eye=e.eye,this.center=e.center,this.up=e.up,this.fov=e.fov}clone(){return(new we).copyFrom(this)}equals(e){return(0,Ie.p)(this.eye,e.eye)&&(0,Ie.p)(this.center,e.center)&&(0,Ie.p)(this.up,e.up)&&(0,Fe.a)(this._viewport,e.viewport)&&(0,Fe.a)(this._padding,e.padding)&&(0,ee.t2)(this.nearFar,e.nearFar)&&this._fov===e.fov&&this.pixelRatio===e.pixelRatio&&this.relativeElevation===e.relativeElevation&&this.row===e.row&&this.column===e.column&&this.rows===e.rows&&this.columns===e.columns}almostEquals(e){const t=Math.max(1,1/this.pixelRatio,1/e.pixelRatio);if(Math.abs(e.fov-this._fov)>=.001||(0,Fe.d)(e.screenPadding,this.screenPadding)>=t||(0,Fe.d)(this.screenViewport,e.screenViewport)>=t||this.row!==e.row||this.column!==e.column||this.rows!==e.rows||this.columns!==e.columns)return!1;(0,Ie.a)(je,e.eye,e.center),(0,Ie.a)(He,this.eye,this.center);const r=(0,Ie.f)(je,He),i=(0,Ie.z)(je),s=(0,Ie.z)(He),n=5e-4;return r*r>=(1-1e-10)*i*s&&(0,Ie.y)(e.eye,this.eye)<Math.max(i,s)*n*n}computeRenderPixelSizeAt(e){return this.computeRenderPixelSizeAtDist(this._viewDirectionDistance(e))}computeRenderPixelSizeAtDist(e){return e*this.perRenderPixelRatio}computeScreenPixelSizeAt(e){return this.computeScreenPixelSizeAtDist(this._viewDirectionDistance(e))}_viewDirectionDistance(e){return Math.abs((0,Pe.gr)(this.viewForward,(0,Ie.d)(je,e,this.eye)))}computeScreenPixelSizeAtDist(e){return e*this.perScreenPixelRatio}computeDistanceFromRadius(e,t){return e/Math.tan(Math.min(this.fovX,this.fovY)/(2*(t||1)))}getScreenCenter(e=(0,Ee.gs)()){return e[0]=(this.padding[be.LEFT]+this.width/2)/this.pixelRatio,e[1]=(this.padding[be.TOP]+this.height/2)/this.pixelRatio,e}getRenderCenter(e,t=.5,r=.5){return e[0]=this.padding[be.LEFT]+this.width*t,e[1]=this.padding[be.BOTTOM]+this.height*r,e[2]=.5,e}setGLViewport(e){const t=this.viewport,r=this.padding;e.setViewport(t[0]-r[3],t[1]-r[2],t[2]+r[1]+r[3],t[3]+r[0]+r[2])}applyProjection(e,t){e!==Be&&(0,Ie.c)(Be,e),Be[3]=1,(0,Fe.t)(Be,Be,this.projectionMatrix);const r=Math.abs(Be[3]);(0,Ie.h)(Be,Be,1/r);const i=this.fullViewport;t[0]=(0,re.Cc)(0,i[0]+i[2],.5+.5*Be[0]),t[1]=(0,re.Cc)(0,i[1]+i[3],.5+.5*Be[1]),t[2]=.5*(Be[2]+1),t[3]=r}unapplyProjection(e,t){const r=this.fullViewport;Be[0]=(e[0]/(r[0]+r[2])*2-1)*e[3],Be[1]=(e[1]/(r[1]+r[3])*2-1)*e[3],Be[2]=(2*e[2]-1)*e[3],Be[3]=e[3],null!=this.inverseProjectionMatrix&&((0,Fe.t)(Be,Be,this.inverseProjectionMatrix),t[0]=Be[0],t[1]=Be[1],t[2]=Be[2])}projectToScreen(e,t){return this.projectToRenderScreen(e,Ue),this.renderToScreen(Ue,t),t}projectToRenderScreen(e,t){if(Be[0]=e[0],Be[1]=e[1],Be[2]=e[2],Be[3]=1,(0,Fe.t)(Be,Be,this.viewProjectionMatrix),0===Be[3])return null;const r=Be;(0,Ie.h)(r,r,1/Math.abs(Be[3]));const i=this.fullViewport,s=(0,re.Cc)(0,i[0]+i[2],.5+.5*r[0]),n=(0,re.Cc)(0,i[1]+i[3],.5+.5*r[1]);return"x"in t?(t.x=s,t.y=n):(t[0]=s,t[1]=n,t.length>2&&(t[2]=.5*(r[2]+1))),t}unprojectFromScreen(e,t){return this.unprojectFromRenderScreen(this.screenToRender(e,Ue),t)}unprojectFromRenderScreen(e,t){if((0,Ce.lw)(Ve,this.projectionMatrix,this.viewMatrix),!(0,Ce.B8)(Ve,Ve))return null;const r=this.fullViewport;return Be[0]=2*(e[0]-r[0])/r[2]-1,Be[1]=2*(e[1]-r[1])/r[3]-1,Be[2]=2*e[2]-1,Be[3]=1,(0,Fe.t)(Be,Be,Ve),0===Be[3]?null:(t[0]=Be[0]/Be[3],t[1]=Be[1]/Be[3],t[2]=Be[2]/Be[3],t)}constrainWindowSize(e,t,r,i){const s=e*this.pixelRatio,n=t*this.pixelRatio,o=Math.max(s-r/2,0),a=Math.max(this.fullHeight-n-i/2,0),l=-Math.min(s-r/2,0),c=-Math.min(this.fullHeight-n-i/2,0),h=r-l- -Math.min(this.fullWidth-s-r/2,0),d=i-c- -Math.min(n-i/2,0);return[Math.round(o),Math.round(a),Math.round(h),Math.round(d)]}computeUp(e){e===X.RT.Global?this._computeUpGlobal():this._computeUpLocal()}screenToRender(e,t){const r=e[0]*this.pixelRatio,i=this.fullHeight-e[1]*this.pixelRatio;return t[0]=r,t[1]=i,t}renderToScreen(e,t){const r=e[0]/this.pixelRatio,i=(this.fullHeight-e[1])/this.pixelRatio;t[0]=r,t[1]=i}_computeUpGlobal(){(0,Ie.d)(je,this.center,this.eye);const e=(0,Ie.l)(this.center);e<1?((0,Ie.i)(this._up,0,0,1),this._markViewDirty(),this.notifyChange("_up")):Math.abs((0,Ie.f)(je,this.center))>.9999*(0,Ie.l)(je)*e||((0,Ie.e)(this._up,je,this.center),(0,Ie.e)(this._up,this._up,je),(0,Ie.n)(this._up,this._up),this.notifyChange("_up"),this._markViewDirty())}_computeUpLocal(){(0,Ie.o)(je,this.eye,this.center),Math.abs(je[2])<=.9999&&((0,Ie.h)(je,je,je[2]),(0,Ie.i)(this._up,-je[0],-je[1],1-je[2]),(0,Ie.n)(this._up,this._up),this.notifyChange("_up"),this._markViewDirty())}_compareAndSetView(e,t,r=""){"number"==typeof e[0]&&isFinite(e[0])&&"number"==typeof e[1]&&isFinite(e[1])&&"number"==typeof e[2]&&isFinite(e[2])?(0,Ie.p)(e,t)||((0,Ie.c)(t,e),this._markViewDirty(),r.length&&this.notifyChange(r)):c.A.getLogger("esri.views.3d.webgl-engine.lib.RenderCamera").warn("RenderCamera vector contains invalid number, ignoring value")}_markViewDirty(){this._viewDirty=!0,this._frustumDirty=!0,this._viewProjectionDirty=!0}_recomputeFrustum(){this._frustumDirty&&((0,De.ui)(this.viewMatrix,this.projectionMatrix,this._frustum),this._frustumDirty=!1)}_ensureViewClean(){this._viewDirty&&((0,Ce.t5)(this._viewMatrix,this.eye,this.center,this.up),this.notifyChange("_viewMatrix"),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0)}};(0,i._)([(0,a.MZ)()],Ne.prototype,"_viewport",void 0),(0,i._)([(0,a.MZ)()],Ne.prototype,"_padding",void 0),(0,i._)([(0,a.MZ)()],Ne.prototype,"_fov",void 0),(0,i._)([(0,a.MZ)()],Ne.prototype,"_nearFar",void 0),(0,i._)([(0,a.MZ)()],Ne.prototype,"_viewDirty",void 0),(0,i._)([(0,a.MZ)()],Ne.prototype,"_viewMatrix",void 0),(0,i._)([(0,a.MZ)()],Ne.prototype,"_pixelRatio",void 0),(0,i._)([(0,a.MZ)()],Ne.prototype,"pixelRatio",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"row",void 0),(0,i._)([(0,a.MZ)()],Ne.prototype,"column",void 0),(0,i._)([(0,a.MZ)()],Ne.prototype,"_rows",void 0),(0,i._)([(0,a.MZ)()],Ne.prototype,"rows",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"_columns",void 0),(0,i._)([(0,a.MZ)()],Ne.prototype,"columns",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"eye",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"center",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"_center",void 0),(0,i._)([(0,a.MZ)()],Ne.prototype,"up",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"_up",void 0),(0,i._)([(0,a.MZ)()],Ne.prototype,"viewMatrix",null),(0,i._)([(0,a.MZ)({readOnly:!0})],Ne.prototype,"viewForward",null),(0,i._)([(0,a.MZ)({readOnly:!0})],Ne.prototype,"viewUp",null),(0,i._)([(0,a.MZ)({readOnly:!0})],Ne.prototype,"viewRight",null),(0,i._)([(0,a.MZ)({readOnly:!0})],Ne.prototype,"nearFar",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"near",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"far",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"viewport",null),(0,i._)([(0,a.MZ)({readOnly:!0})],Ne.prototype,"screenViewport",null),(0,i._)([(0,a.MZ)({readOnly:!0})],Ne.prototype,"screenPadding",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"x",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"y",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"width",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"height",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"fullWidth",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"fullHeight",null),(0,i._)([(0,a.MZ)({readOnly:!0})],Ne.prototype,"_aspect",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"padding",null),(0,i._)([(0,a.MZ)({readOnly:!0})],Ne.prototype,"projectionMatrix",null),(0,i._)([(0,a.MZ)({readOnly:!0})],Ne.prototype,"inverseProjectionMatrix",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"fov",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"fovX",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"fovY",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"viewInverseTransposeMatrix",null),(0,i._)([(0,a.MZ)({readOnly:!0})],Ne.prototype,"_projectionMatrixInternal",null),(0,i._)([(0,a.MZ)()],Ne.prototype,"relativeElevation",void 0),Ne=we=(0,i._)([(0,h.$)("esri.views.3d.webgl.RenderCamera")],Ne);const ze=Ne,Be=(0,K.vt)(),Ve=(0,Re.vt)(),je=(0,z.vt)(),He=(0,z.vt)(),Ue=(0,Ee.r_)();var Ge=r(39341);class ke{constructor(e=1/0,t=-1/0){this.near=e,this.far=t}set(e,t){this.near=e,this.far=t}union(e){null!=e&&(this.near=Math.min(this.near,e.near),this.far=Math.max(this.far,e.far))}within(e){return this.near<=e&&e<=this.far}}ke.zero=new ke(0,0);var qe=r(62258),Ze=r(78230),We=r(620),Ye=r(77690),Xe=r(29242),$e=r(13030),Je=r(32728),Qe=r(48852),Ke=r(63907);class et{constructor(e,t,r){this._elementSize=t,this._buffer=Qe.g.createVertex(e,Ke._U.STATIC_DRAW),this.resize(r)}destroy(){this._buffer.dispose()}get elementSize(){return this._elementSize}get capacity(){return this._capacity}get array(){return this._array}get buffer(){return this._buffer}get usedMemory(){return this._array.byteLength+this._buffer.usedMemory}copyRange(e,t,r,i=0){const s=new Uint8Array(this.array,e*this.elementSize,(t-e)*this.elementSize);new Uint8Array(r.array,i*this.elementSize).set(s)}transferAll(){this._buffer.setData(this._array)}transferRange(e,t){const r=e*this._elementSize,i=t*this._elementSize;this._buffer.setSubData(new Uint8Array(this._array),r,r,i)}resize(e){const t=e*this._elementSize,r=new ArrayBuffer(t);this._array&&(e>=this._capacity?new Uint8Array(r).set(new Uint8Array(this._array)):new Uint8Array(r).set(new Uint8Array(this._array).subarray(0,e*this._elementSize))),this._array=r,this._buffer.setSize(t),this._capacity=e}}class tt{constructor(e){this.modelOriginHi=e.getField(Se.r.INSTANCEMODELORIGINHI,$e.xs),this.modelOriginLo=e.getField(Se.r.INSTANCEMODELORIGINLO,$e.xs),this.model=e.getField(Se.r.INSTANCEMODEL,$e.jZ),this.modelNormal=e.getField(Se.r.INSTANCEMODELNORMAL,$e.jZ),this.featureAttribute=e.getField(Se.r.INSTANCEFEATUREATTRIBUTE,$e.Eq),this.color=e.getField(Se.r.INSTANCECOLOR,$e.XP),this.objectAndLayerIdColor=e.getField(Se.r.INSTANCEOBJECTANDLAYERIDCOLOR,$e.XP)}}class rt{constructor(e,t){this._rctx=e,this._instanceBufferLayout=t,this._headIndex=0,this._tailIndex=0,this._firstIndex=null,this._captureFirstIndex=!0,this._updating=!1,this._prevHeadIndex=0,this._resized=!1,this._capacity=1}destroy(){this._buffer&&this._buffer.destroy()}get buffer(){return this._buffer.buffer}get view(){return this._view}get capacity(){return this._capacity}get size(){const e=this._headIndex,t=this._tailIndex;return e>=t?e-t:e+this._capacity-t}get isEmpty(){return this._headIndex===this._tailIndex}get isFull(){return this._tailIndex===(this._headIndex+1)%this._capacity}get headIndex(){return this._headIndex}get tailIndex(){return this._tailIndex}get firstIndex(){return this._firstIndex}get usedMemory(){return this._buffer?.usedMemory??0}reset(){this._headIndex=0,this._tailIndex=0,this._firstIndex=null}startUpdateCycle(){this._captureFirstIndex=!0}beginUpdate(){(0,We.vA)(!this._updating,"already updating"),this._updating=!0,this._prevHeadIndex=this._headIndex}endUpdate(){(0,We.vA)(this._updating,"not updating"),this.size<_.$U*this.capacity&&this._shrink(),this._resized?(this._buffer.transferAll(),this._resized=!1):this._transferRange(this._prevHeadIndex,this._headIndex),this._updating=!1}allocateHead(){(0,We.vA)(this._updating,"not updating"),this.isFull&&this._grow();const e=this.headIndex;return this._captureFirstIndex&&(this._firstIndex=e,this._captureFirstIndex=!1),this._incrementHead(),(0,We.vA)(this._headIndex!==this._tailIndex,"invalid pointers"),e}freeTail(){(0,We.vA)(this._updating,"not updating"),(0,We.vA)(this.size>0,"invalid size");const e=this._tailIndex===this._firstIndex;this._incrementTail(),e&&(this._firstIndex=this._tailIndex)}_grow(){const e=Math.max(it,Math.floor(this._capacity*_.Ji));this._resize(e)}_shrink(){const e=Math.max(it,Math.floor(this._capacity*_.He));this._resize(e)}_resize(e){if((0,We.vA)(this._updating,"not updating"),e===this._capacity)return;const t=new et(this._rctx,this._instanceBufferLayout.stride,e);if(this._buffer){this._firstIndex&&(this._firstIndex=(this._firstIndex+this._capacity-this._tailIndex)%this._capacity);const e=this.size,r=this._compactInstances(t);(0,We.vA)(r===e,"invalid compaction"),this._buffer.destroy(),this._tailIndex=0,this._headIndex=r,this._prevHeadIndex=0}this._resized=!0,this._capacity=e,this._buffer=t,this._view=new tt(this._instanceBufferLayout.createView(this._buffer.array))}_compactInstances(e){const t=this._headIndex,r=this._tailIndex;return r<t?(this._buffer.copyRange(r,t,e),t-r):r>t?(this._buffer.copyRange(r,this._capacity,e),t>0&&this._buffer.copyRange(0,t,e,this._capacity-r),t+(this._capacity-r)):0}_incrementHead(e=1){this._headIndex=(this._headIndex+e)%this._capacity}_incrementTail(e=1){this._tailIndex=(this._tailIndex+e)%this._capacity}_transferRange(e,t){e<t?this._buffer.transferRange(e,t):e>t&&(t>0&&this._buffer.transferRange(0,t),this._buffer.transferRange(e,this._capacity))}}const it=64;var st;!function(e){e[e.ALLOCATED=1]="ALLOCATED",e[e.DEFAULT_ACTIVE=2]="DEFAULT_ACTIVE",e[e.VISIBLE=4]="VISIBLE",e[e.HIGHLIGHT=8]="HIGHLIGHT",e[e.HIGHLIGHT_ACTIVE=16]="HIGHLIGHT_ACTIVE",e[e.REMOVE=32]="REMOVE",e[e.TRANSFORM_CHANGED=64]="TRANSFORM_CHANGED",e[e.ACTIVE=18]="ACTIVE"}(st||(st={}));class nt{constructor(e){this.localTransform=e.getField(Se.r.LOCALTRANSFORM,$e.E$),this.globalTransform=e.getField(Se.r.GLOBALTRANSFORM,$e.E$),this.modelOrigin=e.getField(Se.r.MODELORIGIN,$e.Xm),this.model=e.getField(Se.r.INSTANCEMODEL,$e.jZ),this.modelNormal=e.getField(Se.r.INSTANCEMODELNORMAL,$e.jZ),this.modelScaleFactors=e.getField(Se.r.MODELSCALEFACTORS,$e.gH),this.boundingSphere=e.getField(Se.r.BOUNDINGSPHERE,$e.Aj),this.featureAttribute=e.getField(Se.r.FEATUREATTRIBUTE,$e.Eq),this.color=e.getField(Se.r.COLOR,$e.XP),this.objectAndLayerIdColor=e.getField(Se.r.OBJECTANDLAYERIDCOLOR,$e.XP),this.state=e.getField(Se.r.STATE,$e.SL),this.lodLevel=e.getField(Se.r.LODLEVEL,$e.SL)}}let ot=class extends p.A{constructor(e,t){super(e),this.events=new s.A,this._capacity=0,this._size=0,this._next=0,this._highlightOptionsMap=new Map,this._highlightOptionsMapPrev=new Map,this._layout=function(e){let t=(0,Me.BP)().mat4f64(Se.r.LOCALTRANSFORM).mat4f64(Se.r.GLOBALTRANSFORM).vec4f64(Se.r.BOUNDINGSPHERE).vec3f64(Se.r.MODELORIGIN).mat3f(Se.r.INSTANCEMODEL).mat3f(Se.r.INSTANCEMODELNORMAL).vec2f(Se.r.MODELSCALEFACTORS);return e.includes(Se.r.FEATUREATTRIBUTE)&&(t=t.vec4f(Se.r.FEATUREATTRIBUTE)),e.includes(Se.r.COLOR)&&(t=t.vec4u8(Se.r.COLOR)),e.includes(Se.r.OBJECTANDLAYERIDCOLOR)&&(t=t.vec4u8(Se.r.OBJECTANDLAYERIDCOLOR)),t=t.u8(Se.r.STATE).u8(Se.r.LODLEVEL),t}(t),this._capacity=it,this._buffer=this._layout.createBuffer(this._capacity),this._view=new nt(this._buffer)}get capacity(){return this._capacity}get size(){return this._size}get view(){return this._view}addInstance(){this._size+1>this._capacity&&this._grow();const e=this._findSlot();return this._view.state.set(e,st.ALLOCATED),this._size++,this.events.emit("instances-changed"),e}removeInstance(e){const t=this._view.state;(0,We.vA)(e>=0&&e<this._capacity&&!!(t.get(e)&st.ALLOCATED),"invalid instance handle"),this._getStateFlag(e,st.ACTIVE)?this._setStateFlags(e,st.REMOVE):this.freeInstance(e),this.events.emit("instances-changed")}freeInstance(e){const t=this._view.state;(0,We.vA)(e>=0&&e<this._capacity&&!!(t.get(e)&st.ALLOCATED),"invalid instance handle"),t.set(e,0),this._size--}setLocalTransform(e,t,r=!0){this._view.localTransform.setMat(e,t),r&&this.updateModelTransform(e)}getLocalTransform(e,t){this._view.localTransform.getMat(e,t)}setGlobalTransform(e,t,r=!0){this._view.globalTransform.setMat(e,t),r&&this.updateModelTransform(e)}getGlobalTransform(e,t){this._view.globalTransform.getMat(e,t)}updateModelTransform(e){const t=this._view,r=at,i=lt;t.localTransform.getMat(e,ct),t.globalTransform.getMat(e,ht);const s=(0,Ce.lw)(ht,ht,ct);(0,Ie.i)(r,s[12],s[13],s[14]),t.modelOrigin.setVec(e,r),(0,Ye.z0)(i,s),t.model.setMat(e,i);const n=(0,Je.wp)(at,s);n.sort(),t.modelScaleFactors.set(e,0,n[1]),t.modelScaleFactors.set(e,1,n[2]),(0,Ye.B8)(i,i),(0,Ye.mg)(i,i),t.modelNormal.setMat(e,i),this._setStateFlags(e,st.TRANSFORM_CHANGED),this.events.emit("instance-transform-changed",{index:e})}getModelTransform(e,t){const r=this._view;r.model.getMat(e,lt),r.modelOrigin.getVec(e,at),t[0]=lt[0],t[1]=lt[1],t[2]=lt[2],t[3]=0,t[4]=lt[3],t[5]=lt[4],t[6]=lt[5],t[7]=0,t[8]=lt[6],t[9]=lt[7],t[10]=lt[8],t[11]=0,t[12]=at[0],t[13]=at[1],t[14]=at[2],t[15]=1}applyShaderTransformation(e,t){null!=this.shaderTransformation&&this.shaderTransformation.applyTransform(this,e,t)}getCombinedModelTransform(e,t){return this.getModelTransform(e,t),null!=this.shaderTransformation&&this.shaderTransformation.applyTransform(this,e,t),t}getCombinedLocalTransform(e,t){this._view.localTransform.getMat(e,t),null!=this.shaderTransformation&&this.shaderTransformation.applyTransform(this,e,t)}getCombinedMaxScaleFactor(e){let t=this._view.modelScaleFactors.get(e,1);return null!=this.shaderTransformation&&(this.shaderTransformation.scaleFactor(at,this,e),t*=Math.max(at[0],at[1],at[2])),t}getCombinedMedianScaleFactor(e){let t=this._view.modelScaleFactors.get(e,0);return null!=this.shaderTransformation&&(this.shaderTransformation.scaleFactor(at,this,e),t*=function(e,t,r){return Math.max(Math.min(e,t),Math.min(Math.max(e,t),r))}(at[0],at[1],at[2])),t}getModel(e,t){this._view.model.getMat(e,t)}setFeatureAttribute(e,t){this._view.featureAttribute.setVec(e,t)}getFeatureAttribute(e,t){this._view.featureAttribute.getVec(e,t)}setColor(e,t){this._view.color.setVec(e,t)}setObjectAndLayerIdColor(e,t){this._view.objectAndLayerIdColor.setVec(e,t)}setVisible(e,t){t!==this.getVisible(e)&&(this._setStateFlag(e,st.VISIBLE,t),this.events.emit("instance-visibility-changed",{index:e}))}getVisible(e){return this._getStateFlag(e,st.VISIBLE)}setHighlight(e,t){const{_highlightOptionsMap:r}=this,i=r.get(e);t?t!==i&&(r.set(e,t),this._setStateFlag(e,st.HIGHLIGHT,!0),this.events.emit("instance-highlight-changed")):i&&(r.delete(e),this._setStateFlag(e,st.HIGHLIGHT,!1),this.events.emit("instance-highlight-changed"))}get highlightOptionsMap(){return this._highlightOptionsMap}getHighlightStateFlag(e){return this._getStateFlag(e,st.HIGHLIGHT)}geHighlightOptionsPrev(e){const t=this._highlightOptionsMapPrev.get(e)??null;return this._highlightOptionsMapPrev.delete(e),t}getHighlightName(e){const t=this.highlightOptionsMap.get(e)??null;return t?this._highlightOptionsMapPrev.set(e,t):this._highlightOptionsMapPrev.delete(e),t}getState(e){return this._view.state.get(e)}getLodLevel(e){return this._view.lodLevel.get(e)}countFlags(e){let t=0;for(let r=0;r<this._capacity;++r)this.getState(r)&e&&++t;return t}_setStateFlags(e,t){const r=this._view.state;t=r.get(e)|t,r.set(e,t)}_clearStateFlags(e,t){const r=this._view.state;t=r.get(e)&~t,r.set(e,t)}_setStateFlag(e,t,r){r?this._setStateFlags(e,t):this._clearStateFlags(e,t)}_getStateFlag(e,t){return!!(this._view.state.get(e)&t)}_grow(){this._capacity=Math.max(it,Math.floor(this._capacity*_.Ji)),this._buffer=this._layout.createBuffer(this._capacity).copyFrom(this._buffer),this._view=new nt(this._buffer)}_findSlot(){const e=this._view.state;let t=this._next;for(;e.get(t)&st.ALLOCATED;)t=t+1===this._capacity?0:t+1;return this._next=t+1===this._capacity?0:t+1,t}};(0,i._)([(0,a.MZ)({constructOnly:!0})],ot.prototype,"shaderTransformation",void 0),(0,i._)([(0,a.MZ)()],ot.prototype,"_size",void 0),(0,i._)([(0,a.MZ)({readOnly:!0})],ot.prototype,"size",null),ot=(0,i._)([(0,h.$)("esri.views.3d.webgl-engine.lib.lodRendering.InstanceData")],ot);const at=(0,z.vt)(),lt=(0,Xe.vt)(),ct=(0,Re.vt)(),ht=(0,Re.vt)();var dt=r(97937);class ut extends Ze.A{constructor(e,t){super((e=>(0,dt.w)(this._instanceData.view.boundingSphere.getVec(e,this._tmpSphere))),{maximumDepth:25}),this._instanceData=e,this._boundingSphere=t,this._tmpSphere=(0,dt.c)(),this._tmpMat4=(0,Re.vt)()}addInstance(e){const t=this._instanceData.view.boundingSphere,r=this._instanceData.getCombinedModelTransform(e,this._tmpMat4);(0,Ie.t)((0,dt.a)(this._tmpSphere),this._boundingSphere.center,r),this._tmpSphere[3]=this._boundingSphere.radius*(0,Je.hG)(r),t.setVec(e,this._tmpSphere),this.add([e])}removeInstance(e){this.remove([e])}}class ft{constructor(e,t){this._worldSpaceRadius=e,this._minScreenSpaceRadii=t}selectLevel(e,t,r){const i=r.computeScreenPixelSizeAt(e),s=this._worldSpaceRadius*t/i;let n=0;for(let e=1;e<this._minScreenSpaceRadii.length;++e)s>=this._minScreenSpaceRadii[e]&&(n=e);return n}}r(65215);var pt=r(86305);r(16396);class _t{get ray(){return this._ray}get distanceInRenderSpace(){return null!=this.dist?((0,Ie.h)(gt,this.ray.direction,this.dist),(0,Ie.l)(gt)):null}withinDistance(e){return!!(0,pt.i3)(this)&&this.distanceInRenderSpace<=e}getIntersectionPoint(e){return!!(0,pt.i3)(this)&&((0,Ie.h)(gt,this.ray.direction,this.dist),(0,Ie.g)(e,this.ray.origin,gt),!0)}getTransformedNormal(e){return(0,Ie.c)(mt,this.normal),mt[3]=0,(0,Fe.t)(mt,mt,this.transformation),(0,Ie.c)(e,mt),(0,Ie.n)(e,e)}constructor(e){this.intersector=qe.dz.OBJECT,this.normal=(0,z.vt)(),this.transformation=(0,Re.vt)(),this._ray=(0,Le.vt)(),this.init(e)}init(e){this.dist=null,this.target=null,this.drapedLayerOrder=null,this.drapedLayerGraphicOrder=null,this.intersector=qe.dz.OBJECT,(0,Le.C)(e,this._ray)}set(e,t,r,i,s,n,o){this.intersector=e,this.dist=r,(0,Ie.c)(this.normal,i??z.Cb),(0,Ce.C)(this.transformation,s??Re.zK),this.target=t,this.drapedLayerOrder=n,this.drapedLayerGraphicOrder=o}copy(e){(0,Le.C)(e.ray,this._ray),this.intersector=e.intersector,this.dist=e.dist,this.target=e.target,this.drapedLayerOrder=e.drapedLayerOrder,this.drapedLayerGraphicOrder=e.drapedLayerGraphicOrder,(0,Ie.c)(this.normal,e.normal),(0,Ce.C)(this.transformation,e.transformation)}}const gt=(0,z.vt)(),mt=(0,K.vt)();var yt=r(42293);const vt=()=>c.A.getLogger("esri.views.webgl.VertexArrayObject");let xt=class{constructor(e,t,r,i,s=null){this._context=e,this._locations=t,this._layout=r,this._buffers=i,this._indexBuffer=s,this._glName=null,this._initialized=!1}get glName(){return this._glName}get context(){return this._context}get vertexBuffers(){return this._buffers}get indexBuffer(){return this._indexBuffer}get byteSize(){return Array.from(this._buffers.values()).reduce(((e,t)=>e+t.usedMemory),null!=this._indexBuffer?this._indexBuffer.usedMemory:0)}get layout(){return this._layout}get locations(){return this._locations}get usedMemory(){return this.byteSize+(this._buffers.size+(this._indexBuffer?1:0))*b.i5}get cachedMemory(){return this.usedMemory}dispose(){this._context?(this._context.getBoundVAO()===this&&this._context.bindVAO(null),this._buffers.forEach((e=>e.dispose())),this._buffers.clear(),this._indexBuffer=(0,Q.WD)(this._indexBuffer),this.disposeVAOOnly()):(this._glName||this._buffers.size>0)&&vt().warn("Leaked WebGL VAO")}disposeVAOOnly(){this._glName&&(this._context.gl.deleteVertexArray(this._glName),this._glName=null,this._context.instanceCounter.decrement(Ke.vt.VertexArrayObject,this)),this._context=null}initialize(){if(this._initialized)return;const{gl:e}=this._context,t=e.createVertexArray();e.bindVertexArray(t),this._bindLayout(),e.bindVertexArray(null),this._glName=t,this._context.instanceCounter.increment(Ke.vt.VertexArrayObject,this),this._initialized=!0}bind(){this.initialize(),this._context.gl.bindVertexArray(this.glName)}_bindLayout(){const{_buffers:e,_layout:t,_indexBuffer:r}=this;e||vt().error("Vertex buffer dictionary is empty!");const i=this._context.gl;this._buffers.forEach(((e,r)=>{const i=t.get(r);i?(0,yt.yu)(this._context,this._locations,e,i):vt().error("Vertex element descriptor is empty!")})),null!=r&&i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,r.glName)}unbind(){this.initialize(),this._context.gl.bindVertexArray(null)}};class bt extends xt{}var wt=r(87582);class Tt{constructor(e,t){const r=e.renderContext.rctx,i=t.geometry;let s=null;s=i instanceof Ae.J?function(e,t,r,i=null){const s=e.createBufferWriter(),n=s.vertexBufferLayout,o=s.elementCount(t),a=n.createBuffer(o);return s.write(null,null,t,i,a,0),{material:e,vertexBufferLayout:n,buffer:a.buffer,elementCount:o,boundingInfo:r}}(i.material,i.attributes,i.boundingInfo):i;const n=s.material;this._materials=e.materials,n.setParameters({instancedDoublePrecision:!0}),this.geometry=i,this.material=n,this.glMaterials=new _e(n,this._materials),this.vertexBufferLayout=s.vertexBufferLayout,this.vbo=Qe.g.createVertex(r,Ke._U.STATIC_DRAW,s.buffer),this.vao=new bt(r,Ge.D,new Map([["geometry",(0,le.U)(s.vertexBufferLayout)]]),new Map([["geometry",this.vbo]])),this.vertexCount=s.elementCount}destroy(){this.glMaterials.dispose(),this.vbo.dispose(),this.vao.dispose()}get boundingInfo(){return this.geometry.boundingInfo}get triangleCount(){return this.vertexCount/3}get usedMemory(){return 128+this.vbo.usedMemory+this.vao.usedMemory}intersect(e,t,r,i,s,n,o,a){if(!(this.geometry instanceof Ae.J))return;const l=this.geometry.id;this.material.intersect(this.geometry,e.transform.transform,e,r,i,((r,i,c,h,d)=>{if(r>=0){if(null!=t&&!t(e.rayBegin,e.rayEnd,r))return;const h=new wt.h(n.layerUid,n.graphicUid(s),l,c,o,a);if((null==e.results.min.drapedLayerOrder||d>=e.results.min.drapedLayerOrder)&&(null==e.results.min.dist||r<e.results.min.dist)&&e.results.min.set(qe.dz.LOD,h,r,i,e.transform.transform,d),e.options.store!==qe.oH.MIN&&(null==e.results.max.drapedLayerOrder||d>=e.results.max.drapedLayerOrder)&&(null==e.results.max.dist||r>e.results.max.dist)&&e.results.max.set(qe.dz.LOD,h,r,i,e.transform.transform,d),e.options.store===qe.oH.ALL){const t=function(e){return new _t(e)}(e.results.min.ray);t.set(qe.dz.LOD,h,r,i,e.transform.transform,d),e.results.all.push(t)}}}))}}class At{static async create(e,t,r){const i=await Promise.allSettled(t.components.map((t=>e.controller.schedule((()=>new Tt(e,t)),r)))),s=i.map((e=>"fulfilled"===e.status?e.value:null)).filter(_.Ru);if((0,n.G4)(r)||s.length!==i.length){s.forEach((e=>e.destroy())),(0,n.Te)(r);for(const e of i)if("rejected"===e.status)throw e.reason}return new At(t.minScreenSpaceRadius,s)}constructor(e,t){this.minScreenSpaceRadius=e,this.components=t}destroy(){this.components.forEach((e=>e.destroy()))}intersect(e,t,r,i,s,n,o){this.components.forEach((a=>a.intersect(e,t,r,i,s,n,this.boundingSphere,o)))}get boundingBox(){if(null==this._boundingBox){const e=(0,B.Ie)();this.components.forEach((t=>{null!=t.boundingInfo&&((0,B.iT)(e,t.boundingInfo.bbMin),(0,B.iT)(e,t.boundingInfo.bbMax))})),this._boundingBox=e}return this._boundingBox}get boundingSphere(){if(null==this._boundingSphere){const e=this.boundingBox,t=(0,z.vt)();(0,B.gX)(e,t),this._boundingSphere={center:t,radius:.5*(0,B._F)(e)}}return this._boundingSphere}get triangleCount(){return this.components.reduce(((e,t)=>e+t.triangleCount),0)}}var St=r(43616),Ot=r(28449);const Rt=(0,z.vt)(),It=new Float32Array(6);var Mt=r(97225),Et=r(63076);let Ct=class extends fe{constructor(e,t){super(e),this.type=qe.dz.LOD,this.isGround=!1,this._levels=[],this._defaultRenderInstanceData=new Array,this._highlightRenderInstanceDataMap=new Map,this._instanceIndex=0,this._cycleStartIndex=0,this._slicePlane=!1,this._camera=new ze,this._updateCyclesWithStaticCamera=-1,this._needFullCycle=!1,this.produces=new Map([[ge.N.OPAQUE_MATERIAL,e=>this._produces(e)],[ge.N.TRANSPARENT_MATERIAL,e=>!!this._hasTransparentLevels()&&this._produces(e)]]),this._instanceData=new ot({shaderTransformation:e.shaderTransformation},e.optionalFields),this.addHandles(t.registerTask(Et.W6.LOD_RENDERER,this))}initialize(){this._instanceBufferLayout=function(e){let t=(0,Me.BP)().vec3f(Se.r.INSTANCEMODELORIGINHI).vec3f(Se.r.INSTANCEMODELORIGINLO).mat3f(Se.r.INSTANCEMODEL).mat3f(Se.r.INSTANCEMODELNORMAL);return null!=e&&e.includes("featureAttribute")&&(t=t.vec4f(Se.r.INSTANCEFEATUREATTRIBUTE)),null!=e&&e.includes("color")&&(t=t.vec4u8(Se.r.INSTANCECOLOR)),null!=e&&e.includes("objectAndLayerIdColor")&&(t=t.vec4u8(Se.r.INSTANCEOBJECTANDLAYERIDCOLOR)),t}(this.optionalFields),this._glInstanceBufferLayout=(0,le.U)(this._instanceBufferLayout,1),this.addHandles([this._instanceData.events.on("instances-changed",(()=>this._requestUpdateCycle())),this._instanceData.events.on("instance-transform-changed",(({index:e})=>{this._requestUpdateCycle(),this.metadata.notifyGraphicGeometryChanged(e)})),this._instanceData.events.on("instance-visibility-changed",(({index:e})=>{this._requestUpdateCycle(!0),this.metadata.notifyGraphicVisibilityChanged(e)})),this._instanceData.events.on("instance-highlight-changed",(()=>this._requestUpdateCycle(!0)))])}get _allRenderInstanceData(){const e=[this._defaultRenderInstanceData];for(const t of this._highlightRenderInstanceDataMap)e.push(t[1]);return e}hasHighlightOptions(e){return this._highlightRenderInstanceDataMap.has(e)}get _enableLevelSelection(){return this.symbol.levels.length>1}get levels(){return this._levels}get baseBoundingBox(){return this._levels[this._levels.length-1].boundingBox}get baseBoundingSphere(){return this._levels[this._levels.length-1].boundingSphere}get baseMaterial(){return this._levels[this._levels.length-1].components[0].material}get slicePlaneEnabled(){return this._slicePlane}set slicePlaneEnabled(e){this._slicePlane=e}get layerUid(){return this.metadata.layerUid}get instanceData(){return this._instanceData}get hasEmissions(){return this._levels.some((e=>e.components.some((e=>e.material.hasEmissions))))}get usedMemory(){return this._allRenderInstanceData.reduce(((e,t)=>t.reduce(((e,t)=>e+t.usedMemory),e)),this._levels.reduce(((e,t)=>e+t.components.reduce(((e,t)=>e+t.usedMemory),0)),0))}get renderStats(){const e=this._instanceData.size,t=[];return this._levels.forEach(((e,r)=>{const i=this._allRenderInstanceData[0][r].size+this._allRenderInstanceData[1][r].size,s=e.triangleCount;t.push({renderedInstances:i,renderedTriangles:i*s,trianglesPerInstance:s})})),{totalInstances:e,renderedInstances:t.reduce(((e,t)=>e+t.renderedInstances),0),renderedTriangles:t.reduce(((e,t)=>e+t.renderedTriangles),0),levels:t}}_createRenderInstanceDataArray(e=[]){const{rctx:t}=this._context.renderContext;return this.symbol.levels.map((r=>{e.push(new rt(t,this._instanceBufferLayout))})),e}async initializeRenderContext(e,t){this._context=e,this._createRenderInstanceDataArray(this._defaultRenderInstanceData);const r=await Promise.allSettled(this.symbol.levels.map((r=>At.create(e,r,t)))),i=r.map((e=>"fulfilled"===e.status?e.value:null)).filter(_.Ru);if((0,n.G4)(t)||i.length!==r.length){i.forEach((e=>e.destroy())),(0,n.Te)(t);for(const e of r)if("rejected"===e.status)throw e.reason}this._levels=i,this._levelSelector=(e=>{const t=e.baseBoundingSphere.radius,r=e.levels.map((e=>e.minScreenSpaceRadius));return new ft(t,r)})(this)}uninitializeRenderContext(){this._invalidateOctree(),this._levels.forEach((e=>e.destroy())),this._defaultRenderInstanceData.forEach((e=>e.destroy())),this._highlightRenderInstanceDataMap.forEach((e=>e.forEach((e=>e.destroy()))))}_hasTransparentLevels(){return this._levels.some((e=>e.components.some((e=>{const t=e.material.produces.get(ge.N.TRANSPARENT_MATERIAL);return t?.(ce.V.Color)}))))}hasHighlights(){return(0,Oe.Bs)(this._highlightRenderInstanceDataMap,(e=>e.some((e=>e.size>0))))}_produces(e){return e!==ce.V.Highlight&&e!==ce.V.ShadowHighlight||this.hasHighlights()}prepareRender(e){if(!ie.b.LOD_INSTANCE_RENDERER_DISABLE_UPDATES){if(this._enableLevelSelection){const t=e.bind.contentCamera.equals(this._camera);this._camera.copyFrom(e.bind.contentCamera),t||this._requestUpdateCycle()}this._needFullCycle&&(this.runTask(Et.Bb),this._needFullCycle=!1)}}acquireTechniques(e){if(!this.baseMaterial.visible||!this.baseMaterial.isVisibleForOutput(e.output))return null;const t=this._getInstanceDatas(e);if(!t)return null;const r=new Array,i=this.levels;return t.forEach((t=>i.forEach((({components:i},s)=>i.forEach((i=>r.push(this._beginComponent(e,t[s],i)))))))),r}render(e,t){const r=this._getInstanceDatas(e);if(!r||null==t)return;let i=0;e.rctx.bindVAO();const s=this.levels;r.forEach((r=>s.forEach((({components:s},n)=>s.forEach((s=>this._renderComponent(e,t[i++],r[n],s,n)))))))}_getInstanceDatas(e){const{output:t,bind:r}=e,i=t===ce.V.Highlight,s=!i&&t!==ce.V.ShadowHighlight,n=t!==ce.V.ShadowExcludeHighlight;if(s)return n?this._allRenderInstanceData:[this._defaultRenderInstanceData];if(n){if(i){const e=r.highlight?.name;if(!e)return null;const t=this._highlightRenderInstanceDataMap.get(e);return t?[t]:null}return Array.from(this._highlightRenderInstanceDataMap.values())}return null}intersect(e,t,r,i){if(!this.baseMaterial.visible||null==this._octree)return;const s=(0,z.vt)();(0,Ie.d)(s,i,r);const n=s=>{this._instanceData.getCombinedModelTransform(s,Pt),e.transform.set(Pt),(0,Ie.t)(Nt,r,e.transform.inverse),(0,Ie.t)(zt,i,e.transform.inverse);const n=this._instanceData.getState(s),o=this._instanceData.getLodLevel(s),a=this._levels.length;(0,We.vA)(!!(n&st.ACTIVE),"invalid instance state"),(0,We.vA)(o>=0&&o<a,"invaid lod level"),this._levels[o].intersect(e,t,Nt,zt,s,this.metadata,a)};this.baseMaterial.parameters.verticalOffset?this._octree.forEach(n):this._octree.forEachAlongRay(r,s,n)}notifyShaderTransformationChanged(){this._invalidateOctree(),this._requestUpdateCycle()}get _octree(){if(null==this._octreeCached){const e=this._instanceData,t=e.view?.state;if(!t)return null;this._octreeCached=new ut(e,this.baseBoundingSphere);for(let r=0;r<e.capacity;++r)t.get(r)&st.ACTIVE&&this._octreeCached.addInstance(r)}return this._octreeCached}_invalidateOctree(){this._octreeCached=(0,Q.pR)(this._octreeCached)}queryDepthRange(e){if(null==this._octree)return new ke;const t=e.viewForward,r=this._octree.findClosest(t,Ze.A.DepthOrder.FRONT_TO_BACK,e.frustum),i=this._octree.findClosest(t,Ze.A.DepthOrder.BACK_TO_FRONT,e.frustum);if(null==r||null==i)return new ke;const s=e.eye,n=this._instanceData.view;n.boundingSphere.getVec(r,Lt),(0,Ie.d)(Lt,Lt,s);const o=(0,Ie.f)(Lt,t)-Lt[3];n.boundingSphere.getVec(i,Lt),(0,Ie.d)(Lt,Lt,s);const a=(0,Ie.f)(Lt,t)+Lt[3];return new ke(o,a)}_requestUpdateCycle(e=!1){this._updateCyclesWithStaticCamera=-1,this._cycleStartIndex=this._instanceIndex,e&&(this._needFullCycle=!0,this._context.requestRender())}_startUpdateCycle(){this._updateCyclesWithStaticCamera++,this._allRenderInstanceData.forEach((e=>e.forEach((e=>e.startUpdateCycle()))))}get running(){return this._instanceData.size>0&&this._updateCyclesWithStaticCamera<1}runTask(e){const{_enableLevelSelection:t,_camera:r,_levelSelector:i}=this;this._allRenderInstanceData.forEach((e=>e.forEach((e=>e.beginUpdate()))));const s=this._instanceData,n=s.view;let o=s.size;const a=s.capacity;let l=this._instanceIndex;const c=Math.ceil(a/500);for(let h=0;h<o&&!e.done;++h){l===this._cycleStartIndex&&this._startUpdateCycle();const h=n.state.get(l);let d=0;if(!(h&st.ALLOCATED)){l=l+1===a?0:l+1,o++;continue}const u=n.lodLevel.get(l);if(h&st.DEFAULT_ACTIVE&&this._defaultRenderInstanceData[u].freeTail(),h&st.HIGHLIGHT_ACTIVE){const e=s.geHighlightOptionsPrev(l);if(e){const t=this._highlightRenderInstanceDataMap.get(e);if(!t)throw new P.A("Internal error in lodRenderer");t[u].freeTail()}}if(h&st.REMOVE)s.freeInstance(l);else if(h&st.VISIBLE){let e=0;if(t&&(n.modelOrigin.getVec(l,Dt),e=i.selectLevel(Dt,s.getCombinedMedianScaleFactor(l),r)),d=h&~(st.ACTIVE|st.TRANSFORM_CHANGED),e>=0)if(h&st.HIGHLIGHT){const t=s.getHighlightName(l);if(t){const r=()=>{const e=this._createRenderInstanceDataArray();return e.forEach((e=>e.beginUpdate())),e},i=(0,Oe.tE)(this._highlightRenderInstanceDataMap,t,r);if(e>=i.length)throw new P.A(`LodRenderer internal error - missing lodLevel ${e}`);Ft(i[e],n,l)}d|=st.HIGHLIGHT_ACTIVE}else Ft(this._defaultRenderInstanceData[e],n,l),d|=st.DEFAULT_ACTIVE;n.state.set(l,d),n.lodLevel.set(l,e)}else d=h&~(st.ACTIVE|st.TRANSFORM_CHANGED),n.state.set(l,d);if(null!=this._octreeCached){const e=!!(h&st.ACTIVE),t=!!(d&st.ACTIVE);!e&&t?this._octreeCached.addInstance(l):e&&!t?this._octreeCached.removeInstance(l):e&&t&&h&st.TRANSFORM_CHANGED&&(this._octreeCached.removeInstance(l),this._octreeCached.addInstance(l))}l=l+1===a?0:l+1,l%c==0&&e.madeProgress()}this._instanceIndex=l,this._allRenderInstanceData.forEach((e=>e.forEach((e=>e.endUpdate())))),this._context.requestRender()}_beginComponent(e,t,r){if(0===t.size)return null;const i=r.glMaterials.load(e.rctx,e.bind.slot,e.output);return i?.beginSlot(e.bind)}_renderComponent(e,t,r,i,s){if(!t)return;const{bind:n,rctx:o}=e;o.runAppleAmdDriverHelper();const a=o.bindTechnique(t,n,i.material.parameters,Vt);o.bindVAO(i.vao),t.ensureAttributeLocations(i.vao),ie.b.LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL&&e.output===ce.V.Color&&(a.setUniform4fv("externalColor",Bt[Math.min(s,Bt.length-1)]),a.setUniform1i("colorMixMode",St.Um.replace));const l=r.capacity,c=r.headIndex,h=r.tailIndex,d=r.firstIndex,u=this._glInstanceBufferLayout,f=(e,s)=>{(0,yt.yu)(o,Ge.D,r.buffer,u,e),o.drawArraysInstanced(t.primitiveType,0,i.vertexCount,s-e),(0,yt.Hi)(o,Ge.D,r.buffer,u)};i.material.parameters.transparent&&null!=d?c>h?((0,We.vA)(d>=h&&d<=c,"invalid firstIndex"),f(d,c),f(h,d)):c<h&&(d<=c?((0,We.vA)(d>=0&&d<=c,"invalid firstIndex"),f(d,c),f(h,l),f(0,d)):((0,We.vA)(d>=h&&d<=l,"invalid firstIndex"),f(d,l),f(0,c),f(h,d))):c>h?f(h,c):c<h&&(f(0,c),f(h,l)),o.bindVAO(null)}};function Ft(e,t,r){const i=e.allocateHead();!function(e,t,r,i){(function(e,t,r,i,s){Rt[0]=e.get(t,0),Rt[1]=e.get(t,1),Rt[2]=e.get(t,2),(0,Ot.jS)(Rt,It,3),r.set(s,0,It[0]),i.set(s,0,It[1]),r.set(s,1,It[2]),i.set(s,1,It[3]),r.set(s,2,It[4]),i.set(s,2,It[5])})(e.modelOrigin,t,r.modelOriginHi,r.modelOriginLo,i),r.model.copyFrom(i,e.model,t),r.modelNormal.copyFrom(i,e.modelNormal,t),e.color&&r.color&&r.color.copyFrom(i,e.color,t),e.objectAndLayerIdColor&&r.objectAndLayerIdColor&&r.objectAndLayerIdColor.copyFrom(i,e.objectAndLayerIdColor,t),e.featureAttribute&&r.featureAttribute&&r.featureAttribute.copyFrom(i,e.featureAttribute,t)}(t,r,e.view,i)}(0,i._)([(0,a.MZ)({constructOnly:!0})],Ct.prototype,"symbol",void 0),(0,i._)([(0,a.MZ)({constructOnly:!0})],Ct.prototype,"optionalFields",void 0),(0,i._)([(0,a.MZ)({constructOnly:!0})],Ct.prototype,"metadata",void 0),(0,i._)([(0,a.MZ)({constructOnly:!0})],Ct.prototype,"shaderTransformation",void 0),(0,i._)([(0,a.MZ)()],Ct.prototype,"_instanceData",void 0),(0,i._)([(0,a.MZ)()],Ct.prototype,"_cycleStartIndex",void 0),(0,i._)([(0,a.MZ)({readOnly:!0})],Ct.prototype,"_enableLevelSelection",null),(0,i._)([(0,a.MZ)()],Ct.prototype,"_updateCyclesWithStaticCamera",void 0),(0,i._)([(0,a.MZ)({readOnly:!0})],Ct.prototype,"running",null),Ct=(0,i._)([(0,h.$)("esri.views.3d.webgl-engine.lib.lodRendering.LodRenderer")],Ct);const Dt=(0,z.vt)(),Lt=(0,K.vt)(),Pt=(0,Re.vt)(),Nt=(0,z.vt)(),zt=(0,z.vt)(),Bt=[(0,K.fA)(1,0,1,1),(0,K.fA)(0,0,1,1),(0,K.fA)(0,1,0,1),(0,K.fA)(1,1,0,1),(0,K.fA)(1,0,0,1)],Vt=new Mt.V;class jt{constructor(e,t=null){this.geometry=e,this.textures=t}get material(){return this.geometry.material}get numTriangles(){return this.geometry instanceof Ae.J?this.geometry.indexCount/3:this.geometry.elementCount/3}}class Ht{constructor(e,t,r){this.components=e,this.minScreenSpaceRadius=t,this.pivotOffset=r;const i=(0,_.Am)(this.components.map((e=>e.geometry)));this.numVertices=i.reduce(((e,t)=>e+function(e){return e instanceof Ae.J?e.attributes.get(Se.r.POSITION).indices.length:e.elementCount}(t)),0)}}class Ut{constructor(e){this.levels=e,this.levels.sort(((e,t)=>e.minScreenSpaceRadius===t.minScreenSpaceRadius?e.numVertices-t.numVertices:e.minScreenSpaceRadius-t.minScreenSpaceRadius))}}let Gt=class{constructor(e){this._optionalFields=new Array,this._featureIdToInstanceIndex=new Map,this._disposeResourceHandles=new Array,this._lodRendererResources=null,this.layerUid=e.layerUid,this.view=e.view,this.sharedResources=this.view.sharedSymbolResources,this.scheduler=this.view.resourceController.scheduler}get numFeatures(){return this._featureIdToInstanceIndex.size}get usedMemory(){const e=this._lodRendererResources?.lodRenderer,t=e?.symbol;let r=0;if(t){const e=[],i=[];t.levels.forEach((t=>t.components.forEach((t=>{t.geometry instanceof Ae.J||e.push(t.geometry),t.textures&&i.push(...t.textures)}))));const s=(0,_.Am)(e).reduce(((e,t)=>e+t.buffer.byteLength+b.i5),0);r=(0,_.Am)(i).reduce(((e,t)=>e+t.memoryEstimate),0)+s}return r+16*this._featureIdToInstanceIndex.size}destroy(){this._disposeResourceHandles.forEach((e=>e()))}async doLoad(e,t,r){(0,l.A)("enable-feature:objectAndLayerId-rendering")&&this._optionalFields.push(Se.r.OBJECTANDLAYERIDCOLOR);const i=function(e,t){const r=t.levels.map((t=>{const r=t.components.map((t=>{const r=e(t.materialId);if(!function(e){return null!=e&&"materialType"in e&&"default"===e.materialType}(r))throw new Error("LodRenderer only supports DefaultMaterial");const i=r.createBufferWriter(),s={material:r,vertexBufferLayout:i.vertexBufferLayout,buffer:t.renderGeometryBuffer.data,elementCount:t.renderGeometryBuffer.elementCount,boundingInfo:t.boundingInfo};return new jt(s)}));return new Ht(r,t.minScreenSpaceRadius)}));return new Ut(r)}((e=>t(e)),e),s=this.view._stage,o=function(e){const t=[];return e.levels.forEach((e=>e.components.forEach((e=>t.push(e.geometry.material))))),(0,_.Am)(t)}(i);s.addMany(o),this._addDisposeResource((()=>s.removeMany(o)));const a=function(e){const t=new Array;return e.levels.forEach((e=>e.components.forEach((e=>{null!=e.textures&&t.push(...e.textures)})))),(0,_.Am)(t)}(i);s.addMany(a),this._addDisposeResource((()=>{a.forEach((e=>e.unload())),s.removeMany(a)})),await Promise.all(a.map((e=>this.view._stage.schedule((()=>e.load(s.renderView.renderingContext)),r)))),(0,n.Te)(r);const c=await this._createLodRenderer(i,r);this._lodRendererResources={lodRenderer:c,materials:o,textures:a}}addInstances(e){const t=this._lodRendererResources;if(null==t)return;const{featureIds:r,localTransforms:i,globalTransforms:s}=e,n=t.lodRenderer;if(null==n)return;const o=n.instanceData,a=r.length;for(let e=0;e<a;++e){const t=r[e],n=o.addInstance(),a=o.view,l=16*e;a.localTransform.copyFromTypedBuffer(n,i,l),a.globalTransform.copyFromTypedBuffer(n,s,l),o.updateModelTransform(n),o.setVisible(n,!0),this._featureIdToInstanceIndex.set(t,n)}}removeInstances(e){const t=this._lodRendererResources;if(null==t)return;const r=t.lodRenderer.instanceData,i=this._featureIdToInstanceIndex,s=e.length;for(let t=0;t<s;++t){const s=e[t],n=i.get(s);null!=n&&(r.removeInstance(n),i.delete(s))}}_addDisposeResource(e){this._disposeResourceHandles.push(e)}async _createLodRenderer(e,t){const r=this.view._stage,i={layerUid:this.layerUid,graphicUid:e=>1,notifyGraphicGeometryChanged:e=>1,notifyGraphicVisibilityChanged:e=>1},s=new Ct({symbol:e,optionalFields:this._optionalFields,metadata:i,shaderTransformation:null},this.scheduler);return s.slicePlaneEnabled=!1,this._addDisposeResource((()=>{r.removeRenderPlugin(s),s.destroy()})),await r.addRenderPlugin(s,t),s}};Gt=(0,i._)([(0,h.$)("esri.views.3d.layers.graphics.pipeline.rendering.LodRenderer")],Gt);var kt=r(40804),qt=r(48833);function Zt(e,t,r){return r&&(t/=Math.SQRT2),$t(e,((i,s)=>{let n=i-.5*e+.25,o=.5*e-s-.75;if(r){const e=(n+o)/Math.SQRT2;o=(o-n)/Math.SQRT2,n=e}return Math.max(Math.abs(n),Math.abs(o))-.5*t}))}function Wt(e,t,r,i=0){t-=i,r&&(t*=Math.SQRT2);const s=.5*t;return $t(e,((t,n)=>{let o,a=t-.5*e,l=.5*e-n-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>s?Math.sqrt((a-s)*(a-s)+l*l):l:l>s?Math.sqrt(a*a+(l-s)*(l-s)):a,o-=i/2,o}))}function Yt(e,t,r){return(i,s)=>{const n=i-e,o=s-t;return Math.sqrt(n*n+o*o)-r}}function Xt(e,t,r){const i=Math.sqrt(t*t+r*r);return(s,n)=>{const o=Math.abs(s-e)-r,a=n-e+t/2+.75,l=(t*o+r*a)/i,c=-a;return Math.max(l,c)}}function $t(e,t){const r=new Uint8Array(4*e*e);for(let i=0;i<e;i++)for(let s=0;s<e;s++){const n=s+e*i;let o=t(s,i);o=o/e+.5,(0,kt.U)(o,r,4*n)}return r}var Jt=r(11787);var Qt=r(78662),Kt=r(40268),er=r(35093),tr=r(16943),rr=r(25634),ir=r(11725),sr=r(77194);class nr{constructor(){this.scale=0,this.factor=0,this.minScaleFactor=0}}var or=r(59907),ar=r(13259),lr=r(97220),cr=r(98958),hr=r(59643),dr=r(33524),ur=r(90644);class fr extends cr.w{constructor(e,t,i){super(e,t,new lr.$(ar.H,(()=>r.e(8241).then(r.bind(r,48241)))),i),this.primitiveType=t.occlusionPass?Ke.WR.POINTS:Ke.WR.TRIANGLES}initializePipeline(e){const{oitPass:t,hasPolygonOffset:r,draped:i,output:s,depthTestEnabled:n,occlusionPass:o}=e,a=t===hr.Y.NONE,l=t===hr.Y.ColorAlpha,c=s===ce.V.Highlight,h=n&&!i&&!l&&!o&&!c;return(0,ur.Ey)({blending:(0,ce.RN)(s)?a?ur.Os:(0,dr.ez)(t):null,depthTest:n&&!i?{func:Ke.MT.LEQUAL}:null,depthWrite:h?ur.Uy:null,drawBuffers:(0,dr.m6)(t,s),colorWrite:ur.kn,polygonOffset:r?pr:null})}}const pr={factor:0,units:-4};var _r=r(53466),gr=r(22911),mr=r(51976),yr=r(35256);class vr extends yr.E{constructor(e){super(),this.spherical=e,this.screenCenterOffsetUnitsEnabled=!1,this.occlusionTestEnabled=!0,this.signedDistanceFieldEnabled=!1,this.sampleSignedDistanceFieldTexelCenter=!1,this.vvSize=!1,this.vvColor=!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.objectAndLayerIdColorInstanced=!1,this.horizonCullingEnabled=!0,this.isFocused=!0,this.textureCoordinateType=_r.I.None,this.emissionSource=gr.ZX.None,this.discardInvisibleFragments=!0,this.hasVvInstancing=!1}}(0,i._)([(0,mr.W)()],vr.prototype,"screenCenterOffsetUnitsEnabled",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"occlusionTestEnabled",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"signedDistanceFieldEnabled",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"sampleSignedDistanceFieldTexelCenter",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"vvSize",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"vvColor",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"hasVerticalOffset",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"hasScreenSizePerspective",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"hasRotation",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"debugDrawLabelBorder",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"hasPolygonOffset",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"depthTestEnabled",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"pixelSnappingEnabled",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"draped",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"terrainDepthTest",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"cullAboveTerrain",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"occlusionPass",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"occludedFragmentFade",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"objectAndLayerIdColorInstanced",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"horizonCullingEnabled",void 0),(0,i._)([(0,mr.W)()],vr.prototype,"isFocused",void 0);class xr extends ir.im{constructor(e,t){super(e,Gr),this.produces=new Map([[ge.N.HUD_MATERIAL,e=>(0,ce.Mb)(e)&&!this.parameters.drawAsLabel],[ge.N.LABEL_MATERIAL,e=>(0,ce.Mb)(e)&&this.parameters.drawAsLabel],[ge.N.OCCLUSION_PIXELS,()=>this.parameters.occlusionTest],[ge.N.DRAPED_MATERIAL,e=>this.parameters.draped&&(0,ce.Mb)(e)]]),this._visible=!0,this._configuration=new vr(t)}getConfiguration(e,t){return this._configuration.output=e,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=this.parameters.draped,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.vvSize=!!this.parameters.vvSize,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.occlusionPass=t.slot===ge.N.OCCLUSION_PIXELS,this._configuration.occludedFragmentFade=this.parameters.occludedFragmentFade,this._configuration.horizonCullingEnabled=this.parameters.horizonCullingEnabled,this._configuration.isFocused=this.parameters.isFocused,this._configuration.depthTestEnabled=this.parameters.depthEnabled||t.slot===ge.N.OCCLUSION_PIXELS,(0,ce.RN)(e)&&(this._configuration.debugDrawLabelBorder=!!ie.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,i,s,n){const{options:{selectionMode:o,hud:a,excludeLabels:l},point:c,camera:h}=r,{parameters:d}=this;if(!o||!a||l&&d.isLabel||!e.visible||!c)return;const{scaleX:u,scaleY:f}=this._getScreenScale(e,h.pixelRatio);(0,Ye.z0)(Fr,t),e.attributes.has(Se.r.FEATUREATTRIBUTE)&&function(e){const t=e[0],r=e[1],i=e[2],s=e[3],n=e[4],o=e[5],a=e[6],l=e[7],c=e[8],h=1/Math.sqrt(t*t+r*r+i*i),d=1/Math.sqrt(s*s+n*n+o*o),u=1/Math.sqrt(a*a+l*l+c*c);e[0]=t*h,e[1]=r*h,e[2]=i*h,e[3]=s*d,e[4]=n*d,e[5]=o*d,e[6]=a*u,e[7]=l*u,e[8]=c*u}(Fr);const p=e.attributes.get(Se.r.POSITION),_=e.attributes.get(Se.r.SIZE),g=e.attributes.get(Se.r.NORMAL),m=e.attributes.get(Se.r.ROTATION),y=e.attributes.get(Se.r.CENTEROFFSETANDDISTANCE);(0,We.vA)(p.size>=3);const v=(0,ar.c)(d),x="screen"===this.parameters.centerOffsetUnits;for(let e=0;e<p.data.length/p.size;e++){const i=e*p.size;(0,Ie.i)(Sr,p.data[i],p.data[i+1],p.data[i+2]),(0,Ie.t)(Sr,Sr,t),(0,Ie.t)(Sr,Sr,h.viewMatrix);const s=e*y.size;if((0,Ie.i)(Pr,y.data[s],y.data[s+1],y.data[s+2]),!x&&(Sr[0]+=Pr[0],Sr[1]+=Pr[1],0!==Pr[2])){const e=Pr[2];(0,Ie.n)(Pr,Sr),(0,Ie.d)(Sr,Sr,(0,Ie.h)(Pr,Pr,e))}const o=e*g.size;if((0,Ie.i)(Or,g.data[o],g.data[o+1],g.data[o+2]),wr(Or,Fr,h,Br),this._applyVerticalOffsetTransformationView(Sr,Br,h,Ar),h.applyProjection(Sr,Rr),Rr[0]>-1){x&&(Pr[0]||Pr[1])&&(Rr[0]+=Pr[0]*h.pixelRatio,0!==Pr[1]&&(Rr[1]+=(0,sr.m0)(Pr[1],Ar.factorAlignment)*h.pixelRatio),h.unapplyProjection(Rr,Sr)),Rr[0]+=this.parameters.screenOffset[0]*h.pixelRatio,Rr[1]+=this.parameters.screenOffset[1]*h.pixelRatio,Rr[0]=Math.floor(Rr[0]),Rr[1]=Math.floor(Rr[1]);const t=e*_.size;Hr[0]=_.data[t],Hr[1]=_.data[t+1],(0,sr.MD)(Hr,Ar.factor,Hr);const i=Vr*h.pixelRatio;let s=0;d.textureIsSignedDistanceField&&(s=Math.min(d.outlineSize,.5*Hr[0])*h.pixelRatio/2),Hr[0]*=u,Hr[1]*=f;const o=e*m.size,a=d.rotation+m.data[o];if(Tr(c,Rr[0],Rr[1],Hr,i,s,a,d,v)){const e=r.ray;if((0,Ie.t)(Mr,Sr,(0,Ce.B8)(Lr,h.viewMatrix)),Rr[0]=c[0],Rr[1]=c[1],h.unprojectFromRenderScreen(Rr,Sr)){const t=(0,z.vt)();(0,Ie.c)(t,e.direction);const r=1/(0,Ie.l)(t);(0,Ie.h)(t,t,r),n((0,Ie.j)(e.origin,Sr)*r,t,-1,!0,1,Mr)}}}}}intersectDraped(e,t,r,i,s,n){const o=e.attributes.get(Se.r.POSITION),a=e.attributes.get(Se.r.SIZE),l=e.attributes.get(Se.r.ROTATION),c=this.parameters,h=(0,ar.c)(c),{scaleX:d,scaleY:u}=this._getScreenScale(e,e.screenToWorldRatio),f=jr*e.screenToWorldRatio;for(let t=0;t<o.data.length/o.size;t++){const r=t*o.size,p=o.data[r],_=o.data[r+1],g=t*a.size;Hr[0]=a.data[g],Hr[1]=a.data[g+1];let m=0;c.textureIsSignedDistanceField&&(m=Math.min(c.outlineSize,.5*Hr[0])*e.screenToWorldRatio/2),Hr[0]*=d,Hr[1]*=u;const y=t*l.size,v=c.rotation+l.data[y];Tr(i,p,_,Hr,f,m,v,c,h)&&s(n.dist,n.normal,-1,!1)}}createBufferWriter(){return new Zr}_updateScaleInfo(e,t,r){const i=this.parameters;null!=i.screenSizePerspective?(0,sr.cJ)(r,t,i.screenSizePerspective,e.factor):(e.factor.scale=1,e.factor.factor=0,e.factor.minScaleFactor=0),null!=i.screenSizePerspectiveAlignment?(0,sr.cJ)(r,t,i.screenSizePerspectiveAlignment,e.factorAlignment):(e.factorAlignment.factor=e.factor.factor,e.factorAlignment.scale=e.factor.scale,e.factorAlignment.minScaleFactor=e.factor.minScaleFactor)}applyShaderOffsetsView(e,t,r,i,s,n,o){const a=wr(t,r,s,Br);return this._applyVerticalGroundOffsetView(e,a,s,o),this._applyVerticalOffsetTransformationView(o,a,s,n),this._applyPolygonOffsetView(o,a,i[3],s,o),this._applyCenterOffsetView(o,i,o),o}applyShaderOffsetsNDC(e,t,r,i,s){return this._applyCenterOffsetNDC(e,t,r,i),null!=s&&(0,Ie.c)(s,i),this._applyPolygonOffsetNDC(i,t,r,i),i}_applyPolygonOffsetView(e,t,r,i,s){const n=i.aboveGround?1:-1;let o=Math.sign(r);0===o&&(o=n);const a=n*o;if(this.parameters.shaderPolygonOffset<=0)return(0,Ie.c)(s,e);const l=(0,re.qE)(Math.abs(t.cosAngle),.01,1),c=1-Math.sqrt(1-l*l)/l/i.viewport[2];return(0,Ie.h)(s,e,a>0?c:1/c),s}_applyVerticalGroundOffsetView(e,t,r,i){const s=(0,Ie.l)(e),n=r.aboveGround?1:-1,o=r.computeRenderPixelSizeAtDist(s)*Kt.R,a=(0,Ie.h)(Sr,t.normal,n*o);return(0,Ie.g)(i,e,a),i}_applyVerticalOffsetTransformationView(e,t,r,i){const s=this.parameters;if(!s.verticalOffset?.screenLength){if(s.screenSizePerspective||s.screenSizePerspectiveAlignment){const r=(0,Ie.l)(e);this._updateScaleInfo(i,r,t.cosAngle)}else i.factor.scale=1,i.factorAlignment.scale=1;return e}const n=(0,Ie.l)(e),o=s.screenSizePerspectiveAlignment??s.screenSizePerspective,a=(0,St.kE)(r,n,s.verticalOffset,t.cosAngle,o);return this._updateScaleInfo(i,n,t.cosAngle),(0,Ie.h)(t.normal,t.normal,a),(0,Ie.g)(e,e,t.normal)}_applyCenterOffsetView(e,t,r){const i="screen"!==this.parameters.centerOffsetUnits;return r!==e&&(0,Ie.c)(r,e),i&&(r[0]+=t[0],r[1]+=t[1],t[2]&&((0,Ie.n)(Or,r),(0,Ie.g)(r,r,(0,Ie.h)(Or,Or,t[2])))),r}_applyCenterOffsetNDC(e,t,r,i){const s="screen"!==this.parameters.centerOffsetUnits;return i!==e&&(0,Ie.c)(i,e),s||(i[0]+=t[0]/r.fullWidth*2,i[1]+=t[1]/r.fullHeight*2),i}_applyPolygonOffsetNDC(e,t,r,i){const s=this.parameters.shaderPolygonOffset;if(e!==i&&(0,Ie.c)(i,e),s){const e=r.aboveGround?1:-1,n=e*Math.sign(t[3]);i[2]-=(n||e)*s}return i}set visible(e){this._visible=e}get visible(){const{color:e,outlineSize:t,outlineColor:r}=this.parameters,i=e[3]>=er.Q||t>=er.Q&&r[3]>=er.Q;return this._visible&&i}createGLMaterial(e){return new br(e)}calculateRelativeScreenBounds(e,t,r=(0,F.vt)()){return function(e,t,r,i){i[0]=e.anchorPosition[0]*-t[0]+e.screenOffset[0]*r,i[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}_getScreenScale(e,t){const r=e.attributes.get(Se.r.FEATUREATTRIBUTE);if(null==r)return{scaleX:t,scaleY:t};const i=(0,K.ci)(r.data,zr);return(0,Qt.VC)(Nr,this.parameters,i),{scaleX:Nr[0]*t,scaleY:Nr[1]*t}}}class br extends rr.m8{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){return this.updateTexture(this._material.parameters.textureId),this._material.setParameters(this.textureBindParameters),this.acquireTechnique(fr,e)}}function wr(e,t,r,i){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,Ye.z0)(Dr,t)),(0,Ie.q)(i.normal,e,t),(0,Ie.t)(i.normal,i.normal,r.viewInverseTransposeMatrix),i.cosAngle=(0,Ie.f)(Ir,Ur),i}function Tr(e,t,r,i,s,n,o,a,l){let c=t-s-i[0]*l[0],h=c+i[0]+2*s,d=r-s-i[1]*l[1],u=d+i[1]+2*s;const f=a.distanceFieldBoundingBox;return a.textureIsSignedDistanceField&&null!=f&&(c+=i[0]*f[0],d+=i[1]*f[1],h-=i[0]*(1-f[2]),u-=i[1]*(1-f[3]),c-=n,h+=n,d-=n,u+=n),(0,ee.hZ)(Cr,t,r),(0,ee.e$)(Er,e,Cr,(0,re.kU)(o)),Er[0]>c&&Er[0]<h&&Er[1]>d&&Er[1]<u}const Ar=new class{constructor(){this.factor=new nr,this.factorAlignment=new nr}},Sr=(0,z.vt)(),Or=(0,z.vt)(),Rr=(0,K.vt)(),Ir=(0,z.vt)(),Mr=(0,z.vt)(),Er=(0,te.vt)(),Cr=(0,te.vt)(),Fr=(0,Xe.vt)(),Dr=(0,Xe.vt)(),Lr=(0,Re.vt)(),Pr=(0,z.vt)(),Nr=(0,z.vt)(),zr=(0,K.vt)(),Br={normal:Ir,cosAngle:0},Vr=1,jr=2,Hr=[0,0],Ur=(0,z.fA)(0,0,1);class Gr extends rr.NV{constructor(){super(...arguments),this.renderOccluded=ir.m$.Occlude,this.isDecoration=!1,this.color=(0,K.CN)(1,1,1,1),this.polygonOffset=!1,this.anchorPosition=(0,te.fA)(.5,.5),this.screenOffset=[0,0],this.shaderPolygonOffset=1e-5,this.textureIsSignedDistanceField=!1,this.sampleSignedDistanceFieldTexelCenter=!1,this.outlineColor=(0,K.CN)(1,1,1,1),this.outlineSize=0,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.focusEffect="none",this.draped=!1,this.isLabel=!1}}const kr=(0,Me.BP)().vec3f(Se.r.POSITION).vec3f(Se.r.NORMAL).vec2f(Se.r.UV0).vec4u8(Se.r.COLOR).vec2f(Se.r.SIZE).f32(Se.r.ROTATION).vec4f(Se.r.CENTEROFFSETANDDISTANCE).vec4f(Se.r.FEATUREATTRIBUTE),qr=kr.clone().vec4u8(Se.r.OBJECTANDLAYERIDCOLOR);class Zr{constructor(){this.vertexBufferLayout=(0,tr.E)()?qr:kr}elementCount(e){return 6*e.get(Se.r.POSITION).indices.length}write(e,t,r,i,s,n){(0,or.Hk)(r.get(Se.r.POSITION),e,s.position,n,6),(0,or.p1)(r.get(Se.r.NORMAL),t,s.normal,n,6);const o=r.get(Se.r.UV0)?.data;let a=0,l=0,c=1,h=1;o&&o.length>=4&&(a=o[0],l=o[1],c=o[2],h=o[3]),c=Math.min(1.99999,c+1),h=Math.min(1.99999,h+1);let d=r.get(Se.r.POSITION).indices.length,u=n;const f=s.uv0;for(let e=0;e<d;++e)f.set(u,0,a),f.set(u,1,l),u++,f.set(u,0,c),f.set(u,1,l),u++,f.set(u,0,c),f.set(u,1,h),u++,f.set(u,0,c),f.set(u,1,h),u++,f.set(u,0,a),f.set(u,1,h),u++,f.set(u,0,a),f.set(u,1,l),u++;(0,or.tb)(r.get(Se.r.COLOR),4,s.color,n,6);const{data:p,indices:_}=r.get(Se.r.SIZE);d=_.length;const g=s.size;u=n;for(let e=0;e<d;++e){const t=p[2*_[e]],r=p[2*_[e]+1];for(let e=0;e<6;++e)g.set(u,0,t),g.set(u,1,r),u++}if((0,or.uO)(r.get(Se.r.ROTATION),s.rotation,n,6),r.get(Se.r.CENTEROFFSETANDDISTANCE)?(0,or.Ut)(r.get(Se.r.CENTEROFFSETANDDISTANCE),s.centerOffsetAndDistance,n,6):(0,or.Pq)(s.centerOffsetAndDistance,n,6*d),r.get(Se.r.FEATUREATTRIBUTE)?(0,or.Ut)(r.get(Se.r.FEATUREATTRIBUTE),s.featureAttribute,n,6):(0,or.Pq)(s.featureAttribute,n,6*d),null!=i){const e=r.get(Se.r.POSITION)?.indices;if(e){const t=e.length,r=s.getField(Se.r.OBJECTANDLAYERIDCOLOR,$e.XP);(0,or.tH)(i,r,t,n,6)}}}}var Wr=r(74810);let Yr=class extends p.A{constructor(e){super(),this.view=null,this.layerUid=null,this._renderGeometries=new Map,this._materials=new Map,this._directRenderers=new Map,this._lodRenderers=new Map,this.totalFeatures=0,this.view=e.view,this.layerUid=e.layerUid}initialize(){}destroy(){this.removeAllHandles(),this._lodRenderers.forEach((e=>e.destroy()))}async executeRenderCommands(e){for(const t of e)switch(t.id){case"create-material":await this._createMaterial(t);break;case"create-direct-renderer":await this._createDirectRenderer(t);break;case"add-direct-renderer-geometry":await this._addDirectRendererGeometry(t),this._updateFeatureCount();break;case"remove-direct-renderer-geometry":await this._removeDirectRendererGeometry(t),this._updateFeatureCount();break;case"create-lod-renderer":await this._createLodRenderer(t);break;case"add-lod-instances":await this._addLodInstances(t),this._updateFeatureCount();break;case"remove-lod-instances":await this._removeLodInstances(t),this._updateFeatureCount()}}_updateFeatureCount(){let e=0;for(const t of this._directRenderers.values())e+=t.numFeatures;for(const t of this._lodRenderers.values())e+=t.numFeatures;this._set("totalFeatures",e)}get usedMemory(){let e=0;for(const t of this._directRenderers.values())e+=t.usedMemory;for(const t of this._lodRenderers.values())e+=t.usedMemory;return e}async _createMaterial(e){const{view:t}=this,{sharedSymbolResources:r}=t;if(null==r)throw new Error("No shared symbol resources found!");const{textures:i}=r,s=t.state.viewingMode===X.RT.Global;let n=null;switch(e.type){case"default":n=function(e,t,r){const i={usePBR:t.physicalBasedRenderingEnabled,isSchematic:!0,mrrFactors:Wr.Bt,ambient:z.Un,diffuse:z.Un,hasSlicePlane:t.slicePlaneEnabled,castShadows:t.castShadows,offsetTransparentBackfaces:!t.isPrimitive};return function(e){const t=e.opacity??1,r=t<1;e.transparent=r,e.opacity=t,e.cullFace=r?pe.s2.None:pe.s2.Back}(i),t.screenSizePerspectiveEnabled&&(i.screenSizePerspective=e.screenSizePerspectiveSettings),i.externalColor=K.Un,i.isInstanced=!0,new Jt.$U(i,{spherical:r,doublePrecisionRequiresObfuscation:!0})}(r,{physicalBasedRenderingEnabled:!0,slicePlaneEnabled:!1,castShadows:!0,isPrimitive:!0,screenSizePerspectiveEnabled:!0,doublePrecisionRequiresObfuscation:t._stage.renderView.renderingContext.driverTest.doublePrecisionRequiresObfuscation.result},s);break;case"hud":{const[e,t]=Xr(i,s);this.addHandles([(0,J.hA)((()=>(0,Q.Gz)(t)))]),n=e}break;default:throw new Error(`unable to create unknown material type ${e.type}`)}this._materials.set(e.materialId,n)}_getMaterial(e){return this._materials.get(e)}async _createDirectRenderer(e){const t=e.materialId,r=this._getMaterial(t);if(null==r)throw new Error(`material not found ${t}`);const{view:i}=this,s=new ve({material:r});this._directRenderers.set(t,s),i._stage.addRenderPlugin(s),i._stage.renderView.renderer.updateHasFlags()}async _addDirectRendererGeometry(e){const t=e.renderGeometryId,r=e.materialId;await this._removeDirectRendererGeometry({renderGeometryId:t});const i=this._directRenderers.get(r);if(null==i)return void console.error("no renderer assigned to provided material");const s=i.addRenderGeometry(t,e.renderGeometryBuffer,e.localOrigin);this._renderGeometries.set(t,{renderGeometry:s,materialId:r}),this.view._stage.renderView.requestRender()}async _removeDirectRendererGeometry(e){const t=e.renderGeometryId,r=this._renderGeometries.get(t);if(null==r)return;const i=r.materialId,s=this._directRenderers.get(i);null!=s?s.removeRenderGeometry(e.renderGeometryId):console.error("no renderer assigned to provided material")}async _createLodRenderer(e){const t=new Gt({view:this.view,layerUid:this.layerUid}),r=new AbortController;await t.doLoad(e.lodRenderGeometry,(e=>this._getMaterial(e)),r.signal),this._lodRenderers.set(e.lodRendererId,t)}async _addLodInstances(e){const t=this._lodRenderers.get(e.lodRendererId);if(null==t)throw new Error("no lod renderer assigned to provided lod renderer Id");t.addInstances(e.data)}async _removeLodInstances(e){const t=this._lodRenderers.get(e.lodRendererId);if(null==t)throw new Error("no lod renderer assigned to provided lod renderer Id");t.removeInstances(e.featureIds)}};function Xr(e,t){const r={anchorPosition:ae.center,occlusionTest:!0,hasSlicePlane:!1,color:[1,0,0,1],outlineColor:[0,0,0,1],outlineSize:1,distanceFieldBoundingBox:$r};if(null!=e){const t=e.fromData("circle-icon",(()=>function(e,t=128,r=.5*t,i=0){const s=function(e,t=128,r=.5*t,i=0){switch(e){case"circle":default:return function(e,t){const r=e/2-.5;return $t(e,Yt(r,r,t/2))}(t,r);case"square":return function(e,t){return Zt(e,t,!1)}(t,r);case"cross":return function(e,t,r=0){return Wt(e,t,!1,r)}(t,r,i);case"x":return function(e,t,r=0){return Wt(e,t,!0,r)}(t,r,i);case"kite":return function(e,t){return Zt(e,t,!0)}(t,r);case"triangle":return function(e,t){return $t(e,Xt(e/2,t,t/2))}(t,r);case"arrow":return function(e,t){const r=t,i=t/2,s=e/2,n=.8*r,o=Yt(s,(e-t)/2-n,Math.sqrt(n*n+i*i)),a=Xt(s,r,i);return $t(e,((e,t)=>Math.max(a(e,t),-o(e,t))))}(t,r)}}(e,t,r,i);return new qt.g(s,{mipmap:!1,wrap:{s:Ke.pF.CLAMP_TO_EDGE,t:Ke.pF.CLAMP_TO_EDGE},width:t,height:t,components:4,noUnpackFlip:!0,reloadable:!0})}("circle")));r.textureId=t.texture.id,r.textureIsSignedDistanceField=!0,r.sampleSignedDistanceFieldTexelCenter=!1}return[new xr(r,t),null]}(0,i._)([(0,a.MZ)({readOnly:!0})],Yr.prototype,"totalFeatures",void 0),Yr=(0,i._)([(0,h.$)("esri.views.3d.layers.graphics.pipeline.rendering.FeaturePipelineRenderManager")],Yr);const $r=[.25,.25,.75,.75];class Jr{constructor(e){this._bufferWriter=null,this._bufferWriter=e.createBufferWriter()}createBuffer(e,t){const r=this._bufferWriter;let i=null;if(e.transformation&&t)(0,Ce.C)(Qr,e.transformation),Qr[12]-=t[0],Qr[13]-=t[1],Qr[14]-=t[2],i=Qr;else{if(t)throw new Error("not implemented");e.transformation&&(i=e.transformation)}let s=null;i&&((0,Ce.B8)(Kr,Qr),(0,Ce.mg)(Kr,Kr),s=Kr);const n=e.attributes,o=r.elementCount(n),a=r.vertexBufferLayout.stride/4;o>Math.floor(ei/a)&&console.warn("geometry with very large number of elements encountered");const l=r.vertexBufferLayout.createBuffer(o);return r.write(i,s,n,e.objectAndLayerIdColor,l,0),{data:l.buffer,elementCount:o}}}const Qr=(0,Re.vt)(),Kr=(0,Re.vt)(),ei=4194304;var ti=r(29920);class ri{constructor(e){this._context=e,this._commands=[],this._transferables=new Set}createMaterial(e){const t=this._context,r=t.generateId("material");switch(e){case"default":{const e=new Jt.$U({},{spherical:this._context.globalViewingMode,doublePrecisionRequiresObfuscation:!0}),i=new Jr(e);t.registerRenderGeometryBufferWriter(r,i)}break;case"hud":{const e=Xr(null,this._context.globalViewingMode)[0],i=new Jr(e);t.registerRenderGeometryBufferWriter(r,i)}}return this._commands.push({id:"create-material",type:e,materialId:r}),r}createDirectRenderer(e){const t=this._context.generateId("material-renderer");return this._commands.push({id:"create-direct-renderer",materialRendererId:t,materialId:e}),t}addDirectRendererGeometry(e,t,r){const i=t.materialId,s=this._context.getRenderGeometryBufferWriter(i);if(null==s)throw new Error(`no bufferwriter found for material ${i}`);const n=s.createBuffer(t,r);this._transferables.add(n.data),this._commands.push({id:"add-direct-renderer-geometry",renderGeometryId:e,materialId:i,renderGeometryBuffer:n,localOrigin:r})}removeDirectRendererGeometry(e){this._commands.push({id:"remove-direct-renderer-geometry",renderGeometryId:e})}createLodRenderer(e){const t=this._context.generateId("lod-renderer"),r={levels:e.levels.map((e=>({components:e.components.map((e=>{const t=e.attributes.get(Se.r.POSITION);if(!t||0===t.indices.length)throw new Error("positions attribute expected");const r=(0,$.tM)(t.indices.length/3),i=new ti.j(r,3,t),s=this._context.getRenderGeometryBufferWriter(e.materialId);if(null==s)throw new Error("writer not found");const n=s.createBuffer(e,null);return this._transferables.add(n.data),{materialId:e.materialId,renderGeometryBuffer:n,boundingInfo:{bbMax:i.bbMax,bbMin:i.bbMin}}})),minScreenSpaceRadius:e.minScreenSpaceRadius})))};return this._commands.push({id:"create-lod-renderer",lodRendererId:t,lodRenderGeometry:r}),t}addLodInstances(e,t){this._commands.push({id:"add-lod-instances",lodRendererId:e,data:t}),this._transferables.add(t.featureIds.buffer),this._transferables.add(t.globalTransforms.buffer),this._transferables.add(t.localTransforms.buffer)}removeLodInstances(e,t){this._commands.push({id:"remove-lod-instances",lodRendererId:e,featureIds:t}),this._transferables.add(t.buffer)}append(e){if(e._context!==this._context)throw new Error("Cannot append encoders from different contexts");const{_commands:t,_transferables:r}=this;for(const r of e._commands)t.push(r);for(const t of e._transferables)r.add(t)}async dispatch(){const e=this._commands,t=Array.from(this._transferables);this._clearCommandBuffer(),await this._context.dispatchRenderCommands(e,t)}_clearCommandBuffer(){this._commands=[],this._transferables.clear()}}class ii{constructor(e){this._idCounter=0,this._bufferWriters=new Map,this._dispatchRenderCommandsCallback=async()=>{},this.globalViewingMode=!1,this.globalViewingMode=e.viewingMode===X.RT.Global,this._dispatchRenderCommandsCallback=e.dispatchRenderCommandsCallback}generateId(e=""){return`${e}${this._idCounter++}`}createEncoder(){return new ri(this)}async dispatchRenderCommands(e,t){0!==e.length&&await this._dispatchRenderCommandsCallback(e,t)}registerRenderGeometryBufferWriter(e,t){this._bufferWriters.set(e,t)}getRenderGeometryBufferWriter(e){return this._bufferWriters.get(e)}}class si{constructor(e,t){this._renderCommands=e,this._pipelineStateCommands=t}append(e){this.appendRenderCommands(e._renderCommands),this.appendPipelineStateCommands(e._pipelineStateCommands)}appendRenderCommands(e){this._renderCommands.append(e)}appendPipelineStateCommand(e){this._pipelineStateCommands.push(e)}appendPipelineStateCommands(e){const{_pipelineStateCommands:t}=this;for(const r of e)t.push(r)}execute(){for(const e of this._pipelineStateCommands)e();this._renderCommands.dispatch()}}var ni=r(9762),oi=r(27993);function ai(e,t){const{featureCount:r}=e;if(0===r)return new Uint32Array;const i=new Uint32Array(r);return e.readObjectIds(i),i}function li(e,t){const{featureCount:r}=e;if(0===r)return new Float64Array;const i=new Float64Array(3*r);return e.readCoordinates(i),i}var ci=r(48353),hi=r(8887),di=r(83047);function ui(e){const t=new Map;for(const[r,i]of e)t.set(r,{...i,indices:(0,$.Dg)(i.indices)});return t}r(57251),r(12359),r(95108),r(27615),r(59456),r(52106),r(4718),r(34275),r(65864);var fi,pi,_i=r(57917),gi=r(72385),mi=(r(4197),r(11868)),yi=r(27921),vi=r(46610);(pi=fi||(fi={})).length=function(e,t){const r=e[t],i=e[t+1],s=e[t+2];return Math.sqrt(r*r+i*i+s*s)},pi.normalize=function(e,t){const r=e[t],i=e[t+1],s=e[t+2],n=1/Math.sqrt(r*r+i*i+s*s);e[t]*=n,e[t+1]*=n,e[t+2]*=n},pi.scale=function(e,t,r){e[t]*=r,e[t+1]*=r,e[t+2]*=r},pi.add=function(e,t,r,i,s,n=t){(s=s||e)[n]=e[t]+r[i],s[n+1]=e[t+1]+r[i+1],s[n+2]=e[t+2]+r[i+2]},pi.subtract=function(e,t,r,i,s,n=t){(s=s||e)[n]=e[t]-r[i],s[n+1]=e[t+1]-r[i+1],s[n+2]=e[t+2]-r[i+2]},r(96672),r(87170);const xi=new Array(36);for(let e=0;e<6;e++)for(let t=0;t<6;t++)xi[6*e+t]=e;const bi=new Array(36);for(let e=0;e<6;e++)bi[6*e]=0,bi[6*e+1]=1,bi[6*e+2]=2,bi[6*e+3]=2,bi[6*e+4]=3,bi[6*e+5]=0;const wi=(0,gi.fA)(-.5,0,-.5),Ti=(0,gi.fA)(.5,0,-.5),Ai=(0,gi.fA)(0,0,.5),Si=(0,gi.fA)(0,.5,0),Oi=(0,gi.vt)(),Ri=(0,gi.vt)(),Ii=(0,gi.vt)(),Mi=(0,gi.vt)(),Ei=(0,gi.vt)();function Ci(e,t){switch(e){case"cone":return((e,r,i=!1)=>({levels:e.map((e=>{const s=ui(r(e.tesselation));return i&&function(e){const t=e,r=t.get(Se.r.POSITION).data,i=t.get(Se.r.NORMAL).data;if(i){const t=Fi(e,Se.r.NORMAL).data;for(let e=0;e<i.length;e+=3){const r=i[e+1];t[e+1]=-i[e+2],t[e+2]=r}}if(r){const t=Fi(e,Se.r.POSITION).data;for(let e=0;e<r.length;e+=3){const i=r[e+1];t[e+1]=-r[e+2],t[e+2]=i}}}(s),{components:[{attributes:s,objectAndLayerIdColor:void 0,transformation:null,materialId:t}],minScreenSpaceRadius:e.minScreenSpaceRadius}}))}))(Di,(e=>function(e,t,r,i,s=!0,n=!0){let o=0;const a=t,l=e;let c=(0,gi.fA)(0,o,0),h=(0,gi.fA)(0,o+l,0),d=(0,gi.fA)(0,-1,0),u=(0,gi.fA)(0,1,0);i&&(o=l,h=(0,gi.fA)(0,0,0),c=(0,gi.fA)(0,o,0),d=(0,gi.fA)(0,1,0),u=(0,gi.fA)(0,-1,0));const f=[h,c],p=[d,u],_=r+2,g=Math.sqrt(l*l+a*a);if(i)for(let e=r-1;e>=0;e--){const t=e*(2*Math.PI/r),i=(0,gi.fA)(Math.cos(t)*a,o,Math.sin(t)*a);f.push(i);const s=(0,gi.fA)(l*Math.cos(t)/g,-a/g,l*Math.sin(t)/g);p.push(s)}else for(let e=0;e<r;e++){const t=e*(2*Math.PI/r),i=(0,gi.fA)(Math.cos(t)*a,o,Math.sin(t)*a);f.push(i);const s=(0,gi.fA)(l*Math.cos(t)/g,a/g,l*Math.sin(t)/g);p.push(s)}const m=new Array,y=new Array;if(s){for(let e=3;e<f.length;e++)m.push(1),m.push(e-1),m.push(e),y.push(0),y.push(0),y.push(0);m.push(f.length-1),m.push(2),m.push(1),y.push(0),y.push(0),y.push(0)}if(n){for(let e=3;e<f.length;e++)m.push(e),m.push(e-1),m.push(0),y.push(e),y.push(e-1),y.push(1);m.push(0),m.push(2),m.push(f.length-1),y.push(1),y.push(2),y.push(p.length-1)}const v=(0,mi.oe)(3*_);for(let e=0;e<_;e++)v[3*e]=f[e][0],v[3*e+1]=f[e][1],v[3*e+2]=f[e][2];const x=(0,mi.oe)(3*_);for(let e=0;e<_;e++)x[3*e]=p[e][0],x[3*e+1]=p[e][1],x[3*e+2]=p[e][2];return[[Se.r.POSITION,new vi.n(v,m,3,!0)],[Se.r.NORMAL,new vi.n(x,y,3,!0)]]}(1,.5,e,!1)),!0);case"sphere":case"cube":case"inverted-cone":case"cylinder":case"tetrahedron":case"diamond":throw new Error("not implemented");default:return}}function Fi(e,t){let r=e.get(t);return r&&!r.exclusive&&(r={...r,exclusive:!0,data:(0,_i.S)(r.data)},e.set(t,r)),r}(0,Ie.d)(Oi,wi,Si),(0,Ie.d)(Ri,wi,Ti),(0,Ie.e)(Ii,Oi,Ri),(0,Ie.n)(Ii,Ii),(0,Ie.d)(Oi,Ti,Si),(0,Ie.d)(Ri,Ti,Ai),(0,Ie.e)(Mi,Oi,Ri),(0,Ie.n)(Mi,Mi),(0,Ie.d)(Oi,Ai,Si),(0,Ie.d)(Ri,Ai,wi),(0,Ie.e)(Ei,Oi,Ri),(0,Ie.n)(Ei,Ei),Ii[0],Ii[1],Ii[2],Mi[0],Mi[1],Mi[2],Ei[0],Ei[1],Ei[2],(0,z.vt)();const Di=[{tesselation:6,minScreenSpaceRadius:0},{tesselation:18,minScreenSpaceRadius:7},{tesselation:64,minScreenSpaceRadius:65}];class Li{constructor(e){this._context=e,this.lodRendererId=null,this._loaded=!1,this._loadingPromise=null}get loaded(){return this._loaded}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const e=this._context.renderCommandContext.createEncoder(),t=Ci("cone",e.createMaterial("default"));this.lodRendererId=e.createLodRenderer(t),await e.dispatch(),this._loaded=!0}async createAddCommand(e){const t=this._context.renderCommandContext.createEncoder();if(null==this.lodRendererId)throw new Error("expected lod renderer id to not be null");const{featureCount:r}=e;if(0===r)return t;const i=(0,B.vt)((0,hi.Fq)("cone")),s=(0,z.ci)((0,B.Ej)(i)),n=(0,z.ci)((0,hi.Bb)(s,{isPrimitive:!0,width:100,depth:null,height:null})),o=new Float64Array(16*r),a=new Float64Array(16*r),l=li(e,this._context);for(let e=0;e<r;++e){const t=e,r=l[3*e+0],i=l[3*e+1],c=l[3*e+2],h=this._computeGlobalTransform(r,i,c,this._context.viewSpatialReference,zi),d=this._computeLocalTransform(n,s,Ni);this._writeMatrixToTypedBuffer(o,t,d),this._writeMatrixToTypedBuffer(a,t,h)}const c=ai(e,this._context),h={featureIds:new Uint32Array(c),localTransforms:o,globalTransforms:a};return t.addLodInstances(this.lodRendererId,h),t}async createRemoveCommand(e){const t=this._context.renderCommandContext.createEncoder();if(null==this.lodRendererId)return t;const r=ai(e,this._context);return t.removeLodInstances(this.lodRendererId,r),t}_writeMatrixToTypedBuffer(e,t,r){let i=16*t;for(let t=0;t<16;t++)e[i++]=r[t]}_computeGlobalTransform(e,t,r,i,s){return Pi[0]=e,Pi[1]=t,Pi[2]=r,(0,ci.l)(i,Pi,s,this._context.renderSpatialReference),s}_computeLocalTransform(e,t,r){return(0,Ce.D_)(r),this._applyObjectScale(e,t,r),r}_applyObjectScale(e,t,r){const i=function(e=z.Un,t,r,i=1){const s=new Array(3);if(null==t||null==r)s[0]=1,s[1]=1,s[2]=1;else{let i,n=0;for(let o=2;o>=0;o--){const a=e[o],l=null!=a,c=0===o&&!i&&!l,h=r[o];let d;"symbol-value"===a||c?d=0!==h?t[o]/h:1:l&&"proportional"!==a&&isFinite(a)&&(d=0!==h?a/h:1),null!=d&&(s[o]=d,i=d,n=Math.max(n,Math.abs(d)))}for(let e=2;e>=0;e--)null==s[e]?s[e]=i:0===s[e]&&(s[e]=.001*n)}for(let e=2;e>=0;e--)s[e]/=i;return(0,z.ci)(s)}(e,e,t,this._context.renderCoordsHelper.unitInMeters);1===i[0]&&1===i[1]&&1===i[2]||(0,Ce.hs)(r,r,i)}}const Pi=(0,z.vt)(),Ni=(0,Re.vt)(),zi=(0,Re.vt)();class Bi{constructor(e){this._context=e,this.materialId=null,this._loaded=!1,this._loadingPromise=null}get loaded(){return this._loaded}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const e=this._context.renderCommandContext.createEncoder();this.materialId=e.createMaterial("hud"),e.createDirectRenderer(this.materialId),await e.dispatch(),this._loaded=!0}async createAddCommand(e){const t=this._context.renderCommandContext.createEncoder();if(null==this.materialId)throw new Error("expected material not to be null");const{featureCount:r,id:i}=e;if(0===r)return t;const s=function(e,t){const{featureCount:r}=e;if(0===r)return new Float64Array;const i=li(e),s=t.viewSpatialReference,n=t.renderSpatialReference,o=new Float64Array(3*r);if(!(0,ni.projectBuffer)(i,s,0,o,n,0,r))throw new Error("Failed to project coordinates");return o}(e,this._context),n=function(e,t){const r=t.viewSpatialReference,i=t.renderSpatialReference,{extent:s}=e,n=(0,F.gX)(s),o=(0,z.vt)();return(0,oi.F)([n[0],n[1],0],r,o,i),o}(e,this._context),o=new Float64Array([0,0,1]),a=new Float64Array([255,255,255,255]),l=new Float64Array([24,24]),c=new Float64Array([0,0,0,1]),h=new Float64Array([0,0]),d=new Float64Array([0]),u=new Uint32Array(r);for(let e=0;e<r;++e)u[e]=e;const f=new Uint32Array(r);for(let e=0;e<r;++e)f[e]=0;const p=new vi.n(s,u,3,!0),_=new vi.n(o,f,3,!0),g=new vi.n(h,f,2,!0),m=new vi.n(a,f,4,!0),y=new vi.n(d,f,1,!0),v=new vi.n(l,f,2,!0),x=new vi.n(c,f,4,!0),b={attributes:ui([[Se.r.POSITION,p],[Se.r.NORMAL,_],[Se.r.UV0,g],[Se.r.COLOR,m],[Se.r.ROTATION,y],[Se.r.SIZE,v],[Se.r.CENTEROFFSETANDDISTANCE,x]]),objectAndLayerIdColor:void 0,transformation:(0,Re.vt)(),materialId:this.materialId};return t.addDirectRendererGeometry(i,b,n),t}async createRemoveCommand(e){const t=this._context.renderCommandContext.createEncoder();return t.removeDirectRendererGeometry(e.id),t}}class Vi{constructor(e){this._symbols=new Array,this._featureDataPartitioning=new Map,this._context=e}async load(){this._symbols[0]=new Bi(this._context),this._symbols[1]=new Li(this._context)}async createAddCommand(e){const t=this._partition(e),r=await Promise.all(t.map((async({index:e,features:t})=>{const r=await this._provisionSymbol(e);return await(r?.createAddCommand(t))}))),i=this._context.renderCommandContext.createEncoder();for(const e of r)null!=e&&i.append(e);return new si(i,[()=>{this._featureDataPartitioning.set(e,t)}])}async createRemoveCommand(e){const{_featureDataPartitioning:t}=this,r=t.get(e),i=this._context.renderCommandContext.createEncoder();if(null==r)return new si(this._context.renderCommandContext.createEncoder(),[]);const s=await Promise.all(r.map((async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createRemoveCommand(t))})));for(const e of s)null!=e&&i.append(e);return new si(i,[()=>{t.delete(e)}])}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=ai(e,this._context);if(null==t)throw new Error("unable to fetch objectIds");const{featureCount:r}=e,i=[[],[]];for(let e=0;e<r;++e)i[t[e]%2].push(e);return i.map(((t,r)=>new ji(r,e.subset(new Uint32Array(t))))).filter((e=>e.features.featureCount>0))}}class ji{constructor(e,t){this.index=e,this.features=t}}var Hi=r(73941),Ui=r(98764),Gi=r(65806);const ki=(0,z.vt)();var qi=r(88582),Zi=r(17352);function Wi(e,t,r=function(e){return{operations:e,value:e.create()}}(e)){return r.operations=e,e.copy(t,r.value),r}const Yi=2**50;function Xi(e,t,r,i){return e.operations.setAltitudeAt(e.value,t,r,i)}function $i(e,t,r){return e.operations.elevate(e.value,t,r.value)}const Ji=(0,z.vt)();(0,z.vt)();var Qi=r(32114);function Ki(e){return"point"===e.type}class es{constructor(e,t,r,i){this.viewingMode=e,this.spatialReference=t,this.unitInMeters=r,this._coordinateSystem=i,this._tmpCoordinateSystem=function(e){const{value:t,operations:r}=e;return{operations:r,value:r.create(t)}}(i),this.referenceEllipsoid=(0,Hi.tO)(t),this.sphericalPCPF=(0,Ui.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 function(e,t){return e.operations.getExtent(e.value,t),t}(this._coordinateSystem,(0,F.vt)())}getAltitude(e){return function(e,t){return e.operations.altitudeAt(e.value,t)}(this._coordinateSystem,e)}setAltitude(e,t,r=e){return Xi(this._coordinateSystem,r,t,e)}setAltitudeOfTransformation(e,t){!function(e,t,r,i){t!==i&&(0,Ce.C)(i,t),(0,Ie.i)(Ji,i[12],i[13],i[14]),Xi(e,Ji,r,Ji),i[12]=Ji[0],i[13]=Ji[1],i[14]=Ji[2]}(this._coordinateSystem,t,e,t)}worldUpAtPosition(e,t){return function(e,t,r){return e.operations.axisAt(e.value,t,qi._.Z,r)}(this._coordinateSystem,e,t)}worldBasisAtPosition(e,t,r){return function(e,t,r,i){return e.operations.axisAt(e.value,t,r,i)}(this._coordinateSystem,e,t,r)}basisMatrixAtPosition(e,t){const r=this.worldBasisAtPosition(e,qi._.X,Qi.rq.get()),i=this.worldBasisAtPosition(e,qi._.Y,Qi.rq.get()),s=this.worldBasisAtPosition(e,qi._.Z,Qi.rq.get());return(0,Ce.hZ)(t,r[0],r[1],r[2],0,i[0],i[1],i[2],0,s[0],s[1],s[2],0,0,0,0,1),t}headingAtPosition(e,t){const r=this.worldUpAtPosition(e,Qi.rq.get()),i=this.worldBasisAtPosition(e,qi._.Y,Qi.rq.get()),s=(0,Pe.EJ)(t,i,r);return(0,re.KJ)(s)}intersectManifoldClosestSilhouette(e,t,r){return $i(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){$i(this._coordinateSystem,t,this._tmpCoordinateSystem);const i=Qi.rq.get();return function(e,t,r){return e.operations.intersectRay(e.value,t,r)}(this._tmpCoordinateSystem,e,i)?(0,Ie.c)(r,i):null}intersectInfiniteManifold(e,t,r){if(this.viewingMode===X.RT.Global)return this.intersectManifold(e,t,r);$i(this._coordinateSystem,t,this._tmpCoordinateSystem);const i=this._tmpCoordinateSystem.value,s=Qi.rq.get();return(0,yi.Ui)(i.plane,e,s)?(0,Ie.c)(r,s):null}toRenderCoords(e,t,r){return Ki(e)?(0,Gi.g)(e,t,this.spatialReference):(0,oi.F)(e,t,r,this.spatialReference)}fromRenderCoords(e,t,r=null){return Ki(t)?(null!=r&&(t.spatialReference=r),function(e,t,r){return!!(0,oi.F)(e,t,ki,r.spatialReference)&&(r.x=ki[0],r.y=ki[1],r.z=ki[2],!0)}(e,this.spatialReference,t)?t:null):(0,oi.F)(e,this.spatialReference,t,r)?t:null}static create(e,t){switch(e){case X.RT.Local:return new es(X.RT.Local,t,(0,di.GA)(t),Wi(Zi.b,(0,Zi.f)([0,0,0],[Yi,0,0],[0,Yi,0])));case X.RT.Global:return new es(X.RT.Global,t,1,function(e){return Wi(dt.s,(0,dt.f)(0,0,0,(0,Hi.tO)(e).radius))}(t))}}static renderUnitScaleFactor(e,t){return(0,di.KX)(e)/(0,di.KX)(t)}}let ts=class extends s.A.EventedAccessor{constructor(){super(...arguments),this.remoteClient=null,this._featureDataStore=new T,this._featureStore=new M,this._tileManager=new y({addTile:(e,t)=>this._addTile(e,t),removeTiles:e=>this._removeTiles(e)}),this._renderer=null,this._fetcher=null,this._queryEngine=null,this._defaultQueryJSON=null}get updating(){return this._tileManager.updating}destroy(){this._featureStore.clear(),this._tileManager.destroy()}async setup({viewSpatialReference:e,renderSpatialReference:t,viewingMode:r,baseQuery:i,url:s,objectIdField:n,capabilities:a,fieldsIndex:l,timeInfo:c}){const h=d.A.fromJSON(e),p=d.A.fromJSON(t);return this._fetcher=new Y(h,f.A.fromJSON(i),s,n,a),this._queryEngine=new u.do({hasZ:!0,hasM:!1,geometryType:"esriGeometryPoint",objectIdField:n,fieldsIndex:l,availableFields:[n],spatialReference:e,featureStore:this._featureStore,timeInfo:c}),this._renderer=new Vi({viewSpatialReference:h,renderSpatialReference:p,renderCoordsHelper:es.create(r,p),renderCommandContext:new ii({viewingMode:r,dispatchRenderCommandsCallback:(e,t)=>this.remoteClient.invoke("dispatchRenderCommands",e,{transferList:t})})}),this._defaultQueryJSON=new f.A({outSpatialReference:h}).toJSON(),this.addHandles((0,o.wB)((()=>this.updating),(async e=>{this.emit("notify-updating",{updating:e})})),o.Vh),await this._renderer.load(),is}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)}}async onTileTreeChange(e){return await this._tileManager.onTileTreeChange(e),is}async _addTile(e,t){const r=await this._fetcher.fetch(e,t);(0,n.Te)(t);const i=new w(r),s=await this._renderer.createAddCommand(i);return(0,n.Te)(t),s.appendPipelineStateCommand((()=>{this._featureDataStore.add(i),this._featureStore.addTile(r)})),s.execute(),r}async _removeTiles(e){const t=this._featureStore,r=this._featureDataStore,i=this._renderer;await Promise.all(e.map((async e=>{const s=r.get(e);if(null==s)return;const n=await i.createRemoveCommand(s);n.appendPipelineStateCommand((()=>{r.remove(e),t.removeTile(e)})),n.execute()})))}_ensureQuery(e){return e??this._defaultQueryJSON}};(0,i._)([(0,a.MZ)()],ts.prototype,"updating",null),ts=(0,i._)([(0,h.$)("esri.views.3d.layers.graphics.pipeline.Feature3DPipelineWorker")],ts);const rs=ts,is={result:void 0}},4431:(e,t,r)=>{r.d(t,{U:()=>n});var i=r(63907),s=r(74038);function n(e,t=0){const r=e.stride;return Array.from(e.fields.keys()).map((i=>{const n=e.fields.get(i),a=n.constructor.ElementCount,l=o(n.constructor.ElementType),c=n.offset,h=n.optional?.glNormalized??!1;return new s._(i,a,l,c,r,h,t)}))}function o(e){const t=a[e];if(t)return t;throw new Error("BufferType not supported in WebGL")}const a={u8:i.pe.UNSIGNED_BYTE,u16:i.pe.UNSIGNED_SHORT,u32:i.pe.UNSIGNED_INT,i8:i.pe.BYTE,i16:i.pe.SHORT,i32:i.pe.INT,f32:i.pe.FLOAT}},47522:(e,t,r)=>{r.d(t,{K:()=>n});var i=r(95250),s=r(2597);function n(e){e.uniforms.add(new i.e("alignPixelEnabled",((e,t)=>t.alignPixelEnabled))),e.code.add(s.H`vec4 alignToPixelCenter(vec4 clipCoord, vec2 widthHeight) {
|
|
164
|
+
if (!alignPixelEnabled)
|
|
165
|
+
return clipCoord;
|
|
166
|
+
vec2 xy = vec2(0.500123) + 0.5 * clipCoord.xy / clipCoord.w;
|
|
167
|
+
vec2 pixelSz = vec2(1.0) / widthHeight;
|
|
168
|
+
vec2 ij = (floor(xy * widthHeight) + vec2(0.5)) * pixelSz;
|
|
169
|
+
vec2 result = (ij * 2.0 - vec2(1.0)) * clipCoord.w;
|
|
170
|
+
return vec4(result, clipCoord.zw);
|
|
171
|
+
}`),e.code.add(s.H`vec4 alignToPixelOrigin(vec4 clipCoord, vec2 widthHeight) {
|
|
172
|
+
if (!alignPixelEnabled)
|
|
173
|
+
return clipCoord;
|
|
174
|
+
vec2 xy = vec2(0.5) + 0.5 * clipCoord.xy / clipCoord.w;
|
|
175
|
+
vec2 pixelSz = vec2(1.0) / widthHeight;
|
|
176
|
+
vec2 ij = floor((xy + 0.5 * pixelSz) * widthHeight) * pixelSz;
|
|
177
|
+
vec2 result = (ij * 2.0 - vec2(1.0)) * clipCoord.w;
|
|
178
|
+
return vec4(result, clipCoord.zw);
|
|
179
|
+
}`)}},40268:(e,t,r)=>{r.d(t,{Q:()=>d,R:()=>h});var i=r(35640),s=r(52587),n=r(20693),o=r(71988),a=r(20304),l=r(2597),c=r(46540);const h=.5;function d(e,t){e.include(s.Y6),e.attributes.add(c.r.POSITION,"vec3"),e.attributes.add(c.r.NORMAL,"vec3"),e.attributes.add(c.r.CENTEROFFSETANDDISTANCE,"vec4");const r=e.vertex;(0,n.NB)(r,t),(0,n.yu)(r,t),r.uniforms.add(new o.E("viewport",((e,t)=>t.camera.fullViewport)),new a.m("polygonOffset",(e=>e.shaderPolygonOffset)),new a.m("cameraGroundRelative",((e,t)=>t.camera.aboveGround?1:-1))),t.hasVerticalOffset&&(0,i.V)(r),r.constants.add("smallOffsetAngle","float",.984807753012208),r.code.add(l.H`struct ProjectHUDAux {
|
|
180
|
+
vec3 posModel;
|
|
181
|
+
vec3 posView;
|
|
182
|
+
vec3 vnormal;
|
|
183
|
+
float distanceToCamera;
|
|
184
|
+
float absCosAngle;
|
|
185
|
+
};`),r.code.add(l.H`
|
|
186
|
+
float applyHUDViewDependentPolygonOffset(float pointGroundDistance, float absCosAngle, inout vec3 posView) {
|
|
187
|
+
float pointGroundSign = ${t.terrainDepthTest?l.H.float(0):l.H`sign(pointGroundDistance)`};
|
|
188
|
+
if (pointGroundSign == 0.0) {
|
|
189
|
+
pointGroundSign = cameraGroundRelative;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// cameraGroundRelative is -1 if camera is below ground, 1 if above ground
|
|
193
|
+
// groundRelative is 1 if both camera and symbol are on the same side of the ground, -1 otherwise
|
|
194
|
+
float groundRelative = cameraGroundRelative * pointGroundSign;
|
|
195
|
+
|
|
196
|
+
// view angle dependent part of polygon offset emulation: we take the absolute value because the sign that is
|
|
197
|
+
// dropped is instead introduced using the ground-relative position of the symbol and the camera
|
|
198
|
+
if (polygonOffset > .0) {
|
|
199
|
+
float cosAlpha = clamp(absCosAngle, 0.01, 1.0);
|
|
200
|
+
float tanAlpha = sqrt(1.0 - cosAlpha * cosAlpha) / cosAlpha;
|
|
201
|
+
float factor = (1.0 - tanAlpha / viewport[2]);
|
|
202
|
+
|
|
203
|
+
// same side of the terrain
|
|
204
|
+
if (groundRelative > 0.0) {
|
|
205
|
+
posView *= factor;
|
|
206
|
+
}
|
|
207
|
+
// opposite sides of the terrain
|
|
208
|
+
else {
|
|
209
|
+
posView /= factor;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
return groundRelative;
|
|
214
|
+
}
|
|
215
|
+
`),t.draped&&!t.hasVerticalOffset||(0,n.S7)(r),t.draped||(r.uniforms.add(new a.m("perDistancePixelRatio",((e,t)=>Math.tan(t.camera.fovY/2)/(t.camera.fullViewport[2]/2)))),r.code.add(l.H`
|
|
216
|
+
void applyHUDVerticalGroundOffset(vec3 normalModel, inout vec3 posModel, inout vec3 posView) {
|
|
217
|
+
float distanceToCamera = length(posView);
|
|
218
|
+
|
|
219
|
+
// Compute offset in world units for a half pixel shift
|
|
220
|
+
float pixelOffset = distanceToCamera * perDistancePixelRatio * ${l.H.float(h)};
|
|
221
|
+
|
|
222
|
+
// Apply offset along normal in the direction away from the ground surface
|
|
223
|
+
vec3 modelOffset = normalModel * cameraGroundRelative * pixelOffset;
|
|
224
|
+
|
|
225
|
+
// Apply the same offset also on the view space position
|
|
226
|
+
vec3 viewOffset = (viewNormal * vec4(modelOffset, 1.0)).xyz;
|
|
227
|
+
|
|
228
|
+
posModel += modelOffset;
|
|
229
|
+
posView += viewOffset;
|
|
230
|
+
}
|
|
231
|
+
`)),t.screenCenterOffsetUnitsEnabled&&(0,n.Nz)(r),t.hasScreenSizePerspective&&(0,s.OH)(r),r.code.add(l.H`
|
|
232
|
+
vec4 projectPositionHUD(out ProjectHUDAux aux) {
|
|
233
|
+
vec3 centerOffset = centerOffsetAndDistance.xyz;
|
|
234
|
+
float pointGroundDistance = centerOffsetAndDistance.w;
|
|
235
|
+
|
|
236
|
+
aux.posModel = position;
|
|
237
|
+
aux.posView = (view * vec4(aux.posModel, 1.0)).xyz;
|
|
238
|
+
aux.vnormal = normal;
|
|
239
|
+
${t.draped?"":"applyHUDVerticalGroundOffset(aux.vnormal, aux.posModel, aux.posView);"}
|
|
240
|
+
|
|
241
|
+
// Screen sized offset in world space, used for example for line callouts
|
|
242
|
+
// Note: keep this implementation in sync with the CPU implementation, see
|
|
243
|
+
// - MaterialUtil.verticalOffsetAtDistance
|
|
244
|
+
// - HUDMaterial.applyVerticalOffsetTransformation
|
|
245
|
+
|
|
246
|
+
aux.distanceToCamera = length(aux.posView);
|
|
247
|
+
|
|
248
|
+
vec3 viewDirObjSpace = normalize(cameraPosition - aux.posModel);
|
|
249
|
+
float cosAngle = dot(aux.vnormal, viewDirObjSpace);
|
|
250
|
+
|
|
251
|
+
aux.absCosAngle = abs(cosAngle);
|
|
252
|
+
|
|
253
|
+
${t.hasScreenSizePerspective&&(t.hasVerticalOffset||t.screenCenterOffsetUnitsEnabled)?"vec3 perspectiveFactor = screenSizePerspectiveScaleFactor(aux.absCosAngle, aux.distanceToCamera, screenSizePerspectiveAlignment);":""}
|
|
254
|
+
|
|
255
|
+
${t.hasVerticalOffset?t.hasScreenSizePerspective?"float verticalOffsetScreenHeight = applyScreenSizePerspectiveScaleFactorFloat(verticalOffset.x, perspectiveFactor);":"float verticalOffsetScreenHeight = verticalOffset.x;":""}
|
|
256
|
+
|
|
257
|
+
${t.hasVerticalOffset?l.H`
|
|
258
|
+
float worldOffset = clamp(verticalOffsetScreenHeight * verticalOffset.y * aux.distanceToCamera, verticalOffset.z, verticalOffset.w);
|
|
259
|
+
vec3 modelOffset = aux.vnormal * worldOffset;
|
|
260
|
+
aux.posModel += modelOffset;
|
|
261
|
+
vec3 viewOffset = (viewNormal * vec4(modelOffset, 1.0)).xyz;
|
|
262
|
+
aux.posView += viewOffset;
|
|
263
|
+
// Since we elevate the object, we need to take that into account
|
|
264
|
+
// in the distance to ground
|
|
265
|
+
pointGroundDistance += worldOffset;`:""}
|
|
266
|
+
|
|
267
|
+
float groundRelative = applyHUDViewDependentPolygonOffset(pointGroundDistance, aux.absCosAngle, aux.posView);
|
|
268
|
+
|
|
269
|
+
${t.screenCenterOffsetUnitsEnabled?"":l.H`
|
|
270
|
+
// Apply x/y in view space, but z in screen space (i.e. along posView direction)
|
|
271
|
+
aux.posView += vec3(centerOffset.x, centerOffset.y, 0.0);
|
|
272
|
+
|
|
273
|
+
// Same material all have same z != 0.0 condition so should not lead to
|
|
274
|
+
// branch fragmentation and will save a normalization if it's not needed
|
|
275
|
+
if (centerOffset.z != 0.0) {
|
|
276
|
+
aux.posView -= normalize(aux.posView) * centerOffset.z;
|
|
277
|
+
}
|
|
278
|
+
`}
|
|
279
|
+
|
|
280
|
+
vec4 posProj = proj * vec4(aux.posView, 1.0);
|
|
281
|
+
|
|
282
|
+
${t.screenCenterOffsetUnitsEnabled?t.hasScreenSizePerspective?"float centerOffsetY = applyScreenSizePerspectiveScaleFactorFloat(centerOffset.y, perspectiveFactor);":"float centerOffsetY = centerOffset.y;":""}
|
|
283
|
+
|
|
284
|
+
${t.screenCenterOffsetUnitsEnabled?"posProj.xy += vec2(centerOffset.x, centerOffsetY) * pixelRatio * 2.0 / viewport.zw * posProj.w;":""}
|
|
285
|
+
|
|
286
|
+
// constant part of polygon offset emulation
|
|
287
|
+
posProj.z -= groundRelative * polygonOffset * posProj.w;
|
|
288
|
+
return posProj;
|
|
289
|
+
}
|
|
290
|
+
`)}},63578:(e,t,r)=>{r.d(t,{I:()=>o});var i=r(47522),s=r(96598),n=r(2597);function o(e,t){const{vertex:r,fragment:o}=e;e.include(s.Z,t),r.include(i.K),r.main.add(n.H`vec4 posProjCenter;
|
|
291
|
+
if (dot(position, position) > 0.0) {
|
|
292
|
+
ProjectHUDAux projectAux;
|
|
293
|
+
vec4 posProj = projectPositionHUD(projectAux);
|
|
294
|
+
posProjCenter = alignToPixelCenter(posProj, viewport.zw);
|
|
295
|
+
forwardViewPosDepth(projectAux.posView);
|
|
296
|
+
vec3 vpos = projectAux.posModel;
|
|
297
|
+
if (rejectBySlice(vpos)) {
|
|
298
|
+
posProjCenter = vec4(1e038, 1e038, 1e038, 1.0);
|
|
299
|
+
}
|
|
300
|
+
} else {
|
|
301
|
+
posProjCenter = vec4(1e038, 1e038, 1e038, 1.0);
|
|
302
|
+
}
|
|
303
|
+
gl_Position = posProjCenter;
|
|
304
|
+
gl_PointSize = 1.0;`),o.main.add(n.H`fragColor = vec4(1);
|
|
305
|
+
if(discardByTerrainDepth()) {
|
|
306
|
+
fragColor.g = 0.5;
|
|
307
|
+
}`)}},13755:(e,t,r)=>{r.d(t,{y:()=>c});var i,s=r(47522);!function(e){e[e.Occluded=0]="Occluded",e[e.NotOccluded=1]="NotOccluded",e[e.Both=2]="Both",e[e.COUNT=3]="COUNT"}(i||(i={}));var n=r(71988),o=r(20304),a=r(2597),l=r(63761);function c(e){e.vertex.uniforms.add(new o.m("renderTransparentlyOccludedHUD",((e,t)=>t.hudRenderStyle===i.Occluded?1:t.hudRenderStyle===i.NotOccluded?0:.75)),new n.E("viewport",((e,t)=>t.camera.fullViewport)),new l.N("hudVisibilityTexture",((e,t)=>t.hudVisibility?.getTexture()))),e.vertex.include(s.K),e.vertex.code.add(a.H`bool testHUDVisibility(vec4 posProj) {
|
|
308
|
+
vec4 posProjCenter = alignToPixelCenter(posProj, viewport.zw);
|
|
309
|
+
vec4 occlusionPixel = texture(hudVisibilityTexture, .5 + .5 * posProjCenter.xy / posProjCenter.w);
|
|
310
|
+
if (renderTransparentlyOccludedHUD > 0.5) {
|
|
311
|
+
return occlusionPixel.r * occlusionPixel.g > 0.0 && occlusionPixel.g * renderTransparentlyOccludedHUD < 1.0;
|
|
312
|
+
}
|
|
313
|
+
return occlusionPixel.r * occlusionPixel.g > 0.0 && occlusionPixel.g == 1.0;
|
|
314
|
+
}`)}},62258:(e,t,r)=>{var i,s;r.d(t,{dz:()=>i,oH:()=>s}),function(e){e[e.OBJECT=0]="OBJECT",e[e.HUD=1]="HUD",e[e.TERRAIN=2]="TERRAIN",e[e.OVERLAY=3]="OVERLAY",e[e.I3S=4]="I3S",e[e.PCL=5]="PCL",e[e.LOD=6]="LOD",e[e.VOXEL=7]="VOXEL",e[e.TILES3D=8]="TILES3D"}(i||(i={})),function(e){e[e.MIN=0]="MIN",e[e.MINMAX=1]="MINMAX",e[e.ALL=2]="ALL"}(s||(s={}))},65215:(e,t,r)=>{r.d(t,{HE:()=>i,R6:()=>s}),r(51850);class i{constructor(e){this.layerUid=e}}class s extends i{constructor(e,t){super(e),this.graphicUid=t}}},78230:(e,t,r)=>{r.d(t,{A:()=>f});var i,s,n=r(93687),o=r(3694),a=r(38954),l=r(51850),c=r(82919),h=r(71351),d=r(97937),u=r(620);class f{get bounds(){return this._root.bounds}get halfSize(){return this._root.halfSize}get root(){return this._root.node}get maximumObjectsPerNode(){return this._maximumObjectsPerNode}get maximumDepth(){return this._maximumDepth}get objectCount(){return this._objectCount}constructor(e,t){this.objectToBoundingSphere=e,this._maximumObjectsPerNode=10,this._maximumDepth=20,this._degenerateObjects=new Set,this._root=new p,this._objectCount=0,t&&(void 0!==t.maximumObjectsPerNode&&(this._maximumObjectsPerNode=t.maximumObjectsPerNode),void 0!==t.maximumDepth&&(this._maximumDepth=t.maximumDepth))}destroy(){this._degenerateObjects.clear(),p.clearPool(),E[0]=null,P.prune(),H.prune()}add(e,t=e.length){this._objectCount+=t,this._grow(e,t);const r=p.acquire();for(let i=0;i<t;i++){const t=e[i];this._isDegenerate(t)?this._degenerateObjects.add(t):(r.init(this._root),this._add(t,r))}p.release(r)}remove(e,t=null){this._objectCount-=e.length;const r=p.acquire();for(const i of e){const e=t??(0,d.e)(this.objectToBoundingSphere(i),N);O(e[3])?(r.init(this._root),m(i,e,r)):this._degenerateObjects.delete(i)}p.release(r),this._shrink()}update(e,t){if(!O(t[3])&&this._isDegenerate(e))return;const r=function(e){return E[0]=e,E}(e);this.remove(r,t),this.add(r)}forEachAlongRay(e,t,r){const i=(0,h.LV)(e,t);_(this._root,(e=>{if(!function(e,t){return w((0,d.a)(t.bounds),2*-t.halfSize,D),w((0,d.a)(t.bounds),2*t.halfSize,L),(0,u.O_)(e.origin,e.direction,D,L)}(i,e))return!1;const t=e.node;return t.terminals.forAll((e=>{this._intersectsObject(i,e)&&r(e)})),null!==t.residents&&t.residents.forAll((e=>{this._intersectsObject(i,e)&&r(e)})),!0}))}forEachAlongRayWithVerticalOffset(e,t,r,i){const s=(0,h.LV)(e,t);_(this._root,(e=>{if(!function(e,t,r){return w((0,d.a)(t.bounds),2*-t.halfSize,D),w((0,d.a)(t.bounds),2*t.halfSize,L),r.applyToMinMax(D,L),(0,u.O_)(e.origin,e.direction,D,L)}(s,e,i))return!1;const t=e.node;return t.terminals.forAll((e=>{this._intersectsObjectWithOffset(s,e,i)&&r(e)})),null!==t.residents&&t.residents.forAll((e=>{this._intersectsObjectWithOffset(s,e,i)&&r(e)})),!0}))}forEach(e){_(this._root,(t=>{const r=t.node;return r.terminals.forAll(e),null!==r.residents&&r.residents.forAll(e),!0})),this._degenerateObjects.forEach(e)}forEachDegenerateObject(e){this._degenerateObjects.forEach(e)}findClosest(e,t,r,i=()=>!0,s=1/0){let n=1/0,o=1/0,l=null;const h=A(e,t),u=a=>{if(--s,!i(a))return;const h=this.objectToBoundingSphere(a);if(!(0,c.m7)(r,h))return;const u=S(e,t,(0,d.a)(h)),f=u-h[3],p=u+h[3];f<n&&(n=f,o=p,l=a)};return g(this._root,(i=>{if(s<=0||!(0,c.m7)(r,i.bounds))return!1;if((0,a.h)(F,h,i.halfSize),(0,a.g)(F,F,(0,d.a)(i.bounds)),S(e,t,F)>o)return!1;const n=i.node;return n.terminals.forAll((e=>u(e))),null!==n.residents&&n.residents.forAll((e=>u(e))),!0}),e,t),l}forEachInDepthRange(e,t,r,i,s,n,o){let l=-1/0,h=1/0;const u={setRange:e=>{r===f.DepthOrder.FRONT_TO_BACK?(l=Math.max(l,e.near),h=Math.min(h,e.far)):(l=Math.max(l,-e.far),h=Math.min(h,-e.near))}};u.setRange(i);const p=S(t,r,e),_=A(t,r),m=A(t,-r),y=e=>{if(!o(e))return;const i=this.objectToBoundingSphere(e),a=(0,d.a)(i),f=S(t,r,a)-p,_=f-i[3],g=f+i[3];_>h||g<l||!(0,c.m7)(n,i)||s(e,u)};g(this._root,(e=>{if(!(0,c.m7)(n,e.bounds))return!1;if((0,a.h)(F,_,e.halfSize),(0,a.g)(F,F,(0,d.a)(e.bounds)),S(t,r,F)-p>h)return!1;if((0,a.h)(F,m,e.halfSize),(0,a.g)(F,F,(0,d.a)(e.bounds)),S(t,r,F)-p<l)return!1;const i=e.node;return i.terminals.forAll((e=>y(e))),null!==i.residents&&i.residents.forAll((e=>y(e))),!0}),t,r)}forEachNode(e){_(this._root,(t=>e(t.node,t.bounds,t.halfSize,t.depth)))}forEachNeighbor(e,t){const r=(0,d.g)(t),i=(0,d.a)(t),s=t=>{const s=this.objectToBoundingSphere(t),n=(0,d.g)(s),o=r+n;return!((0,a.s)((0,d.a)(s),i)-o*o<=0)||e(t)};let n=!0;const o=e=>{n&&(n=s(e))};_(this._root,(e=>{const t=(0,d.g)(e.bounds),s=r+t;if((0,a.s)((0,d.a)(e.bounds),i)-s*s>0)return!1;const l=e.node;return l.terminals.forAll(o),n&&null!==l.residents&&l.residents.forAll(o),n})),n&&this.forEachDegenerateObject(o)}_intersectsObject(e,t){const r=this.objectToBoundingSphere(t);return!(r[3]>0)||(0,d.i)(r,e)}_intersectsObjectWithOffset(e,t,r){const i=this.objectToBoundingSphere(t);return!(i[3]>0)||(0,d.i)(r.applyToBoundingSphere(i),e)}_add(e,t){t.advanceTo(this.objectToBoundingSphere(e))?t.node.terminals.push(e):(t.node.residents.push(e),t.node.residents.length>this._maximumObjectsPerNode&&t.depth<this._maximumDepth&&this._split(t))}_split(e){const t=e.node.residents;e.node.residents=null;for(let r=0;r<t.length;r++){const i=p.acquire().init(e);this._add(t.at(r),i),p.release(i)}}_grow(e,t){if(0!==t&&(T(e,t,(e=>this.objectToBoundingSphere(e)),z),O(z[3])&&!this._fitsInsideTree(z)))if(v(this._root.node))(0,d.e)(z,this._root.bounds),this._root.halfSize=1.25*this._root.bounds[3],this._root.updateBoundsRadiusFromHalfSize();else{const e=this._rootBoundsForRootAsSubNode(z);this._placingRootViolatesMaxDepth(e)?this._rebuildTree(z,e):this._growRootAsSubNode(e),p.release(e)}}_rebuildTree(e,t){(0,a.c)((0,d.a)(B),(0,d.a)(t.bounds)),B[3]=t.halfSize,T([e,B],2,(e=>e),V);const r=p.acquire().init(this._root);this._root.initFrom(null,V,V[3]),this._root.increaseHalfSize(1.25),_(r,(e=>(this.add(e.node.terminals.data,e.node.terminals.length),null!==e.node.residents&&this.add(e.node.residents.data,e.node.residents.length),!0))),p.release(r)}_placingRootViolatesMaxDepth(e){const t=Math.log(e.halfSize/this._root.halfSize)*Math.LOG2E;let r=0;return _(this._root,(e=>(r=Math.max(r,e.depth),r+t<=this._maximumDepth))),r+t>this._maximumDepth}_rootBoundsForRootAsSubNode(e){const t=e[3],r=e;let i=-1/0;const s=this._root.bounds,n=this._root.halfSize;for(let e=0;e<3;e++){const o=s[e]-n-(r[e]-t),a=r[e]+t-(s[e]+n),l=Math.max(0,Math.ceil(o/(2*n))),c=Math.max(0,Math.ceil(a/(2*n)))+1,h=2**Math.ceil(Math.log(l+c)*Math.LOG2E);i=Math.max(i,h),j[e].min=l,j[e].max=c}for(let e=0;e<3;e++){let t=j[e].min,r=j[e].max;const o=(i-(t+r))/2;t+=Math.ceil(o),r+=Math.floor(o);const a=s[e]-n-t*n*2;C[e]=a+(r+t)*n}const o=i*n;return C[3]=o*M,p.acquire().initFrom(null,C,o,0)}_growRootAsSubNode(e){const t=this._root.node;(0,a.c)((0,d.a)(z),(0,d.a)(this._root.bounds)),z[3]=this._root.halfSize,this._root.init(e),e.advanceTo(z,null,!0),e.node.children=t.children,e.node.residents=t.residents,e.node.terminals=t.terminals}_shrink(){for(;;){const e=this._findShrinkIndex();if(-1===e)break;this._root.advance(e),this._root.depth=0}}_findShrinkIndex(){if(0!==this._root.node.terminals.length||this._root.isLeaf())return-1;let e=null;const t=this._root.node.children;let r=0,i=0;for(;i<t.length&&null==e;)r=i++,e=t[r];for(;i<t.length;)if(t[i++])return-1;return r}_isDegenerate(e){return!O(this.objectToBoundingSphere(e)[3])}_fitsInsideTree(e){const t=this._root.bounds,r=this._root.halfSize;return e[3]<=r&&e[0]>=t[0]-r&&e[0]<=t[0]+r&&e[1]>=t[1]-r&&e[1]<=t[1]+r&&e[2]>=t[2]-r&&e[2]<=t[2]+r}toJSON(){const{maximumDepth:e,maximumObjectsPerNode:t,_objectCount:r}=this,i=this._nodeToJSON(this._root.node);return{maximumDepth:e,maximumObjectsPerNode:t,objectCount:r,root:{bounds:this._root.bounds,halfSize:this._root.halfSize,depth:this._root.depth,node:i}}}_nodeToJSON(e){const t=e.children.map((e=>e?this._nodeToJSON(e):null)),r=e.residents?.map((e=>this.objectToBoundingSphere(e))),i=e.terminals?.map((e=>this.objectToBoundingSphere(e)));return{children:t,residents:r,terminals:i}}static fromJSON(e){const t=new f((e=>e),{maximumDepth:e.maximumDepth,maximumObjectsPerNode:e.maximumObjectsPerNode});return t._objectCount=e.objectCount,t._root.initFrom(e.root.node,e.root.bounds,e.root.halfSize,e.root.depth),t}}class p{constructor(){this.bounds=(0,d.c)(),this.halfSize=0,this.initFrom(null,null,0,0)}init(e){return this.initFrom(e.node,e.bounds,e.halfSize,e.depth)}initFrom(e,t,r,i=this.depth){return this.node=null!=e?e:p.createEmptyNode(),t&&(0,d.e)(t,this.bounds),this.halfSize=r,this.depth=i,this}increaseHalfSize(e){this.halfSize*=e,this.updateBoundsRadiusFromHalfSize()}updateBoundsRadiusFromHalfSize(){this.bounds[3]=this.halfSize*M}advance(e){let t=this.node.children[e];t||(t=p.createEmptyNode(),this.node.children[e]=t),this.node=t,this.halfSize/=2,this.depth++;const r=R[e];return this.bounds[0]+=r[0]*this.halfSize,this.bounds[1]+=r[1]*this.halfSize,this.bounds[2]+=r[2]*this.halfSize,this.updateBoundsRadiusFromHalfSize(),this}advanceTo(e,t,r=!1){for(;;){if(this.isTerminalFor(e))return t&&t(this,-1),!0;if(this.isLeaf()){if(!r)return t&&t(this,-1),!1;this.node.residents=null}const i=this._childIndex(e);t&&t(this,i),this.advance(i)}}isLeaf(){return null!=this.node.residents}isTerminalFor(e){return e[3]>this.halfSize/2}_childIndex(e){const t=this.bounds;return(t[0]<e[0]?1:0)+(t[1]<e[1]?2:0)+(t[2]<e[2]?4:0)}static createEmptyNode(){return{children:[null,null,null,null,null,null,null,null],terminals:new o.A({shrink:!0}),residents:new o.A({shrink:!0})}}static acquire(){return p._pool.acquire()}static release(e){p._pool.release(e)}static clearPool(){p._pool.prune()}}function _(e,t){let r=p.acquire().init(e);const i=[r];for(;0!==i.length;){if(r=i.pop(),t(r)&&!r.isLeaf())for(let e=0;e<r.node.children.length;e++)r.node.children[e]&&i.push(p.acquire().init(r).advance(e));p.release(r)}}function g(e,t,r,i=f.DepthOrder.FRONT_TO_BACK){let s=p.acquire().init(e);const n=[s];for(function(e,t,r){if(!H.length)for(let e=0;e<8;++e)H.push({index:0,distance:0});for(let r=0;r<8;++r){const i=R[r];H.data[r].index=r,H.data[r].distance=S(e,t,i)}H.sort(((e,t)=>e.distance-t.distance));for(let e=0;e<8;++e)r[e]=H.data[e].index}(r,i,U);0!==n.length;){if(s=n.pop(),t(s)&&!s.isLeaf())for(let e=7;e>=0;--e){const t=U[e];s.node.children[t]&&n.push(p.acquire().init(s).advance(t))}p.release(s)}}function m(e,t,r){P.clear();const i=r.advanceTo(t,((e,t)=>{P.push(e.node),P.push(t)}))?r.node.terminals:r.node.residents;if(i.removeUnordered(e),0===i.length)for(let e=P.length-2;e>=0&&y(P.data[e],P.data[e+1]);e-=2);}function y(e,t){return t>=0&&(e.children[t]=null),!!v(e)&&(null===e.residents&&(e.residents=new o.A({shrink:!0})),!0)}function v(e){if(0!==e.terminals.length)return!1;if(null!==e.residents)return 0===e.residents.length;for(let t=0;t<e.children.length;t++)if(e.children[t])return!1;return!0}function x(e,t){e[0]=Math.min(e[0],t[0]-t[3]),e[1]=Math.min(e[1],t[1]-t[3]),e[2]=Math.min(e[2],t[2]-t[3])}function b(e,t){e[0]=Math.max(e[0],t[0]+t[3]),e[1]=Math.max(e[1],t[1]+t[3]),e[2]=Math.max(e[2],t[2]+t[3])}function w(e,t,r){r[0]=e[0]+t,r[1]=e[1]+t,r[2]=e[2]+t}function T(e,t,r,i){if(1===t){const t=r(e[0]);(0,d.e)(t,i)}else{D[0]=1/0,D[1]=1/0,D[2]=1/0,L[0]=-1/0,L[1]=-1/0,L[2]=-1/0;for(let i=0;i<t;i++){const t=r(e[i]);O(t[3])&&(x(D,t),b(L,t))}(0,a.m)((0,d.a)(i),D,L,.5),i[3]=Math.max(L[0]-D[0],L[1]-D[1],L[2]-D[2])/2}}function A(e,t){let r,i=1/0;for(let s=0;s<8;++s){const n=S(e,t,I[s]);n<i&&(i=n,r=I[s])}return r}function S(e,t,r){return t*(e[0]*r[0]+e[1]*r[1]+e[2]*r[2])}function O(e){return!isNaN(e)&&e!==-1/0&&e!==1/0&&e>0}p._pool=new n.A(p),(s=(i=f).DepthOrder||(i.DepthOrder={}))[s.FRONT_TO_BACK=1]="FRONT_TO_BACK",s[s.BACK_TO_FRONT=-1]="BACK_TO_FRONT";const R=[(0,l.fA)(-1,-1,-1),(0,l.fA)(1,-1,-1),(0,l.fA)(-1,1,-1),(0,l.fA)(1,1,-1),(0,l.fA)(-1,-1,1),(0,l.fA)(1,-1,1),(0,l.fA)(-1,1,1),(0,l.fA)(1,1,1)],I=[(0,l.fA)(-1,-1,-1),(0,l.fA)(-1,-1,1),(0,l.fA)(-1,1,-1),(0,l.fA)(-1,1,1),(0,l.fA)(1,-1,-1),(0,l.fA)(1,-1,1),(0,l.fA)(1,1,-1),(0,l.fA)(1,1,1)],M=Math.sqrt(3),E=[null],C=(0,d.c)(),F=(0,l.vt)(),D=(0,l.vt)(),L=(0,l.vt)(),P=new o.A,N=(0,d.c)(),z=(0,d.c)(),B=(0,d.c)(),V=(0,d.c)(),j=[{min:0,max:0},{min:0,max:0},{min:0,max:0}],H=new o.A,U=[0,0,0,0,0,0,0,0]},86305:(e,t,r)=>{r.d(t,{i3:()=>s}),r(38954);var i=r(51850);function s(e){return null!=e?.dist}r(17352),r(62258),(0,i.vt)()},87582:(e,t,r)=>{r.d(t,{h:()=>s}),r(62258);var i=r(65215);r(86305);class s extends i.R6{constructor(e,t,r,i,s,n){super(e,t),this.layerUid=e,this.graphicUid=t,this.geometryId=r,this.triangleNr=i,this.baseBoundingSphere=s,this.numLodLevels=n}}},48852:(e,t,r)=>{r.d(t,{g:()=>c});var i=r(4576),s=(r(44208),r(53966)),n=r(34275),o=r(94656),a=r(63907);const l=()=>s.A.getLogger("esri.views.webgl.BufferObject");class c{static createIndex(e,t,r){return new c(e,a.NZ.ELEMENT_ARRAY_BUFFER,t,r)}static createVertex(e,t,r){return new c(e,a.NZ.ARRAY_BUFFER,t,r)}static createUniform(e,t,r){return new c(e,a.NZ.UNIFORM_BUFFER,t,r)}static createPixelPack(e,t=a._U.STREAM_READ,r){const i=new c(e,a.NZ.PIXEL_PACK_BUFFER,t);return r&&i.setSize(r),i}static createPixelUnpack(e,t=a._U.STREAM_DRAW,r){return new c(e,a.NZ.PIXEL_UNPACK_BUFFER,t,r)}static createTransformFeedback(e,t=a._U.STATIC_DRAW,r){const i=new c(e,a.NZ.TRANSFORM_FEEDBACK_BUFFER,t);return i.setSize(r),i}constructor(e,t,r,i){this._context=e,this.bufferType=t,this.usage=r,this._glName=null,this._size=-1,this._indexType=void 0,e.instanceCounter.increment(a.vt.BufferObject,this),this._glName=this._context.gl.createBuffer(),(0,o.Y2)(this._context.gl),i&&this.setData(i)}get glName(){return this._glName}get size(){return this._size}get indexType(){return this._indexType}get usedMemory(){if(this.bufferType===a.NZ.ELEMENT_ARRAY_BUFFER){if(this._indexType===a.pe.UNSIGNED_INT)return 4*this._size;if(this._indexType===a.pe.UNSIGNED_SHORT)return 2*this._size}return this._size}get _isVAOAware(){return this.bufferType===a.NZ.ELEMENT_ARRAY_BUFFER||this.bufferType===a.NZ.ARRAY_BUFFER}dispose(){this._context?.gl?(this._glName&&(this._context.gl.deleteBuffer(this._glName),this._glName=null),this._context.instanceCounter.decrement(a.vt.BufferObject,this),this._context=null):this._glName&&l().warn("Leaked WebGL buffer object")}setSize(e,t=null){if(this.bufferType===a.NZ.ELEMENT_ARRAY_BUFFER&&null!=t)switch(this._indexType=t,t){case a.pe.UNSIGNED_SHORT:e*=2;break;case a.pe.UNSIGNED_INT:e*=4}this._setBufferData(e)}setData(e){if(!e)return;let t=e.byteLength;this.bufferType===a.NZ.ELEMENT_ARRAY_BUFFER&&((0,n.mg)(e)?this._indexType=a.pe.UNSIGNED_BYTE:(0,n.jq)(e)?(t/=2,this._indexType=a.pe.UNSIGNED_SHORT):(0,n.XJ)(e)&&(t/=4,this._indexType=a.pe.UNSIGNED_INT)),this._setBufferData(t,e)}_setBufferData(e,t=null){this._size=e;const r=this._context.getBoundVAO();this._isVAOAware&&this._context.bindVAO(null),this._context.bindBuffer(this);const i=this._context.gl;null!=t?i.bufferData(this.bufferType,t,this.usage):i.bufferData(this.bufferType,e,this.usage),(0,o.Y2)(i),this._isVAOAware&&this._context.bindVAO(r)}setSubData(e,t,r,i){if(!e)return;const s=this._context.getBoundVAO();this._isVAOAware&&this._context.bindVAO(null),this._context.bindBuffer(this);const{gl:n}=this._context;n.bufferSubData(this.bufferType,t*e.BYTES_PER_ELEMENT,e,r,i-r),(0,o.Y2)(n),this._isVAOAware&&this._context.bindVAO(s)}getSubData(e,t=0,r,s){if(r<0||s<0)return;const n=function(e){return(0,i.Xj)(e)}(e)?e.BYTES_PER_ELEMENT:1;if(n*((r??0)+(s??0))>e.byteLength)return;t+n*(s??0)>this.usedMemory&&l().warn("Potential problem getting subdata: requested data exceeds buffer size!");const o=this._context.gl;this.bufferType===a.NZ.TRANSFORM_FEEDBACK_BUFFER?(this._context.bindBuffer(this,a.NZ.TRANSFORM_FEEDBACK_BUFFER),o.getBufferSubData(a.NZ.TRANSFORM_FEEDBACK_BUFFER,t,e,r,s),this._context.unbindBuffer(a.NZ.TRANSFORM_FEEDBACK_BUFFER)):(this._context.bindBuffer(this,a.NZ.COPY_READ_BUFFER),o.getBufferSubData(a.NZ.COPY_READ_BUFFER,t,e,r,s),this._context.unbindBuffer(a.NZ.COPY_READ_BUFFER))}async getSubDataAsync(e,t=0,r,i){await this._context.clientWaitAsync(),this.getSubData(e,t,r,i)}}},74038:(e,t,r)=>{r.d(t,{_:()=>i});class i{constructor(e,t,r,i,s,n=!1,o=0){this.name=e,this.count=t,this.type=r,this.offset=i,this.stride=s,this.normalized=n,this.divisor=o}}}}]);
|