@arcgis/core 5.2.0-next.136 → 5.2.0-next.138
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/analysis/LineOfSightAnalysisObserver.d.ts +12 -0
- package/analysis/LineOfSightAnalysisObserver.js +1 -1
- package/analysis/LineOfSightAnalysisTarget.d.ts +12 -0
- package/analysis/LineOfSightAnalysisTarget.js +1 -1
- package/arcade/featureset/sources/FeatureLayerParquet.js +1 -1
- package/arcgisGlobal.d.ts +4 -0
- package/assets/components/assets/icon/blockHeightMedium16.json +1 -0
- package/assets/components/assets/icon/blockHeightMedium24.json +1 -0
- package/assets/components/assets/icon/blockHeightMedium32.json +1 -0
- package/assets/components/assets/icon/blockHeightShort16.json +1 -0
- package/assets/components/assets/icon/blockHeightShort24.json +1 -0
- package/assets/components/assets/icon/blockHeightShort32.json +1 -0
- package/assets/components/assets/icon/blockHeightTall16.json +1 -0
- package/assets/components/assets/icon/blockHeightTall24.json +1 -0
- package/assets/components/assets/icon/blockHeightTall32.json +1 -0
- package/assets/components/assets/icon/cursorCircle16.json +1 -0
- package/assets/components/assets/icon/cursorCircle24.json +1 -0
- package/assets/components/assets/icon/cursorCircle32.json +1 -0
- package/assets/components/assets/icon/dictionary16.json +1 -0
- package/assets/components/assets/icon/dictionary24.json +1 -0
- package/assets/components/assets/icon/dictionary32.json +1 -0
- package/assets/components/assets/icon/jobDependency16.json +1 -0
- package/assets/components/assets/icon/jobDependency24.json +1 -0
- package/assets/components/assets/icon/jobDependency32.json +1 -0
- package/assets/components/assets/icon/referenceChip16.json +1 -0
- package/assets/components/assets/icon/referenceChip24.json +1 -0
- package/assets/components/assets/icon/referenceChip32.json +1 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{4e6f95d8c624d513849a.js → 05963f57cbe5a5249496.js} +1 -1
- package/assets/esri/core/workers/chunks/{0b8681ca4a83e97f1f71.js → 067de1910190da228291.js} +1 -1
- package/assets/esri/core/workers/chunks/{3c0fd1c6cda44e9f40ab.js → 070684943698fa43c2b4.js} +1 -1
- package/assets/esri/core/workers/chunks/{bc1cb4b9a02e6c78deb7.js → 076e8d2e08ff2a013736.js} +1 -1
- package/assets/esri/core/workers/chunks/{c10e040368065411506a.js → 10445313d0d57b34511b.js} +1 -1
- package/assets/esri/core/workers/chunks/{d537c59b46cdaaf66034.js → 1188d0a136fffc009643.js} +1 -1
- package/assets/esri/core/workers/chunks/{20af3f085f60c32c6c53.js → 178083d8ed7707b45ca2.js} +1 -1
- package/assets/esri/core/workers/chunks/{f5efe3e800c6e23efcf3.js → 1819c45655c836b9a8d7.js} +1 -1
- package/assets/esri/core/workers/chunks/1b946714ca4a1a7359d4.js +2 -0
- package/assets/esri/core/workers/chunks/{d8d8b38ac8a91d9e45fc.js → 1cc744ab5eee5ee3bed8.js} +1 -1
- package/assets/esri/core/workers/chunks/{05e39b4de7f62c5b22cc.js → 20f75cc777af13fa249b.js} +1 -1
- package/assets/esri/core/workers/chunks/2a1ec30f9ad305763f81.js +2 -0
- package/assets/esri/core/workers/chunks/34570e6bbf559f18c1a5.js +1 -0
- package/assets/esri/core/workers/chunks/{60f6d5da9480dd36e877.js → 3dddae78286d05eb10fc.js} +1 -1
- package/assets/esri/core/workers/chunks/{9efd30bbd02ec0d1031b.js → 3ec3589f6e74d7cb87cf.js} +1 -1
- package/assets/esri/core/workers/chunks/{0bec054fca104f3bf141.js → 3f776d9fd2ab68b21fca.js} +1 -1
- package/assets/esri/core/workers/chunks/402a82c77420254831bc.js +1 -0
- package/assets/esri/core/workers/chunks/{e2ebf0ea3af2e6907987.js → 406f24ec13eb30d43405.js} +1 -1
- package/assets/esri/core/workers/chunks/43fc42405167a5537039.js +1 -0
- package/assets/esri/core/workers/chunks/{ddedc414bb478b376221.js → 46b2d4addfc73f9183a4.js} +1 -1
- package/assets/esri/core/workers/chunks/498d6dfd3bb0d3490548.js +1 -0
- package/assets/esri/core/workers/chunks/{36ef86701883a20dd6f6.js → 4a640548032355e57acd.js} +1 -1
- package/assets/esri/core/workers/chunks/5566f14afb63065e438f.js +1 -0
- package/assets/esri/core/workers/chunks/{c3b96d1d43afccd23e45.js → 590e6c70206122e4cc3c.js} +2 -2
- package/assets/esri/core/workers/chunks/{54860dd53a46cf4c47f3.js → 59295b99bdff4045a0e7.js} +1 -1
- package/assets/esri/core/workers/chunks/5aeb5e18514644fe2cf9.js +1 -0
- package/assets/esri/core/workers/chunks/{5da86409d70098fc6a10.js → 5b3cfe95314a75a735c1.js} +1 -1
- package/assets/esri/core/workers/chunks/{a54678bfa0f1807b61cd.js → 5c855af73ee3c3e764fb.js} +1 -1
- package/assets/esri/core/workers/chunks/{06da3409992bb1fa85b0.js → 5e90c1b49f2b7e21d05a.js} +39 -31
- package/assets/esri/core/workers/chunks/5fd099ca1024707387b2.js +1 -0
- package/assets/esri/core/workers/chunks/{30f808cac8a34f95ea6e.js → 6079d27f4ab319fb8f0c.js} +1 -1
- package/assets/esri/core/workers/chunks/66c2a28a851130b87c04.js +1 -0
- package/assets/esri/core/workers/chunks/{dac90b3631f7f7158f68.js → 67f15538c51838201fc7.js} +1 -1
- package/assets/esri/core/workers/chunks/{cfaba0470619786e1ef8.js → 68d8ae42ab71d01a70a5.js} +2 -2
- package/assets/esri/core/workers/chunks/6aebf7cfd294e88bf926.js +1 -0
- package/assets/esri/core/workers/chunks/{864e7030c4ddbfcf0114.js → 6ccf9535013fe672c93b.js} +1 -1
- package/assets/esri/core/workers/chunks/{ba7f0cf7e495d3ec2d55.js → 6e62581d933e7298d1f6.js} +1 -1
- package/assets/esri/core/workers/chunks/{83b5dd4029e00abd80bf.js → 700b1d5bc67b7e1b3ff3.js} +1 -1
- package/assets/esri/core/workers/chunks/{f9fea72cc222a30ef2f9.js → 72399062767abdfb0bee.js} +1 -1
- package/assets/esri/core/workers/chunks/{2a7fbfd77002a24bf737.js → 747461bb6a1bc2f0a64d.js} +1 -1
- package/assets/esri/core/workers/chunks/{c333f6ed42985bb2b11f.js → 7851aef196eea5d6c94e.js} +1 -1
- package/assets/esri/core/workers/chunks/{f0b6bd6fab5320c3082f.js → 7a05b18f655c1167ce0a.js} +1 -1
- package/assets/esri/core/workers/chunks/{04296b75d0f81fbd1bb5.js → 864194927d05ebc4cc31.js} +1 -1
- package/assets/esri/core/workers/chunks/{3c4a13a9f0b305394a26.js → 876f7633c15f1e31078d.js} +1 -1
- package/assets/esri/core/workers/chunks/{62298dba3f6cbdc3f4ae.js → 879b2f0ff1977bca9376.js} +1 -1
- package/assets/esri/core/workers/chunks/{b547b3bce729c9dac90d.js → 898359be6996fd9763b8.js} +1 -1
- package/assets/esri/core/workers/chunks/8cb716f110d164030309.js +1 -0
- package/assets/esri/core/workers/chunks/8dc1c3042267618fd710.js +2 -0
- package/assets/esri/core/workers/chunks/{625f02db93d7fbf175ca.js → 9001e9a1e81bce175ddd.js} +1 -1
- package/assets/esri/core/workers/chunks/{9ffa6c8d93d3443834c6.js → 912080c90b5cc2e817cf.js} +1 -1
- package/assets/esri/core/workers/chunks/96c50a0dda0f1503ef92.js +2 -0
- package/assets/esri/core/workers/chunks/{13e4379441499599c3b5.js → 9cbde13e536676767900.js} +1 -1
- package/assets/esri/core/workers/chunks/{408db4f32850b77264ae.js → 9cd3fcb5fca6f9dbbcd8.js} +1 -1
- package/assets/esri/core/workers/chunks/a054da6cbd8ee4774a57.js +1 -0
- package/assets/esri/core/workers/chunks/a05790444115e4cf1bcc.js +1 -0
- package/assets/esri/core/workers/chunks/{d1f2685782b423ef87a6.js → a556dd4e9e6d35e33a2c.js} +1 -1
- package/assets/esri/core/workers/chunks/{00d576d355599c88931e.js → bc38def1983089514e4b.js} +1 -1
- package/assets/esri/core/workers/chunks/{0725e515f3004bdd5c56.js → ca2adcbcf44454484fd5.js} +1 -1
- package/assets/esri/core/workers/chunks/{f3507b9e831ffd7a6bf8.js → cca8bd07bcd1d267a2e8.js} +1 -1
- package/assets/esri/core/workers/chunks/cfae60b9d2f2939e9c16.js +1 -0
- package/assets/esri/core/workers/chunks/{1d6b2a64f4e40e5cc13d.js → d201fbf3ceff946d2bd6.js} +1 -1
- package/assets/esri/core/workers/chunks/{4439078780d9ba49fd26.js → d51bb11baadc741c46bc.js} +1 -1
- package/assets/esri/core/workers/chunks/db1ab9b9c8bf5c7635d3.js +1 -0
- package/assets/esri/core/workers/chunks/de02a6a1f4810f99e9bb.js +1 -0
- package/assets/esri/core/workers/chunks/e630f3c56c077cb2bd8e.js +1 -0
- package/assets/esri/core/workers/chunks/e81173724e8de8c1e65b.js +1 -0
- package/assets/esri/core/workers/chunks/{2025288bed125594ceda.js → f6e62d2d279a328cbed7.js} +1 -1
- package/assets/esri/core/workers/chunks/{47c19778fcee7154ca38.js → f8bc474434fd365ab174.js} +1 -1
- package/assets/esri/core/workers/chunks/{9a20dc26cb9c7b2087cf.js → f95a1f878c9c1146180e.js} +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ar.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.bg.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.bs.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ca.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.cs.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.da.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.de.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.el.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.en.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.es.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.et.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.fi.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.fr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.he.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.hr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.hu.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.id.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.it.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ja.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ko.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.lt.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.lv.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.nl.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.no.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pl.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ro.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ru.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sk.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sl.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sv.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.th.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.tr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.uk.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.vi.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-TW.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ar.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.bg.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.bs.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ca.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.cs.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.da.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.de.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.el.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.es.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.et.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.fi.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.fr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.he.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.hr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.hu.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.id.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.it.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ja.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ko.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.lt.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.lv.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.nl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.no.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.pl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ro.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ru.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.sk.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.sl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.sr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.sv.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.th.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.tr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.uk.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.vi.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.zh-TW.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ar.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.bg.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.bs.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ca.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.cs.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.da.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.de.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.el.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.en.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.es.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.et.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.fi.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.fr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.he.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.hr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.hu.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.id.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.it.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ja.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ko.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.lt.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.lv.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.nl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.no.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ro.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ru.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sk.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sv.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.th.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.tr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.uk.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.vi.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-TW.json +1 -1
- package/chunks/Bufferer-CclWhXVb.js +1 -1
- package/chunks/Component.glsl.js +3 -3
- package/chunks/DefaultMaterial.glsl.js +2 -2
- package/chunks/Distance2DCalculator-DjIp2uQi.js +1 -1
- package/chunks/Envelope.js +1 -1
- package/chunks/Envelope2D.js +1 -1
- package/chunks/FocusArea.glsl.js +8 -10
- package/chunks/GaussianSplat.glsl.js +2 -2
- package/chunks/GeodeticDistanceCalculator-zRp89-dW.js +1 -1
- package/chunks/GeodeticUtils.js +1 -1
- package/chunks/Geometry.js +1 -1
- package/chunks/GeometryCleaner-CIE8Wfmb.js +1 -1
- package/chunks/GlobalIllumination.glsl.js +3 -3
- package/chunks/LineMarker.glsl.js +35 -42
- package/chunks/MultiPathImpl.js +1 -1
- package/chunks/OperatorAffineTransform.js +1 -1
- package/chunks/OperatorClip.js +1 -1
- package/chunks/OperatorDensify.js +1 -1
- package/chunks/OperatorDistance.js +1 -1
- package/chunks/OperatorGeneralize.js +1 -1
- package/chunks/OperatorGeodesicBuffer.js +1 -1
- package/chunks/OperatorGeodeticArea.js +1 -1
- package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
- package/chunks/OperatorGeodeticDistance.js +1 -1
- package/chunks/OperatorGeodeticLength.js +1 -1
- package/chunks/OperatorGraphicBuffer.js +1 -1
- package/chunks/OperatorIntegrate.js +1 -1
- package/chunks/OperatorMultiPartToSinglePart.js +1 -1
- package/chunks/OperatorProximity.js +1 -1
- package/chunks/OperatorProximityGeodesic.js +1 -1
- package/chunks/OperatorShapePreservingLength.js +1 -1
- package/chunks/OperatorShapePreservingProject.js +1 -1
- package/chunks/OperatorSimplifyOGC.js +1 -1
- package/chunks/Path.glsl.js +2 -2
- package/chunks/Point2D.js +1 -1
- package/chunks/RealisticTree.glsl.js +2 -2
- package/chunks/RibbonLine.glsl.js +51 -57
- package/chunks/SideCalculator2D-DX0718xq.js +1 -1
- package/chunks/Terrain.glsl.js +2 -2
- package/chunks/Transformation2D.js +1 -1
- package/chunks/UnitFactory.js +1 -1
- package/config.js +1 -1
- package/core/workers/RemoteClient.js +1 -1
- package/core/workers/workerFactory.js +1 -1
- package/editing/fieldUtils.d.ts +12 -0
- package/editing/sharedTemplates/templateDefinitions/TemplateDefinitionBase.js +1 -1
- package/geometry/operators/extendOperator.js +1 -1
- package/geometry/operators/gx/operatorAlphaShape.js +1 -1
- package/geometry/operators/gx/operatorBoundary.js +1 -1
- package/geometry/operators/gx/operatorBuffer.js +1 -1
- package/geometry/operators/gx/operatorConvexHull.js +1 -1
- package/geometry/operators/gx/operatorLabelPoint.js +1 -1
- package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
- package/geometry/operators/gx/operatorLocateBetween.js +1 -1
- package/geometry/operators/gx/operatorMinimumBoundingCircle.js +1 -1
- package/geometry/operators/gx/operatorOffset.js +1 -1
- package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
- package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
- package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
- package/geometry/operators/isNearOperator.js +1 -1
- package/geometry/operators/reshapeOperator.js +1 -1
- package/geometry/operators/support/jsonConverter.js +1 -1
- package/geometry/support/curves/ellipticArc7Utils.js +1 -1
- package/geometry/support/ellipseUtils.js +2 -0
- package/interfaces.d.ts +15 -18
- package/kernel.js +1 -1
- package/layers/LinkChartLayer.js +1 -1
- package/layers/ParquetLayer.js +1 -1
- package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
- package/layers/list/LayerItemCollection.d.ts +1 -0
- package/layers/list/types.d.ts +5 -1
- package/layers/orientedImagery/core/coverageUtils.js +1 -1
- package/layers/orientedImagery/queries.js +1 -1
- package/layers/support/TimeSeriesCalculation.d.ts +1 -1
- package/layers/support/TimeSeriesCalculation.js +1 -1
- package/layers/support/dataSeriesUtils.d.ts +10 -0
- package/layers/support/timeSeriesUtils.js +17 -6
- package/libs/lyr3d/Lyr3DModule.js +1 -1
- package/networks/UtilityNetwork.d.ts +15 -0
- package/networks/UtilityNetwork.js +1 -1
- package/package.json +4 -4
- package/popup/FeatureContent.d.ts +14 -1
- package/popup/FeatureContent.js +1 -1
- package/popup/FeatureContentCollection.d.ts +4 -10
- package/popup/FeatureContentCollection.js +1 -1
- package/popup/actions.js +1 -1
- package/popup/support/featureUtils.js +1 -1
- package/renderers/support/RenderingInfo.js +1 -1
- package/renderers/support/renderingInfoUtils.js +1 -1
- package/renderers/visualVariables/SizeVariable.d.ts +16 -20
- package/renderers/visualVariables/support/SizeStop.d.ts +6 -2
- package/rest/networks/support/TraceLocation.js +1 -1
- package/rest/networks/support/TraceResult.d.ts +7 -0
- package/rest/networks/support/TraceResult.js +1 -1
- package/smartMapping/renderers/color.js +1 -1
- package/smartMapping/renderers/opacity.js +1 -1
- package/smartMapping/renderers/size.js +1 -1
- package/smartMapping/renderers/support/timeSeriesUtils.js +1 -1
- package/smartMapping/statistics/histogramForTimeSeries.d.ts +11 -0
- package/smartMapping/statistics/histogramForTimeSeries.js +2 -0
- package/smartMapping/statistics/summaryStatisticsForTimeSeries.d.ts +11 -0
- package/smartMapping/statistics/summaryStatisticsForTimeSeries.js +2 -0
- package/smartMapping/statistics/support/timeSeriesUtils.js +24 -0
- package/smartMapping/statistics/types.d.ts +50 -0
- package/support/tests/serviceMockDependencies.js +1 -1
- package/support/tests/setupServiceMocksMesh.js +1 -1
- package/symbols/cim/CIMPlacements.js +1 -1
- package/symbols/cim/callouts/calloutAnalysisUtils.js +1 -1
- package/symbols/cim/callouts/effects/BackgroundCallout.js +1 -1
- package/symbols/cim/callouts/effects/BalloonCallout.js +1 -1
- package/symbols/cim/callouts/effects/PointSymbolCallout.js +1 -1
- package/symbols/cim/callouts/effects/calloutUtils.js +1 -1
- package/symbols/cim/cimAnalyzer.js +1 -1
- package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
- package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/CollisionJob.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/SymbolFader.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/jobsUtil.js +1 -1
- package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
- package/views/2d/engine/webgl/definitions.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/ComputedAnimatedParams.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/markers/ComputedMarkerParams.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/mesh/CalloutMeshWriterPolicy.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextParams.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
- package/views/2d/layers/SketchLayerView2D.js +1 -1
- package/views/2d/layers/features/layerAdapters/AnnotationLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/labelingUtils.js +1 -1
- package/views/2d/layers/features/schema/ExceedsLimitCache.js +1 -1
- package/views/2d/layers/features/schema/TimeSchema.js +2 -0
- package/views/2d/layers/features/schema/processor/LabelMatcherSchema.js +1 -1
- package/views/2d/layers/features/schema/processor/MatcherSchema.js +1 -1
- package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
- package/views/2d/layers/features/sources/FeatureSourceQueryInfo.js +1 -1
- package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
- package/views/2d/layers/support/annodime/cimAnnotations.js +1 -1
- package/views/2d/layers/support/vectorTileDebugUtils.js +1 -1
- package/views/2d/layers/support/visualVariableSimpleUtils.js +1 -1
- package/views/2d/types.d.ts +2 -1
- package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightItemManipulatedObject3D.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
- package/views/3d/analysis/LineOfSightAnalysisView3D.d.ts +24 -0
- package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedObserverManipulatedObject3D.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
- package/views/3d/camera/constraintUtils.js +1 -1
- package/views/3d/input/handlers/ground/GroundDoubleClickMove.js +1 -1
- package/views/3d/input/handlers/ground/GroundNavigation.js +1 -1
- package/views/3d/interactive/editingTools/tooltipUtils3D.js +1 -1
- package/views/3d/interactive/placementTools/GroundNavigationPlacementTool3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/i3s/I3SOverrides.js +1 -1
- package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
- package/views/3d/state/controllers/GroundNavigationController.js +1 -1
- package/views/3d/state/controllers/momentum/GroundNavigationMomentumController.js +1 -1
- package/views/3d/state/utils/OffsetCorrectionController.js +1 -1
- package/views/3d/state/utils/groundNavigationUtils.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +16 -8
- package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +5 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js +12 -0
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +2 -2
- package/views/3d/webgl-engine/effects/focusArea/FocusArea.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
- package/views/SelectionManager.d.ts +3 -3
- package/views/draw/support/Reshape.js +1 -1
- package/views/interactive/options/bindViewToolOptions.js +1 -1
- package/views/interactive/sketch/SketchLabelOptions.d.ts +3 -0
- package/views/interactive/sketch/SketchLabelOptions.js +1 -1
- package/views/interactive/sketch/SketchTooltipOptions.d.ts +3 -0
- package/views/interactive/sketch/SketchTooltipOptions.js +1 -1
- package/views/interactive/sketch/SketchValueOptions.d.ts +3 -0
- package/views/interactive/sketch/SketchValueOptions.js +1 -1
- package/views/interactive/snapping/SnappingOptions.d.ts +3 -0
- package/views/interactive/snapping/SnappingOptions.js +1 -1
- package/views/interactive/snapping/snappingUtils.js +1 -1
- package/views/interactive/tooltip/fields/parsingAndFormattingUtils.js +1 -1
- package/views/layers/SketchLayerView.d.ts +34 -0
- package/views/layers/SketchLayerView.js +2 -0
- package/views/layers/types.d.ts +3 -2
- package/views/selection/types.d.ts +15 -4
- package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
- package/widgets/BasemapGallery.js +1 -1
- package/widgets/Bookmarks/BookmarksViewModel.d.ts +4 -0
- package/widgets/Bookmarks/BookmarksVisibleElements.d.ts +5 -1
- package/widgets/Bookmarks/types.d.ts +2 -0
- package/widgets/Editor/EditorViewModel.d.ts +31 -30
- package/widgets/Editor/EditorViewModel.js +1 -1
- package/widgets/Editor/components/Settings.js +1 -1
- package/widgets/Editor/types.d.ts +44 -0
- package/widgets/Editor.d.ts +30 -27
- package/widgets/Editor.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.d.ts +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/support/FeatureStore.d.ts +1 -1
- package/widgets/FeatureTable/support/FeatureStore.js +1 -1
- package/widgets/FeatureTable.d.ts +6 -0
- package/widgets/FeatureTable.js +1 -1
- package/widgets/Histogram/types.d.ts +10 -2
- package/widgets/HistogramRangeSlider/types.d.ts +4 -1
- package/widgets/LayerList/LayerListViewModel.d.ts +2 -1
- package/widgets/Legend/LegendViewModel.d.ts +2 -0
- package/widgets/Legend/styles/card/CardView.d.ts +2 -0
- package/widgets/Legend/styles/classic/ClassicView.d.ts +4 -1
- package/widgets/Legend.d.ts +3 -0
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.d.ts +7 -0
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/components/OrientedImageryVideoViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/support/VideoFeatureCache.js +2 -0
- package/widgets/OrientedImageryViewer/types.d.ts +9 -0
- package/widgets/OrientedImageryViewer.d.ts +7 -0
- package/widgets/OrientedImageryViewer.js +2 -2
- package/widgets/PanoramicVideoViewer.js +1 -1
- package/widgets/PanoramicViewer/PanoramicVideoViewerViewModel.js +1 -1
- package/widgets/ScaleRangeSlider/types.d.ts +9 -2
- package/widgets/Sketch/SketchViewModel.d.ts +32 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/Sketch.d.ts +27 -1
- package/widgets/Sketch.js +1 -1
- package/widgets/Slider/types.d.ts +58 -13
- package/widgets/Slider.d.ts +6 -0
- package/widgets/smartMapping/BinaryColorSizeSlider/BinaryColorSizeSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/ClassedColorSlider/ClassedColorSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/ClassedSizeSlider/ClassedSizeSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/ColorSizeSlider/ColorSizeSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/ColorSlider/ColorSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/HeatmapSlider/HeatmapSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/OpacitySlider/OpacitySliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/SizeSlider/SizeSliderViewModel.d.ts +3 -0
- package/widgets/smartMapping/SmartMappingPrimaryHandleSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/SmartMappingSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/types.d.ts +30 -7
- package/widgets/support/FilterBuilder/FilterBuilderViewModel.d.ts +21 -11
- package/widgets/support/FilterBuilder/FilterBuilderViewModel.js +1 -1
- package/widgets/support/FilterBuilder/types.d.ts +28 -0
- package/widgets/support/FilterBuilder.js +1 -1
- package/widgets/support/FilterCondition/FilterConditionViewModel.d.ts +24 -0
- package/widgets/support/FilterCondition/FilterConditionViewModel.js +1 -1
- package/widgets/support/FilterCondition/types.d.ts +16 -1
- package/widgets/support/FilterCondition.js +1 -1
- package/widgets/support/SnappingControls/snappingLayerListUtils.js +1 -1
- package/widgets/support/iconUtils.js +1 -1
- package/assets/esri/core/workers/chunks/0606ab6fdfc1dfea3856.js +0 -1
- package/assets/esri/core/workers/chunks/078dcd17f46403d44b24.js +0 -1
- package/assets/esri/core/workers/chunks/1289204f8ca96032c17a.js +0 -1
- package/assets/esri/core/workers/chunks/12b5a645c0987a0efe54.js +0 -2
- package/assets/esri/core/workers/chunks/152fe3d6ad7aebbd23d1.js +0 -1
- package/assets/esri/core/workers/chunks/17b938ba49fb1e7ab8c4.js +0 -1
- package/assets/esri/core/workers/chunks/1dbb3e25e005a8220779.js +0 -2
- package/assets/esri/core/workers/chunks/3d6fef25af7e1a51e1bd.js +0 -1
- package/assets/esri/core/workers/chunks/3ef367c9b7bf1588307d.js +0 -1
- package/assets/esri/core/workers/chunks/5f4feca26102088ea565.js +0 -1
- package/assets/esri/core/workers/chunks/74211d096cc3296e0968.js +0 -1
- package/assets/esri/core/workers/chunks/7926faab76a721a2e1c4.js +0 -1
- package/assets/esri/core/workers/chunks/ad28486bc6afaa346de5.js +0 -1
- package/assets/esri/core/workers/chunks/ad29c729e90b5866713c.js +0 -1
- package/assets/esri/core/workers/chunks/b72a2514aa4cc4ae7d1b.js +0 -1
- package/assets/esri/core/workers/chunks/bb51cf52b8ea8283f4f8.js +0 -1
- package/assets/esri/core/workers/chunks/be761749f8d77fbd9df5.js +0 -1
- package/assets/esri/core/workers/chunks/dbfd25aa0d19aed5890c.js +0 -1
- package/assets/esri/core/workers/chunks/de28a86775235bd5d3c4.js +0 -2
- package/assets/esri/core/workers/chunks/f6cfc901267a229de7a1.js +0 -2
- package/assets/esri/core/workers/chunks/fb147097149a89e671ff.js +0 -1
- package/support/revision.js +0 -2
- /package/assets/esri/core/workers/chunks/{1dbb3e25e005a8220779.js.LICENSE.txt → 1b946714ca4a1a7359d4.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{f6cfc901267a229de7a1.js.LICENSE.txt → 2a1ec30f9ad305763f81.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{c3b96d1d43afccd23e45.js.LICENSE.txt → 590e6c70206122e4cc3c.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{cfaba0470619786e1ef8.js.LICENSE.txt → 68d8ae42ab71d01a70a5.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{de28a86775235bd5d3c4.js.LICENSE.txt → 8dc1c3042267618fd710.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{12b5a645c0987a0efe54.js.LICENSE.txt → 96c50a0dda0f1503ef92.js.LICENSE.txt} +0 -0
package/chunks/FocusArea.glsl.js
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{signal as e}from"../core/signal.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{FloatPassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{
|
|
2
|
+
import{signal as e}from"../core/signal.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{FloatPassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Texture2DPassUniform as a}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{NoParameters as o}from"../views/webgl/NoParameters.js";import{ShaderBuilder as s}from"../views/webgl/ShaderBuilder.js";class c extends o{constructor(){super(...arguments),this.effect=0,this.fadeFactor=e(1)}}function l(e){let o=new s;return o.include(t),o.outputs.add(`fragColor`,`vec4`,0),o.fragment.uniforms.add(new a(`colorTexture`,e=>e.color),new a(`emissionTexture`,e=>e.emission),new a(`focusArea`,e=>e.focusArea),new i(`focusAreaEffectMode`,e=>e.effect),new n(`fadeFactor`,e=>e.fadeFactor.value)).constants.add(`EffectBright`,`int`,0).code.add(`float getLuminance(in vec4 color) { return color.r * 0.25 + color.g * 0.5 + color.b * 0.25; }`).main.add(`
|
|
3
3
|
float mask = texture(focusArea, uv).r;
|
|
4
4
|
|
|
5
5
|
if (focusAreaEffectMode == EffectBright) {
|
|
6
6
|
vec4 color = texture(colorTexture, uv);
|
|
7
|
-
float luminance = color
|
|
7
|
+
float luminance = getLuminance(color);
|
|
8
8
|
fragColor = mask > 0.0 ? color : mix(color, vec4(0.55 * luminance + 0.45), fadeFactor);
|
|
9
9
|
} else {
|
|
10
10
|
if(mask > 0.0) discard;
|
|
11
11
|
fragColor = vec4(vec3(0.0), fadeFactor * 0.67);
|
|
12
12
|
}
|
|
13
|
-
`),e.hasEmissive&&(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
fragEmission = vec4(vec3(0.0), fadeFactor * 0.9);
|
|
20
|
-
`)),a}const l=Object.freeze(Object.defineProperty({__proto__:null,FocusAreaPassParameters:s,build:c},Symbol.toStringTag,{value:`Module`}));export{s as F,l as a,c as b};
|
|
13
|
+
`),e.hasEmissive&&(o.outputs.add(`fragEmission`,`vec4`,1),o.fragment.main.add(r`if (focusAreaEffectMode == EffectBright) {
|
|
14
|
+
vec4 color = texture(emissionTexture, uv);
|
|
15
|
+
float luminance = getLuminance(color);
|
|
16
|
+
fragEmission = mask > 0.0 ? color : mix(color, vec4(0.67 * luminance), fadeFactor);
|
|
17
|
+
} else
|
|
18
|
+
fragEmission = vec4(vec3(0.0), fadeFactor * 0.9);`)),o}const u=Object.freeze(Object.defineProperty({__proto__:null,FocusAreaPassParameters:c,build:l},Symbol.toStringTag,{value:`Module`}));export{c as F,u as a,l as b};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{calculateUVZShadowPass as e}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadow.glsl.js";import{EvaluateSceneLighting as t,addAmbientBoostFactor as n,
|
|
2
|
+
import{calculateUVZShadowPass as e}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadow.glsl.js";import{EvaluateSceneLighting as t,addAmbientBoostFactor as n,lightingGlobalFactor as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{NormalUtils as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{readShadowPass as a,readShadowMaps as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js";import{RgbNormalizedDepthEncoding as s}from"../views/3d/webgl-engine/core/shaderLibrary/util/RgbNormalizedDepthEncoding.glsl.js";import{Float3BindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as l,If as u}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{gaussianSplatFirstHitAlpha as d}from"../views/3d/webgl-engine/shaders/GaussianSplatDepthPolicy.js";import{GaussianSplatPerspectivePass as f,GaussianSplatFading as p,gaussianSplatPerspectiveVertex as m}from"../views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js";import{getGaussianSplatAlphaCutoffValue as h}from"../views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js";import{ShaderBuilder as g}from"../views/webgl/ShaderBuilder.js";function _(_){let{receiveShadows:v,spherical:y}=_,b=v&&_.fragmentShading,x=b&&_.preciseDepth,S=new g,{varyings:C,vertex:w,fragment:T,outputs:E}=S;C.add(`vColor`,`vec4`),x&&C.add(`shadowReceiverRay`,`vec3`),S.include(f,_),_.fadingEnabled&&w.include(p),w.uniforms.add(new c(`cameraPosition`,e=>e.camera.eye));let D=b?T:w;D.uniforms.add(new c(`cameraPosition`,e=>e.camera.eye)),D.include(t,_),D.include(i,_),n(D),D.uniforms.add(r),b?S.include(a,_):v&&(w.include(e),_.hasShadowHighlights&&w.code.add(l`ivec2 getShadowHighlightCoordinates() {
|
|
3
3
|
vec2 screenUV = gl_Position.xy / gl_Position.w * 0.5 + 0.5;
|
|
4
4
|
ivec2 screenPixel = ivec2(screenUV / inverseScreenSize);
|
|
5
5
|
return clamp(screenPixel, ivec2(0), textureSize(shadowHighlight, 0) - 1);
|
|
@@ -47,7 +47,7 @@ vColor.a = opacity;`)}
|
|
|
47
47
|
|
|
48
48
|
${m(_,O)}
|
|
49
49
|
vColor.a = opacity;
|
|
50
|
-
${u(x
|
|
50
|
+
${u(x,`shadowReceiverRay = transpose(mat3(view)) * rayView;`)}
|
|
51
51
|
|
|
52
52
|
// Per-fragment lighting preserves crisp shadow borders; vertex lighting reduces overdraw cost.
|
|
53
53
|
${u(b,`forwardLinearDepth(-viewPos.z);`,A)}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{a as n,G as r,g as i,d as a,v as o,j as s}from"./Geometry.js";import{S as c,P as l}from"./MultiPathImpl.js";import{O as u,D as d,an as f,ao as p,av as m,aw as h,ax as g,ay as _,az as v,aA as y,ag as b,aB as x,aC as S,r as C,ae as w}from"./UnitFactory.js";import{k as T,d as E}from"./Envelope.js";import{Envelope2D as D}from"./Envelope2D.js";import{P as O,c as k,o as A,E as j,p as M}from"./Point2D.js";import{T as N}from"./Transformation2D.js";import{s as P,w as F,m as I}from"./Distance2DCalculator-DjIp2uQi.js";import{O as L}from"./OperatorShapePreservingDensify.js";import{O as R}from"./OperatorClip.js";function z(){return new D}class B{m_a;m_e2;m_b;m_unitToDegree;m_unitToRad;m_u180;m_u360;m_peR1;m_peR2;m_peR3;[Symbol.dispose](){this.m_peR1.destroy(),this.m_peR2.destroy(),this.m_peR3.destroy(),this.m_peR1=null,this.m_peR2=null,this.m_peR3=null}constructor(e,t,n){this.m_peR1=new f,this.m_peR2=new f,this.m_peR3=new f,e===void 0?this.reset(1,0,1):this.reset(e,t,n)}reset(e,t,n){this.m_a=e,this.m_e2=t,this.m_b=this.m_a*Math.sqrt(1-this.m_e2),this.m_unitToDegree=n,this.m_unitToRad=3.141592653589793/180*n,this.m_u180=180/this.m_unitToDegree,this.m_u360=360/this.m_unitToDegree}calculateBbox(e,t,n,r){let i=this.m_peR1,a=this.m_peR2,o=this.m_peR3;p.geodeticDistance(this.m_a,this.m_e2,e*this.m_unitToRad,t*this.m_unitToRad,n*this.m_unitToRad,r*this.m_unitToRad,o,i,a,0);let s=Math.cos(i.val),c=Math.cos(a.val+3.141592653589793),l=t*this.m_unitToRad,u=w.phiToEta(this.m_e2,l),d=Math.sin(i.val)*Math.cos(u),f=t;if(s*c<0){let e=Math.acos(Math.abs(d))*(s<0?-1:1);f=w.etaToPhi(this.m_e2,e)/this.m_unitToRad}let m=M((n-e)*this.m_unitToRad,2*Math.PI);Math.abs(m)>Math.PI&&(m=m>0?m-2*Math.PI:m+2*Math.PI),m/=this.m_unitToRad,n=e+m;let h=z();return h.xmin=Math.min(e,n),h.xmax=Math.max(e,n),h.ymin=Math.min(t,r),h.ymin=Math.min(h.ymin,f),h.ymax=Math.max(t,r),h.ymax=Math.max(h.ymax,f),h}minDistanceGeodesic(e,t){let n=V(e),r=V(t);if(n&&r)return this.lowerDistanceGeodetic_(e.xmin,e.ymin,t.xmin,t.ymin);let i=this.normalizeGeodesic_(t,e);return H(e,i)?e.ymin>=i.ymax?this.minDistanceGeodesicUpDown_(e,i):i.ymin>=e.ymax?this.minDistanceGeodesicUpDown_(i,e):e.xmin>i.xmax?this.minDistanceGeodesicLeftRight_(i,e):this.minDistanceGeodesicLeftRight_(e,i):0}normalizeGeodesic_(e,t){let n=e.clone(),r=e.clone(),i=U(n,t);if(i===0)return n;for(;r.xmax>t.xmin;){r.xmin-=this.m_u360,r.xmax-=this.m_u360;let e=U(r,t);if(e<i&&(n.assign(r),i=e,i===0))return n}for(r.assign(e);r.xmin<t.xmax;){r.xmin+=this.m_u360,r.xmax+=this.m_u360;let e=U(r,t);if(e<i&&(n.assign(r),i=e,i===0))return n}return n}lowerDistanceGeodetic_(e,t,n,r){let i=this.m_peR1;{let a=this.m_b*this.m_b/this.m_a,o=w.phiToPhig(this.m_e2,this.m_unitToRad*t),s=w.phiToPhig(this.m_e2,this.m_unitToRad*r);p.geodeticDistance(a,0,this.m_unitToRad*e,o,this.m_unitToRad*n,s,i,null,null,0)}return i.val}minDistanceGeodesicUpDown_(e,t){if(t.xmin<=e.xmin?t.xmax>=e.xmin:e.xmax>=t.xmin)return this.lowerDistanceGeodetic_(0,e.ymin,0,t.ymax);if(t.xmin>e.xmax){let n=this.lowerDistanceGeodeticSegMeridional_(e.xmax,e.ymin,e.ymax,t.xmin,t.ymin,t.ymax);if(t.xmax-e.xmin<this.m_u180)return n;let r=this.lowerDistanceGeodeticSegMeridional_(e.xmin,e.ymin,e.ymax,t.xmax,t.ymin,t.ymax);return Math.min(n,r)}{let n=this.lowerDistanceGeodeticSegMeridional_(e.xmin,e.ymin,e.ymax,t.xmax,t.ymin,t.ymax);if(e.xmax-t.xmin<this.m_u180)return n;let r=this.lowerDistanceGeodeticSegMeridional_(e.xmax,e.ymin,e.ymax,t.xmin,t.ymin,t.ymax);return Math.min(n,r)}}minDistanceGeodesicLeftRight_(e,t){let n=Math.abs(e.xmax-t.xmin);for(;n>this.m_u180;)n-=this.m_u360;let r=Math.abs(e.xmin-t.xmax);for(;r>this.m_u180;)r-=this.m_u360;return Math.abs(n)<=Math.abs(r)?this.minDistanceGeodesicLeftRightNormalized_(e,t):this.minDistanceGeodesicLeftRightNormalized_(t,e)}minDistanceGeodesicLeftRightNormalized_(e,t){let n,r;return n=this.lowerDistanceGeodetic_(e.xmax,e.ymin,t.xmin,t.ymin),e.ymin>=t.ymin&&e.ymin<=t.ymax&&(r=this.lowerDistanceGeodeticPtMeridional_(e.xmax,e.ymin,t.xmin,t.ymin,t.ymax),n=Math.min(n,r)),t.ymin>=e.ymin&&t.ymin<=e.ymax&&(r=this.lowerDistanceGeodeticPtMeridional_(t.xmin,t.ymin,e.xmax,e.ymin,e.ymax),n=Math.min(n,r)),r=this.lowerDistanceGeodetic_(e.xmax,e.ymax,t.xmin,t.ymax),n=Math.min(n,r),e.ymax>=t.ymin&&e.ymax<=t.ymax&&(r=this.lowerDistanceGeodeticPtMeridional_(e.xmax,e.ymax,t.xmin,t.ymin,t.ymax),n=Math.min(n,r)),t.ymax>=e.ymin&&t.ymax<=e.ymax&&(r=this.lowerDistanceGeodeticPtMeridional_(t.xmin,t.ymax,e.xmax,e.ymin,e.ymax),n=Math.min(n,r)),n}lowerDistanceGeodeticSegMeridional_(e,t,n,r,i,a){let o=this.lowerDistanceGeodeticPtMeridional_(e,t,r,i,a),s=this.lowerDistanceGeodeticPtMeridional_(e,n,r,i,a),c=this.lowerDistanceGeodeticPtMeridional_(r,i,e,t,n),l=this.lowerDistanceGeodeticPtMeridional_(r,a,e,t,n);return o=Math.min(o,s),c=Math.min(c,l),Math.min(o,c)}lowerDistanceGeodeticPtMeridional_(e,t,n,r,i){let a=this.m_b*this.m_b/this.m_a,o=w.phiToPhig(this.m_e2,this.m_unitToRad*t),s=w.phiToPhig(this.m_e2,this.m_unitToRad*r),c=w.phiToPhig(this.m_e2,this.m_unitToRad*i),l=this.m_peR1,u=this.m_peR2;p.geodeticDistance(a,0,this.m_unitToRad*n,s,this.m_unitToRad*e,o,l,null,null,0),p.geodeticDistance(a,0,this.m_unitToRad*n,c,this.m_unitToRad*e,o,u,null,null,0);let d=m(1,0,new O(this.m_unitToRad*e,o)),f=m(1,0,new O(this.m_unitToRad*n,s)),h=m(1,0,new O(this.m_unitToRad*n,c)),g=new T;g.setCrossProductVector(f,h);let _=f.dotProduct(h);if(g.length()<1568e-13)return _>=0?Math.min(l.val,u.val):0;g=g.getUnitVector();let v=new T;if(v.setCrossProductVector(g,d),v.length()<1568e-13)return Math.min(l.val,u.val)-a*1e-5;v=v.getUnitVector();let y=d.sub(g.mul(d.dotProduct(g)));{let t=new T;t.setCrossProductVector(f,y);let n=new T;n.setCrossProductVector(y,h);let r=g.dotProduct(t)>0&&g.dotProduct(n)>0;if(r||=(y.negateThis(),t.setCrossProductVector(f,y),n.setCrossProductVector(y,h),g.dotProduct(t)>0&&g.dotProduct(n)>0),r){y=y.getUnitVector();let t=S(1,0,y),n=this.m_peR3;p.geodeticDistance(a,0,this.m_unitToRad*e,o,t.x,t.y,n,null,null,0);let r=Math.min(l.val,u.val);return Math.min(r,n.val)}}return Math.min(l.val,u.val)}}function V(e){return e.xmin===e.xmax&&e.ymin===e.ymax}function H(e,t){return t.xmax<e.xmin||t.xmin>e.xmax||t.ymax<e.ymin||t.ymin>e.ymax}function U(e,t){let n=0,r;return r=e.xmin-t.xmax,r>n&&(n=r),r=t.xmin-e.xmax,r>n&&(n=r),n}class W{}function G(e){return{outPoint:e===void 0?new O:e.clone()}}function K(e,t){e.outPoint.assign(t.outPoint)}function q(){return new D}class J{m_ptDistFrom=new O;m_segStartPt=new O;m_segEndPt=new O;m_sr;m_distCurveType;m_segCurveType;m_a;m_eSquared;m_inputGCS;m_rpu;m_geodeticLength=new f;m_az12=new f;m_minGeodeticDist=new f;m_bIsPannablePcs;m_segStartPt3d=new T;m_segEndPt3d=new T;constructor(e,t,n,r,i=0,a=4){this.m_sr=r,this.m_distCurveType=i,this.m_segCurveType=a,this.m_inputGCS=this.m_sr.getGCS(),this.m_rpu=this.m_inputGCS.getUnit().getUnitToBaseFactor(),this.m_bIsPannablePcs=this.m_sr.getCoordinateSystemType()===2&&this.m_sr.isPannable();let o=C();this.m_inputGCS.querySpheroidData(o),this.m_a=o.majorSemiAxis,this.m_eSquared=o.e2,this.setPointDistFrom(e),this.setSegmentEndPoints(t,n)}setSegmentEndPoints(e,t){this.m_segStartPt.assign(e),this.m_segEndPt.assign(t),this.m_bIsPannablePcs||(this.m_segStartPt.mulThis(this.m_rpu),this.m_segEndPt.mulThis(this.m_rpu)),this.m_segCurveType===2&&(this.m_segStartPt3d.assign(m(this.m_a,this.m_eSquared,this.m_segStartPt)),this.m_segEndPt3d.assign(m(this.m_a,this.m_eSquared,this.m_segEndPt))),this.calculateAndUpdateSegmentLength()}setPointDistFrom(e){this.m_ptDistFrom.assign(e),this.m_ptDistFrom.scale(this.m_rpu)}setSegmentCurveType(e){this.m_segCurveType=e}setDistanceCurveType(e){this.m_distCurveType=e}makeFunctor(){return n=>{let r;switch(this.m_segCurveType){case 0:case 1:case 3:{let i={stack:[],error:void 0,hasError:!1};try{let t=e(i,new f,!1),a=e(i,new f,!1);p.geodeticCoordinate(this.m_a,this.m_eSquared,this.m_segStartPt.x,this.m_segStartPt.y,this.m_geodeticLength.val*n,this.m_az12.val,t,a,this.m_segCurveType),r=new O(t.val,a.val);break}catch(e){i.error=e,i.hasError=!0}finally{t(i)}}case 2:{let e=T.lerp(this.m_segStartPt3d,this.m_segEndPt3d,n);r=S(this.m_a,this.m_eSquared,e);break}case 4:r=O.lerp(this.m_segStartPt,this.m_segEndPt,n),this.m_bIsPannablePcs&&(g(this.m_sr,0,[r],1),r.mulThis(this.m_rpu));break;default:a(`Invalid curve type`)}return p.geodeticDistance(this.m_a,this.m_eSquared,this.m_ptDistFrom.x,this.m_ptDistFrom.y,r.x,r.y,this.m_minGeodeticDist,null,null,this.m_distCurveType),this.m_minGeodeticDist.val}}calculateAndUpdateSegmentLength(){switch(this.m_segCurveType){case 0:case 2:case 1:case 3:p.geodeticDistance(this.m_a,this.m_eSquared,this.m_segStartPt.x,this.m_segStartPt.y,this.m_segEndPt.x,this.m_segEndPt.y,this.m_geodeticLength,this.m_az12,null,this.m_segCurveType);break;case 4:this.m_geodeticLength.val=O.distance(this.m_segStartPt,this.m_segEndPt);break;default:a(`Invalid curve type`)}}[Symbol.dispose](){this.m_geodeticLength[Symbol.dispose](),this.m_az12[Symbol.dispose](),this.m_minGeodeticDist[Symbol.dispose]()}}function Y(){return new W}class X{m_inputSR;m_distCurveType;m_progressTracker;m_maxDistance;m_maxDeviation;m_inputGCS;m_peGeogcs;m_a;m_eSquared;m_rpu;m_envHelper;m_boxGeomA=q();m_boxGeomB=q();m_envGeomA=new D;m_envGeomB=new D;m_progressCounter=0;m_bIsPannablePcs;m_transformPCS2GCS=null;m_segmentBoxesA=new Map;m_segmentBoxesB=new Map;m_boundaryPtsA=[];m_boundaryPtsB=[];m_scaleToRadians=new N;m_scaleToDegrees=new N;m_tolerance;[Symbol.dispose](){this.m_envHelper[Symbol.dispose]()}constructor(e,t,n,r,i){this.m_inputSR=e,this.m_distCurveType=t,this.m_progressTracker=n,this.m_maxDistance=r,this.m_maxDeviation=i,this.m_inputGCS=e.getGCS(),this.m_peGeogcs=this.m_inputGCS.getPECoordSys(),this.m_tolerance=0;let a=C();this.m_inputGCS.querySpheroidData(a),this.m_a=a.majorSemiAxis,this.m_eSquared=a.e2,this.m_rpu=this.m_inputGCS.getUnit().getUnitToBaseFactor(),this.m_envHelper=new B(this.m_a,this.m_eSquared,1),this.m_distCurveType===4&&(this.m_distCurveType=0),this.m_boxGeomA.setEmpty(),this.m_boxGeomB.setEmpty(),this.m_envGeomA.setEmpty(),this.m_envGeomB.setEmpty(),this.m_bIsPannablePcs=this.m_inputSR.getCoordinateSystemType()===2&&this.m_inputSR.isPannable()}progress(e=!1){}calculate(e,t,n,r){let i=G(),a=G();if(e.queryEnvelope(this.m_envGeomA),t.queryEnvelope(this.m_envGeomB),this.checkGeometriesIntersect(e,t,i,a))return n&&K(n,i),r&&K(r,a),0;let o=this.prepareGeometry(e);if(o.isEmpty())return NaN;let s=this.prepareGeometry(t);if(s.isEmpty())return NaN;this.m_tolerance=this.computeTolerance(o,s);let c=this._ExecuteBruteForce(o,s,i,a);return c>=this.m_maxDistance?NaN:(n&&(this.prepareOutput(i),K(n,i)),r&&(this.prepareOutput(a),K(r,a)),c)}createDistanceFunctor(e,t,n){let r=new J(e,t,n,this.m_inputSR,this.m_distCurveType);return this.m_bIsPannablePcs||this.m_inputSR.getCoordinateSystemType()===1||r.setSegmentCurveType(2),r}_NormalizeAndProject(e){if(this.m_inputSR.isPannable()&&(e=new u().foldInto360Range(e,this.m_inputSR)),this.m_inputSR.getCoordinateSystemType()===2){let t=d(this.m_inputSR,this.m_inputGCS,null);e=new u().execute(e,t,this.m_progressTracker)}return e}_ExecuteBruteForce(e,t,i,a){switch(e.getGeometryType()){case r.enumPoint:return this.calculateDistanceGeodeticPointGeometry(e,t,i,a);case r.enumMultiPoint:return this.calculateDistanceGeodeticMultipointGeometry(e,t,i,a);case r.enumPolyline:case r.enumPolygon:case r.enumEnvelope:return this.calculateDistanceGeodeticMultipathGeometry(e,t,i,a);default:n(``)}}calculateDistanceGeodeticPointGeometry(e,t,i,a){switch(t.getGeometryType()){case r.enumPoint:return this.calculateDistanceGeodeticPointPoint(e,t,i,a);case r.enumMultiPoint:return this.calculateDistanceGeodeticPointMultipoint(e,t,i,a);case r.enumPolyline:case r.enumPolygon:return this.calculateDistanceGeodeticPointMultipath(e,t,i,a);default:n(``)}}calculateDistanceGeodeticPointPoint(n,r,i,a){let o={stack:[],error:void 0,hasError:!1};try{let t=n.getXY();t.scale(this.m_rpu);let s=r.getXY();s.scale(this.m_rpu),i.outPoint.assign(t),a.outPoint.assign(s);let c=e(o,new f,!1);return p.geodeticDistance(this.m_a,this.m_eSquared,t.x,t.y,s.x,s.y,c,null,null,this.m_distCurveType),c.val}catch(e){o.error=e,o.hasError=!0}finally{t(o)}}calculateDistanceGeodeticPointMultipoint(n,r,i,a){let o={stack:[],error:void 0,hasError:!1};try{this.computeEnvelopesAndBoxes(n,r);let t=this.estimateMinimumDistance(i,a),s=t<this.m_maxDistance?t:this.m_maxDistance,c=n.getXY();c.scale(this.m_rpu),i.outPoint.assign(c);let l=m(this.m_a,this.m_eSquared,c),u=new O,d=r.getImpl(),h=e(o,new f,!1),g=d.getPointCount();for(let e=0;e<g;++e){d.queryXY(e,u),u.scale(this.m_rpu);let t=m(this.m_a,this.m_eSquared,u);if(!(T.distance(l,t)>s)&&!(this.m_envHelper.minDistanceGeodesic(this.m_boxGeomA,this.m_boxGeomB)>s)&&(p.geodeticDistance(this.m_a,this.m_eSquared,c.x,c.y,u.x,u.y,h,null,null,this.m_distCurveType),h.val<s&&(s=h.val,a.outPoint=u,s===0)))return s}return s===this.m_maxDistance?1/0:s}catch(e){o.error=e,o.hasError=!0}finally{t(o)}}calculateDistanceGeodeticPointMultipath(n,r,a,o){let s={stack:[],error:void 0,hasError:!1};try{let t=new O,c=new O;t.assign(n.getXY()),c.assign(n.getXY()),a.outPoint.assign(c.mul(this.m_rpu)),this.m_bIsPannablePcs&&h(this.m_inputSR,[t],1,!1),this.computeEnvelopesAndBoxes(n,r);let l=this.estimateMinimumDistance(a,o),u=l<this.m_maxDistance?l:this.m_maxDistance,d=r.getImpl(),f=new O(0,0),p=new O(0,0),m=[1],g=this.canUseSpatialTree(n,r),_=Y();g&&this.buildSpatialTree(_,r);let v=q();v.setCoords({xmin:c.x,ymin:c.y,xmax:c.x,ymax:c.y});let y=e(s,this.createDistanceFunctor(c,f,p),!1),b=d.querySegmentIterator();if(b.stripAttributes(),g)i(0);else for(;b.nextPath();)for(;b.hasNextSegment();){let e=b.nextSegment(),n=this.findOrComputeBoxSegment(b.getStartPointIndex(),e,this.m_segmentBoxesB);if(this.m_envHelper.minDistanceGeodesic(v,n)>u)continue;let r=this.calculateDistanceGeodeticPointSegment(t,c,e,m,y);if(r.second<u&&(this.updateOutputSegment(o,e,r.first),u=r.second,u===0))return 0}return u===this.m_maxDistance?1/0:u}catch(e){s.error=e,s.hasError=!0}finally{t(s)}}calculateDistanceGeodeticMultipointGeometry(e,t,i,a){switch(t.getGeometryType()){case r.enumPoint:return this.calculateDistanceGeodeticPointMultipoint(t,e,a,i);case r.enumMultiPoint:return this.calculateDistanceGeodeticMultipointMultipoint(e,t,i,a);case r.enumPolyline:case r.enumPolygon:case r.enumEnvelope:return this.calculateDistanceGeodeticMultipointMultipath(e,t,i,a);default:n(``)}}calculateDistanceGeodeticMultipointMultipoint(n,r,i,a){let o={stack:[],error:void 0,hasError:!1};try{let t=e(o,new f,!1);this.computeEnvelopesAndBoxes(n,r);let s=this.estimateMinimumDistance(i,a),c=s<this.m_maxDistance?s:this.m_maxDistance,l=new O,u=new O,d=n.getImpl(),h=r.getImpl(),g=q(),_=d.getPointCount(),v=h.getPointCount();for(let e=0;e<_;++e){if(l.assign(d.getXY(e)),g.setCoords({xmin:l.x,ymin:l.y,xmax:l.x,ymax:l.y}),this.m_envHelper.minDistanceGeodesic(g,this.m_boxGeomB)>c)continue;l.scale(this.m_rpu);let n=m(this.m_a,this.m_eSquared,l);for(let e=0;e<v;++e){u.assign(h.getXY(e)),u.scale(this.m_rpu);let r=m(this.m_a,this.m_eSquared,u);if(!(T.distance(n,r)>=c)&&(p.geodeticDistance(this.m_a,this.m_eSquared,l.x,l.y,u.x,u.y,t,null,null,this.m_distCurveType),t.val<c&&(i.outPoint.assign(l),a.outPoint.assign(u),c=t.val,c===0)))return c}}return c===this.m_maxDistance?1/0:c}catch(e){o.error=e,o.hasError=!0}finally{t(o)}}calculateDistanceGeodeticMultipointMultipath(n,r,a,o){let s={stack:[],error:void 0,hasError:!1};try{let t=r.getImpl().querySegmentIterator();t.stripAttributes(),this.computeEnvelopesAndBoxes(n,r);let c=this.estimateMinimumDistance(a,o),l=c<this.m_maxDistance?c:this.m_maxDistance,u=new O,d=new O(0,0),f=new O(0,0),p=new O(0,0),m=[0],g=q(),_=e(s,this.createDistanceFunctor(d,f,p),!1),v=Y(),y=this.canUseSpatialTree(n,r);y&&this.buildSpatialTree(v,r);let b=n.getPointCount();for(let e=0;e<b;++e)if(u.assign(n.getXY(e)),d.assign(n.getXY(e)),this.m_bIsPannablePcs&&h(this.m_inputSR,[u],1,!1),g.setCoords({xmin:d.x,ymin:d.y,xmax:d.x,ymax:d.y}),!(this.m_envHelper.minDistanceGeodesic(g,this.m_boxGeomB)>l)){if(_.setPointDistFrom(d),y)i(0);else{for(;t.nextPath();)for(;t.hasNextSegment();){let e=t.nextSegment();if(this.m_envHelper.minDistanceGeodesic(g,this.findOrComputeBoxSegment(t.getStartPointIndex(),e,this.m_segmentBoxesB))>l)continue;let n=this.calculateDistanceGeodeticPointSegment(u,d,e,m,_);if(n.second<l&&(a.outPoint.assign(d.mul(this.m_rpu)),this.updateOutputSegment(o,e,n.first),l=n.second,l===0))return 0}t.resetToFirstPath()}}return l===this.m_maxDistance?1/0:l}catch(e){s.error=e,s.hasError=!0}finally{t(s)}}calculateDistanceGeodeticMultipathGeometry(e,t,i,a){switch(t.getGeometryType()){case r.enumPoint:return this.calculateDistanceGeodeticPointMultipath(t,e,a,i);case r.enumMultiPoint:return this.calculateDistanceGeodeticMultipointMultipath(t,e,a,i);case r.enumPolyline:case r.enumPolygon:case r.enumEnvelope:return this.calculateDistanceGeodeticMultipathMultipath(e,t,i,a);default:n(``)}}calculateDistanceGeodeticMultipathMultipath(e,t,n,r){let i=[e],a=[t],o=this.swapGeometries(i,a),s=i[0],c=a[0];this.computeEnvelopesAndBoxes(i[0],a[0]);let l=this.estimateMinimumDistance(n,r),u=this.calculateDistanceGeodeticMultipathMultipath_(s,c,n,r,l);return o&&(r.outPoint=k(n.outPoint,n.outPoint=r.outPoint)),u}calculateDistanceGeodeticMultipathMultipath_(n,r,a,o,s=Number.MAX_VALUE){let l={stack:[],error:void 0,hasError:!1};try{let t=s,u=new O(0,0),d=new O,f=new O(0,0),p=new O,m=new O(0,0),h=new O,v=new O,y=new O,b=[new O],x=[0],S=[0],C=q(),w=q(),T=e(l,this.createDistanceFunctor(m,u,f),!1),E=Y(),D=this.canUseSpatialTree(n,r);D&&this.buildSpatialTree(E,r);let k=r.querySegmentIterator();k.stripAttributes();let A=new c,j=P(n);for(let e=0;e<j.length;++e){let r=j[e];n.getSegmentBuffer(r,A,!0);let s=A.get();if(C.assign(this.findOrComputeBoxSegment(r,s,this.m_segmentBoxesA)),D)i(0);else{if(m.assign(s.getStartXY()),h.assign(s.getStartXY()),v.assign(s.getEndXY()),y.assign(s.getEndXY()),this.m_bIsPannablePcs&&(g(this.m_inputSR,0,[h],1),g(this.m_inputSR,0,[y],1)),this.m_envHelper.minDistanceGeodesic(C,this.m_boxGeomB)>t)continue;for(;k.nextPath();){for(;k.hasNextSegment();){let e=k.nextSegment();if(u.assign(e.getStartXY()),d.assign(e.getStartXY()),f.assign(e.getEndXY()),p.assign(e.getEndXY()),s.intersect(e,b,x,S,this.m_tolerance))return this.updateOutputSegment(a,s,x[0]),this.updateOutputSegment(o,e,S[0]),0;if(this.m_bIsPannablePcs&&(g(this.m_inputSR,0,[d],1),g(this.m_inputSR,0,[p],1)),w.assign(this.findOrComputeBoxPoint(k.getStartPointIndex(),d,p,this.m_segmentBoxesB)),this.m_envHelper.minDistanceGeodesic(C,w)>t)continue;T.setSegmentEndPoints(u,f),T.setPointDistFrom(h);let n=_(T.makeFunctor(),0,1,1e-10);if(n.second<t&&(a.outPoint.assign(h.mul(this.m_rpu)),this.updateOutputSegment(o,e,n.first),t=n.second,t===0)||(T.setPointDistFrom(y),n=_(T.makeFunctor(),0,1,1e-10),n.second<t&&(a.outPoint.assign(y.mul(this.m_rpu)),this.updateOutputSegment(o,e,n.first),t=n.second,t===0))||(T.setSegmentEndPoints(m,v),T.setPointDistFrom(d),n=_(T.makeFunctor(),0,1,1e-10),n.second<t&&(this.updateOutputSegment(a,s,n.first),o.outPoint.assign(d.mul(this.m_rpu)),t=n.second,t===0))||(T.setPointDistFrom(p),n=_(T.makeFunctor(),0,1,1e-10),n.second<t&&(this.updateOutputSegment(a,s,n.first),o.outPoint.assign(p.mul(this.m_rpu)),t=n.second,t===0)))break}if(t===0)return 0}k.resetToFirstPath()}}return t===this.m_maxDistance?1/0:t}catch(e){l.error=e,l.hasError=!0}finally{t(l)}}calculateDistanceGeodeticPointSegment(e,t,n,r,i){let a=n.getStartXY(),o=n.getEndXY();return n.intersectPoint(e,r,this.m_tolerance)?A(r[0],0):(i.setPointDistFrom(t),i.setSegmentEndPoints(a,o),_(i.makeFunctor(),0,1,1e-10))}prepareGeometry(e){let t=e.clone(),n=e.getGeometryType();if(n===r.enumPoint||n===r.enumMultiPoint)return this._NormalizeAndProject(t);if(n===r.enumEnvelope&&(t=this.envelopeToPolygon(t)),this.m_inputSR.isPannable())return this.prepareGeometryPannable(t,4);if(this.m_inputSR.getCoordinateSystemType()===2){if(t=v(t,this.m_inputSR,0,null),t.isEmpty())return t;t=new L().execute(t,this.m_inputSR,5e4,this.m_maxDeviation/2,0,null);let e=this.m_inputSR.getSRToGCSTransform();return new u().execute(t,e,this.m_progressTracker)}let i=new D;t.queryLooseEnvelope(i);let a=this.m_inputSR.getPannableExtent();if(i.ymin<a.ymin||i.ymax>a.ymax){let e=new D(i.xmin-1,a.ymin,i.xmax+1,a.ymax);if(t=new R().execute(t,e,this.m_inputSR,this.m_progressTracker),t.isEmpty())return t}return i.width()>a.width()*2&&(t=y(t,-2*a.width(),2*a.width(),this.m_inputSR,!0,0,!0,this.m_progressTracker)),t}prepareGeometryPannable(e,t){let n=new D;e.queryEnvelope(n);let r=this.m_inputSR.getPannableExtent();if(r.containsEnvelope(n))return e;let i=new j;r.queryIntervalX(i);let a=new j;return n.queryIntervalX(a),e=i.contains(a)?b(e,this.m_inputSR):new u().foldInto360RangeGeodetic(e,this.m_inputSR,t),e}prepareOutput(e){e.outPoint.scale(1/this.m_rpu),this.m_inputSR.getCoordinateSystemType()===2&&h(this.m_inputSR,[e.outPoint],1,!1)}updateOutputSegment(e,t,n){t.queryCoord2D(n,e.outPoint),this.m_bIsPannablePcs&&g(this.m_inputSR,0,[e.outPoint],1),e.outPoint.mulThis(this.m_rpu)}computeTolerance(e,t){e.queryEnvelope(this.m_envGeomA),t.queryEnvelope(this.m_envGeomB);let n=new D(this.m_envGeomA);return n.mergeEnvelope2D(this.m_envGeomB),E(null,n)}envelopeToPolygon(e){let t=new l;return t.addEnvelope(e,!1),t}computeEnvelopesAndBoxes(e,t){e.queryEnvelope(this.m_envGeomA),t.queryEnvelope(this.m_envGeomB),this.m_boxGeomA=this.computeBoxGeometry(e,this.m_boundaryPtsA,this.m_segmentBoxesA),this.m_boxGeomB=this.computeBoxGeometry(t,this.m_boundaryPtsB,this.m_segmentBoxesB)}computeBoxGeometry(e,t,n){switch(e.getGeometryType()){case r.enumPoint:return this.computeBoxPoint(e,t);case r.enumMultiPoint:return this.computeBoxMultiPoint(e,t);case r.enumPolyline:case r.enumPolygon:return this.computeBoxMultiPath(e,t,n);default:a(`Invalid geometry type`)}}computeBoxPoint(e,t){let n=e.getXY();t.length=0,t.push(n.mul(this.m_rpu));let r=q();return r.setCoords({xmin:n.x,ymin:n.y,xmax:n.x,ymax:n.y}),r}computeBoxMultiPoint(e,t){let n=!0;for(let r=0;r<e.getPointCount();++r){let i=e.getXY(r);if(n){t.length=0;for(let e=0;e<4;++e)t.push(i.clone());n=!1}i.x<t[0].x&&t[0].assign(i),i.y>t[1].y&&t[1].assign(i),i.x>t[2].x&&t[2].assign(i),i.y<t[3].y&&t[3].assign(i)}for(let e=0;e<t.length;++e)t[e].mulThis(this.m_rpu);let r=q();return e.queryEnvelope(r),r}computeBoxMultiPath(e,t,n){let r=!0,i=q();i.setEmpty();let a=e.querySegmentIterator();for(a.stripAttributes();a.nextPath();)for(;a.hasNextSegment();){let e=a.nextSegment(),o=e.getStartXY(),s=e.getEndXY();if(this.m_bIsPannablePcs&&(g(this.m_inputSR,0,[o],1),g(this.m_inputSR,0,[s],1)),r){for(let e=0;e<4;++e)t.push(o.clone());r=!1}o.x<t[0].x&&t[0].assign(o),o.y>t[1].y&&t[1].assign(o),o.x>t[2].x&&t[2].assign(o),o.y<t[3].y&&t[3].assign(o),s.x<t[0].x&&t[0].assign(s),s.y>t[1].y&&t[1].assign(s),s.x>t[2].x&&t[2].assign(s),s.y<t[3].y&&t[3].assign(s);let c=this.findOrComputeBoxPoint(a.getStartPointIndex(),o,s,n);i.mergeEnvelope2D(c)}for(let e=0;e<t.length;++e)t[e].mulThis(this.m_rpu);return i}findOrComputeBoxSegment(e,t,n){if(!n.has(e)){let r=q();if(t.queryEnvelope(r),this.m_bIsPannablePcs){let e=O.construct(r.xmin,r.ymin),t=O.construct(r.xmax,r.ymax);g(this.m_inputSR,0,[e],1),g(this.m_inputSR,0,[t],1),r=this.m_envHelper.calculateBbox(e.x,e.y,t.x,t.y)}return n.set(e,r),r}return n.get(e)}findOrComputeBoxPoint(e,t,n,r){if(!r.has(e)){let i=q();return i.setCoords({xmin:t.x,ymin:t.y,xmax:n.x,ymax:n.y}),this.m_bIsPannablePcs&&(i=this.m_envHelper.calculateBbox(i.xmin,i.ymin,i.xmax,i.ymax)),r.set(e,i),i}return r.get(e)}estimateMinimumDistance(n,r){let i={stack:[],error:void 0,hasError:!1};try{let t=e=>m(this.m_a,this.m_eSquared,e),a=this.m_boundaryPtsA.map(t),o=this.m_boundaryPtsB.map(t),s=Number.MAX_VALUE,c=0,l=0;for(let e=0;e<a.length;++e)for(let t=0;t<o.length;++t){let n=T.distance(a[e],o[t]);n<s&&(s=n,c=e,l=t)}n.outPoint.assign(this.m_boundaryPtsA[c]),r.outPoint.assign(this.m_boundaryPtsB[l]);let u=e(i,new f,!1);return p.geodeticDistance(this.m_a,this.m_eSquared,this.m_boundaryPtsA[c].x,this.m_boundaryPtsA[c].y,this.m_boundaryPtsB[l].x,this.m_boundaryPtsB[l].y,u,null,null,this.m_distCurveType),u.val}catch(e){i.error=e,i.hasError=!0}finally{t(i)}}swapGeometries(e,t){return o(e[0])>o(t[0])&&(t[0]=k(e[0],e[0]=t[0]),this.m_envGeomB=k(this.m_envGeomA,this.m_envGeomA=this.m_envGeomB),!0)}canUseSpatialTree(e,t){return!1}checkGeometriesIntersect(e,t,n,i){let a=e.getGeometryType(),o=t.getGeometryType();if(this.m_envGeomA.isIntersecting(this.m_envGeomB)){if(a===r.enumPoint&&t.getDimension()===2){let r=[0],a=[e.getXY()];if(x(t,a,1,this.m_tolerance,r),r[0]!==0)return n.outPoint.assign(a[0]),i.outPoint.assign(a[0]),!0}else if(o===r.enumPoint&&e.getDimension()===2){let r=[2],a=[t.getXY()];if(x(e,a,1,this.m_tolerance,r),r[0]!==0)return n.outPoint.assign(a[0]),i.outPoint.assign(a[0]),!0}if(a===r.enumMultiPoint&&t.getDimension()===2)return this.multipointIntersectsArea(e,t,n,i);if(o===r.enumMultiPoint&&e.getDimension()===2)return this.multipointIntersectsArea(t,e,i,n);let c=e,l=t,u,d;if(a===r.enumEnvelope&&(u=this.envelopeToPolygon(e),c=u,a=r.enumPolygon),o===r.enumEnvelope&&(d=this.envelopeToPolygon(t),l=d,o=r.enumPolygon),s(a)&&s(o)){let e=c.querySegmentIterator(),t=l.querySegmentIterator(),r=I(),a=I();if(F(c,l,e,t,r,a))return n.outPoint.assign(r.outPoint),i.outPoint.assign(r.outPoint),!0}}return!1}multipointIntersectsArea(e,t,n,r){let i=e.getPointCount();for(let a=0;a<i;++a){let i=[2],o=e.getXY(a);if(x(t,[o],1,this.m_tolerance,i),i[0]!==0)return n.outPoint.assign(o),r.outPoint.assign(o),!0}return!1}getNearestNeighbourVisitor(e,t,n,r,a,o,s){return i(0),{}}buildSpatialTree(e,t){i(0)}}export{X as G,J as a,G as m};
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{b as n,G as r,g as i,d as a,v as o,j as s}from"./Geometry.js";import{S as c,P as l}from"./MultiPathImpl.js";import{O as u,D as d,an as f,ao as p,av as m,aw as h,ax as g,ay as _,az as v,aA as y,ag as b,aB as x,aC as S,r as C,ae as w}from"./UnitFactory.js";import{k as T,d as E}from"./Envelope.js";import{Envelope2D as D}from"./Envelope2D.js";import{P as O,s as k,o as A,E as j,p as M}from"./Point2D.js";import{T as N}from"./Transformation2D.js";import{s as P,w as F,m as I}from"./Distance2DCalculator-DjIp2uQi.js";import{O as L}from"./OperatorShapePreservingDensify.js";import{O as R}from"./OperatorClip.js";function z(){return new D}class B{m_a;m_e2;m_b;m_unitToDegree;m_unitToRad;m_u180;m_u360;m_peR1;m_peR2;m_peR3;[Symbol.dispose](){this.m_peR1.destroy(),this.m_peR2.destroy(),this.m_peR3.destroy(),this.m_peR1=null,this.m_peR2=null,this.m_peR3=null}constructor(e,t,n){this.m_peR1=new f,this.m_peR2=new f,this.m_peR3=new f,e===void 0?this.reset(1,0,1):this.reset(e,t,n)}reset(e,t,n){this.m_a=e,this.m_e2=t,this.m_b=this.m_a*Math.sqrt(1-this.m_e2),this.m_unitToDegree=n,this.m_unitToRad=3.141592653589793/180*n,this.m_u180=180/this.m_unitToDegree,this.m_u360=360/this.m_unitToDegree}calculateBbox(e,t,n,r){let i=this.m_peR1,a=this.m_peR2,o=this.m_peR3;p.geodeticDistance(this.m_a,this.m_e2,e*this.m_unitToRad,t*this.m_unitToRad,n*this.m_unitToRad,r*this.m_unitToRad,o,i,a,0);let s=Math.cos(i.val),c=Math.cos(a.val+3.141592653589793),l=t*this.m_unitToRad,u=w.phiToEta(this.m_e2,l),d=Math.sin(i.val)*Math.cos(u),f=t;if(s*c<0){let e=Math.acos(Math.abs(d))*(s<0?-1:1);f=w.etaToPhi(this.m_e2,e)/this.m_unitToRad}let m=M((n-e)*this.m_unitToRad,2*Math.PI);Math.abs(m)>Math.PI&&(m=m>0?m-2*Math.PI:m+2*Math.PI),m/=this.m_unitToRad,n=e+m;let h=z();return h.xmin=Math.min(e,n),h.xmax=Math.max(e,n),h.ymin=Math.min(t,r),h.ymin=Math.min(h.ymin,f),h.ymax=Math.max(t,r),h.ymax=Math.max(h.ymax,f),h}minDistanceGeodesic(e,t){let n=V(e),r=V(t);if(n&&r)return this.lowerDistanceGeodetic_(e.xmin,e.ymin,t.xmin,t.ymin);let i=this.normalizeGeodesic_(t,e);return H(e,i)?e.ymin>=i.ymax?this.minDistanceGeodesicUpDown_(e,i):i.ymin>=e.ymax?this.minDistanceGeodesicUpDown_(i,e):e.xmin>i.xmax?this.minDistanceGeodesicLeftRight_(i,e):this.minDistanceGeodesicLeftRight_(e,i):0}normalizeGeodesic_(e,t){let n=e.clone(),r=e.clone(),i=U(n,t);if(i===0)return n;for(;r.xmax>t.xmin;){r.xmin-=this.m_u360,r.xmax-=this.m_u360;let e=U(r,t);if(e<i&&(n.assign(r),i=e,i===0))return n}for(r.assign(e);r.xmin<t.xmax;){r.xmin+=this.m_u360,r.xmax+=this.m_u360;let e=U(r,t);if(e<i&&(n.assign(r),i=e,i===0))return n}return n}lowerDistanceGeodetic_(e,t,n,r){let i=this.m_peR1;{let a=this.m_b*this.m_b/this.m_a,o=w.phiToPhig(this.m_e2,this.m_unitToRad*t),s=w.phiToPhig(this.m_e2,this.m_unitToRad*r);p.geodeticDistance(a,0,this.m_unitToRad*e,o,this.m_unitToRad*n,s,i,null,null,0)}return i.val}minDistanceGeodesicUpDown_(e,t){if(t.xmin<=e.xmin?t.xmax>=e.xmin:e.xmax>=t.xmin)return this.lowerDistanceGeodetic_(0,e.ymin,0,t.ymax);if(t.xmin>e.xmax){let n=this.lowerDistanceGeodeticSegMeridional_(e.xmax,e.ymin,e.ymax,t.xmin,t.ymin,t.ymax);if(t.xmax-e.xmin<this.m_u180)return n;let r=this.lowerDistanceGeodeticSegMeridional_(e.xmin,e.ymin,e.ymax,t.xmax,t.ymin,t.ymax);return Math.min(n,r)}{let n=this.lowerDistanceGeodeticSegMeridional_(e.xmin,e.ymin,e.ymax,t.xmax,t.ymin,t.ymax);if(e.xmax-t.xmin<this.m_u180)return n;let r=this.lowerDistanceGeodeticSegMeridional_(e.xmax,e.ymin,e.ymax,t.xmin,t.ymin,t.ymax);return Math.min(n,r)}}minDistanceGeodesicLeftRight_(e,t){let n=Math.abs(e.xmax-t.xmin);for(;n>this.m_u180;)n-=this.m_u360;let r=Math.abs(e.xmin-t.xmax);for(;r>this.m_u180;)r-=this.m_u360;return Math.abs(n)<=Math.abs(r)?this.minDistanceGeodesicLeftRightNormalized_(e,t):this.minDistanceGeodesicLeftRightNormalized_(t,e)}minDistanceGeodesicLeftRightNormalized_(e,t){let n,r;return n=this.lowerDistanceGeodetic_(e.xmax,e.ymin,t.xmin,t.ymin),e.ymin>=t.ymin&&e.ymin<=t.ymax&&(r=this.lowerDistanceGeodeticPtMeridional_(e.xmax,e.ymin,t.xmin,t.ymin,t.ymax),n=Math.min(n,r)),t.ymin>=e.ymin&&t.ymin<=e.ymax&&(r=this.lowerDistanceGeodeticPtMeridional_(t.xmin,t.ymin,e.xmax,e.ymin,e.ymax),n=Math.min(n,r)),r=this.lowerDistanceGeodetic_(e.xmax,e.ymax,t.xmin,t.ymax),n=Math.min(n,r),e.ymax>=t.ymin&&e.ymax<=t.ymax&&(r=this.lowerDistanceGeodeticPtMeridional_(e.xmax,e.ymax,t.xmin,t.ymin,t.ymax),n=Math.min(n,r)),t.ymax>=e.ymin&&t.ymax<=e.ymax&&(r=this.lowerDistanceGeodeticPtMeridional_(t.xmin,t.ymax,e.xmax,e.ymin,e.ymax),n=Math.min(n,r)),n}lowerDistanceGeodeticSegMeridional_(e,t,n,r,i,a){let o=this.lowerDistanceGeodeticPtMeridional_(e,t,r,i,a),s=this.lowerDistanceGeodeticPtMeridional_(e,n,r,i,a),c=this.lowerDistanceGeodeticPtMeridional_(r,i,e,t,n),l=this.lowerDistanceGeodeticPtMeridional_(r,a,e,t,n);return o=Math.min(o,s),c=Math.min(c,l),Math.min(o,c)}lowerDistanceGeodeticPtMeridional_(e,t,n,r,i){let a=this.m_b*this.m_b/this.m_a,o=w.phiToPhig(this.m_e2,this.m_unitToRad*t),s=w.phiToPhig(this.m_e2,this.m_unitToRad*r),c=w.phiToPhig(this.m_e2,this.m_unitToRad*i),l=this.m_peR1,u=this.m_peR2;p.geodeticDistance(a,0,this.m_unitToRad*n,s,this.m_unitToRad*e,o,l,null,null,0),p.geodeticDistance(a,0,this.m_unitToRad*n,c,this.m_unitToRad*e,o,u,null,null,0);let d=m(1,0,new O(this.m_unitToRad*e,o)),f=m(1,0,new O(this.m_unitToRad*n,s)),h=m(1,0,new O(this.m_unitToRad*n,c)),g=new T;g.setCrossProductVector(f,h);let _=f.dotProduct(h);if(g.length()<1568e-13)return _>=0?Math.min(l.val,u.val):0;g=g.getUnitVector();let v=new T;if(v.setCrossProductVector(g,d),v.length()<1568e-13)return Math.min(l.val,u.val)-a*1e-5;v=v.getUnitVector();let y=d.sub(g.mul(d.dotProduct(g)));{let t=new T;t.setCrossProductVector(f,y);let n=new T;n.setCrossProductVector(y,h);let r=g.dotProduct(t)>0&&g.dotProduct(n)>0;if(r||=(y.negateThis(),t.setCrossProductVector(f,y),n.setCrossProductVector(y,h),g.dotProduct(t)>0&&g.dotProduct(n)>0),r){y=y.getUnitVector();let t=S(1,0,y),n=this.m_peR3;p.geodeticDistance(a,0,this.m_unitToRad*e,o,t.x,t.y,n,null,null,0);let r=Math.min(l.val,u.val);return Math.min(r,n.val)}}return Math.min(l.val,u.val)}}function V(e){return e.xmin===e.xmax&&e.ymin===e.ymax}function H(e,t){return t.xmax<e.xmin||t.xmin>e.xmax||t.ymax<e.ymin||t.ymin>e.ymax}function U(e,t){let n=0,r;return r=e.xmin-t.xmax,r>n&&(n=r),r=t.xmin-e.xmax,r>n&&(n=r),n}class W{}function G(e){return{outPoint:e===void 0?new O:e.clone()}}function K(e,t){e.outPoint.assign(t.outPoint)}function q(){return new D}class J{m_ptDistFrom=new O;m_segStartPt=new O;m_segEndPt=new O;m_sr;m_distCurveType;m_segCurveType;m_a;m_eSquared;m_inputGCS;m_rpu;m_geodeticLength=new f;m_az12=new f;m_minGeodeticDist=new f;m_bIsPannablePcs;m_segStartPt3d=new T;m_segEndPt3d=new T;constructor(e,t,n,r,i=0,a=4){this.m_sr=r,this.m_distCurveType=i,this.m_segCurveType=a,this.m_inputGCS=this.m_sr.getGCS(),this.m_rpu=this.m_inputGCS.getUnit().getUnitToBaseFactor(),this.m_bIsPannablePcs=this.m_sr.getCoordinateSystemType()===2&&this.m_sr.isPannable();let o=C();this.m_inputGCS.querySpheroidData(o),this.m_a=o.majorSemiAxis,this.m_eSquared=o.e2,this.setPointDistFrom(e),this.setSegmentEndPoints(t,n)}setSegmentEndPoints(e,t){this.m_segStartPt.assign(e),this.m_segEndPt.assign(t),this.m_bIsPannablePcs||(this.m_segStartPt.mulThis(this.m_rpu),this.m_segEndPt.mulThis(this.m_rpu)),this.m_segCurveType===2&&(this.m_segStartPt3d.assign(m(this.m_a,this.m_eSquared,this.m_segStartPt)),this.m_segEndPt3d.assign(m(this.m_a,this.m_eSquared,this.m_segEndPt))),this.calculateAndUpdateSegmentLength()}setPointDistFrom(e){this.m_ptDistFrom.assign(e),this.m_ptDistFrom.scale(this.m_rpu)}setSegmentCurveType(e){this.m_segCurveType=e}setDistanceCurveType(e){this.m_distCurveType=e}makeFunctor(){return n=>{let r;switch(this.m_segCurveType){case 0:case 1:case 3:{let i={stack:[],error:void 0,hasError:!1};try{let t=e(i,new f,!1),a=e(i,new f,!1);p.geodeticCoordinate(this.m_a,this.m_eSquared,this.m_segStartPt.x,this.m_segStartPt.y,this.m_geodeticLength.val*n,this.m_az12.val,t,a,this.m_segCurveType),r=new O(t.val,a.val);break}catch(e){i.error=e,i.hasError=!0}finally{t(i)}}case 2:{let e=T.lerp(this.m_segStartPt3d,this.m_segEndPt3d,n);r=S(this.m_a,this.m_eSquared,e);break}case 4:r=O.lerp(this.m_segStartPt,this.m_segEndPt,n),this.m_bIsPannablePcs&&(g(this.m_sr,0,[r],1),r.mulThis(this.m_rpu));break;default:a(`Invalid curve type`)}return p.geodeticDistance(this.m_a,this.m_eSquared,this.m_ptDistFrom.x,this.m_ptDistFrom.y,r.x,r.y,this.m_minGeodeticDist,null,null,this.m_distCurveType),this.m_minGeodeticDist.val}}calculateAndUpdateSegmentLength(){switch(this.m_segCurveType){case 0:case 2:case 1:case 3:p.geodeticDistance(this.m_a,this.m_eSquared,this.m_segStartPt.x,this.m_segStartPt.y,this.m_segEndPt.x,this.m_segEndPt.y,this.m_geodeticLength,this.m_az12,null,this.m_segCurveType);break;case 4:this.m_geodeticLength.val=O.distance(this.m_segStartPt,this.m_segEndPt);break;default:a(`Invalid curve type`)}}[Symbol.dispose](){this.m_geodeticLength[Symbol.dispose](),this.m_az12[Symbol.dispose](),this.m_minGeodeticDist[Symbol.dispose]()}}function Y(){return new W}class X{m_inputSR;m_distCurveType;m_progressTracker;m_maxDistance;m_maxDeviation;m_inputGCS;m_peGeogcs;m_a;m_eSquared;m_rpu;m_envHelper;m_boxGeomA=q();m_boxGeomB=q();m_envGeomA=new D;m_envGeomB=new D;m_progressCounter=0;m_bIsPannablePcs;m_transformPCS2GCS=null;m_segmentBoxesA=new Map;m_segmentBoxesB=new Map;m_boundaryPtsA=[];m_boundaryPtsB=[];m_scaleToRadians=new N;m_scaleToDegrees=new N;m_tolerance;[Symbol.dispose](){this.m_envHelper[Symbol.dispose]()}constructor(e,t,n,r,i){this.m_inputSR=e,this.m_distCurveType=t,this.m_progressTracker=n,this.m_maxDistance=r,this.m_maxDeviation=i,this.m_inputGCS=e.getGCS(),this.m_peGeogcs=this.m_inputGCS.getPECoordSys(),this.m_tolerance=0;let a=C();this.m_inputGCS.querySpheroidData(a),this.m_a=a.majorSemiAxis,this.m_eSquared=a.e2,this.m_rpu=this.m_inputGCS.getUnit().getUnitToBaseFactor(),this.m_envHelper=new B(this.m_a,this.m_eSquared,1),this.m_distCurveType===4&&(this.m_distCurveType=0),this.m_boxGeomA.setEmpty(),this.m_boxGeomB.setEmpty(),this.m_envGeomA.setEmpty(),this.m_envGeomB.setEmpty(),this.m_bIsPannablePcs=this.m_inputSR.getCoordinateSystemType()===2&&this.m_inputSR.isPannable()}progress(e=!1){}calculate(e,t,n,r){let i=G(),a=G();if(e.queryEnvelope(this.m_envGeomA),t.queryEnvelope(this.m_envGeomB),this.checkGeometriesIntersect(e,t,i,a))return n&&K(n,i),r&&K(r,a),0;let o=this.prepareGeometry(e);if(o.isEmpty())return NaN;let s=this.prepareGeometry(t);if(s.isEmpty())return NaN;this.m_tolerance=this.computeTolerance(o,s);let c=this._ExecuteBruteForce(o,s,i,a);return c>=this.m_maxDistance?NaN:(n&&(this.prepareOutput(i),K(n,i)),r&&(this.prepareOutput(a),K(r,a)),c)}createDistanceFunctor(e,t,n){let r=new J(e,t,n,this.m_inputSR,this.m_distCurveType);return this.m_bIsPannablePcs||this.m_inputSR.getCoordinateSystemType()===1||r.setSegmentCurveType(2),r}_NormalizeAndProject(e){if(this.m_inputSR.isPannable()&&(e=new u().foldInto360Range(e,this.m_inputSR)),this.m_inputSR.getCoordinateSystemType()===2){let t=d(this.m_inputSR,this.m_inputGCS,null);e=new u().execute(e,t,this.m_progressTracker)}return e}_ExecuteBruteForce(e,t,i,a){switch(e.getGeometryType()){case r.enumPoint:return this.calculateDistanceGeodeticPointGeometry(e,t,i,a);case r.enumMultiPoint:return this.calculateDistanceGeodeticMultipointGeometry(e,t,i,a);case r.enumPolyline:case r.enumPolygon:case r.enumEnvelope:return this.calculateDistanceGeodeticMultipathGeometry(e,t,i,a);default:n(``)}}calculateDistanceGeodeticPointGeometry(e,t,i,a){switch(t.getGeometryType()){case r.enumPoint:return this.calculateDistanceGeodeticPointPoint(e,t,i,a);case r.enumMultiPoint:return this.calculateDistanceGeodeticPointMultipoint(e,t,i,a);case r.enumPolyline:case r.enumPolygon:return this.calculateDistanceGeodeticPointMultipath(e,t,i,a);default:n(``)}}calculateDistanceGeodeticPointPoint(n,r,i,a){let o={stack:[],error:void 0,hasError:!1};try{let t=n.getXY();t.scale(this.m_rpu);let s=r.getXY();s.scale(this.m_rpu),i.outPoint.assign(t),a.outPoint.assign(s);let c=e(o,new f,!1);return p.geodeticDistance(this.m_a,this.m_eSquared,t.x,t.y,s.x,s.y,c,null,null,this.m_distCurveType),c.val}catch(e){o.error=e,o.hasError=!0}finally{t(o)}}calculateDistanceGeodeticPointMultipoint(n,r,i,a){let o={stack:[],error:void 0,hasError:!1};try{this.computeEnvelopesAndBoxes(n,r);let t=this.estimateMinimumDistance(i,a),s=t<this.m_maxDistance?t:this.m_maxDistance,c=n.getXY();c.scale(this.m_rpu),i.outPoint.assign(c);let l=m(this.m_a,this.m_eSquared,c),u=new O,d=r.getImpl(),h=e(o,new f,!1),g=d.getPointCount();for(let e=0;e<g;++e){d.queryXY(e,u),u.scale(this.m_rpu);let t=m(this.m_a,this.m_eSquared,u);if(!(T.distance(l,t)>s)&&!(this.m_envHelper.minDistanceGeodesic(this.m_boxGeomA,this.m_boxGeomB)>s)&&(p.geodeticDistance(this.m_a,this.m_eSquared,c.x,c.y,u.x,u.y,h,null,null,this.m_distCurveType),h.val<s&&(s=h.val,a.outPoint=u,s===0)))return s}return s===this.m_maxDistance?1/0:s}catch(e){o.error=e,o.hasError=!0}finally{t(o)}}calculateDistanceGeodeticPointMultipath(n,r,a,o){let s={stack:[],error:void 0,hasError:!1};try{let t=new O,c=new O;t.assign(n.getXY()),c.assign(n.getXY()),a.outPoint.assign(c.mul(this.m_rpu)),this.m_bIsPannablePcs&&h(this.m_inputSR,[t],1,!1),this.computeEnvelopesAndBoxes(n,r);let l=this.estimateMinimumDistance(a,o),u=l<this.m_maxDistance?l:this.m_maxDistance,d=r.getImpl(),f=new O(0,0),p=new O(0,0),m=[1],g=this.canUseSpatialTree(n,r),_=Y();g&&this.buildSpatialTree(_,r);let v=q();v.setCoords({xmin:c.x,ymin:c.y,xmax:c.x,ymax:c.y});let y=e(s,this.createDistanceFunctor(c,f,p),!1),b=d.querySegmentIterator();if(b.stripAttributes(),g)i(0);else for(;b.nextPath();)for(;b.hasNextSegment();){let e=b.nextSegment(),n=this.findOrComputeBoxSegment(b.getStartPointIndex(),e,this.m_segmentBoxesB);if(this.m_envHelper.minDistanceGeodesic(v,n)>u)continue;let r=this.calculateDistanceGeodeticPointSegment(t,c,e,m,y);if(r.second<u&&(this.updateOutputSegment(o,e,r.first),u=r.second,u===0))return 0}return u===this.m_maxDistance?1/0:u}catch(e){s.error=e,s.hasError=!0}finally{t(s)}}calculateDistanceGeodeticMultipointGeometry(e,t,i,a){switch(t.getGeometryType()){case r.enumPoint:return this.calculateDistanceGeodeticPointMultipoint(t,e,a,i);case r.enumMultiPoint:return this.calculateDistanceGeodeticMultipointMultipoint(e,t,i,a);case r.enumPolyline:case r.enumPolygon:case r.enumEnvelope:return this.calculateDistanceGeodeticMultipointMultipath(e,t,i,a);default:n(``)}}calculateDistanceGeodeticMultipointMultipoint(n,r,i,a){let o={stack:[],error:void 0,hasError:!1};try{let t=e(o,new f,!1);this.computeEnvelopesAndBoxes(n,r);let s=this.estimateMinimumDistance(i,a),c=s<this.m_maxDistance?s:this.m_maxDistance,l=new O,u=new O,d=n.getImpl(),h=r.getImpl(),g=q(),_=d.getPointCount(),v=h.getPointCount();for(let e=0;e<_;++e){if(l.assign(d.getXY(e)),g.setCoords({xmin:l.x,ymin:l.y,xmax:l.x,ymax:l.y}),this.m_envHelper.minDistanceGeodesic(g,this.m_boxGeomB)>c)continue;l.scale(this.m_rpu);let n=m(this.m_a,this.m_eSquared,l);for(let e=0;e<v;++e){u.assign(h.getXY(e)),u.scale(this.m_rpu);let r=m(this.m_a,this.m_eSquared,u);if(!(T.distance(n,r)>=c)&&(p.geodeticDistance(this.m_a,this.m_eSquared,l.x,l.y,u.x,u.y,t,null,null,this.m_distCurveType),t.val<c&&(i.outPoint.assign(l),a.outPoint.assign(u),c=t.val,c===0)))return c}}return c===this.m_maxDistance?1/0:c}catch(e){o.error=e,o.hasError=!0}finally{t(o)}}calculateDistanceGeodeticMultipointMultipath(n,r,a,o){let s={stack:[],error:void 0,hasError:!1};try{let t=r.getImpl().querySegmentIterator();t.stripAttributes(),this.computeEnvelopesAndBoxes(n,r);let c=this.estimateMinimumDistance(a,o),l=c<this.m_maxDistance?c:this.m_maxDistance,u=new O,d=new O(0,0),f=new O(0,0),p=new O(0,0),m=[0],g=q(),_=e(s,this.createDistanceFunctor(d,f,p),!1),v=Y(),y=this.canUseSpatialTree(n,r);y&&this.buildSpatialTree(v,r);let b=n.getPointCount();for(let e=0;e<b;++e)if(u.assign(n.getXY(e)),d.assign(n.getXY(e)),this.m_bIsPannablePcs&&h(this.m_inputSR,[u],1,!1),g.setCoords({xmin:d.x,ymin:d.y,xmax:d.x,ymax:d.y}),!(this.m_envHelper.minDistanceGeodesic(g,this.m_boxGeomB)>l)){if(_.setPointDistFrom(d),y)i(0);else{for(;t.nextPath();)for(;t.hasNextSegment();){let e=t.nextSegment();if(this.m_envHelper.minDistanceGeodesic(g,this.findOrComputeBoxSegment(t.getStartPointIndex(),e,this.m_segmentBoxesB))>l)continue;let n=this.calculateDistanceGeodeticPointSegment(u,d,e,m,_);if(n.second<l&&(a.outPoint.assign(d.mul(this.m_rpu)),this.updateOutputSegment(o,e,n.first),l=n.second,l===0))return 0}t.resetToFirstPath()}}return l===this.m_maxDistance?1/0:l}catch(e){s.error=e,s.hasError=!0}finally{t(s)}}calculateDistanceGeodeticMultipathGeometry(e,t,i,a){switch(t.getGeometryType()){case r.enumPoint:return this.calculateDistanceGeodeticPointMultipath(t,e,a,i);case r.enumMultiPoint:return this.calculateDistanceGeodeticMultipointMultipath(t,e,a,i);case r.enumPolyline:case r.enumPolygon:case r.enumEnvelope:return this.calculateDistanceGeodeticMultipathMultipath(e,t,i,a);default:n(``)}}calculateDistanceGeodeticMultipathMultipath(e,t,n,r){let i=[e],a=[t],o=this.swapGeometries(i,a),s=i[0],c=a[0];this.computeEnvelopesAndBoxes(i[0],a[0]);let l=this.estimateMinimumDistance(n,r),u=this.calculateDistanceGeodeticMultipathMultipath_(s,c,n,r,l);return o&&(r.outPoint=k(n.outPoint,n.outPoint=r.outPoint)),u}calculateDistanceGeodeticMultipathMultipath_(n,r,a,o,s=Number.MAX_VALUE){let l={stack:[],error:void 0,hasError:!1};try{let t=s,u=new O(0,0),d=new O,f=new O(0,0),p=new O,m=new O(0,0),h=new O,v=new O,y=new O,b=[new O],x=[0],S=[0],C=q(),w=q(),T=e(l,this.createDistanceFunctor(m,u,f),!1),E=Y(),D=this.canUseSpatialTree(n,r);D&&this.buildSpatialTree(E,r);let k=r.querySegmentIterator();k.stripAttributes();let A=new c,j=P(n);for(let e=0;e<j.length;++e){let r=j[e];n.getSegmentBuffer(r,A,!0);let s=A.get();if(C.assign(this.findOrComputeBoxSegment(r,s,this.m_segmentBoxesA)),D)i(0);else{if(m.assign(s.getStartXY()),h.assign(s.getStartXY()),v.assign(s.getEndXY()),y.assign(s.getEndXY()),this.m_bIsPannablePcs&&(g(this.m_inputSR,0,[h],1),g(this.m_inputSR,0,[y],1)),this.m_envHelper.minDistanceGeodesic(C,this.m_boxGeomB)>t)continue;for(;k.nextPath();){for(;k.hasNextSegment();){let e=k.nextSegment();if(u.assign(e.getStartXY()),d.assign(e.getStartXY()),f.assign(e.getEndXY()),p.assign(e.getEndXY()),s.intersect(e,b,x,S,this.m_tolerance))return this.updateOutputSegment(a,s,x[0]),this.updateOutputSegment(o,e,S[0]),0;if(this.m_bIsPannablePcs&&(g(this.m_inputSR,0,[d],1),g(this.m_inputSR,0,[p],1)),w.assign(this.findOrComputeBoxPoint(k.getStartPointIndex(),d,p,this.m_segmentBoxesB)),this.m_envHelper.minDistanceGeodesic(C,w)>t)continue;T.setSegmentEndPoints(u,f),T.setPointDistFrom(h);let n=_(T.makeFunctor(),0,1,1e-10);if(n.second<t&&(a.outPoint.assign(h.mul(this.m_rpu)),this.updateOutputSegment(o,e,n.first),t=n.second,t===0)||(T.setPointDistFrom(y),n=_(T.makeFunctor(),0,1,1e-10),n.second<t&&(a.outPoint.assign(y.mul(this.m_rpu)),this.updateOutputSegment(o,e,n.first),t=n.second,t===0))||(T.setSegmentEndPoints(m,v),T.setPointDistFrom(d),n=_(T.makeFunctor(),0,1,1e-10),n.second<t&&(this.updateOutputSegment(a,s,n.first),o.outPoint.assign(d.mul(this.m_rpu)),t=n.second,t===0))||(T.setPointDistFrom(p),n=_(T.makeFunctor(),0,1,1e-10),n.second<t&&(this.updateOutputSegment(a,s,n.first),o.outPoint.assign(p.mul(this.m_rpu)),t=n.second,t===0)))break}if(t===0)return 0}k.resetToFirstPath()}}return t===this.m_maxDistance?1/0:t}catch(e){l.error=e,l.hasError=!0}finally{t(l)}}calculateDistanceGeodeticPointSegment(e,t,n,r,i){let a=n.getStartXY(),o=n.getEndXY();return n.intersectPoint(e,r,this.m_tolerance)?A(r[0],0):(i.setPointDistFrom(t),i.setSegmentEndPoints(a,o),_(i.makeFunctor(),0,1,1e-10))}prepareGeometry(e){let t=e.clone(),n=e.getGeometryType();if(n===r.enumPoint||n===r.enumMultiPoint)return this._NormalizeAndProject(t);if(n===r.enumEnvelope&&(t=this.envelopeToPolygon(t)),this.m_inputSR.isPannable())return this.prepareGeometryPannable(t,4);if(this.m_inputSR.getCoordinateSystemType()===2){if(t=v(t,this.m_inputSR,0,null),t.isEmpty())return t;t=new L().execute(t,this.m_inputSR,5e4,this.m_maxDeviation/2,0,null);let e=this.m_inputSR.getSRToGCSTransform();return new u().execute(t,e,this.m_progressTracker)}let i=new D;t.queryLooseEnvelope(i);let a=this.m_inputSR.getPannableExtent();if(i.ymin<a.ymin||i.ymax>a.ymax){let e=new D(i.xmin-1,a.ymin,i.xmax+1,a.ymax);if(t=new R().execute(t,e,this.m_inputSR,this.m_progressTracker),t.isEmpty())return t}return i.width()>a.width()*2&&(t=y(t,-2*a.width(),2*a.width(),this.m_inputSR,!0,0,!0,this.m_progressTracker)),t}prepareGeometryPannable(e,t){let n=new D;e.queryEnvelope(n);let r=this.m_inputSR.getPannableExtent();if(r.containsEnvelope(n))return e;let i=new j;r.queryIntervalX(i);let a=new j;return n.queryIntervalX(a),e=i.contains(a)?b(e,this.m_inputSR):new u().foldInto360RangeGeodetic(e,this.m_inputSR,t),e}prepareOutput(e){e.outPoint.scale(1/this.m_rpu),this.m_inputSR.getCoordinateSystemType()===2&&h(this.m_inputSR,[e.outPoint],1,!1)}updateOutputSegment(e,t,n){t.queryCoord2D(n,e.outPoint),this.m_bIsPannablePcs&&g(this.m_inputSR,0,[e.outPoint],1),e.outPoint.mulThis(this.m_rpu)}computeTolerance(e,t){e.queryEnvelope(this.m_envGeomA),t.queryEnvelope(this.m_envGeomB);let n=new D(this.m_envGeomA);return n.mergeEnvelope2D(this.m_envGeomB),E(null,n)}envelopeToPolygon(e){let t=new l;return t.addEnvelope(e,!1),t}computeEnvelopesAndBoxes(e,t){e.queryEnvelope(this.m_envGeomA),t.queryEnvelope(this.m_envGeomB),this.m_boxGeomA=this.computeBoxGeometry(e,this.m_boundaryPtsA,this.m_segmentBoxesA),this.m_boxGeomB=this.computeBoxGeometry(t,this.m_boundaryPtsB,this.m_segmentBoxesB)}computeBoxGeometry(e,t,n){switch(e.getGeometryType()){case r.enumPoint:return this.computeBoxPoint(e,t);case r.enumMultiPoint:return this.computeBoxMultiPoint(e,t);case r.enumPolyline:case r.enumPolygon:return this.computeBoxMultiPath(e,t,n);default:a(`Invalid geometry type`)}}computeBoxPoint(e,t){let n=e.getXY();t.length=0,t.push(n.mul(this.m_rpu));let r=q();return r.setCoords({xmin:n.x,ymin:n.y,xmax:n.x,ymax:n.y}),r}computeBoxMultiPoint(e,t){let n=!0;for(let r=0;r<e.getPointCount();++r){let i=e.getXY(r);if(n){t.length=0;for(let e=0;e<4;++e)t.push(i.clone());n=!1}i.x<t[0].x&&t[0].assign(i),i.y>t[1].y&&t[1].assign(i),i.x>t[2].x&&t[2].assign(i),i.y<t[3].y&&t[3].assign(i)}for(let e=0;e<t.length;++e)t[e].mulThis(this.m_rpu);let r=q();return e.queryEnvelope(r),r}computeBoxMultiPath(e,t,n){let r=!0,i=q();i.setEmpty();let a=e.querySegmentIterator();for(a.stripAttributes();a.nextPath();)for(;a.hasNextSegment();){let e=a.nextSegment(),o=e.getStartXY(),s=e.getEndXY();if(this.m_bIsPannablePcs&&(g(this.m_inputSR,0,[o],1),g(this.m_inputSR,0,[s],1)),r){for(let e=0;e<4;++e)t.push(o.clone());r=!1}o.x<t[0].x&&t[0].assign(o),o.y>t[1].y&&t[1].assign(o),o.x>t[2].x&&t[2].assign(o),o.y<t[3].y&&t[3].assign(o),s.x<t[0].x&&t[0].assign(s),s.y>t[1].y&&t[1].assign(s),s.x>t[2].x&&t[2].assign(s),s.y<t[3].y&&t[3].assign(s);let c=this.findOrComputeBoxPoint(a.getStartPointIndex(),o,s,n);i.mergeEnvelope2D(c)}for(let e=0;e<t.length;++e)t[e].mulThis(this.m_rpu);return i}findOrComputeBoxSegment(e,t,n){if(!n.has(e)){let r=q();if(t.queryEnvelope(r),this.m_bIsPannablePcs){let e=O.construct(r.xmin,r.ymin),t=O.construct(r.xmax,r.ymax);g(this.m_inputSR,0,[e],1),g(this.m_inputSR,0,[t],1),r=this.m_envHelper.calculateBbox(e.x,e.y,t.x,t.y)}return n.set(e,r),r}return n.get(e)}findOrComputeBoxPoint(e,t,n,r){if(!r.has(e)){let i=q();return i.setCoords({xmin:t.x,ymin:t.y,xmax:n.x,ymax:n.y}),this.m_bIsPannablePcs&&(i=this.m_envHelper.calculateBbox(i.xmin,i.ymin,i.xmax,i.ymax)),r.set(e,i),i}return r.get(e)}estimateMinimumDistance(n,r){let i={stack:[],error:void 0,hasError:!1};try{let t=e=>m(this.m_a,this.m_eSquared,e),a=this.m_boundaryPtsA.map(t),o=this.m_boundaryPtsB.map(t),s=Number.MAX_VALUE,c=0,l=0;for(let e=0;e<a.length;++e)for(let t=0;t<o.length;++t){let n=T.distance(a[e],o[t]);n<s&&(s=n,c=e,l=t)}n.outPoint.assign(this.m_boundaryPtsA[c]),r.outPoint.assign(this.m_boundaryPtsB[l]);let u=e(i,new f,!1);return p.geodeticDistance(this.m_a,this.m_eSquared,this.m_boundaryPtsA[c].x,this.m_boundaryPtsA[c].y,this.m_boundaryPtsB[l].x,this.m_boundaryPtsB[l].y,u,null,null,this.m_distCurveType),u.val}catch(e){i.error=e,i.hasError=!0}finally{t(i)}}swapGeometries(e,t){return o(e[0])>o(t[0])&&(t[0]=k(e[0],e[0]=t[0]),this.m_envGeomB=k(this.m_envGeomA,this.m_envGeomA=this.m_envGeomB),!0)}canUseSpatialTree(e,t){return!1}checkGeometriesIntersect(e,t,n,i){let a=e.getGeometryType(),o=t.getGeometryType();if(this.m_envGeomA.isIntersecting(this.m_envGeomB)){if(a===r.enumPoint&&t.getDimension()===2){let r=[0],a=[e.getXY()];if(x(t,a,1,this.m_tolerance,r),r[0]!==0)return n.outPoint.assign(a[0]),i.outPoint.assign(a[0]),!0}else if(o===r.enumPoint&&e.getDimension()===2){let r=[2],a=[t.getXY()];if(x(e,a,1,this.m_tolerance,r),r[0]!==0)return n.outPoint.assign(a[0]),i.outPoint.assign(a[0]),!0}if(a===r.enumMultiPoint&&t.getDimension()===2)return this.multipointIntersectsArea(e,t,n,i);if(o===r.enumMultiPoint&&e.getDimension()===2)return this.multipointIntersectsArea(t,e,i,n);let c=e,l=t,u,d;if(a===r.enumEnvelope&&(u=this.envelopeToPolygon(e),c=u,a=r.enumPolygon),o===r.enumEnvelope&&(d=this.envelopeToPolygon(t),l=d,o=r.enumPolygon),s(a)&&s(o)){let e=c.querySegmentIterator(),t=l.querySegmentIterator(),r=I(),a=I();if(F(c,l,e,t,r,a))return n.outPoint.assign(r.outPoint),i.outPoint.assign(r.outPoint),!0}}return!1}multipointIntersectsArea(e,t,n,r){let i=e.getPointCount();for(let a=0;a<i;++a){let i=[2],o=e.getXY(a);if(x(t,[o],1,this.m_tolerance,i),i[0]!==0)return n.outPoint.assign(o),r.outPoint.assign(o),!0}return!1}getNearestNeighbourVisitor(e,t,n,r,a,o,s){return i(0),{}}buildSpatialTree(e,t){i(0)}}export{X as G,J as a,G as m};
|
package/chunks/GeodeticUtils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{a as n}from"./Geometry.js";import{d as r,P as i}from"./Point2D.js";import"./MultiPathImpl.js";import{h as a,r as o,an as s,O as c,ao as l,aJ as u}from"./UnitFactory.js";function d(u,d,f,p,m,h){let g={stack:[],error:void 0,hasError:!1};try{p===4&&n(``);let t=u,_=a(t),v=o();_.querySpheroidData(v);let y=v.e2,b=v.majorSemiAxis,x=_.getUnit().getUnitToBaseFactor(),S=e(g,new s,!1),C=e(g,new s,!1),w=e(g,new s,!1);if(d.isNAN()||f.isNAN())return NaN;let T=r(i,2);T[0].assign(d),T[1].assign(f);let E=r(i,2),D=t.getGCS()===t?null:t.getSRToGCSTransform();if(D){if(new c().transform(D,T,2,E)!==2)return NaN}else E[0].assign(T[0]),E[1].assign(T[1]);return E[0].scale(x),E[1].scale(x),l.geodeticDistance(b,y,E[0].x,E[0].y,E[1].x,E[1].y,S,C,w,p),m[0]=C.val,h[0]=w.val,S.val}catch(e){g.error=e,g.hasError=!0}finally{t(g)}}function f(c,d,f,p,m,h){let g={stack:[],error:void 0,hasError:!1};try{h===4&&n(``);let t=c,_=a(t),v=o();_.querySpheroidData(v);let y=v.e2,b=v.majorSemiAxis,x=_.getUnit().getUnitToBaseFactor(),S=e(g,new s,!1),C=e(g,new s,!1),w=t.getSRToGCSTransform(),T=t.getGCSToSRTransform(),E=r(i,100),D=r(i,100),O=0;for(let e=0,t=0;e<f;){let n=f-e;n>E.length&&(n=E.length);for(let t=0;t<n;t++)E[t].assign(d[e+t]);if(u(w,E,n,D,null)>0){for(let e=0;e<n;e++){let t=D[e].clone();if(t.isNAN()){E[e].assign(t);continue}t.scale(x),l.geodeticCoordinate(b,y,t.x,t.y,p,m,S,C,h),t.x=S.val,t.y=C.val,t.scale(1/x),E[e].assign(t)}let e=u(T,E,n,D,null);O+=e}for(let e=0;e<n;e++)d[t+e].assign(D[e]);e+=n,t+=n}return O}catch(e){g.error=e,g.hasError=!0}finally{t(g)}}export{d as calculateDistanceAndAzimuth,f as movePointsByDistance};
|
package/chunks/Geometry.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
function e(e){switch(e){case 1:return`Unknown error`;case 2:return`Corrupted geometry`;case 3:return`Empty geometry`;case 4:return`Math singularity`;case 5:return`Buffer is too small`;case 6:return`Invalid shape type`;case 7:return`Projection out of supported range`;case 8:return`Non simple geometry`;case 9:return`Cannot calculate geodesic`;case 10:return`Notation conversion`;case 11:return`Missing grid file`;case 12:return`Invalid call`;case 13:return`Internal error`;case 14:return`Not implemented`;case 15:return`IO error`;case 16:return`Invalid 3D`;case 17:return`An ambiguous geography edge with antipodal points`;case 18:return`Geocentric coordinates require ellipsoidal height`;case 19:return`Geography cannot be projected into a gnomonic plane or a result of an operation cannot fit into a gnomonic plane`;case 20:return`Geometry is too large to be exported in to a given format`;case 22:return`Operation is canceled by the user`;case 21:return`The operation, such as projection or geodetic computation, cannot be performed without pe-wasm loaded`;default:return`unknown error`}}function t(e,t){try{if(!e)throw Error(t)}catch(e){throw e}}class n extends Error{constructor(e,t){super(t),this.m_AdditionalMessage=t,this.m_ErrorType=e,this.name=`GeometryError`}what(){return e(this.m_ErrorType)}additionalMessage(){return this.m_AdditionalMessage?this.m_AdditionalMessage:``}code(){return this.m_ErrorType}m_AdditionalMessage;m_ErrorType}class r extends n{constructor(e){super(2,e),this.name=`CorruptedGeometryError`}}class i extends n{constructor(e){super(3,e),this.name=`EmptyGeometryError`}}class a extends n{constructor(e){super(4,e),this.name=`MathSingularityError`}}class o extends n{constructor(e){super(21,e),this.name=`ProjectionEngineNotLoadedError`}}class s extends n{constructor(e){super(8,e),this.name=`NonSimpleGeometryError`}}var c;(function(e){e[e.enumUnknown=0]=`enumUnknown`,e[e.enumPoint=513]=`enumPoint`,e[e.enumLine=5122]=`enumLine`,e[e.enumBezier=5123]=`enumBezier`,e[e.enumEllipticArc=5124]=`enumEllipticArc`,e[e.enumEnvelope=3077]=`enumEnvelope`,e[e.enumMultiPoint=8710]=`enumMultiPoint`,e[e.enumPolyline=25607]=`enumPolyline`,e[e.enumPolygon=27656]=`enumPolygon`,e[e.enumMultipatch=40969]=`enumMultipatch`,e[e.enumGeometryCollection=3594]=`enumGeometryCollection`,e[e.enumRationalBezier2=5134]=`enumRationalBezier2`,e[e.enumBezier2=5135]=`enumBezier2`,e[e.enumRationalBezier23d=5392]=`enumRationalBezier23d`,e[e.enumGreatArc3d=5393]=`enumGreatArc3d`})(c||={});const l=[0,0,1,1,1,2,0,1,2,3,-1,-1,-1,-1,1,1];function u(e){return l[e&15]}function d(e){return!!(e&512)}function f(e){return!!(e&1024)}function p(e){return!!(e&2048)}function m(e){return!!(e&4096)}function h(e){return!!(e&8192)}function g(e){return!!(e&16384)}function _(e){return!!(e&32768)}function v(e){let t=e.getGeometryType();if(h(t))return e.getPointCount();if(e.isEmpty())return 0;if(t===c.enumEnvelope)return 4;if(t===c.enumPoint)return 1;if(m(t))return 2;k(`missing type`)}function y(e){let t=e.getGeometryType();if(g(t))return e.hasNonLinearSegments();if(t===c.enumGeometryCollection){let t=e;for(let e=0,n=t.getGeometryCount();e<n;e++)if(y(t.getGeometry(e)))return!0;return!1}return m(t)?t!==c.enumLine:!1}function b(e){throw new o(e)}function x(e){throw new r(e)}function S(e){throw Error(e)}function C(e){throw new a(e)}function w(){S(`Geometry type is not supported for 3D operations.`)}function T(e){throw new n(12,e)}function E(e){throw new i(e)}function D(e){throw new n(14,e)}function O(e){throw Error(e)}function k(e){throw new n(13,e)}function A(e){throw Error(e)}function j(e){throw new s(e)}function M(){D(`Operation does not support curves.`)}function N(e){e&&y(e)&&M()}function P(e){e&&_(e.getGeometryType())&&D(`Unsupported geometry type.`)}function F(e){e===c.enumGeometryCollection&&S(`Geometry_collection instances are not supported in this operation`)}function I(e){F(e.getGeometryType())}function L(e){S(`bad wkid: ${e}`)}function R(e){let t=`bad wkt: `;t+=e,t+=`...`,S(t)}function z(e,t){e||S(t)}export{j as A,
|
|
2
|
+
function e(e){switch(e){case 1:return`Unknown error`;case 2:return`Corrupted geometry`;case 3:return`Empty geometry`;case 4:return`Math singularity`;case 5:return`Buffer is too small`;case 6:return`Invalid shape type`;case 7:return`Projection out of supported range`;case 8:return`Non simple geometry`;case 9:return`Cannot calculate geodesic`;case 10:return`Notation conversion`;case 11:return`Missing grid file`;case 12:return`Invalid call`;case 13:return`Internal error`;case 14:return`Not implemented`;case 15:return`IO error`;case 16:return`Invalid 3D`;case 17:return`An ambiguous geography edge with antipodal points`;case 18:return`Geocentric coordinates require ellipsoidal height`;case 19:return`Geography cannot be projected into a gnomonic plane or a result of an operation cannot fit into a gnomonic plane`;case 20:return`Geometry is too large to be exported in to a given format`;case 22:return`Operation is canceled by the user`;case 21:return`The operation, such as projection or geodetic computation, cannot be performed without pe-wasm loaded`;default:return`unknown error`}}function t(e,t){try{if(!e)throw Error(t)}catch(e){throw e}}class n extends Error{constructor(e,t){super(t),this.m_AdditionalMessage=t,this.m_ErrorType=e,this.name=`GeometryError`}what(){return e(this.m_ErrorType)}additionalMessage(){return this.m_AdditionalMessage?this.m_AdditionalMessage:``}code(){return this.m_ErrorType}m_AdditionalMessage;m_ErrorType}class r extends n{constructor(e){super(2,e),this.name=`CorruptedGeometryError`}}class i extends n{constructor(e){super(3,e),this.name=`EmptyGeometryError`}}class a extends n{constructor(e){super(4,e),this.name=`MathSingularityError`}}class o extends n{constructor(e){super(21,e),this.name=`ProjectionEngineNotLoadedError`}}class s extends n{constructor(e){super(8,e),this.name=`NonSimpleGeometryError`}}var c;(function(e){e[e.enumUnknown=0]=`enumUnknown`,e[e.enumPoint=513]=`enumPoint`,e[e.enumLine=5122]=`enumLine`,e[e.enumBezier=5123]=`enumBezier`,e[e.enumEllipticArc=5124]=`enumEllipticArc`,e[e.enumEnvelope=3077]=`enumEnvelope`,e[e.enumMultiPoint=8710]=`enumMultiPoint`,e[e.enumPolyline=25607]=`enumPolyline`,e[e.enumPolygon=27656]=`enumPolygon`,e[e.enumMultipatch=40969]=`enumMultipatch`,e[e.enumGeometryCollection=3594]=`enumGeometryCollection`,e[e.enumRationalBezier2=5134]=`enumRationalBezier2`,e[e.enumBezier2=5135]=`enumBezier2`,e[e.enumRationalBezier23d=5392]=`enumRationalBezier23d`,e[e.enumGreatArc3d=5393]=`enumGreatArc3d`})(c||={});const l=[0,0,1,1,1,2,0,1,2,3,-1,-1,-1,-1,1,1];function u(e){return l[e&15]}function d(e){return!!(e&512)}function f(e){return!!(e&1024)}function p(e){return!!(e&2048)}function m(e){return!!(e&4096)}function h(e){return!!(e&8192)}function g(e){return!!(e&16384)}function _(e){return!!(e&32768)}function v(e){let t=e.getGeometryType();if(h(t))return e.getPointCount();if(e.isEmpty())return 0;if(t===c.enumEnvelope)return 4;if(t===c.enumPoint)return 1;if(m(t))return 2;k(`missing type`)}function y(e){let t=e.getGeometryType();if(g(t))return e.hasNonLinearSegments();if(t===c.enumGeometryCollection){let t=e;for(let e=0,n=t.getGeometryCount();e<n;e++)if(y(t.getGeometry(e)))return!0;return!1}return m(t)?t!==c.enumLine:!1}function b(e){throw new o(e)}function x(e){throw new r(e)}function S(e){throw Error(e)}function C(e){throw new a(e)}function w(){S(`Geometry type is not supported for 3D operations.`)}function T(e){throw new n(12,e)}function E(e){throw new i(e)}function D(e){throw new n(14,e)}function O(e){throw Error(e)}function k(e){throw new n(13,e)}function A(e){throw Error(e)}function j(e){throw new s(e)}function M(){D(`Operation does not support curves.`)}function N(e){e&&y(e)&&M()}function P(e){e&&_(e.getGeometryType())&&D(`Unsupported geometry type.`)}function F(e){e===c.enumGeometryCollection&&S(`Geometry_collection instances are not supported in this operation`)}function I(e){F(e.getGeometryType())}function L(e){S(`bad wkid: ${e}`)}function R(e){let t=`bad wkt: `;t+=e,t+=`...`,S(t)}function z(e,t){e||S(t)}export{j as A,E as B,A as C,z as D,c as G,D as a,S as b,C as c,k as d,b as e,d as f,t as g,m as h,h as i,g as j,_ as k,p as l,f as m,y as n,x as o,N as p,T as q,O as r,I as s,P as t,u,v,F as w,w as x,L as y,R as z};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{G as e,j as t,
|
|
2
|
+
import{G as e,j as t,a as n}from"./Geometry.js";function r(r,s){let c=r.getGeometryType();return c===e.enumPoint?i(r):t(c)?a(r):c===e.enumMultiPoint?o(r):(c===e.enumEnvelope||c===e.enumMultipatch&&n(`not implemented for multipatch`),r)}function i(e){return e}function a(t){if(s(t))return t;let n=t.createInstance();for(let r=0,i=t.getPathCount();r<i;r++){let i=t.getPathSize(r);i!==0&&(i!==1||t.getSegmentCountPath(r)!==0&&t.getSegmentType(t.getPathStart(r))!==e.enumLine&&t.isClosedPath(r))&&n.addPath(t,r,!0)}return n}function o(e){return e}function s(t){for(let n=0,r=t.getPathCount();n<r;n++){let r=t.getPathSize(n);if(r===0||r===1&&(t.getSegmentCountPath(n)===0||t.getSegmentType(t.getPathStart(n))===e.enumLine||!t.isClosedPath(n)))return!1}return!0}export{r as c};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as t}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{Gamma as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{mainLightDirection as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{ScreenSpaceRayMarching as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js";import{CameraSpace as a}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{viewMatrix as o}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{FloatBindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as l,If as u}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{GlobalIlluminationColorQuantization as m}from"../views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js";import{floatBlendReductionFactor as h}from"../views/3d/webgl-engine/shaders/floatBlendScale.glsl.js";import{ToneMapping as g}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{ColorAttachment1 as _,SizedPixelFormat as v}from"../views/webgl/enums.js";import{NoParameters as y}from"../views/webgl/NoParameters.js";import{ShaderBuilder as b}from"../views/webgl/ShaderBuilder.js";const x=2.5,S=.
|
|
2
|
+
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as t}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{Gamma as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{mainLightDirection as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{ScreenSpaceRayMarching as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js";import{CameraSpace as a}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{viewMatrix as o}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{FloatBindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as l,If as u}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{GlobalIlluminationColorQuantization as m}from"../views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js";import{floatBlendReductionFactor as h}from"../views/3d/webgl-engine/shaders/floatBlendScale.glsl.js";import{ToneMapping as g}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{ColorAttachment1 as _,SizedPixelFormat as v}from"../views/webgl/enums.js";import{NoParameters as y}from"../views/webgl/NoParameters.js";import{ShaderBuilder as b}from"../views/webgl/ShaderBuilder.js";const x=2.5,S=0,C=.8,w=25,T=.15,E=.5,D=1,O=1,k=16;class A extends y{constructor(){super(...arguments),this.projScale=1,this.resolutionScale=1,this.accumulatedFrames=0,this.temporalSampleFrame=0,this.glowBoost=0,this.rayMarchMinReach=T,this.rayMarchMaxReach=E,this.rayMarchWorldReach=25,this.rayMarchMinReachEmissionWeight=1,this.rayMarchMaxReachEmissionWeight=1,this.rayMarchMaxSteps=16,this.colorBleedWeight=0,this.highQualityIdleColorBlendStart=.3,this.emissionBoostFactor=x,this.factorDaylightDirectional=C}}function j(y){let x=new b,S=x.fragment;x.include(e),x.include(a),S.include(t),S.include(n),S.include(m),S.include(g),x.include(i,y),S.uniforms.add(r,o,new p(`normalMap`,e=>e.normalTexture),new p(`depthMap`,e=>e.depthTexture),new p(`lastFrameGlobalIlluminationTexture`,(e,t)=>e.globalIllumination??t.globalIllumination?.getTexture()),new p(`lastFrameGlobalIlluminationWeightTexture`,(e,t)=>e.globalIlluminationWeights??t.globalIllumination?.getTexture(_)),new f(`lastFrameColorTexture`,e=>e.reprojection.lastFrameColor?.getTexture()),new f(`lastFrameDepthTexture`,e=>e.reprojection.lastFrameDepth?.attachment),new d(`reprojectionProjectionMatrix`,e=>e.reprojection.lastFrameCamera.projectionMatrix),new d(`reprojectionViewMatrix`,e=>e.reprojection.viewMatrix),new c(`accumulatedFrames`,e=>e.accumulatedFrames),new c(`temporalSampleFrame`,e=>e.temporalSampleFrame),new c(`resolutionScale`,e=>e.resolutionScale)),S.uniforms.add(new c(`rayMarchMinReach`,e=>e.rayMarchMinReach),new c(`rayMarchMaxReach`,e=>e.rayMarchMaxReach),new c(`rayMarchWorldReach`,e=>e.rayMarchWorldReach),new c(`rayMarchMinReachEmissionWeight`,e=>e.rayMarchMinReachEmissionWeight),new c(`rayMarchMaxReachEmissionWeight`,e=>e.rayMarchMaxReachEmissionWeight),new c(`rayMarchMaxSteps`,e=>e.rayMarchMaxSteps),new c(`colorBleedWeight`,e=>e.colorBleedWeight),new c(`highQualityIdleColorBlendStart`,e=>e.highQualityIdleColorBlendStart),new c(`emissionBoostFactor`,e=>e.emissionBoostFactor+e.glowBoost),new c(`factorDaylightDirectional`,e=>e.factorDaylightDirectional));let{hasEmission:C,hasColor:w}=y;return C&&(S.uniforms.add(new s(`inputScale`,e=>e.reprojection.lastFrameEmission?.getTexture()?.descriptor.internalFormat===v.RGBA8?h:1),new f(`lastFrameEmissionTexture`,e=>e.reprojection.lastFrameEmission?.getTexture())),S.code.add(l`bool hasHitReprojectionMismatch(vec3 hit, vec2 hitReprojectedCoordinate, float colorBlendWeight) {
|
|
3
3
|
if (colorBlendWeight != 1.0) {
|
|
4
4
|
return false;
|
|
5
5
|
}
|
|
@@ -207,7 +207,7 @@ return value * 2.0 - 1.0;
|
|
|
207
207
|
vec4 viewMainLightDirection = view * vec4(mainLightDirection, 0.0);
|
|
208
208
|
float skyModulation = pow(max(dot(rayDirection, viewMainLightDirection.xyz), 0.0), 3.0) * 5.5;
|
|
209
209
|
float skyFacingWeight = clamp(3.5 * dot(viewMainLightDirection.xyz, normal), 0.0, 1.0);
|
|
210
|
-
skyModulation = mix(1.0, skyModulation * 0
|
|
210
|
+
skyModulation = mix(1.0, skyModulation * (1.0 - factorDaylightDirectional) + factorDaylightDirectional, skyFacingWeight);
|
|
211
211
|
fragGlobalIllumination.a += (1.0 - hitOpacity) * skyModulation * stepSize;
|
|
212
212
|
}
|
|
213
213
|
}
|
|
@@ -245,4 +245,4 @@ return value * 2.0 - 1.0;
|
|
|
245
245
|
fragGlobalIllumination.a = mix(lastFrameGlobalIllumination.a + accumulationDither, fragGlobalIllumination.a, occlusionBlendWeight);
|
|
246
246
|
|
|
247
247
|
fragWeight = vec2(occlusionBlendWeight, colorBlendWeight * storedColorBlendWeightScale);
|
|
248
|
-
`),x}const
|
|
248
|
+
`),x}const M=Object.freeze(Object.defineProperty({__proto__:null,GlobalIlluminationPassParameters:A,build:j,defaultColorBleedWeight:0,defaultEmissionBoostFactor:x,defaultFactorDaylightDirectional:C,defaultRayMarchMaxReach:E,defaultRayMarchMaxReachEmissionWeight:1,defaultRayMarchMaxSteps:16,defaultRayMarchMinReach:T,defaultRayMarchMinReachEmissionWeight:1,defaultRayMarchWorldReach:25},Symbol.toStringTag,{value:`Module`}));export{A as G,M as a,k as b,j as c,E as d,S as e,x as f,C as g,O as h,T as i,D as j,w as k};
|
|
@@ -1,50 +1,50 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{markerTextureSize as e,markerSymbolSize as t,markerTipThicknessFactor as n}from"../views/3d/support/engineContent/marker.js";import{sliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{OutputHighlight as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{
|
|
2
|
+
import{markerTextureSize as e,markerSymbolSize as t,markerTipThicknessFactor as n}from"../views/3d/support/engineContent/marker.js";import{sliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{OutputHighlight as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{evaluateSceneLightingFragment as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js";import{MarkerSizing as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{NormalUtils as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{positionOutsideClipSpace as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{nearFar as u,viewport as d,viewNormal as f,inverseProjectionMatrix as p,screenPixelSizePerDistance as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as h}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as g,NoPerspectiveRead as _}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as v,addPixelRatio as y}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as b}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{glsl as x,If as S}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as C}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{alphaCutoff as w}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as T}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as E}from"../views/webgl/ShaderBuilder.js";function D(D){let O=new E,{draped:k,worldSpace:A,anchor:j,hasTip:M,shadingEnabled:N}=D,P=!k&&!A;O.attributes.add(`position`,`vec3`),O.attributes.add(D.hasVVSize?`sizeFeatureAttribute`:`size`,`float`),D.hasVVOpacity&&O.attributes.add(`opacityFeatureAttribute`,`float`),O.attributes.add(D.hasVVColor?`colorFeatureAttribute`:`color`,D.hasVVColor?`float`:`vec4`),O.vertex.inputs.add(`position`,()=>`position`),D.hasVVSize?O.vertex.inputs.add(`sizeFeatureAttribute`,()=>`sizeFeatureAttribute`):O.vertex.inputs.add(`size`,()=>`size`),D.hasVVOpacity&&O.vertex.inputs.add(`opacityFeatureAttribute`,()=>`opacityFeatureAttribute`),D.hasVVColor?O.vertex.inputs.add(`colorFeatureAttribute`,()=>`colorFeatureAttribute`):O.vertex.inputs.add(`color`,()=>`color`),O.include(i,D),O.include(s,D);let{vertex:F,fragment:I,varyings:L}=O;v(F,D),O.attributes.add(`previousDelta`,`vec4`),O.attributes.add(`uv0`,`vec2`),L.add(`vColor`,`vec4`),L.add(`vpos`,`vec3`,{invariant:!0}),L.add(`vUV`,`vec2`),L.add(`vSize`,`float`),M&&L.add(`vLineWidth`,`float`),F.uniforms.add(u,d).code.add(x`vec4 projectAndScale(vec4 pos) {
|
|
3
3
|
vec4 posNdc = proj * pos;
|
|
4
4
|
posNdc.xy *= viewport.zw / posNdc.w;
|
|
5
5
|
return posNdc;
|
|
6
|
-
}`),
|
|
6
|
+
}`),F.code.add(x`void clip(vec4 pos, inout vec4 prev) {
|
|
7
7
|
float vnp = nearFar[0] * 0.99;
|
|
8
8
|
if (prev.z > -nearFar[0]) {
|
|
9
9
|
float interpolation = (-vnp - pos.z) / (prev.z - pos.z);
|
|
10
10
|
prev = mix(pos, prev, interpolation);
|
|
11
11
|
}
|
|
12
|
-
}`),
|
|
12
|
+
}`),A?(O.attributes.add(`normal`,`vec3`),F.constants.add(`tiltThreshold`,`float`,.7).uniforms.add(f).code.add(x`vec3 perpendicular(vec3 v) {
|
|
13
13
|
vec3 n = (viewNormal * vec4(normal.xyz, 1.0)).xyz;
|
|
14
14
|
vec3 n2 = cross(v, n);
|
|
15
15
|
vec3 forward = vec3(0.0, 0.0, 1.0);
|
|
16
16
|
float tiltDot = dot(forward, n);
|
|
17
17
|
return abs(tiltDot) < tiltThreshold ? n : n2;
|
|
18
|
-
}`)):
|
|
18
|
+
}`)):F.code.add(x`vec2 perpendicular(vec2 v) {
|
|
19
19
|
return vec2(v.y, -v.x);
|
|
20
|
-
}`);let
|
|
21
|
-
${
|
|
22
|
-
${
|
|
20
|
+
}`);let R=A?`vec3`:`vec2`;return F.code.add(x`
|
|
21
|
+
${R} normalizedSegment(${R} pos, ${R} prev) {
|
|
22
|
+
${R} segment = pos - prev;
|
|
23
23
|
float segmentLen = length(segment);
|
|
24
24
|
|
|
25
25
|
// normalize or zero if too short
|
|
26
|
-
return (segmentLen > 0.001) ? segment / segmentLen : ${
|
|
26
|
+
return (segmentLen > 0.001) ? segment / segmentLen : ${A?`vec3(0.0, 0.0, 0.0)`:`vec2(0.0, 0.0)`};
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
${
|
|
30
|
-
${
|
|
29
|
+
${R} displace(${R} pos, ${R} prev, float displacementLen) {
|
|
30
|
+
${R} segment = normalizedSegment(pos, prev);
|
|
31
31
|
|
|
32
|
-
${
|
|
33
|
-
${
|
|
32
|
+
${R} displacementDirU = perpendicular(segment);
|
|
33
|
+
${R} displacementDirV = segment;
|
|
34
34
|
|
|
35
|
-
${
|
|
35
|
+
${j===1?`pos -= 0.5 * displacementLen * displacementDirV;`:``}
|
|
36
36
|
|
|
37
37
|
return pos + displacementLen * (uv0.x * displacementDirU + uv0.y * displacementDirV);
|
|
38
38
|
}
|
|
39
|
-
`),
|
|
39
|
+
`),P&&(F.uniforms.add(p),F.code.add(x`vec3 inverseProject(vec4 posScreen) {
|
|
40
40
|
posScreen.xy = (posScreen.xy / viewport.zw) * posScreen.w;
|
|
41
41
|
return (inverseProjectionMatrix * posScreen).xyz;
|
|
42
|
-
}`),
|
|
42
|
+
}`),F.code.add(x`bool rayIntersectPlane(vec3 rayDir, vec3 planeOrigin, vec3 planeNormal, out vec3 intersection) {
|
|
43
43
|
float cos = dot(rayDir, planeNormal);
|
|
44
44
|
float t = dot(planeOrigin, planeNormal) / cos;
|
|
45
45
|
intersection = t * rayDir;
|
|
46
46
|
return abs(cos) > 0.001 && t > 0.0;
|
|
47
|
-
}`),
|
|
47
|
+
}`),F.uniforms.add(m),F.code.add(x`
|
|
48
48
|
vec4 toFront(vec4 displacedPosScreen, vec3 posLeft, vec3 posRight, vec3 prev, float lineWidth) {
|
|
49
49
|
// Project displaced position back to camera space
|
|
50
50
|
vec3 displacedPos = inverseProject(displacedPosScreen);
|
|
@@ -54,7 +54,7 @@ return abs(cos) > 0.001 && t > 0.0;
|
|
|
54
54
|
vec3 planeNormal = normalize(cross(posLeft - posRight, posLeft - prev));
|
|
55
55
|
vec3 planeOrigin = posLeft;
|
|
56
56
|
|
|
57
|
-
${
|
|
57
|
+
${S(D.hasCap,`if(prev.z > posLeft.z) {
|
|
58
58
|
vec2 diff = posLeft.xy - posRight.xy;
|
|
59
59
|
planeOrigin.xy += perpendicular(diff) / 2.0;
|
|
60
60
|
}`)};
|
|
@@ -76,36 +76,36 @@ return abs(cos) > 0.001 && t > 0.0;
|
|
|
76
76
|
displacedPos *= minDepth / length(displacedPos);
|
|
77
77
|
return vec4(displacedPos.xyz, 1.0);
|
|
78
78
|
}
|
|
79
|
-
`)),
|
|
79
|
+
`)),y(F),O.include(g),F.main.add(x`
|
|
80
80
|
// Check for special value of uv0.y which is used by the Renderer when graphics are removed before the VBO is
|
|
81
81
|
// recompacted. If this is the case, then we just project outside of clip space.
|
|
82
82
|
if (uv0.y == 0.0) {
|
|
83
83
|
// Project out of clip space
|
|
84
|
-
gl_Position = ${
|
|
84
|
+
gl_Position = ${l};
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
vec4 pos = view * vec4(position, 1.0);
|
|
89
89
|
vec4 prev = view * vec4(position + previousDelta.xyz * previousDelta.w, 1.0);
|
|
90
90
|
|
|
91
|
-
float lineWidth = getLineWidth(${
|
|
91
|
+
float lineWidth = getLineWidth(${S(D.lineWidthRequiresPosition,`pos.xyz`)});
|
|
92
92
|
float screenMarkerSize = getScreenMarkerSize(lineWidth);
|
|
93
93
|
|
|
94
94
|
clip(pos, prev);
|
|
95
95
|
|
|
96
|
-
${
|
|
96
|
+
${A?x`${S(D.hideOnShortSegments,x`
|
|
97
97
|
if (areWorldMarkersHidden(pos.xyz, prev.xyz)) {
|
|
98
|
-
gl_Position = ${
|
|
98
|
+
gl_Position = ${l};
|
|
99
99
|
return;
|
|
100
100
|
}`)}
|
|
101
101
|
pos.xyz = displace(pos.xyz, prev.xyz, getWorldMarkerSize(pos.xyz));
|
|
102
|
-
vec4 displacedPosScreen = projectAndScale(pos);`:
|
|
102
|
+
vec4 displacedPosScreen = projectAndScale(pos);`:x`
|
|
103
103
|
vec4 posScreen = projectAndScale(pos);
|
|
104
104
|
vec4 prevScreen = projectAndScale(prev);
|
|
105
105
|
vec4 displacedPosScreen = posScreen;
|
|
106
106
|
|
|
107
107
|
displacedPosScreen.xy = displace(posScreen.xy, prevScreen.xy, screenMarkerSize);
|
|
108
|
-
${
|
|
108
|
+
${S(P,x`
|
|
109
109
|
vec2 displacementDirU = perpendicular(normalizedSegment(posScreen.xy, prevScreen.xy));
|
|
110
110
|
|
|
111
111
|
// We need three points of the ribbon line in camera space to calculate the plane it lies in
|
|
@@ -121,8 +121,8 @@ return abs(cos) > 0.001 && t > 0.0;
|
|
|
121
121
|
|
|
122
122
|
// Convert texture coordinate into [0,1]
|
|
123
123
|
vUV = (uv0 + 1.0) / 2.0;
|
|
124
|
-
${
|
|
125
|
-
${
|
|
124
|
+
${S(!A,`vUV = noPerspectiveWrite(vUV, displacedPosScreen.w);`)}
|
|
125
|
+
${S(M,`vLineWidth = noPerspectiveWrite(lineWidth, displacedPosScreen.w);`)}
|
|
126
126
|
|
|
127
127
|
vSize = screenMarkerSize;
|
|
128
128
|
vColor = getColor();
|
|
@@ -131,13 +131,13 @@ return abs(cos) > 0.001 && t > 0.0;
|
|
|
131
131
|
vpos = pos.xyz;
|
|
132
132
|
|
|
133
133
|
gl_Position = displacedPosScreen;
|
|
134
|
-
`),
|
|
134
|
+
`),I.include(r,D),O.include(T,D),I.include(h),I.include(w),I.uniforms.add(new b(`intrinsicColor`,({color:e})=>e),new C(`tex`,({markerTexture:e})=>e)).constants.add(`texelSize`,`float`,1/e).code.add(x`float markerAlpha(vec2 samplePos) {
|
|
135
135
|
samplePos += vec2(0.5, -0.5) * texelSize;
|
|
136
136
|
float sdf = texture(tex, samplePos).r;
|
|
137
137
|
float pixelDistance = sdf * vSize;
|
|
138
138
|
pixelDistance -= 0.5;
|
|
139
139
|
return clamp(0.5 - pixelDistance, 0.0, 1.0);
|
|
140
|
-
}`),
|
|
140
|
+
}`),M&&(O.include(_),I.constants.add(`relativeMarkerSize`,`float`,t/e).constants.add(`relativeTipLineWidth`,`float`,n).code.add(x`
|
|
141
141
|
float tipAlpha(vec2 samplePos) {
|
|
142
142
|
// Convert coordinates s.t. they are in pixels and relative to the tip of an arrow marker
|
|
143
143
|
samplePos -= vec2(0.5, 0.5 + 0.5 * relativeMarkerSize);
|
|
@@ -146,25 +146,18 @@ return clamp(0.5 - pixelDistance, 0.0, 1.0);
|
|
|
146
146
|
float halfMarkerSize = 0.5 * relativeMarkerSize * vSize;
|
|
147
147
|
float halfTipLineWidth = 0.5 * max(1.0, relativeTipLineWidth * noPerspectiveRead(vLineWidth));
|
|
148
148
|
|
|
149
|
-
${
|
|
149
|
+
${S(A,`halfTipLineWidth *= fwidth(samplePos.y);`)}
|
|
150
150
|
|
|
151
151
|
float distance = max(abs(samplePos.x) - halfMarkerSize, abs(samplePos.y) - halfTipLineWidth);
|
|
152
152
|
return clamp(0.5 - distance, 0.0, 1.0);
|
|
153
153
|
}
|
|
154
|
-
`)),
|
|
154
|
+
`)),O.include(a,D),O.include(_),I.main.add(x`
|
|
155
155
|
discardBySlice(vpos);
|
|
156
156
|
|
|
157
|
-
vec4
|
|
157
|
+
vec4 albedo = intrinsicColor * vColor;
|
|
158
158
|
|
|
159
159
|
// Cancel out perspective correct interpolation if in screen space or draped
|
|
160
|
-
vec2 samplePos = ${
|
|
161
|
-
|
|
162
|
-
if(
|
|
163
|
-
`),L
|
|
164
|
-
forwardLinearDepthToReadShadow();`),C(B,j),M.include(f,j),B.include(s,j),B.include(o,j),B.uniforms.add(c,z.uniforms.get(`localOrigin`)).main.add(T`vec3 posWorld = vpos + localOrigin;
|
|
165
|
-
float additionalAmbientScale = additionalDirectedAmbientLight(posWorld);
|
|
166
|
-
float shadow = readFragmentShadow(additionalAmbientScale);
|
|
167
|
-
float ssao = evaluateAmbientOcclusionInverse();
|
|
168
|
-
vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
|
|
169
|
-
vec3 viewDirection = normalize(vpos - cameraPosition);
|
|
170
|
-
finalColor = vec4(evaluateSceneLighting(vnormal, finalColor.rgb, shadow, 1.0 - ssao, additionalLight, viewDirection, vnormal), finalColor.a);`)),B.main.add(`outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),M}const M=Object.freeze(Object.defineProperty({__proto__:null,build:j},Symbol.toStringTag,{value:`Module`}));export{M as L,j as b};
|
|
160
|
+
vec2 samplePos = ${S(A,`vUV`,`noPerspectiveRead(vUV)`)};
|
|
161
|
+
albedo.a *= ${M?`max(markerAlpha(samplePos), tipAlpha(samplePos))`:`markerAlpha(samplePos)`};
|
|
162
|
+
if(albedo.a < alphaCutoff) discard; // We also want to discard in the opaque color pass
|
|
163
|
+
`),N?(L.add(`vnormal`,`vec3`),F.include(c,D),F.main.add(`vnormal = getLocalUp(vpos, localOrigin);`),O.include(o,D),I.main.add(`vec4 finalColor = evaluateSceneLightingFragment(vpos, vnormal, albedo);`)):I.main.add(`vec4 finalColor = albedo;`),I.main.add(`outputColorHighlightOLID(applySlice(finalColor, vpos), albedo.rgb);`),O}const O=Object.freeze(Object.defineProperty({__proto__:null,build:D},Symbol.toStringTag,{value:`Module`}));export{O as L,D as b};
|