@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/config.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const t={apiKey:void 0,apiKeys:{scopes:[]},applicationName:``,applicationUrl:globalThis.location?.href,assetsPath:``,fontsUrl:`https://static.arcgis.com/fonts`,geometryServiceUrl:`https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer`,geoRSSServiceUrl:`https://utility.arcgis.com/sharing/rss`,kmlServiceUrl:`https://utility.arcgis.com/sharing/kml`,userPrivilegesApplied:!0,portalUrl:`https://www.arcgis.com`,respectPrefersReducedMotion:!0,routeServiceUrl:`https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World`,workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:[`arcgis.com`,`arcgisonline.com`,`esrikr.com`,`premiumservices.blackbridge.com`,`esripremium.accuweather.com`,`gbm.digitalglobe.com`,`firstlook.digitalglobe.com`,`msi.digitalglobe.com`],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:`high`,proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};globalThis.esriConfig&&(e(t,globalThis.esriConfig,!0),delete t.has),!t.assetsPath&&(t.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@5.2.0-next.
|
|
2
|
+
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const t={apiKey:void 0,apiKeys:{scopes:[]},applicationName:``,applicationUrl:globalThis.location?.href,assetsPath:``,fontsUrl:`https://static.arcgis.com/fonts`,geometryServiceUrl:`https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer`,geoRSSServiceUrl:`https://utility.arcgis.com/sharing/rss`,kmlServiceUrl:`https://utility.arcgis.com/sharing/kml`,userPrivilegesApplied:!0,portalUrl:`https://www.arcgis.com`,respectPrefersReducedMotion:!0,routeServiceUrl:`https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World`,workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:[`arcgis.com`,`arcgisonline.com`,`esrikr.com`,`premiumservices.blackbridge.com`,`esripremium.accuweather.com`,`gbm.digitalglobe.com`,`firstlook.digitalglobe.com`,`msi.digitalglobe.com`],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:`high`,proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};globalThis.esriConfig&&(e(t,globalThis.esriConfig,!0),delete t.has),!t.assetsPath&&(t.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@5.2.0-next.138/assets`,t.defaultAssetsPath=t.assetsPath);export{t as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{fullVersion as e}from"../../kernel.js";import t from"../Error.js";import{on as n}from"../events.js";import{makeHandle as r}from"../handleUtils.js";import{removeMaybe as i}from"../maybe.js";import{isAborted as a,createAbortError as o,onAbort as s,isPromiseLike as c,isAbortError as l}from"../promiseUtils.js";import{createInvokeProxy as u}from"./InvokeHandler.js";import{registry as d}from"./registry.js";import{MessageType as f,portClosedErrorName as p,receiveMessage as m,toInvokeError as h,postMessage as g,newJobId as _}from"./utils.js";
|
|
2
|
+
import{fullVersion as e}from"../../kernel.js";import t from"../Error.js";import{on as n}from"../events.js";import{makeHandle as r}from"../handleUtils.js";import{removeMaybe as i}from"../maybe.js";import{isAborted as a,createAbortError as o,onAbort as s,isPromiseLike as c,isAbortError as l}from"../promiseUtils.js";import{createInvokeProxy as u}from"./InvokeHandler.js";import{registry as d}from"./registry.js";import{MessageType as f,portClosedErrorName as p,receiveMessage as m,toInvokeError as h,postMessage as g,newJobId as _}from"./utils.js";const{CLOSE:v,ABORT:y,INVOKE:b,RESPONSE:x,OPEN_PORT:S,ON:C}=f;class w{constructor(e){this._invoke=e,this._timer=null,this._cancelledJobIds=new Set,this._invokeMessages=[],this._timer=null,this._process=this._process.bind(this)}push(e){e.type===y?this._cancelledJobIds.add(e.jobId):(this._invokeMessages.push(e),this._timer===null&&(this._timer=setTimeout(this._process,0)))}clear(){this._invokeMessages.length=0,this._cancelledJobIds.clear(),this._timer=null}_process(){this._timer=null;for(let e of this._invokeMessages)this._cancelledJobIds.has(e.jobId)||this._invoke(e);this._cancelledJobIds.clear(),this._invokeMessages.length=0}}class T{static{this.kernelInfo={fullVersion:e}}static{this.clients=new Map}static connect(e,t){let n=new MessageChannel,r;r=typeof e==`function`?new e:`default`in e&&typeof e.default==`function`?new e.default:e;let i=new T(n.port1,{channel:n,client:r,schedule:t});return typeof r==`object`&&`remoteClient`in r&&(r.remoteClient=i),T.clients.set(i,r),n.port2}static loadWorker(e){let t=d[e];return t?t():Promise.resolve(null)}constructor(e,t,n,r){this._port=e,this._jobQueue=n,this._lowPriorityJobQueue=r,this._outJobs=new Map,this._inJobs=new Map,this._invokeQueue=new w(e=>this._onInvokeMessage(e)),this._client=t.client,this._onMessage=this._onMessage.bind(this),this._channel=t.channel,this._schedule=t.schedule,this._maxNumberOfConcurrentJobs=t.maxNumberOfConcurrentJobs??2,this._port.addEventListener(`message`,this._onMessage),this._port.start()}close(){this._post({type:v}),this._close()}isBusy(){return this._outJobs.size>0}invoke(e,t,n){return this.apply(e,[t],n)}apply(e,n,r){let c=r?.signal,l=r?.transferList;if(!this._port)return Promise.reject(new t(p,`Cannot call invoke('${e}'), port is closed`,{methodName:e,data:n}));let u=_();return new Promise((t,r)=>{if(a(c)){this._processWork(),r(o());return}let d={resolve:t,reject:r,abortHandle:s(c,()=>{let e=this._outJobs.get(u);e&&(this._outJobs.delete(u),this._processWork(),i(e.abortHandle),this._post({type:y,jobId:u}),r(o()))}),debugInfo:e};this._outJobs.set(u,d),this._post({type:b,jobId:u,methodName:e,abortable:c!=null},n,l)})}createInvokeProxy(e){return u(this,e)}on(e,t){let n=new MessageChannel;this._port.postMessage({type:C,eventType:e,port:n.port2},[n.port2]);function i(e){t(e.data)}return n.port1.addEventListener(`message`,i),n.port1.start(),r(()=>{n.port1.postMessage({type:v}),n.port1.close(),n.port1.removeEventListener(`message`,i)})}jobAdded(){this._processWork()}openPort(){let e=new MessageChannel;return this._post({type:S,port:e.port2}),e.port1}_processWork(){if(this._outJobs.size>=this._maxNumberOfConcurrentJobs)return;let e=this._jobQueue?.pop()??this._lowPriorityJobQueue?.pop();if(!e)return;let{methodName:t,data:n,invokeOptions:r,resolver:i}=e;this.apply(t,n,r).then(e=>i.resolve(e)).catch(e=>i.reject(e))}_close(){this._channel&&=void 0,this._port.removeEventListener(`message`,this._onMessage),this._port.close(),this._outJobs.forEach(e=>{i(e.abortHandle),e.reject(o(`Worker closing, aborting job calling '${e.debugInfo}'`))}),this._inJobs.clear(),this._outJobs.clear(),this._invokeQueue.clear(),this._port=null,this._client=null,this._schedule=null,this._onMessage=null,this._channel=null,this._jobQueue=void 0,this._invokeQueue=void 0,this._lowPriorityJobQueue=void 0}_onMessage(e){this._schedule==null?this._processMessage(e,!1):this._schedule(()=>this._processMessage(e,!0))}_processMessage(e,t){let n=m(e);if(n)switch(n.type){case x:this._onResponseMessage(n);break;case b:t?this._onInvokeMessage(n):this._invokeQueue.push(n);break;case y:this._onAbortMessage(n);break;case v:this._onCloseMessage();break;case S:this._onOpenPortMessage(n);break;case C:this._onOnMessage(n)}}_onAbortMessage(e){let t=this._inJobs,n=e.jobId,r=t.get(n);this._invokeQueue.push(e),r&&(r.controller&&r.controller.abort(),t.delete(n))}_onCloseMessage(){let e=this._client;this._close(),e&&`destroy`in e&&T.clients.get(this)===e&&e.destroy(),T.clients.delete(this),e?.remoteClient&&(e.remoteClient=null)}_onInvokeMessage(e){let{methodName:t,jobId:n,data:r=[],abortable:i}=e,a=i?new AbortController:null,o=this._inJobs,s=this._client,u=s[t],d;try{if(!u&&t&&t.includes(`.`)){let e=t.split(`.`);for(let t=0;t<e.length-1;t++)s=s[e[t]],u=s[e[t+1]]}if(typeof u!=`function`)throw TypeError(`${t} is not a function`);r.push({client:this,signal:a?a.signal:null}),d=u.apply(s,r)}catch(e){this._post({type:x,jobId:n,error:h(e)});return}c(d)?(o.set(n,{controller:a,promise:d}),d.then(e=>{o.has(n)&&(o.delete(n),this._post({type:x,jobId:n},e))},e=>{o.has(n)&&(o.delete(n),l(e)||this._post({type:x,jobId:n,error:h(e||{message:`Error encountered at method ${t}`})}))})):this._post({type:x,jobId:n},d)}_onOpenPortMessage(e){new T(e.port,{client:this._client})}_onOnMessage(e){let{port:t}=e,r=this._client.on(e.eventType,e=>{t.postMessage(e)}),i=n(e.port,`message`,e=>{m(e)?.type===v&&(i.remove(),r.remove(),t.close())})}_onResponseMessage(e){let{jobId:n,error:r,data:a}=e,o=this._outJobs;if(!o.has(n))return;let s=o.get(n);o.delete(n),this._processWork(),i(s.abortHandle),r?s.reject(t.fromJSON(JSON.parse(r))):s.resolve(a)}_post(e,t,n){return g(this._port,e,t,n)}}export{T as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{getAssetUrl as e}from"../../assets.js";import t from"../../config.js";import{getLocale as n}from"../../intl.js";import{fullVersion as r}from"../../kernel.js";import has from"../has.js";import i from"../Logger.js";import{makeAbsolute as a}from"../urlUtils.js";import{loaderConfig as o}from"./loaderConfig.js";import{receiveMessage as s,MessageType as c}from"./utils.js";import l from"./WorkerFallback.js";
|
|
2
|
+
import{getAssetUrl as e}from"../../assets.js";import t from"../../config.js";import{getLocale as n}from"../../intl.js";import{fullVersion as r}from"../../kernel.js";import has from"../has.js";import i from"../Logger.js";import{makeAbsolute as a}from"../urlUtils.js";import{loaderConfig as o}from"./loaderConfig.js";import{receiveMessage as s,MessageType as c}from"./utils.js";import l from"./WorkerFallback.js";const u=()=>i.getLogger(`esri.core.workers.workerFactory`),{HANDSHAKE:d}=c;let f,p;const m=`Failed to create Worker. Fallback to execute module in main thread`;async function h(){if(!has(`esri-workers`))return g(new l);if(!f&&!p)try{let e='"use strict";let globalId=0;const outgoing=new Map,configuration={CONFIGURATION};self.esriConfig=configuration.esriConfig;const workerPath=self.esriConfig.workers.workerPath,HANDSHAKE=0,OPEN=1,OPENED=2,RESPONSE=3,INVOKE=4,ABORT=5;function createAbortError(){const e=new Error("Aborted");return e.name="AbortError",e}function receiveMessage(e){return e&&e.data?"string"==typeof e.data?JSON.parse(e.data):e.data:null}self.invokeStaticMessage=(e,o,r)=>{const t=r&&r.signal,n=globalId++;let s=null;return new Promise((r,i)=>{if(t){if(t.aborted)return i(createAbortError());s=()=>{outgoing.get(n)&&(outgoing.delete(n),self.postMessage({type:5,jobId:n}),i(createAbortError()))},t.addEventListener("abort",s)}outgoing.set(n,{resolve:r,reject:i}),self.postMessage({type:4,jobId:n,methodName:e,abortable:null!=t,data:o})}).finally(()=>{t&&t.removeEventListener("abort",s)})};let workerVersionChecked=!1;function checkWorkerVersion(e){if(!workerVersionChecked&&e.kernelInfo){workerVersionChecked=!0;const{fullVersion:o}=configuration.kernelInfo,{fullVersion:r,version:t}=e.kernelInfo;esriConfig.assetsPath!==esriConfig.defaultAssetsPath&&o!==r&&console.warn(`Version mismatch detected between ArcGIS Maps SDK for JavaScript modules and assets. For more information visit https://esriurl.com/using-local-assets.\\nModules version: ${o}\\nAssets version: ${r??t}\\nAssets path: ${esriConfig.assetsPath}`)}}function messageHandler(e){const o=receiveMessage(e);if(!o)return;const r=o.jobId;switch(o.type){case 1:let t;function n(e){const o=t.connect(e);self.postMessage({type:2,jobId:r,data:o},[o])}"function"==typeof define&&define.amd?require([workerPath],e=>{t=e.default||e,checkWorkerVersion(t),t.loadWorker(o.modulePath).then(e=>e||new Promise(e=>{require([o.modulePath],e)})).then(n)}):"System"in self&&"function"==typeof System.import?System.import(workerPath).then(e=>(t=e.default,checkWorkerVersion(t),t.loadWorker(o.modulePath))).then(e=>e||System.import(o.modulePath)).then(n):esriConfig.workers.useDynamicImport?import(workerPath).then(e=>{t=e.default||e,checkWorkerVersion(t),t.loadWorker(o.modulePath).then(e=>e||import(o.modulePath)).then(n)}):(self.RemoteClient||importScripts(workerPath),t=self.RemoteClient.default||self.RemoteClient,checkWorkerVersion(t),t.loadWorker(o.modulePath).then(n));break;case 3:if(outgoing.has(r)){const s=outgoing.get(r);outgoing.delete(r),o.error?s.reject(JSON.parse(o.error)):s.resolve(o.data)}}}self.dojoConfig=configuration.loaderConfig,esriConfig.workers.loaderUrl&&(self.importScripts(esriConfig.workers.loaderUrl),"function"==typeof require&&"function"==typeof require.config&&require.config(configuration.loaderConfig)),self.addEventListener("message",messageHandler),self.postMessage({type:0});'.split(`{CONFIGURATION}`).join(_());f=URL.createObjectURL(new Blob([e],{type:`text/javascript`}))}catch(e){p=e||{}}let e;if(!f)u().warn(m,p),e=new l;else try{e=new Worker(f,{name:`esri-worker-${v++}`})}catch{u().warn(m,p),e=new l}return g(e)}async function g(e){return new Promise(t=>{function n(i){let a=s(i);a&&a.type===d&&(e.removeEventListener(`message`,n),e.removeEventListener(`error`,r),t(e))}function r(t){t.preventDefault(),e.removeEventListener(`message`,n),e.removeEventListener(`error`,r),u().warn(`Failed to create Worker. Fallback to execute module in main thread`,t),e=new l,e.addEventListener(`message`,n),e.addEventListener(`error`,r)}e.addEventListener(`message`,n),e.addEventListener(`error`,r)})}function _(){let i;if(t.default!=null){let e={...t};delete e.default,i=JSON.parse(JSON.stringify(e))}else i=JSON.parse(JSON.stringify(t));i.assetsPath=a(i.assetsPath),i.defaultAssetsPath=i.defaultAssetsPath?a(i.defaultAssetsPath):void 0,i.request.interceptors=[],i.log.interceptors=[],i.locale=n(),i.has={"esri-csp-restrictions":has(`esri-csp-restrictions`),"esri-2d-debug":!1,"esri-2d-update-debug":has(`esri-2d-update-debug`),"esri-2d-annotation-dimension-debug":has(`esri-2d-annotation-dimension-debug`),"esri-2d-log-updating":!1,"esri-2d-complex-shaping":has(`esri-2d-complex-shaping`),"esri-2d-force-complex-shaping":has(`esri-2d-force-complex-shaping`),"esri-2d-stabilize-glyphs":has(`esri-2d-stabilize-glyphs`),"featurelayer-pbf":has(`featurelayer-pbf`),"featurelayer-simplify-thresholds":has(`featurelayer-simplify-thresholds`),"featurelayer-simplify-payload-size-factors":has(`featurelayer-simplify-payload-size-factors`),"featurelayer-simplify-mobile-factor":has(`featurelayer-simplify-mobile-factor`),"featurelayer-query-max-depth":has(`featurelayer-query-max-depth`),"featurelayer-query-max-page-size":has(`featurelayer-query-max-page-size`),"featurelayer-query-tile-max-features":has(`featurelayer-query-tile-max-features`),"featurelayer-query-tile-concurrency":has(`featurelayer-query-tile-concurrency`),"featurelayer-query-pausing-enabled":has(`featurelayer-query-pausing-enabled`),"featurelayer-snapshot-concurrency":has(`featurelayer-snapshot-concurrency`),"featurelayer-snapshot-enabled":has(`featurelayer-snapshot-enabled`),"featurelayer-pixel-buffering-enabled":has(`featurelayer-pixel-buffering-enabled`),"parquetlayer-full-query-feature-count":has(`parquetlayer-full-query-feature-count`),"parquetlayer-cache-enabled":has(`parquetlayer-cache-enabled`),"parquetlayer-legacy-field-overrides-enabled":has(`parquetlayer-legacy-field-overrides-enabled`),"esri-atomics":has(`esri-atomics`),"esri-shared-array-buffer":has(`esri-shared-array-buffer`),"esri-tiles-debug":has(`esri-tiles-debug`),"esri-workers-arraybuffer-transfer":has(`esri-workers-arraybuffer-transfer`),"feature-polyline-generalization-factor":has(`feature-polyline-generalization-factor`),"host-webworker":1},i.workers.loaderUrl&&(i.workers.loaderUrl=a(i.workers.loaderUrl)),i.workers.workerPath?i.workers.workerPath=a(i.workers.workerPath):i.workers.workerPath=a(e(`esri/core/workers/RemoteClient.js`)),i.workers.useDynamicImport=has(`esri-esbuild-build`);let s=t.workers.loaderConfig,c=o({baseUrl:s?.baseUrl,locale:n(),has:{"csp-restrictions":1,"dojo-test-sniff":0,"host-webworker":1,...s?.has},map:{...s?.map},paths:{...s?.paths},packages:s?.packages||[]});return JSON.stringify({esriConfig:i,loaderConfig:c,kernelInfo:{fullVersion:r}})}let v=0;export{h as createWorker};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type Field from "../layers/support/Field.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Determines what alias to use for the provided Field, dependent on if the
|
|
5
|
+
* layer supports field configurations.
|
|
6
|
+
*
|
|
7
|
+
* @param field - The field to get the effective alias for.
|
|
8
|
+
* @param layer - The layer to check for field configurations.
|
|
9
|
+
* @returns A string representing the effective alias for the field, or nil if no alias is available.
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export function getEffectiveFieldAlias(field: Field, layer: unknown): string | null | undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../core/Error.js";import{JSONSupport as n}from"../../../core/JSONSupport.js";import{LoadableMixin as r}from"../../../core/Loadable.js";import{EsriPromiseMixin as i}from"../../../core/Promise.js";import{property as a,subclass as o}from"../../../core/accessorSupport/decorators.js";import{getSharedTemplateProvider as s}from"../SharedTemplateProvider.js";import{SharedTemplateDefinitionRequiredPropsNotSetError as c}from"../support/sharedTemplateErrors.js";import{namedEditingToolGUIDDict as l}from"../support/toolNames.js";import{reader as u}from"../../../core/accessorSupport/decorators/reader.js";import{writer as d}from"../../../core/accessorSupport/decorators/writer.js";let f=class extends r(i(n)){constructor(){super(...arguments),this.excludedTools=[],this.featureService=null,this.makeSharedTemplateFromJSON=null,this.view=null}readExcludedTools(e){let t=e.map(e=>l.fromJSON(e));return Array.from(new Set(t))}writeExcludedTools(e,t){e?.length&&(t.excludedTools=e.map(e=>l.toJSON(e.toLowerCase())))}load(e){return this.addResolvingPromise(this._load(e)),Promise.resolve(this)}async _load(e){let n=this.allParts,{featureService:r,makeSharedTemplateFromJSON:i,view:a}=this;if(r==null||i==null||a==null)throw new c;for(let e of n)e.assertIsSupportedPart();let o=s(a,{makeSharedTemplateFromJSON:i}),l=n.filter(e=>e.template==null),u=await o.getTemplates({templateIds:l.map(e=>e.templateId),featureService:r,signal:e?.signal}),d=new Map(u.map(e=>[e.templateId,e]));for(let e of l){let n=d.get(e.templateId);if(n==null)throw new t(`internal:missing-template`,`Failed to retrieve template for template ID ${e.templateId}`);e.template=n}await Promise.all(n.map(t=>t.template?.load(e)))}};e([a({readOnly:!0})],f.prototype,`type`,void 0),e([a({constructOnly:!0})],f.prototype,`excludedTools`,void 0),e([u(`excludedTools`)],f.prototype,`readExcludedTools`,null),e([d(`excludedTools`)],f.prototype,`writeExcludedTools`,null),e([a()],f.prototype,`featureService`,void 0),e([a()],f.prototype,`makeSharedTemplateFromJSON`,void 0),e([a()],f.prototype,`view`,void 0),f=e([o(`esri.editing.sharedTemplates.templateDefinitions.TemplateDefinitionBase`)],f);export{f as TemplateDefinitionBase};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../core/Error.js";import{JSONSupport as n}from"../../../core/JSONSupport.js";import{LoadableMixin as r}from"../../../core/Loadable.js";import{EsriPromiseMixin as i}from"../../../core/Promise.js";import{property as a,subclass as o}from"../../../core/accessorSupport/decorators.js";import{getSharedTemplateProvider as s}from"../SharedTemplateProvider.js";import{SharedTemplateDefinitionRequiredPropsNotSetError as c}from"../support/sharedTemplateErrors.js";import{namedEditingToolGUIDDict as l}from"../support/toolNames.js";import{reader as u}from"../../../core/accessorSupport/decorators/reader.js";import{writer as d}from"../../../core/accessorSupport/decorators/writer.js";let f=class extends r(i(n)){constructor(){super(...arguments),this.excludedTools=[],this.featureService=null,this.makeSharedTemplateFromJSON=null,this.view=null}readExcludedTools(e){let t=e.map(e=>l.fromJSON(e.toLowerCase()));return Array.from(new Set(t))}writeExcludedTools(e,t){e?.length&&(t.excludedTools=e.map(e=>l.toJSON(e.toLowerCase())))}load(e){return this.addResolvingPromise(this._load(e)),Promise.resolve(this)}async _load(e){let n=this.allParts,{featureService:r,makeSharedTemplateFromJSON:i,view:a}=this;if(r==null||i==null||a==null)throw new c;for(let e of n)e.assertIsSupportedPart();let o=s(a,{makeSharedTemplateFromJSON:i}),l=n.filter(e=>e.template==null),u=await o.getTemplates({templateIds:l.map(e=>e.templateId),featureService:r,signal:e?.signal}),d=new Map(u.map(e=>[e.templateId,e]));for(let e of l){let n=d.get(e.templateId);if(n==null)throw new t(`internal:missing-template`,`Failed to retrieve template for template ID ${e.templateId}`);e.template=n}await Promise.all(n.map(t=>t.template?.load(e)))}};e([a({readOnly:!0})],f.prototype,`type`,void 0),e([a({constructOnly:!0})],f.prototype,`excludedTools`,void 0),e([u(`excludedTools`)],f.prototype,`readExcludedTools`,null),e([d(`excludedTools`)],f.prototype,`writeExcludedTools`,null),e([a()],f.prototype,`featureService`,void 0),e([a()],f.prototype,`makeSharedTemplateFromJSON`,void 0),e([a()],f.prototype,`view`,void 0),f=e([o(`esri.editing.sharedTemplates.templateDefinitions.TemplateDefinitionBase`)],f);export{f as TemplateDefinitionBase};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{b as e,p as t,G as n,a as r}from"../../chunks/Geometry.js";import{Envelope2D as i}from"../../chunks/Envelope2D.js";import{c as a,P as o,a as s,B as c}from"../../chunks/Envelope.js";import{S as l,j as u}from"../../chunks/MultiPathImpl.js";import{x as d}from"../../chunks/Point2D.js";import{getSpatialReference as f,fromPolyline as p,fromSpatialReference as m,toPolyline as h}from"./support/apiConverter.js";import{deprecatedOperator as g}from"./support/deprecatedOperator.js";function _(t,n,r,o,s){if(t.isEmpty()||n.isEmpty()||o&8&&o&16)return null;o&2&&o&4&&e(``);let c=new i,l=new i;return t.queryEnvelope(c),n.queryEnvelope(l),c.mergeEnvelope2D(l),v(t,n,a(r,c,!0).total(),o)}function v(e,i,a,s){t(e),t(i);let c=!1,d,f=e.querySegmentIterator(),p=i.querySegmentIterator(),m=0,h=new l,g=new o({vd:e.getDescription()}),_=new o({vd:e.getDescription()}),v=[],y=[];for(b(e,v,y);f.nextPath();){let t=!0,i=0;for(;i!==2;){if(i===0)f.nextSegment().getGeometryType()!==n.enumLine&&r(``),i++;else{if(f.resetToLastSegment(),f.previousSegment().getGeometryType()!==n.enumLine&&r(``),c&&t){let n=f.getPathIndex();d.addSegmentsFromPath(e,n,0,e.getSegmentCountPath(n),!0),t=!1}i++}let o=!1;if(m<y.length){let e=y[v[m]],t=f.getPathIndex();if(e.m_path===t){let t=i===1?f.getStartPointIndex():f.getEndPointIndex();e.m_pointIndex===t&&(o=!0,m++)}}if(i===1){if(s&8)continue}else if(s&16)continue;if(!o){i===1?f.previousSegment():f.nextSegment();let o=i===1?f.nextSegment():f.previousSegment(),l=o,m=l.calculateLength2D();p.resetToFirstPath();let v=!1,y=NaN;for(;p.nextPath();){for(;p.hasNextSegment();){let e=p.nextSegment();e.getGeometryType()!==n.enumLine&&r(``);let t=e,{bIntersect:o,t1:s,t2:c}=u(l,t);if(o){let e=t.calculateLength2D();if(c*e>=-a&&(1-c)*e>=-a){if(i===1){if(s*m<=-a)(Number.isNaN(y)||s>y)&&(y=s);else if(s*m<=a){y=NaN,v=!0;break}}else if((1-s)*m<=-a)(Number.isNaN(y)||s<y)&&(y=s);else if((1-s)*m<=a){y=NaN,v=!0;break}}}}if(v)break}if(!Number.isNaN(y)){if(!c){d=e.createInstance();for(let t=0;t<f.getPathIndex();t++)d.addPath(e,t,!0)}if(i===1){o.queryCoord(y,g);let n=f.getPathIndex();if(s&2?e.getPointByVal(e.getPathStart(n),_):s&4&&_.setEmpty(),s&1||(h.create(o.getGeometryType()),o.copyTo(h.get()),h.get().setEnd(g),h.get().reverse(),d.addSegment(h.get(),!0),t=!1),d.addSegmentsFromPath(e,n,0,e.getSegmentCountPath(n),t),s&1){let e=d.getPathStart(n);d.setPointByVal(e,g)}if(s&2||s&4){let e=d.getPathStart(n),t=g.getXY();_.setXY(t),d.setPointByVal(e,_)}c=!0,t=!1}else{let n=f.getPathIndex();if(t&&=(d.addSegmentsFromPath(e,n,0,e.getSegmentCountPath(n),!0),!1),s&2?e.getPointByVal(e.getPathEnd(n)-1,_):s&4&&_.setEmpty(),o.queryCoord(y,g),!(s&1))h.create(o.getGeometryType()),o.copyTo(h.get()),h.get().setEnd(g),d.addSegment(h.get(),!1);else{let e=d.getPathEnd(n);d.setPointByVal(e-1,g)}if(s&2||s&4){let e=d.getPathEnd(n),t=g.getXY();_.setXY(t),d.setPointByVal(e-1,_)}c=!0}}}}}return c?d:null}function y(e,t){return{m_path:e,m_pointIndex:t}}function b(e,t,n){let r=[],i=[],a=e.querySegmentIterator();for(;a.nextPath();){a.resetToFirstSegment();let e=a.nextSegment().getStartXY(),t=a.getPathIndex(),n=a.getStartPointIndex();r.push(e),i.push(y(t,n)),a.resetToLastSegment();let o=a.previousSegment().getEndXY(),s=a.getPathIndex(),c=a.getEndPointIndex();r.push(o),i.push(y(s,c))}let o=new s(0);for(let e=0;e<r.length;e++)o.add(e);new c().sort(o,0,o.size(),{userSort(e,t,n){n.sort(e,t,(e,t)=>r[e].compare(r[t]))},getValue(e){return r[e].y}});for(let e=0;e<o.size()-1;e++){let t=r[o.read(e)];if(t.equals(r[o.read(e+1)])){do{let t=i[o.read(e)];n.push(t),e++}while(e<o.size()&&t.equals(r[o.read(e)]));e--}}d(t,n.length,0);for(let e=0;e<n.length;e++)t[e]=e;t.sort((e,t)=>{let r=n[e],i=n[t];return r.m_path<i.m_path?-1:r.m_path>i.m_path?1:r.m_pointIndex<i.m_pointIndex?-1:1})}class x{getOperatorType(){return 10007}supportsCurves(){return!1}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}execute(e,t,n,r,i){return _(e,t,n,r)}}const S=new x;function C(e,t,n){let r=0;n&&(n.relocateEnds&&(r|=1),n.keepEndAttributes&&(r|=2),n.noEndAttributes&&(r|=4),n.noExtendAtFrom&&(r|=8),n.noExtendAtTo&&(r|=16));let i=f(e),a=S.execute(p(e),p(t),m(i),r,null);return a?h(a,i):null}function w(e,t,n){return g(`extendOperator`,`execute`,`extendExecute`),C(e,t,n)}const T=S.supportsCurves(),E=!!T;export{w as execute,C as extendExecute,T as extendSupportsCurves,E as supportsCurves};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{g as n,a as r,p as i,c as a,i as o,G as s}from"../../../chunks/Geometry.js";import{v as c,P as l,m as u,o as d,c as f,w as p,i as m,d as h}from"../../../chunks/Point2D.js";import{r as g,h as _,P as v,M as y}from"../../../chunks/MultiPathImpl.js";function b(e,t,n,r,i,a){let o=r-t;if(o<=a)return _(e,t,n,r,i),n;let s=S(e,t,r,i,Math.min(Math.max(o>>1,3),100)),c=e[s];e[t]=f(e[s],e[s]=e[t]);let l=t+1,u=!1;for(let n=t+1;n!==r;++n)i(e[n],c)&&(e[l]=f(e[n],e[n]=e[l]),++l,u=!0);if(!u)for(let r=t+1;r<n;++r)i(c,e[r])||(r!==l&&(e[l]=f(e[r],e[r]=e[l])),++l);return--l,e[l]=f(e[t],e[t]=e[l]),l}function x(e,t,n){let r=Math.trunc(t/2),i=BigInt(r),a=BigInt(t);for(let t=0;t<n;++t)e.push(Number(i%a)),i=6364136223846793005n*i+1442695040888963407n&9223372036854775807n,i=BigInt.asUintN(64,i);p(e),e.length=c(e,(e,t)=>e===t)}function S(e,t,n,r,i){let a=[];x(a,n-t,i);let o=[];for(let n=0,r=a.length;n<r;n++){let r=a[n];o.push(d(e[t+r],r))}let s=Math.trunc(o.length/2);return o.sort((e,t)=>r(e.first,t.first)?-1:1),t+o[s].second}function C(){return{p:new l,userData:NaN,edge:null}}class w{info=0;mask=!1;p=null;a=[null,null];twin=null;nextFreeEdge(){return this.twin}setIndex(e){this.info=e,this.mask=!1}getIndex(){return this.info}setMask(){this.mask=!0}getMask(){return this.mask}}function T(e,t){return{first:e,second:t}}function E(e,t){e.first=t.first,e.second=t.second}function D(){return this.i1-this.i0}function O(){return{i0:NaN,i1:NaN,nextFreeEdgeIndex:[-1],box:[T(null,null),T(null,null)],size:D}}function k(){return{k:0,pTask:null,pTask0:null,pTask1:null}}function A(){return{p:[new l,new l],points:[null,null]}}function j(){return{p:[null,null,null]}}class M{m_nextFreePairEdge=T(null,null);m_points=[];m_pointZero=null;m_edges=[];m_voronoiToEdge=[];m_nextFreeEdge=0;clear(){this.m_nextFreePairEdge=T(null,null),this.m_points.length=0,this.m_pointZero=null,this.m_edges.length=0,this.m_voronoiToEdge.length=0,this.m_nextFreeEdge=0}reservePoints(e){n(e>1)}prepare(e){{let t=C();t.p.x=1/0,t.p.y=1/0,t.userData=e,this.m_points.push(t)}}addVertex(e,t){let n=C();n.p.assign(e),n.userData=t,n.edge=null,this.m_points.push(n)}removeDuplicates(){let e=this.m_points.shift();this.m_points.sort((e,t)=>e.p.compareX(t.p));let t=c(this.m_points,(e,t)=>e.p.equals(t.p)),n=t!==this.m_points.length;return this.m_points.length=t,this.m_points.unshift(e),n}boundVoronoiCells(e,t){let n=this.m_points.length;if(n<2)return!1;let r=[this.m_points[1].p.clone(),this.m_points[1].p.clone()];for(let e=2;e<n;e++){let t=this.m_points[e].p;t.x<r[0].x&&(r[0].x=t.x),r[1].x<t.x&&(r[1].x=t.x),t.y<r[0].y&&(r[0].y=t.y),r[1].y<t.y&&(r[1].y=t.y)}let i=new l;i.x=.5*(r[0].x+r[1].x),i.y=.5*(r[0].y+r[1].y);let a=0;for(let e=1;e<n;e++){let t=this.m_points[e].p,n=l.sqrDistanceCoords(t.x,t.y,i.x,i.y);a<n&&(a=n)}let o=Math.sqrt(a),s=Math.max(o+2*e,1.5*o);{let e=.8660254037844386,n=.5,r=1,a=0;for(let o=0;o<12;o++){let o=new l;o.x=i.x+s*r,o.y=i.y+s*a,this.addVertex(o,t);let c=r*e-a*n,u=r*n+a*e;r=c,a=u}}return!0}construct(){let e=O();return this.constructTask(e)?(this.solveTask(e),!0):!1}constructTask(e){if(this.m_pointZero=this.createZeroHandle(),n(this.m_pointZero!==void 0),this.m_points.length<3)return!1;let t=6*(this.m_points.length-2);this.m_edges=u(w,t);for(let e=0;e<t;e++)this.m_edges[e].setIndex(e);return e.i0=1,e.i1=this.m_points.length,e.nextFreeEdgeIndex[0]=0,!0}splitTask(e,t,n,r){let i=e,a=t,o=n,s=r;i.k=this.findMaxSide(s.i0,s.i1);let c=s.i0+s.i1>>1,l=1250;c=i.k===0?b(this.m_points,s.i0,c,s.i1,(e,t)=>e.p[0]===t.p[0]?e.p[1]<t.p[1]:e.p[0]<t.p[0],l):b(this.m_points,s.i0,c,s.i1,(e,t)=>e.p[1]===t.p[1]?e.p[0]<t.p[0]:e.p[1]<t.p[1],l),a.i0=s.i0,a.i1=c,a.nextFreeEdgeIndex[0]=s.nextFreeEdgeIndex[0],s.nextFreeEdgeIndex[0]+=6*(a.i1-a.i0-1)+2,o.i0=c,o.i1=s.i1,o.nextFreeEdgeIndex[0]=s.nextFreeEdgeIndex[0],s.nextFreeEdgeIndex[0]+=6*(o.i1-o.i0-1)+2,i.pTask=s,i.pTask0=a,i.pTask1=o}solveMergeTask(e){let t=this.newPairEdgeEx(e.pTask.nextFreeEdgeIndex,!1);if(e.pTask.box[e.k]=T(e.pTask0.box[e.k].first,e.pTask1.box[e.k].second),e.pTask.box[1-e.k]=T(P(this.getPointXYFromEdge(e.pTask0.box[1-e.k].first),this.getPointXYFromEdge(e.pTask1.box[1-e.k].first),1-e.k)?e.pTask0.box[1-e.k].first:e.pTask1.box[1-e.k].first,P(this.getPointXYFromEdge(e.pTask0.box[1-e.k].second),this.getPointXYFromEdge(e.pTask1.box[1-e.k].second),1-e.k)?e.pTask1.box[1-e.k].second:e.pTask0.box[1-e.k].second),e.pTask.i0+2===e.pTask.i1){let n=e.pTask0.box[e.k].second,r=n.twin,i=e.pTask1.box[e.k].first,a=i.twin;this.joinEdges2(r,a),this.joinEdges2(a,r),this.join(n,i,0,1,t);return}let n=[[,,],[,,]];n[0][0]=n[1][0]=T(e.pTask0.box[e.k].second,e.pTask0.box[e.k].second.twin),n[0][1]=n[1][1]=T(e.pTask1.box[e.k].first,e.pTask1.box[e.k].first.twin);let r=[!1,!1];if(e.pTask0.i0+1===e.pTask0.i1?(this.findEdgeSide(n[0],r,1,0),this.findEdgeSide(n[1],r,1,1)):(this.findEdge(n[0],r,0),this.findEdge(n[1],r,1)),!r[0]&&!r[1])this.getNextDEdge(n[0][0].first,0)!==n[0][0].first&&(n[1][0]=this.newPairEdgeEx(e.pTask0.nextFreeEdgeIndex,!1),this.insertEdge(n[0][0].first,n[1][0].first,0),this.insertEdge(n[0][0].second,n[1][0].second,1)),this.getNextDEdge(n[0][1].first,0)!==n[0][1].first&&(n[1][1]=this.newPairEdgeEx(e.pTask1.nextFreeEdgeIndex,!1),this.insertEdge(n[0][1].first,n[1][1].first,1),this.insertEdge(n[0][1].second,n[1][1].second,0));else{if(r[0]){let t=this.newPairEdgeEx(e.pTask0.nextFreeEdgeIndex,!1);this.insertEdge(n[0][0].first,t.first,0),this.insertEdge(n[0][0].second,t.second,1)}if(r[1]){let t=this.newPairEdgeEx(e.pTask1.nextFreeEdgeIndex,!1);this.insertEdge(n[0][1].first,t.first,1),this.insertEdge(n[0][1].second,t.second,0)}}this.merge(n[1][0],n[0][0],n[0][1],n[1][1],t)}static c_aTableDelaunayTriangulationSolution=Uint8Array.from([41,74,0,0,0,0,0,0,0,206,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,33,33,65,0,0,0,0,0,0,0,193,0,0,0,0,0,0,0,0,0,0,214,0,0,0,0,0,86,54,86,0,0,0,0,0,0,0,214,173,0,0,0,0,0,0,0,107,239,0,0,0,0,0,0,0,0,0,181,0,0,0,0,0,0,0,181,0,0,0,0,0,0,117,117,245,0,0,0,0,0,0,0,0,0,103,0,0,0,0,0,0,0,167,0,0,0,0,0,0,231,103,231,0,0,0,0,0,0,50,0,0,0,0,0,0,0,0,198,0,0,41,0,0,74,0,0,49,0,0,49,0,0,50,0,0,194,0,0,193,0,0,194,0,0,0,0,0,206,0,0,0,0,0,0,0,0,54,0,0,0,0,0,0,0,0,198,0,0,0,0,0,82,50,82,0,0,0,0,0,0,0,198,0,66,0,0,65,0,0,66,49,66,33,57,65,82,50,90,0,194,0,0,193,0,0,194,0,0,0,0,0,0,0,214,0,0,0,0,0,86,54,86,0,0,0,0,0,0,0,222,0,0,0,0,0,0,178,0,0,0,0,0,0,230,102,230,177,0,0,177,0,0,178,0,177,0,0,177,0,0,178,0,113,226,113,113,249,226,122,226,0,0,0,0,0,0,102,0,0,0,0,0,0,0,190,0,0,0,0,0,0,230,102,230,0,0,0,165,0,0,0,0,0,0,0,0,243,0,0,0,0,0,173,0,0,0,0,0,0,0,0,165,0,0,0,0,0,0,0,0,245,0,0,0,0,0,107,0,0,239,0,0,163,0,0,163,0,0,167,0,0,247,0,0,243,0,0,247,0,0,37,37,69,0,0,0,0,0,0,0,211,0,0,0,0,0,0,0,69,0,0,0,0,0,37,37,69,0,0,0,0,0,0,0,221,0,0,0,0,215,0,0,211,0,0,215,35,87,35,35,91,87,63,87,0,215,0,0,211,0,0,215,0,0,0,165,0,0,0,0,0,0,115,115,243,0,0,0,0,0,0,181,0,0,0,0,0,0,0,189,0,0,0,0,0,0,117,117,245,0,0,0,99,0,0,99,0,0,103,0,163,0,0,163,0,0,167,0,99,247,115,123,243,231,103,255]);solveTask(e){let t=e;switch(t.i1-t.i0){case 1:{this.insertPoint(t.i0,t.nextFreeEdgeIndex);let e=this.m_points[t.i0].edge;t.box[0]=t.box[1]=d(e,e)}break;case 2:{let e=t.i0,n=e+1;this.insertPoint(e,t.nextFreeEdgeIndex),this.insertPoint(n,t.nextFreeEdgeIndex);let r=this.m_points[e],i=this.m_points[n],a=r.edge,o=i.edge,s=a.twin,c=o.twin;this.joinEdges2(s,c),this.joinEdges2(c,s);let l=this.newPairEdgeEx(t.nextFreeEdgeIndex,!1);this.join(a,o,0,1,l);for(let e=0;e<2;e++)t.box[e]=P(this.getPointXY(r),this.getPointXY(i),e)?T(a,o):T(o,a)}break;case 3:{let e=[t.i0,t.i0+1,t.i0+2];this.insertPoint(e[0],t.nextFreeEdgeIndex),this.insertPoint(e[1],t.nextFreeEdgeIndex),this.insertPoint(e[2],t.nextFreeEdgeIndex);let n=[this.m_points[e[0]],this.m_points[e[1]],this.m_points[e[2]]],r=this.caseFromCompare(n[0].p,n[1].p,n[2].p),i=[n[0].edge,n[1].edge,n[2].edge],a=M.c_aTableDelaunayTriangulationSolution[r],o=F(19*F((a&7)+1)),s=F(19*F((a>>5)+1)),c=F(a<<3)>>6,l=o&3,u=o>>6,d=s&3,p=s>>6;t.box[0]=T(i[l],i[u]),t.box[1]=T(i[d],i[p]);let m=[i[0].twin,i[1].twin,i[2].twin],h=[this.newPairEdgeEx(t.nextFreeEdgeIndex,!1),this.newPairEdgeEx(t.nextFreeEdgeIndex,!1),this.newPairEdgeEx(t.nextFreeEdgeIndex,!1)];switch(c===3&&(c=this.orientation(n[0].p,n[1].p,n[2].p)+1),c){case 0:this.joinEdges2(m[0],m[2]),this.joinEdges2(m[2],m[1]),this.joinEdges2(m[1],m[0]),this.join(i[0],i[2],0,1,h[0]),this.join(i[2],i[1],0,1,h[1]),this.join(i[1],i[0],0,1,h[2]);break;case 1:{let e=[0,1,2];e[3-(l+u)]=f(e[1],e[1]=e[3-(l+u)]),this.joinEdges2(m[e[0]],m[e[1]]),this.joinEdges2(m[e[1]],m[e[2]]),this.joinEdges2(m[e[2]],m[e[0]]),this.join(i[e[0]],i[e[1]],0,1,h[0]),this.join(i[e[1]],i[e[2]],0,1,h[1]),this.join(h[1].first,m[e[2]],0,1,h[2])}break;case 2:this.joinEdges2(m[0],m[1]),this.joinEdges2(m[1],m[2]),this.joinEdges2(m[2],m[0]),this.join(i[0],i[1],0,1,h[0]),this.join(i[1],i[2],0,1,h[1]),this.join(i[2],i[0],0,1,h[2])}}break;default:{let t=k(),n=O(),r=O();this.splitTask(t,n,r,e),this.solveTask(n),this.solveTask(r),this.solveMergeTask(t)}}}getOutsideHull(){let e=[],t=this.m_points[0].edge,n=t;do e.push(this.getPointFromEdge(this.getTwinEdge(n))),n=this.getNextDEdge(n,0);while(n!==t);return e}getConvexHull(){let e=[],t=this.m_points[0].edge,n=t;do{let t=this.getPointFromEdge(this.getTwinEdge(n));e.length<2||!this.insideLine(this.getPointXY(e.at(-2)),this.getPointXY(e.at(-1)),this.getPointXY(t))?e.push(t):e[e.length-1]=t,n=this.getNextDEdge(n,0)}while(n!==t);return 2<e.length&&this.insideLine(this.getPointXY(e[0]),this.getPointXY(e.at(-1)),this.getPointXY(e.at(-2)))&&e.pop(),2<e.length&&this.insideLine(this.getPointXY(e[1]),this.getPointXY(e[0]),this.getPointXY(e.at(-1)))&&(e[0]=e.at(-1),e.pop()),e}getVoronoiPolygon(e,t){e.length=0;let n=this.getEdgeFromPoint(t),r=n;for(;;){let t=this.calculateCircleCenter(r);e.push(t);let i=this.getNextDEdge(r,1);if(i===n)break;r=i}}getNearestPoint(e){this.isInfinitePointFromPoint(e)&&r(`Not supported for the infinite point`);let t=this.getPointXY(e),n=this.m_pointZero,i=Number.MAX_VALUE,a=this.getEdgeFromPoint(e),o=a;do{let e=this.getPointFromEdge(this.getTwinEdge(o));if(!this.isInfinitePointFromPoint(e)){let r=l.sqrDistance(t,this.getPointXY(e));r<i&&(n=e,i=r)}o=this.getCounterClockwiseEdge(o)}while(o!==a);return n}addConstraint(e,t){let n=[null],i=[null];if(!this.constraintFindFirstEdge(n,i,e,t))return T(i[0],n[0]);n[0]=this.getTwinEdge(n[0]);let a=this.getPointXY(e),o=this.getPointXY(t),s=[[],[]],c=n[0];for(;;){let e=this.getClockwiseEdge(i[0]);e.getMask()&&r(`add_constraint`);let c=T(e,this.getTwinEdge(e));this.deleteTwinEdges(c,!0);let l=this.getCounterClockwiseEdge(this.getTwinEdge(n[0])),u=this.getTwinEdge(this.getClockwiseEdge(i[0])),d=this.getPointFromEdge(u);if(d===t){s[0].push(n[0]),n[0]=l,s[1].push(i[0]),i[0]=u;break}let f=this.orientation(a,o,this.getPointXY(d));f===0&&r(`add_constraint - point on constraint`),0<f?(s[0].push(n[0]),n[0]=l):(s[1].push(i[0]),i[0]=u)}s[0].push(n[0]),s[1].push(i[0]);let l=this.newPairEdge();l.first.setMask(),l.second.setMask(),this.join(i[0],c,1,1,l),this.triangulateConstraint(s[0],1,s[0].length-1,l),s[1].reverse();let u=T(l.second,l.first);return this.triangulateConstraint(s[1],1,s[1].length-1,u),u}verify(){for(let e=0,t=this.m_edges.length;e<t;e++){let t=this.m_edges[e];if(!t.getMask()&&!this.testEdge(t))return!1}return!0}getDelaunayTriangleCount(){return this.m_points.length-2<<1}getVoronoiSegments(e=Number.MAX_VALUE){let t=[];for(let n=0,r=this.m_edges.length;n<r;n+=2){let r=T(null,null);if(r.first=this.m_edges[n],r.second=r.first.twin,this.isInfinitePointFromEdge(r.first)&&(r.second=f(r.first,r.first=r.second)),this.isInfinitePointFromEdge(r.second)){let n=u(l,3);n[0]=this.calculateCircleCenter(this.getNextDEdge(r.first,0).twin,1),n[2]=this.calculateCircleCenter(this.getNextDEdge(r.first,1),1);let i=u(l,2);i[0].assign(n[0]),i[1].assign(n[2]),i[0].rightPerpendicularThis(),i[1].leftPerpendicularThis(),n[1]=n[0].add(i[0]).add(n[2].add(i[1])),n[1].normalize();for(let t of n)t.mulThis(e);let a=A();a.points[0]=r.first.p,a.points[1]=r.second.p;for(let e=0;e<n.length-1;e++){for(let t=0;t<2;t++)a.p[t]=n[e+t];a.p[0].equals(a.p[1])||t.push(a)}}else if(this.isInfinitePointFromEdge(this.getNextDEdge(r.first,0).twin)&&this.isInfinitePointFromEdge(this.getNextDEdge(r.first,1).twin)){let e=u(l,3);e[0]=this.calculateCircleCenter(r.first),e[1]=this.getPointXY(this.getPointFromEdge(r.first)).add(this.getPointXY(this.getPointFromEdge(r.second))).mul(.5),e[2]=this.calculateCircleCenter(r.second);let n=A();n.points[0]=r.first.p,n.points[1]=r.second.p;for(let r=0;r<e.length-1;r++){for(let t=0;t<2;t++)n.p[t]=e[r+t];n.p[0].equals(n.p[1])||t.push(n)}}else{let e=A();e.p[0]=this.calculateCircleCenter(r.first),e.p[1]=this.calculateCircleCenter(r.second),e.points[0]=r.first.p,e.points[1]=r.second.p,e.p[0].equals(e.p[1])||t.push(e)}}return t}startDelaunayTriangles(){return-1}nextDelaunayTriangle(e,t){for(;;){if(++t[0],t[0]===this.m_edges.length)return!1;let n=this.m_edges[t[0]];if(e.p[0]=this.getPointFromEdge(n),this.isInfinitePointFromPoint(e.p[0]))continue;let r=this.getTwinEdge(n);if(e.p[1]=this.getPointFromEdge(r),this.isInfinitePointFromPoint(e.p[1])||this.getPointXY(e.p[1]).lt(this.getPointXY(e.p[0])))continue;let i=this.getTwinEdge(this.getNextDEdge(n,1));if(e.p[2]=this.getPointFromEdge(i),!this.isInfinitePointFromPoint(e.p[2])&&!this.getPointXY(e.p[2]).lt(this.getPointXY(e.p[0])))return!0}}getPointCount(){return this.m_points.length-1}getPoint(e){return this.m_points[e+1]}getInfinitePoint(){return this.m_pointZero}isInfinitePointFromPoint(e){return e===this.m_pointZero}getPointXY(e){return e.p}getPointIndex(e){return e.userData}setPointIndex(e,t){e.userData=t}getEdgeFromPoint(e){return e.edge}isInfinitePointFromEdge(e){return e.p===this.m_pointZero}getEdgeCount(){return this.m_edges.length}getEdge(e){return this.m_edges[e]}getEdgeIndex(e){return e.getIndex()}getPointFromEdge(e){return e.p}getPointXYFromEdge(e){return e.p.p}getCounterClockwiseEdge(e){return e.a[0]}getClockwiseEdge(e){return e.a[1]}getTwinEdge(e){return e.twin}getPreviousEdge(e){return this.getTwinEdge(this.getCounterClockwiseEdge(e))}getNextEdge(e){return this.getClockwiseEdge(this.getTwinEdge(e))}getNextDEdge(e,t=1){return e.a[t]}newPairEdge(){let e=T(this.m_nextFreePairEdge.first,this.m_nextFreePairEdge.second);return this.m_nextFreePairEdge.first=this.m_nextFreePairEdge.first.nextFreeEdge(),this.m_nextFreePairEdge.second=this.m_nextFreePairEdge.second.nextFreeEdge(),e.first.twin=e.second,e.second.twin=e.first,e}newPairEdgeEx(e,t){let n;if(t&&this.m_nextFreePairEdge.first!==null)n=T(this.m_nextFreePairEdge.first,this.m_nextFreePairEdge.second),this.m_nextFreePairEdge.first=this.m_nextFreePairEdge.first.nextFreeEdge(),this.m_nextFreePairEdge.second=this.m_nextFreePairEdge.second.nextFreeEdge();else{let t=e[0]++,r=e[0]++;n=T(this.m_edges[t],this.m_edges[r])}return n.first.twin=n.second,n.second.twin=n.first,n}insertEdge(e,t,n){t.p=e.p;let r=e.a[n],i=t.a;i[n]=r,i[1-n]=e,e.a[n]=t,r.a[1-n]=t}insertPoint(e,t){let n=this.m_points[e],r=this.newPairEdgeEx(t,!1),i=r.first,a=r.second;n.edge=r.first,i.p=this.m_points[e],i.a[0]=r.first,i.a[1]=r.first,a.p=this.m_pointZero,a.a[0]=r.second,a.a[1]=r.second,this.m_points[0].edge===null&&(this.m_points[0].edge=r.second)}deleteTwinEdges(e,t){this.deleteEdge(e.first),this.deleteEdge(e.second),t&&(e.first.twin=this.m_nextFreePairEdge.first,e.second.twin=this.m_nextFreePairEdge.second,this.m_nextFreePairEdge=e)}join(e,t,n,r,i){this.insertEdge(e,i.first,n),this.insertEdge(t,i.second,r)}joinEdges2(e,t){e.a[1]=t,t.a[0]=e}checkEdge(e,t,n,r,i){for(;;){let a=T(null,null);if(a.first=this.getNextDEdge(e.first,r),a.second=a.first.twin,this.isInfinitePointFromEdge(a.second))return e;let o=this.getPointXYFromEdge(e.second),s=this.getPointXYFromEdge(a.second);if(this.inCircle(t,n,o,s)<=0)return e;if(this.deleteTwinEdges(e,i),!i){let t=this.getNextDEdge(e.second,r).twin;this.join(a.second,t,r,r,e)}e=a}}calculateCircleCenter(e,t=Number.MAX_VALUE){let n=this.getPointXYFromEdge(e),r=this.getPointXYFromEdge(e.twin),i=this.getNextDEdge(e,0);if(this.isInfinitePointFromEdge(i.twin)){let e=new l;if(Number.isNaN(t))e.setNAN();else{let i=r.sub(n);i.leftPerpendicularThis(),e.assign(i),e.divThis(Math.max(Math.abs(e.x),Math.abs(e.y))),e.normalize(),e.mulThis(t)}return e}let a=this.getPointXYFromEdge(i.twin);return this.calculateCircleCenterFromThreePoints(n,r,a)}createZeroHandle(){return this.m_points[0]}deleteEdge(e){let t=e,n=t.p;n.edge===e&&(n.edge=t.a[0]),t.a[0].a[1]=t.a[1],t.a[1].a[0]=t.a[0]}testEdge(e){if(this.isInfinitePointFromEdge(e))return!0;let t=e.twin;if(this.isInfinitePointFromEdge(t))return!0;let n=this.getNextDEdge(e,0).twin,r=this.getNextDEdge(t,0).twin;if(this.isInfinitePointFromEdge(n)||this.isInfinitePointFromEdge(r))return!0;let i=this.getPointXYFromEdge(e),a=this.getPointXYFromEdge(t),o=this.getPointXYFromEdge(n),s=this.getPointXYFromEdge(r);return this.orientation(i,a,o)<=0||0<=this.orientation(i,a,s)?!1:this.inCircle(i,a,o,s)<=0}findMaxSide(e,t){let n=[this.m_points[e].p.clone(),this.m_points[e].p.clone()];for(e++;e!==t;e++){let t=this.m_points[e].p;t.x<n[0].x&&(n[0].x=t.x),n[1].x<t.x&&(n[1].x=t.x),t.y<n[0].y&&(n[0].y=t.y),n[1].y<t.y&&(n[1].y=t.y)}return+(n[1].x-n[0].x<n[1].y-n[0].y)}findEdge(e,t,n){let r=!1,i=0;for(;;){let a=T(null,null);if(a.second=this.getNextDEdge(e[i].second,n^i),a.first=a.second.twin,n===0&&this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(a.first))<0||n===1&&0<this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(a.first)))e[i]=a,t[i]=!0,r=!1;else{if(r)return;i^=1,r=!0}}}findEdgeSide(e,t,n,r){for(;;){let i=T(null,null);if(i.second=this.getNextDEdge(e[n].second,r^n),i.first=i.second.twin,!(r===0&&this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(i.first))<0||r===1&&0<this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(i.first))))return;e[n]=i,t[n]=!0}}merge(e,t,n,r,i){let a={...e},o={...r},s={...i},c={...t},l={...n},u=c.second,d=l.second;for(;;){if(this.join(c.first,l.first,0,1,s),c.first=this.getNextDEdge(s.first,0),l.first=this.getNextDEdge(s.second,1),c.first===a.first&&l.first===o.first){this.joinEdges2(u,d),this.joinEdges2(o.second,a.second);break}c.second=c.first.twin,l.second=l.first.twin;let e=this.getPointXYFromEdge(s.first),t=this.getPointXYFromEdge(s.second);if(c.first===a.first){let n=T(null,null);n.first=this.getNextDEdge(l.first,1),n.second=n.first.twin,n=this.checkEdge(n,e,t,1,!1),E(c,s),E(s,l),l=T(n.second,n.first)}else if(l.first===o.first){let n=T(null,null);n.first=this.getNextDEdge(c.first,0),n.second=n.first.twin,n=this.checkEdge(n,e,t,0,!1),l=T(s.second,s.first),E(s,c),c=T(n.second,n.first)}else{let n=T(null,null);n.first=this.getNextDEdge(c.first,0),n.second=n.first.twin,n=this.checkEdge(n,e,t,0,!1);let r=T(null,null);r.first=this.getNextDEdge(l.first,1),r.second=r.first.twin,r=this.checkEdge(r,e,t,1,!1);let i=this.getPointXYFromEdge(n.second),a=this.getPointXYFromEdge(r.second),o=this.inCircle(e,t,i,a);o===0&&(o=this.orientation(e,t,a)),0<o?(E(c,s),E(s,l),l=T(r.second,r.first)):(l=T(s.second,s.first),E(s,c),c=T(n.second,n.first))}this.deleteTwinEdges(s,!1)}}findEdgeClockwise(e,t,n,r,i,a){for(e[0]=r;;){t[0]=e[0],++t[0]===n.length&&(t[0]=0);let r=this.orientation(i,a,this.getPointXYFromEdge(n[t[0]]));if(r<=0)return r<0;e[0]=t[0]}}findEdgeCounterClockwise(e,t,n,r,i,a){for(t[0]=r;;){e[0]=t[0]===0?n.length:t[0],e[0]--;let r=this.orientation(i,a,this.getPointXYFromEdge(n[e[0]]));if(0<=r)return 0<r;t[0]=e[0]}}constraintFindFirstEdge(e,t,n,i){let a=[];{let r=this.getEdgeFromPoint(n),o=r;do{let n=this.getTwinEdge(o);if(this.getPointFromEdge(n)===i)return e[0]=n,t[0]=o,e[0].setMask(),t[0].setMask(),!1;a.push(n),o=this.getClockwiseEdge(o)}while(o!==r)}a.length<3&&r(`add_constraint`);let o=-1;for(let e=0,t=a.length;e<t;e++)this.isInfinitePointFromEdge(a[e])&&(o!==-1&&r(`add_constraint`),o=e);let s=this.getPointXY(n),c=this.getPointXY(i),l,u;if(o!==-1)for(g(a,0,o+1,a.length),a.pop(),this.orientation(s,c,this.getPointXYFromEdge(a[0]))===0&&r(`add_constraint - point on constraint`),this.orientation(s,c,this.getPointXYFromEdge(a.at(-1)))===0&&r(`add_constraint - point on constraint`),l=0,u=a.length-1;l+1!==u;){let e=l+u>>1,t=this.orientation(s,c,this.getPointXYFromEdge(a[e]));t===0&&r(`add_constraint - point on constraint`),0<t?l=e:u=e}else{let e=0,t=this.orientation(s,c,this.getPointXYFromEdge(a[e]));if(t!==0){if(0<t){let t=[0],n=[0];this.findEdgeClockwise(t,n,a,e,s,c)||r(`add_constraint`),l=t[0],u=n[0]}else{let t=[0],n=[0];this.findEdgeCounterClockwise(t,n,a,e,s,c)||r(`add_constraint`),l=t[0],u=n[0]}}else{e++,t=this.orientation(s,c,this.getPointXYFromEdge(a[e])),t<=0&&r(`add_constraint`);let n=[0],i=[0];this.findEdgeClockwise(n,i,a,e,s,c)||r(`add_constraint`),l=n[0],u=i[0]}}return e[0]=a[l],t[0]=a[u],!0}triangulateConstraint(e,t,n,r){if(t===n)return;let i=n;for(let a=t;a!==n;++a)this.inCircle(this.getPointXYFromEdge(r.first),this.getPointXYFromEdge(r.second),this.getPointXYFromEdge(e[i]),this.getPointXYFromEdge(e[a]))<0&&(i=a);if(i!==n){let t=this.newPairEdge();this.join(r.first,e[i],1,1,t),e[i]=t.second,this.triangulateConstraint(e,i+1,n,t)}if(i!==t){let n=this.newPairEdge();this.join(e[i],r.second,1,0,n),this.triangulateConstraint(e,t,i-1,n)}}insideLine(e,t,n){return this.orientation(e,t,n)===0?t.x<e.x!=t.x<n.x||t.y<e.y!=t.y<n.y:!1}orientation(e,t,n){return l.orientationRobust(e,t,n)}inCircle(e,t,n,r){return l.inCircleRobust(e,t,n,r)}calculateCircleCenterFromThreePoints(e,t,n){return t.lt(e)&&(t=f(e,e=t)),n.lt(t)&&(n=f(t,t=n)),t.lt(e)&&(t=f(e,e=t)),l.calculateCircleCenterFromThreePoints(e,t,n)}compare(e,t){return 3*((N(e[0]<t[0])<<1)+N(e[0]>t[0]))+(N(e[1]<t[1])<<1)+N(e[1]>t[1])-1}caseFromCompare(e,t,n){return(this.compare(e,t)<<6)+(this.compare(e,n)<<3)+this.compare(t,n)}}function N(e){return+!!e}function P(e,t,n){return e[n]===t[n]?e[1-n]<t[1-n]:e[n]<t[n]}function F(e){return e&255}class I{m_numberOfSets;m_elements;m_sizes;constructor(e){this.m_numberOfSets=e,this.m_elements=Array.from({length:e},(e,t)=>t),this.m_sizes=h(e,1)}getNumberOfSets(){return this.m_numberOfSets}connected(e,t){return this.findRoot(e)===this.findRoot(t)}connect(e,t){let n=this.findRoot(e),r=this.findRoot(t);return n!==r&&(this.m_sizes[n]<this.m_sizes[r]?(this.m_sizes[r]+=this.m_sizes[n],this.m_elements[n]=r):(this.m_sizes[n]+=this.m_sizes[r],this.m_elements[r]=n),--this.m_numberOfSets,!0)}connectRange(e,t,n){if(t!==n)for(let r=t;r<n;++r)this.connect(e[t],e[r])}size(){return this.m_elements.length}size1(e){return n(0),0}findRoot(e){let t=e;if(this.m_elements[t]!==t)do this.m_elements[t]=this.m_elements[this.m_elements[t]],t=this.m_elements[t];while(this.m_elements[t]!==t);return t}}function L(){return d(NaN,d([0,0,0],[0,0,0]))}function R(e,t){if(e.first!==t.first)return e.first-t.first;let n=e.second.first,r=t.second.first;for(let e=0;e<3;++e)if(n[e]!==r[e])return n[e]-r[e];n=e.second.second,r=t.second.second;for(let e=0;e<3;++e)if(n[e]!==r[e])return n[e]-r[e];return 0}class z{getOperatorType(){return 10112}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!1}executeMany(e,t,n,r){return new B(e,t,n,r)}execute(e,t,n,r=null){let i=new B(null,t,!1,n);return i.addGeometry(e),i.buildAlphaShape(r)}}class B extends t{m_progressTracker;m_bMerge;m_alpha;m_bDone;m_multiPointForAttributes=null;m_inputGeometryCursor=null;m_index=-1;m_nDelaunayPoints=0;m_cDelaunay=new M;m_vertexDescription=null;alphaShapeConstruct(e,t){let n=e.getEdgeCount(),r=new v({vd:this.m_vertexDescription});if(!r)throw Error(`alphaShapeConstruct`);for(let i=0;i<n;++i){if(t[i]!==2)continue;let n=T(null,null);if(n.first=e.getEdge(i),n.second=e.getTwinEdge(n.first),t[e.getEdgeIndex(n.second)]!==1)continue;e.getPointXYFromEdge(n.first),r.startPath(e.getPointXYFromEdge(n.first));let a=i,o=n.second;for(;;){for(t[a]=3,o=e.getCounterClockwiseEdge(o);t[e.getEdgeIndex(o)]===1;)o=e.getCounterClockwiseEdge(o);if(o===n.first)break;r.lineTo(e.getPointXYFromEdge(o)),a=e.getEdgeIndex(o),o=e.getTwinEdge(o)}}return r}alphaShape(e,t){let n=e.getEdgeCount(),r=new Uint8Array(n);for(let i=0;i<n;++i){if(r[i]!==0)continue;let n=j(),a=e.getEdge(i);n.p[0]=e.getPointFromEdge(a);let o=e.getClockwiseEdge(e.getTwinEdge(a));n.p[1]=e.getPointFromEdge(o);let s=e.getEdgeIndex(o),c=e.getClockwiseEdge(e.getTwinEdge(o));n.p[2]=e.getPointFromEdge(c);let d=e.getEdgeIndex(c),f=1;for(let t=0;t<3;++t)if(e.isInfinitePointFromPoint(n.p[t])){f=2;break}if(f===1){let r=u(l,3);for(let t=0;t<3;++t)r[t]=e.getPointXY(n.p[t]);let i=l.sqrDistance(r[0],r[1]),a=l.sqrDistance(r[1],r[2]),o=l.sqrDistance(r[2],r[0]),s=2*r[1].sub(r[0]).crossProduct(r[2].sub(r[0]));t<i*a*o/(s*s)&&(f=2)}r[i]=r[s]=r[d]=f}return this.alphaShapeConstruct(e,r)}alphaShapeAlphaOut(e,t){let n=e.getEdgeCount(),r=new Uint8Array(n),i=[],a=new I(e.getPointCount());for(let t=0;t<n;++t){if(r[t]!==0)continue;let n=j(),a=e.getEdge(t);n.p[0]=e.getPointFromEdge(a);let o=e.getClockwiseEdge(e.getTwinEdge(a));n.p[1]=e.getPointFromEdge(o);let s=e.getEdgeIndex(o),c=e.getClockwiseEdge(e.getTwinEdge(o));n.p[2]=e.getPointFromEdge(c);let u=e.getEdgeIndex(c),d=1;for(let t=0;t<3;++t)if(e.isInfinitePointFromPoint(n.p[t])){d=2;break}if(d===1){let r=[,,,];for(let t=0;t<3;++t)r[t]=e.getPointXY(n.p[t]);let a=l.sqrDistance(r[0],r[1]),o=l.sqrDistance(r[1],r[2]),c=l.sqrDistance(r[2],r[0]),f=r[1].sub(r[0]).crossProduct(r[2].sub(r[0])),p=L();p.first=a*o*c/(f*f),p.second.first[0]=t,p.second.first[1]=s,p.second.first[2]=u,p.second.second[0]=e.getPointIndex(n.p[0]),p.second.second[1]=e.getPointIndex(n.p[1]),p.second.second[2]=e.getPointIndex(n.p[2]),i.push(p),d=2}r[t]=r[s]=r[u]=d}i.sort((e,t)=>R(e,t));let o=0;for(let e of i){if(a.getNumberOfSets()===1&&e.first!==o)break;r[e.second.first[0]]=r[e.second.first[1]]=r[e.second.first[2]]=1;let t=[e.second.second[0],e.second.second[1],e.second.second[2]];a.connectRange(t,0,3),o=e.first}return t&&(t[0]=.25*o),this.alphaShapeConstruct(e,r)}constructor(e,t,n,r){super(),this.m_progressTracker=r,this.m_alpha=Number.isNaN(t)||!Number.isFinite(t)||t<0?-1:t<Number.MIN_VALUE?0:t,this.m_bMerge=n,this.m_bDone=!1,this.m_inputGeometryCursor=e,this.prepareDelaunay()}prepareDelaunay(){this.m_nDelaunayPoints=0,this.m_cDelaunay.clear(),this.m_alpha!==0&&this.m_cDelaunay.prepare(m())}next(){if(this.m_bMerge){if(!this.m_bDone){let e=this.calculateAlphaShapeMerging(this.m_inputGeometryCursor,this.m_progressTracker);return this.m_bDone=!0,e}return null}if(!this.m_bDone){let e=this.m_inputGeometryCursor.next();if(e!==null)return i(e),a(e),this.m_index=this.m_inputGeometryCursor.getGeometryID(),this.calculateAlphaShape(e,this.m_progressTracker);this.m_bDone=!0}return null}tock(){return!0}getRank(){return 1}getGeometryID(){return this.m_index}calculateAlphaShapeMerging(e,t){let n;for(;n=e.next();)i(n),a(n),this.addGeometry(n);return this.buildAlphaShape()}calculateAlphaShape(e,t){return e.isEmpty()?new v({vd:e.getDescription()}):(this.prepareDelaunay(),this.addGeometry(e),this.buildAlphaShape())}buildAlphaShape(e=null){if(e&&(e[0]=this.m_alpha),this.m_alpha===0)return this.m_vertexDescription?new v({vd:this.m_vertexDescription}):new v;if(this.m_cDelaunay.removeDuplicates())for(let e=0,t=this.m_cDelaunay.getPointCount();e<t;++e)this.m_cDelaunay.setPointIndex(this.m_cDelaunay.getPoint(e),e);return this.m_cDelaunay.construct()?this.m_alpha<0?this.alphaShapeAlphaOut(this.m_cDelaunay,e):this.alphaShape(this.m_cDelaunay,this.m_alpha):this.m_vertexDescription?new v({vd:this.m_vertexDescription}):new v}addGeometry(e){if(i(e),a(e),this.m_alpha===0||((!this.m_vertexDescription||!this.m_bMerge)&&(this.m_vertexDescription=e.getDescription(),this.m_multiPointForAttributes=this.m_vertexDescription.getAttributeCount()>1?new y({vd:this.m_vertexDescription}):null),e.isEmpty()))return;let t=e.getGeometryType();if(o(t)){let t=e,n=new l;for(let e=0,r=t.getPointCount();e<r;e++)t.queryXY(e,n),this.m_cDelaunay.addVertex(n,this.m_nDelaunayPoints++);this.m_multiPointForAttributes&&this.m_multiPointForAttributes.addPoints(t,0,-1)}else if(t===s.enumPoint){let t=e,n=t.getXY();this.m_cDelaunay.addVertex(n,this.m_nDelaunayPoints++),this.m_multiPointForAttributes&&this.m_multiPointForAttributes.add(t)}else r(`bad geometry type`)}}const V=new z;function H(e,t,n){return V.execute(e,t,null,n)}function U(t,n,r){let i=V.executeMany(new e(t),n,r,null);return Array.from(i)}function W(){return V.supportsCurves()}export{H as execute,U as executeMany,W as supportsCurves};
|
|
2
|
+
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{g as n,b as r,p as i,t as a,i as o,G as s}from"../../../chunks/Geometry.js";import{v as c,P as l,d as u,o as d,s as f,w as p,i as m,c as h}from"../../../chunks/Point2D.js";import{r as g,h as _,P as v,M as y}from"../../../chunks/MultiPathImpl.js";function b(e,t,n,r,i,a){let o=r-t;if(o<=a)return _(e,t,n,r,i),n;let s=S(e,t,r,i,Math.min(Math.max(o>>1,3),100)),c=e[s];e[t]=f(e[s],e[s]=e[t]);let l=t+1,u=!1;for(let n=t+1;n!==r;++n)i(e[n],c)&&(e[l]=f(e[n],e[n]=e[l]),++l,u=!0);if(!u)for(let r=t+1;r<n;++r)i(c,e[r])||(r!==l&&(e[l]=f(e[r],e[r]=e[l])),++l);return--l,e[l]=f(e[t],e[t]=e[l]),l}function x(e,t,n){let r=Math.trunc(t/2),i=BigInt(r),a=BigInt(t);for(let t=0;t<n;++t)e.push(Number(i%a)),i=6364136223846793005n*i+1442695040888963407n&9223372036854775807n,i=BigInt.asUintN(64,i);p(e),e.length=c(e,(e,t)=>e===t)}function S(e,t,n,r,i){let a=[];x(a,n-t,i);let o=[];for(let n=0,r=a.length;n<r;n++){let r=a[n];o.push(d(e[t+r],r))}let s=Math.trunc(o.length/2);return o.sort((e,t)=>r(e.first,t.first)?-1:1),t+o[s].second}function C(){return{p:new l,userData:NaN,edge:null}}class w{info=0;mask=!1;p=null;a=[null,null];twin=null;nextFreeEdge(){return this.twin}setIndex(e){this.info=e,this.mask=!1}getIndex(){return this.info}setMask(){this.mask=!0}getMask(){return this.mask}}function T(e,t){return{first:e,second:t}}function E(e,t){e.first=t.first,e.second=t.second}function D(){return this.i1-this.i0}function O(){return{i0:NaN,i1:NaN,nextFreeEdgeIndex:[-1],box:[T(null,null),T(null,null)],size:D}}function k(){return{k:0,pTask:null,pTask0:null,pTask1:null}}function A(){return{p:[new l,new l],points:[null,null]}}function j(){return{p:[null,null,null]}}class M{m_nextFreePairEdge=T(null,null);m_points=[];m_pointZero=null;m_edges=[];m_voronoiToEdge=[];m_nextFreeEdge=0;clear(){this.m_nextFreePairEdge=T(null,null),this.m_points.length=0,this.m_pointZero=null,this.m_edges.length=0,this.m_voronoiToEdge.length=0,this.m_nextFreeEdge=0}reservePoints(e){n(e>1)}prepare(e){{let t=C();t.p.x=1/0,t.p.y=1/0,t.userData=e,this.m_points.push(t)}}addVertex(e,t){let n=C();n.p.assign(e),n.userData=t,n.edge=null,this.m_points.push(n)}removeDuplicates(){let e=this.m_points.shift();this.m_points.sort((e,t)=>e.p.compareX(t.p));let t=c(this.m_points,(e,t)=>e.p.equals(t.p)),n=t!==this.m_points.length;return this.m_points.length=t,this.m_points.unshift(e),n}boundVoronoiCells(e,t){let n=this.m_points.length;if(n<2)return!1;let r=[this.m_points[1].p.clone(),this.m_points[1].p.clone()];for(let e=2;e<n;e++){let t=this.m_points[e].p;t.x<r[0].x&&(r[0].x=t.x),r[1].x<t.x&&(r[1].x=t.x),t.y<r[0].y&&(r[0].y=t.y),r[1].y<t.y&&(r[1].y=t.y)}let i=new l;i.x=.5*(r[0].x+r[1].x),i.y=.5*(r[0].y+r[1].y);let a=0;for(let e=1;e<n;e++){let t=this.m_points[e].p,n=l.sqrDistanceCoords(t.x,t.y,i.x,i.y);a<n&&(a=n)}let o=Math.sqrt(a),s=Math.max(o+2*e,1.5*o);{let e=.8660254037844386,n=.5,r=1,a=0;for(let o=0;o<12;o++){let o=new l;o.x=i.x+s*r,o.y=i.y+s*a,this.addVertex(o,t);let c=r*e-a*n,u=r*n+a*e;r=c,a=u}}return!0}construct(){let e=O();return this.constructTask(e)?(this.solveTask(e),!0):!1}constructTask(e){if(this.m_pointZero=this.createZeroHandle(),n(this.m_pointZero!==void 0),this.m_points.length<3)return!1;let t=6*(this.m_points.length-2);this.m_edges=u(w,t);for(let e=0;e<t;e++)this.m_edges[e].setIndex(e);return e.i0=1,e.i1=this.m_points.length,e.nextFreeEdgeIndex[0]=0,!0}splitTask(e,t,n,r){let i=e,a=t,o=n,s=r;i.k=this.findMaxSide(s.i0,s.i1);let c=s.i0+s.i1>>1,l=1250;c=i.k===0?b(this.m_points,s.i0,c,s.i1,(e,t)=>e.p[0]===t.p[0]?e.p[1]<t.p[1]:e.p[0]<t.p[0],l):b(this.m_points,s.i0,c,s.i1,(e,t)=>e.p[1]===t.p[1]?e.p[0]<t.p[0]:e.p[1]<t.p[1],l),a.i0=s.i0,a.i1=c,a.nextFreeEdgeIndex[0]=s.nextFreeEdgeIndex[0],s.nextFreeEdgeIndex[0]+=6*(a.i1-a.i0-1)+2,o.i0=c,o.i1=s.i1,o.nextFreeEdgeIndex[0]=s.nextFreeEdgeIndex[0],s.nextFreeEdgeIndex[0]+=6*(o.i1-o.i0-1)+2,i.pTask=s,i.pTask0=a,i.pTask1=o}solveMergeTask(e){let t=this.newPairEdgeEx(e.pTask.nextFreeEdgeIndex,!1);if(e.pTask.box[e.k]=T(e.pTask0.box[e.k].first,e.pTask1.box[e.k].second),e.pTask.box[1-e.k]=T(P(this.getPointXYFromEdge(e.pTask0.box[1-e.k].first),this.getPointXYFromEdge(e.pTask1.box[1-e.k].first),1-e.k)?e.pTask0.box[1-e.k].first:e.pTask1.box[1-e.k].first,P(this.getPointXYFromEdge(e.pTask0.box[1-e.k].second),this.getPointXYFromEdge(e.pTask1.box[1-e.k].second),1-e.k)?e.pTask1.box[1-e.k].second:e.pTask0.box[1-e.k].second),e.pTask.i0+2===e.pTask.i1){let n=e.pTask0.box[e.k].second,r=n.twin,i=e.pTask1.box[e.k].first,a=i.twin;this.joinEdges2(r,a),this.joinEdges2(a,r),this.join(n,i,0,1,t);return}let n=[[,,],[,,]];n[0][0]=n[1][0]=T(e.pTask0.box[e.k].second,e.pTask0.box[e.k].second.twin),n[0][1]=n[1][1]=T(e.pTask1.box[e.k].first,e.pTask1.box[e.k].first.twin);let r=[!1,!1];if(e.pTask0.i0+1===e.pTask0.i1?(this.findEdgeSide(n[0],r,1,0),this.findEdgeSide(n[1],r,1,1)):(this.findEdge(n[0],r,0),this.findEdge(n[1],r,1)),!r[0]&&!r[1])this.getNextDEdge(n[0][0].first,0)!==n[0][0].first&&(n[1][0]=this.newPairEdgeEx(e.pTask0.nextFreeEdgeIndex,!1),this.insertEdge(n[0][0].first,n[1][0].first,0),this.insertEdge(n[0][0].second,n[1][0].second,1)),this.getNextDEdge(n[0][1].first,0)!==n[0][1].first&&(n[1][1]=this.newPairEdgeEx(e.pTask1.nextFreeEdgeIndex,!1),this.insertEdge(n[0][1].first,n[1][1].first,1),this.insertEdge(n[0][1].second,n[1][1].second,0));else{if(r[0]){let t=this.newPairEdgeEx(e.pTask0.nextFreeEdgeIndex,!1);this.insertEdge(n[0][0].first,t.first,0),this.insertEdge(n[0][0].second,t.second,1)}if(r[1]){let t=this.newPairEdgeEx(e.pTask1.nextFreeEdgeIndex,!1);this.insertEdge(n[0][1].first,t.first,1),this.insertEdge(n[0][1].second,t.second,0)}}this.merge(n[1][0],n[0][0],n[0][1],n[1][1],t)}static c_aTableDelaunayTriangulationSolution=Uint8Array.from([41,74,0,0,0,0,0,0,0,206,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,33,33,65,0,0,0,0,0,0,0,193,0,0,0,0,0,0,0,0,0,0,214,0,0,0,0,0,86,54,86,0,0,0,0,0,0,0,214,173,0,0,0,0,0,0,0,107,239,0,0,0,0,0,0,0,0,0,181,0,0,0,0,0,0,0,181,0,0,0,0,0,0,117,117,245,0,0,0,0,0,0,0,0,0,103,0,0,0,0,0,0,0,167,0,0,0,0,0,0,231,103,231,0,0,0,0,0,0,50,0,0,0,0,0,0,0,0,198,0,0,41,0,0,74,0,0,49,0,0,49,0,0,50,0,0,194,0,0,193,0,0,194,0,0,0,0,0,206,0,0,0,0,0,0,0,0,54,0,0,0,0,0,0,0,0,198,0,0,0,0,0,82,50,82,0,0,0,0,0,0,0,198,0,66,0,0,65,0,0,66,49,66,33,57,65,82,50,90,0,194,0,0,193,0,0,194,0,0,0,0,0,0,0,214,0,0,0,0,0,86,54,86,0,0,0,0,0,0,0,222,0,0,0,0,0,0,178,0,0,0,0,0,0,230,102,230,177,0,0,177,0,0,178,0,177,0,0,177,0,0,178,0,113,226,113,113,249,226,122,226,0,0,0,0,0,0,102,0,0,0,0,0,0,0,190,0,0,0,0,0,0,230,102,230,0,0,0,165,0,0,0,0,0,0,0,0,243,0,0,0,0,0,173,0,0,0,0,0,0,0,0,165,0,0,0,0,0,0,0,0,245,0,0,0,0,0,107,0,0,239,0,0,163,0,0,163,0,0,167,0,0,247,0,0,243,0,0,247,0,0,37,37,69,0,0,0,0,0,0,0,211,0,0,0,0,0,0,0,69,0,0,0,0,0,37,37,69,0,0,0,0,0,0,0,221,0,0,0,0,215,0,0,211,0,0,215,35,87,35,35,91,87,63,87,0,215,0,0,211,0,0,215,0,0,0,165,0,0,0,0,0,0,115,115,243,0,0,0,0,0,0,181,0,0,0,0,0,0,0,189,0,0,0,0,0,0,117,117,245,0,0,0,99,0,0,99,0,0,103,0,163,0,0,163,0,0,167,0,99,247,115,123,243,231,103,255]);solveTask(e){let t=e;switch(t.i1-t.i0){case 1:{this.insertPoint(t.i0,t.nextFreeEdgeIndex);let e=this.m_points[t.i0].edge;t.box[0]=t.box[1]=d(e,e)}break;case 2:{let e=t.i0,n=e+1;this.insertPoint(e,t.nextFreeEdgeIndex),this.insertPoint(n,t.nextFreeEdgeIndex);let r=this.m_points[e],i=this.m_points[n],a=r.edge,o=i.edge,s=a.twin,c=o.twin;this.joinEdges2(s,c),this.joinEdges2(c,s);let l=this.newPairEdgeEx(t.nextFreeEdgeIndex,!1);this.join(a,o,0,1,l);for(let e=0;e<2;e++)t.box[e]=P(this.getPointXY(r),this.getPointXY(i),e)?T(a,o):T(o,a)}break;case 3:{let e=[t.i0,t.i0+1,t.i0+2];this.insertPoint(e[0],t.nextFreeEdgeIndex),this.insertPoint(e[1],t.nextFreeEdgeIndex),this.insertPoint(e[2],t.nextFreeEdgeIndex);let n=[this.m_points[e[0]],this.m_points[e[1]],this.m_points[e[2]]],r=this.caseFromCompare(n[0].p,n[1].p,n[2].p),i=[n[0].edge,n[1].edge,n[2].edge],a=M.c_aTableDelaunayTriangulationSolution[r],o=F(19*F((a&7)+1)),s=F(19*F((a>>5)+1)),c=F(a<<3)>>6,l=o&3,u=o>>6,d=s&3,p=s>>6;t.box[0]=T(i[l],i[u]),t.box[1]=T(i[d],i[p]);let m=[i[0].twin,i[1].twin,i[2].twin],h=[this.newPairEdgeEx(t.nextFreeEdgeIndex,!1),this.newPairEdgeEx(t.nextFreeEdgeIndex,!1),this.newPairEdgeEx(t.nextFreeEdgeIndex,!1)];switch(c===3&&(c=this.orientation(n[0].p,n[1].p,n[2].p)+1),c){case 0:this.joinEdges2(m[0],m[2]),this.joinEdges2(m[2],m[1]),this.joinEdges2(m[1],m[0]),this.join(i[0],i[2],0,1,h[0]),this.join(i[2],i[1],0,1,h[1]),this.join(i[1],i[0],0,1,h[2]);break;case 1:{let e=[0,1,2];e[3-(l+u)]=f(e[1],e[1]=e[3-(l+u)]),this.joinEdges2(m[e[0]],m[e[1]]),this.joinEdges2(m[e[1]],m[e[2]]),this.joinEdges2(m[e[2]],m[e[0]]),this.join(i[e[0]],i[e[1]],0,1,h[0]),this.join(i[e[1]],i[e[2]],0,1,h[1]),this.join(h[1].first,m[e[2]],0,1,h[2])}break;case 2:this.joinEdges2(m[0],m[1]),this.joinEdges2(m[1],m[2]),this.joinEdges2(m[2],m[0]),this.join(i[0],i[1],0,1,h[0]),this.join(i[1],i[2],0,1,h[1]),this.join(i[2],i[0],0,1,h[2])}}break;default:{let t=k(),n=O(),r=O();this.splitTask(t,n,r,e),this.solveTask(n),this.solveTask(r),this.solveMergeTask(t)}}}getOutsideHull(){let e=[],t=this.m_points[0].edge,n=t;do e.push(this.getPointFromEdge(this.getTwinEdge(n))),n=this.getNextDEdge(n,0);while(n!==t);return e}getConvexHull(){let e=[],t=this.m_points[0].edge,n=t;do{let t=this.getPointFromEdge(this.getTwinEdge(n));e.length<2||!this.insideLine(this.getPointXY(e.at(-2)),this.getPointXY(e.at(-1)),this.getPointXY(t))?e.push(t):e[e.length-1]=t,n=this.getNextDEdge(n,0)}while(n!==t);return 2<e.length&&this.insideLine(this.getPointXY(e[0]),this.getPointXY(e.at(-1)),this.getPointXY(e.at(-2)))&&e.pop(),2<e.length&&this.insideLine(this.getPointXY(e[1]),this.getPointXY(e[0]),this.getPointXY(e.at(-1)))&&(e[0]=e.at(-1),e.pop()),e}getVoronoiPolygon(e,t){e.length=0;let n=this.getEdgeFromPoint(t),r=n;for(;;){let t=this.calculateCircleCenter(r);e.push(t);let i=this.getNextDEdge(r,1);if(i===n)break;r=i}}getNearestPoint(e){this.isInfinitePointFromPoint(e)&&r(`Not supported for the infinite point`);let t=this.getPointXY(e),n=this.m_pointZero,i=Number.MAX_VALUE,a=this.getEdgeFromPoint(e),o=a;do{let e=this.getPointFromEdge(this.getTwinEdge(o));if(!this.isInfinitePointFromPoint(e)){let r=l.sqrDistance(t,this.getPointXY(e));r<i&&(n=e,i=r)}o=this.getCounterClockwiseEdge(o)}while(o!==a);return n}addConstraint(e,t){let n=[null],i=[null];if(!this.constraintFindFirstEdge(n,i,e,t))return T(i[0],n[0]);n[0]=this.getTwinEdge(n[0]);let a=this.getPointXY(e),o=this.getPointXY(t),s=[[],[]],c=n[0];for(;;){let e=this.getClockwiseEdge(i[0]);e.getMask()&&r(`add_constraint`);let c=T(e,this.getTwinEdge(e));this.deleteTwinEdges(c,!0);let l=this.getCounterClockwiseEdge(this.getTwinEdge(n[0])),u=this.getTwinEdge(this.getClockwiseEdge(i[0])),d=this.getPointFromEdge(u);if(d===t){s[0].push(n[0]),n[0]=l,s[1].push(i[0]),i[0]=u;break}let f=this.orientation(a,o,this.getPointXY(d));f===0&&r(`add_constraint - point on constraint`),0<f?(s[0].push(n[0]),n[0]=l):(s[1].push(i[0]),i[0]=u)}s[0].push(n[0]),s[1].push(i[0]);let l=this.newPairEdge();l.first.setMask(),l.second.setMask(),this.join(i[0],c,1,1,l),this.triangulateConstraint(s[0],1,s[0].length-1,l),s[1].reverse();let u=T(l.second,l.first);return this.triangulateConstraint(s[1],1,s[1].length-1,u),u}verify(){for(let e=0,t=this.m_edges.length;e<t;e++){let t=this.m_edges[e];if(!t.getMask()&&!this.testEdge(t))return!1}return!0}getDelaunayTriangleCount(){return this.m_points.length-2<<1}getVoronoiSegments(e=Number.MAX_VALUE){let t=[];for(let n=0,r=this.m_edges.length;n<r;n+=2){let r=T(null,null);if(r.first=this.m_edges[n],r.second=r.first.twin,this.isInfinitePointFromEdge(r.first)&&(r.second=f(r.first,r.first=r.second)),this.isInfinitePointFromEdge(r.second)){let n=u(l,3);n[0]=this.calculateCircleCenter(this.getNextDEdge(r.first,0).twin,1),n[2]=this.calculateCircleCenter(this.getNextDEdge(r.first,1),1);let i=u(l,2);i[0].assign(n[0]),i[1].assign(n[2]),i[0].rightPerpendicularThis(),i[1].leftPerpendicularThis(),n[1]=n[0].add(i[0]).add(n[2].add(i[1])),n[1].normalize();for(let t of n)t.mulThis(e);let a=A();a.points[0]=r.first.p,a.points[1]=r.second.p;for(let e=0;e<n.length-1;e++){for(let t=0;t<2;t++)a.p[t]=n[e+t];a.p[0].equals(a.p[1])||t.push(a)}}else if(this.isInfinitePointFromEdge(this.getNextDEdge(r.first,0).twin)&&this.isInfinitePointFromEdge(this.getNextDEdge(r.first,1).twin)){let e=u(l,3);e[0]=this.calculateCircleCenter(r.first),e[1]=this.getPointXY(this.getPointFromEdge(r.first)).add(this.getPointXY(this.getPointFromEdge(r.second))).mul(.5),e[2]=this.calculateCircleCenter(r.second);let n=A();n.points[0]=r.first.p,n.points[1]=r.second.p;for(let r=0;r<e.length-1;r++){for(let t=0;t<2;t++)n.p[t]=e[r+t];n.p[0].equals(n.p[1])||t.push(n)}}else{let e=A();e.p[0]=this.calculateCircleCenter(r.first),e.p[1]=this.calculateCircleCenter(r.second),e.points[0]=r.first.p,e.points[1]=r.second.p,e.p[0].equals(e.p[1])||t.push(e)}}return t}startDelaunayTriangles(){return-1}nextDelaunayTriangle(e,t){for(;;){if(++t[0],t[0]===this.m_edges.length)return!1;let n=this.m_edges[t[0]];if(e.p[0]=this.getPointFromEdge(n),this.isInfinitePointFromPoint(e.p[0]))continue;let r=this.getTwinEdge(n);if(e.p[1]=this.getPointFromEdge(r),this.isInfinitePointFromPoint(e.p[1])||this.getPointXY(e.p[1]).lt(this.getPointXY(e.p[0])))continue;let i=this.getTwinEdge(this.getNextDEdge(n,1));if(e.p[2]=this.getPointFromEdge(i),!this.isInfinitePointFromPoint(e.p[2])&&!this.getPointXY(e.p[2]).lt(this.getPointXY(e.p[0])))return!0}}getPointCount(){return this.m_points.length-1}getPoint(e){return this.m_points[e+1]}getInfinitePoint(){return this.m_pointZero}isInfinitePointFromPoint(e){return e===this.m_pointZero}getPointXY(e){return e.p}getPointIndex(e){return e.userData}setPointIndex(e,t){e.userData=t}getEdgeFromPoint(e){return e.edge}isInfinitePointFromEdge(e){return e.p===this.m_pointZero}getEdgeCount(){return this.m_edges.length}getEdge(e){return this.m_edges[e]}getEdgeIndex(e){return e.getIndex()}getPointFromEdge(e){return e.p}getPointXYFromEdge(e){return e.p.p}getCounterClockwiseEdge(e){return e.a[0]}getClockwiseEdge(e){return e.a[1]}getTwinEdge(e){return e.twin}getPreviousEdge(e){return this.getTwinEdge(this.getCounterClockwiseEdge(e))}getNextEdge(e){return this.getClockwiseEdge(this.getTwinEdge(e))}getNextDEdge(e,t=1){return e.a[t]}newPairEdge(){let e=T(this.m_nextFreePairEdge.first,this.m_nextFreePairEdge.second);return this.m_nextFreePairEdge.first=this.m_nextFreePairEdge.first.nextFreeEdge(),this.m_nextFreePairEdge.second=this.m_nextFreePairEdge.second.nextFreeEdge(),e.first.twin=e.second,e.second.twin=e.first,e}newPairEdgeEx(e,t){let n;if(t&&this.m_nextFreePairEdge.first!==null)n=T(this.m_nextFreePairEdge.first,this.m_nextFreePairEdge.second),this.m_nextFreePairEdge.first=this.m_nextFreePairEdge.first.nextFreeEdge(),this.m_nextFreePairEdge.second=this.m_nextFreePairEdge.second.nextFreeEdge();else{let t=e[0]++,r=e[0]++;n=T(this.m_edges[t],this.m_edges[r])}return n.first.twin=n.second,n.second.twin=n.first,n}insertEdge(e,t,n){t.p=e.p;let r=e.a[n],i=t.a;i[n]=r,i[1-n]=e,e.a[n]=t,r.a[1-n]=t}insertPoint(e,t){let n=this.m_points[e],r=this.newPairEdgeEx(t,!1),i=r.first,a=r.second;n.edge=r.first,i.p=this.m_points[e],i.a[0]=r.first,i.a[1]=r.first,a.p=this.m_pointZero,a.a[0]=r.second,a.a[1]=r.second,this.m_points[0].edge===null&&(this.m_points[0].edge=r.second)}deleteTwinEdges(e,t){this.deleteEdge(e.first),this.deleteEdge(e.second),t&&(e.first.twin=this.m_nextFreePairEdge.first,e.second.twin=this.m_nextFreePairEdge.second,this.m_nextFreePairEdge=e)}join(e,t,n,r,i){this.insertEdge(e,i.first,n),this.insertEdge(t,i.second,r)}joinEdges2(e,t){e.a[1]=t,t.a[0]=e}checkEdge(e,t,n,r,i){for(;;){let a=T(null,null);if(a.first=this.getNextDEdge(e.first,r),a.second=a.first.twin,this.isInfinitePointFromEdge(a.second))return e;let o=this.getPointXYFromEdge(e.second),s=this.getPointXYFromEdge(a.second);if(this.inCircle(t,n,o,s)<=0)return e;if(this.deleteTwinEdges(e,i),!i){let t=this.getNextDEdge(e.second,r).twin;this.join(a.second,t,r,r,e)}e=a}}calculateCircleCenter(e,t=Number.MAX_VALUE){let n=this.getPointXYFromEdge(e),r=this.getPointXYFromEdge(e.twin),i=this.getNextDEdge(e,0);if(this.isInfinitePointFromEdge(i.twin)){let e=new l;if(Number.isNaN(t))e.setNAN();else{let i=r.sub(n);i.leftPerpendicularThis(),e.assign(i),e.divThis(Math.max(Math.abs(e.x),Math.abs(e.y))),e.normalize(),e.mulThis(t)}return e}let a=this.getPointXYFromEdge(i.twin);return this.calculateCircleCenterFromThreePoints(n,r,a)}createZeroHandle(){return this.m_points[0]}deleteEdge(e){let t=e,n=t.p;n.edge===e&&(n.edge=t.a[0]),t.a[0].a[1]=t.a[1],t.a[1].a[0]=t.a[0]}testEdge(e){if(this.isInfinitePointFromEdge(e))return!0;let t=e.twin;if(this.isInfinitePointFromEdge(t))return!0;let n=this.getNextDEdge(e,0).twin,r=this.getNextDEdge(t,0).twin;if(this.isInfinitePointFromEdge(n)||this.isInfinitePointFromEdge(r))return!0;let i=this.getPointXYFromEdge(e),a=this.getPointXYFromEdge(t),o=this.getPointXYFromEdge(n),s=this.getPointXYFromEdge(r);return this.orientation(i,a,o)<=0||0<=this.orientation(i,a,s)?!1:this.inCircle(i,a,o,s)<=0}findMaxSide(e,t){let n=[this.m_points[e].p.clone(),this.m_points[e].p.clone()];for(e++;e!==t;e++){let t=this.m_points[e].p;t.x<n[0].x&&(n[0].x=t.x),n[1].x<t.x&&(n[1].x=t.x),t.y<n[0].y&&(n[0].y=t.y),n[1].y<t.y&&(n[1].y=t.y)}return+(n[1].x-n[0].x<n[1].y-n[0].y)}findEdge(e,t,n){let r=!1,i=0;for(;;){let a=T(null,null);if(a.second=this.getNextDEdge(e[i].second,n^i),a.first=a.second.twin,n===0&&this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(a.first))<0||n===1&&0<this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(a.first)))e[i]=a,t[i]=!0,r=!1;else{if(r)return;i^=1,r=!0}}}findEdgeSide(e,t,n,r){for(;;){let i=T(null,null);if(i.second=this.getNextDEdge(e[n].second,r^n),i.first=i.second.twin,!(r===0&&this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(i.first))<0||r===1&&0<this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(i.first))))return;e[n]=i,t[n]=!0}}merge(e,t,n,r,i){let a={...e},o={...r},s={...i},c={...t},l={...n},u=c.second,d=l.second;for(;;){if(this.join(c.first,l.first,0,1,s),c.first=this.getNextDEdge(s.first,0),l.first=this.getNextDEdge(s.second,1),c.first===a.first&&l.first===o.first){this.joinEdges2(u,d),this.joinEdges2(o.second,a.second);break}c.second=c.first.twin,l.second=l.first.twin;let e=this.getPointXYFromEdge(s.first),t=this.getPointXYFromEdge(s.second);if(c.first===a.first){let n=T(null,null);n.first=this.getNextDEdge(l.first,1),n.second=n.first.twin,n=this.checkEdge(n,e,t,1,!1),E(c,s),E(s,l),l=T(n.second,n.first)}else if(l.first===o.first){let n=T(null,null);n.first=this.getNextDEdge(c.first,0),n.second=n.first.twin,n=this.checkEdge(n,e,t,0,!1),l=T(s.second,s.first),E(s,c),c=T(n.second,n.first)}else{let n=T(null,null);n.first=this.getNextDEdge(c.first,0),n.second=n.first.twin,n=this.checkEdge(n,e,t,0,!1);let r=T(null,null);r.first=this.getNextDEdge(l.first,1),r.second=r.first.twin,r=this.checkEdge(r,e,t,1,!1);let i=this.getPointXYFromEdge(n.second),a=this.getPointXYFromEdge(r.second),o=this.inCircle(e,t,i,a);o===0&&(o=this.orientation(e,t,a)),0<o?(E(c,s),E(s,l),l=T(r.second,r.first)):(l=T(s.second,s.first),E(s,c),c=T(n.second,n.first))}this.deleteTwinEdges(s,!1)}}findEdgeClockwise(e,t,n,r,i,a){for(e[0]=r;;){t[0]=e[0],++t[0]===n.length&&(t[0]=0);let r=this.orientation(i,a,this.getPointXYFromEdge(n[t[0]]));if(r<=0)return r<0;e[0]=t[0]}}findEdgeCounterClockwise(e,t,n,r,i,a){for(t[0]=r;;){e[0]=t[0]===0?n.length:t[0],e[0]--;let r=this.orientation(i,a,this.getPointXYFromEdge(n[e[0]]));if(0<=r)return 0<r;t[0]=e[0]}}constraintFindFirstEdge(e,t,n,i){let a=[];{let r=this.getEdgeFromPoint(n),o=r;do{let n=this.getTwinEdge(o);if(this.getPointFromEdge(n)===i)return e[0]=n,t[0]=o,e[0].setMask(),t[0].setMask(),!1;a.push(n),o=this.getClockwiseEdge(o)}while(o!==r)}a.length<3&&r(`add_constraint`);let o=-1;for(let e=0,t=a.length;e<t;e++)this.isInfinitePointFromEdge(a[e])&&(o!==-1&&r(`add_constraint`),o=e);let s=this.getPointXY(n),c=this.getPointXY(i),l,u;if(o!==-1)for(g(a,0,o+1,a.length),a.pop(),this.orientation(s,c,this.getPointXYFromEdge(a[0]))===0&&r(`add_constraint - point on constraint`),this.orientation(s,c,this.getPointXYFromEdge(a.at(-1)))===0&&r(`add_constraint - point on constraint`),l=0,u=a.length-1;l+1!==u;){let e=l+u>>1,t=this.orientation(s,c,this.getPointXYFromEdge(a[e]));t===0&&r(`add_constraint - point on constraint`),0<t?l=e:u=e}else{let e=0,t=this.orientation(s,c,this.getPointXYFromEdge(a[e]));if(t!==0){if(0<t){let t=[0],n=[0];this.findEdgeClockwise(t,n,a,e,s,c)||r(`add_constraint`),l=t[0],u=n[0]}else{let t=[0],n=[0];this.findEdgeCounterClockwise(t,n,a,e,s,c)||r(`add_constraint`),l=t[0],u=n[0]}}else{e++,t=this.orientation(s,c,this.getPointXYFromEdge(a[e])),t<=0&&r(`add_constraint`);let n=[0],i=[0];this.findEdgeClockwise(n,i,a,e,s,c)||r(`add_constraint`),l=n[0],u=i[0]}}return e[0]=a[l],t[0]=a[u],!0}triangulateConstraint(e,t,n,r){if(t===n)return;let i=n;for(let a=t;a!==n;++a)this.inCircle(this.getPointXYFromEdge(r.first),this.getPointXYFromEdge(r.second),this.getPointXYFromEdge(e[i]),this.getPointXYFromEdge(e[a]))<0&&(i=a);if(i!==n){let t=this.newPairEdge();this.join(r.first,e[i],1,1,t),e[i]=t.second,this.triangulateConstraint(e,i+1,n,t)}if(i!==t){let n=this.newPairEdge();this.join(e[i],r.second,1,0,n),this.triangulateConstraint(e,t,i-1,n)}}insideLine(e,t,n){return this.orientation(e,t,n)===0?t.x<e.x!=t.x<n.x||t.y<e.y!=t.y<n.y:!1}orientation(e,t,n){return l.orientationRobust(e,t,n)}inCircle(e,t,n,r){return l.inCircleRobust(e,t,n,r)}calculateCircleCenterFromThreePoints(e,t,n){return t.lt(e)&&(t=f(e,e=t)),n.lt(t)&&(n=f(t,t=n)),t.lt(e)&&(t=f(e,e=t)),l.calculateCircleCenterFromThreePoints(e,t,n)}compare(e,t){return 3*((N(e[0]<t[0])<<1)+N(e[0]>t[0]))+(N(e[1]<t[1])<<1)+N(e[1]>t[1])-1}caseFromCompare(e,t,n){return(this.compare(e,t)<<6)+(this.compare(e,n)<<3)+this.compare(t,n)}}function N(e){return+!!e}function P(e,t,n){return e[n]===t[n]?e[1-n]<t[1-n]:e[n]<t[n]}function F(e){return e&255}class I{m_numberOfSets;m_elements;m_sizes;constructor(e){this.m_numberOfSets=e,this.m_elements=Array.from({length:e},(e,t)=>t),this.m_sizes=h(e,1)}getNumberOfSets(){return this.m_numberOfSets}connected(e,t){return this.findRoot(e)===this.findRoot(t)}connect(e,t){let n=this.findRoot(e),r=this.findRoot(t);return n!==r&&(this.m_sizes[n]<this.m_sizes[r]?(this.m_sizes[r]+=this.m_sizes[n],this.m_elements[n]=r):(this.m_sizes[n]+=this.m_sizes[r],this.m_elements[r]=n),--this.m_numberOfSets,!0)}connectRange(e,t,n){if(t!==n)for(let r=t;r<n;++r)this.connect(e[t],e[r])}size(){return this.m_elements.length}size1(e){return n(0),0}findRoot(e){let t=e;if(this.m_elements[t]!==t)do this.m_elements[t]=this.m_elements[this.m_elements[t]],t=this.m_elements[t];while(this.m_elements[t]!==t);return t}}function L(){return d(NaN,d([0,0,0],[0,0,0]))}function R(e,t){if(e.first!==t.first)return e.first-t.first;let n=e.second.first,r=t.second.first;for(let e=0;e<3;++e)if(n[e]!==r[e])return n[e]-r[e];n=e.second.second,r=t.second.second;for(let e=0;e<3;++e)if(n[e]!==r[e])return n[e]-r[e];return 0}class z{getOperatorType(){return 10112}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!1}executeMany(e,t,n,r){return new B(e,t,n,r)}execute(e,t,n,r=null){let i=new B(null,t,!1,n);return i.addGeometry(e),i.buildAlphaShape(r)}}class B extends t{m_progressTracker;m_bMerge;m_alpha;m_bDone;m_multiPointForAttributes=null;m_inputGeometryCursor=null;m_index=-1;m_nDelaunayPoints=0;m_cDelaunay=new M;m_vertexDescription=null;alphaShapeConstruct(e,t){let n=e.getEdgeCount(),r=new v({vd:this.m_vertexDescription});if(!r)throw Error(`alphaShapeConstruct`);for(let i=0;i<n;++i){if(t[i]!==2)continue;let n=T(null,null);if(n.first=e.getEdge(i),n.second=e.getTwinEdge(n.first),t[e.getEdgeIndex(n.second)]!==1)continue;e.getPointXYFromEdge(n.first),r.startPath(e.getPointXYFromEdge(n.first));let a=i,o=n.second;for(;;){for(t[a]=3,o=e.getCounterClockwiseEdge(o);t[e.getEdgeIndex(o)]===1;)o=e.getCounterClockwiseEdge(o);if(o===n.first)break;r.lineTo(e.getPointXYFromEdge(o)),a=e.getEdgeIndex(o),o=e.getTwinEdge(o)}}return r}alphaShape(e,t){let n=e.getEdgeCount(),r=new Uint8Array(n);for(let i=0;i<n;++i){if(r[i]!==0)continue;let n=j(),a=e.getEdge(i);n.p[0]=e.getPointFromEdge(a);let o=e.getClockwiseEdge(e.getTwinEdge(a));n.p[1]=e.getPointFromEdge(o);let s=e.getEdgeIndex(o),c=e.getClockwiseEdge(e.getTwinEdge(o));n.p[2]=e.getPointFromEdge(c);let d=e.getEdgeIndex(c),f=1;for(let t=0;t<3;++t)if(e.isInfinitePointFromPoint(n.p[t])){f=2;break}if(f===1){let r=u(l,3);for(let t=0;t<3;++t)r[t]=e.getPointXY(n.p[t]);let i=l.sqrDistance(r[0],r[1]),a=l.sqrDistance(r[1],r[2]),o=l.sqrDistance(r[2],r[0]),s=2*r[1].sub(r[0]).crossProduct(r[2].sub(r[0]));t<i*a*o/(s*s)&&(f=2)}r[i]=r[s]=r[d]=f}return this.alphaShapeConstruct(e,r)}alphaShapeAlphaOut(e,t){let n=e.getEdgeCount(),r=new Uint8Array(n),i=[],a=new I(e.getPointCount());for(let t=0;t<n;++t){if(r[t]!==0)continue;let n=j(),a=e.getEdge(t);n.p[0]=e.getPointFromEdge(a);let o=e.getClockwiseEdge(e.getTwinEdge(a));n.p[1]=e.getPointFromEdge(o);let s=e.getEdgeIndex(o),c=e.getClockwiseEdge(e.getTwinEdge(o));n.p[2]=e.getPointFromEdge(c);let u=e.getEdgeIndex(c),d=1;for(let t=0;t<3;++t)if(e.isInfinitePointFromPoint(n.p[t])){d=2;break}if(d===1){let r=[,,,];for(let t=0;t<3;++t)r[t]=e.getPointXY(n.p[t]);let a=l.sqrDistance(r[0],r[1]),o=l.sqrDistance(r[1],r[2]),c=l.sqrDistance(r[2],r[0]),f=r[1].sub(r[0]).crossProduct(r[2].sub(r[0])),p=L();p.first=a*o*c/(f*f),p.second.first[0]=t,p.second.first[1]=s,p.second.first[2]=u,p.second.second[0]=e.getPointIndex(n.p[0]),p.second.second[1]=e.getPointIndex(n.p[1]),p.second.second[2]=e.getPointIndex(n.p[2]),i.push(p),d=2}r[t]=r[s]=r[u]=d}i.sort((e,t)=>R(e,t));let o=0;for(let e of i){if(a.getNumberOfSets()===1&&e.first!==o)break;r[e.second.first[0]]=r[e.second.first[1]]=r[e.second.first[2]]=1;let t=[e.second.second[0],e.second.second[1],e.second.second[2]];a.connectRange(t,0,3),o=e.first}return t&&(t[0]=.25*o),this.alphaShapeConstruct(e,r)}constructor(e,t,n,r){super(),this.m_progressTracker=r,this.m_alpha=Number.isNaN(t)||!Number.isFinite(t)||t<0?-1:t<Number.MIN_VALUE?0:t,this.m_bMerge=n,this.m_bDone=!1,this.m_inputGeometryCursor=e,this.prepareDelaunay()}prepareDelaunay(){this.m_nDelaunayPoints=0,this.m_cDelaunay.clear(),this.m_alpha!==0&&this.m_cDelaunay.prepare(m())}next(){if(this.m_bMerge){if(!this.m_bDone){let e=this.calculateAlphaShapeMerging(this.m_inputGeometryCursor,this.m_progressTracker);return this.m_bDone=!0,e}return null}if(!this.m_bDone){let e=this.m_inputGeometryCursor.next();if(e!==null)return i(e),a(e),this.m_index=this.m_inputGeometryCursor.getGeometryID(),this.calculateAlphaShape(e,this.m_progressTracker);this.m_bDone=!0}return null}tock(){return!0}getRank(){return 1}getGeometryID(){return this.m_index}calculateAlphaShapeMerging(e,t){let n;for(;n=e.next();)i(n),a(n),this.addGeometry(n);return this.buildAlphaShape()}calculateAlphaShape(e,t){return e.isEmpty()?new v({vd:e.getDescription()}):(this.prepareDelaunay(),this.addGeometry(e),this.buildAlphaShape())}buildAlphaShape(e=null){if(e&&(e[0]=this.m_alpha),this.m_alpha===0)return this.m_vertexDescription?new v({vd:this.m_vertexDescription}):new v;if(this.m_cDelaunay.removeDuplicates())for(let e=0,t=this.m_cDelaunay.getPointCount();e<t;++e)this.m_cDelaunay.setPointIndex(this.m_cDelaunay.getPoint(e),e);return this.m_cDelaunay.construct()?this.m_alpha<0?this.alphaShapeAlphaOut(this.m_cDelaunay,e):this.alphaShape(this.m_cDelaunay,this.m_alpha):this.m_vertexDescription?new v({vd:this.m_vertexDescription}):new v}addGeometry(e){if(i(e),a(e),this.m_alpha===0||((!this.m_vertexDescription||!this.m_bMerge)&&(this.m_vertexDescription=e.getDescription(),this.m_multiPointForAttributes=this.m_vertexDescription.getAttributeCount()>1?new y({vd:this.m_vertexDescription}):null),e.isEmpty()))return;let t=e.getGeometryType();if(o(t)){let t=e,n=new l;for(let e=0,r=t.getPointCount();e<r;e++)t.queryXY(e,n),this.m_cDelaunay.addVertex(n,this.m_nDelaunayPoints++);this.m_multiPointForAttributes&&this.m_multiPointForAttributes.addPoints(t,0,-1)}else if(t===s.enumPoint){let t=e,n=t.getXY();this.m_cDelaunay.addVertex(n,this.m_nDelaunayPoints++),this.m_multiPointForAttributes&&this.m_multiPointForAttributes.add(t)}else r(`bad geometry type`)}}const V=new z;function H(e,t,n){return V.execute(e,t,null,n)}function U(t,n,r){let i=V.executeMany(new e(t),n,r,null);return Array.from(i)}function W(){return V.supportsCurves()}export{H as execute,U as executeMany,W as supportsCurves};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{P as n}from"../../../chunks/Envelope.js";import{
|
|
2
|
+
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{P as n}from"../../../chunks/Envelope.js";import{t as r}from"../../../chunks/Geometry.js";import{c as i}from"../../../chunks/MultiPathImpl.js";class a{getOperatorType(){return 10109}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t){return new s(e,t)}execute(e,t){return o(e)}}function o(e,t){let r=i(e);return r===null?new n({vd:e.getDescription()}):r}class s extends t{m_progressTracker;m_bDone;m_inputGeometryCursor;m_index;constructor(e,t){super(),this.m_progressTracker=t,this.m_index=-1,this.m_bDone=!1,this.m_inputGeometryCursor=e}next(){if(!this.m_bDone){let e=this.m_inputGeometryCursor.next();if(e!==null)return r(e),this.m_index=this.m_inputGeometryCursor.getGeometryID(),o(e);this.m_bDone=!0}return null}getGeometryID(){return this.m_index}tock(){return!0}getRank(){return 1}}const c=new a;function l(e){return c.execute(e,null)}function u(t){let n=c.executeMany(new e(t),null);return Array.from(n)}function d(){return c.supportsCurves()}export{l as execute,u as executeMany,d as supportsCurves};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{
|
|
2
|
+
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{b as n,d as r,t as i}from"../../../chunks/Geometry.js";import{a5 as a}from"../../../chunks/UnitFactory.js";import{Envelope2D as o}from"../../../chunks/Envelope2D.js";import{B as s}from"../../../chunks/Bufferer-CclWhXVb.js";class c{getOperatorType(){return 10004}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,n,r,i){return this.executeManyEx(e,t,n,NaN,96,r,i)}execute(t,i,a,o){Number.isFinite(a)||n(`Invalid distance for buffer operation`);let s=new e([t]),c=[a],l=this.executeMany(s,i,c,!1,o).next();return l||r(`null buffer output`),l}executeManyEx(e,t,r,i,o,s,c){if(r.find(e=>!Number.isFinite(e))!==void 0&&n(`Invalid distance for buffer operation`),s){let n=new l(e,t,r,i,o,!1,c);return new a().executeMany(n,t,c,2)}return new l(e,t,r,i,o,!1,c)}}class l extends t{m_inputGeoms;m_spatialReference;m_progressTracker;m_bufferer;m_distances;m_maxDeviation;m_maxVerticesInFullCircle;m_currentUnionEnvelope2D=new o;m_index=-1;m_dindex=-1;constructor(e,t,n,r,i,a,o){super(),this.m_progressTracker=o,this.m_bufferer=new s(o),this.m_inputGeoms=e,this.m_spatialReference=t,this.m_distances=n,this.m_maxDeviation=r,this.m_maxVerticesInFullCircle=i}tock(){return!0}getRank(){return 1}next(){{let e;for(;e=this.m_inputGeoms.next();)return i(e),this.m_index=this.m_inputGeoms.getGeometryID(),this.m_dindex+1<this.m_distances.length&&this.m_dindex++,this.buffer(e,this.m_distances[this.m_dindex]);return null}}getGeometryID(){return this.m_index}buffer(e,t){return this.m_bufferer.buffer(e,t,this.m_spatialReference,0,0,4,this.m_maxDeviation,this.m_maxVerticesInFullCircle)}}const u=new c;function d(e,t,n){return u.execute(e,t,n,null)}function f(t,n,r,i){let a=u.executeMany(new e(t),n,r,i,null);return Array.from(a)}function p(t,n,r,i,a,o){let s=u.executeManyEx(new e(t),n,r,i,a,o,null);return Array.from(s)}function m(){return u.supportsCurves()}export{d as execute,f as executeMany,p as executeManyEx,m as supportsCurves};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{
|
|
2
|
+
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{t as n,G as r,h as i,b as a,p as o,g as s,i as c}from"../../../chunks/Geometry.js";import{P as l}from"../../../chunks/Envelope.js";import{i as u,e as d,a as f,P as p,g as m,f as h,C as g}from"../../../chunks/MultiPathImpl.js";import{Envelope2D as _}from"../../../chunks/Envelope2D.js";class v{getOperatorType(){return 10102}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,n){return new y(t,e,n)}execute(e,t){return x(e)}isConvex(e,t){if(n(e),e.isEmpty())return!0;let a=e.getGeometryType();if(a===r.enumPoint)return!0;if(a===r.enumEnvelope){let t=e;return t.getXMin()!==t.getXMax()&&t.getYMin()!==t.getYMax()}if(i(a)){let t=e;return!t.getStartXY().equals(t.getEndXY())}if(a===r.enumMultiPoint)return e.getPointCount()===1;if(a===r.enumPolyline){let t=e;return t.getPathCount()===1&&t.getPointCount()===2&&!t.getXY(0).equals(t.getXY(1))}if(a===r.enumGeometryCollection){let n=e;return n.getGeometryCount()===1&&this.isConvex(n.getGeometry(0),t)}let o=e;return o.getPathCount()!==1||o.getPointCount()<3?!1:u(o,0)}constructOrientedMinimumBoundingBox(e,t,n,r,i){d(e,t,n,r,i)}}class y extends t{m_progressTracker;m_bMerge;m_bDone;m_inputGeometryCursor;m_index;constructor(e,t,n){super(),t||a(``),this.m_progressTracker=n,this.m_index=-1,this.m_bMerge=e,this.m_bDone=!1,this.m_inputGeometryCursor=t}getGeometryID(){return this.m_index}tock(){return!0}getRank(){return 1}next(){if(this.m_bMerge){if(!this.m_bDone){let e=b(this.m_inputGeometryCursor);return this.m_bDone=!0,e}return null}if(!this.m_bDone){let e=this.m_inputGeometryCursor.next();if(e!==null)return o(e),n(e),this.m_index=this.m_inputGeometryCursor.getGeometryID(),x(e);this.m_bDone=!0}return null}}function b(e,t){let r=new g,i;for(;i=e.next();)o(i),n(i),r.addGeometry(i);return r.getBoundingGeometry()}function x(e,t){if(n(e),e.isEmpty())return e.createInstance();let a=e.getGeometryType();if(i(a)){let t=e;if(t.isDegenerate(0)){let e=new l;return t.queryStart(e),e}if(t.getGeometryType()===r.enumLine){let n=new l,r=new f({vd:e.getDescription()});return t.queryStart(n),r.startPathPoint(n),t.queryEnd(n),r.lineToPoint(n),r}{let n=new f({vd:e.getDescription()});return n.addSegment(t,!0),x(n)}}if(a===r.enumEnvelope){let t=e,n=new _;if(t.queryEnvelope(n),n.xmin===n.xmax&&n.ymin===n.ymax){let e=new l;return t.queryCornerByVal(0,e),e}if(n.xmin===n.xmax||n.ymin===n.ymax){let n=new l,r=new f({vd:e.getDescription()});return t.queryCornerByVal(0,n),r.startPathPoint(n),t.queryCornerByVal(1,n),r.lineToPoint(n),r}{let n=new p({vd:e.getDescription()});return n.addEnvelope(t,!1),n}}if(a===r.enumGeometryCollection)return b(m(e,-1));if(S(e)){if(a===r.enumMultiPoint){let t=e,n=new l;return t.getPointByVal(0,n),n}return e}return s(c(a)),h(e)}function S(e,t){if(n(e),e.isEmpty())return!0;let a=e.getGeometryType();if(a===r.enumPoint)return!0;if(a===r.enumEnvelope){let t=e;return t.getXMin()!==t.getXMax()&&t.getYMin()!==t.getYMax()}if(i(a)){let t=e;if(t.isDegenerate(0))return!1;if(a===r.enumLine)return!0;let n=new f;return n.addSegment(t,!0),S(n)}if(a===r.enumMultiPoint)return e.getPointCount()===1;if(a===r.enumPolyline){let t=e;return!t.hasNonLinearSegments()&&t.getPathCount()===1&&t.getPointCount()===2&&!t.getXY(0).equals(t.getXY(1))}if(a===r.enumGeometryCollection){let t=e;return t.getGeometryCount()===1&&S(t.getGeometry(0))}let o=e;return o.getPathCount()!==1||o.getPointCount()<3?!1:u(o,0)}const C=new v;function w(e){return C.execute(e,null)}function T(t,n){let r=C.executeMany(new e(t),n,null);return Array.from(r)}function E(e){return C.isConvex(e,null)}function D(e,t,n,r,i){return C.constructOrientedMinimumBoundingBox(e,t,n,r,i)}function O(){return C.supportsCurves()}export{D as constructOrientedMinimumBoundingBox,w as execute,T as executeMany,E as isConvex,O as supportsCurves};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{
|
|
2
|
+
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{t as n,b as r,G as i,g as a}from"../../../chunks/Geometry.js";import{P as o,c as s}from"../../../chunks/Envelope.js";import{P as c,L as l}from"../../../chunks/MultiPathImpl.js";import{Envelope2D as u}from"../../../chunks/Envelope2D.js";import{P as d,r as f,t as p,d as m}from"../../../chunks/Point2D.js";import{aQ as h,K as g}from"../../../chunks/UnitFactory.js";import{a as _}from"../../../chunks/Centroid-CA-TwbbN.js";import{O as v}from"../../../chunks/OperatorProximity.js";class y{getOperatorType(){return 10203}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}executeMany(e,t){return new b(e,t)}execute(e,t){return new b(null,t).labelPoint(e)}}class b extends t{m_inputGeoms;m_index=-1;m_progressTracker;m_progressCounter=0;progress_(){}tock(){return!0}getRank(){return 1}constructor(e,t){super(),this.m_progressTracker=t,this.m_inputGeoms=e}next(){let e=this.m_inputGeoms.next();return e?(n(e),this.m_index=this.m_inputGeoms.getGeometryID(),this.labelPoint(e)):null}getGeometryID(){return this.m_index}labelPoint(e){if(e===null&&r(`null pointer is not allowed`),e.getGeometryType()===i.enumPoint)return e;if(e.isEmpty())return new o({vd:e.getDescription()});switch(e.getGeometryType()){case i.enumPolygon:return this.labelPointPolygon(e);case i.enumPolyline:return this.labelPointPolyline(e);case i.enumMultiPoint:return this.labelPointMultiPoint(e);case i.enumEnvelope:return this.labelPointEnvelope(e);default:r(`geometry is not supported`)}}labelPointPolygon(e){let t=new u;e.queryEnvelope(t);let n=s(null,t,!0).total(),r=null,i=e;if(e.hasNonLinearSegments()){let t=new c({copy:e}),o=h(t,n*.25,n);a(o!==e),r=o,i=r}let l=0,m=0;for(let e=0,t=i.getPathCount();e<t;++e){let t=Math.abs(i.calculateRingArea2D(e));t>m&&(m=t,l=e)}let y=new d;if(Math.abs(m)<=2*n*n?y.setNAN():y.assign(_(i,l)),Number.isNaN(y.x)){let e=new u;return i.queryPathEnvelope(l,e),new o({pt:e.getCenter()})}if(i.getPointCount()<4)return new o({x:y.x,y:y.y});let b=d.getNAN(),x=[b.clone(),b.clone(),b.clone(),b.clone()],S=[NaN,NaN,NaN,NaN],C=[NaN,NaN,NaN,NaN],w=!1,T=new v().getNearestCoordinate(i,y,!0,!1);if(T.m_distance===0&&(w=!0,x[0]=y,T=new v().getNearestCoordinate(i,y,!1,!1),T.m_distance>t.minDimension()*.25*1.66666666))return new o({x:y.x,y:y.y});S[0]=T.m_distance,C[0]=0;let E=new d,D=!1,O=.25,k=-1,A=new u;i.queryPathEnvelope(l,A);do{let e=NaN;if(x[1]=this.calculateParacentroid_(i,f(A.xmin,A.xmax,O),n),x[1].isNAN()||(T=new v().getNearestCoordinate(i,x[1],!1,!1),e=T.m_distance),e>n&&g(i,x[1],n)===1)D=!0,S[1]=e,C[1]=d.sqrDistance(x[1],y);else if(e>k&&(k=e,E.setCoordsPoint2D(x[1])),O-=.01,O<.1){if(k>=0)D=!0,S[1]=k,x[1]=E,C[1]=d.sqrDistance(x[1],y);else break}}while(!D);D=!1,O=.5,k=-1;let j=.01,M=1;do{let e=NaN;if(x[2]=this.calculateParacentroid_(i,f(A.xmin,A.xmax,O),n),x[2].isNAN()||(T=new v().getNearestCoordinate(i,x[2],!1,!1),e=T.m_distance),e>n&&g(i,x[2],n)===1)D=!0,S[2]=e,C[2]=d.sqrDistance(x[2],y);else if(e>k&&(k=e,E.setCoordsPoint2D(x[2])),O=.5+j*M,j+=.01,M*=-1,O<.3||O>.7){if(k>=0)D=!0,S[2]=k,x[2]=E,C[2]=d.sqrDistance(x[2],y);else break}}while(!D);D=!1,O=.75,k=-1;do{let e=NaN;if(x[3]=this.calculateParacentroid_(i,f(A.xmin,A.xmax,O),n),x[3].isNAN()||(T=new v().getNearestCoordinate(i,x[3],!1,!1),e=T.m_distance),e>n&&g(i,x[3],n)===1)D=!0,S[3]=e,C[3]=d.sqrDistance(x[3],y);else if(e>k&&(k=e,E.setCoordsPoint2D(x[3])),O+=.01,O>.9){if(k>=0)D=!0,S[3]=k,x[3]=E,C[3]=d.sqrDistance(x[3],y);else break}}while(!D);let N=[0,1,2,3],P=+!w;for(let e=P;e<4;e++)for(let e=P;e<3;e++){let t=C[e],n=C[e+1];if(p(t,n)>0){let r=N[e];N[e]=N[e+1],N[e+1]=r,C[e]=n,C[e+1]=t}}let F=P,I=0,L=0;for(let e=P;e<4;e++){switch(e){case 0:L=S[N[e]]*2;break;case 1:L=S[N[e]]*1.66666666;break;case 2:L=S[N[e]]*1.33333333;break;case 3:L=S[N[e]]}L>I&&(I=L,F=N[e])}return a(!x[F].isNAN()),new o({x:x[F].x,y:x[F].y})}labelPointPolyline(e){let t=new d;if(e.getPointCount()>2*e.getPathCount()){let n=-1,r=-Number.MAX_VALUE;for(let t=0,i=e.getPathCount();t<i;t++)if(e.getPathSize(t)>2){let i=e.calculatePathLength2D(t);i>r&&(r=i,n=t)}let i=e.getPathStart(n),a=e.getPathEnd(n),o=Math.trunc((i+a)/2);t.assign(e.getXY(o))}else{let n=-Number.MAX_VALUE,r=e.querySegmentIterator();for(;r.nextPath();)if(r.hasNextSegment()){let e=r.nextSegment(),i=e.calculateLength2D();i>n&&(n=i,t.assign(e.getCoord2D(e.lengthToT(.5*i))))}}return new o({x:t.x,y:t.y})}labelPointMultiPoint(e){let t=new u;e.queryEnvelope(t);let n=t.getCenter(),r=new v().getNearestCoordinate(e,n,!1,!1).m_coordinate;return new o({x:r.x,y:r.y})}labelPointEnvelope(e){let t=e.getCenterXY();return new o({x:t.x,y:t.y})}calculateParacentroid_(e,t,n){let r=new u;e.queryEnvelope(r);let i=new d(t,0),o=Number.MAX_VALUE,s=Number.MAX_VALUE,c=!1,f=!1,p=new l;p.setStartXYCoords(i.x,r.ymin-1),p.setEndXYCoords(i.x,r.ymax+1);let h=new u,g=new d,_=new d,v=m(d,2),y=e.querySegmentIterator();for(;y.nextPath();)for(;y.hasNextSegment();){let e=y.nextSegment();if(e.queryEnvelope(h),a(e.isMonotoneQuickAndDirty()),g.setCoordsPoint2D(p.getStartXY()),_.setCoordsPoint2D(p.getEndXY()),h.clipLine(g,_)===0||p.intersect(e,v,null,null,n)!==1)continue;let t=v[0].y;o>s?t<o&&(o=t,c=!0):t<s&&(s=t,f=!0)}return c&&f?i.y=(o+s)/2:i.setNAN(),i}}const x=new y;function S(e){return x.execute(e,null)}function C(t){let n=x.executeMany(new e(t),null);return Array.from(n)}function w(){return x.supportsCurves()}export{S as execute,C as executeMany,w as supportsCurves};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{E as n}from"../../../chunks/MultiPathImpl.js";import{k as r,
|
|
2
|
+
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{E as n}from"../../../chunks/MultiPathImpl.js";import{k as r,t as i}from"../../../chunks/Geometry.js";import{c as a}from"../../../chunks/Envelope.js";import{aT as o}from"../../../chunks/UnitFactory.js";class s{getOperatorType(){return 10010}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}executeMany(e,t,n){return new c(e,t,n)}}class c extends t{m_geoms;m_result=null;m_sr;m_progressTracker;m_bfirst;m_index;constructor(e,t,n){super(),this.m_geoms=e,this.m_sr=t,this.m_progressTracker=n,this.m_bfirst=!0,this.m_index=-1}tock(){return!0}getRank(){return 1}next(){return this.m_bfirst&&=(this.performOperation(),!1),this.m_result?this.m_result.next():null}getGeometryID(){return this.m_result===null?-1:this.m_result.getGeometryID()}performOperation(){let e=new n;for(let t=this.m_geoms.next();t!==null;t=this.m_geoms.next())t.isEmpty()||t.getDimension()<1||r(t.getGeometryType())||(i(t),e.addGeometry(t));if(e.getGeometryCount()===0)return;let t=e.getEnvelope2D(this.m_progressTracker),s=a(this.m_sr,t,!0);this.m_result=o(e,s,this.m_progressTracker)}}const l=new s;function u(t,n){let r=l.executeMany(new e(t),n,null);return Array.from(r)}function d(){return l.supportsCurves()}export{u as executeMany,d as supportsCurves};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{
|
|
2
|
+
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{t as n,G as r,b as i,l as a,h as o,d as s}from"../../../chunks/Geometry.js";import{E as c,s as l}from"../../../chunks/Point2D.js";import{V as u,P as d}from"../../../chunks/Envelope.js";import{g as f,M as p,S as m,a as h,G as g}from"../../../chunks/MultiPathImpl.js";function _(e,t,n,r,i){return new v(t,n,r,i).processGeometry(e)}class v{m_inputGeom;m_interval;m_progressTracker;m_attribute;m_ord;constructor(e,t,n,r){this.m_interval=n,this.m_progressTracker=r,this.m_attribute=e,this.m_ord=t,(u.getComponentCount(this.m_attribute)<=t||t<0)&&i(`LocateBetween: ordinate`),u.getInterpolation(this.m_attribute)===2&&i(`LocateBetween: angular interpolation`)}processGeometry(e){let t=e.getGeometryType();if(t===r.enumGeometryCollection)return this.processGeometryCollection(e);if(a(t)&&i(`LocateBetween does not support Polygons and Envelopes.`),e.isEmpty()||!e.hasAttribute(this.m_attribute))return new d({vd:e.getDescription()});if(o(t))return this.processSegment(e);switch(t){case r.enumPoint:return this.processPoint(e);case r.enumMultiPoint:return this.processMultiPoint(e);case r.enumPolyline:return this.processPolyline(e);default:s(`LocateBetween`)}}processPoint(e){let t=e.getAttributeAsDbl(this.m_attribute,this.m_ord);return this.m_interval.containsCoordinate(t)?new p({point:e}):new d({vd:e.getDescription()})}processMultiPoint(e){let t=null,n=-1,r=e.getAttributeStreamRef(this.m_attribute),i=u.getComponentCount(this.m_attribute);for(let a=0,o=0,s=e.getPointCount();a<s;++a,o+=i){let i=r.readAsDbl(o);if(!this.m_interval.containsCoordinate(i)){n>=0&&(t||=new p({vd:e.getDescription()}),t.addPoints(e,n,a),n=-1);continue}n===-1&&(n=a)}return n>=0&&(t||=new p({vd:e.getDescription()}),t.addPoints(e,n,-1)),t||new d({vd:e.getDescription()})}processPolyline(e){let t=e.queryInterval(this.m_attribute,this.m_ord);if(this.m_interval.contains(t))return e;if(!this.m_interval.isIntersecting(t))return new d({vd:e.getDescription()});let n=null,i=null,a=e.querySegmentIterator(),o=new m,s=new d,c=new d,l=new d,u=!0,f=!1;for(;a.nextPath();)for(u=!0,f=!1;a.hasNextSegment();){let e=a.nextSegment(),t=[null],d=this.processSegmentHelper(e,o,t,s);if(d===r.enumUnknown){u=!0,f=!1;continue}if(d===r.enumPoint){if(!u&&(i.getPointByVal(i.getPointCount()-1,c),c.equals(s))||(u=!0,f&&(e.queryStart(c),s.equals(c))))continue;e.queryEnd(c),f=s.equals(c),n?n.add(s):n=new p({point:s})}else d===r.enumLine&&(f=!1,i||=new h,u&&n!==null&&!n.isEmpty()&&(n.getPointByVal(n.getPointCount()-1,c),t[0].queryStart(s),c.equals(s)&&n.removePoint(n.getPointCount()-1)),i.addSegment(t[0],u),e.queryEnd(c),t[0].queryEnd(l),u=!c.equals(l))}if(n!==null&&n.isEmpty()&&(n=null),n!==null&&i!==null){let e=new g;return e.addGeometry(i),e.addGeometry(n),e}return n===null?i===null?new d({vd:e.getDescription()}):i:n}processSegment(e){let t=e.getAttributeAsDbl(0,this.m_attribute,this.m_ord),n=e.getAttributeAsDbl(1,this.m_attribute,this.m_ord),r=Number.isNaN(t)?n:t,i=Number.isNaN(n)?t:n,a=new c;a.setCoords(r,i);let o=a.clone();if(o.intersect(this.m_interval),o.isEmpty())return new d({vd:e.getDescription()});if(a.equals(o))return e;let s=i-r,u=e.calculateLength2D();if(o.width()===0){let t=new d({vd:e.getDescription()}),n=(o.vmin-r)/s,i=e.lengthToT(n*u);return e.queryCoord(i,t),t}let f=(o.vmin-r)/s,p=(o.vmax-r)/s;return f>p&&(p=l(f,f=p)),f=e.lengthToT(f*u),p=e.lengthToT(p*u),e.cut(f,p)}processGeometryCollection(e){if(e.isEmpty()||!e.hasAttribute(this.m_attribute))return new d({vd:e.getDescription()});let t=f(e),n=new g;for(let e=t.next();e!==null;e=t.next()){let t=this.processGeometry(e);t.isEmpty()||n.addGeometry(t)}return n.isEmpty()?new d({vd:e.getDescription()}):n}processSegmentHelper(e,t,n,i){let a=e.getAttributeAsDbl(0,this.m_attribute,this.m_ord),o=e.getAttributeAsDbl(1,this.m_attribute,this.m_ord),s=Number.isNaN(a)?o:a,u=Number.isNaN(o)?a:o,d=new c;d.setCoords(s,u);let f=d.clone();if(f.intersect(this.m_interval),f.isEmpty())return r.enumUnknown;if(d.equals(f))return n[0]=e,r.enumLine;let p=u-s,m=e.calculateLength2D();if(f.width()===0){let t=(f.vmin-s)/p,n=t===1?1:e.lengthToT(t*m);return e.queryCoord(n,i),r.enumPoint}let h=(f.vmin-s)/p,g=(f.vmax-s)/p;return h>g&&(g=l(h,h=g)),h=h===1?1:e.lengthToT(h*m),g=g===1?1:e.lengthToT(g*m),e.queryCut(h,g,t),n[0]=t.get(),r.enumLine}}class y{getOperatorType(){return 10801}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}executeMany(e,t,n){return new b(e,t,n)}}class b extends t{m_inputGeoms;m_collectionCursor=null;m_interval;m_progressTracker;m_index;constructor(e,t,n){super(),this.m_interval=t,this.m_progressTracker=n,this.m_inputGeoms=e,this.m_index=-1}tock(){return!0}getRank(){return 1}next(){if(this.m_collectionCursor){let e=this.m_collectionCursor.next();if(e)return e;this.m_collectionCursor=null}let e=this.m_inputGeoms.next();if(e===null)return null;n(e),this.m_index=this.m_inputGeoms.getGeometryID();let t=_(e,2,0,this.m_interval,this.m_progressTracker);return t.getGeometryType()===r.enumGeometryCollection?(this.m_collectionCursor=f(t),this.m_collectionCursor.next()):t}getGeometryID(){return this.m_index}}const x=new y;function S(t,n){let r=x.executeMany(new e(t),n,null);return Array.from(r)}function C(){return x.supportsCurves()}export{S as executeMany,C as supportsCurves};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{d as n,p as r,
|
|
2
|
+
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{d as n,p as r,t as i,G as a,i as o,b as s}from"../../../chunks/Geometry.js";import{m as c,k as l,P as u,l as d,M as f}from"../../../chunks/MultiPathImpl.js";import{d as p,P as m}from"../../../chunks/Point2D.js";class h{getOperatorType(){return 10113}supportsCurves(){return!1}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,n){return new g(e,t,n)}execute(t,r){let i=new e([t]),a=this.executeMany(i,!1,r).next();return a||n(`null output`),a}minimumBoundingCircle(e,t,n,r){return c(e,t,n)}}class g extends t{m_geometryCursor;m_progressTracker;m_bMerge;constructor(e,t,n){super(),this.m_geometryCursor=e,this.m_bMerge=t,this.m_progressTracker=n}tock(){return!0}getRank(){return 1}next(){if(this.m_bMerge)return this.mergedMinimumBoundingCircle();let e=this.m_geometryCursor.next();return e?this.minimumBoundingCircle(e):null}getGeometryID(){return this.m_geometryCursor.getGeometryID()}minimumBoundingCircle(e){if(r(e),i(e),this.m_progressTracker?.checkProgress(),e.isEmpty())return e.clone();let t=e.getGeometryType();if(t===a.enumPoint)return this.makeCircle([e.getXY()],1);if(t===a.enumLine){let t=e,n=[t.getStartXY(),t.getEndXY()];return this.makeCircle(n,2)}if(t===a.enumEnvelope){let t=e,n=p(m,2);return t.queryCorner(0,n[0]),t.queryCorner(2,n[1]),this.makeCircle(n,2)}if(o(t)){let t=e,n=[0,0,0],r=l(t,n),i=Array(r);for(let e=0;e<r;++e)i[e]=t.getXY(n[e]);return this.makeCircle(i,r)}s(`Geometry type not supported.`)}makeCircle(e,t){let n=new u,r=new d;if(t===1)r.constructCircleRadius(0,e[0],!1);else if(t===2){let t=m.lerp(e[0],e[1],.5),n=m.distance(e[0],t),i=m.distance(e[1],t);r.constructCircleRadius(Math.max(n,i),t,!1)}else if(t===3){let t=m.calculateCircleCenterFromThreePoints(e[0],e[1],e[2]),n=m.distance(e[0],t),i=m.distance(e[1],t),a=m.distance(e[2],t);r.constructCircleRadius(Math.max(n,i,a),t,!1)}return n.addPathFromClosedSegment(r,!1),n}mergedMinimumBoundingCircle(){let e=null,t=this.m_geometryCursor.next();if(t)e=new f;else return null;let n=e.getImpl();do switch(r(t),i(t),this.m_progressTracker?.checkProgress(),t.getGeometryType()){case a.enumPoint:n.addPoint2D(t.getXY());break;case a.enumLine:n.addPoint2D(t.getStartXY()),n.addPoint2D(t.getEndXY());break;case a.enumEnvelope:for(let e=0;e<4;++e){let r=new m;t.queryCorner(e,r),n.addPoint2D(r)}break;case a.enumMultiPoint:case a.enumPolyline:case a.enumPolygon:{let e=t.getImpl();for(let t=0,r=e.getPointCount();t<r;t++)n.addPoint2D(e.getXY(t));break}default:s(`Geometry type not supported.`)}while(t=this.m_geometryCursor.next());return this.minimumBoundingCircle(e)}}const _=new h;function v(e){return _.execute(e,null)}function y(t,n){let r=_.executeMany(new e(t),n,null);return Array.from(r)}function b(){return _.supportsCurves()}export{v as execute,y as executeMany,b as supportsCurves};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{e as n}from"../../../chunks/Envelope.js";import{c as r,a as i,G as a,h as o,g as s,t as c}from"../../../chunks/Geometry.js";import{a as l,P as u,L as d,d as f}from"../../../chunks/MultiPathImpl.js";import{P as p,l as m,n as h,r as g,u as _,e as v}from"../../../chunks/Point2D.js";import{s as y}from"../../../chunks/Bufferer-CclWhXVb.js";import{O as b}from"../../../chunks/OperatorGraphicBuffer.js";function x(e,t,n,a,o,s,c){if(e===null&&i(``),e.getDimension()<1&&i(``),o>0||i(``),r(e),t===0||e.isEmpty())return e;let l=new D(c);return l.m_bUseZ=e.hasAttribute(1),l.m_bUseM=e.hasAttribute(2),l.m_inputGeometry=e,l.m_distance=t,l.m_tolerance=o,l.m_joins=n,l.m_miterLimit=a>1?a:1,l.m_miterLimit=y(l.m_miterLimit),l.m_progressCounter=0,l.m_options=s,l.constructOffset()}const S=1.4142135623730951,C=.017453292519943295,w=1024;class T{x;y;m_next;m_prev;z;m;type;static construct(e,t,n){let r=new T;return r.x=e.x,r.y=e.y,r.m_next=-1,r.m_prev=-1,r.z=t,r.m=n,r.type=0,r}clone(){let e=new T;return e.x=this.x,e.y=this.y,e.m_next=this.m_next,e.m_prev=this.m_prev,e.z=this.z,e.m=this.m,e.type=this.type,e}asPoint2D(){return new p(this.x,this.y)}}function E(){return{pt:new T,bAtExistingPt:!1}}class D{m_progressTracker;m_inputGeometry;m_distance=-1;m_tolerance=-1;m_miterLimit=10;m_joins=0;m_progressCounter=0;m_options=0;m_bUseZ=!1;m_bUseM=!1;m_srcPts=[];m_srcPtCount=0;m_offsetPts=[];m_offsetPtCount=0;m_resultPath;m_a1=0;m_a2=0;constructor(e){this.m_progressTracker=e}constructOffset(){let t=this.m_inputGeometry.getGeometryType();if(t===a.enumLine)return this.offsetLine();if(t===a.enumEnvelope)return this.offsetEnvelope();if(o(t)){let e=new l;return e.addSegment(this.m_inputGeometry,!0),this.m_inputGeometry=e,this.constructOffset()}if(t===a.enumPolyline){let e=new l;return this.offsetMultiPath(e),e}if(t===a.enumPolygon){if(this.m_options===1){let t;switch(this.m_joins){case 1:t=2;break;case 2:t=1;break;case 0:t=0;break;case 3:t=2;break;default:s(!1,`Invalid join type`)}return new b().executeMany(new e([this.m_inputGeometry]),null,[-1],t,1,this.m_miterLimit,this.m_tolerance,360,!1,0,null).next()}let t=new u;return this.offsetMultiPath(t),t}c(``)}offsetLine(){let e=this.m_inputGeometry,t=e.getStartXY(),n=e.getEndXY(),r=new p;r.setSub(n,t),r.normalize(),r.leftPerpendicularThis(),r.scale(this.m_distance),t.addThis(r),n.addThis(r);let i=e.clone();return i.setStartXY(t),i.setEndXY(n),i}offsetEnvelope(){let e=this.m_inputGeometry;if(this.m_distance>0&&this.m_joins!==2){let t=new u;return t.addEnvelope(e,!1),this.m_inputGeometry=t,this.constructOffset()}let t=e.clone();return t.inflateCoords(this.m_distance,this.m_distance),t}progress(){}static buildPoint(e,t,n,r){r.x=e.x+t*Math.cos(n),r.y=e.y+t*Math.sin(n),r.type=e.type,r.z=e.z,r.m=e.m,r.m_next=-1,r.m_prev=-1}addPoint(e){this.m_offsetPts.push(e.clone()),this.m_offsetPtCount++}addPointEx(e,t){if(this.m_offsetPtCount===0){this.addPoint(e);return}let n=this.m_srcPtCount,r=this.m_srcPts[t===0?n-1:t-1],i=this.m_srcPts[t],a=D.dotSign(r,i,this.m_offsetPts[this.m_offsetPtCount-1],e);if(a>0){this.addPoint(e);return}if(a<0){if(D.dotSign(r,i,i,this.m_offsetPts[this.m_offsetPtCount-1])>0){let i=new T,a;a=t===0?n-2:t===1?n-1:t-2;let o=this.m_srcPts[a],s=Math.atan2(r.y-o.y,r.x-o.x);if(D.buildPoint(r,this.m_distance,s-m,i),this.m_offsetPts[this.m_offsetPtCount-1]=i.clone(),this.m_joins===1||this.m_joins===2){i.x=(i.x+r.x)*.5,i.y=(i.y+r.y)*.5,this.addPoint(i),D.buildPoint(r,this.m_distance,this.m_a1+m,i);let e=i.clone();e.x=(e.x+r.x)*.5,e.y=(e.y+r.y)*.5,e.type|=256,this.addPoint(e),this.addPoint(i)}else D.buildPoint(r,this.m_distance,this.m_a1+m,i),i.type|=256,this.addPoint(i);this.addPointEx(e,t)}else{let e=new T;if(D.buildPoint(i,this.m_distance,this.m_a1+m,e),this.addPoint(e),this.m_joins===1||this.m_joins===2){e.x=(e.x+i.x)*.5,e.y=(e.y+i.y)*.5,this.addPoint(e),D.buildPoint(i,this.m_distance,this.m_a2-m,e);let t=e.clone();t.x=(t.x+i.x)*.5,t.y=(t.y+i.y)*.5,t.type|=256,this.addPoint(t),this.addPoint(e)}else D.buildPoint(i,this.m_distance,this.m_a2-m,e),e.type|=256,this.addPoint(e)}}}buildOffset(){let e=new T,t=this.m_srcPtCount;this.m_offsetPtCount=0;let n=this.m_tolerance*.5,r=0,i=0;for(let a=0;a<t;a++){let o=this.m_srcPts[a],s=a===0?this.m_srcPts[t-1]:this.m_srcPts[a-1],c=a===t-1?this.m_srcPts[0]:this.m_srcPts[a+1],l=0,u,d;{let e=s.x-o.x,t=s.y-o.y,n=c.x-o.x,f=c.y-o.y;u=Math.atan2(t,e),d=Math.atan2(f,n),this.m_a1=u,this.m_a2=d,a===0&&(r=u,i=d),l=p.orientationRobust(o.asPoint2D(),s.asPoint2D(),c.asPoint2D())}let f=d;d<u&&(d+=h);let g=Math.abs(Math.abs(u-d)-Math.PI)<1e-8;if(g||l*this.m_distance>0){if(!g&&(this.m_joins===1||this.m_joins===2)){D.buildPoint(o,this.m_distance,u+m,e),this.addPoint(e);let t=.001;e.x=o.x+(e.x-o.x)*t,e.y=o.y+(e.y-o.y)*t,this.addPoint(e),D.buildPoint(o,this.m_distance,d-m,e);let n=e.clone();n.x=o.x+(n.x-o.x)*t,n.y=o.y+(n.y-o.y)*t,n.type|=256,this.addPoint(n),this.addPoint(e)}else{let t=(d-u)*.5,n=t===0?this.m_distance:this.m_distance/Math.abs(Math.sin(t));D.buildPoint(o,n,(u+d)*.5,e),this.addPointEx(e,a)}continue}if(o.type&512){let t=1-n/Math.abs(this.m_distance),r=1,i=this.m_distance<0?-Math.PI:Math.PI;if(t>-1&&t<1){let e=Math.acos(t)*2;e<C&&(e=C),r=Math.trunc(Math.PI/e+1.5),r>1&&(i/=r)}r<=1&&(r=2,i/=2);let s=u+m;D.buildPoint(o,this.m_distance,s,e),a===0&&(e.type|=w),this.addPointEx(e,a);let c=this.m_distance/Math.cos(i/2);for(s+=i/2,D.buildPoint(o,c,s,e),e.type|=w,this.addPoint(e);--r>0;)s+=i,D.buildPoint(o,c,s,e),e.type|=w,this.addPoint(e);D.buildPoint(o,this.m_distance,d-m,e),e.type|=w,this.addPoint(e);continue}if(this.m_joins===1){D.buildPoint(o,this.m_distance,u+m,e),this.addPointEx(e,a),D.buildPoint(o,this.m_distance,d-m,e),this.addPoint(e);continue}if(this.m_joins===0){let t=1-n/Math.abs(this.m_distance),r=1,i=d-m-(u+m);if(t>-1&&t<1){let e=Math.acos(t)*2;e<C&&(e=C),r=Math.trunc(Math.abs(i)/e+1.5),r>1&&(i/=r)}let s=this.m_distance/Math.cos(i*.5),c=u+m+i*.5;for(D.buildPoint(o,s,c,e),this.addPointEx(e,a);--r>0;)c+=i,D.buildPoint(o,s,c,e),this.addPoint(e);continue}if(this.m_joins===2){let t=s.x-o.x,n=s.y-o.y,r=c.x-o.x,i=c.y-o.y,l=Math.sqrt(t*t+n*n),f=Math.sqrt(r*r+i*i),m=(t*r+n*i)/l/f;if(m=Math.max(m,-1),m>1-1e-8){D.buildPoint(o,S*this.m_distance,d-Math.PI*.25,e),this.addPointEx(e,a),D.buildPoint(o,S*this.m_distance,d+Math.PI*.25,e),this.addPoint(e);continue}let h=Math.abs(this.m_distance/Math.sin(Math.acos(m)*.5)),g=Math.abs(this.m_miterLimit*this.m_distance);if(h>g){let t=(d-u)*.5,n=this.m_distance/Math.abs(Math.sin(t));D.buildPoint(o,n,(u+d)*.5,e);let r=p.construct(e.x,e.y),i=p.construct(o.x,o.y),s=new p;s.setSub(r,i);let c=new p;c.setScaleAdd(g/s.length(),s,i);let l=Math.sqrt(h*h-this.m_distance*this.m_distance),f=(h-g)*Math.abs(this.m_distance)/l;this.m_distance>0?s.rightPerpendicularThis():s.leftPerpendicularThis(),s.scale(f/s.length());let m=new p;m.setAdd(c,s);let _=new p;_.setSub(c,s),e.x=m.x,e.y=m.y,this.addPointEx(e,a),e.x=_.x,e.y=_.y,this.addPoint(e);continue}let _=(d-u)*.5,v=this.m_distance/Math.abs(Math.sin(_));D.buildPoint(o,v,(u+d)*.5,e),this.addPointEx(e,a);continue}{d=f;let t;if(this.m_distance>0?(d>u&&(d-=h),t=u-d<m):(d<u&&(d+=h),t=d-u<m),t){let t=this.m_distance*S,n;n=t<0?u+Math.PI*.25:u+3*Math.PI*.25,D.buildPoint(o,t,n,e),this.addPointEx(e,a),n=t<0?d-Math.PI*.25:d-3*Math.PI*.25,D.buildPoint(o,t,n,e),this.addPoint(e)}else{let t=(d-u)*.5,n=this.m_distance/Math.abs(Math.sin(t));d<u&&(d+=h),D.buildPoint(o,n,(u+d)/2,e),this.addPointEx(e,a)}}}return this.m_a1=r,this.m_a2=i,this.addPointEx(this.m_offsetPts[0],0),this.m_offsetPts[0]=this.m_offsetPts[this.m_offsetPtCount-1].clone(),this.removeBadSegsFast()}removeBadSegsFast(){for(let e=0;e<this.m_offsetPtCount;e++){let t=this.m_offsetPts[e];t.m_next=e+1,t.m_prev=e-1}this.m_offsetPts[0].m_prev=this.m_offsetPtCount-2,this.m_offsetPts[this.m_offsetPtCount-2].m_next=0;let e=this.m_offsetPtCount,t=0;for(let n=0;n<e;n++)if(this.m_offsetPts[t].type&256){let n=this.m_offsetPts[t].m_next,r=this.deleteClosedSeg(t);if(r!==-1){if(t>r){t=r,e=0;do e++,t=this.m_offsetPts[t].m_next;while(t!==r)}t=r}else{s(this.m_offsetPts[t].m_next===n);break}}else t=this.m_offsetPts[t].m_next;return this.compressOffsetArray(t),!0}deleteClosedSeg(e){let t=this.m_offsetPtCount-1,n=e;for(let r=1;r<=t-2&&(n=this.m_offsetPts[n].m_next,e!==n);r++){let t=n,i=e;for(let a=1;a<=r&&(i=this.m_offsetPts[i].m_prev,i!==e);a++){if(!(this.m_offsetPts[i].type&256)&&!(this.m_offsetPts[t].type&256)){let e=this.handleClosedIntersection(i,t);if(e!==-1)return e}if(t=this.m_offsetPts[t].m_prev,t===n)break}}return-1}handleClosedIntersection(e,t){let n=this.m_offsetPts[this.m_offsetPts[e].m_prev],r=this.m_offsetPts[e],i=this.m_offsetPts[this.m_offsetPts[t].m_prev],a=this.m_offsetPts[t];if(!this.sectGraphicRect(n,r,i,a))return-1;if(p.orientationRobustEx(n.asPoint2D(),r.asPoint2D(),i.asPoint2D(),a.asPoint2D())*this.m_distance<0){let o=this.findIntersection(n,r,i,a),s=!1;if(o[0]>=0){let c=E();if(o[0]>=0&&o[0]<=1&&(c.pt.x=g(n.x,r.x,o[0]),c.pt.y=g(n.y,r.y,o[0]),this.m_bUseZ&&(c.pt.z=g(i.z,a.z,o[1])),this.m_bUseM&&(c.pt.m=g(i.m,a.m,o[1])),(o[1]===0||o[1]===1)&&(o[0]===0||o[0]===1)&&(c.bAtExistingPt=!0),s=!((o[1]===0||o[1]===1)&&o[0]>0&&o[0]<1||(o[0]===0||o[0]===1)&&o[1]>0&&o[1]<1)),s&&!c.bAtExistingPt){let n=!1,a=c.pt.asPoint2D(),o=i.asPoint2D(),s=c.pt.asPoint2D(),l=this.m_offsetPts[e].m_prev;for(;;){if(p.getClosestCoordinate(o,s,a,!1)<1e-8){n=!1;break}if((s.y>a.y&&o.y<=a.y||s.y<a.y&&s.y<=a.y)&&p.orientationRobustEx(s,a,s,o)<0&&(n=!n),o.x=s.x,o.y=s.y,l=this.m_offsetPts[l].m_next,l===t)break;s.x=this.m_offsetPts[l].x,s.y=this.m_offsetPts[l].y}if(n)return-1;let u=this.m_offsetPts[e].m_prev;return c.pt.type=r.type,c.pt.m_next=t,c.pt.m_prev=u,this.m_offsetPts[e]=c.pt,this.m_offsetPts[t].m_prev=e,t}}}return-1}sectGraphicRect(e,t,n,r){return Math.max(e.x,t.x)>=Math.min(n.x,r.x)&&Math.max(n.x,r.x)>=Math.min(e.x,t.x)&&Math.max(e.y,t.y)>=Math.min(n.y,r.y)&&Math.max(n.y,r.y)>=Math.min(e.y,t.y)}findIntersection(e,t,n,r){let[i,a,o,s]=[e,t,n,r].map(e=>e.asPoint2D());if(i.equals(o))return[0,0];if(i.equals(s))return[0,1];if(a.equals(o))return[1,0];if(a.equals(s))return[1,1];let c=[];return d.segmentIntersectRobust(i,a,o,s,1e-15,c)===1?c:[-1,-1]}compressOffsetArray(e){for(;this.m_offsetPts[e].m_prev<e;)e=this.m_offsetPts[e].m_prev;let t=0,n=e;do{let e=this.m_offsetPts[n].clone();this.m_offsetPts[t]=e,n=e.m_next,t++}while(n!==e);this.m_offsetPts[t]=this.m_offsetPts[0].clone(),this.m_offsetPtCount=t+1}addPart(e,t,n){if(!(t<2)){for(let n=0;n<t;n++){let t=this.m_offsetPts[e+n];if(n?this.m_bUseZ?this.m_resultPath.lineTo3DCoords(t.x,t.y,t.z):this.m_resultPath.lineToCoords(t.x,t.y):this.m_bUseZ?this.m_resultPath.startPath3DCoords(t.x,t.y,t.z):this.m_resultPath.startPathCoords(t.x,t.y),this.m_bUseM){let e=this.m_resultPath.getPointCount()-1;this.m_resultPath.setAttribute(2,e,0,t.m)}}n&&this.m_resultPath.closePathWithLine()}}offsetMultiPath(e){let t=f(this.m_inputGeometry,0,this.m_tolerance,0,this.m_progressTracker,12e3),n=t.querySegmentIterator();n.resetToFirstPath();let r=-1;for(;n.nextPath();)r++,this.offsetPath(t,r,e)}offsetPath(e,t,n){let r=e.getPathStart(t),i=e.getPathEnd(t);if(this.m_resultPath=n,e.isClosedPath(t)){let t=e.getXY(r);for(;i>r&&e.getXY(i-1).equals(t);)i--;if(i-r>=2){this.m_srcPtCount=i-r,this.m_srcPts.length=this.m_srcPtCount;for(let t=r;t<i;t++)this.progress(),this.m_srcPts[t-r]=T.construct(e.getXY(t),this.m_bUseZ?e.getAttributeAsDbl(1,t,0):0,this.m_bUseM?e.getAttributeAsDbl(2,t,0):0);this.buildOffset()&&this.addPart(0,this.m_offsetPtCount-1,!0)}}else{let t=e.getXY(r);for(;r<i-1&&e.getXY(r+1).equals(t);)r++;let n=e.getXY(i-1);for(;r<i-1&&e.getXY(i-2).equals(n);)i--;if(i-r>=2){this.m_srcPtCount=(i-r)*2-2,this.m_srcPts.length=this.m_srcPtCount;let n=T.construct(t,this.m_bUseZ?e.getAttributeAsDbl(1,r,0):0,this.m_bUseM?e.getAttributeAsDbl(2,r,0):0);n.type|=1536,this.m_srcPts[0]=n;let a=1,o=this.m_srcPtCount-1;for(let t=r+1;t<i-1;t++,a++,o--)this.progress(),n=T.construct(e.getXY(t),this.m_bUseZ?e.getAttributeAsDbl(1,t,0):0,this.m_bUseM?e.getAttributeAsDbl(2,t,0):0),this.m_srcPts[a]=n.clone(),n.type|=w,this.m_srcPts[o]=n.clone();if(n=T.construct(e.getXY(i-1),this.m_bUseZ?e.getAttributeAsDbl(1,i-1,0):0,this.m_bUseM?e.getAttributeAsDbl(2,i-1,0):0),n.type|=512,this.m_srcPts[a]=n.clone(),this.buildOffset()){if(this.m_offsetPts.length>=2){let e=-1,t=-1,n=!!(this.m_offsetPts[this.m_offsetPtCount-1].type&w);n||(e=0);for(let r=1;r<this.m_offsetPtCount;r++){this.progress();let i=!!(this.m_offsetPts[r].type&w);i?n||(t=r-1,t-e+1>1&&this.addPart(e,t-e+1,!1)):n&&(e=r-1),n=i}n||(t=this.m_offsetPtCount-1,t-e+1>1&&this.addPart(e,t-e+1,!1))}else{let e=this.m_offsetPtCount-1;e-0>=1&&this.addPart(0,e-0+1,!1)}}}}this.m_srcPts.length=0,this.m_srcPtCount=0,this.m_offsetPts.length=0,this.m_offsetPtCount=0}static dotSign(e,t,n,r){let i=t.x-e.x,a=t.y-e.y,o=r.x-n.x,s=r.y-n.y,c=_(i,a,o,s);return v(c)}}class O{getOperatorType(){return 10108}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}executeMany(e,t,n,r,i,a,o,s=0){return new k(e,t,n,r,i,a,o,s)}execute(e,t,n,r,i,a,o,s=0){return new k(null,t,n,r,i,a,o,s).offset(e)}}class k extends t{m_inputGeoms;m_spatialReference;m_progressTracker;m_distance;m_miterLimit;m_joins;m_flattenError;m_index;m_options;constructor(e,t,n,r,i,a,o,s){super(),this.m_progressTracker=o,this.m_index=-1,this.m_inputGeoms=e,this.m_spatialReference=t,this.m_distance=n,this.m_joins=r,this.m_miterLimit=i,this.m_flattenError=a,this.m_options=s}tock(){return!0}getRank(){return 1}next(){if(!this.m_inputGeoms)return null;let e;for(;e=this.m_inputGeoms.next();)return this.m_index=this.m_inputGeoms.getGeometryID(),this.offset(e);return null}getGeometryID(){return this.m_index}offset(e){r(e);let t;return t=this.m_flattenError<=0?n(this.m_spatialReference,e,!0).total():this.m_flattenError,x(e,this.m_distance,this.m_joins,this.m_miterLimit,t,this.m_options,this.m_progressTracker)}}const A=new O;function j(e,t,n,r,i,a){return A.execute(e,t,n,r,i,a,null)}function M(t,n,r,i,a,o){let s=A.executeMany(new e(t),n,r,i,a,o,null);return Array.from(s)}function N(){return A.supportsCurves()}export{j as execute,M as executeMany,N as supportsCurves};
|
|
2
|
+
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{e as n}from"../../../chunks/Envelope.js";import{t as r,b as i,G as a,h as o,g as s,a as c}from"../../../chunks/Geometry.js";import{a as l,P as u,L as d,d as f}from"../../../chunks/MultiPathImpl.js";import{P as p,l as m,n as h,r as g,u as _,h as v}from"../../../chunks/Point2D.js";import{s as y}from"../../../chunks/Bufferer-CclWhXVb.js";import{O as b}from"../../../chunks/OperatorGraphicBuffer.js";function x(e,t,n,a,o,s,c){if(e===null&&i(``),e.getDimension()<1&&i(``),o>0||i(``),r(e),t===0||e.isEmpty())return e;let l=new D(c);return l.m_bUseZ=e.hasAttribute(1),l.m_bUseM=e.hasAttribute(2),l.m_inputGeometry=e,l.m_distance=t,l.m_tolerance=o,l.m_joins=n,l.m_miterLimit=a>1?a:1,l.m_miterLimit=y(l.m_miterLimit),l.m_progressCounter=0,l.m_options=s,l.constructOffset()}const S=1.4142135623730951,C=.017453292519943295,w=1024;class T{x;y;m_next;m_prev;z;m;type;static construct(e,t,n){let r=new T;return r.x=e.x,r.y=e.y,r.m_next=-1,r.m_prev=-1,r.z=t,r.m=n,r.type=0,r}clone(){let e=new T;return e.x=this.x,e.y=this.y,e.m_next=this.m_next,e.m_prev=this.m_prev,e.z=this.z,e.m=this.m,e.type=this.type,e}asPoint2D(){return new p(this.x,this.y)}}function E(){return{pt:new T,bAtExistingPt:!1}}class D{m_progressTracker;m_inputGeometry;m_distance=-1;m_tolerance=-1;m_miterLimit=10;m_joins=0;m_progressCounter=0;m_options=0;m_bUseZ=!1;m_bUseM=!1;m_srcPts=[];m_srcPtCount=0;m_offsetPts=[];m_offsetPtCount=0;m_resultPath;m_a1=0;m_a2=0;constructor(e){this.m_progressTracker=e}constructOffset(){let t=this.m_inputGeometry.getGeometryType();if(t===a.enumLine)return this.offsetLine();if(t===a.enumEnvelope)return this.offsetEnvelope();if(o(t)){let e=new l;return e.addSegment(this.m_inputGeometry,!0),this.m_inputGeometry=e,this.constructOffset()}if(t===a.enumPolyline){let e=new l;return this.offsetMultiPath(e),e}if(t===a.enumPolygon){if(this.m_options===1){let t;switch(this.m_joins){case 1:t=2;break;case 2:t=1;break;case 0:t=0;break;case 3:t=2;break;default:s(!1,`Invalid join type`)}return new b().executeMany(new e([this.m_inputGeometry]),null,[-1],t,1,this.m_miterLimit,this.m_tolerance,360,!1,0,null).next()}let t=new u;return this.offsetMultiPath(t),t}c(``)}offsetLine(){let e=this.m_inputGeometry,t=e.getStartXY(),n=e.getEndXY(),r=new p;r.setSub(n,t),r.normalize(),r.leftPerpendicularThis(),r.scale(this.m_distance),t.addThis(r),n.addThis(r);let i=e.clone();return i.setStartXY(t),i.setEndXY(n),i}offsetEnvelope(){let e=this.m_inputGeometry;if(this.m_distance>0&&this.m_joins!==2){let t=new u;return t.addEnvelope(e,!1),this.m_inputGeometry=t,this.constructOffset()}let t=e.clone();return t.inflateCoords(this.m_distance,this.m_distance),t}progress(){}static buildPoint(e,t,n,r){r.x=e.x+t*Math.cos(n),r.y=e.y+t*Math.sin(n),r.type=e.type,r.z=e.z,r.m=e.m,r.m_next=-1,r.m_prev=-1}addPoint(e){this.m_offsetPts.push(e.clone()),this.m_offsetPtCount++}addPointEx(e,t){if(this.m_offsetPtCount===0){this.addPoint(e);return}let n=this.m_srcPtCount,r=this.m_srcPts[t===0?n-1:t-1],i=this.m_srcPts[t],a=D.dotSign(r,i,this.m_offsetPts[this.m_offsetPtCount-1],e);if(a>0){this.addPoint(e);return}if(a<0){if(D.dotSign(r,i,i,this.m_offsetPts[this.m_offsetPtCount-1])>0){let i=new T,a;a=t===0?n-2:t===1?n-1:t-2;let o=this.m_srcPts[a],s=Math.atan2(r.y-o.y,r.x-o.x);if(D.buildPoint(r,this.m_distance,s-m,i),this.m_offsetPts[this.m_offsetPtCount-1]=i.clone(),this.m_joins===1||this.m_joins===2){i.x=(i.x+r.x)*.5,i.y=(i.y+r.y)*.5,this.addPoint(i),D.buildPoint(r,this.m_distance,this.m_a1+m,i);let e=i.clone();e.x=(e.x+r.x)*.5,e.y=(e.y+r.y)*.5,e.type|=256,this.addPoint(e),this.addPoint(i)}else D.buildPoint(r,this.m_distance,this.m_a1+m,i),i.type|=256,this.addPoint(i);this.addPointEx(e,t)}else{let e=new T;if(D.buildPoint(i,this.m_distance,this.m_a1+m,e),this.addPoint(e),this.m_joins===1||this.m_joins===2){e.x=(e.x+i.x)*.5,e.y=(e.y+i.y)*.5,this.addPoint(e),D.buildPoint(i,this.m_distance,this.m_a2-m,e);let t=e.clone();t.x=(t.x+i.x)*.5,t.y=(t.y+i.y)*.5,t.type|=256,this.addPoint(t),this.addPoint(e)}else D.buildPoint(i,this.m_distance,this.m_a2-m,e),e.type|=256,this.addPoint(e)}}}buildOffset(){let e=new T,t=this.m_srcPtCount;this.m_offsetPtCount=0;let n=this.m_tolerance*.5,r=0,i=0;for(let a=0;a<t;a++){let o=this.m_srcPts[a],s=a===0?this.m_srcPts[t-1]:this.m_srcPts[a-1],c=a===t-1?this.m_srcPts[0]:this.m_srcPts[a+1],l=0,u,d;{let e=s.x-o.x,t=s.y-o.y,n=c.x-o.x,f=c.y-o.y;u=Math.atan2(t,e),d=Math.atan2(f,n),this.m_a1=u,this.m_a2=d,a===0&&(r=u,i=d),l=p.orientationRobust(o.asPoint2D(),s.asPoint2D(),c.asPoint2D())}let f=d;d<u&&(d+=h);let g=Math.abs(Math.abs(u-d)-Math.PI)<1e-8;if(g||l*this.m_distance>0){if(!g&&(this.m_joins===1||this.m_joins===2)){D.buildPoint(o,this.m_distance,u+m,e),this.addPoint(e);let t=.001;e.x=o.x+(e.x-o.x)*t,e.y=o.y+(e.y-o.y)*t,this.addPoint(e),D.buildPoint(o,this.m_distance,d-m,e);let n=e.clone();n.x=o.x+(n.x-o.x)*t,n.y=o.y+(n.y-o.y)*t,n.type|=256,this.addPoint(n),this.addPoint(e)}else{let t=(d-u)*.5,n=t===0?this.m_distance:this.m_distance/Math.abs(Math.sin(t));D.buildPoint(o,n,(u+d)*.5,e),this.addPointEx(e,a)}continue}if(o.type&512){let t=1-n/Math.abs(this.m_distance),r=1,i=this.m_distance<0?-Math.PI:Math.PI;if(t>-1&&t<1){let e=Math.acos(t)*2;e<C&&(e=C),r=Math.trunc(Math.PI/e+1.5),r>1&&(i/=r)}r<=1&&(r=2,i/=2);let s=u+m;D.buildPoint(o,this.m_distance,s,e),a===0&&(e.type|=w),this.addPointEx(e,a);let c=this.m_distance/Math.cos(i/2);for(s+=i/2,D.buildPoint(o,c,s,e),e.type|=w,this.addPoint(e);--r>0;)s+=i,D.buildPoint(o,c,s,e),e.type|=w,this.addPoint(e);D.buildPoint(o,this.m_distance,d-m,e),e.type|=w,this.addPoint(e);continue}if(this.m_joins===1){D.buildPoint(o,this.m_distance,u+m,e),this.addPointEx(e,a),D.buildPoint(o,this.m_distance,d-m,e),this.addPoint(e);continue}if(this.m_joins===0){let t=1-n/Math.abs(this.m_distance),r=1,i=d-m-(u+m);if(t>-1&&t<1){let e=Math.acos(t)*2;e<C&&(e=C),r=Math.trunc(Math.abs(i)/e+1.5),r>1&&(i/=r)}let s=this.m_distance/Math.cos(i*.5),c=u+m+i*.5;for(D.buildPoint(o,s,c,e),this.addPointEx(e,a);--r>0;)c+=i,D.buildPoint(o,s,c,e),this.addPoint(e);continue}if(this.m_joins===2){let t=s.x-o.x,n=s.y-o.y,r=c.x-o.x,i=c.y-o.y,l=Math.sqrt(t*t+n*n),f=Math.sqrt(r*r+i*i),m=(t*r+n*i)/l/f;if(m=Math.max(m,-1),m>1-1e-8){D.buildPoint(o,S*this.m_distance,d-Math.PI*.25,e),this.addPointEx(e,a),D.buildPoint(o,S*this.m_distance,d+Math.PI*.25,e),this.addPoint(e);continue}let h=Math.abs(this.m_distance/Math.sin(Math.acos(m)*.5)),g=Math.abs(this.m_miterLimit*this.m_distance);if(h>g){let t=(d-u)*.5,n=this.m_distance/Math.abs(Math.sin(t));D.buildPoint(o,n,(u+d)*.5,e);let r=p.construct(e.x,e.y),i=p.construct(o.x,o.y),s=new p;s.setSub(r,i);let c=new p;c.setScaleAdd(g/s.length(),s,i);let l=Math.sqrt(h*h-this.m_distance*this.m_distance),f=(h-g)*Math.abs(this.m_distance)/l;this.m_distance>0?s.rightPerpendicularThis():s.leftPerpendicularThis(),s.scale(f/s.length());let m=new p;m.setAdd(c,s);let _=new p;_.setSub(c,s),e.x=m.x,e.y=m.y,this.addPointEx(e,a),e.x=_.x,e.y=_.y,this.addPoint(e);continue}let _=(d-u)*.5,v=this.m_distance/Math.abs(Math.sin(_));D.buildPoint(o,v,(u+d)*.5,e),this.addPointEx(e,a);continue}{d=f;let t;if(this.m_distance>0?(d>u&&(d-=h),t=u-d<m):(d<u&&(d+=h),t=d-u<m),t){let t=this.m_distance*S,n;n=t<0?u+Math.PI*.25:u+3*Math.PI*.25,D.buildPoint(o,t,n,e),this.addPointEx(e,a),n=t<0?d-Math.PI*.25:d-3*Math.PI*.25,D.buildPoint(o,t,n,e),this.addPoint(e)}else{let t=(d-u)*.5,n=this.m_distance/Math.abs(Math.sin(t));d<u&&(d+=h),D.buildPoint(o,n,(u+d)/2,e),this.addPointEx(e,a)}}}return this.m_a1=r,this.m_a2=i,this.addPointEx(this.m_offsetPts[0],0),this.m_offsetPts[0]=this.m_offsetPts[this.m_offsetPtCount-1].clone(),this.removeBadSegsFast()}removeBadSegsFast(){for(let e=0;e<this.m_offsetPtCount;e++){let t=this.m_offsetPts[e];t.m_next=e+1,t.m_prev=e-1}this.m_offsetPts[0].m_prev=this.m_offsetPtCount-2,this.m_offsetPts[this.m_offsetPtCount-2].m_next=0;let e=this.m_offsetPtCount,t=0;for(let n=0;n<e;n++)if(this.m_offsetPts[t].type&256){let n=this.m_offsetPts[t].m_next,r=this.deleteClosedSeg(t);if(r!==-1){if(t>r){t=r,e=0;do e++,t=this.m_offsetPts[t].m_next;while(t!==r)}t=r}else{s(this.m_offsetPts[t].m_next===n);break}}else t=this.m_offsetPts[t].m_next;return this.compressOffsetArray(t),!0}deleteClosedSeg(e){let t=this.m_offsetPtCount-1,n=e;for(let r=1;r<=t-2&&(n=this.m_offsetPts[n].m_next,e!==n);r++){let t=n,i=e;for(let a=1;a<=r&&(i=this.m_offsetPts[i].m_prev,i!==e);a++){if(!(this.m_offsetPts[i].type&256)&&!(this.m_offsetPts[t].type&256)){let e=this.handleClosedIntersection(i,t);if(e!==-1)return e}if(t=this.m_offsetPts[t].m_prev,t===n)break}}return-1}handleClosedIntersection(e,t){let n=this.m_offsetPts[this.m_offsetPts[e].m_prev],r=this.m_offsetPts[e],i=this.m_offsetPts[this.m_offsetPts[t].m_prev],a=this.m_offsetPts[t];if(!this.sectGraphicRect(n,r,i,a))return-1;if(p.orientationRobustEx(n.asPoint2D(),r.asPoint2D(),i.asPoint2D(),a.asPoint2D())*this.m_distance<0){let o=this.findIntersection(n,r,i,a),s=!1;if(o[0]>=0){let c=E();if(o[0]>=0&&o[0]<=1&&(c.pt.x=g(n.x,r.x,o[0]),c.pt.y=g(n.y,r.y,o[0]),this.m_bUseZ&&(c.pt.z=g(i.z,a.z,o[1])),this.m_bUseM&&(c.pt.m=g(i.m,a.m,o[1])),(o[1]===0||o[1]===1)&&(o[0]===0||o[0]===1)&&(c.bAtExistingPt=!0),s=!((o[1]===0||o[1]===1)&&o[0]>0&&o[0]<1||(o[0]===0||o[0]===1)&&o[1]>0&&o[1]<1)),s&&!c.bAtExistingPt){let n=!1,a=c.pt.asPoint2D(),o=i.asPoint2D(),s=c.pt.asPoint2D(),l=this.m_offsetPts[e].m_prev;for(;;){if(p.getClosestCoordinate(o,s,a,!1)<1e-8){n=!1;break}if((s.y>a.y&&o.y<=a.y||s.y<a.y&&s.y<=a.y)&&p.orientationRobustEx(s,a,s,o)<0&&(n=!n),o.x=s.x,o.y=s.y,l=this.m_offsetPts[l].m_next,l===t)break;s.x=this.m_offsetPts[l].x,s.y=this.m_offsetPts[l].y}if(n)return-1;let u=this.m_offsetPts[e].m_prev;return c.pt.type=r.type,c.pt.m_next=t,c.pt.m_prev=u,this.m_offsetPts[e]=c.pt,this.m_offsetPts[t].m_prev=e,t}}}return-1}sectGraphicRect(e,t,n,r){return Math.max(e.x,t.x)>=Math.min(n.x,r.x)&&Math.max(n.x,r.x)>=Math.min(e.x,t.x)&&Math.max(e.y,t.y)>=Math.min(n.y,r.y)&&Math.max(n.y,r.y)>=Math.min(e.y,t.y)}findIntersection(e,t,n,r){let[i,a,o,s]=[e,t,n,r].map(e=>e.asPoint2D());if(i.equals(o))return[0,0];if(i.equals(s))return[0,1];if(a.equals(o))return[1,0];if(a.equals(s))return[1,1];let c=[];return d.segmentIntersectRobust(i,a,o,s,1e-15,c)===1?c:[-1,-1]}compressOffsetArray(e){for(;this.m_offsetPts[e].m_prev<e;)e=this.m_offsetPts[e].m_prev;let t=0,n=e;do{let e=this.m_offsetPts[n].clone();this.m_offsetPts[t]=e,n=e.m_next,t++}while(n!==e);this.m_offsetPts[t]=this.m_offsetPts[0].clone(),this.m_offsetPtCount=t+1}addPart(e,t,n){if(!(t<2)){for(let n=0;n<t;n++){let t=this.m_offsetPts[e+n];if(n?this.m_bUseZ?this.m_resultPath.lineTo3DCoords(t.x,t.y,t.z):this.m_resultPath.lineToCoords(t.x,t.y):this.m_bUseZ?this.m_resultPath.startPath3DCoords(t.x,t.y,t.z):this.m_resultPath.startPathCoords(t.x,t.y),this.m_bUseM){let e=this.m_resultPath.getPointCount()-1;this.m_resultPath.setAttribute(2,e,0,t.m)}}n&&this.m_resultPath.closePathWithLine()}}offsetMultiPath(e){let t=f(this.m_inputGeometry,0,this.m_tolerance,0,this.m_progressTracker,12e3),n=t.querySegmentIterator();n.resetToFirstPath();let r=-1;for(;n.nextPath();)r++,this.offsetPath(t,r,e)}offsetPath(e,t,n){let r=e.getPathStart(t),i=e.getPathEnd(t);if(this.m_resultPath=n,e.isClosedPath(t)){let t=e.getXY(r);for(;i>r&&e.getXY(i-1).equals(t);)i--;if(i-r>=2){this.m_srcPtCount=i-r,this.m_srcPts.length=this.m_srcPtCount;for(let t=r;t<i;t++)this.progress(),this.m_srcPts[t-r]=T.construct(e.getXY(t),this.m_bUseZ?e.getAttributeAsDbl(1,t,0):0,this.m_bUseM?e.getAttributeAsDbl(2,t,0):0);this.buildOffset()&&this.addPart(0,this.m_offsetPtCount-1,!0)}}else{let t=e.getXY(r);for(;r<i-1&&e.getXY(r+1).equals(t);)r++;let n=e.getXY(i-1);for(;r<i-1&&e.getXY(i-2).equals(n);)i--;if(i-r>=2){this.m_srcPtCount=(i-r)*2-2,this.m_srcPts.length=this.m_srcPtCount;let n=T.construct(t,this.m_bUseZ?e.getAttributeAsDbl(1,r,0):0,this.m_bUseM?e.getAttributeAsDbl(2,r,0):0);n.type|=1536,this.m_srcPts[0]=n;let a=1,o=this.m_srcPtCount-1;for(let t=r+1;t<i-1;t++,a++,o--)this.progress(),n=T.construct(e.getXY(t),this.m_bUseZ?e.getAttributeAsDbl(1,t,0):0,this.m_bUseM?e.getAttributeAsDbl(2,t,0):0),this.m_srcPts[a]=n.clone(),n.type|=w,this.m_srcPts[o]=n.clone();if(n=T.construct(e.getXY(i-1),this.m_bUseZ?e.getAttributeAsDbl(1,i-1,0):0,this.m_bUseM?e.getAttributeAsDbl(2,i-1,0):0),n.type|=512,this.m_srcPts[a]=n.clone(),this.buildOffset()){if(this.m_offsetPts.length>=2){let e=-1,t=-1,n=!!(this.m_offsetPts[this.m_offsetPtCount-1].type&w);n||(e=0);for(let r=1;r<this.m_offsetPtCount;r++){this.progress();let i=!!(this.m_offsetPts[r].type&w);i?n||(t=r-1,t-e+1>1&&this.addPart(e,t-e+1,!1)):n&&(e=r-1),n=i}n||(t=this.m_offsetPtCount-1,t-e+1>1&&this.addPart(e,t-e+1,!1))}else{let e=this.m_offsetPtCount-1;e-0>=1&&this.addPart(0,e-0+1,!1)}}}}this.m_srcPts.length=0,this.m_srcPtCount=0,this.m_offsetPts.length=0,this.m_offsetPtCount=0}static dotSign(e,t,n,r){let i=t.x-e.x,a=t.y-e.y,o=r.x-n.x,s=r.y-n.y,c=_(i,a,o,s);return v(c)}}class O{getOperatorType(){return 10108}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}executeMany(e,t,n,r,i,a,o,s=0){return new k(e,t,n,r,i,a,o,s)}execute(e,t,n,r,i,a,o,s=0){return new k(null,t,n,r,i,a,o,s).offset(e)}}class k extends t{m_inputGeoms;m_spatialReference;m_progressTracker;m_distance;m_miterLimit;m_joins;m_flattenError;m_index;m_options;constructor(e,t,n,r,i,a,o,s){super(),this.m_progressTracker=o,this.m_index=-1,this.m_inputGeoms=e,this.m_spatialReference=t,this.m_distance=n,this.m_joins=r,this.m_miterLimit=i,this.m_flattenError=a,this.m_options=s}tock(){return!0}getRank(){return 1}next(){if(!this.m_inputGeoms)return null;let e;for(;e=this.m_inputGeoms.next();)return this.m_index=this.m_inputGeoms.getGeometryID(),this.offset(e);return null}getGeometryID(){return this.m_index}offset(e){r(e);let t;return t=this.m_flattenError<=0?n(this.m_spatialReference,e,!0).total():this.m_flattenError,x(e,this.m_distance,this.m_joins,this.m_miterLimit,t,this.m_options,this.m_progressTracker)}}const A=new O;function j(e,t,n,r,i,a){return A.execute(e,t,n,r,i,a,null)}function M(t,n,r,i,a,o){let s=A.executeMany(new e(t),n,r,i,a,o,null);return Array.from(s)}function N(){return A.supportsCurves()}export{j as execute,M as executeMany,N as supportsCurves};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{
|
|
2
|
+
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{b as t,t as n,G as r,g as i}from"../../../chunks/Geometry.js";import{O as a}from"../../../chunks/GeometryCursor.js";import{Envelope2D as o}from"../../../chunks/Envelope2D.js";import{c as s}from"../../../chunks/Envelope.js";import{E as c,o as l,n as u}from"../../../chunks/MultiPathImpl.js";import{U as d,M as f,N as p,V as m,Q as h,R as g,T as _,L as v,aU as y,aV as b,aW as x}from"../../../chunks/UnitFactory.js";import{w as S}from"../../../chunks/Point2D.js";function C(e){e&&e.checkProgress()}class w{getOperatorType(){return 10012}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}executeMany(e,t,n,r){return new T(e,t,n,r)}}class T extends a{m_inputGeometryCursor;m_sr;m_progressTracker;m_shape=null;m_topoGraph=null;m_curveStitcher=null;m_stitchMaxDeviation=0;m_chainStack=[];m_bitsetToChains=null;m_chainsLists=null;m_options;m_visitedChainsIndex=-1;m_index=-1;m_geometryIndex=-1;m_progressCounter=0;m_currentIds=[];m_currentEdgeIds=[];constructor(e,n,r,i){super(),e||t(``),this.m_progressTracker=i,this.m_options=r===0?3:r,(this.m_options<=0||this.m_options>63)&&t(`options`),this.m_inputGeometryCursor=e,this.m_sr=n}tock(){return!0}getRank(){return 1}next(){if(this.m_index===-1){this.m_shape=new c;let e=new o;e.setEmpty(),this.m_geometryIndex=this.m_shape.createGeometryUserIndex();for(let i=this.m_inputGeometryCursor.next();i!==null;i=this.m_inputGeometryCursor.next()){n(i);let a=this.m_shape.addGeometry(i);i.getGeometryType()!==r.enumPolygon&&t(`Polygon Overlay only supports Polygons`),this.m_shape.setGeometryUserIndex(a,this.m_geometryIndex,this.m_inputGeometryCursor.getGeometryID());let s=this.m_inputGeometryCursor.getRank();s>l&&this.m_shape.assignRankToGeometryVertices(a,s);let c=new o;i.queryLooseEnvelope(c),e.mergeEnvelope2D(c),C(this.m_progressTracker)}this.m_inputGeometryCursor=null;let i=s(this.m_sr,e,!0),a=s(this.m_sr,e,!1);e.inflate(i.total()*10),this.m_shape.forceSetEnvelope2D(e),this.m_stitchMaxDeviation=0;let x=0;if(this.m_shape.hasCurves()){this.m_curveStitcher=new d;let t=f(i.total(),e);this.m_stitchMaxDeviation=p(i.total()),x=m(t,this.m_stitchMaxDeviation),h(this.m_shape,t,i.total(),12e3,this.m_curveStitcher,null,this.m_progressTracker)}if(g(this.m_shape,a,this.m_progressTracker)){_(this.m_shape,i.add(x),this.m_progressTracker,!0,!1);for(let e=this.m_shape.getFirstGeometry();e!==u;e=this.m_shape.getNextGeometry(e))this.m_shape.getGeometryType(e)===r.enumPolygon&&v(this.m_shape,e,-1,!1,u,this.m_progressTracker)}this.m_topoGraph=new y,this.m_topoGraph.buildGeometryParentageSets(),this.m_topoGraph.setEditShape(this.m_shape,this.m_progressTracker);let S=this.m_topoGraph.getFirstChain();for(let e=this.m_topoGraph.getChainFirstIsland(S);e!==u;e=this.m_topoGraph.getChainNextInParent(e))for(let t=this.m_topoGraph.getChainFirstIsland(e);t!==u;t=this.m_topoGraph.getChainNextInParent(t))this.m_chainStack.push(t);if(this.m_options&16){this.m_visitedChainsIndex=this.m_topoGraph.createUserIndexForChains(),this.m_bitsetToChains=new Map,this.m_chainsLists=new b;let e=[],t=this.m_topoGraph.getFirstChain();for(e.push(t);e.length>0;){let t=e.at(-1);e.pop();for(let n=this.m_topoGraph.getChainFirstIsland(t);n!==u;n=this.m_topoGraph.getChainNextInParent(n))for(let t=this.m_topoGraph.getChainFirstIsland(n);t!==u;t=this.m_topoGraph.getChainNextInParent(t)){let n=this.m_topoGraph.getChainBitSet(t);if(n!==null&&!n.isZero()){let e=this.m_bitsetToChains.has(n),r;e?r=this.m_bitsetToChains.get(n):(r=this.m_chainsLists.createList(),this.m_bitsetToChains.set(n,r)),this.m_chainsLists.addElement(r,t)}e.push(t)}}}}return this.makeNextGeometry()}getGeometryID(){return this.m_index}getGeometryIDs(){return this.m_currentIds.slice()}getBoundaryIDs(){return this.m_currentEdgeIds.slice()}buildIdsFromBitset(e,t){if(!e)return;let n=this.m_topoGraph.getGeometriesFromBits(e);if(n.length>0){for(let e=0,r=n.length;e<r;e++)t.push(this.m_shape.getGeometryUserIndex(n[e],this.m_geometryIndex));S(t)}}makeGeometryFromChainSinglePart(e){this.m_index++;let t=new c;this.m_curveStitcher!==null&&t.setCurveStitcherPointer(this.m_curveStitcher);let n=this.m_topoGraph.extractPolygonFromChainAndIslands(t,u,e,u);return this.m_curveStitcher!==null&&this.m_curveStitcher.stitchCurves(t,n,this.m_stitchMaxDeviation,!1),t.getGeometry(n)}makeGeometryFromChainMultiPart(e,t){this.m_index++;let n=new c;this.m_curveStitcher!==null&&n.setCurveStitcherPointer(this.m_curveStitcher);let r=this.m_bitsetToChains.has(t);i(r);let a=this.m_bitsetToChains.get(t),o=u;for(let e=this.m_chainsLists.getFirst(a);e!==b.st_nullNode();e=this.m_chainsLists.getNext(e)){let t=this.m_chainsLists.getElement(e);o=this.m_topoGraph.extractPolygonFromChainAndIslands(n,o,t,u),this.m_topoGraph.setChainUserIndex(t,this.m_visitedChainsIndex,1)}return this.m_curveStitcher!==null&&this.m_curveStitcher.stitchCurves(n,o,this.m_stitchMaxDeviation,!1),n.getGeometry(o)}makeNextGeometry(){for(C(this.m_progressTracker);this.m_chainStack.length>0;){this.m_currentIds.length=0,this.m_currentEdgeIds.length=0;let e=this.m_chainStack.at(-1);this.m_chainStack.pop();let t=this.m_topoGraph.getChainArea(e);if(t!==0){if(t<0)for(let t=this.m_topoGraph.getChainFirstIsland(e);t!==u;t=this.m_topoGraph.getChainNextInParent(t))this.m_topoGraph.getChainArea(t)>0&&this.m_chainStack.push(t);else{for(let t=this.m_topoGraph.getChainFirstIsland(e);t!==u;t=this.m_topoGraph.getChainNextInParent(t))this.m_topoGraph.getChainArea(t)<0&&this.m_chainStack.push(t);if(this.m_visitedChainsIndex!==-1&&this.m_topoGraph.getChainUserIndex(e,this.m_visitedChainsIndex)===1)continue;let t=e=>{let t=e.getUnorderedBitIterator(),n=0;for(;t.next()!==x.npos();)if(n++,n>1)return n;return n},n=t(this.m_topoGraph.getChainBitSet(e));if(n>0){if(n===1&&this.m_options&2||n>1&&this.m_options&1){let t=this.m_topoGraph.getChainBitSet(e);return this.buildIdsFromBitset(t,this.m_currentIds),this.m_options&16?this.makeGeometryFromChainMultiPart(e,t):this.makeGeometryFromChainSinglePart(e)}}else{if((this.m_options&12)==12){if(this.m_options&32){let t=this.m_topoGraph.getChainBoundaryBitSet(e);this.buildIdsFromBitset(t,this.m_currentEdgeIds)}return this.makeGeometryFromChainSinglePart(e)}if(this.m_options&4){let n=this.m_topoGraph.getChainBoundaryBitSet(e);if(t(n)>1)return this.m_options&32&&this.buildIdsFromBitset(n,this.m_currentEdgeIds),this.makeGeometryFromChainSinglePart(e);continue}if(this.m_options&8){let n=this.m_topoGraph.getChainBoundaryBitSet(e);if(t(n)===1)return this.m_options&32&&this.buildIdsFromBitset(n,this.m_currentEdgeIds),this.makeGeometryFromChainSinglePart(e);continue}}}}}return null}}const E=new w;function D(t,n,r){return E.executeMany(new e(t),n,r,null)}function O(){return E.supportsCurves()}export{D as executeMany,O as supportsCurves};
|