@arcgis/core 5.2.0-next.136 → 5.2.0-next.138
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/analysis/LineOfSightAnalysisObserver.d.ts +12 -0
- package/analysis/LineOfSightAnalysisObserver.js +1 -1
- package/analysis/LineOfSightAnalysisTarget.d.ts +12 -0
- package/analysis/LineOfSightAnalysisTarget.js +1 -1
- package/arcade/featureset/sources/FeatureLayerParquet.js +1 -1
- package/arcgisGlobal.d.ts +4 -0
- package/assets/components/assets/icon/blockHeightMedium16.json +1 -0
- package/assets/components/assets/icon/blockHeightMedium24.json +1 -0
- package/assets/components/assets/icon/blockHeightMedium32.json +1 -0
- package/assets/components/assets/icon/blockHeightShort16.json +1 -0
- package/assets/components/assets/icon/blockHeightShort24.json +1 -0
- package/assets/components/assets/icon/blockHeightShort32.json +1 -0
- package/assets/components/assets/icon/blockHeightTall16.json +1 -0
- package/assets/components/assets/icon/blockHeightTall24.json +1 -0
- package/assets/components/assets/icon/blockHeightTall32.json +1 -0
- package/assets/components/assets/icon/cursorCircle16.json +1 -0
- package/assets/components/assets/icon/cursorCircle24.json +1 -0
- package/assets/components/assets/icon/cursorCircle32.json +1 -0
- package/assets/components/assets/icon/dictionary16.json +1 -0
- package/assets/components/assets/icon/dictionary24.json +1 -0
- package/assets/components/assets/icon/dictionary32.json +1 -0
- package/assets/components/assets/icon/jobDependency16.json +1 -0
- package/assets/components/assets/icon/jobDependency24.json +1 -0
- package/assets/components/assets/icon/jobDependency32.json +1 -0
- package/assets/components/assets/icon/referenceChip16.json +1 -0
- package/assets/components/assets/icon/referenceChip24.json +1 -0
- package/assets/components/assets/icon/referenceChip32.json +1 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{4e6f95d8c624d513849a.js → 05963f57cbe5a5249496.js} +1 -1
- package/assets/esri/core/workers/chunks/{0b8681ca4a83e97f1f71.js → 067de1910190da228291.js} +1 -1
- package/assets/esri/core/workers/chunks/{3c0fd1c6cda44e9f40ab.js → 070684943698fa43c2b4.js} +1 -1
- package/assets/esri/core/workers/chunks/{bc1cb4b9a02e6c78deb7.js → 076e8d2e08ff2a013736.js} +1 -1
- package/assets/esri/core/workers/chunks/{c10e040368065411506a.js → 10445313d0d57b34511b.js} +1 -1
- package/assets/esri/core/workers/chunks/{d537c59b46cdaaf66034.js → 1188d0a136fffc009643.js} +1 -1
- package/assets/esri/core/workers/chunks/{20af3f085f60c32c6c53.js → 178083d8ed7707b45ca2.js} +1 -1
- package/assets/esri/core/workers/chunks/{f5efe3e800c6e23efcf3.js → 1819c45655c836b9a8d7.js} +1 -1
- package/assets/esri/core/workers/chunks/1b946714ca4a1a7359d4.js +2 -0
- package/assets/esri/core/workers/chunks/{d8d8b38ac8a91d9e45fc.js → 1cc744ab5eee5ee3bed8.js} +1 -1
- package/assets/esri/core/workers/chunks/{05e39b4de7f62c5b22cc.js → 20f75cc777af13fa249b.js} +1 -1
- package/assets/esri/core/workers/chunks/2a1ec30f9ad305763f81.js +2 -0
- package/assets/esri/core/workers/chunks/34570e6bbf559f18c1a5.js +1 -0
- package/assets/esri/core/workers/chunks/{60f6d5da9480dd36e877.js → 3dddae78286d05eb10fc.js} +1 -1
- package/assets/esri/core/workers/chunks/{9efd30bbd02ec0d1031b.js → 3ec3589f6e74d7cb87cf.js} +1 -1
- package/assets/esri/core/workers/chunks/{0bec054fca104f3bf141.js → 3f776d9fd2ab68b21fca.js} +1 -1
- package/assets/esri/core/workers/chunks/402a82c77420254831bc.js +1 -0
- package/assets/esri/core/workers/chunks/{e2ebf0ea3af2e6907987.js → 406f24ec13eb30d43405.js} +1 -1
- package/assets/esri/core/workers/chunks/43fc42405167a5537039.js +1 -0
- package/assets/esri/core/workers/chunks/{ddedc414bb478b376221.js → 46b2d4addfc73f9183a4.js} +1 -1
- package/assets/esri/core/workers/chunks/498d6dfd3bb0d3490548.js +1 -0
- package/assets/esri/core/workers/chunks/{36ef86701883a20dd6f6.js → 4a640548032355e57acd.js} +1 -1
- package/assets/esri/core/workers/chunks/5566f14afb63065e438f.js +1 -0
- package/assets/esri/core/workers/chunks/{c3b96d1d43afccd23e45.js → 590e6c70206122e4cc3c.js} +2 -2
- package/assets/esri/core/workers/chunks/{54860dd53a46cf4c47f3.js → 59295b99bdff4045a0e7.js} +1 -1
- package/assets/esri/core/workers/chunks/5aeb5e18514644fe2cf9.js +1 -0
- package/assets/esri/core/workers/chunks/{5da86409d70098fc6a10.js → 5b3cfe95314a75a735c1.js} +1 -1
- package/assets/esri/core/workers/chunks/{a54678bfa0f1807b61cd.js → 5c855af73ee3c3e764fb.js} +1 -1
- package/assets/esri/core/workers/chunks/{06da3409992bb1fa85b0.js → 5e90c1b49f2b7e21d05a.js} +39 -31
- package/assets/esri/core/workers/chunks/5fd099ca1024707387b2.js +1 -0
- package/assets/esri/core/workers/chunks/{30f808cac8a34f95ea6e.js → 6079d27f4ab319fb8f0c.js} +1 -1
- package/assets/esri/core/workers/chunks/66c2a28a851130b87c04.js +1 -0
- package/assets/esri/core/workers/chunks/{dac90b3631f7f7158f68.js → 67f15538c51838201fc7.js} +1 -1
- package/assets/esri/core/workers/chunks/{cfaba0470619786e1ef8.js → 68d8ae42ab71d01a70a5.js} +2 -2
- package/assets/esri/core/workers/chunks/6aebf7cfd294e88bf926.js +1 -0
- package/assets/esri/core/workers/chunks/{864e7030c4ddbfcf0114.js → 6ccf9535013fe672c93b.js} +1 -1
- package/assets/esri/core/workers/chunks/{ba7f0cf7e495d3ec2d55.js → 6e62581d933e7298d1f6.js} +1 -1
- package/assets/esri/core/workers/chunks/{83b5dd4029e00abd80bf.js → 700b1d5bc67b7e1b3ff3.js} +1 -1
- package/assets/esri/core/workers/chunks/{f9fea72cc222a30ef2f9.js → 72399062767abdfb0bee.js} +1 -1
- package/assets/esri/core/workers/chunks/{2a7fbfd77002a24bf737.js → 747461bb6a1bc2f0a64d.js} +1 -1
- package/assets/esri/core/workers/chunks/{c333f6ed42985bb2b11f.js → 7851aef196eea5d6c94e.js} +1 -1
- package/assets/esri/core/workers/chunks/{f0b6bd6fab5320c3082f.js → 7a05b18f655c1167ce0a.js} +1 -1
- package/assets/esri/core/workers/chunks/{04296b75d0f81fbd1bb5.js → 864194927d05ebc4cc31.js} +1 -1
- package/assets/esri/core/workers/chunks/{3c4a13a9f0b305394a26.js → 876f7633c15f1e31078d.js} +1 -1
- package/assets/esri/core/workers/chunks/{62298dba3f6cbdc3f4ae.js → 879b2f0ff1977bca9376.js} +1 -1
- package/assets/esri/core/workers/chunks/{b547b3bce729c9dac90d.js → 898359be6996fd9763b8.js} +1 -1
- package/assets/esri/core/workers/chunks/8cb716f110d164030309.js +1 -0
- package/assets/esri/core/workers/chunks/8dc1c3042267618fd710.js +2 -0
- package/assets/esri/core/workers/chunks/{625f02db93d7fbf175ca.js → 9001e9a1e81bce175ddd.js} +1 -1
- package/assets/esri/core/workers/chunks/{9ffa6c8d93d3443834c6.js → 912080c90b5cc2e817cf.js} +1 -1
- package/assets/esri/core/workers/chunks/96c50a0dda0f1503ef92.js +2 -0
- package/assets/esri/core/workers/chunks/{13e4379441499599c3b5.js → 9cbde13e536676767900.js} +1 -1
- package/assets/esri/core/workers/chunks/{408db4f32850b77264ae.js → 9cd3fcb5fca6f9dbbcd8.js} +1 -1
- package/assets/esri/core/workers/chunks/a054da6cbd8ee4774a57.js +1 -0
- package/assets/esri/core/workers/chunks/a05790444115e4cf1bcc.js +1 -0
- package/assets/esri/core/workers/chunks/{d1f2685782b423ef87a6.js → a556dd4e9e6d35e33a2c.js} +1 -1
- package/assets/esri/core/workers/chunks/{00d576d355599c88931e.js → bc38def1983089514e4b.js} +1 -1
- package/assets/esri/core/workers/chunks/{0725e515f3004bdd5c56.js → ca2adcbcf44454484fd5.js} +1 -1
- package/assets/esri/core/workers/chunks/{f3507b9e831ffd7a6bf8.js → cca8bd07bcd1d267a2e8.js} +1 -1
- package/assets/esri/core/workers/chunks/cfae60b9d2f2939e9c16.js +1 -0
- package/assets/esri/core/workers/chunks/{1d6b2a64f4e40e5cc13d.js → d201fbf3ceff946d2bd6.js} +1 -1
- package/assets/esri/core/workers/chunks/{4439078780d9ba49fd26.js → d51bb11baadc741c46bc.js} +1 -1
- package/assets/esri/core/workers/chunks/db1ab9b9c8bf5c7635d3.js +1 -0
- package/assets/esri/core/workers/chunks/de02a6a1f4810f99e9bb.js +1 -0
- package/assets/esri/core/workers/chunks/e630f3c56c077cb2bd8e.js +1 -0
- package/assets/esri/core/workers/chunks/e81173724e8de8c1e65b.js +1 -0
- package/assets/esri/core/workers/chunks/{2025288bed125594ceda.js → f6e62d2d279a328cbed7.js} +1 -1
- package/assets/esri/core/workers/chunks/{47c19778fcee7154ca38.js → f8bc474434fd365ab174.js} +1 -1
- package/assets/esri/core/workers/chunks/{9a20dc26cb9c7b2087cf.js → f95a1f878c9c1146180e.js} +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ar.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.bg.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.bs.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ca.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.cs.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.da.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.de.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.el.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.en.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.es.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.et.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.fi.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.fr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.he.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.hr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.hu.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.id.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.it.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ja.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ko.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.lt.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.lv.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.nl.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.no.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pl.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ro.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ru.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sk.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sl.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sv.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.th.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.tr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.uk.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.vi.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-TW.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ar.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.bg.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.bs.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ca.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.cs.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.da.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.de.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.el.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.es.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.et.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.fi.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.fr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.he.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.hr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.hu.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.id.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.it.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ja.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ko.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.lt.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.lv.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.nl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.no.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.pl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ro.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ru.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.sk.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.sl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.sr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.sv.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.th.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.tr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.uk.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.vi.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.zh-TW.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ar.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.bg.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.bs.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ca.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.cs.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.da.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.de.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.el.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.en.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.es.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.et.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.fi.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.fr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.he.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.hr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.hu.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.id.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.it.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ja.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ko.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.lt.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.lv.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.nl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.no.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ro.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ru.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sk.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sv.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.th.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.tr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.uk.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.vi.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-TW.json +1 -1
- package/chunks/Bufferer-CclWhXVb.js +1 -1
- package/chunks/Component.glsl.js +3 -3
- package/chunks/DefaultMaterial.glsl.js +2 -2
- package/chunks/Distance2DCalculator-DjIp2uQi.js +1 -1
- package/chunks/Envelope.js +1 -1
- package/chunks/Envelope2D.js +1 -1
- package/chunks/FocusArea.glsl.js +8 -10
- package/chunks/GaussianSplat.glsl.js +2 -2
- package/chunks/GeodeticDistanceCalculator-zRp89-dW.js +1 -1
- package/chunks/GeodeticUtils.js +1 -1
- package/chunks/Geometry.js +1 -1
- package/chunks/GeometryCleaner-CIE8Wfmb.js +1 -1
- package/chunks/GlobalIllumination.glsl.js +3 -3
- package/chunks/LineMarker.glsl.js +35 -42
- package/chunks/MultiPathImpl.js +1 -1
- package/chunks/OperatorAffineTransform.js +1 -1
- package/chunks/OperatorClip.js +1 -1
- package/chunks/OperatorDensify.js +1 -1
- package/chunks/OperatorDistance.js +1 -1
- package/chunks/OperatorGeneralize.js +1 -1
- package/chunks/OperatorGeodesicBuffer.js +1 -1
- package/chunks/OperatorGeodeticArea.js +1 -1
- package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
- package/chunks/OperatorGeodeticDistance.js +1 -1
- package/chunks/OperatorGeodeticLength.js +1 -1
- package/chunks/OperatorGraphicBuffer.js +1 -1
- package/chunks/OperatorIntegrate.js +1 -1
- package/chunks/OperatorMultiPartToSinglePart.js +1 -1
- package/chunks/OperatorProximity.js +1 -1
- package/chunks/OperatorProximityGeodesic.js +1 -1
- package/chunks/OperatorShapePreservingLength.js +1 -1
- package/chunks/OperatorShapePreservingProject.js +1 -1
- package/chunks/OperatorSimplifyOGC.js +1 -1
- package/chunks/Path.glsl.js +2 -2
- package/chunks/Point2D.js +1 -1
- package/chunks/RealisticTree.glsl.js +2 -2
- package/chunks/RibbonLine.glsl.js +51 -57
- package/chunks/SideCalculator2D-DX0718xq.js +1 -1
- package/chunks/Terrain.glsl.js +2 -2
- package/chunks/Transformation2D.js +1 -1
- package/chunks/UnitFactory.js +1 -1
- package/config.js +1 -1
- package/core/workers/RemoteClient.js +1 -1
- package/core/workers/workerFactory.js +1 -1
- package/editing/fieldUtils.d.ts +12 -0
- package/editing/sharedTemplates/templateDefinitions/TemplateDefinitionBase.js +1 -1
- package/geometry/operators/extendOperator.js +1 -1
- package/geometry/operators/gx/operatorAlphaShape.js +1 -1
- package/geometry/operators/gx/operatorBoundary.js +1 -1
- package/geometry/operators/gx/operatorBuffer.js +1 -1
- package/geometry/operators/gx/operatorConvexHull.js +1 -1
- package/geometry/operators/gx/operatorLabelPoint.js +1 -1
- package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
- package/geometry/operators/gx/operatorLocateBetween.js +1 -1
- package/geometry/operators/gx/operatorMinimumBoundingCircle.js +1 -1
- package/geometry/operators/gx/operatorOffset.js +1 -1
- package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
- package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
- package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
- package/geometry/operators/isNearOperator.js +1 -1
- package/geometry/operators/reshapeOperator.js +1 -1
- package/geometry/operators/support/jsonConverter.js +1 -1
- package/geometry/support/curves/ellipticArc7Utils.js +1 -1
- package/geometry/support/ellipseUtils.js +2 -0
- package/interfaces.d.ts +15 -18
- package/kernel.js +1 -1
- package/layers/LinkChartLayer.js +1 -1
- package/layers/ParquetLayer.js +1 -1
- package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
- package/layers/list/LayerItemCollection.d.ts +1 -0
- package/layers/list/types.d.ts +5 -1
- package/layers/orientedImagery/core/coverageUtils.js +1 -1
- package/layers/orientedImagery/queries.js +1 -1
- package/layers/support/TimeSeriesCalculation.d.ts +1 -1
- package/layers/support/TimeSeriesCalculation.js +1 -1
- package/layers/support/dataSeriesUtils.d.ts +10 -0
- package/layers/support/timeSeriesUtils.js +17 -6
- package/libs/lyr3d/Lyr3DModule.js +1 -1
- package/networks/UtilityNetwork.d.ts +15 -0
- package/networks/UtilityNetwork.js +1 -1
- package/package.json +4 -4
- package/popup/FeatureContent.d.ts +14 -1
- package/popup/FeatureContent.js +1 -1
- package/popup/FeatureContentCollection.d.ts +4 -10
- package/popup/FeatureContentCollection.js +1 -1
- package/popup/actions.js +1 -1
- package/popup/support/featureUtils.js +1 -1
- package/renderers/support/RenderingInfo.js +1 -1
- package/renderers/support/renderingInfoUtils.js +1 -1
- package/renderers/visualVariables/SizeVariable.d.ts +16 -20
- package/renderers/visualVariables/support/SizeStop.d.ts +6 -2
- package/rest/networks/support/TraceLocation.js +1 -1
- package/rest/networks/support/TraceResult.d.ts +7 -0
- package/rest/networks/support/TraceResult.js +1 -1
- package/smartMapping/renderers/color.js +1 -1
- package/smartMapping/renderers/opacity.js +1 -1
- package/smartMapping/renderers/size.js +1 -1
- package/smartMapping/renderers/support/timeSeriesUtils.js +1 -1
- package/smartMapping/statistics/histogramForTimeSeries.d.ts +11 -0
- package/smartMapping/statistics/histogramForTimeSeries.js +2 -0
- package/smartMapping/statistics/summaryStatisticsForTimeSeries.d.ts +11 -0
- package/smartMapping/statistics/summaryStatisticsForTimeSeries.js +2 -0
- package/smartMapping/statistics/support/timeSeriesUtils.js +24 -0
- package/smartMapping/statistics/types.d.ts +50 -0
- package/support/tests/serviceMockDependencies.js +1 -1
- package/support/tests/setupServiceMocksMesh.js +1 -1
- package/symbols/cim/CIMPlacements.js +1 -1
- package/symbols/cim/callouts/calloutAnalysisUtils.js +1 -1
- package/symbols/cim/callouts/effects/BackgroundCallout.js +1 -1
- package/symbols/cim/callouts/effects/BalloonCallout.js +1 -1
- package/symbols/cim/callouts/effects/PointSymbolCallout.js +1 -1
- package/symbols/cim/callouts/effects/calloutUtils.js +1 -1
- package/symbols/cim/cimAnalyzer.js +1 -1
- package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
- package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/CollisionJob.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/SymbolFader.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/jobsUtil.js +1 -1
- package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
- package/views/2d/engine/webgl/definitions.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/ComputedAnimatedParams.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/markers/ComputedMarkerParams.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/mesh/CalloutMeshWriterPolicy.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextParams.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
- package/views/2d/layers/SketchLayerView2D.js +1 -1
- package/views/2d/layers/features/layerAdapters/AnnotationLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/labelingUtils.js +1 -1
- package/views/2d/layers/features/schema/ExceedsLimitCache.js +1 -1
- package/views/2d/layers/features/schema/TimeSchema.js +2 -0
- package/views/2d/layers/features/schema/processor/LabelMatcherSchema.js +1 -1
- package/views/2d/layers/features/schema/processor/MatcherSchema.js +1 -1
- package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
- package/views/2d/layers/features/sources/FeatureSourceQueryInfo.js +1 -1
- package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
- package/views/2d/layers/support/annodime/cimAnnotations.js +1 -1
- package/views/2d/layers/support/vectorTileDebugUtils.js +1 -1
- package/views/2d/layers/support/visualVariableSimpleUtils.js +1 -1
- package/views/2d/types.d.ts +2 -1
- package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightItemManipulatedObject3D.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
- package/views/3d/analysis/LineOfSightAnalysisView3D.d.ts +24 -0
- package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedObserverManipulatedObject3D.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
- package/views/3d/camera/constraintUtils.js +1 -1
- package/views/3d/input/handlers/ground/GroundDoubleClickMove.js +1 -1
- package/views/3d/input/handlers/ground/GroundNavigation.js +1 -1
- package/views/3d/interactive/editingTools/tooltipUtils3D.js +1 -1
- package/views/3d/interactive/placementTools/GroundNavigationPlacementTool3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/i3s/I3SOverrides.js +1 -1
- package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
- package/views/3d/state/controllers/GroundNavigationController.js +1 -1
- package/views/3d/state/controllers/momentum/GroundNavigationMomentumController.js +1 -1
- package/views/3d/state/utils/OffsetCorrectionController.js +1 -1
- package/views/3d/state/utils/groundNavigationUtils.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +16 -8
- package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +5 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js +12 -0
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +2 -2
- package/views/3d/webgl-engine/effects/focusArea/FocusArea.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
- package/views/SelectionManager.d.ts +3 -3
- package/views/draw/support/Reshape.js +1 -1
- package/views/interactive/options/bindViewToolOptions.js +1 -1
- package/views/interactive/sketch/SketchLabelOptions.d.ts +3 -0
- package/views/interactive/sketch/SketchLabelOptions.js +1 -1
- package/views/interactive/sketch/SketchTooltipOptions.d.ts +3 -0
- package/views/interactive/sketch/SketchTooltipOptions.js +1 -1
- package/views/interactive/sketch/SketchValueOptions.d.ts +3 -0
- package/views/interactive/sketch/SketchValueOptions.js +1 -1
- package/views/interactive/snapping/SnappingOptions.d.ts +3 -0
- package/views/interactive/snapping/SnappingOptions.js +1 -1
- package/views/interactive/snapping/snappingUtils.js +1 -1
- package/views/interactive/tooltip/fields/parsingAndFormattingUtils.js +1 -1
- package/views/layers/SketchLayerView.d.ts +34 -0
- package/views/layers/SketchLayerView.js +2 -0
- package/views/layers/types.d.ts +3 -2
- package/views/selection/types.d.ts +15 -4
- package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
- package/widgets/BasemapGallery.js +1 -1
- package/widgets/Bookmarks/BookmarksViewModel.d.ts +4 -0
- package/widgets/Bookmarks/BookmarksVisibleElements.d.ts +5 -1
- package/widgets/Bookmarks/types.d.ts +2 -0
- package/widgets/Editor/EditorViewModel.d.ts +31 -30
- package/widgets/Editor/EditorViewModel.js +1 -1
- package/widgets/Editor/components/Settings.js +1 -1
- package/widgets/Editor/types.d.ts +44 -0
- package/widgets/Editor.d.ts +30 -27
- package/widgets/Editor.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.d.ts +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/support/FeatureStore.d.ts +1 -1
- package/widgets/FeatureTable/support/FeatureStore.js +1 -1
- package/widgets/FeatureTable.d.ts +6 -0
- package/widgets/FeatureTable.js +1 -1
- package/widgets/Histogram/types.d.ts +10 -2
- package/widgets/HistogramRangeSlider/types.d.ts +4 -1
- package/widgets/LayerList/LayerListViewModel.d.ts +2 -1
- package/widgets/Legend/LegendViewModel.d.ts +2 -0
- package/widgets/Legend/styles/card/CardView.d.ts +2 -0
- package/widgets/Legend/styles/classic/ClassicView.d.ts +4 -1
- package/widgets/Legend.d.ts +3 -0
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.d.ts +7 -0
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/components/OrientedImageryVideoViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/support/VideoFeatureCache.js +2 -0
- package/widgets/OrientedImageryViewer/types.d.ts +9 -0
- package/widgets/OrientedImageryViewer.d.ts +7 -0
- package/widgets/OrientedImageryViewer.js +2 -2
- package/widgets/PanoramicVideoViewer.js +1 -1
- package/widgets/PanoramicViewer/PanoramicVideoViewerViewModel.js +1 -1
- package/widgets/ScaleRangeSlider/types.d.ts +9 -2
- package/widgets/Sketch/SketchViewModel.d.ts +32 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/Sketch.d.ts +27 -1
- package/widgets/Sketch.js +1 -1
- package/widgets/Slider/types.d.ts +58 -13
- package/widgets/Slider.d.ts +6 -0
- package/widgets/smartMapping/BinaryColorSizeSlider/BinaryColorSizeSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/ClassedColorSlider/ClassedColorSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/ClassedSizeSlider/ClassedSizeSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/ColorSizeSlider/ColorSizeSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/ColorSlider/ColorSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/HeatmapSlider/HeatmapSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/OpacitySlider/OpacitySliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/SizeSlider/SizeSliderViewModel.d.ts +3 -0
- package/widgets/smartMapping/SmartMappingPrimaryHandleSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/SmartMappingSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/types.d.ts +30 -7
- package/widgets/support/FilterBuilder/FilterBuilderViewModel.d.ts +21 -11
- package/widgets/support/FilterBuilder/FilterBuilderViewModel.js +1 -1
- package/widgets/support/FilterBuilder/types.d.ts +28 -0
- package/widgets/support/FilterBuilder.js +1 -1
- package/widgets/support/FilterCondition/FilterConditionViewModel.d.ts +24 -0
- package/widgets/support/FilterCondition/FilterConditionViewModel.js +1 -1
- package/widgets/support/FilterCondition/types.d.ts +16 -1
- package/widgets/support/FilterCondition.js +1 -1
- package/widgets/support/SnappingControls/snappingLayerListUtils.js +1 -1
- package/widgets/support/iconUtils.js +1 -1
- package/assets/esri/core/workers/chunks/0606ab6fdfc1dfea3856.js +0 -1
- package/assets/esri/core/workers/chunks/078dcd17f46403d44b24.js +0 -1
- package/assets/esri/core/workers/chunks/1289204f8ca96032c17a.js +0 -1
- package/assets/esri/core/workers/chunks/12b5a645c0987a0efe54.js +0 -2
- package/assets/esri/core/workers/chunks/152fe3d6ad7aebbd23d1.js +0 -1
- package/assets/esri/core/workers/chunks/17b938ba49fb1e7ab8c4.js +0 -1
- package/assets/esri/core/workers/chunks/1dbb3e25e005a8220779.js +0 -2
- package/assets/esri/core/workers/chunks/3d6fef25af7e1a51e1bd.js +0 -1
- package/assets/esri/core/workers/chunks/3ef367c9b7bf1588307d.js +0 -1
- package/assets/esri/core/workers/chunks/5f4feca26102088ea565.js +0 -1
- package/assets/esri/core/workers/chunks/74211d096cc3296e0968.js +0 -1
- package/assets/esri/core/workers/chunks/7926faab76a721a2e1c4.js +0 -1
- package/assets/esri/core/workers/chunks/ad28486bc6afaa346de5.js +0 -1
- package/assets/esri/core/workers/chunks/ad29c729e90b5866713c.js +0 -1
- package/assets/esri/core/workers/chunks/b72a2514aa4cc4ae7d1b.js +0 -1
- package/assets/esri/core/workers/chunks/bb51cf52b8ea8283f4f8.js +0 -1
- package/assets/esri/core/workers/chunks/be761749f8d77fbd9df5.js +0 -1
- package/assets/esri/core/workers/chunks/dbfd25aa0d19aed5890c.js +0 -1
- package/assets/esri/core/workers/chunks/de28a86775235bd5d3c4.js +0 -2
- package/assets/esri/core/workers/chunks/f6cfc901267a229de7a1.js +0 -2
- package/assets/esri/core/workers/chunks/fb147097149a89e671ff.js +0 -1
- package/support/revision.js +0 -2
- /package/assets/esri/core/workers/chunks/{1dbb3e25e005a8220779.js.LICENSE.txt → 1b946714ca4a1a7359d4.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{f6cfc901267a229de7a1.js.LICENSE.txt → 2a1ec30f9ad305763f81.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{c3b96d1d43afccd23e45.js.LICENSE.txt → 590e6c70206122e4cc3c.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{cfaba0470619786e1ef8.js.LICENSE.txt → 68d8ae42ab71d01a70a5.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{de28a86775235bd5d3c4.js.LICENSE.txt → 8dc1c3042267618fd710.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{12b5a645c0987a0efe54.js.LICENSE.txt → 96c50a0dda0f1503ef92.js.LICENSE.txt} +0 -0
package/chunks/Envelope.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{G as e,d as t,a as n,a8 as r,y as i,E as a,c as o,P as s,i as c,b as l,a4 as u,m as d,Q as f,j as p,x as m}from"./Point2D.js";import{g as h,a as g,r as _,G as v,t as y,C as ee,d as b,q as x,i as te,h as ne}from"./Geometry.js";import{Envelope2D as S}from"./Envelope2D.js";const re=[0,0,NaN,0,0,0,0,0,-1,-1,0,0,0,0],ie=[2,1,1,1,3,1,2,3,2,4,1,1,2,1],ae=[1,1,1,0,2,1,1,1,0,0,0,0,0,1],oe=[1,1,1,2,0,0,0,0,2,2,4,2,2,1],se=[4,8,4,8,1],ce=25;function C(){return t(25,NaN)}let w=class n{getAttributeCount(){return this.m_attributeCount}getSemantics(e){return this.m_indexToSemantics[e]}getSemanticsBitArray(){return this.m_semanticsBitArray}getAttributeIndex(e){return this.m_semanticsToIndexMap[e]}static getInterpolation(e){return ae[e]}static getPersistence(e){return oe[e]}static getPersistenceSize(e){return se[e]}static getPersistenceSizeFromSemantics(e){return n.getPersistenceSize(n.getPersistence(e))*n.getComponentCount(e)}static getComponentCount(e){return ie[e]}static maxComponentCount(){return 4}static isInteger(e){return e===2||e===3||e===4}static isIntegerSemantics(e){return n.isInteger(n.getPersistence(e))}static isTexture(e){return e===5||e===6||e===7}hasAttribute(e){return!!(this.m_semanticsBitArray&1<<e)}hasAttributesFrom(e){return(this.m_semanticsBitArray&e.m_semanticsBitArray)===e.m_semanticsBitArray}hasZ(){return this.hasAttribute(1)}hasM(){return this.hasAttribute(2)}hasID(){return this.hasAttribute(3)}getTotalComponentCount(){return this.m_totalComponentCount}static getDefaultValue(e){return re[e]}static isDefaultValue(t,n){return e(re[t],n)}equals(e){return this===e}getDefaultPointAttributes(){return this.m_defaultPointAttributes}getPointAttributeOffset(e){return this.m_pointAttributeOffsets[e]}constructor(e){this.m_semanticsBitArray=e,this.m_attributeCount=0,this.m_totalComponentCount=0,this.m_semanticsToIndexMap=new Int32Array(14),this.m_indexToSemantics=new Int32Array(14),this.m_pointAttributeOffsets=new Int32Array(14),this.m_defaultPointAttributes=t(25,NaN),this.m_semanticsToIndexMap.fill(-1),this.m_indexToSemantics.fill(-1);let r=0,i=1,a=14;for(;r<a;r++)e&i&&(this.m_semanticsToIndexMap[r]=this.m_attributeCount,this.m_indexToSemantics[this.m_attributeCount]=r,this.m_attributeCount++,this.m_totalComponentCount+=n.getComponentCount(r)),i<<=1;let o=0;for(r=0,a=this.getAttributeCount();r<a;r++){let e=this.getSemantics(r),t=n.getComponentCount(e),i=n.getDefaultValue(e);this.m_pointAttributeOffsets[r]=o;for(let e=0;e<t;e++)this.m_defaultPointAttributes[o]=i,o++}}m_semanticsBitArray;m_attributeCount;m_totalComponentCount;m_semanticsToIndexMap;m_indexToSemantics;m_pointAttributeOffsets;m_defaultPointAttributes};var T=w;function E(){return t(14,0)}class D{m_map;m_vd2D;m_vd3D;static s_thisInstance;static{D.s_thisInstance=new D}static getInstance(){return D.s_thisInstance}constructor(){this.m_map=new Map,this.m_vd2D=new T(1),this.m_map.set(1,this.m_vd2D),this.m_vd3D=new T(3),this.m_map.set(3,this.m_vd2D)}GetVD2D(){return this.m_vd2D}GetVD3D(){return this.m_vd3D}FindOrAdd(e){if(e===1)return this.GetVD2D();if(e===3)return this.GetVD3D();let t=this.m_map.get(e);if(t)return t;let n=new T(e);return this.m_map.set(e,n),n}}function O(e){return D.getInstance().FindOrAdd(e)}function k(e,t){if(!e||!t)return t||e;let n=e.getSemanticsBitArray()|t.getSemanticsBitArray();return(n&e.getSemanticsBitArray())===n?e:(n&t.getSemanticsBitArray())===n?t:O(n)}function A(e,t){let n=e.getSemanticsBitArray()|1<<t;return(n&e.getSemanticsBitArray())===n?e:O(n)}function j(e,t){let n=(e.getSemanticsBitArray()|1<<t)-(1<<t);return n===e.getSemanticsBitArray()?e:O(n)}function M(){return D.getInstance().GetVD2D()}function le(){return D.getInstance().GetVD3D()}function ue(e,t,n){if(n.fill(-1),e!==null&&t!==null)for(let r=0,i=e.getAttributeCount();r<i;r++)n[r]=t.getAttributeIndex(e.getSemantics(r))}class N{x;y;z;static construct(e,t,n){return new N(e,t,n)}constructor(e,t,n){if(e===void 0){this.x=this.y=this.z=NaN;return}this.x=e,this.y=t,this.z=n}get 0(){return this.x}get 1(){return this.y}get 2(){return this.z}set 0(e){this.x=e}set 1(e){this.y=e}set 2(e){this.z=e}clone(){return new N(this.x,this.y,this.z)}assign(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}setCoords(e,t,n){return this.x=e,this.y=t,this.z=n,this}setCoordsPoint2DZ(e,t){return this.setCoords(e.x,e.y,t)}setCoordsPoint3D(e){this.x=e.x,this.y=e.y,this.z=e.z}setZero(){this.x=0,this.y=0,this.z=0}setNormalized(e){this.assign(e),this.normalizeThis()}normalizeThis(){let e=this.length();return e?(this.x/=e,this.y/=e,this.z/=e):(this.x=1,this.y=0,this.z=0),this}getUnitVector(){let e=new N;return e.setNormalized(this),e}sqrLength(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}lengthXY(){return h(0),0}static sqrDistance(e,t){return n(e.x-t.x)+n(e.y-t.y)+n(e.z-t.z)}static sqrDistanceCoords(e,t,r,i,a,o){return n(e-i)+n(t-a)+n(r-o)}static distance(e,t){return Math.sqrt(N.sqrDistance(e,t))}isEqual(e,t){return t===void 0&&(t=0),Math.abs(this.x-e.x)<=t&&Math.abs(this.y-e.y)<=t&&r(this.z,e.z,t)}static compareByLength(e,t,n,r){return h(0),0}isEqualCoords(e,t,n,r){return h(0),this.x===e&&this.y===t&&this.z===n}isEqualsTols(e,t,n){return h(0),!1}isEqualCoordsTols(e,t,n,r,i){return h(0),!1}static st_isEqual(e,t,n,r){return h(0),!1}equals(e,t){return this.isEqual(e,t)}equalsTols(e,t,n){return h(0),!1}divThis(e){return this.x/=e,this.y/=e,this.z/=e,this}subThis(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}setSub(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}sub(e){return N.construct(this.x-e.x,this.y-e.y,this.z-e.z)}addThis(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}add(e){return this.clone().addThis(e)}setAdd(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}mul(e){return N.construct(this.x*e,this.y*e,this.z*e)}dotProduct(e){return this.x*e.x+this.y*e.y+this.z*e.z}crossProductVector(e){let t=this.y*e.z-e.y*this.z,n=e.x*this.z-this.x*e.z,r=this.x*e.y-e.x*this.y;return new N(t,n,r)}setCrossProductVector(e,t){let n=e.y*t.z-t.y*e.z,r=t.x*e.z-e.x*t.z,i=e.x*t.y-t.x*e.y;return this.x=n,this.y=r,this.z=i,this}setScaled(e,t){return this.x=e*t.x,this.y=e*t.y,this.z=e*t.z,this}scaleThis(e){return this.x*=e,this.y*=e,this.z*=e,this}scaleZThis(e){return this.z*=e,this}setNAN(){return h(0),this}isNAN(){return Number.isNaN(this.x)||Number.isNaN(this.y)||Number.isNaN(this.z)}static getNAN(){return N.construct(NaN,NaN,NaN)}isFinite(){return h(0),!1}isZero(){return this.x===0&&this.y===0&&this.z===0}norm(e){return h(0),0}sqrDistanceFromCenterToSpheroidSurface(e,t){return h(0),0}distanceFromCenterToSpheroidSurface(e,t){return Math.sqrt(this.sqrDistanceFromCenterToSpheroidSurface(e,t))}static getClosestCoordinate(e,t,n,r=!1){return h(0),0}compare(e){return this.y<e.y?-1:this.y>e.y?1:this.x<e.x?-1:this.x>e.x?1:this.z<e.z?-1:+(this.z>e.z)}compareXYZ(e){return h(0),0}negateThis(){this.x=-this.x,this.y=-this.y,this.z=-this.z}static averageFast(e,t){return h(0),{}}static average(e,t){return h(0),{}}static dimensions=3;static size(){return N.dimensions}static lerp(e,t,n){let r=new N;return i(e,t,n,r),r}static slerp(e,t,n){return h(0),{}}static compareVectors(e,t){return h(0),0}static selectRightHandedBasisFromNormal(e,t,n){let r=e.getUnitVector(),i=r.createAPerpendicular(),a=new N;a.setCrossProductVector(r,i),a.normalizeThis(),t.setCoordsPoint3D(i),n.setCoordsPoint3D(a)}createAPerpendicular(){let e=[this.crossProductVector(new N(0,0,1)),this.crossProductVector(new N(1,0,0)),this.crossProductVector(new N(0,1,0))],t=[e[0].sqrLength(),e[1].sqrLength(),e[2].sqrLength()],n=e[t.reduce((e,n,r)=>t[e]>t[r]?e:r,0)];return n.normalizeThis(),n}calculateAngle(e){return h(0),0}static crossDotSign(e,t,n){return h(0),0}static isBisectorRobust(e,t,n){return h(0),0}static compareZOrder(e,t){return h(0),!1}}class de{m_EnvelopeType=3;xmin;ymin;zmin;xmax;ymax;zmax;static constructEmpty(){return new de(NaN,NaN,NaN,NaN,NaN,NaN)}constructor(e,t,n,r,i,a){this.xmin=e,this.ymin=t,this.zmin=n,this.xmax=r,this.ymax=i,this.zmax=a,this.normalize()}inflate(e){this.inflateCoords(e,e,e)}inflateCoords(e,t,n){h(0)}getEnvelope2D(){return new S(this.xmin,this.ymin,this.xmax,this.ymax)}getEnvelopeZs(){return new a(this.zmin,this.zmax)}setEmptyZ(){this.zmin=NaN,this.zmax=NaN}normalize(){let e=!1;if(this.xmin<=this.xmax||(this.xmax=o(this.xmin,this.xmin=this.xmax),e=!0),this.ymin<=this.ymax||(this.ymax=o(this.ymin,this.ymin=this.ymax),e=!0),e&&!(this.xmin<=this.xmax&&this.ymin<=this.ymax)){this.setEmpty();return}this.zmin<=this.zmax||(this.zmax=o(this.zmin,this.zmin=this.zmax),this.zmin<=this.zmax||this.setEmptyZ())}isEmpty(){return Number.isNaN(this.xmin)||Number.isNaN(this.ymin)||Number.isNaN(this.xmax)||Number.isNaN(this.ymax)}isEmptyZ(){return Number.isNaN(this.zmin)||Number.isNaN(this.zmax)}setEmpty(){this.xmin=NaN,this.ymin=NaN,this.zmin=NaN,this.xmax=NaN,this.ymax=NaN,this.zmax=NaN}mergeEnv3D(e){e.isEmpty()||(this.mergeCoords(e.xmin,e.ymin,e.zmin),this.mergeCoords(e.xmax,e.ymax,e.zmax))}mergeNe(e){this.mergeNeCoords(e.x,e.y,e.z)}mergeNeCoords(e,t,n){this.xmin>e?this.xmin=e:this.xmax<e&&(this.xmax=e),this.ymin>t?this.ymin=t:this.ymax<t&&(this.ymax=t),this.zmin>n?this.zmin=n:this.zmax<n&&(this.zmax=n)}mergeCoords(e,t,n){this.isEmpty()?(this.xmin=e,this.xmax=e,this.ymin=t,this.ymax=t,this.zmin=n,this.zmax=n):(this.isEmptyZ()&&(this.zmin=n,this.zmax=n),this.mergeNeCoords(e,t,n))}setCoords(e,t,n,r,i,a){this.xmin=e,this.ymin=t,this.zmin=n,this.xmax=r,this.ymax=i,this.zmax=a,this.normalize()}sqrDistanceEnvelope3DAndPoints(e,t,n,r=1){return h(0),0}sqrMaxDistance(e,t=1){return h(0),0}}const fe=-559038737;var P=w;function pe(e,t,n){switch(e){case 0:return new ye(t,n);case 1:return new R(t,n);case 2:return new L(t,n);case 3:throw Error(`64 bit int attribute stream not implemented`);case 4:return new I(t,n);default:g(``)}}function me(e,t){let n=P.getComponentCount(e);return pe(P.getPersistence(e),t*n,P.getDefaultValue(e))}function he(e,t){let n=P.getComponentCount(e);return pe(P.getPersistence(e),t*n)}function ge(e,t){return new L(e,t)}function _e(e,t){return new I(e,t)}function ve(e,t){return new R(e,t)}class F{static s_constructMin=2;static s_resizeMin=30;size(){return this.m_size}checkResize(e,t){e>this.m_size&&this.resize(e,t)}resize(e,t){if(e=Math.trunc(e),e===this.m_size)return;let n=!!t||Number.isNaN(t);if(e<this.m_a.length)this.m_a.length>F.s_resizeMin&&e*1.25<this.m_a.length&&(this.m_a=this.m_a.slice(0,e)),n&&e>this.m_size&&this.m_a.fill(t,this.m_size,e);else if(e>=this.m_a.length){let r=e*1.25,i=new this.m_a.constructor(r);i.set(this.m_a),this.m_a=i,n&&this.m_a.fill(t,this.m_size,e)}this.m_size=e}resizeRounded(e,t){return this.resize(e,t)}reserve(e){}read(e){return this.m_a[e]}readAsDbl(e){return this.read(e)}write(e,t){this.m_a[e]=t}writeAsDbl(e,t){this.write(e,t)}setRange(e,t,n){(t<0||n<0||n+t>this.size())&&g(),this.m_a.fill(e,t,t+n)}add(e){this.resize(this.m_size+1),this.m_a[this.m_size-1]=e}addArray(e,t){let n=this.m_size;t===void 0?(this.resize(this.m_size+e.length),this.m_a.set(e,n)):(this.resize(this.m_size+t),this.m_a.set(e.slice(0,t),n))}getArray(){return this.m_a}equals(e,t,n,r){if(this.getPersistence()!==e.getPersistence())return!1;let i=e;return be(this,i,t,n,r)}insertRange(e,t,n,r){let i=this.m_size;this.checkResize(Math.max(0,r)+n),this.m_a.copyWithin(e+n,e,r>=0?r:i),this.m_a.fill(t,e,e+n)}readRange(e,t){return this.m_a.slice(e,e+t)}insertRangeFromStream(e,t,n,r,i,a,o){h(this.getPersistence()===t.getPersistence());let s=t,c=this.m_size;r&&this.checkResize(Math.max(0,o)+r),this.m_a.copyWithin(e+r,e,o>=0?o:c),this.m_a.set(s.readRange(n,r),e),i||this.reverseRange(e,r,a)}writeRange(e,t,n,r,i,a){h(this.getPersistence()===n.getPersistence());let o=n;if((e<0||t<0||r<0)&&g(),o.size()<r+t&&g(),t===0)return;this.size()<t+e&&this.resize(t+e);let s=o.m_a.subarray(r,r+t);xe(this.m_a,e,t,s)}insertAttributes(e,t,n,r){let i=P.getComponentCount(n);this.m_a.copyWithin(e+i,e,r>=0?r:this.m_size);for(let r=0;r<i;r++)this.m_a[e+r]=t.getAttributeAsDbl(n,r)}insertAttributesFromPoints(e,t,n,r,i){h(P.getPersistence(r)===this.getPersistence());let a=P.getComponentCount(r),o=this.m_size;if(this.checkResize(Math.max(0,i)+a*n),this.m_a.copyWithin(e+a*n,e,i>=0?i:o),r===0){let r=new s;for(let i=e,a=0;a<n;a++,i+=2)t[a].queryXY(r),this.m_a[i]=r.x,this.m_a[i+1]=r.y}else if(a===1)for(let i=e,a=0;a<n;a++,i++)this.m_a[i]=t[a].getAttributeAsDbl(r,0);else for(let i=e,o=0;o<n;o++,i+=a)for(let e=0;e<a;e++)this.m_a[i+e]=t[o].getAttributeAsDbl(r,e)}eraseRange(e,t,n){this.m_size<e+t&&g(),this.m_a.copyWithin(e,e+t),this.m_size-=t}reverseRange(e,t,n){if((n<1||t%n!==0)&&g(),this.m_a.subarray(e,e+t).reverse(),n>1)for(let r=e,i=e+t;r<i;r+=n){let e=r,t=r+n-1;for(;e<t;){let n=this.m_a[e];this.m_a[e]=this.m_a[t],this.m_a[t]=n,e++,t--}}}rotate(e,t,n){(t<e||t>n||e>n)&&_(`rotate`),t!==e&&t!==n&&(this.reverseRange(e,t-e,1),this.reverseRange(t,n-t,1),this.reverseRange(e,n-e,1))}sort(e,t,n){this.m_a.subarray(e,t).sort(n)}constructor(e){if(e.move)this.m_a=e.move.m_a,this.m_size=e.move.m_size,e.move.m_a=e.move.m_a.slice(0,0),e.move.m_size=0;else if(e.fromArray)this.m_a=e.fromArray,this.m_size=e.size??e.fromArray.length;else if(e.copy)this.m_size=e.copy.m_size,e.maxSize&&(this.m_size=Math.min(e.maxSize,this.m_size)),this.m_a=e.copy.m_a.slice(0,this.m_size);else{let t=Math.max(e.size,F.s_constructMin);this.m_a=new e.ctor(t),(e.defaultValue||Number.isNaN(e.defaultValue))&&this.m_a.fill(e.defaultValue),this.m_size=e.size}}m_a;m_size}class I extends F{setBits(e,t){this.m_a[e]|=t}clearBits(e,t){this.m_a[e]&=~t}getPersistence(){return 4}clone(){return new I({ctor:Int8Array,copy:this})}restrictedClone(e){return new I({ctor:Int8Array,copy:this,maxSize:e})}constructor(e,t){super(typeof e==`number`?{ctor:Int8Array,size:e,defaultValue:t}:e)}}class L extends F{getPersistence(){return 2}clone(){return new L({ctor:Int32Array,copy:this})}restrictedClone(e){return new L({ctor:Int32Array,copy:this,maxSize:e})}write(e,t){h(t<=c()),super.write(e,t)}constructor(e,t){super(typeof e==`number`?{ctor:Int32Array,size:e,defaultValue:t}:e)}}class ye extends F{getPersistence(){return 0}clone(){return new ye({ctor:Float32Array,copy:this})}restrictedClone(e){return new ye({ctor:Float32Array,copy:this,maxSize:e})}constructor(e,t){super(typeof e==`number`?{ctor:Float32Array,size:e,defaultValue:t}:e)}}class R extends F{getPersistence(){return 1}applyTransformation(e,t,n){(t&1||t+n*2>this.size())&&g();let r=t===0?this.m_a:this.m_a.subarray(t);e.transformInterleavedPoints(r,n,r)}readPoint2D(e){let t=this.m_a[e],n=this.m_a[e+1];return new s(t,n)}queryPoint2D(e,t){return t.x=this.m_a[e],t.y=this.m_a[e+1],t}writePoint2D(e,t){this.write(e,t.x),this.write(e+1,t.y)}insert(e,t,n){this.checkResize(n+2),this.m_a.copyWithin(e+2,e,n),this.m_a[e]=t.x,this.m_a[e+1]=t.y}insertRangeFromPoints(e,t,n,r,i,a){let o=this.m_size;if(this.checkResize(Math.max(a,0)+r*2),this.m_a.copyWithin(e+r*2,e,a>=0?a:o),i)for(let i=n,a=e,o=0;o<r;++o,++i){let e=t[i];this.m_a[a++]=e.x,this.m_a[a++]=e.y}else for(let i=n+r-1,a=e,o=0;o<r;++o,--i){let e=t[i];this.m_a[a++]=e.x,this.m_a[a++]=e.y}}queryRange(e,t,n,r,i){if((e<0||t<0)&&g(),!r&&(i<=0||t%i!==0)&&g(),t===0)return;if(t===1){n[0]=this.m_a[e];return}let a=this.m_a.subarray(e,e+t);n.set(a)}writeRangeFromArray(e,t,n,r,i){if((e<0||t<0)&&g(),t===0)return;if(t===1){this.m_a[e]=n[0];return}let a=n;t<n.length&&(a=n.subarray(0,t)),this.m_a.set(a,e)}clone(){return new R({ctor:Float64Array,copy:this})}restrictedClone(e){return new R({ctor:Float64Array,copy:this,maxSize:e})}constructor(e,t){super(typeof e==`number`?{ctor:Float64Array,size:e,defaultValue:t}:e)}}function be(e,t,n,i,a){if(e.getPersistence()!==t.getPersistence())return!1;let o=e.getPersistence()<=1,s=e.size(),c=t.size();if(i>s||i>c)return!1;if(a){if(o){for(let o=n;o<i;o++)if(!r(e.read(o),t.read(o),a))return!1}else for(let r=n;r<i;r++){let n=e.read(r)-t.read(r);if(n<0&&(n=-n),n>a)return!1}}else for(let r=n;r<i;r++){let n=e.read(r),i=t.read(r);if(n!==i){if(o&&Number.isNaN(n)&&Number.isNaN(i))continue;return!1}}return!0}function xe(e,t,n,r,i,a){if((t<0||n<0)&&g(),n===0)return;if(n===1){e[t]=r[0];return}let o=r;n<r.length&&(o=r.subarray(0,n)),e.set(o,t)}const Se={partCount:0,partOffsets:void 0,partFlags:void 0,segmentFlags:void 0,segmentIndices:void 0,segmentParams:void 0,segmentCountArc:0,segmentCountBezier:0};class z{m_buckets;m_bucketedIndices;static c_maxBuckets=65536;m_minValue=-1;m_maxValue=-1;m_dy=NaN;constructor(){this.m_buckets=new L(0),this.m_bucketedIndices=new L(0)}static sortEx(e,t,n,r,i=32){if(n-t<=i){r.userSort(t,n,e);return}new z().sort(e,t,n,r,i)}sort(e,t,n,r,i=32){if(n-t<=i){r.userSort(t,n,e);return}let a=!0,o=1/0,s=-1/0;for(let i=t;i<n;i++){let t=r.getValue(e.read(i));t<o&&(o=t),t>s&&(s=t)}if(this.reset(n-t,o,s,n-t)){for(let i=t;i<n;i++){let n=e.read(i),a=r.getValue(n),o=this.getBucket(a);this.m_buckets.write(o,this.m_buckets.read(o)+1),this.m_bucketedIndices.write(i-t,n)}let i=this.m_buckets.read(0);this.m_buckets.write(0,0);for(let e=1,t=this.m_buckets.size();e<t;e++){let t=this.m_buckets.read(e);this.m_buckets.write(e,i),i+=t}for(let i=t;i<n;i++){let n=this.m_bucketedIndices.read(i-t),a=r.getValue(n),o=this.getBucket(a),s=this.m_buckets.read(o);e.write(s+t,n),this.m_buckets.write(o,s+1)}a=!1}if(a){r.userSort(t,n,e);return}let c=0;for(let n=0,i=this.m_buckets.size();n<i;n++){let i=c;c=this.m_buckets.read(n),c>i&&r.userSort(t+i,t+c,e)}this.m_buckets.size()>100&&(this.m_buckets.resize(0),this.m_bucketedIndices.resize(0))}reset(e,t,n,r){if(e<2||n===t)return!1;let i=Math.min(z.c_maxBuckets,e);return this.m_buckets.resize(i),this.m_buckets.setRange(0,0,this.m_buckets.size()),this.m_minValue=t,this.m_maxValue=n,this.m_bucketedIndices.resize(r),this.m_dy=(n-t)/(i-1),!0}getBucket(e){return Math.trunc((e-this.m_minValue)/this.m_dy)}getBucketCount(){return this.m_buckets.size()}}class B{m_buffer=new Int32Array;m_firstFree=-1;m_last=0;size_=0;capacity_=0;stride;capacity(){return this.capacity_}constructor(e){this.stride=e}size(){return this.size_}deleteElement(e){e<this.m_last?(this.m_buffer[e*this.stride]=this.m_firstFree,this.m_firstFree=e):this.m_last--,this.size_--}getField(e,t){return this.m_buffer[e*this.stride+t]}setField(e,t,n){this.m_buffer[e*this.stride+t]=n}elementToIndex(e){return e}newElement(){let e=this.m_firstFree;if(e===-1){if(this.m_last===this.capacity_){let e=this.capacity_===0?1:Math.trunc((this.capacity_+1)*3/2);if(e>2**53-1&&(e=2**53-1),e===this.capacity_)throw Error(`index out of bounds`);this.grow_(e)}e=this.m_last,this.m_last++}else this.m_firstFree=this.m_buffer[e*this.stride];this.size_++;for(let t=e*this.stride;t<e*this.stride+this.stride;t++)this.m_buffer[t]=-1;return e}newElementPset(e){let t=this.m_firstFree;if(t===-1){if(this.m_last===this.capacity_){let e=this.capacity_===0?1:Math.trunc((this.capacity_+1)*3/2);if(e>2**53-1&&(e=2**53-1),e===this.capacity_)throw Error(`index out of bounds`);this.grow_(e)}t=this.m_last,this.m_last++}else this.m_firstFree=this.m_buffer[t*this.stride];this.size_++;let n=t*this.stride;for(let t=0;t<e.length;t++)this.m_buffer[n+t]=e[t];return t}deleteAll(e){this.m_firstFree=-1,this.m_last=0,this.size_=0,e&&(this.m_buffer=new Int32Array,this.capacity_=0)}setCapacity(e){e>this.capacity_&&this.grow_(e)}swap(e,t){let n=e*this.stride,r=t*this.stride;for(let e=0;e<this.stride;e++){let t=this.m_buffer[r+e];this.m_buffer[r+e]=this.m_buffer[n+e],this.m_buffer[n+e]=t}}swapField(e,t,n){let r=this.m_buffer[this.stride*t+n];this.m_buffer[this.stride*t+n]=this.m_buffer[this.stride*e+n],this.m_buffer[this.stride*e+n]=r}static impossibleIndex2(){return-2}static impossibleIndex3(){return-3}static isValidElement(e){return e>=0}grow_(e){this.m_buffer??=new Int32Array;let t=this.stride*e,n=new Int32Array(t);n.set(this.m_buffer,0),this.m_buffer=n,this.capacity_=e}}function Ce(e,t){return{element:e,box:t.clone()}}class V{m_extent=new S;m_dataExtent=new S;m_childExtents=[new S,new S,new S,new S];m_quadTreeNodes;m_elementNodes=new B(4);m_data=[];m_freeData=[];m_root=-1;m_height=8;m_bStoreDuplicates;static m_quadrantMask=3;static m_heightBitShift=2;static m_flushingCount=5;constructor(e,t,n){n===void 0&&(n=!1),this.m_quadTreeNodes=new B(n?11:10),this.m_bStoreDuplicates=n,this.reset_(e,t)}reset(e,t){this.m_quadTreeNodes.deleteAll(!1),this.m_elementNodes.deleteAll(!1),this.m_data.length=0,this.m_freeData.length=0,this.reset_(e,t)}insert(e,t){if(this.m_root===-1&&this.createRoot_(),this.m_bStoreDuplicates){let n=this.insertDuplicates_(e,t,0,this.m_extent,this.m_root,!1,-1);return n!==-1&&(this.m_dataExtent.isEmpty()?this.m_dataExtent.setCoords({env2D:t}):this.m_dataExtent.mergeEnvelope2D(t)),n}let n=this.insert_(e,t,0,this.m_extent,this.m_root,!1,-1);return n!==-1&&(this.m_dataExtent.isEmpty()?this.m_dataExtent.setCoords({env2D:t}):this.m_dataExtent.mergeEnvelope2D(t)),n}insertEx(e,t,n){if(this.m_root===-1&&this.createRoot_(),this.m_bStoreDuplicates){let n=this.insertDuplicates_(e,t,0,this.m_extent,this.m_root,!1,-1);return n!==-1&&(this.m_dataExtent.isEmpty()?this.m_dataExtent.setCoords({env2D:t}):this.m_dataExtent.mergeEnvelope2D(t)),n}let r;r=n===-1?this.m_root:this.getQuad_(n);let i=this.getHeight(r),a=this.getExtent(r),o=this.insert_(e,t,i,a,r,!1,-1);return o!==-1&&(this.m_dataExtent.isEmpty()?this.m_dataExtent.setCoords({env2D:t}):this.m_dataExtent.mergeEnvelope2D(t)),o}removeElement(e){h(0)}getElement(e){return this.getElementValue_(this.getData_(e))}getElementAtIndex(e){return h(0),0}getElementExtent(e){let t=this.getData_(e);return this.getBoundingBoxValue_(t).clone()}getElementExtentAtIndex(e){return h(0),{}}getDataExtent(){return this.m_dataExtent.clone()}getQuadTreeExtent(){return h(0),{}}getHeight(e){return this.m_quadTreeNodes.getField(e,6)>>V.m_heightBitShift}getMaxHeight(){return this.m_height}getExtent(e){let t=new S;if(t.setCoords({env2D:this.m_extent}),e===this.m_root)return t;let n=[],r=e;do n.push(this.getQuadrant_(r)),r=this.getParent_(r);while(r!==this.m_root);let i=n.length;for(let e=0;e<i;e++){let e=n.at(-1);n.pop(),e===0?(t.xmin=.5*(t.xmin+t.xmax),t.ymin=.5*(t.ymin+t.ymax)):e===1?(t.xmax=.5*(t.xmin+t.xmax),t.ymin=.5*(t.ymin+t.ymax)):e===2?(t.xmax=.5*(t.xmin+t.xmax),t.ymax=.5*(t.ymin+t.ymax)):(t.xmin=.5*(t.xmin+t.xmax),t.ymax=.5*(t.ymin+t.ymax))}return t}getQuad(e){return this.getQuad_(e)}getElementCount(){return this.m_root===-1?0:this.getSubTreeElementCount_(this.m_root)}getSubTreeElementCount(e){return this.getSubTreeElementCount_(e)}getContainedSubTreeElementCount(e){return this.m_bStoreDuplicates?this.getContainedSubTreeElementCount_(e):this.getSubTreeElementCount_(e)}getIntersectionCount(e,t,n){if(this.m_root===-1)return 0;let r=new S;r.setCoords({env2D:e}),r.inflateCoords(t,t);let i=[],a=[];i.push(this.m_root),a.push(this.m_extent.clone());let o=d(S,4),s=0;for(;i.length>0;){let e=!1,t=i.at(-1),c=a.at(-1);if(i.pop(),a.pop(),r.containsEnvelope(c)){if(s+=this.getSubTreeElementCount(t),n>0&&s>=n)return n}else if(r.isIntersecting(c)){for(let e=this.getFirstElement_(t);e!==-1;e=this.getNextElement_(e)){let t=this.getData_(e);if(this.getBoundingBoxValue_(t).isIntersecting(r)&&(s++,n>0&&s>=n))return n}e=this.getHeight(t)+1<=this.m_height}if(e){V.setChildExtents_(c,o);for(let e=0;e<4;e++){let n=this.getChild_(t,e);n!==-1&&this.getSubTreeElementCount_(n)>0&&r.isIntersecting(o[e])&&(i.push(n),a.push(o[e].clone()))}}}return s}hasData(e,t){return this.getIntersectionCount(e,t,1)>=1}getIterator(e,t){return new we(this,e,t)}getIteratorForQT(){return new we(this)}getSortedIterator(e,t){return new Te(this.getIterator(e,t))}getSortedIteratorForQT(){return new Te(this.getIteratorForQT())}visitLeavesNearest(e,t,n,r){h(0)}reset_(e,t){(t<0||t>127)&&g(`invalid height`),this.m_height=t,this.m_extent.setCoords({env2D:e}),this.m_dataExtent.setEmpty(),this.m_root=-1}insert_(e,t,n,r,i,a,o){if(!r.containsEnvelope(t))return n===0?-1:this.insert_(e,t,0,this.m_extent,this.m_root,a,o);if(!a)for(let e=i;e!==-1;e=this.getParent_(e))this.setSubTreeElementCount_(e,this.getSubTreeElementCount_(e)+1);let s=new S;s.setCoords({env2D:r});let c=i,l;for(l=n;l<this.m_height&&this.canPushDown_(c);l++){V.setChildExtents_(s,this.m_childExtents);let e=!1;for(let n=0;n<4;n++)if(this.m_childExtents[n].containsEnvelope(t)){e=!0;let t=this.getChild_(c,n);t===-1&&(t=this.createChild_(c,n)),this.setSubTreeElementCount_(t,this.getSubTreeElementCount_(t)+1),c=t,s.setCoords({env2D:this.m_childExtents[n]});break}if(!e)break}return this.insertAtQuad_(e,t,l,s,c,a,i,o,-1)}insertDuplicates_(e,t,n,r,i,a,o){if(!a){if(!r.containsEnvelope(t))return-1;this.setSubTreeElementCount_(i,this.getSubTreeElementCount_(i)+1),this.setContainedSubTreeElementCount_(i,this.getContainedSubTreeElementCount_(i)+1)}let s=Math.max(t.width(),t.height()),c=-1,l=[],u=[],f=[];l.push(i),u.push(r.clone()),f.push(n);let p=d(S,4);for(;l.length>0;){let n=!1,r=l.at(-1),d=u.at(-1),m=f.at(-1);if(l.pop(),u.pop(),f.pop(),m+1<this.m_height&&this.canPushDown_(r)&&s<=Math.max(d.width(),d.height())/2&&(n=!0),n){V.setChildExtents_(d,p);let e=!1;for(let n=0;n<4;n++)if(e=p[n].containsEnvelope(t),e){let e=this.getChild_(r,n);e===-1&&(e=this.createChild_(r,n)),l.push(e),u.push(p[n].clone()),f.push(m+1),this.setSubTreeElementCount_(e,this.getSubTreeElementCount_(e)+1),this.setContainedSubTreeElementCount_(e,this.getContainedSubTreeElementCount_(e)+1);break}if(!e){for(let e=0;e<4;e++)if(p[e].isIntersecting(t)){let t=this.getChild_(r,e);t===-1&&(t=this.createChild_(r,e)),l.push(t),u.push(p[e].clone()),f.push(m+1),this.setSubTreeElementCount_(t,this.getSubTreeElementCount_(t)+1)}}}else c=this.insertAtQuad_(e,t,m,d,r,a,i,o,c),a=!1}return 0}insertAtQuad_(e,t,n,r,i,a,o,s,c){this.getFirstElement_(i);let l=this.getLastElement_(i),u=-1;if(a){if(i===o)return s;this.disconnectElementHandle_(s),u=s}else c===-1?(u=this.createElement_(),this.setDataValues_(this.getData_(u),e,t)):u=this.createElementFromDuplicate_(c);return this.setQuad_(u,i),l===-1?this.setFirstElement_(i,u):(this.setPrevElement_(u,l),this.setNextElement_(l,u)),this.setLastElement_(i,u),this.setLocalElementCount_(i,this.getLocalElementCount_(i)+1),this.canFlush_(i)&&this.flush_(n,r,i),u}static setChildExtents_(e,t){let n=.5*(e.xmin+e.xmax),r=.5*(e.ymin+e.ymax);t[0].setCoords({xmin:n,ymin:r,xmax:e.xmax,ymax:e.ymax}),t[1].setCoords({xmin:e.xmin,ymin:r,xmax:n,ymax:e.ymax}),t[2].setCoords({xmin:e.xmin,ymin:e.ymin,xmax:n,ymax:r}),t[3].setCoords({xmin:n,ymin:e.ymin,xmax:e.xmax,ymax:r})}disconnectElementHandle_(e){let t=this.getQuad_(e),n=this.getFirstElement_(t),r=this.getLastElement_(t),i=this.getPrevElement_(e),a=this.getNextElement_(e);n===e?(a===-1?this.setLastElement_(t,-1):this.setPrevElement_(a,-1),this.setFirstElement_(t,a)):r===e?(this.setNextElement_(i,-1),this.setLastElement_(t,i)):(this.setPrevElement_(a,i),this.setNextElement_(i,a)),this.setPrevElement_(e,-1),this.setNextElement_(e,-1),this.setLocalElementCount_(t,this.getLocalElementCount_(t)-1)}canFlush_(e){return this.getLocalElementCount_(e)===V.m_flushingCount&&!this.hasChildren_(e)}flush_(e,t,n){let r,i=new S,a=this.getFirstElement_(n),o=-1,s=-1;do s=this.getData_(a),r=this.getElementValue_(s),i.setCoords({env2D:this.getBoundingBoxValue_(s)}),o=this.getNextElement_(a),this.m_bStoreDuplicates?this.insertDuplicates_(r,i,e,t,n,!0,a):this.insert_(r,i,e,t,n,!0,a),a=o;while(a!==-1)}canPushDown_(e){return this.getLocalElementCount_(e)>=V.m_flushingCount||this.hasChildren_(e)}hasChildren_(e){return this.getChild_(e,0)!==-1||this.getChild_(e,1)!==-1||this.getChild_(e,2)!==-1||this.getChild_(e,3)!==-1}createChild_(e,t){let n=this.m_quadTreeNodes.newElement();return this.setChild_(e,t,n),this.setSubTreeElementCount_(n,0),this.setLocalElementCount_(n,0),this.setParent_(n,e),this.setHeightAndQuadrant_(n,this.getHeight_(e)+1,t),this.m_bStoreDuplicates&&this.setContainedSubTreeElementCount_(n,0),n}createRoot_(){this.m_root=this.m_quadTreeNodes.newElement(),this.setSubTreeElementCount_(this.m_root,0),this.setLocalElementCount_(this.m_root,0),this.setHeightAndQuadrant_(this.m_root,0,0),this.m_bStoreDuplicates&&this.setContainedSubTreeElementCount_(this.m_root,0)}createElement_(){let e=this.m_elementNodes.newElement(),t;return this.m_freeData.length>0?(t=this.m_freeData.at(-1),this.m_freeData.pop()):(t=this.m_data.length,this.m_data.length=t+1),this.setData_(e,t),e}createElementFromDuplicate_(e){let t=this.m_elementNodes.newElement(),n=this.getData_(e);return this.setData_(t,n),t}freeElementAndBoxNode_(e){h(0)}getChild_(e,t){return this.m_quadTreeNodes.getField(e,t)}setChild_(e,t,n){this.m_quadTreeNodes.setField(e,t,n)}getFirstElement_(e){return this.m_quadTreeNodes.getField(e,4)}setFirstElement_(e,t){this.m_quadTreeNodes.setField(e,4,t)}getLastElement_(e){return this.m_quadTreeNodes.getField(e,5)}setLastElement_(e,t){this.m_quadTreeNodes.setField(e,5,t)}getQuadrant_(e){return this.m_quadTreeNodes.getField(e,6)&V.m_quadrantMask}getHeight_(e){return this.m_quadTreeNodes.getField(e,6)>>V.m_heightBitShift}setHeightAndQuadrant_(e,t,n){let r=t<<V.m_heightBitShift|n;this.m_quadTreeNodes.setField(e,6,r)}getLocalElementCount_(e){return this.m_quadTreeNodes.getField(e,7)}setLocalElementCount_(e,t){this.m_quadTreeNodes.setField(e,7,t)}getSubTreeElementCount_(e){return this.m_quadTreeNodes.getField(e,8)}setSubTreeElementCount_(e,t){this.m_quadTreeNodes.setField(e,8,t)}getParent_(e){return this.m_quadTreeNodes.getField(e,9)}setParent_(e,t){this.m_quadTreeNodes.setField(e,9,t)}getContainedSubTreeElementCount_(e){return this.m_quadTreeNodes.getField(e,10)}setContainedSubTreeElementCount_(e,t){this.m_quadTreeNodes.setField(e,10,t)}getData_(e){return this.m_elementNodes.getField(e,0)}setData_(e,t){this.m_elementNodes.setField(e,0,t)}getPrevElement_(e){return this.m_elementNodes.getField(e,1)}getNextElement_(e){return this.m_elementNodes.getField(e,2)}setPrevElement_(e,t){this.m_elementNodes.setField(e,1,t)}setNextElement_(e,t){this.m_elementNodes.setField(e,2,t)}getQuad_(e){return this.m_elementNodes.getField(e,3)}setQuad_(e,t){this.m_elementNodes.setField(e,3,t)}getElementValue_(e){return this.m_data[e].element}getBoundingBoxValue_(e){return this.m_data[e].box}setDataValues_(e,t,n){this.m_data[e]=Ce(t,n)}}class we{m_bLinear=!1;m_queryStart=new s;m_queryEnd=new s;m_queryBox=new S;m_tolerance=0;m_currentElementHandle=-1;m_nextElementHandle=-1;m_quadTree;m_quadsStack=[];m_extentsStack=[];m_childExtents=[new S,new S,new S,new S];constructor(e,t,n){this.m_quadTree=e,t&&this.resetIterator(t,n)}resetIterator(e,t){if(t===void 0&&(t=0),e instanceof S){this.m_quadsStack.length=0,this.m_extentsStack.length=0,this.m_currentElementHandle=-1,this.m_queryBox.setCoords({env2D:e}),this.m_queryBox.inflateCoords(t,t),this.m_tolerance=NaN,this.m_quadTree.m_root!==-1&&this.m_queryBox.isIntersecting(this.m_quadTree.m_extent)?(this.m_quadsStack.push(this.m_quadTree.m_root),this.m_extentsStack.push(this.m_quadTree.m_extent.clone()),this.m_nextElementHandle=this.m_quadTree.getFirstElement_(this.m_quadTree.m_root),this.m_bLinear=!1):this.m_nextElementHandle=-1;return}if(this.m_quadsStack.length=0,this.m_extentsStack.length=0,this.m_currentElementHandle=-1,e.queryLooseEnvelope(this.m_queryBox),this.m_queryBox.inflateCoords(t,t),this.m_quadTree.m_root!==-1&&this.m_queryBox.isIntersecting(this.m_quadTree.m_extent)){let n=e.getGeometryType();if(this.m_bLinear=n===v.enumLine,this.m_bLinear){let n=e;this.m_queryStart.assign(n.getStartXY()),this.m_queryEnd.assign(n.getEndXY()),this.m_tolerance=t}else this.m_tolerance=NaN;this.m_quadsStack.push(this.m_quadTree.m_root),this.m_extentsStack.push(this.m_quadTree.m_extent.clone()),this.m_nextElementHandle=this.m_quadTree.getFirstElement_(this.m_quadTree.m_root)}else this.m_nextElementHandle=-1}next(){if(this.m_quadsStack.length===0)return-1;this.m_currentElementHandle=this.m_nextElementHandle;let e=new s,t=new s,n=new S,r=!1;for(;!r;){for(;this.m_currentElementHandle!==-1;){let i=this.m_quadTree.getData_(this.m_currentElementHandle);if(n.setCoords({env2D:this.m_quadTree.getBoundingBoxValue_(i)}),n.isIntersecting(this.m_queryBox)){if(this.m_bLinear){if(e.setCoordsPoint2D(this.m_queryStart),t.setCoordsPoint2D(this.m_queryEnd),n.inflateCoords(this.m_tolerance,this.m_tolerance),n.clipLine(e,t)>0){r=!0;break}}else{r=!0;break}}this.m_currentElementHandle=this.m_quadTree.getNextElement_(this.m_currentElementHandle)}if(this.m_currentElementHandle===-1){let n=this.m_quadsStack.at(-1),r=this.m_extentsStack.at(-1);V.setChildExtents_(r,this.m_childExtents),this.m_quadsStack.pop(),this.m_extentsStack.pop();for(let r=0;r<4;r++){let i=this.m_quadTree.getChild_(n,r);if(i!==-1&&this.m_quadTree.getSubTreeElementCount(i)>0&&this.m_childExtents[r].isIntersecting(this.m_queryBox)){if(this.m_bLinear){e.setCoordsPoint2D(this.m_queryStart),t.setCoordsPoint2D(this.m_queryEnd);let n=new S;n.setCoords({env2D:this.m_childExtents[r]}),n.inflateCoords(this.m_tolerance,this.m_tolerance),n.clipLine(e,t)>0&&(this.m_quadsStack.push(i),this.m_extentsStack.push(this.m_childExtents[r].clone()))}else this.m_quadsStack.push(i),this.m_extentsStack.push(this.m_childExtents[r].clone())}}if(this.m_quadsStack.length===0)return-1;this.m_currentElementHandle=this.m_quadTree.getFirstElement_(this.m_quadsStack.at(-1))}}return this.m_nextElementHandle=this.m_quadTree.getNextElement_(this.m_currentElementHandle),this.m_currentElementHandle}clone(){return h(0),{}}}class Te{m_bucketSort=new z;m_sortedHandles=new L(0);m_quadTreeIteratorImpl;m_index=-1;constructor(e){this.m_quadTreeIteratorImpl=e}resetIterator(e,t){this.m_quadTreeIteratorImpl.resetIterator(e,t),this.m_sortedHandles.resize(0),this.m_index=-1}next(){if(this.m_index===-1){let e=-1;for(;(e=this.m_quadTreeIteratorImpl.next())!==-1;)this.m_sortedHandles.add(e);let t=this;this.m_bucketSort.sort(this.m_sortedHandles,0,this.m_sortedHandles.size(),{userSort(e,n,r){r.sort(e,n,(e,n)=>t.m_quadTreeIteratorImpl.m_quadTree.getElement(e)-t.m_quadTreeIteratorImpl.m_quadTree.getElement(n))},getValue(e){return t.m_quadTreeIteratorImpl.m_quadTree.getElement(e)}})}return this.m_index===this.m_sortedHandles.size()-1?-1:(this.m_index++,this.m_sortedHandles.read(this.m_index))}clone(){return h(0),{}}}class Ee{constructor(e=!1){this.m_bNotifyOnActions=e}onDelete(e){}onSet(e){}onEndSearch(e){}onAddUniqueElementFailed(e){}m_bNotifyOnActions;onDeleteImpl(e,t){this.m_bNotifyOnActions&&this.onDelete(e.getElement(t))}onSetImpl(e,t){this.m_bNotifyOnActions&&this.onSet(e.getElement(t))}onAddUniqueElementFailedImpl(e){this.m_bNotifyOnActions&&this.onAddUniqueElementFailed(e)}onEndSearchImpl(e){this.m_bNotifyOnActions&&this.onEndSearch(e)}}class H{static st_nullNode(){return-1}constructor(){}setComparator(e){this.m_comparator=e}getComparator(){return this.m_comparator}disableBalancing(){this.m_bBalancing=!1}enableBalancing(){this.m_bBalancing||=(h(this.m_treapCount<=1),this.rebalance(-1),!0)}isAutoBalancing(){return this.m_bBalancing}rebalance(e){if(this.m_bBalancing||(e===-1&&(e=this.m_defaultTreap),this.size(e)===0))return;let t=[];for(let n=this.getFirst(e);n!==-1;n=this.getNext(n))t.push(n),this.setParent_(n,-1),this.setRight_(n,-1),this.setLeft_(n,-1);this.setRoot_(-1,e),this.setFirst_(-1,e),this.setLast_(-1,e),this.setSize_(0,e),this.m_bBalancing=!0;for(let n of t)this.addBiggestElement_(n,e);this.m_bBalancing=!1}setCapacity(e){this.m_treapData.setCapacity(e)}createTreap(e){let t=this.m_treapData.newElement();return this.setSize_(0,t),this.setTreapData_(e,t),this.m_treapCount++,t}deleteTreap(e){this.m_treapData.deleteElement(e),this.m_treapCount--}addElement(e,t=-1){return t===-1&&(this.m_defaultTreap===H.st_nullNode()&&(this.m_defaultTreap=this.createTreap(-1)),t=this.m_defaultTreap),this.addElement_(e,0,t)}addUniqueElement(e,t=-1){return t===-1&&(this.m_defaultTreap===H.st_nullNode()&&(this.m_defaultTreap=this.createTreap(-1)),t=this.m_defaultTreap),this.addElement_(e,1,t)}addBiggestElement(e,t=-1){t===-1&&(this.m_defaultTreap===H.st_nullNode()&&(this.m_defaultTreap=this.createTreap(-1)),t=this.m_defaultTreap);let n=this.newNode_(e);return this.addBiggestElement_(n,t),n}addElementAtPosition(e,t,n,r,i,a=-1){if(a===-1&&(this.m_defaultTreap===H.st_nullNode()&&(this.m_defaultTreap=this.createTreap(-1)),a=this.m_defaultTreap),this.getRoot_(a)===H.st_nullNode()){let e=this.newNode_(n);return this.setRoot_(e,a),this.addToList_(-1,e,a),e}let o,s;if(i?(o=t===H.st_nullNode()?-1:this.m_comparator.compare(this,n,t),s=e===H.st_nullNode()?1:this.m_comparator.compare(this,n,e)):(o=-1,s=1),r&&(o===0||s===0)){this.m_comparator.onAddUniqueElementFailedImpl(n);let r=o===0?t:e;return this.setDuplicateElement_(r,a),-1}let c,l,u;u=t!==H.st_nullNode()&&e!==H.st_nullNode()?this.m_random>f(this.m_random)>>1:t!==H.st_nullNode(),u?(l=o,c=t):(l=s,c=e);let d=-1,p=-1,m=!0;for(;;){if(l<0){let e=this.getLeft(c);if(e!==H.st_nullNode())c=e;else{p=c,d=this.newNode_(n),this.setLeft_(c,d),this.setParent_(d,c);break}}else{let e=this.getRight(c);if(e!==H.st_nullNode())c=e;else{p=this.getNext(c),d=this.newNode_(n),this.setRight_(c,d),this.setParent_(d,c);break}}m&&=(l*=-1,!1)}return this.bubbleUp_(d),this.getParent(d)===H.st_nullNode()&&this.setRoot_(d,a),this.addToList_(p,d,a),d}replaceElementAtPosition(e,t,n,r,i=-1){if(r){let r=this.getNext(e),a=-1;r!==H.st_nullNode()&&(a=this.m_comparator.compare(this,t,r));let o=this.getPrev(e),s=-1;if(o!==H.st_nullNode()&&(s=this.m_comparator.compare(this,t,o)),n&&(a===0||s===0)){this.m_comparator.onAddUniqueElementFailedImpl(t);let e=a===0?r:o;return i===H.st_nullNode()&&(this.m_defaultTreap===H.st_nullNode()&&(this.m_defaultTreap=this.createTreap(-1)),i=this.m_defaultTreap),this.setDuplicateElement_(e,i),-1}}return this.setElement_(e,t),e}getDuplicateElement(e=-1){return e===-1?this.getDuplicateElement_(this.m_defaultTreap):this.getDuplicateElement_(e)}deleteNode(e,t=-1){this.m_comparator&&this.m_comparator.onDeleteImpl(this,e),t===-1&&(t=this.m_defaultTreap),this.m_bBalancing?this.deleteNode_(e,t):this.unbalancedDelete_(e,t)}search(e,t=-1){let n=this.getRoot(t);for(;n!==H.st_nullNode();){let t=this.m_comparator.compare(this,e,n);if(t)n=t<0?this.getLeft(n):this.getRight(n);else return n}return this.m_comparator.onEndSearchImpl(e),H.st_nullNode()}searchLowerBound(e,t=-1){let n=this.getRoot(t),r=-1;for(;n!==H.st_nullNode();){let t=e.compare(this,n);if(t)t<0?n=this.getLeft(n):(r=n,n=this.getRight(n));else return n}return r}searchUpperBound(e,t=-1){let n=this.getRoot(t),r=-1;for(;n!==H.st_nullNode();){let t=e.compare(this,n);if(t)t<0?(r=n,n=this.getLeft(n)):n=this.getRight(n);else return n}return r}getElement(e){return this.m_treapData.getField(e,3)}getLeft(e){return this.m_treapData.getField(e,0)}getRight(e){return this.m_treapData.getField(e,1)}getParent(e){return this.m_treapData.getField(e,2)}getNext(e){return this.m_treapData.getField(e,6)}getPrev(e){return this.m_treapData.getField(e,5)}getFirst(e=-1){return e===-1?this.getFirst_(this.m_defaultTreap):this.getFirst_(e)}getLast(e=-1){return e===-1?this.getLast_(this.m_defaultTreap):this.getLast_(e)}getTreapData(e=-1){return e===-1?this.getTreapData_(this.m_defaultTreap):this.getTreapData_(e)}setElement(e,t){this.m_comparator!==null&&this.m_comparator.onSetImpl(this,e),this.setElement_(e,t)}getRoot(e=-1){return e===-1?this.getRoot_(this.m_defaultTreap):this.getRoot_(e)}clear(){this.m_treapData.deleteAll(!1),this.m_defaultTreap=H.st_nullNode(),this.m_treapCount=0,this.m_maxDepthEver=0}addToList_(e,t,n){let r;e===-1?r=this.getLast_(n):(r=this.getPrev(e),this.setPrev_(e,t)),this.setPrev_(t,r),r!==-1&&this.setNext_(r,t),this.setNext_(t,e),e===this.getFirst_(n)&&this.setFirst_(t,n),e===-1&&this.setLast_(t,n),this.setSize_(this.getSize_(n)+1,n)}size(e=-1){return e===-1?this.getSize_(this.m_defaultTreap):this.getSize_(e)}getMaxDepth(e=-1){return this.getMaxDepthHelper_(this.getRoot(e))}getMaxDepthEver(){return this.m_maxDepthEver}static st_isValidNode(e){return B.isValidElement(e)}m_defaultTreap=-1;m_random=124234251;m_comparator=null;m_treapData=new B(7);m_treapCount=0;m_maxDepthEver=0;m_bBalancing=!0;dbgCheck_(e){}getPriority_(e){return this.m_treapData.getField(e,4)}bubbleDown_(e){let t=this.getLeft(e),n=this.getRight(e),r=this.getPriority_(e);for(;t!==H.st_nullNode()||n!==H.st_nullNode();){let i=t===H.st_nullNode()?p():this.getPriority_(t),a=n===H.st_nullNode()?p():this.getPriority_(n);if(r<=Math.min(i,a))return;i<=a?this.rotateRight_(t):this.rotateLeft_(e),t=this.getLeft(e),n=this.getRight(e)}}bubbleUp_(e){if(!this.m_bBalancing)return;let t=this.getPriority_(e),n=this.getParent(e);for(;n!==H.st_nullNode()&&this.getPriority_(n)>t;)this.getLeft(n)===e?this.rotateRight_(e):this.rotateLeft_(n),n=this.getParent(e)}rotateLeft_(e){let t=e,n=this.getRight(e),r;this.setParent_(n,this.getParent(t)),this.setParent_(t,n),r=this.getLeft(n),this.setRight_(t,r),r!==H.st_nullNode()&&this.setParent_(r,t),this.setLeft_(n,t),r=this.getParent(n),r!==H.st_nullNode()&&(this.getLeft(r)===t?this.setLeft_(r,n):this.setRight_(r,n))}rotateRight_(e){let t=this.getParent(e),n=e,r;this.setParent_(n,this.getParent(t)),this.setParent_(t,n),r=this.getRight(n),this.setLeft_(t,r),r!==H.st_nullNode()&&this.setParent_(r,t),this.setRight_(n,t),r=this.getParent(n),r!==H.st_nullNode()&&(this.getLeft(r)===t?this.setLeft_(r,n):this.setRight_(r,n))}setParent_(e,t){this.m_treapData.setField(e,2,t)}setLeft_(e,t){this.m_treapData.setField(e,0,t)}setRight_(e,t){this.m_treapData.setField(e,1,t)}setPriority_(e,t){this.m_treapData.setField(e,4,t)}setPrev_(e,t){this.m_treapData.setField(e,5,t)}setNext_(e,t){this.m_treapData.setField(e,6,t)}setRoot_(e,t){this.m_treapData.setField(t,0,e)}setFirst_(e,t){this.m_treapData.setField(t,1,e)}setLast_(e,t){this.m_treapData.setField(t,2,e)}setDuplicateElement_(e,t){this.m_treapData.setField(t,3,e)}setSize_(e,t){this.m_treapData.setField(t,4,e)}setTreapData_(e,t){this.m_treapData.setField(t,5,e)}getRoot_(e){return e===-1?H.st_nullNode():this.m_treapData.getField(e,0)}getFirst_(e){return e===-1?H.st_nullNode():this.m_treapData.getField(e,1)}getLast_(e){return e===-1?H.st_nullNode():this.m_treapData.getField(e,2)}getDuplicateElement_(e){return e===-1?H.st_nullNode():this.m_treapData.getField(e,3)}getSize_(e){return e===-1?0:this.m_treapData.getField(e,4)}getTreapData_(e){return this.m_treapData.getField(e,5)}newNode_(e){let t=this.m_treapData.newElement();return this.setPriority_(t,this.generatePriority_()),this.setElement_(t,e),t}freeNode_(e,t){e!==H.st_nullNode()&&this.m_treapData.deleteElement(e)}generatePriority_(){return this.m_random=f(this.m_random),this.m_random&p()>>1}maxPriority(){return h(0),0}getMaxDepthHelper_(e){return e===H.st_nullNode()?0:1+Math.max(this.getMaxDepthHelper_(this.getLeft(e)),this.getMaxDepthHelper_(this.getRight(e)))}addElement_(e,t,n){if(this.getRoot(n)===H.st_nullNode()){let t=this.newNode_(e);return this.setRoot_(t,n),this.addToList_(-1,t,n),this.m_maxDepthEver=Math.max(this.m_maxDepthEver,1),t}let r=this.getRoot_(n),i=-1,a=-1,o=1;for(;;){let s=t===-1?1:this.m_comparator.compare(this,e,r);if(s<0){let t=this.getLeft(r);if(t!==H.st_nullNode())r=t;else{a=r,i=this.newNode_(e),this.setLeft_(r,i),this.setParent_(i,r);break}}else{if(t===1&&s===0)return this.m_comparator.onAddUniqueElementFailedImpl(e),this.setDuplicateElement_(r,n),-1;let o=this.getRight(r);if(o!==H.st_nullNode())r=o;else{a=this.getNext(r),i=this.newNode_(e),this.setRight_(r,i),this.setParent_(i,r);break}}o++}return this.bubbleUp_(i),this.getParent(i)===H.st_nullNode()&&this.setRoot_(i,n),this.addToList_(a,i,n),this.m_maxDepthEver=Math.max(o,this.m_maxDepthEver),i}removeFromList_(e,t){let n=this.getPrev(e),r=this.getNext(e);n===-1?this.setFirst_(r,t):this.setNext_(n,r),r===-1?this.setLast_(n,t):this.setPrev_(r,n),this.setSize_(this.getSize_(t)-1,t)}unbalancedDelete_(e,t){this.removeFromList_(e,t);let n=this.getLeft(e),r=this.getRight(e),i=this.getParent(e),a=e;if(n!==-1&&r!==-1){this.m_random=f(this.m_random);let o;o=this.m_random>p()>>1?this.getNext(e):this.getPrev(e);let s=this.getParent(o)===e;this.m_treapData.swapField(e,o,0),this.m_treapData.swapField(e,o,1),this.m_treapData.swapField(e,o,2),i===-1?this.setRoot_(o,t):this.getLeft(i)===e?this.setLeft_(i,o):this.setRight_(i,o),s?(n===o?(this.setLeft_(o,e),this.setParent_(r,o)):r===o&&(this.setRight_(o,e),this.setParent_(n,o)),this.setParent_(e,o),i=o):(this.setParent_(n,o),this.setParent_(r,o),i=this.getParent(e),a=o),n=this.getLeft(e),r=this.getRight(e),n!==-1&&this.setParent_(n,e),r!==-1&&this.setParent_(r,e)}let o=n===-1?r:n;i===-1?this.setRoot_(o,t):this.getLeft(i)===a?this.setLeft_(i,o):this.setRight_(i,o),o!==-1&&this.setParent_(o,i),this.freeNode_(e,t)}deleteNode_(e,t){this.setPriority_(e,p());let n=H.st_nullNode(),r=H.st_nullNode(),i=this.getRoot_(t),a=i===e;if(a&&(n=this.getLeft(i),r=this.getRight(i),n===H.st_nullNode()&&r===H.st_nullNode())){this.removeFromList_(i,t),this.freeNode_(i,t),this.setRoot_(H.st_nullNode(),t);return}this.bubbleDown_(e);let o=this.getParent(e);o!==H.st_nullNode()&&(this.getLeft(o)===e?this.setLeft_(o,H.st_nullNode()):this.setRight_(o,H.st_nullNode())),this.removeFromList_(e,t),this.freeNode_(e,t),a&&this.setRoot_(n===H.st_nullNode()||this.getParent(n)!==H.st_nullNode()?r:n,t)}setElement_(e,t){this.m_treapData.setField(e,3,t)}addBiggestElement_(e,t){if(this.getRoot_(t)===H.st_nullNode()){this.setRoot_(e,t),this.addToList_(-1,e,t);return}let n=this.getLast_(t);this.setRight_(n,e),this.setParent_(e,n),this.bubbleUp_(e),this.getParent(e)===H.st_nullNode()&&this.setRoot_(e,t),this.addToList_(-1,e,t)}}class U{m_listNodes;m_lists;m_listOfLists;m_bStoreListIndexWithNode;constructor(e){this.m_lists=new B(6),this.m_listOfLists=U.st_nullNode(),e===void 0?(this.m_listNodes=new B(3),this.m_bStoreListIndexWithNode=!1):(this.m_listNodes=new B(e?4:3),this.m_bStoreListIndexWithNode=e)}freeNode_(e){this.m_listNodes.deleteElement(e)}newNode_(){return this.m_listNodes.newElement()}freeList_(e){h(0)}newList_(){return this.m_lists.newElement()}setPrev_(e,t){this.m_listNodes.setField(e,1,t)}setNext_(e,t){this.m_listNodes.setField(e,2,t)}setData_(e,t){h(0)}setList_(e,t){return this.m_listNodes.setField(e,3,t)}setListSize_(e,t){this.m_lists.setField(e,4,t)}setNextList_(e,t){h(0)}setPrevList_(e,t){this.m_lists.setField(e,2,t)}createList(e){let t=this.newList_();return this.m_lists.setField(t,3,this.m_listOfLists),this.m_lists.setField(t,4,0),this.m_lists.setField(t,5,e),this.m_listOfLists!==U.st_nullNode()&&this.setPrevList_(this.m_listOfLists,t),this.m_listOfLists=t,t}deleteList(e){this.clear(e);let t=this.m_lists.getField(e,2),n=this.m_lists.getField(e,3);return t===U.st_nullNode()?this.m_listOfLists=n:this.setNextList_(t,n),n!==U.st_nullNode()&&this.setPrevList_(n,t),this.freeList_(e),n}reserveLists(e){h(0)}getListData(e){return this.m_lists.getField(e,5)}getList(e){return h(0),0}setListData(e,t){this.m_lists.setField(e,5,t)}addElement(e,t){return this.insertElement(e,-1,t)}insertElement(e,t,n){let r=this.newNode_(),i=-1;if(t!==U.st_nullNode()&&(i=this.getPrev(t),this.setPrev_(t,r)),this.setNext_(r,t),i!==U.st_nullNode()&&this.setNext_(i,r),t===this.m_lists.getField(e,0)&&this.m_lists.setField(e,0,r),t===U.st_nullNode()){let t=this.m_lists.getField(e,1);this.setPrev_(r,t),t!==-1&&this.setNext_(t,r),this.m_lists.setField(e,1,r)}return this.setData(r,n),this.setListSize_(e,this.getListSize(e)+1),this.m_bStoreListIndexWithNode&&this.setList_(r,e),r}deleteElement(e,t){let n=this.getPrev(t),r=this.getNext(t);return n===U.st_nullNode()?this.m_lists.setField(e,0,r):this.setNext_(n,r),r===U.st_nullNode()?this.m_lists.setField(e,1,n):this.setPrev_(r,n),this.freeNode_(t),this.setListSize_(e,this.getListSize(e)-1),r}reserveNodes(e){this.m_listNodes.setCapacity(e)}getData(e){return this.m_listNodes.getField(e,0)}getElement(e){return this.getData(e)}setData(e,t){this.m_listNodes.setField(e,0,t)}getNext(e){return this.m_listNodes.getField(e,2)}getPrev(e){return this.m_listNodes.getField(e,1)}getFirst(e){return this.m_lists.getField(e,0)}getLast(e){return this.m_lists.getField(e,1)}static st_nullNode(){return-1}clear(e){if(e!==void 0){let t=this.getLast(e);for(;t!==U.st_nullNode();){let e=t;t=this.getPrev(e),this.freeNode_(e)}this.m_lists.setField(e,0,-1),this.m_lists.setField(e,1,-1),this.setListSize_(e,0);return}for(let e=this.getFirstList();e!==-1;)e=this.deleteList(e)}isEmpty(e){return h(0),!1}getNodeCount(){return this.m_listNodes.size()}getListCount(){return this.m_lists.size()}getListSize(e){return this.m_lists.getField(e,4)}getFirstList(){return this.m_listOfLists}getNextList(e){return this.m_lists.getField(e,3)}}class De extends Ee{m_intervalTree;constructor(e){super(),this.m_intervalTree=e}compare(e,t,n){let r=e.getElement(n),i=this.m_intervalTree.getValue_(t),a=this.m_intervalTree.getValue_(r);return i<a?-1:i===a?W.isLeft_(t)&&W.isRight_(r)?-1:W.isLeft_(r)&&W.isRight_(t)?1:0:1}}class W{m_bEnvelopesRef=!1;m_bOfflineDynamic;m_intervals=[];m_envelopesRef=null;m_tertiaryNodes;m_intervalNodes=new B(3);m_intervalHandles=[];m_secondaryLists;m_secondaryTreaps;m_endIndicesUnique=[];m_cCount=-1;m_root=-1;m_bSortIntervals=!1;m_bConstructing=!1;m_bConstructionEnded=!1;constructor(e){this.m_bOfflineDynamic=e,this.m_tertiaryNodes=new B(this.m_bOfflineDynamic?5:4),this.m_secondaryTreaps=new H,this.m_secondaryTreaps.setComparator(new De(this)),this.m_secondaryLists=new U}addEnvelopesRef(e){this.reset_(!0,!0),this.m_bEnvelopesRef=!0,this.m_envelopesRef=e,this.m_bConstructing=!1,this.m_bConstructionEnded=!0,this.m_bOfflineDynamic||(this.insertIntervalsStatic_(),this.m_cCount=this.m_envelopesRef.length)}startConstruction(){this.reset_(!0,!1)}addInterval(e){this.m_bConstructing||x(``),this.m_intervals.push(e.clone())}addIntervalCoords(e,t){h(0)}endConstruction(){this.m_bConstructing||x(``),this.m_bConstructing=!1,this.m_bConstructionEnded=!0,this.m_bOfflineDynamic||(this.insertIntervalsStatic_(),this.m_cCount=this.m_intervals.length)}insert(e){if((!this.m_bOfflineDynamic||!this.m_bConstructionEnded)&&x(``),this.m_root===-1){let e=this.m_bEnvelopesRef?this.m_envelopesRef.length:this.m_intervals.length;if(this.m_bSortIntervals){let t=new L(0);this.querySortedEndPointIndices_(t),this.m_endIndicesUnique.length=0,this.querySortedDuplicatesRemoved_(t),this.m_intervalHandles.length=e,this.m_intervalHandles.fill(-1),this.m_bSortIntervals=!1}else this.m_intervalHandles.fill(-1,0,e);this.m_root=this.createRoot_()}let t=this.insertIntervalEnd_(e<<1,this.m_root),n=this.getSecondaryFromInterval_(t),r=this.m_secondaryTreaps.addElement((e<<1)+1,n);this.setRightEnd_(t,r),this.m_intervalHandles[e]=t,this.m_cCount++}remove(e){(!this.m_bOfflineDynamic||!this.m_bConstructionEnded)&&x(``);let t=this.m_intervalHandles[e];t===-1&&g(`the interval does not exist in the interval tree`),this.m_intervalHandles[e]=-1,this.m_cCount--;let n,r=this.getSecondaryFromInterval_(t),i=-1;i=this.m_secondaryTreaps.getTreapData(r),this.m_secondaryTreaps.deleteNode(this.getLeftEnd_(t),r),this.m_secondaryTreaps.deleteNode(this.getRightEnd_(t),r),n=this.m_secondaryTreaps.size(r),n===0&&(this.m_secondaryTreaps.deleteTreap(r),this.setSecondaryToTertiary_(i,-1)),this.m_intervalNodes.deleteElement(t);let a=this.getPptr_(i),o=this.getLptr_(i),s=this.getRptr_(i);for(;!(n>0||i===this.m_root||o!==-1&&s!==-1);)i===this.getLptr_(a)?o===-1?s===-1?(this.setLptr_(a,-1),this.setPptr_(i,-1)):(this.setLptr_(a,s),this.setPptr_(s,a),this.setRptr_(i,-1),this.setPptr_(i,-1)):(this.setLptr_(a,o),this.setPptr_(o,a),this.setLptr_(i,-1),this.setPptr_(i,-1)):o===-1?s===-1?(this.setRptr_(a,-1),this.setPptr_(i,-1)):(this.setRptr_(a,s),this.setPptr_(s,a),this.setRptr_(i,-1),this.setPptr_(i,-1)):(this.setRptr_(a,o),this.setPptr_(o,a),this.setLptr_(i,-1),this.setPptr_(i,-1)),this.m_tertiaryNodes.deleteElement(i),i=a,r=this.getSecondaryFromTertiary_(i),n=r===-1?0:this.m_secondaryTreaps.size(r),o=this.getLptr_(i),s=this.getRptr_(i),a=this.getPptr_(i)}size(){return this.m_cCount}getIteratorQuery(e,t){return e instanceof a?new Oe(this,e,t):(h(0),{})}getIterator(){return new Oe(this)}querySortedEndPointIndices_(e){let t=this.m_bEnvelopesRef?this.m_envelopesRef.length:this.m_intervals.length;for(let n=0;n<2*t;n++)e.add(n);this.sortEndIndices_(e,0,2*t)}querySortedDuplicatesRemoved_(e){let t=NaN;for(let n=0;n<e.size();n++){let r=e.read(n),i=this.getValue_(r);i!==t&&(this.m_endIndicesUnique.push(r),t=i)}}insertIntervalsStatic_(){let e=this.m_bEnvelopesRef?this.m_envelopesRef.length:this.m_intervals.length,n=new L(0);this.querySortedEndPointIndices_(n),this.m_endIndicesUnique.length=0,this.querySortedDuplicatesRemoved_(n),this.m_intervalNodes.setCapacity(e),this.m_secondaryLists.reserveNodes(2*e);let r=t(e,-1);this.m_root=this.createRoot_();for(let e=0;e<n.size();e++){let t=n.read(e),i=r[t>>1];if(i!==-1){let e=this.getSecondaryFromInterval_(i);this.setRightEnd_(i,this.m_secondaryLists.addElement(e,t))}else i=this.insertIntervalEnd_(t,this.m_root),r[t>>1]=i}}createRoot_(){let e=this.calculateDiscriminantIndex1_(0,this.m_endIndicesUnique.length-1);return this.createTertiaryNode_(e)}insertIntervalEnd_(e,t){let n=-1,r=t,i=-1,a=-1,o=0,s=this.m_endIndicesUnique.length-1,c=0,l=e>>1,u=NaN,d=NaN,f=!0,p=this.getMin_(l),m=this.getMax_(l),h=-1;for(;f;){c=o+(s-o>>1),h=this.calculateDiscriminantIndex1_(o,s);let t=this.getDiscriminantFromIndex1_(h);if(m<t){if(r!==-1){if(h===this.getDiscriminantIndex1_(r))n=r,u=t,r=this.getLptr_(r),d=r===-1?NaN:this.getDiscriminant_(r);else if(d>t){let e=this.createTertiaryNode_(h);t<u?this.setLptr_(n,e):this.setRptr_(n,e),this.setRptr_(e,r),this.m_bOfflineDynamic&&(this.setPptr_(e,n),this.setPptr_(r,e)),n=e,u=t,r=-1,d=NaN}}s=c;continue}if(p>t){if(r!==-1){if(h===this.getDiscriminantIndex1_(r))n=r,u=t,r=this.getRptr_(r),d=r===-1?NaN:this.getDiscriminant_(r);else if(d<t){let e=this.createTertiaryNode_(h);t<u?this.setLptr_(n,e):this.setRptr_(n,e),this.setLptr_(e,r),this.m_bOfflineDynamic&&(this.setPptr_(e,n),this.setPptr_(r,e)),n=e,u=t,r=-1,d=NaN}}o=c+1;continue}let l=-1;l=r===-1||h!==this.getDiscriminantIndex1_(r)?this.createTertiaryNode_(h):r,i=this.getSecondaryFromTertiary_(l),i===-1&&(i=this.createSecondary_(l),this.setSecondaryToTertiary_(l,i));let g=this.addEndIndex_(i,e);a=this.createIntervalNode_(),this.setSecondaryToInterval_(a,i),this.setLeftEnd_(a,g),(r===-1||h!==this.getDiscriminantIndex1_(r))&&(t<u?this.setLptr_(n,l):this.setRptr_(n,l),this.m_bOfflineDynamic&&this.setPptr_(l,n),r!==-1&&(d<t?this.setLptr_(l,r):this.setRptr_(l,r),this.m_bOfflineDynamic&&this.setPptr_(r,l))),f=!1;break}return a}createTertiaryNode_(e){let t=this.m_tertiaryNodes.newElement();return this.setDiscriminantIndex1_(t,e),t}createSecondary_(e){return this.m_bOfflineDynamic?this.m_secondaryTreaps.createTreap(e):this.m_secondaryLists.createList(e)}createIntervalNode_(){return this.m_intervalNodes.newElement()}reset(){(!this.m_bOfflineDynamic||!this.m_bConstructionEnded)&&x(``),this.reset_(!1,this.m_bEnvelopesRef)}reset_(e,t){e?(this.m_bEnvelopesRef=!1,this.m_envelopesRef=null,this.m_bSortIntervals=!0,this.m_bConstructing=!0,this.m_bConstructionEnded=!1,this.m_endIndicesUnique.length=0,t?(this.m_intervals.length=0,this.m_bEnvelopesRef=!0):this.m_intervals.length=0):this.m_bSortIntervals=!1,this.m_bOfflineDynamic?this.m_secondaryTreaps.clear():this.m_secondaryLists.clear(),this.m_intervalNodes.deleteAll(!1),this.m_tertiaryNodes.deleteAll(!1),this.m_root=-1,this.m_cCount=0}getDiscriminant_(e){let t=this.getDiscriminantIndex1_(e);return this.getDiscriminantFromIndex1_(t)}getDiscriminantFromIndex1_(e){if(e===-1)return NaN;if(e>0){let t=e-2,n=this.m_endIndicesUnique[t],r=this.m_endIndicesUnique[t+1];return .5*(this.getValue_(n)+this.getValue_(r))}let t=-e-2,n=this.m_endIndicesUnique[t];return this.getValue_(n)}calculateDiscriminantIndex1_(e,t){let n;return n=e<t?e+(t-e>>1)+2:-(e+2),n}setDiscriminantIndex1_(e,t){this.m_tertiaryNodes.setField(e,0,t)}setSecondaryToTertiary_(e,t){this.m_tertiaryNodes.setField(e,1,t)}setLptr_(e,t){this.m_tertiaryNodes.setField(e,2,t)}setRptr_(e,t){this.m_tertiaryNodes.setField(e,3,t)}setPptr_(e,t){this.m_tertiaryNodes.setField(e,4,t)}setSecondaryToInterval_(e,t){this.m_intervalNodes.setField(e,0,t)}addEndIndex_(e,t){let n=-1;return n=this.m_bOfflineDynamic?this.m_secondaryTreaps.addElement(t,e):this.m_secondaryLists.addElement(e,t),n}setLeftEnd_(e,t){this.m_intervalNodes.setField(e,1,t)}setRightEnd_(e,t){this.m_intervalNodes.setField(e,2,t)}getFirst_(e){return this.m_bOfflineDynamic?this.m_secondaryTreaps.getFirst(e):this.m_secondaryLists.getFirst(e)}getLast_(e){return this.m_bOfflineDynamic?this.m_secondaryTreaps.getLast(e):this.m_secondaryLists.getLast(e)}static isLeft_(e){return!(e&1)}static isRight_(e){return(e&1)==1}getDiscriminantIndex1_(e){return this.m_tertiaryNodes.getField(e,0)}getSecondaryFromTertiary_(e){return this.m_tertiaryNodes.getField(e,1)}getLptr_(e){return this.m_tertiaryNodes.getField(e,2)}getRptr_(e){return this.m_tertiaryNodes.getField(e,3)}getPptr_(e){return this.m_tertiaryNodes.getField(e,4)}getSecondaryFromInterval_(e){return this.m_intervalNodes.getField(e,0)}getLeftEnd_(e){return this.m_intervalNodes.getField(e,1)}getRightEnd_(e){return this.m_intervalNodes.getField(e,2)}getMin_(e){return this.m_bEnvelopesRef?this.m_envelopesRef[e].xmin:this.m_intervals[e].vmin}getMax_(e){return this.m_bEnvelopesRef?this.m_envelopesRef[e].xmax:this.m_intervals[e].vmax}sortEndIndices_(e,t,n){let r=this;new z().sort(e,t,n,{userSort(e,t,n){r.sortEndIndicesHelper_(n,e,t)},getValue(e){return r.getValue_(e)}})}sortEndIndicesHelper_(e,t,n){e.sort(t,n,(e,t)=>{let n=this.getValue_(e),r=this.getValue_(t);return n<r||n===r&&W.isLeft_(e)&&W.isRight_(t)?-1:1})}getValue_(e){if(!this.m_bEnvelopesRef){let t=this.m_intervals[e>>1];return W.isLeft_(e)?t.vmin:t.vmax}let t=this.m_envelopesRef[e>>1];return W.isLeft_(e)?t.xmin:t.xmax}}class Oe{m_intervalTree;m_query=a.constructEmpty();m_tertiaryHandle=-1;m_nextTertiaryHandle=-1;m_forkedHandle=-1;m_currentEndHandle=-1;m_nextEndHandle=-1;m_tertiaryStack=[];m_functionIndex=0;m_functionStack;m_fi;constructor(e,t,n){this.m_intervalTree=e,this.m_functionStack=[,,],this.m_functionStack[0]=this.nullFunc_,this.m_functionStack[1]=this.nullFunc_,t!==void 0&&this.resetIterator(t,n)}nullFunc_(){return b(`should not be called`),!1}resetIterator(e,t){if(typeof e==`number`){let n=new a;n.setCoords(e,e),this.resetIterator(n,t)}else t===void 0&&(t=0),this.m_query.vmin=e.vmin-t,this.m_query.vmax=e.vmax+t,this.m_tertiaryStack.length=0,this.m_functionIndex=0,this.m_functionStack[0]=this.initialize_}next(){if(this.m_intervalTree.m_bConstructionEnded||x(``),this.m_functionIndex<0)return-1;for(;this.m_fi=this.m_functionStack[this.m_functionIndex],this.m_fi(););return this.m_currentEndHandle===-1?-1:this.getCurrentEndIndex_()>>1}initialize_(){return this.m_tertiaryHandle=-1,this.m_nextTertiaryHandle=-1,this.m_forkedHandle=-1,this.m_currentEndHandle=-1,this.m_intervalTree.m_tertiaryNodes.size()>0?(this.m_functionStack[0]=this.pIn_,this.m_nextTertiaryHandle=this.m_intervalTree.m_root,!0):(this.m_functionIndex=-1,!1)}pIn_(){if(this.m_tertiaryHandle=this.m_nextTertiaryHandle,this.m_tertiaryHandle===-1)return this.m_functionIndex=-1,this.m_currentEndHandle=-1,!1;let e=this.m_intervalTree.getDiscriminant_(this.m_tertiaryHandle);if(this.m_query.vmax<e){let e=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);return this.m_nextTertiaryHandle=this.m_intervalTree.getLptr_(this.m_tertiaryHandle),e!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getFirst_(e),this.m_functionStack[++this.m_functionIndex]=this.left_),!0}if(e<this.m_query.vmin){let e=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);return this.m_nextTertiaryHandle=this.m_intervalTree.getRptr_(this.m_tertiaryHandle),e!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getLast_(e),this.m_functionStack[++this.m_functionIndex]=this.right_),!0}this.m_functionStack[this.m_functionIndex]=this.pL_,this.m_forkedHandle=this.m_tertiaryHandle;let t=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);return this.m_nextTertiaryHandle=this.m_intervalTree.getLptr_(this.m_tertiaryHandle),t!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getFirst_(t),this.m_functionStack[++this.m_functionIndex]=this.all_),!0}pL_(){if(this.m_tertiaryHandle=this.m_nextTertiaryHandle,this.m_tertiaryHandle===-1)return this.m_functionStack[this.m_functionIndex]=this.pR_,this.m_nextTertiaryHandle=this.m_intervalTree.getRptr_(this.m_forkedHandle),!0;if(this.m_intervalTree.getDiscriminant_(this.m_tertiaryHandle)<this.m_query.vmin){let e=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);return this.m_nextTertiaryHandle=this.m_intervalTree.getRptr_(this.m_tertiaryHandle),e!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getLast_(e),this.m_functionStack[++this.m_functionIndex]=this.right_),!0}let e=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);this.m_nextTertiaryHandle=this.m_intervalTree.getLptr_(this.m_tertiaryHandle),e!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getFirst_(e),this.m_functionStack[++this.m_functionIndex]=this.all_);let t=this.m_intervalTree.getRptr_(this.m_tertiaryHandle);return t!==-1&&this.m_tertiaryStack.push(t),!0}pR_(){if(this.m_tertiaryHandle=this.m_nextTertiaryHandle,this.m_tertiaryHandle===-1)return this.m_functionStack[this.m_functionIndex]=this.pT_,!0;let e=this.m_intervalTree.getDiscriminant_(this.m_tertiaryHandle);if(this.m_query.vmax<e){let e=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);return this.m_nextTertiaryHandle=this.m_intervalTree.getLptr_(this.m_tertiaryHandle),e!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getFirst_(e),this.m_functionStack[++this.m_functionIndex]=this.left_),!0}let t=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);this.m_nextTertiaryHandle=this.m_intervalTree.getRptr_(this.m_tertiaryHandle),t!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getFirst_(t),this.m_functionStack[++this.m_functionIndex]=this.all_);let n=this.m_intervalTree.getLptr_(this.m_tertiaryHandle);return n!==-1&&this.m_tertiaryStack.push(n),!0}pT_(){if(this.m_tertiaryStack.length===0)return this.m_functionIndex=-1,this.m_currentEndHandle=-1,!1;this.m_tertiaryHandle=this.m_tertiaryStack.at(-1),this.m_tertiaryStack.pop();let e=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);return e!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getFirst_(e),this.m_functionStack[++this.m_functionIndex]=this.all_),this.m_intervalTree.getLptr_(this.m_tertiaryHandle)!==-1&&this.m_tertiaryStack.push(this.m_intervalTree.getLptr_(this.m_tertiaryHandle)),this.m_intervalTree.getRptr_(this.m_tertiaryHandle)!==-1&&this.m_tertiaryStack.push(this.m_intervalTree.getRptr_(this.m_tertiaryHandle)),!0}left_(){return this.m_currentEndHandle=this.m_nextEndHandle,this.m_currentEndHandle!==-1&&W.isLeft_(this.getCurrentEndIndex_())&&this.m_intervalTree.getValue_(this.getCurrentEndIndex_())<=this.m_query.vmax?(this.m_nextEndHandle=this.getNext_(),!1):(this.m_functionIndex--,!0)}right_(){return this.m_currentEndHandle=this.m_nextEndHandle,this.m_currentEndHandle!==-1&&W.isRight_(this.getCurrentEndIndex_())&&this.m_intervalTree.getValue_(this.getCurrentEndIndex_())>=this.m_query.vmin?(this.m_nextEndHandle=this.getPrev_(),!1):(this.m_functionIndex--,!0)}all_(){return this.m_currentEndHandle=this.m_nextEndHandle,this.m_currentEndHandle!==-1&&W.isLeft_(this.getCurrentEndIndex_())?(this.m_nextEndHandle=this.getNext_(),!1):(this.m_functionIndex--,!0)}getNext_(){return this.m_intervalTree.m_bOfflineDynamic?this.m_intervalTree.m_secondaryTreaps.getNext(this.m_currentEndHandle):this.m_intervalTree.m_secondaryLists.getNext(this.m_currentEndHandle)}getPrev_(){return this.m_intervalTree.m_bOfflineDynamic?this.m_intervalTree.m_secondaryTreaps.getPrev(this.m_currentEndHandle):this.m_intervalTree.m_secondaryLists.getPrev(this.m_currentEndHandle)}getCurrentEndIndex_(){return this.m_intervalTree.m_bOfflineDynamic?this.m_intervalTree.m_secondaryTreaps.getElement(this.m_currentEndHandle):this.m_intervalTree.m_secondaryLists.getData(this.m_currentEndHandle)}}class G{m_tolerance=0;m_sweepIndexRed=-1;m_sweepIndexBlue=-1;m_envelopeHandleA=-1;m_envelopeHandleB=-1;m_intervalTreeRed=null;m_intervalTreeBlue=null;m_iteratorRed=null;m_iteratorBlue=null;m_envelopesRed=[];m_envelopesBlue=[];m_elementsRed=[];m_elementsBlue=[];m_sortedEndIndicesRed=new L(0);m_sortedEndIndicesBlue=new L(0);m_queuedListRed=-1;m_queuedListBlue=-1;m_queuedEnvelopes=new U;m_queuedIndicesRed=[];m_queuedIndicesBlue=[];m_bAddRed=!1;m_bAddBlue=!1;m_bAddRedRed=!1;m_bDone=!0;m_function;constructor(){this.m_function=this.nullFunc_,this.reset_()}startConstruction(){this.reset_(),this.m_bAddRedRed=!0,this.m_elementsRed.length=0,this.m_envelopesRed.length=0}addEnvelope(e,t){this.m_bAddRedRed||x(``),this.m_elementsRed.push(e),this.m_envelopesRed.push(new S(t))}endConstruction(){this.m_bAddRedRed||x(``),this.m_bAddRedRed=!1,this.m_envelopesRed.length>0&&(this.m_function=this.initialize_,this.m_bDone=!1)}startRedConstruction(){this.reset_(),this.m_bAddRed=!0,this.m_elementsRed.length=0,this.m_envelopesRed.length=0}addRedEnvelope(e,t){this.m_bAddRed||x(``),this.m_elementsRed.push(e),this.m_envelopesRed.push(t.clone())}endRedConstruction(){this.m_bAddRed||x(``),this.m_bAddRed=!1,this.m_envelopesRed.length>0&&this.m_envelopesBlue.length>0&&(this.m_function===this.nullFunc_||this.m_function===this.initializeBlue_?this.m_function=this.initializeRedBlue_:this.m_function!==this.initializeRedBlue_&&(this.m_function=this.initializeRed_),this.m_bDone=!1)}startBlueConstruction(){this.reset_(),this.m_bAddBlue=!0,this.m_elementsBlue.length=0,this.m_envelopesBlue.length=0}addBlueEnvelope(e,t){this.m_bAddBlue||x(``),this.m_elementsBlue.push(e),this.m_envelopesBlue.push(t.clone())}endBlueConstruction(){this.m_bAddBlue||x(``),this.m_bAddBlue=!1,this.m_envelopesRed.length>0&&this.m_envelopesBlue.length>0&&(this.m_function===this.nullFunc_||this.m_function===this.initializeRed_?this.m_function=this.initializeRedBlue_:this.m_function!==this.initializeRedBlue_&&(this.m_function=this.initializeBlue_),this.m_bDone=!1)}next(){if(this.m_bDone)return!1;for(;this.m_function(););return!this.m_bDone}getHandleA(){return this.m_envelopeHandleA}getHandleB(){return this.m_envelopeHandleB}setTolerance(e){this.m_tolerance=e}getElement(e){return this.m_elementsRed[e]}getRedEnvelope(e){return this.m_envelopesRed[e]}getBlueEnvelope(e){return this.m_envelopesBlue[e]}getRedElement(e){return this.m_elementsRed[e]}getBlueElement(e){return this.m_elementsBlue[e]}isTop_(e){return(e&1)==1}isBottom_(e){return!(e&1)}reset_(){this.m_bAddRed=!1,this.m_bAddBlue=!1,this.m_bAddRedRed=!1,this.m_sweepIndexRed=-1,this.m_sweepIndexBlue=-1,this.m_queuedListRed=-1,this.m_queuedListBlue=-1,this.m_bDone=!0}initialize_(){if(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_envelopesRed.length<10)return this.m_sweepIndexRed=this.m_envelopesRed.length,this.m_function=this.sweepBruteForce_,!0;this.m_intervalTreeRed||=new W(!0),this.m_intervalTreeRed.addEnvelopesRef(this.m_envelopesRed),this.m_iteratorRed===null&&(this.m_iteratorRed=this.m_intervalTreeRed.getIterator()),this.m_sortedEndIndicesRed.resize(0);for(let e=0;e<2*this.m_envelopesRed.length;e++)this.m_sortedEndIndicesRed.add(e);return this.sortYEndIndices_(this.m_sortedEndIndicesRed,0,2*this.m_envelopesRed.length,!0),this.m_sweepIndexRed=2*this.m_envelopesRed.length,this.m_function=this.sweep_,!0}initializeRed_(){if(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_envelopesRed.length<10||this.m_envelopesBlue.length<10)return this.m_sweepIndexRed=this.m_envelopesRed.length,this.m_function=this.sweepRedBlueBruteForce_,!0;this.m_intervalTreeRed||=new W(!0),this.m_intervalTreeRed.addEnvelopesRef(this.m_envelopesRed),this.m_iteratorRed===null&&(this.m_iteratorRed=this.m_intervalTreeRed.getIterator()),this.m_sortedEndIndicesRed.resize(0);for(let e=0;e<2*this.m_envelopesRed.length;e++)this.m_sortedEndIndicesRed.add(e);return this.sortYEndIndices_(this.m_sortedEndIndicesRed,0,this.m_sortedEndIndicesRed.size(),!0),this.m_sweepIndexRed=this.m_sortedEndIndicesRed.size(),this.m_queuedListRed!==-1&&(this.m_queuedEnvelopes.deleteList(this.m_queuedListRed),this.m_queuedIndicesRed.length=0,this.m_queuedListRed=-1),this.m_function=this.sweepRedBlue_,this.resetBlue_()}initializeBlue_(){if(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_envelopesRed.length<10||this.m_envelopesBlue.length<10)return this.m_sweepIndexRed=this.m_envelopesRed.length,this.m_function=this.sweepRedBlueBruteForce_,!0;this.m_intervalTreeBlue||=new W(!0),this.m_intervalTreeBlue.addEnvelopesRef(this.m_envelopesBlue),this.m_iteratorBlue??=this.m_intervalTreeBlue.getIterator(),this.m_sortedEndIndicesBlue.resize(0);for(let e=0;e<2*this.m_envelopesBlue.length;e++)this.m_sortedEndIndicesBlue.add(e);return this.sortYEndIndices_(this.m_sortedEndIndicesBlue,0,this.m_sortedEndIndicesBlue.size(),!1),this.m_sweepIndexBlue=this.m_sortedEndIndicesBlue.size(),this.m_queuedListBlue!==-1&&(this.m_queuedEnvelopes.deleteList(this.m_queuedListBlue),this.m_queuedIndicesBlue.length=0,this.m_queuedListBlue=-1),this.m_function=this.sweepRedBlue_,this.resetRed_()}initializeRedBlue_(){if(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_envelopesRed.length<10||this.m_envelopesBlue.length<10)return this.m_sweepIndexRed=this.m_envelopesRed.length,this.m_function=this.sweepRedBlueBruteForce_,!0;this.m_intervalTreeRed||=new W(!0),this.m_intervalTreeBlue||=new W(!0),this.m_intervalTreeRed.addEnvelopesRef(this.m_envelopesRed),this.m_intervalTreeBlue.addEnvelopesRef(this.m_envelopesBlue),this.m_iteratorRed===null&&(this.m_iteratorRed=this.m_intervalTreeRed.getIterator()),this.m_iteratorBlue===null&&(this.m_iteratorBlue=this.m_intervalTreeBlue.getIterator()),this.m_sortedEndIndicesRed.resize(0),this.m_sortedEndIndicesBlue.resize(0);for(let e=0;e<2*this.m_envelopesRed.length;e++)this.m_sortedEndIndicesRed.add(e);for(let e=0;e<2*this.m_envelopesBlue.length;e++)this.m_sortedEndIndicesBlue.add(e);return this.sortYEndIndices_(this.m_sortedEndIndicesRed,0,this.m_sortedEndIndicesRed.size(),!0),this.sortYEndIndices_(this.m_sortedEndIndicesBlue,0,this.m_sortedEndIndicesBlue.size(),!1),this.m_sweepIndexRed=this.m_sortedEndIndicesRed.size(),this.m_sweepIndexBlue=this.m_sortedEndIndicesBlue.size(),this.m_queuedListRed!==-1&&(this.m_queuedEnvelopes.deleteList(this.m_queuedListRed),this.m_queuedIndicesRed.length=0,this.m_queuedListRed=-1),this.m_queuedListBlue!==-1&&(this.m_queuedEnvelopes.deleteList(this.m_queuedListBlue),this.m_queuedIndicesBlue.length=0,this.m_queuedListBlue=-1),this.m_function=this.sweepRedBlue_,!0}sweep_(){let e=this.m_sortedEndIndicesRed.read(--this.m_sweepIndexRed),t=e>>1;if(this.isBottom_(e))return this.m_intervalTreeRed.remove(t),this.m_sweepIndexRed!==0||(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_bDone=!0,!1);let n=a.construct(this.m_envelopesRed[t].xmin,this.m_envelopesRed[t].xmax);return this.m_iteratorRed.resetIterator(n,this.m_tolerance),this.m_envelopeHandleA=t,this.m_function=this.iterate_,!0}sweepBruteForce_(){return--this.m_sweepIndexRed===-1?(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_bDone=!0,!1):(this.m_envelopeHandleA=this.m_sweepIndexRed,this.m_sweepIndexBlue=this.m_sweepIndexRed,this.m_function=this.iterateBruteForce_,!0)}sweepRedBlueBruteForce_(){return--this.m_sweepIndexRed===-1?(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_bDone=!0,!1):(this.m_envelopeHandleA=this.m_sweepIndexRed,this.m_sweepIndexBlue=this.m_envelopesBlue.length,this.m_function=this.iterateRedBlueBruteForce_,!0)}sweepRedBlue_(){let e=this.m_sortedEndIndicesRed.read(this.m_sweepIndexRed-1),t=this.m_sortedEndIndicesBlue.read(this.m_sweepIndexBlue-1),n=this.getAdjustedValue_(e,!0),r=this.getAdjustedValue_(t,!1);return n>r?this.sweepRed_():n<r?this.sweepBlue_():this.isTop_(e)?this.sweepRed_():this.isTop_(t)?this.sweepBlue_():this.sweepRed_()}sweepRed_(){let e=this.m_sortedEndIndicesRed.read(--this.m_sweepIndexRed),t=e>>1;if(this.isBottom_(e))return this.m_queuedListRed!==-1&&this.m_queuedIndicesRed[t]!==-1?(this.m_queuedEnvelopes.deleteElement(this.m_queuedListRed,this.m_queuedIndicesRed[t]),this.m_queuedIndicesRed[t]=-1):this.m_intervalTreeRed.remove(t),this.m_sweepIndexRed!==0||(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_bDone=!0,!1);if(this.m_queuedListBlue!==-1&&this.m_queuedEnvelopes.getListSize(this.m_queuedListBlue)>0){let e=this.m_queuedEnvelopes.getFirst(this.m_queuedListBlue);for(;e!==-1;){let t=this.m_queuedEnvelopes.getData(e);this.m_intervalTreeBlue.insert(t),this.m_queuedIndicesBlue[t]=-1;let n=this.m_queuedEnvelopes.getNext(e);this.m_queuedEnvelopes.deleteElement(this.m_queuedListBlue,e),e=n}}if(this.m_intervalTreeBlue.size()>0){let e=a.construct(this.m_envelopesRed[t].xmin,this.m_envelopesRed[t].xmax);this.m_iteratorBlue.resetIterator(e,this.m_tolerance),this.m_envelopeHandleA=t,this.m_function=this.iterateBlue_}else this.m_queuedListRed===-1&&(m(this.m_queuedIndicesRed,this.m_envelopesRed.length,-1),this.m_queuedListRed=this.m_queuedEnvelopes.createList(1)),this.m_queuedIndicesRed[t]=this.m_queuedEnvelopes.addElement(this.m_queuedListRed,t),this.m_function=this.sweepRedBlue_;return!0}sweepBlue_(){let e=this.m_sortedEndIndicesBlue.read(--this.m_sweepIndexBlue),t=e>>1;if(this.isBottom_(e))return this.m_queuedListBlue!==-1&&this.m_queuedIndicesBlue[t]!==-1?(this.m_queuedEnvelopes.deleteElement(this.m_queuedListBlue,this.m_queuedIndicesBlue[t]),this.m_queuedIndicesBlue[t]=-1):this.m_intervalTreeBlue.remove(t),this.m_sweepIndexBlue!==0||(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_bDone=!0,!1);if(this.m_queuedListRed!==-1&&this.m_queuedEnvelopes.getListSize(this.m_queuedListRed)>0){let e=this.m_queuedEnvelopes.getFirst(this.m_queuedListRed);for(;e!==-1;){let t=this.m_queuedEnvelopes.getData(e);this.m_intervalTreeRed.insert(t),this.m_queuedIndicesRed[t]=-1;let n=this.m_queuedEnvelopes.getNext(e);this.m_queuedEnvelopes.deleteElement(this.m_queuedListRed,e),e=n}}if(this.m_intervalTreeRed.size()>0){let e=a.construct(this.m_envelopesBlue[t].xmin,this.m_envelopesBlue[t].xmax);this.m_iteratorRed.resetIterator(e,this.m_tolerance),this.m_envelopeHandleB=t,this.m_function=this.iterateRed_}else this.m_queuedListBlue===-1&&(m(this.m_queuedIndicesBlue,this.m_envelopesBlue.length,-1),this.m_queuedListBlue=this.m_queuedEnvelopes.createList(0)),this.m_queuedIndicesBlue[t]=this.m_queuedEnvelopes.addElement(this.m_queuedListBlue,t),this.m_function=this.sweepRedBlue_;return!0}iterate_(){if(this.m_envelopeHandleB=this.m_iteratorRed.next(),this.m_envelopeHandleB!==-1)return!1;let e=this.m_sortedEndIndicesRed.read(this.m_sweepIndexRed)>>1;return this.m_intervalTreeRed.insert(e),this.m_function=this.sweep_,!0}iterateRed_(){if(this.m_envelopeHandleA=this.m_iteratorRed.next(),this.m_envelopeHandleA!==-1)return!1;this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1;let e=this.m_sortedEndIndicesBlue.read(this.m_sweepIndexBlue)>>1;return this.m_intervalTreeBlue.insert(e),this.m_function=this.sweepRedBlue_,!0}iterateBlue_(){if(this.m_envelopeHandleB=this.m_iteratorBlue.next(),this.m_envelopeHandleB!==-1)return!1;let e=this.m_sortedEndIndicesRed.read(this.m_sweepIndexRed)>>1;return this.m_intervalTreeRed.insert(e),this.m_function=this.sweepRedBlue_,!0}iterateBruteForce_(){if(--this.m_sweepIndexBlue===-1)return this.m_function=this.sweepBruteForce_,!0;let e=this.m_envelopesRed[this.m_sweepIndexRed].clone(),t=this.m_envelopesRed[this.m_sweepIndexBlue];return e.inflateCoords(this.m_tolerance,this.m_tolerance),!e.isIntersecting(t)||(this.m_envelopeHandleB=this.m_sweepIndexBlue,!1)}iterateRedBlueBruteForce_(){if(--this.m_sweepIndexBlue===-1)return this.m_function=this.sweepRedBlueBruteForce_,!0;let e=this.m_envelopesRed[this.m_sweepIndexRed].clone(),t=this.m_envelopesBlue[this.m_sweepIndexBlue];return e.inflateCoords(this.m_tolerance,this.m_tolerance),!e.isIntersecting(t)||(this.m_envelopeHandleB=this.m_sweepIndexBlue,!1)}resetRed_(){return this.m_sweepIndexRed=this.m_sortedEndIndicesRed.size(),this.m_intervalTreeRed.size()>0&&this.m_intervalTreeRed.reset(),this.m_queuedListRed!==-1&&(this.m_queuedEnvelopes.deleteList(this.m_queuedListRed),this.m_queuedIndicesRed.length=0,this.m_queuedListRed=-1),this.m_bDone=!1,!0}resetBlue_(){return this.m_sweepIndexBlue=this.m_sortedEndIndicesBlue.size(),this.m_intervalTreeBlue.size()>0&&this.m_intervalTreeBlue.reset(),this.m_queuedListBlue!==-1&&(this.m_queuedEnvelopes.deleteList(this.m_queuedListBlue),this.m_queuedIndicesBlue.length=0,this.m_queuedListBlue=-1),this.m_bDone=!1,!0}nullFunc_(){return b(`should not be called`),!1}sortYEndIndices_(e,t,n,r){let i=this;new z().sort(e,t,n,{userSort(e,t,n){i.sortYEndIndicesHelper_(n,e,t,r)},getValue(e){return i.getAdjustedValue_(e,r)}})}sortYEndIndicesHelper_(e,t,n,r){e.sort(t,n,(e,t)=>{let n=this.getAdjustedValue_(e,r),i=this.getAdjustedValue_(t,r);return n<i||n===i&&this.isBottom_(e)&&this.isTop_(t)?-1:1})}getAdjustedValue_(e,t){let n=.5*this.m_tolerance;if(t){let t=this.m_envelopesRed[e>>1];return this.isBottom_(e)?t.ymin-n:t.ymax+n}let r=this.m_envelopesBlue[e>>1];return this.isBottom_(e)?r.ymin-n:r.ymax+n}}var ke=w;class K{tolerance;resolution;constructor(e,t){this.tolerance=e===void 0?NaN:e,this.resolution=t===void 0?NaN:t}add(e){return new K(this.tolerance+e,this.resolution)}scale(e){return new K(this.tolerance*e,this.resolution*e)}total(){return this.tolerance+this.resolution}}function Ae(e,t,r,i,a){let o=i*i,s=e.sub(t),c=r.sub(t),l=s.sqrLength(),u=c.sqrLength();if(l<=o||u<=o)return!0;let d=n(s.crossProduct(c));return d<=o*l||d<=o*u?s.dotProduct(c)>=0:!1}function je(e,t,n){return r=>n===0?(r+e)*t:(r-e*t)*1/t}function Me(e,t){let n=new S;return e.queryLooseEnvelope(n),n.mergeEnvelope2D(t),n}function Ne(e,t){let n=S.constructEmpty();e.queryLooseEnvelope(n);let r=S.constructEmpty();return t.queryLooseEnvelope(r),n.mergeEnvelope2D(r),n}function Pe(e,t){return(Number.isFinite(e)||Number.isNaN(e))&&(Number.isFinite(t)||Number.isNaN(t))}function Fe(e,t){return Number.isFinite(e)&&Number.isFinite(t)}function Ie(e,t,n){let r=S.constructEmpty();return r.setFromPoints(e,t),q(0,null,r.calculateToleranceFromEnvelope(),n,!1)}function Le(e,t,n){return q(0,e,t.calculateToleranceFromEnvelope(),n,!1)}function Re(e,t,n){return q(1,e,t.calculateToleranceFromEnvelope(),n,!1)}function ze(e,t,n){return Re(e,t.queryInterval(1,0),n)}function Be(e,t,n){let r=S.constructEmpty();return t.queryEnvelope(r),Le(e,r,n)}function Ve(e,t,n=!1){return q(0,e,t.calculateToleranceFromEnvelope(),n,!0).total()}function He(e,t,n){let r=S.constructEmpty();return t.queryEnvelope(r),Ve(e,r,n)}function q(e,t,n,r,i){let a=new K(0,0);return t!==null&&(a.tolerance=t.getTolerance(e),(!i||r)&&t!==null&&(a.resolution=t.getResolution(e),r&&(a.resolution*=2))),r&&(n*=4,a.tolerance*=1.01,a.resolution*=1.01),a.total()<n?new K(n,0):a}function Ue(e){return Math.sqrt(2)*(2*e.tolerance+e.resolution)}function We(e){return Math.sqrt(2)*(e.tolerance+e.resolution)}function Ge(e){return e>=3}function Ke(e,t){return e.getImpl().getIsSimple(t,[0])>=3}function qe(e,t){e.getImpl().setIsSimple(3,t)}function Je(e,t,i,a){if(n(t.x-e.x)+n(t.y-e.y)<=i*i){let n=e.z,i=t.z;return r(n,i,a)}return!1}function Ye(e){return e>=4}function Xe(e,t){return e===v.enumPolygon?Ge(t):t>=1}function Ze(e,t,n){let r=S.constructEmpty(),i=S.constructEmpty();e.queryLooseEnvelope(r),t.queryLooseEnvelope(i),r.inflateCoords(n,n),i.inflateCoords(n,n);let a=S.constructEmpty();a.setCoords({env2D:r}),a.intersect(i);let o=e.querySegmentIterator(),s=t.querySegmentIterator(),c=S.constructEmpty(),l=S.constructEmpty(),u=new G;u.setTolerance(n);let d=!1;for(u.startRedConstruction();o.nextPath();)for(;o.hasNextSegment();)o.nextSegment().queryLooseEnvelope(c),c.isIntersecting(a)&&(d=!0,u.addRedEnvelope(o.getStartPointIndex(),c));if(u.endRedConstruction(),!d)return null;let f=!1;for(u.startBlueConstruction();s.nextPath();)for(;s.hasNextSegment();)s.nextSegment().queryLooseEnvelope(l),l.isIntersecting(a)&&(f=!0,u.addBlueEnvelope(s.getStartPointIndex(),l));return u.endBlueConstruction(),f?u:null}function Qe(e,t,n,r,i){e.getGeometryType(),t.getGeometryType();let a=S.constructEmpty(),o=S.constructEmpty();e.queryLooseEnvelope(a),t.queryLooseEnvelope(o),a.inflateCoords(n,n),o.inflateCoords(n,n);let s=S.constructEmpty();s.setCoords({env2D:a}),s.intersect(o);let c=new G;c.setTolerance(n);let l=!1;c.startRedConstruction();for(let t=0,n=e.getPathCount();t<n;t++)e.queryLoosePathEnvelope(t,a),a.isIntersecting(s)&&(l=!0,c.addRedEnvelope(t,a));if(c.endRedConstruction(),!l)return null;let u=!1;c.startBlueConstruction();for(let e=0,n=t.getPathCount();e<n;e++)t.queryLoosePathEnvelope(e,o),o.isIntersecting(s)&&(u=!0,c.addBlueEnvelope(e,o));return c.endBlueConstruction(),u?c:null}function $e(e,t,n){let r=S.constructEmpty(),i=S.constructEmpty();e.queryLooseEnvelope(r),t.queryEnvelope(i),r.inflateCoords(n,n),i.inflateCoords(n,n);let a=S.constructEmpty();a.setCoords({env2D:r}),a.intersect(i);let o=e.querySegmentIterator(),s=new G;s.setTolerance(n);let c=!1;for(s.startRedConstruction();o.nextPath();)for(;o.hasNextSegment();)o.nextSegment().queryLooseEnvelope(r),r.isIntersecting(a)&&(c=!0,s.addRedEnvelope(o.getStartPointIndex(),r));if(s.endRedConstruction(),!c)return null;let l=!1;s.startBlueConstruction();for(let e=0,n=t.getPointCount();e<n;e++){let n=t.getXY(e);a.contains(n)&&(l=!0,s.addBlueEnvelope(e,S.construct(n.x,n.y,n.x,n.y)))}return s.endBlueConstruction(),l?s:null}function et(e,t,n){let r=S.constructEmpty(),i=S.constructEmpty();e.queryEnvelope(r),t.queryEnvelope(i),r.inflateCoords(n,n),i.inflateCoords(n,n);let a=S.constructEmpty();a.setCoords({env2D:r}),a.intersect(i);let o=new G;o.setTolerance(n);let c=!1;o.startRedConstruction();let l=new s;for(let t=0,n=e.getPointCount();t<n;t++)e.queryXY(t,l),a.contains(l)&&(c=!0,o.addRedEnvelope(t,S.construct(l.x,l.y,l.x,l.y)));if(o.endRedConstruction(),!c)return null;let u=!1;o.startBlueConstruction();let d=new s;for(let e=0,n=t.getPointCount();e<n;e++)t.queryXY(e,d),a.contains(d)&&(u=!0,o.addBlueEnvelope(e,S.construct(d.x,d.y,d.x,d.y)));return o.endBlueConstruction(),u?o:null}function tt(e){let t=new S;return e.queryLooseEnvelope(t),t.inflateCoords(1,1),nt(e,t)}function nt(e,t,n){let r=new S;if(e.queryLooseEnvelope(r),r.isEmpty())return null;e.getGeometryType();let i=new V(r,8),a=-1,o=new S,s=!1;do for(let n=0,c=e.getPathCount();n<c;n++)if(e.queryLoosePathEnvelope(n,o),o.isIntersecting(t)){if(a=i.insertEx(n,o,a),a===-1){s&&b(`build_quad_tree_for_paths`),r.assign(e.calculateEnvelope2D(!1)),s=!0,i.reset(r,8);break}s=!1}while(s);return i}function rt(e,t){if(!t){let t=new S;e.queryLooseEnvelope(t);let n=new V(t,8),r=-1,i=new S,a=e.querySegmentIterator(),o=!1;for(;a.nextPath();)for(;a.hasNextSegment();){let s=a.nextSegment(),c=a.getStartPointIndex();if(s.queryLooseEnvelope(i),r=n.insertEx(c,i,r),r===-1){o&&b(``),t.assign(e.calculateEnvelope2D(!1)),o=!0,n.reset(t,8),a.resetToFirstPath();break}}return n}let n=new S;e.queryLooseEnvelope(n);let r=new V(n,8),i=-1,a=new S,o=e.querySegmentIterator(),s=!1;for(;o.nextPath();)for(;o.hasNextSegment();){let c=o.nextSegment(),l=o.getStartPointIndex();if(c.queryLooseEnvelope(a),a.isIntersecting(t)&&(i=r.insertEx(l,a,i),i===-1)){s&&b(``),n.assign(e.calculateEnvelope2D(!1)),s=!0,r.reset(n,8),o.resetToFirstPath();break}}return r}function it(e,t){if(t){let n=new V(t,8),r=new s,i=new S,a=!1;for(let o=0;o<e.getPointCount();o++)if(r.setCoordsPoint2D(e.getXY(o)),t.contains(r)&&(i.setCoords({pt:r}),n.insert(o,i)===-1)){a&&b(``),a=!0,n.reset(e.calculateEnvelope2D(),8),o=-1;continue}return n}return y(`no-extent version not yet impl`),null}function at(e,t,n,r,i){let a=!1,o=i.vmin,s=i.vmax;for(let i=n;i<t;i+=r){let t=e.read(i);t<o?(a=!0,e.write(i,o)):t>s&&(a=!0,e.write(i,s))}return a}function ot(e,t,n,r){if(!e.hasAttribute(n))return!1;let i=e.getGeometryType();if(i===v.enumGeometryCollection){let i=e,a=i.getGeometryCount(),o=0;for(let e=0;e<a;++e){let a=i.getGeometry(e);o|=+!!ot(a,t,n,r)}return!!o}if(te(i)){let i=e,a=ke.getPersistence(n),o=ke.getComponentCount(n),s=i.getPointCount();if(a===1){let e=at(i.getAttributeStreamRef(n),s*o,r,o,t);return e&&i.notifyModified(),e}if(a===2){let e=at(i.getAttributeStreamRef(n),s*o,r,o,t);return e&&i.notifyModified(),e}b(`snap_coordinate not implemented`)}if(i===v.enumEnvelope){let i=e,a=i.queryInterval(n,r),o=!1;return a.vmin<t.vmin&&(o=!0,a.vmin=t.vmin),a.vmax>t.vmax&&(o=!0,a.vmax=t.vmax),o&&i.setIntervalEnvelope(n,r,a),o}if(i===v.enumPoint){let i=e,a=i.getAttributeAsDbl(n,r),o=!1;return a<t.vmin&&(o=!0,a=t.vmin),a>t.vmax&&(o=!0,a=t.vmax),o&&i.setAttributeBasic(n,r,a),o}if(ne(i)){let i=e,a=i.getStartAttributeAsDbl(n,r),o=!1;return a<t.vmin&&(o=!0,a=t.vmin),a>t.vmax&&(o=!0,a=t.vmax),o&&i.setStartAttribute(n,r,a),a=i.getEndAttributeAsDbl(n,r),a<t.vmin&&(o=!0,a=t.vmin),a>t.vmax&&(o=!0,a=t.vmax),o&&i.setEndAttribute(n,r,a),o}b(`snap_coordinate not implemented`)}var J=w;class Y{static type=v.enumPoint;m_description=null;x=NaN;y=NaN;m_attribs=null;constructor(e){if(!e){this.m_description=M();return}if(e.copy){e.copy.copyTo(this);return}if(e.move){this.m_description=e.move.m_description,e.move.m_description=null,this.m_attribs=e.move.m_attribs,e.move.m_attribs=null,this.x=e.move.x,this.y=e.move.y;return}if(e.vd){this.m_description=e.vd,e.attribBuffer?(this.m_attribs=e.attribBuffer,e.initDefaultValues&&this.setDefaultAttributeValues()):this.ensureAttributes();return}if(e.pt){this.m_description=M(),this.setXY(e.pt);return}`x`in e&&(`z`in e?(this.m_description=le(),this.ensureAttributes(),this.setXYZ(new N(e.x,e.y,e.z))):(this.m_description=M(),this.setXYCoords(e.x,e.y)))}assignCopy(e){return this.m_attribs=null,e.copyTo(this),this}assignMove(e){return this.m_attribs=null,e.copyTo(this),e.setEmpty(),this}getXY(){return new s(this.x,this.y)}queryXY(e){e.x=this.x,e.y=this.y}setXY(e){this.x=e.x,this.y=e.y}setXYCoords(e,t){this.x=e,this.y=t}getXYZ(){let e=new N;return e.x=this.x,e.y=this.y,e.z=this.getZ(),e}setXYZ(e){this.addAttribute(1),this.x=e.x,this.y=e.y,this.m_attribs[0]=e.z}getX(){return this.x}setX(e){this.x=e}getY(){return this.y}setY(e){this.y=e}getZ(){return this.m_description.hasZ()?this.m_attribs[0]:J.getDefaultValue(1)}setZ(e){this.addAttribute(1),this.m_attribs[0]=e}getM(){return this.getAttributeAsDbl(2,0)}setM(e){this.addAttribute(2),this.m_description.hasZ()?this.m_attribs[1]=e:this.m_attribs[0]=e}getID(){return this.getAttributeAsInt(3,0)}setID(e){this.setAttributeBasic(3,0,e)}isEqualXY(e,t){return t===void 0&&(t=0),Math.abs(e.x-this.x)<=t&&Math.abs(e.y-this.y)<=t}isEqualXYCoords(e,t,n){return n===void 0&&(n=0),Math.abs(e-this.x)<=n&&Math.abs(t-this.y)<=n}getAttributeAsDbl(e,t){if(e===0){if(t===0)return this.x;if(t===1)return this.y;_(``)}let n=J.getComponentCount(e);(t<0||t>=n)&&_(``);let r=this.m_description.getAttributeIndex(e);return r>=0?this.m_attribs[this.m_description.getPointAttributeOffset(r)-2+t]:J.getDefaultValue(e)}getAttributeAsInt(e,t){return Math.trunc(this.getAttributeAsDbl(e,t))}setAttributeBasic(e,t,n){if(e===0){t===0?this.x=n:t===1?this.y=n:_(``);return}let r=J.getComponentCount(e);(t<0||t>=r)&&_(``);let i=this.m_description.getAttributeIndex(e);i<0&&(this.addAttribute(e),i=this.m_description.getAttributeIndex(e)),this.m_attribs[this.m_description.getPointAttributeOffset(i)-2+t]=n}copyAttributesFrom(e,t){if(this===e)return;let n=e.getDescription(),r=t&&n.hasZ()?2:1;for(let t=r,i=n.getAttributeCount();t<i;++t){let r=n.getSemantics(t),i=J.getComponentCount(r);for(let t=0;t<i;++t){let n=e.getAttributeAsDbl(r,t);this.setAttributeBasic(r,t,n)}}}getAttributeArray(){return this.m_attribs}getDescription(){return this.m_description}assignVertexDescription(e){this.m_description!==e&&this.assignVertexDescriptionImpl(e)}mergeVertexDescription(e){this.m_description!==e&&(this.m_description.hasAttributesFrom(e)||this.mergeVertexDescriptionImpl(e))}hasAttribute(e){return this.m_description.hasAttribute(e)}addAttribute(e){if(this.m_description.hasAttribute(e))return;let t=A(this.m_description,e);this.assignVertexDescription(t)}dropAttribute(e){if(!this.m_description.hasAttribute(e))return;let t=j(this.m_description,e);this.assignVertexDescription(t)}dropAllAttributes(){let e=M();e!==this.m_description&&this.assignVertexDescription(e)}getGeometryType(){return v.enumPoint}getDimension(){return 0}queryEnvelope(e){if(e instanceof $){e.setEmpty(),e.assignVertexDescription(this.m_description),e.merge(this);return}if(e instanceof de){if(this.isEmpty()){e.setEmpty();return}let t=this.getXYZ();e.xmin=t.x,e.ymin=t.y,e.zmin=t.z,e.xmax=t.x,e.ymax=t.y,e.zmax=t.z;return}if(this.isEmpty()){e.setEmpty();return}e.xmin=this.x,e.ymin=this.y,e.xmax=this.x,e.ymax=this.y}queryLooseEnvelope(e){this.queryEnvelope(e)}queryInterval(e,t){let n=new a;if(this.isEmpty())return n.setEmpty(),n;let r=this.getAttributeAsDbl(e,t);return n.vmin=r,n.vmax=r,n}applyTransformation(e){if(!this.isEmpty()){if(e.m_TransformationType===1){let t=this.getXY();e.transformInPlace(t),this.setXY(t);return}y(`3d not impl`)}}transformAttribute(e,t,n,r,i){if(this.isEmpty())return;this.addAttribute(e);let a=this.getAttributeAsDbl(e,t),o=je(n,r,i);this.setAttributeBasic(e,t,o(a))}createInstance(){return new Y({vd:this.m_description})}copyTo(e){if(this===e)return;e.getGeometryType()!==v.enumPoint&&g();let t=e;t.x=this.x,t.y=this.y,this.m_attribs?(t.assignVertexDescription(this.m_description),t.m_attribs=this.m_attribs.slice()):(t.releaseAttributes(),t.assignVertexDescription(this.m_description))}isEmpty(){return Number.isNaN(this.x)||Number.isNaN(this.y)}setEmpty(){this.m_description||(this.m_description=M(),this.releaseAttributes()),this.x=NaN,this.y=NaN,this.m_attribs&&l(this.m_attribs,this.m_description.getDefaultPointAttributes(),0,2,this.m_description.getTotalComponentCount()-2)}calculateArea2D(){return 0}calculateLength2D(){return 0}calculateLength3D(e){return 0}equals(e,t){if(e===this)return!0;if(e.getGeometryType()!==v.enumPoint)return!1;let n=e;if(this.m_description!==n.m_description||this.isEmpty()!==n.isEmpty())return!1;if(this.isEmpty())return!0;if(t===void 0&&(t=0),Math.abs(this.x-n.x)>t||Math.abs(this.y-n.y)>t)return!1;for(let e=0,i=this.m_description.getTotalComponentCount()-2;e<i;e++)if(!r(this.m_attribs[e],n.m_attribs[e],t))return!1;return!0}getBoundary(){return null}clone(){let e=new Y({vd:this.m_description});return this.copyTo(e),e}swap(e){if(this===e)return;e.getGeometryType()!==v.enumPoint&&g(`wrong geometry type`);let t=e;t.m_description=o(this.m_description,this.m_description=t.m_description),t.x=o(this.x,this.x=t.x),t.y=o(this.y,this.y=t.y),t.m_attribs=o(this.m_attribs,this.m_attribs=t.m_attribs)}replaceNaNs(e,t){if(this.addAttribute(e),this.isEmpty())return;let n=J.getComponentCount(e);for(let r=0;r<n;r++){let n=this.getAttributeAsDbl(e,r);Number.isNaN(n)&&this.setAttributeBasic(e,r,t)}}lerp(e,t,n){if(e.getDescription()!==t.getDescription()&&g(`Point.lerp`),this.assignVertexDescription(e.getDescription()),e.isEmpty()||t.isEmpty())return this.setEmpty(),this;this.ensureAttributes();let r=C();e.queryValues(r,r.length);let i=C();t.queryValues(i,i.length);let a=C(),o=r,s=i,c=a,l=0;for(let e=0,t=this.m_description.getAttributeCount();e<t;e++){let t=this.m_description.getSemantics(e),r=J.getInterpolation(t),i=J.getComponentCount(t),a=J.getDefaultValue(t);u(r,o,s,c,l,i,n,a),o=o.slice(i),s=s.slice(i),l+=i}return this.setValues(a,l),this}static lerp(e,t,n,r){r.lerp(e,t,n)}setDefaultAttributeValues(){let e=this.m_description.getTotalComponentCount()-2;e>0&&(this.m_attribs?l(this.m_attribs,this.m_description.getDefaultPointAttributes(),0,2,e):this.m_attribs=this.m_description.getDefaultPointAttributes().slice(2))}static sqrDistance2D(e,t){return s.sqrDistanceCoords(e.x,e.y,t.x,t.y)}getImpl(){return this}mergeVertexDescriptionImpl(e){let t=k(this.getDescription(),e);this.assignVertexDescription(t)}releaseAttributes(){this.m_attribs=null}assignVertexDescriptionImpl(e){this.m_description||=M();let t=E();ue(e,this.m_description,t);let n=null;e.getTotalComponentCount()-2>0&&(n=e.getDefaultPointAttributes().slice(2));for(let r=1,i=e.getAttributeCount();r<i;r++){let i=t[r];if(i!==-1){let t=this.m_description.getPointAttributeOffset(i)-2,a=e.getPointAttributeOffset(r)-2,o=J.getComponentCount(e.getSemantics(r));for(let e=0;e<o;e++)n[a+e]=this.m_attribs[t+e]}}this.m_attribs=n,this.m_description=e}ensureAttributes(){this.m_description.getTotalComponentCount()-2>0&&this.m_attribs===null&&(this.m_attribs=this.m_description.getDefaultPointAttributes().slice(2))}queryValues(e,t){let n=this.m_description.getTotalComponentCount();h(n<=t),e[0]=this.x,e[1]=this.y,l(e,this.m_attribs,2,0,n-2)}copyCommonAttributesTo(e){e.x=this.x,e.y=this.y;let t=e.getDescription();if(t===this.m_description)this.m_attribs&&l(e.m_attribs,this.m_attribs,0,0,this.m_description.getTotalComponentCount()-2);else{let n=0;for(let r=1,i=t.getAttributeCount();r<i;r++){let i=t.getSemantics(r),a=J.getComponentCount(i);if(this.m_description.hasAttribute(i)){let t=this.m_description.getPointAttributeOffset(this.m_description.getAttributeIndex(i))-2;for(;a!==0;)e.m_attribs[n++]=this.m_attribs[t++],a--}else{let t=J.getDefaultValue(i);for(;a!==0;)e.m_attribs[n++]=t,a--}}}}setValues(e,t){let n=this.m_description.getTotalComponentCount();h(n<=t),this.x=e[0],this.y=e[1],l(this.m_attribs,e,0,2,n-2)}dbgDefaultAttribs(){}toFlatGeometry(){let e=Float64Array.of(this.getX(),this.getY(),this.getZ(),this.getM());return{type:`point`,vertexCount:1,vertexXY:e.subarray(0,2),vertexZ:this.hasAttribute(1)?e.subarray(2,3):void 0,vertexM:this.hasAttribute(2)?e.subarray(3,4):void 0,...Se}}}var X=w;function Z(e,t){return t*(e.getTotalComponentCount()-2)}class Q{m_envelope2D;m_attributes;constructor(e){if(this.m_attributes=null,!e)this.m_envelope2D=S.constructEmpty();else if(e.xmin!==void 0)this.m_envelope2D=new S(e.xmin,e.ymin,e.xmax,e.ymax);else if(e.env2D!==void 0)this.m_envelope2D=new S(e.env2D);else if(e.move)this.m_envelope2D=new S(e.move.m_envelope2D),this.m_attributes=e.move.m_attributes,e.move.m_attributes=null;else if(e.moveEnv){let t=e.moveEnv.accessEnvelopeData();this.m_envelope2D=new S(t.m_envelope2D),this.m_attributes=t.m_attributes,t.m_attributes=null}else throw Error(`unrecognized EnvelopeData constructor options`)}ensureAttributes(e){let n=e.getTotalComponentCount()-2;!this.m_attributes&&n&&(this.m_attributes=t(2*n,NaN),this.m_attributes.fill(NaN))}copyTo(e,n){let r=n,i=e.getTotalComponentCount()-2;if(r.m_description!==e&&(r.releaseAttributes_(),r.m_description=e,i&&(r.m_data.m_attributes=t(i*2,NaN))),i){h(this.m_attributes&&r.m_data.m_attributes);let e=2*i;l(r.m_data.m_attributes,this.m_attributes,0,0,e)}r.m_data.m_envelope2D=new S(this.m_envelope2D)}copyToIfNotNull(e,t){t.m_envelope2D=new S(this.m_envelope2D),t.releaseAttributes(),e.getTotalComponentCount()-2&&this.m_attributes&&(t.m_attributes=this.m_attributes.slice())}releaseAttributes(){this.m_attributes=null}isEmpty(){return this.m_envelope2D.isEmpty()}transformAttribute(e,t,n,r,i){h(0)}queryInterval(e,t,n,r){if(this.isEmpty()){r.setEmpty();return}if(t===0){n===0?this.m_envelope2D.queryIntervalX(r):n===1?this.m_envelope2D.queryIntervalY(r):_(``);return}let i=X.getComponentCount(t);(n<0||n>=i)&&_(``);let a=e.getAttributeIndex(t);if(a>=0){r.vmin=this.m_attributes[Z(e,0)+e.getPointAttributeOffset(a)-2+n],r.vmax=this.m_attributes[Z(e,1)+e.getPointAttributeOffset(a)-2+n];return}{let e=X.getDefaultValue(t);r.setCoords(e,e);return}}queryEnvelope3D(e,t){let n=new a;this.queryInterval(e,1,0,n),t.setCoords(this.m_envelope2D.xmin,this.m_envelope2D.ymin,n.vmin,this.m_envelope2D.xmax,this.m_envelope2D.ymax,n.vmax)}setEmpty(e){this.m_envelope2D.setEmpty();let n=e.getTotalComponentCount()-2;n&&(this.m_attributes?this.dbgAssertSize(n):this.m_attributes=t(2*n,NaN),this.m_attributes.fill(NaN))}dbgAssertSize(e){}}let $=class e{static type=v.enumEnvelope;m_EnvelopeType=4;m_description;m_data;constructor(e){if(this.m_description=M(),e===void 0)this.m_data=new Q;else if(e.vd!==void 0)this.m_description=e.vd,this.m_data=new Q,this.ensureAttributes_();else if(e?.env2D)this.m_data=new Q({env2D:e.env2D});else if(e.xmin!==void 0)this.m_data=new Q({xmin:e.xmin,ymin:e.ymin,xmax:e.xmax,ymax:e.ymax});else if(e.copy)this.m_data=new Q,e.copy.copyTo(this);else if(e.move)this.m_description=e.move.m_description,e.move.m_description=null,this.m_data=new Q({move:e.move.m_data});else if(e.centerPoint)this.m_description=e.centerPoint.getDescription(),this.m_data=new Q,this.ensureAttributes_(),this.setFromPoint(e.centerPoint,e.width,e.height);else throw Error(`unrecognized Envelope constructor options`)}accessEnvelopeData(){return this.m_description=null,this.m_data}assignMove(e){return this===e?this:(this.m_description=e.m_description,e.m_description=null,this.m_data=new Q({move:e.m_data}),this)}assignCopy(e){return this===e||e.copyTo(this),this}transformAttribute(e,t,n,r,i){h(0)}setAttributeBasic(e,t,n){if(this.addAttribute(e),this.m_data.isEmpty())return;let r=this.queryInterval(e,t);r.vmin=n,r.vmax=n,this.setIntervalEnvelope(e,t,r)}mergeVertexDescriptionImpl(e){let t=k(this.getDescription(),e);this.assignVertexDescription(t)}asEnvelope2D(){return new S(this.m_data.m_envelope2D)}assignVertexDescription(e){this.m_description!==e&&this.assignVertexDescriptionImpl(e)}getGeometryType(){return v.enumEnvelope}getDimension(){return 2}getXMin(){return this.m_data.m_envelope2D.xmin}getYMin(){return this.m_data.m_envelope2D.ymin}getXMax(){return this.m_data.m_envelope2D.xmax}getYMax(){return this.m_data.m_envelope2D.ymax}width(){return this.m_data.isEmpty()?NaN:this.m_data.m_envelope2D.width()}height(){return this.m_data.isEmpty()?NaN:this.m_data.m_envelope2D.height()}getCenterXY(){return this.m_data.isEmpty()?new s:this.m_data.m_envelope2D.getCenter()}getCenter(e){if(e.assignVertexDescription(this.m_description),this.m_data.isEmpty()){e.setEmpty();return}let t=this.m_description.getAttributeCount();for(let n=1;n<t;n++){let t=this.m_description.getSemantics(n),r=X.getComponentCount(t);for(let n=0;n<r;n++){let r=.5*(this.getAttributeAsDblImpl(0,t,n)+this.getAttributeAsDblImpl(1,t,n));e.setAttributeBasic(t,n,r)}}e.setXY(this.m_data.m_envelope2D.getCenter())}setCoords(e,t,n,r){this.m_data.m_envelope2D.setCoords({xmin:e,ymin:t,xmax:n,ymax:r})}setEnvelope(e){if(e instanceof S)this.m_data.m_envelope2D=new S(e),this.m_data.m_envelope2D.normalize();else{this.addAttribute(1),this.m_data.m_envelope2D=e.getEnvelope2D(),this.m_data.m_envelope2D.normalize();let t=a.constructEmpty();t.setCoords(e.zmin,e.zmax),this.setInterval(1,0,t.vmin,t.vmax)}}merge(t){if(t instanceof S){t.isValid()||g(``),this.m_data.m_envelope2D.mergeEnvelope2D(t);return}if(t instanceof e){if(t.m_data.isEmpty())return;let e=t.getDescription();this.mergeVertexDescription(e),this.m_data.m_envelope2D.mergeEnvelope2D(t.m_data.m_envelope2D);for(let n=1,r=e.getAttributeCount();n<r;n++){let r=e.getSemantics(n),i=X.getComponentCount(r);for(let e=0;e<i;e++){let n=t.queryInterval(r,e),i=this.queryInterval(r,e);i.merge(n),this.setIntervalEnvelope(r,e,i)}}return}if(t instanceof Y){let e=t;if(e.isEmpty())return;let n=e.getDescription();if(this.mergeVertexDescription(n),this.m_data.isEmpty()){this.setFromPoint(e);return}this.m_data.m_envelope2D.merge(e.getXY());for(let t=1,r=n.getAttributeCount();t<r;t++){let r=n.getSemantics(t),i=X.getComponentCount(r);for(let t=0;t<i;t++){let n=e.getAttributeAsDbl(r,t),i=this.queryInterval(r,t);i.mergeCoordinate(n),this.setIntervalEnvelope(r,t,i)}}return}y(`unrecognized type for envelope.merge`)}intersect(e){if(!this.m_data.m_envelope2D.intersect(e.m_data.m_envelope2D))return this.setEmpty(),!1;let t=e.getDescription();this.mergeVertexDescription(t);for(let t=1,n=this.m_description.getAttributeCount();t<n;t++){let n=this.m_description.getSemantics(t),r=X.getComponentCount(n);for(let t=0;t<r;t++){let r=e.queryInterval(n,t),i=this.queryInterval(n,t);i.intersect(r),this.setIntervalEnvelope(n,t,i)}}return!0}intersectCommonAttributes(e){if(!this.m_data.m_envelope2D.intersect(e.m_data.m_envelope2D))return this.setEmpty(),!1;let t=e.getDescription();for(let n=1,r=this.m_description.getAttributeCount();n<r;n++){let r=this.m_description.getSemantics(n);if(!t.hasAttribute(r))continue;let i=X.getComponentCount(r);for(let t=0;t<i;t++){let n=e.queryInterval(r,t),i=this.queryInterval(r,t);i.intersect(n),this.setIntervalEnvelope(r,t,i)}}return!0}move(e,t){this.m_data.m_envelope2D.move(e,t)}centerAt(e,t){this.m_data.m_envelope2D.centerAtCoords(e,t)}centerAtPoint(e){this.m_data.m_envelope2D.centerAt(e)}reaspect(e,t){this.m_data.m_envelope2D.reaspect(e,t)}inflateCoords(e,t){this.m_data.m_envelope2D.inflateCoords(e,t)}containsCoords(e,t){return this.m_data.m_envelope2D.containsCoords(e,t)}contains(e){return this.m_data.m_envelope2D.contains(e)}containsPoint(e){return!e.isEmpty()&&this.m_data.m_envelope2D.contains(e.getXY())}containsEnvelope(e){return this.m_data.m_envelope2D.containsEnvelope(e.m_data.m_envelope2D)}setIntervalEnvelope(e,t,n){if(this.addAttribute(e),this.m_data.isEmpty())return;let r=new a(n);if(r.normalize(),e===0){if(r.isEmpty()){this.setEmpty();return}t===0?(this.m_data.m_envelope2D.xmin=r.vmin,this.m_data.m_envelope2D.xmax=r.vmax):t===1?(this.m_data.m_envelope2D.ymin=r.vmin,this.m_data.m_envelope2D.ymax=r.vmax):_(``)}else this.setAttributeAsDblImpl(0,e,t,r.vmin),this.setAttributeAsDblImpl(1,e,t,r.vmax)}setInterval(e,t,n,r){this.setIntervalEnvelope(e,t,new a(n,r))}queryInterval(e,t){let n=new a;return this.m_data.queryInterval(this.m_description,e,t,n),n}queryEnvelope(e){if(e.m_EnvelopeType===2){e.setCoords({env2D:this.m_data.m_envelope2D});return}if(e.m_EnvelopeType===3){this.m_data.queryEnvelope3D(this.m_description,e);return}if(e.m_EnvelopeType===4){this.copyTo(e);return}y(`unrecognized type for queryEnveloper`)}applyTransformation(e){if(e.m_TransformationType===1){e.transformEnvInPlace(this.m_data.m_envelope2D);return}h(0)}createInstance(){return new e({vd:this.m_description})}copyTo(e){e!==this&&this.m_data.copyTo(this.m_description,e)}isEmpty(){return this.m_data.isEmpty()}setEmpty(){this.m_description||=M(),this.m_data.setEmpty(this.m_description)}calculateArea2D(){return this.m_data.m_envelope2D.getArea()}calculateLength2D(){return this.m_data.m_envelope2D.getLength()}calculateLength3D(e){return h(0),0}equals(e,t){if(e===this)return!0;let n=e;if(this.m_description!==n.m_description||this.m_data.isEmpty()!==n.m_data.isEmpty())return!1;if(this.m_data.isEmpty())return!0;if(t===void 0&&(t=0),Math.abs(this.m_data.m_envelope2D.xmin-n.m_data.m_envelope2D.xmin)>t||Math.abs(this.m_data.m_envelope2D.ymin-n.m_data.m_envelope2D.ymin)>t||Math.abs(this.m_data.m_envelope2D.xmax-n.m_data.m_envelope2D.xmax)>t||Math.abs(this.m_data.m_envelope2D.ymax-n.m_data.m_envelope2D.ymax)>t)return!1;for(let e=0,i=(this.m_description.getTotalComponentCount()-2)*2;e<i;e++)if(!r(this.m_data.m_attributes[e],n.m_data.m_attributes[e],t))return!1;return!0}getBoundary(){return y(`getBoundary not available in this context. Use the boundary operator with an envelope parameter`),null}clone(){return new e({copy:this})}swap(e){if(this===e)return;e.getGeometryType()!==v.enumEnvelope&&g(`wrong geometry type`);let t=e;t.m_description=o(this.m_description,this.m_description=t.m_description),t.m_data.m_envelope2D=o(this.m_data.m_envelope2D,this.m_data.m_envelope2D=t.m_data.m_envelope2D),t.m_data.m_attributes=o(this.m_data.m_attributes,this.m_data.m_attributes=t.m_data.m_attributes)}queryCoordinates(e){this.m_data.isEmpty()&&g(``),this.m_data.m_envelope2D.queryCorners(e)}queryCornerByVal(e,t){(e<0||e>3)&&_(``),t.assignVertexDescription(this.m_description);let n=this.getDescription().getAttributeCount();for(let r=1;r<n;r++){let n=this.m_description.getSemantics(r),i=X.getComponentCount(n);for(let r=0;r<i;r++)t.setAttributeBasic(n,r,this.getAttributeAsDblImpl(e%2,n,r))}t.setXY(this.m_data.m_envelope2D.queryCorner(e))}queryCorner(e,t){t.assign(this.m_data.m_envelope2D.queryCorner(e))}getDescription(){return this.m_description}mergeVertexDescription(e){this.m_description!==e&&(this.m_description&&this.m_description.hasAttributesFrom(e)||this.mergeVertexDescriptionImpl(e))}hasAttribute(e){return this.m_description.hasAttribute(e)}addAttribute(e){if(this.m_description.hasAttribute(e))return;let t=A(this.m_description,e);this.assignVertexDescription(t)}dropAttribute(e){if(!this.m_description.hasAttribute(e))return;let t=j(this.m_description,e);this.assignVertexDescription(t)}dropAllAttributes(){let e=M();e!==this.m_description&&this.assignVertexDescription(e)}queryLooseEnvelope(e){this.queryEnvelope(e)}replaceNaNs(e,t){if(this.addAttribute(e),this.m_data.isEmpty())return;let n=X.getComponentCount(e);for(let r=0;r<n;r++){let n=this.queryInterval(e,r);n.isEmpty()&&(n.vmin=t,n.vmax=t,this.setIntervalEnvelope(e,r,n))}}getImpl(){return this}setFromPoint(e,t,n){this.m_data.m_envelope2D.setCoords({center:e.getXY(),width:t??0,height:n??0});let r=e.getDescription();for(let t=1,n=r.getAttributeCount();t<n;t++){let n=r.getSemantics(t),i=X.getComponentCount(n);for(let t=0;t<i;t++){let r=e.getAttributeAsDbl(n,t);this.setInterval(n,t,r,r)}}}assignVertexDescriptionImpl(e){let n=E();ue(e,this.m_description,n);let r=null,i=e.getTotalComponentCount()-2,a=this.m_description?this.m_description.getTotalComponentCount()-2:0;i>0&&(r=t(2*i,NaN));for(let t=1;t<e.getAttributeCount();t++){let o=n[t];if(o!==-1){let n=e.getPointAttributeOffset(t)-2,s=X.getComponentCount(e.getSemantics(t)),c=this.m_description.getPointAttributeOffset(o)-2;l(r,this.m_data.m_attributes,n,c,s),l(r,this.m_data.m_attributes,i+n,a+c,s)}}this.releaseAttributes_(),this.m_data.m_attributes=r,this.m_description=e}getAttributeAsDblImpl(e,t,n){if(this.m_data.isEmpty()&&ee(``),t===0)return e?n?this.m_data.m_envelope2D.ymax:this.m_data.m_envelope2D.xmax:n?this.m_data.m_envelope2D.ymin:this.m_data.m_envelope2D.xmin;n>=X.getComponentCount(t)&&_(``);let r=this.m_description.getAttributeIndex(t);return r>=0?this.m_data.m_attributes[Z(this.m_description,e)+this.m_description.getPointAttributeOffset(r)-2+n]:w.getDefaultValue(t)}setAttributeAsDblImpl(e,t,n,r){t===0&&(e?n===1?this.m_data.m_envelope2D.ymax=r:n===0?this.m_data.m_envelope2D.xmax=r:_(``):n===1?this.m_data.m_envelope2D.ymin=r:n===0?this.m_data.m_envelope2D.xmin=r:_(``));let i=X.getComponentCount(t);(n<0||n>=i)&&_(``),this.addAttribute(t);let a=this.m_description.getAttributeIndex(t);this.m_data.m_attributes[Z(this.m_description,e)+this.m_description.getPointAttributeOffset(a)-2+n]=r}releaseAttributes_(){this.m_data.releaseAttributes()}ensureAttributes_(){this.m_data.ensureAttributes(this.m_description)}};const st=Object.freeze(Object.defineProperty({__proto__:null,Envelope:$,EnvelopeData:Q},Symbol.toStringTag,{value:`Module`}));export{le as $,R as A,z as B,K as C,G as D,$ as E,Ee as F,fe as G,Ae as H,U as I,ot as J,M as K,Q as L,k as M,A as N,j as O,Y as P,C as Q,E as R,B as S,H as T,ue as U,w as V,me as W,he as X,ce as Y,je as Z,Se as _,L as a,ge as a0,_e as a1,ve as a2,tt as a3,Ie as a4,Pe as a5,Fe as a6,pe as a7,st as a8,I as b,Le as c,Ve as d,Be as e,Ue as f,Ne as g,Me as h,Ye as i,Ke as j,N as k,Xe as l,He as m,We as n,ze as o,Je as p,Ge as q,de as r,qe as s,Re as t,rt as u,it as v,Ze as w,$e as x,et as y,Qe as z};
|
|
2
|
+
import{G as e,c as t,e as n,a6 as r,y as i,E as a,s as o,P as s,i as c,f as l,aa as u,d,Q as f,b as p,x as m}from"./Point2D.js";import{g as h,b as g,r as _,G as v,a as y,B as ee,d as b,q as x,i as te,h as ne}from"./Geometry.js";import{Envelope2D as S}from"./Envelope2D.js";const re=[0,0,NaN,0,0,0,0,0,-1,-1,0,0,0,0],ie=[2,1,1,1,3,1,2,3,2,4,1,1,2,1],ae=[1,1,1,0,2,1,1,1,0,0,0,0,0,1],oe=[1,1,1,2,0,0,0,0,2,2,4,2,2,1],se=[4,8,4,8,1],ce=25;function C(){return t(25,NaN)}let w=class n{getAttributeCount(){return this.m_attributeCount}getSemantics(e){return this.m_indexToSemantics[e]}getSemanticsBitArray(){return this.m_semanticsBitArray}getAttributeIndex(e){return this.m_semanticsToIndexMap[e]}static getInterpolation(e){return ae[e]}static getPersistence(e){return oe[e]}static getPersistenceSize(e){return se[e]}static getPersistenceSizeFromSemantics(e){return n.getPersistenceSize(n.getPersistence(e))*n.getComponentCount(e)}static getComponentCount(e){return ie[e]}static maxComponentCount(){return 4}static isInteger(e){return e===2||e===3||e===4}static isIntegerSemantics(e){return n.isInteger(n.getPersistence(e))}static isTexture(e){return e===5||e===6||e===7}hasAttribute(e){return!!(this.m_semanticsBitArray&1<<e)}hasAttributesFrom(e){return(this.m_semanticsBitArray&e.m_semanticsBitArray)===e.m_semanticsBitArray}hasZ(){return this.hasAttribute(1)}hasM(){return this.hasAttribute(2)}hasID(){return this.hasAttribute(3)}getTotalComponentCount(){return this.m_totalComponentCount}static getDefaultValue(e){return re[e]}static isDefaultValue(t,n){return e(re[t],n)}equals(e){return this===e}getDefaultPointAttributes(){return this.m_defaultPointAttributes}getPointAttributeOffset(e){return this.m_pointAttributeOffsets[e]}constructor(e){this.m_semanticsBitArray=e,this.m_attributeCount=0,this.m_totalComponentCount=0,this.m_semanticsToIndexMap=new Int32Array(14),this.m_indexToSemantics=new Int32Array(14),this.m_pointAttributeOffsets=new Int32Array(14),this.m_defaultPointAttributes=t(25,NaN),this.m_semanticsToIndexMap.fill(-1),this.m_indexToSemantics.fill(-1);let r=0,i=1,a=14;for(;r<a;r++)e&i&&(this.m_semanticsToIndexMap[r]=this.m_attributeCount,this.m_indexToSemantics[this.m_attributeCount]=r,this.m_attributeCount++,this.m_totalComponentCount+=n.getComponentCount(r)),i<<=1;let o=0;for(r=0,a=this.getAttributeCount();r<a;r++){let e=this.getSemantics(r),t=n.getComponentCount(e),i=n.getDefaultValue(e);this.m_pointAttributeOffsets[r]=o;for(let e=0;e<t;e++)this.m_defaultPointAttributes[o]=i,o++}}m_semanticsBitArray;m_attributeCount;m_totalComponentCount;m_semanticsToIndexMap;m_indexToSemantics;m_pointAttributeOffsets;m_defaultPointAttributes};class T{x;y;z;static construct(e,t,n){return new T(e,t,n)}constructor(e,t,n){if(e===void 0){this.x=this.y=this.z=NaN;return}this.x=e,this.y=t,this.z=n}get 0(){return this.x}get 1(){return this.y}get 2(){return this.z}set 0(e){this.x=e}set 1(e){this.y=e}set 2(e){this.z=e}clone(){return new T(this.x,this.y,this.z)}assign(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}setCoords(e,t,n){return this.x=e,this.y=t,this.z=n,this}setCoordsPoint2DZ(e,t){return this.setCoords(e.x,e.y,t)}setCoordsPoint3D(e){this.x=e.x,this.y=e.y,this.z=e.z}setZero(){this.x=0,this.y=0,this.z=0}setNormalized(e){this.assign(e),this.normalizeThis()}normalizeThis(){let e=this.length();return e?(this.x/=e,this.y/=e,this.z/=e):(this.x=1,this.y=0,this.z=0),this}getUnitVector(){let e=new T;return e.setNormalized(this),e}sqrLength(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}lengthXY(){return h(0),0}static sqrDistance(e,t){return n(e.x-t.x)+n(e.y-t.y)+n(e.z-t.z)}static sqrDistanceCoords(e,t,r,i,a,o){return n(e-i)+n(t-a)+n(r-o)}static distance(e,t){return Math.sqrt(T.sqrDistance(e,t))}isEqual(e,t){return t===void 0&&(t=0),Math.abs(this.x-e.x)<=t&&Math.abs(this.y-e.y)<=t&&r(this.z,e.z,t)}static compareByLength(e,t,n,r){return h(0),0}isEqualCoords(e,t,n,r){return h(0),this.x===e&&this.y===t&&this.z===n}isEqualsTols(e,t,n){return h(0),!1}isEqualCoordsTols(e,t,n,r,i){return h(0),!1}static st_isEqual(e,t,n,r){return h(0),!1}equals(e,t){return this.isEqual(e,t)}equalsTols(e,t,n){return h(0),!1}divThis(e){return this.x/=e,this.y/=e,this.z/=e,this}subThis(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}setSub(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}sub(e){return T.construct(this.x-e.x,this.y-e.y,this.z-e.z)}addThis(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}add(e){return this.clone().addThis(e)}setAdd(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}mul(e){return T.construct(this.x*e,this.y*e,this.z*e)}dotProduct(e){return this.x*e.x+this.y*e.y+this.z*e.z}crossProductVector(e){let t=this.y*e.z-e.y*this.z,n=e.x*this.z-this.x*e.z,r=this.x*e.y-e.x*this.y;return new T(t,n,r)}setCrossProductVector(e,t){let n=e.y*t.z-t.y*e.z,r=t.x*e.z-e.x*t.z,i=e.x*t.y-t.x*e.y;return this.x=n,this.y=r,this.z=i,this}setScaled(e,t){return this.x=e*t.x,this.y=e*t.y,this.z=e*t.z,this}scaleThis(e){return this.x*=e,this.y*=e,this.z*=e,this}scaleZThis(e){return this.z*=e,this}setNAN(){return h(0),this}isNAN(){return Number.isNaN(this.x)||Number.isNaN(this.y)||Number.isNaN(this.z)}static getNAN(){return T.construct(NaN,NaN,NaN)}isFinite(){return h(0),!1}isZero(){return this.x===0&&this.y===0&&this.z===0}norm(e){return h(0),0}sqrDistanceFromCenterToSpheroidSurface(e,t){return h(0),0}distanceFromCenterToSpheroidSurface(e,t){return Math.sqrt(this.sqrDistanceFromCenterToSpheroidSurface(e,t))}static getClosestCoordinate(e,t,n,r=!1){return h(0),0}compare(e){return this.y<e.y?-1:this.y>e.y?1:this.x<e.x?-1:this.x>e.x?1:this.z<e.z?-1:+(this.z>e.z)}compareXYZ(e){return h(0),0}negateThis(){this.x=-this.x,this.y=-this.y,this.z=-this.z}static averageFast(e,t){return h(0),{}}static average(e,t){return h(0),{}}static dimensions=3;static size(){return T.dimensions}static lerp(e,t,n){let r=new T;return i(e,t,n,r),r}static slerp(e,t,n){return h(0),{}}static compareVectors(e,t){return h(0),0}static selectRightHandedBasisFromNormal(e,t,n){let r=e.getUnitVector(),i=r.createAPerpendicular(),a=new T;a.setCrossProductVector(r,i),a.normalizeThis(),t.setCoordsPoint3D(i),n.setCoordsPoint3D(a)}createAPerpendicular(){let e=[this.crossProductVector(new T(0,0,1)),this.crossProductVector(new T(1,0,0)),this.crossProductVector(new T(0,1,0))],t=[e[0].sqrLength(),e[1].sqrLength(),e[2].sqrLength()],n=e[t.reduce((e,n,r)=>t[e]>t[r]?e:r,0)];return n.normalizeThis(),n}calculateAngle(e){return h(0),0}static crossDotSign(e,t,n){return h(0),0}static isBisectorRobust(e,t,n){return h(0),0}static compareZOrder(e,t){return h(0),!1}}var E=w;function D(){return t(14,0)}class O{m_map;m_vd2D;m_vd3D;static s_thisInstance;static{O.s_thisInstance=new O}static getInstance(){return O.s_thisInstance}constructor(){this.m_map=new Map,this.m_vd2D=new E(1),this.m_map.set(1,this.m_vd2D),this.m_vd3D=new E(3),this.m_map.set(3,this.m_vd2D)}GetVD2D(){return this.m_vd2D}GetVD3D(){return this.m_vd3D}FindOrAdd(e){if(e===1)return this.GetVD2D();if(e===3)return this.GetVD3D();let t=this.m_map.get(e);if(t)return t;let n=new E(e);return this.m_map.set(e,n),n}}function k(e){return O.getInstance().FindOrAdd(e)}function A(e,t){if(!e||!t)return t||e;let n=e.getSemanticsBitArray()|t.getSemanticsBitArray();return(n&e.getSemanticsBitArray())===n?e:(n&t.getSemanticsBitArray())===n?t:k(n)}function j(e,t){let n=e.getSemanticsBitArray()|1<<t;return(n&e.getSemanticsBitArray())===n?e:k(n)}function M(e,t){let n=(e.getSemanticsBitArray()|1<<t)-(1<<t);return n===e.getSemanticsBitArray()?e:k(n)}function N(){return O.getInstance().GetVD2D()}function le(){return O.getInstance().GetVD3D()}function ue(e,t,n){if(n.fill(-1),e!==null&&t!==null)for(let r=0,i=e.getAttributeCount();r<i;r++)n[r]=t.getAttributeIndex(e.getSemantics(r))}class de{m_EnvelopeType=3;xmin;ymin;zmin;xmax;ymax;zmax;static constructEmpty(){return new de(NaN,NaN,NaN,NaN,NaN,NaN)}constructor(e,t,n,r,i,a){this.xmin=e,this.ymin=t,this.zmin=n,this.xmax=r,this.ymax=i,this.zmax=a,this.normalize()}inflate(e){this.inflateCoords(e,e,e)}inflateCoords(e,t,n){h(0)}getEnvelope2D(){return new S(this.xmin,this.ymin,this.xmax,this.ymax)}getEnvelopeZs(){return new a(this.zmin,this.zmax)}setEmptyZ(){this.zmin=NaN,this.zmax=NaN}normalize(){let e=!1;if(this.xmin<=this.xmax||(this.xmax=o(this.xmin,this.xmin=this.xmax),e=!0),this.ymin<=this.ymax||(this.ymax=o(this.ymin,this.ymin=this.ymax),e=!0),e&&!(this.xmin<=this.xmax&&this.ymin<=this.ymax)){this.setEmpty();return}this.zmin<=this.zmax||(this.zmax=o(this.zmin,this.zmin=this.zmax),this.zmin<=this.zmax||this.setEmptyZ())}isEmpty(){return Number.isNaN(this.xmin)||Number.isNaN(this.ymin)||Number.isNaN(this.xmax)||Number.isNaN(this.ymax)}isEmptyZ(){return Number.isNaN(this.zmin)||Number.isNaN(this.zmax)}setEmpty(){this.xmin=NaN,this.ymin=NaN,this.zmin=NaN,this.xmax=NaN,this.ymax=NaN,this.zmax=NaN}mergeEnv3D(e){e.isEmpty()||(this.mergeCoords(e.xmin,e.ymin,e.zmin),this.mergeCoords(e.xmax,e.ymax,e.zmax))}mergeNe(e){this.mergeNeCoords(e.x,e.y,e.z)}mergeNeCoords(e,t,n){this.xmin>e?this.xmin=e:this.xmax<e&&(this.xmax=e),this.ymin>t?this.ymin=t:this.ymax<t&&(this.ymax=t),this.zmin>n?this.zmin=n:this.zmax<n&&(this.zmax=n)}mergeCoords(e,t,n){this.isEmpty()?(this.xmin=e,this.xmax=e,this.ymin=t,this.ymax=t,this.zmin=n,this.zmax=n):(this.isEmptyZ()&&(this.zmin=n,this.zmax=n),this.mergeNeCoords(e,t,n))}setCoords(e,t,n,r,i,a){this.xmin=e,this.ymin=t,this.zmin=n,this.xmax=r,this.ymax=i,this.zmax=a,this.normalize()}sqrDistanceEnvelope3DAndPoints(e,t,n,r=1){return h(0),0}sqrMaxDistance(e,t=1){return h(0),0}}const fe=-559038737;var P=w;function pe(e,t,n){switch(e){case 0:return new ye(t,n);case 1:return new R(t,n);case 2:return new L(t,n);case 3:throw Error(`64 bit int attribute stream not implemented`);case 4:return new I(t,n);default:g(``)}}function me(e,t){let n=P.getComponentCount(e);return pe(P.getPersistence(e),t*n,P.getDefaultValue(e))}function he(e,t){let n=P.getComponentCount(e);return pe(P.getPersistence(e),t*n)}function ge(e,t){return new L(e,t)}function _e(e,t){return new I(e,t)}function ve(e,t){return new R(e,t)}class F{static s_constructMin=2;static s_resizeMin=30;size(){return this.m_size}checkResize(e,t){e>this.m_size&&this.resize(e,t)}resize(e,t){if(e=Math.trunc(e),e===this.m_size)return;let n=!!t||Number.isNaN(t);if(e<this.m_a.length)this.m_a.length>F.s_resizeMin&&e*1.25<this.m_a.length&&(this.m_a=this.m_a.slice(0,e)),n&&e>this.m_size&&this.m_a.fill(t,this.m_size,e);else if(e>=this.m_a.length){let r=e*1.25,i=new this.m_a.constructor(r);i.set(this.m_a),this.m_a=i,n&&this.m_a.fill(t,this.m_size,e)}this.m_size=e}resizeRounded(e,t){return this.resize(e,t)}reserve(e){}read(e){return this.m_a[e]}readAsDbl(e){return this.read(e)}write(e,t){this.m_a[e]=t}writeAsDbl(e,t){this.write(e,t)}setRange(e,t,n){(t<0||n<0||n+t>this.size())&&g(),this.m_a.fill(e,t,t+n)}add(e){this.resize(this.m_size+1),this.m_a[this.m_size-1]=e}addArray(e,t){let n=this.m_size;t===void 0?(this.resize(this.m_size+e.length),this.m_a.set(e,n)):(this.resize(this.m_size+t),this.m_a.set(e.slice(0,t),n))}getArray(){return this.m_a}equals(e,t,n,r){if(this.getPersistence()!==e.getPersistence())return!1;let i=e;return be(this,i,t,n,r)}insertRange(e,t,n,r){let i=this.m_size;this.checkResize(Math.max(0,r)+n),this.m_a.copyWithin(e+n,e,r>=0?r:i),this.m_a.fill(t,e,e+n)}readRange(e,t){return this.m_a.slice(e,e+t)}insertRangeFromStream(e,t,n,r,i,a,o){h(this.getPersistence()===t.getPersistence());let s=t,c=this.m_size;r&&this.checkResize(Math.max(0,o)+r),this.m_a.copyWithin(e+r,e,o>=0?o:c),this.m_a.set(s.readRange(n,r),e),i||this.reverseRange(e,r,a)}writeRange(e,t,n,r,i,a){h(this.getPersistence()===n.getPersistence());let o=n;if((e<0||t<0||r<0)&&g(),o.size()<r+t&&g(),t===0)return;this.size()<t+e&&this.resize(t+e);let s=o.m_a.subarray(r,r+t);xe(this.m_a,e,t,s)}insertAttributes(e,t,n,r){let i=P.getComponentCount(n);this.m_a.copyWithin(e+i,e,r>=0?r:this.m_size);for(let r=0;r<i;r++)this.m_a[e+r]=t.getAttributeAsDbl(n,r)}insertAttributesFromPoints(e,t,n,r,i){h(P.getPersistence(r)===this.getPersistence());let a=P.getComponentCount(r),o=this.m_size;if(this.checkResize(Math.max(0,i)+a*n),this.m_a.copyWithin(e+a*n,e,i>=0?i:o),r===0){let r=new s;for(let i=e,a=0;a<n;a++,i+=2)t[a].queryXY(r),this.m_a[i]=r.x,this.m_a[i+1]=r.y}else if(a===1)for(let i=e,a=0;a<n;a++,i++)this.m_a[i]=t[a].getAttributeAsDbl(r,0);else for(let i=e,o=0;o<n;o++,i+=a)for(let e=0;e<a;e++)this.m_a[i+e]=t[o].getAttributeAsDbl(r,e)}eraseRange(e,t,n){this.m_size<e+t&&g(),this.m_a.copyWithin(e,e+t),this.m_size-=t}reverseRange(e,t,n){if((n<1||t%n!==0)&&g(),this.m_a.subarray(e,e+t).reverse(),n>1)for(let r=e,i=e+t;r<i;r+=n){let e=r,t=r+n-1;for(;e<t;){let n=this.m_a[e];this.m_a[e]=this.m_a[t],this.m_a[t]=n,e++,t--}}}rotate(e,t,n){(t<e||t>n||e>n)&&_(`rotate`),t!==e&&t!==n&&(this.reverseRange(e,t-e,1),this.reverseRange(t,n-t,1),this.reverseRange(e,n-e,1))}sort(e,t,n){this.m_a.subarray(e,t).sort(n)}constructor(e){if(e.move)this.m_a=e.move.m_a,this.m_size=e.move.m_size,e.move.m_a=e.move.m_a.slice(0,0),e.move.m_size=0;else if(e.fromArray)this.m_a=e.fromArray,this.m_size=e.size??e.fromArray.length;else if(e.copy)this.m_size=e.copy.m_size,e.maxSize&&(this.m_size=Math.min(e.maxSize,this.m_size)),this.m_a=e.copy.m_a.slice(0,this.m_size);else{let t=Math.max(e.size,F.s_constructMin);this.m_a=new e.ctor(t),(e.defaultValue||Number.isNaN(e.defaultValue))&&this.m_a.fill(e.defaultValue),this.m_size=e.size}}m_a;m_size}class I extends F{setBits(e,t){this.m_a[e]|=t}clearBits(e,t){this.m_a[e]&=~t}getPersistence(){return 4}clone(){return new I({ctor:Int8Array,copy:this})}restrictedClone(e){return new I({ctor:Int8Array,copy:this,maxSize:e})}constructor(e,t){super(typeof e==`number`?{ctor:Int8Array,size:e,defaultValue:t}:e)}}class L extends F{getPersistence(){return 2}clone(){return new L({ctor:Int32Array,copy:this})}restrictedClone(e){return new L({ctor:Int32Array,copy:this,maxSize:e})}write(e,t){h(t<=c()),super.write(e,t)}constructor(e,t){super(typeof e==`number`?{ctor:Int32Array,size:e,defaultValue:t}:e)}}class ye extends F{getPersistence(){return 0}clone(){return new ye({ctor:Float32Array,copy:this})}restrictedClone(e){return new ye({ctor:Float32Array,copy:this,maxSize:e})}constructor(e,t){super(typeof e==`number`?{ctor:Float32Array,size:e,defaultValue:t}:e)}}class R extends F{getPersistence(){return 1}applyTransformation(e,t,n){(t&1||t+n*2>this.size())&&g();let r=t===0?this.m_a:this.m_a.subarray(t);e.transformInterleavedPoints(r,n,r)}readPoint2D(e){let t=this.m_a[e],n=this.m_a[e+1];return new s(t,n)}queryPoint2D(e,t){return t.x=this.m_a[e],t.y=this.m_a[e+1],t}writePoint2D(e,t){this.write(e,t.x),this.write(e+1,t.y)}insert(e,t,n){this.checkResize(n+2),this.m_a.copyWithin(e+2,e,n),this.m_a[e]=t.x,this.m_a[e+1]=t.y}insertRangeFromPoints(e,t,n,r,i,a){let o=this.m_size;if(this.checkResize(Math.max(a,0)+r*2),this.m_a.copyWithin(e+r*2,e,a>=0?a:o),i)for(let i=n,a=e,o=0;o<r;++o,++i){let e=t[i];this.m_a[a++]=e.x,this.m_a[a++]=e.y}else for(let i=n+r-1,a=e,o=0;o<r;++o,--i){let e=t[i];this.m_a[a++]=e.x,this.m_a[a++]=e.y}}queryRange(e,t,n,r,i){if((e<0||t<0)&&g(),!r&&(i<=0||t%i!==0)&&g(),t===0)return;if(t===1){n[0]=this.m_a[e];return}let a=this.m_a.subarray(e,e+t);n.set(a)}writeRangeFromArray(e,t,n,r,i){if((e<0||t<0)&&g(),t===0)return;if(t===1){this.m_a[e]=n[0];return}let a=n;t<n.length&&(a=n.subarray(0,t)),this.m_a.set(a,e)}clone(){return new R({ctor:Float64Array,copy:this})}restrictedClone(e){return new R({ctor:Float64Array,copy:this,maxSize:e})}constructor(e,t){super(typeof e==`number`?{ctor:Float64Array,size:e,defaultValue:t}:e)}}function be(e,t,n,i,a){if(e.getPersistence()!==t.getPersistence())return!1;let o=e.getPersistence()<=1,s=e.size(),c=t.size();if(i>s||i>c)return!1;if(a){if(o){for(let o=n;o<i;o++)if(!r(e.read(o),t.read(o),a))return!1}else for(let r=n;r<i;r++){let n=e.read(r)-t.read(r);if(n<0&&(n=-n),n>a)return!1}}else for(let r=n;r<i;r++){let n=e.read(r),i=t.read(r);if(n!==i){if(o&&Number.isNaN(n)&&Number.isNaN(i))continue;return!1}}return!0}function xe(e,t,n,r,i,a){if((t<0||n<0)&&g(),n===0)return;if(n===1){e[t]=r[0];return}let o=r;n<r.length&&(o=r.subarray(0,n)),e.set(o,t)}const Se={partCount:0,partOffsets:void 0,partFlags:void 0,segmentFlags:void 0,segmentIndices:void 0,segmentParams:void 0,segmentCountArc:0,segmentCountBezier:0};class z{m_buckets;m_bucketedIndices;static c_maxBuckets=65536;m_minValue=-1;m_maxValue=-1;m_dy=NaN;constructor(){this.m_buckets=new L(0),this.m_bucketedIndices=new L(0)}static sortEx(e,t,n,r,i=32){if(n-t<=i){r.userSort(t,n,e);return}new z().sort(e,t,n,r,i)}sort(e,t,n,r,i=32){if(n-t<=i){r.userSort(t,n,e);return}let a=!0,o=1/0,s=-1/0;for(let i=t;i<n;i++){let t=r.getValue(e.read(i));t<o&&(o=t),t>s&&(s=t)}if(this.reset(n-t,o,s,n-t)){for(let i=t;i<n;i++){let n=e.read(i),a=r.getValue(n),o=this.getBucket(a);this.m_buckets.write(o,this.m_buckets.read(o)+1),this.m_bucketedIndices.write(i-t,n)}let i=this.m_buckets.read(0);this.m_buckets.write(0,0);for(let e=1,t=this.m_buckets.size();e<t;e++){let t=this.m_buckets.read(e);this.m_buckets.write(e,i),i+=t}for(let i=t;i<n;i++){let n=this.m_bucketedIndices.read(i-t),a=r.getValue(n),o=this.getBucket(a),s=this.m_buckets.read(o);e.write(s+t,n),this.m_buckets.write(o,s+1)}a=!1}if(a){r.userSort(t,n,e);return}let c=0;for(let n=0,i=this.m_buckets.size();n<i;n++){let i=c;c=this.m_buckets.read(n),c>i&&r.userSort(t+i,t+c,e)}this.m_buckets.size()>100&&(this.m_buckets.resize(0),this.m_bucketedIndices.resize(0))}reset(e,t,n,r){if(e<2||n===t)return!1;let i=Math.min(z.c_maxBuckets,e);return this.m_buckets.resize(i),this.m_buckets.setRange(0,0,this.m_buckets.size()),this.m_minValue=t,this.m_maxValue=n,this.m_bucketedIndices.resize(r),this.m_dy=(n-t)/(i-1),!0}getBucket(e){return Math.trunc((e-this.m_minValue)/this.m_dy)}getBucketCount(){return this.m_buckets.size()}}class B{m_buffer=new Int32Array;m_firstFree=-1;m_last=0;size_=0;capacity_=0;stride;capacity(){return this.capacity_}constructor(e){this.stride=e}size(){return this.size_}deleteElement(e){e<this.m_last?(this.m_buffer[e*this.stride]=this.m_firstFree,this.m_firstFree=e):this.m_last--,this.size_--}getField(e,t){return this.m_buffer[e*this.stride+t]}setField(e,t,n){this.m_buffer[e*this.stride+t]=n}elementToIndex(e){return e}newElement(){let e=this.m_firstFree;if(e===-1){if(this.m_last===this.capacity_){let e=this.capacity_===0?1:Math.trunc((this.capacity_+1)*3/2);if(e>2**53-1&&(e=2**53-1),e===this.capacity_)throw Error(`index out of bounds`);this.grow_(e)}e=this.m_last,this.m_last++}else this.m_firstFree=this.m_buffer[e*this.stride];this.size_++;for(let t=e*this.stride;t<e*this.stride+this.stride;t++)this.m_buffer[t]=-1;return e}newElementPset(e){let t=this.m_firstFree;if(t===-1){if(this.m_last===this.capacity_){let e=this.capacity_===0?1:Math.trunc((this.capacity_+1)*3/2);if(e>2**53-1&&(e=2**53-1),e===this.capacity_)throw Error(`index out of bounds`);this.grow_(e)}t=this.m_last,this.m_last++}else this.m_firstFree=this.m_buffer[t*this.stride];this.size_++;let n=t*this.stride;for(let t=0;t<e.length;t++)this.m_buffer[n+t]=e[t];return t}deleteAll(e){this.m_firstFree=-1,this.m_last=0,this.size_=0,e&&(this.m_buffer=new Int32Array,this.capacity_=0)}setCapacity(e){e>this.capacity_&&this.grow_(e)}swap(e,t){let n=e*this.stride,r=t*this.stride;for(let e=0;e<this.stride;e++){let t=this.m_buffer[r+e];this.m_buffer[r+e]=this.m_buffer[n+e],this.m_buffer[n+e]=t}}swapField(e,t,n){let r=this.m_buffer[this.stride*t+n];this.m_buffer[this.stride*t+n]=this.m_buffer[this.stride*e+n],this.m_buffer[this.stride*e+n]=r}static impossibleIndex2(){return-2}static impossibleIndex3(){return-3}static isValidElement(e){return e>=0}grow_(e){this.m_buffer??=new Int32Array;let t=this.stride*e,n=new Int32Array(t);n.set(this.m_buffer,0),this.m_buffer=n,this.capacity_=e}}function Ce(e,t){return{element:e,box:t.clone()}}class V{m_extent=new S;m_dataExtent=new S;m_childExtents=[new S,new S,new S,new S];m_quadTreeNodes;m_elementNodes=new B(4);m_data=[];m_freeData=[];m_root=-1;m_height=8;m_bStoreDuplicates;static m_quadrantMask=3;static m_heightBitShift=2;static m_flushingCount=5;constructor(e,t,n){n===void 0&&(n=!1),this.m_quadTreeNodes=new B(n?11:10),this.m_bStoreDuplicates=n,this.reset_(e,t)}reset(e,t){this.m_quadTreeNodes.deleteAll(!1),this.m_elementNodes.deleteAll(!1),this.m_data.length=0,this.m_freeData.length=0,this.reset_(e,t)}insert(e,t){if(this.m_root===-1&&this.createRoot_(),this.m_bStoreDuplicates){let n=this.insertDuplicates_(e,t,0,this.m_extent,this.m_root,!1,-1);return n!==-1&&(this.m_dataExtent.isEmpty()?this.m_dataExtent.setCoords({env2D:t}):this.m_dataExtent.mergeEnvelope2D(t)),n}let n=this.insert_(e,t,0,this.m_extent,this.m_root,!1,-1);return n!==-1&&(this.m_dataExtent.isEmpty()?this.m_dataExtent.setCoords({env2D:t}):this.m_dataExtent.mergeEnvelope2D(t)),n}insertEx(e,t,n){if(this.m_root===-1&&this.createRoot_(),this.m_bStoreDuplicates){let n=this.insertDuplicates_(e,t,0,this.m_extent,this.m_root,!1,-1);return n!==-1&&(this.m_dataExtent.isEmpty()?this.m_dataExtent.setCoords({env2D:t}):this.m_dataExtent.mergeEnvelope2D(t)),n}let r;r=n===-1?this.m_root:this.getQuad_(n);let i=this.getHeight(r),a=this.getExtent(r),o=this.insert_(e,t,i,a,r,!1,-1);return o!==-1&&(this.m_dataExtent.isEmpty()?this.m_dataExtent.setCoords({env2D:t}):this.m_dataExtent.mergeEnvelope2D(t)),o}removeElement(e){h(0)}getElement(e){return this.getElementValue_(this.getData_(e))}getElementAtIndex(e){return h(0),0}getElementExtent(e){let t=this.getData_(e);return this.getBoundingBoxValue_(t).clone()}getElementExtentAtIndex(e){return h(0),{}}getDataExtent(){return this.m_dataExtent.clone()}getQuadTreeExtent(){return h(0),{}}getHeight(e){return this.m_quadTreeNodes.getField(e,6)>>V.m_heightBitShift}getMaxHeight(){return this.m_height}getExtent(e){let t=new S;if(t.setCoords({env2D:this.m_extent}),e===this.m_root)return t;let n=[],r=e;do n.push(this.getQuadrant_(r)),r=this.getParent_(r);while(r!==this.m_root);let i=n.length;for(let e=0;e<i;e++){let e=n.at(-1);n.pop(),e===0?(t.xmin=.5*(t.xmin+t.xmax),t.ymin=.5*(t.ymin+t.ymax)):e===1?(t.xmax=.5*(t.xmin+t.xmax),t.ymin=.5*(t.ymin+t.ymax)):e===2?(t.xmax=.5*(t.xmin+t.xmax),t.ymax=.5*(t.ymin+t.ymax)):(t.xmin=.5*(t.xmin+t.xmax),t.ymax=.5*(t.ymin+t.ymax))}return t}getQuad(e){return this.getQuad_(e)}getElementCount(){return this.m_root===-1?0:this.getSubTreeElementCount_(this.m_root)}getSubTreeElementCount(e){return this.getSubTreeElementCount_(e)}getContainedSubTreeElementCount(e){return this.m_bStoreDuplicates?this.getContainedSubTreeElementCount_(e):this.getSubTreeElementCount_(e)}getIntersectionCount(e,t,n){if(this.m_root===-1)return 0;let r=new S;r.setCoords({env2D:e}),r.inflateCoords(t,t);let i=[],a=[];i.push(this.m_root),a.push(this.m_extent.clone());let o=d(S,4),s=0;for(;i.length>0;){let e=!1,t=i.at(-1),c=a.at(-1);if(i.pop(),a.pop(),r.containsEnvelope(c)){if(s+=this.getSubTreeElementCount(t),n>0&&s>=n)return n}else if(r.isIntersecting(c)){for(let e=this.getFirstElement_(t);e!==-1;e=this.getNextElement_(e)){let t=this.getData_(e);if(this.getBoundingBoxValue_(t).isIntersecting(r)&&(s++,n>0&&s>=n))return n}e=this.getHeight(t)+1<=this.m_height}if(e){V.setChildExtents_(c,o);for(let e=0;e<4;e++){let n=this.getChild_(t,e);n!==-1&&this.getSubTreeElementCount_(n)>0&&r.isIntersecting(o[e])&&(i.push(n),a.push(o[e].clone()))}}}return s}hasData(e,t){return this.getIntersectionCount(e,t,1)>=1}getIterator(e,t){return new we(this,e,t)}getIteratorForQT(){return new we(this)}getSortedIterator(e,t){return new Te(this.getIterator(e,t))}getSortedIteratorForQT(){return new Te(this.getIteratorForQT())}visitLeavesNearest(e,t,n,r){h(0)}reset_(e,t){(t<0||t>127)&&g(`invalid height`),this.m_height=t,this.m_extent.setCoords({env2D:e}),this.m_dataExtent.setEmpty(),this.m_root=-1}insert_(e,t,n,r,i,a,o){if(!r.containsEnvelope(t))return n===0?-1:this.insert_(e,t,0,this.m_extent,this.m_root,a,o);if(!a)for(let e=i;e!==-1;e=this.getParent_(e))this.setSubTreeElementCount_(e,this.getSubTreeElementCount_(e)+1);let s=new S;s.setCoords({env2D:r});let c=i,l;for(l=n;l<this.m_height&&this.canPushDown_(c);l++){V.setChildExtents_(s,this.m_childExtents);let e=!1;for(let n=0;n<4;n++)if(this.m_childExtents[n].containsEnvelope(t)){e=!0;let t=this.getChild_(c,n);t===-1&&(t=this.createChild_(c,n)),this.setSubTreeElementCount_(t,this.getSubTreeElementCount_(t)+1),c=t,s.setCoords({env2D:this.m_childExtents[n]});break}if(!e)break}return this.insertAtQuad_(e,t,l,s,c,a,i,o,-1)}insertDuplicates_(e,t,n,r,i,a,o){if(!a){if(!r.containsEnvelope(t))return-1;this.setSubTreeElementCount_(i,this.getSubTreeElementCount_(i)+1),this.setContainedSubTreeElementCount_(i,this.getContainedSubTreeElementCount_(i)+1)}let s=Math.max(t.width(),t.height()),c=-1,l=[],u=[],f=[];l.push(i),u.push(r.clone()),f.push(n);let p=d(S,4);for(;l.length>0;){let n=!1,r=l.at(-1),d=u.at(-1),m=f.at(-1);if(l.pop(),u.pop(),f.pop(),m+1<this.m_height&&this.canPushDown_(r)&&s<=Math.max(d.width(),d.height())/2&&(n=!0),n){V.setChildExtents_(d,p);let e=!1;for(let n=0;n<4;n++)if(e=p[n].containsEnvelope(t),e){let e=this.getChild_(r,n);e===-1&&(e=this.createChild_(r,n)),l.push(e),u.push(p[n].clone()),f.push(m+1),this.setSubTreeElementCount_(e,this.getSubTreeElementCount_(e)+1),this.setContainedSubTreeElementCount_(e,this.getContainedSubTreeElementCount_(e)+1);break}if(!e){for(let e=0;e<4;e++)if(p[e].isIntersecting(t)){let t=this.getChild_(r,e);t===-1&&(t=this.createChild_(r,e)),l.push(t),u.push(p[e].clone()),f.push(m+1),this.setSubTreeElementCount_(t,this.getSubTreeElementCount_(t)+1)}}}else c=this.insertAtQuad_(e,t,m,d,r,a,i,o,c),a=!1}return 0}insertAtQuad_(e,t,n,r,i,a,o,s,c){this.getFirstElement_(i);let l=this.getLastElement_(i),u=-1;if(a){if(i===o)return s;this.disconnectElementHandle_(s),u=s}else c===-1?(u=this.createElement_(),this.setDataValues_(this.getData_(u),e,t)):u=this.createElementFromDuplicate_(c);return this.setQuad_(u,i),l===-1?this.setFirstElement_(i,u):(this.setPrevElement_(u,l),this.setNextElement_(l,u)),this.setLastElement_(i,u),this.setLocalElementCount_(i,this.getLocalElementCount_(i)+1),this.canFlush_(i)&&this.flush_(n,r,i),u}static setChildExtents_(e,t){let n=.5*(e.xmin+e.xmax),r=.5*(e.ymin+e.ymax);t[0].setCoords({xmin:n,ymin:r,xmax:e.xmax,ymax:e.ymax}),t[1].setCoords({xmin:e.xmin,ymin:r,xmax:n,ymax:e.ymax}),t[2].setCoords({xmin:e.xmin,ymin:e.ymin,xmax:n,ymax:r}),t[3].setCoords({xmin:n,ymin:e.ymin,xmax:e.xmax,ymax:r})}disconnectElementHandle_(e){let t=this.getQuad_(e),n=this.getFirstElement_(t),r=this.getLastElement_(t),i=this.getPrevElement_(e),a=this.getNextElement_(e);n===e?(a===-1?this.setLastElement_(t,-1):this.setPrevElement_(a,-1),this.setFirstElement_(t,a)):r===e?(this.setNextElement_(i,-1),this.setLastElement_(t,i)):(this.setPrevElement_(a,i),this.setNextElement_(i,a)),this.setPrevElement_(e,-1),this.setNextElement_(e,-1),this.setLocalElementCount_(t,this.getLocalElementCount_(t)-1)}canFlush_(e){return this.getLocalElementCount_(e)===V.m_flushingCount&&!this.hasChildren_(e)}flush_(e,t,n){let r,i=new S,a=this.getFirstElement_(n),o=-1,s=-1;do s=this.getData_(a),r=this.getElementValue_(s),i.setCoords({env2D:this.getBoundingBoxValue_(s)}),o=this.getNextElement_(a),this.m_bStoreDuplicates?this.insertDuplicates_(r,i,e,t,n,!0,a):this.insert_(r,i,e,t,n,!0,a),a=o;while(a!==-1)}canPushDown_(e){return this.getLocalElementCount_(e)>=V.m_flushingCount||this.hasChildren_(e)}hasChildren_(e){return this.getChild_(e,0)!==-1||this.getChild_(e,1)!==-1||this.getChild_(e,2)!==-1||this.getChild_(e,3)!==-1}createChild_(e,t){let n=this.m_quadTreeNodes.newElement();return this.setChild_(e,t,n),this.setSubTreeElementCount_(n,0),this.setLocalElementCount_(n,0),this.setParent_(n,e),this.setHeightAndQuadrant_(n,this.getHeight_(e)+1,t),this.m_bStoreDuplicates&&this.setContainedSubTreeElementCount_(n,0),n}createRoot_(){this.m_root=this.m_quadTreeNodes.newElement(),this.setSubTreeElementCount_(this.m_root,0),this.setLocalElementCount_(this.m_root,0),this.setHeightAndQuadrant_(this.m_root,0,0),this.m_bStoreDuplicates&&this.setContainedSubTreeElementCount_(this.m_root,0)}createElement_(){let e=this.m_elementNodes.newElement(),t;return this.m_freeData.length>0?(t=this.m_freeData.at(-1),this.m_freeData.pop()):(t=this.m_data.length,this.m_data.length=t+1),this.setData_(e,t),e}createElementFromDuplicate_(e){let t=this.m_elementNodes.newElement(),n=this.getData_(e);return this.setData_(t,n),t}freeElementAndBoxNode_(e){h(0)}getChild_(e,t){return this.m_quadTreeNodes.getField(e,t)}setChild_(e,t,n){this.m_quadTreeNodes.setField(e,t,n)}getFirstElement_(e){return this.m_quadTreeNodes.getField(e,4)}setFirstElement_(e,t){this.m_quadTreeNodes.setField(e,4,t)}getLastElement_(e){return this.m_quadTreeNodes.getField(e,5)}setLastElement_(e,t){this.m_quadTreeNodes.setField(e,5,t)}getQuadrant_(e){return this.m_quadTreeNodes.getField(e,6)&V.m_quadrantMask}getHeight_(e){return this.m_quadTreeNodes.getField(e,6)>>V.m_heightBitShift}setHeightAndQuadrant_(e,t,n){let r=t<<V.m_heightBitShift|n;this.m_quadTreeNodes.setField(e,6,r)}getLocalElementCount_(e){return this.m_quadTreeNodes.getField(e,7)}setLocalElementCount_(e,t){this.m_quadTreeNodes.setField(e,7,t)}getSubTreeElementCount_(e){return this.m_quadTreeNodes.getField(e,8)}setSubTreeElementCount_(e,t){this.m_quadTreeNodes.setField(e,8,t)}getParent_(e){return this.m_quadTreeNodes.getField(e,9)}setParent_(e,t){this.m_quadTreeNodes.setField(e,9,t)}getContainedSubTreeElementCount_(e){return this.m_quadTreeNodes.getField(e,10)}setContainedSubTreeElementCount_(e,t){this.m_quadTreeNodes.setField(e,10,t)}getData_(e){return this.m_elementNodes.getField(e,0)}setData_(e,t){this.m_elementNodes.setField(e,0,t)}getPrevElement_(e){return this.m_elementNodes.getField(e,1)}getNextElement_(e){return this.m_elementNodes.getField(e,2)}setPrevElement_(e,t){this.m_elementNodes.setField(e,1,t)}setNextElement_(e,t){this.m_elementNodes.setField(e,2,t)}getQuad_(e){return this.m_elementNodes.getField(e,3)}setQuad_(e,t){this.m_elementNodes.setField(e,3,t)}getElementValue_(e){return this.m_data[e].element}getBoundingBoxValue_(e){return this.m_data[e].box}setDataValues_(e,t,n){this.m_data[e]=Ce(t,n)}}class we{m_bLinear=!1;m_queryStart=new s;m_queryEnd=new s;m_queryBox=new S;m_tolerance=0;m_currentElementHandle=-1;m_nextElementHandle=-1;m_quadTree;m_quadsStack=[];m_extentsStack=[];m_childExtents=[new S,new S,new S,new S];constructor(e,t,n){this.m_quadTree=e,t&&this.resetIterator(t,n)}resetIterator(e,t){if(t===void 0&&(t=0),e instanceof S){this.m_quadsStack.length=0,this.m_extentsStack.length=0,this.m_currentElementHandle=-1,this.m_queryBox.setCoords({env2D:e}),this.m_queryBox.inflateCoords(t,t),this.m_tolerance=NaN,this.m_quadTree.m_root!==-1&&this.m_queryBox.isIntersecting(this.m_quadTree.m_extent)?(this.m_quadsStack.push(this.m_quadTree.m_root),this.m_extentsStack.push(this.m_quadTree.m_extent.clone()),this.m_nextElementHandle=this.m_quadTree.getFirstElement_(this.m_quadTree.m_root),this.m_bLinear=!1):this.m_nextElementHandle=-1;return}if(this.m_quadsStack.length=0,this.m_extentsStack.length=0,this.m_currentElementHandle=-1,e.queryLooseEnvelope(this.m_queryBox),this.m_queryBox.inflateCoords(t,t),this.m_quadTree.m_root!==-1&&this.m_queryBox.isIntersecting(this.m_quadTree.m_extent)){let n=e.getGeometryType();if(this.m_bLinear=n===v.enumLine,this.m_bLinear){let n=e;this.m_queryStart.assign(n.getStartXY()),this.m_queryEnd.assign(n.getEndXY()),this.m_tolerance=t}else this.m_tolerance=NaN;this.m_quadsStack.push(this.m_quadTree.m_root),this.m_extentsStack.push(this.m_quadTree.m_extent.clone()),this.m_nextElementHandle=this.m_quadTree.getFirstElement_(this.m_quadTree.m_root)}else this.m_nextElementHandle=-1}next(){if(this.m_quadsStack.length===0)return-1;this.m_currentElementHandle=this.m_nextElementHandle;let e=new s,t=new s,n=new S,r=!1;for(;!r;){for(;this.m_currentElementHandle!==-1;){let i=this.m_quadTree.getData_(this.m_currentElementHandle);if(n.setCoords({env2D:this.m_quadTree.getBoundingBoxValue_(i)}),n.isIntersecting(this.m_queryBox)){if(this.m_bLinear){if(e.setCoordsPoint2D(this.m_queryStart),t.setCoordsPoint2D(this.m_queryEnd),n.inflateCoords(this.m_tolerance,this.m_tolerance),n.clipLine(e,t)>0){r=!0;break}}else{r=!0;break}}this.m_currentElementHandle=this.m_quadTree.getNextElement_(this.m_currentElementHandle)}if(this.m_currentElementHandle===-1){let n=this.m_quadsStack.at(-1),r=this.m_extentsStack.at(-1);V.setChildExtents_(r,this.m_childExtents),this.m_quadsStack.pop(),this.m_extentsStack.pop();for(let r=0;r<4;r++){let i=this.m_quadTree.getChild_(n,r);if(i!==-1&&this.m_quadTree.getSubTreeElementCount(i)>0&&this.m_childExtents[r].isIntersecting(this.m_queryBox)){if(this.m_bLinear){e.setCoordsPoint2D(this.m_queryStart),t.setCoordsPoint2D(this.m_queryEnd);let n=new S;n.setCoords({env2D:this.m_childExtents[r]}),n.inflateCoords(this.m_tolerance,this.m_tolerance),n.clipLine(e,t)>0&&(this.m_quadsStack.push(i),this.m_extentsStack.push(this.m_childExtents[r].clone()))}else this.m_quadsStack.push(i),this.m_extentsStack.push(this.m_childExtents[r].clone())}}if(this.m_quadsStack.length===0)return-1;this.m_currentElementHandle=this.m_quadTree.getFirstElement_(this.m_quadsStack.at(-1))}}return this.m_nextElementHandle=this.m_quadTree.getNextElement_(this.m_currentElementHandle),this.m_currentElementHandle}clone(){return h(0),{}}}class Te{m_bucketSort=new z;m_sortedHandles=new L(0);m_quadTreeIteratorImpl;m_index=-1;constructor(e){this.m_quadTreeIteratorImpl=e}resetIterator(e,t){this.m_quadTreeIteratorImpl.resetIterator(e,t),this.m_sortedHandles.resize(0),this.m_index=-1}next(){if(this.m_index===-1){let e=-1;for(;(e=this.m_quadTreeIteratorImpl.next())!==-1;)this.m_sortedHandles.add(e);let t=this;this.m_bucketSort.sort(this.m_sortedHandles,0,this.m_sortedHandles.size(),{userSort(e,n,r){r.sort(e,n,(e,n)=>t.m_quadTreeIteratorImpl.m_quadTree.getElement(e)-t.m_quadTreeIteratorImpl.m_quadTree.getElement(n))},getValue(e){return t.m_quadTreeIteratorImpl.m_quadTree.getElement(e)}})}return this.m_index===this.m_sortedHandles.size()-1?-1:(this.m_index++,this.m_sortedHandles.read(this.m_index))}clone(){return h(0),{}}}class Ee{constructor(e=!1){this.m_bNotifyOnActions=e}onDelete(e){}onSet(e){}onEndSearch(e){}onAddUniqueElementFailed(e){}m_bNotifyOnActions;onDeleteImpl(e,t){this.m_bNotifyOnActions&&this.onDelete(e.getElement(t))}onSetImpl(e,t){this.m_bNotifyOnActions&&this.onSet(e.getElement(t))}onAddUniqueElementFailedImpl(e){this.m_bNotifyOnActions&&this.onAddUniqueElementFailed(e)}onEndSearchImpl(e){this.m_bNotifyOnActions&&this.onEndSearch(e)}}class H{static st_nullNode(){return-1}constructor(){}setComparator(e){this.m_comparator=e}getComparator(){return this.m_comparator}disableBalancing(){this.m_bBalancing=!1}enableBalancing(){this.m_bBalancing||=(h(this.m_treapCount<=1),this.rebalance(-1),!0)}isAutoBalancing(){return this.m_bBalancing}rebalance(e){if(this.m_bBalancing||(e===-1&&(e=this.m_defaultTreap),this.size(e)===0))return;let t=[];for(let n=this.getFirst(e);n!==-1;n=this.getNext(n))t.push(n),this.setParent_(n,-1),this.setRight_(n,-1),this.setLeft_(n,-1);this.setRoot_(-1,e),this.setFirst_(-1,e),this.setLast_(-1,e),this.setSize_(0,e),this.m_bBalancing=!0;for(let n of t)this.addBiggestElement_(n,e);this.m_bBalancing=!1}setCapacity(e){this.m_treapData.setCapacity(e)}createTreap(e){let t=this.m_treapData.newElement();return this.setSize_(0,t),this.setTreapData_(e,t),this.m_treapCount++,t}deleteTreap(e){this.m_treapData.deleteElement(e),this.m_treapCount--}addElement(e,t=-1){return t===-1&&(this.m_defaultTreap===H.st_nullNode()&&(this.m_defaultTreap=this.createTreap(-1)),t=this.m_defaultTreap),this.addElement_(e,0,t)}addUniqueElement(e,t=-1){return t===-1&&(this.m_defaultTreap===H.st_nullNode()&&(this.m_defaultTreap=this.createTreap(-1)),t=this.m_defaultTreap),this.addElement_(e,1,t)}addBiggestElement(e,t=-1){t===-1&&(this.m_defaultTreap===H.st_nullNode()&&(this.m_defaultTreap=this.createTreap(-1)),t=this.m_defaultTreap);let n=this.newNode_(e);return this.addBiggestElement_(n,t),n}addElementAtPosition(e,t,n,r,i,a=-1){if(a===-1&&(this.m_defaultTreap===H.st_nullNode()&&(this.m_defaultTreap=this.createTreap(-1)),a=this.m_defaultTreap),this.getRoot_(a)===H.st_nullNode()){let e=this.newNode_(n);return this.setRoot_(e,a),this.addToList_(-1,e,a),e}let o,s;if(i?(o=t===H.st_nullNode()?-1:this.m_comparator.compare(this,n,t),s=e===H.st_nullNode()?1:this.m_comparator.compare(this,n,e)):(o=-1,s=1),r&&(o===0||s===0)){this.m_comparator.onAddUniqueElementFailedImpl(n);let r=o===0?t:e;return this.setDuplicateElement_(r,a),-1}let c,l,u;u=t!==H.st_nullNode()&&e!==H.st_nullNode()?this.m_random>f(this.m_random)>>1:t!==H.st_nullNode(),u?(l=o,c=t):(l=s,c=e);let d=-1,p=-1,m=!0;for(;;){if(l<0){let e=this.getLeft(c);if(e!==H.st_nullNode())c=e;else{p=c,d=this.newNode_(n),this.setLeft_(c,d),this.setParent_(d,c);break}}else{let e=this.getRight(c);if(e!==H.st_nullNode())c=e;else{p=this.getNext(c),d=this.newNode_(n),this.setRight_(c,d),this.setParent_(d,c);break}}m&&=(l*=-1,!1)}return this.bubbleUp_(d),this.getParent(d)===H.st_nullNode()&&this.setRoot_(d,a),this.addToList_(p,d,a),d}replaceElementAtPosition(e,t,n,r,i=-1){if(r){let r=this.getNext(e),a=-1;r!==H.st_nullNode()&&(a=this.m_comparator.compare(this,t,r));let o=this.getPrev(e),s=-1;if(o!==H.st_nullNode()&&(s=this.m_comparator.compare(this,t,o)),n&&(a===0||s===0)){this.m_comparator.onAddUniqueElementFailedImpl(t);let e=a===0?r:o;return i===H.st_nullNode()&&(this.m_defaultTreap===H.st_nullNode()&&(this.m_defaultTreap=this.createTreap(-1)),i=this.m_defaultTreap),this.setDuplicateElement_(e,i),-1}}return this.setElement_(e,t),e}getDuplicateElement(e=-1){return e===-1?this.getDuplicateElement_(this.m_defaultTreap):this.getDuplicateElement_(e)}deleteNode(e,t=-1){this.m_comparator&&this.m_comparator.onDeleteImpl(this,e),t===-1&&(t=this.m_defaultTreap),this.m_bBalancing?this.deleteNode_(e,t):this.unbalancedDelete_(e,t)}search(e,t=-1){let n=this.getRoot(t);for(;n!==H.st_nullNode();){let t=this.m_comparator.compare(this,e,n);if(t)n=t<0?this.getLeft(n):this.getRight(n);else return n}return this.m_comparator.onEndSearchImpl(e),H.st_nullNode()}searchLowerBound(e,t=-1){let n=this.getRoot(t),r=-1;for(;n!==H.st_nullNode();){let t=e.compare(this,n);if(t)t<0?n=this.getLeft(n):(r=n,n=this.getRight(n));else return n}return r}searchUpperBound(e,t=-1){let n=this.getRoot(t),r=-1;for(;n!==H.st_nullNode();){let t=e.compare(this,n);if(t)t<0?(r=n,n=this.getLeft(n)):n=this.getRight(n);else return n}return r}getElement(e){return this.m_treapData.getField(e,3)}getLeft(e){return this.m_treapData.getField(e,0)}getRight(e){return this.m_treapData.getField(e,1)}getParent(e){return this.m_treapData.getField(e,2)}getNext(e){return this.m_treapData.getField(e,6)}getPrev(e){return this.m_treapData.getField(e,5)}getFirst(e=-1){return e===-1?this.getFirst_(this.m_defaultTreap):this.getFirst_(e)}getLast(e=-1){return e===-1?this.getLast_(this.m_defaultTreap):this.getLast_(e)}getTreapData(e=-1){return e===-1?this.getTreapData_(this.m_defaultTreap):this.getTreapData_(e)}setElement(e,t){this.m_comparator!==null&&this.m_comparator.onSetImpl(this,e),this.setElement_(e,t)}getRoot(e=-1){return e===-1?this.getRoot_(this.m_defaultTreap):this.getRoot_(e)}clear(){this.m_treapData.deleteAll(!1),this.m_defaultTreap=H.st_nullNode(),this.m_treapCount=0,this.m_maxDepthEver=0}addToList_(e,t,n){let r;e===-1?r=this.getLast_(n):(r=this.getPrev(e),this.setPrev_(e,t)),this.setPrev_(t,r),r!==-1&&this.setNext_(r,t),this.setNext_(t,e),e===this.getFirst_(n)&&this.setFirst_(t,n),e===-1&&this.setLast_(t,n),this.setSize_(this.getSize_(n)+1,n)}size(e=-1){return e===-1?this.getSize_(this.m_defaultTreap):this.getSize_(e)}getMaxDepth(e=-1){return this.getMaxDepthHelper_(this.getRoot(e))}getMaxDepthEver(){return this.m_maxDepthEver}static st_isValidNode(e){return B.isValidElement(e)}m_defaultTreap=-1;m_random=124234251;m_comparator=null;m_treapData=new B(7);m_treapCount=0;m_maxDepthEver=0;m_bBalancing=!0;dbgCheck_(e){}getPriority_(e){return this.m_treapData.getField(e,4)}bubbleDown_(e){let t=this.getLeft(e),n=this.getRight(e),r=this.getPriority_(e);for(;t!==H.st_nullNode()||n!==H.st_nullNode();){let i=t===H.st_nullNode()?p():this.getPriority_(t),a=n===H.st_nullNode()?p():this.getPriority_(n);if(r<=Math.min(i,a))return;i<=a?this.rotateRight_(t):this.rotateLeft_(e),t=this.getLeft(e),n=this.getRight(e)}}bubbleUp_(e){if(!this.m_bBalancing)return;let t=this.getPriority_(e),n=this.getParent(e);for(;n!==H.st_nullNode()&&this.getPriority_(n)>t;)this.getLeft(n)===e?this.rotateRight_(e):this.rotateLeft_(n),n=this.getParent(e)}rotateLeft_(e){let t=e,n=this.getRight(e),r;this.setParent_(n,this.getParent(t)),this.setParent_(t,n),r=this.getLeft(n),this.setRight_(t,r),r!==H.st_nullNode()&&this.setParent_(r,t),this.setLeft_(n,t),r=this.getParent(n),r!==H.st_nullNode()&&(this.getLeft(r)===t?this.setLeft_(r,n):this.setRight_(r,n))}rotateRight_(e){let t=this.getParent(e),n=e,r;this.setParent_(n,this.getParent(t)),this.setParent_(t,n),r=this.getRight(n),this.setLeft_(t,r),r!==H.st_nullNode()&&this.setParent_(r,t),this.setRight_(n,t),r=this.getParent(n),r!==H.st_nullNode()&&(this.getLeft(r)===t?this.setLeft_(r,n):this.setRight_(r,n))}setParent_(e,t){this.m_treapData.setField(e,2,t)}setLeft_(e,t){this.m_treapData.setField(e,0,t)}setRight_(e,t){this.m_treapData.setField(e,1,t)}setPriority_(e,t){this.m_treapData.setField(e,4,t)}setPrev_(e,t){this.m_treapData.setField(e,5,t)}setNext_(e,t){this.m_treapData.setField(e,6,t)}setRoot_(e,t){this.m_treapData.setField(t,0,e)}setFirst_(e,t){this.m_treapData.setField(t,1,e)}setLast_(e,t){this.m_treapData.setField(t,2,e)}setDuplicateElement_(e,t){this.m_treapData.setField(t,3,e)}setSize_(e,t){this.m_treapData.setField(t,4,e)}setTreapData_(e,t){this.m_treapData.setField(t,5,e)}getRoot_(e){return e===-1?H.st_nullNode():this.m_treapData.getField(e,0)}getFirst_(e){return e===-1?H.st_nullNode():this.m_treapData.getField(e,1)}getLast_(e){return e===-1?H.st_nullNode():this.m_treapData.getField(e,2)}getDuplicateElement_(e){return e===-1?H.st_nullNode():this.m_treapData.getField(e,3)}getSize_(e){return e===-1?0:this.m_treapData.getField(e,4)}getTreapData_(e){return this.m_treapData.getField(e,5)}newNode_(e){let t=this.m_treapData.newElement();return this.setPriority_(t,this.generatePriority_()),this.setElement_(t,e),t}freeNode_(e,t){e!==H.st_nullNode()&&this.m_treapData.deleteElement(e)}generatePriority_(){return this.m_random=f(this.m_random),this.m_random&p()>>1}maxPriority(){return h(0),0}getMaxDepthHelper_(e){return e===H.st_nullNode()?0:1+Math.max(this.getMaxDepthHelper_(this.getLeft(e)),this.getMaxDepthHelper_(this.getRight(e)))}addElement_(e,t,n){if(this.getRoot(n)===H.st_nullNode()){let t=this.newNode_(e);return this.setRoot_(t,n),this.addToList_(-1,t,n),this.m_maxDepthEver=Math.max(this.m_maxDepthEver,1),t}let r=this.getRoot_(n),i=-1,a=-1,o=1;for(;;){let s=t===-1?1:this.m_comparator.compare(this,e,r);if(s<0){let t=this.getLeft(r);if(t!==H.st_nullNode())r=t;else{a=r,i=this.newNode_(e),this.setLeft_(r,i),this.setParent_(i,r);break}}else{if(t===1&&s===0)return this.m_comparator.onAddUniqueElementFailedImpl(e),this.setDuplicateElement_(r,n),-1;let o=this.getRight(r);if(o!==H.st_nullNode())r=o;else{a=this.getNext(r),i=this.newNode_(e),this.setRight_(r,i),this.setParent_(i,r);break}}o++}return this.bubbleUp_(i),this.getParent(i)===H.st_nullNode()&&this.setRoot_(i,n),this.addToList_(a,i,n),this.m_maxDepthEver=Math.max(o,this.m_maxDepthEver),i}removeFromList_(e,t){let n=this.getPrev(e),r=this.getNext(e);n===-1?this.setFirst_(r,t):this.setNext_(n,r),r===-1?this.setLast_(n,t):this.setPrev_(r,n),this.setSize_(this.getSize_(t)-1,t)}unbalancedDelete_(e,t){this.removeFromList_(e,t);let n=this.getLeft(e),r=this.getRight(e),i=this.getParent(e),a=e;if(n!==-1&&r!==-1){this.m_random=f(this.m_random);let o;o=this.m_random>p()>>1?this.getNext(e):this.getPrev(e);let s=this.getParent(o)===e;this.m_treapData.swapField(e,o,0),this.m_treapData.swapField(e,o,1),this.m_treapData.swapField(e,o,2),i===-1?this.setRoot_(o,t):this.getLeft(i)===e?this.setLeft_(i,o):this.setRight_(i,o),s?(n===o?(this.setLeft_(o,e),this.setParent_(r,o)):r===o&&(this.setRight_(o,e),this.setParent_(n,o)),this.setParent_(e,o),i=o):(this.setParent_(n,o),this.setParent_(r,o),i=this.getParent(e),a=o),n=this.getLeft(e),r=this.getRight(e),n!==-1&&this.setParent_(n,e),r!==-1&&this.setParent_(r,e)}let o=n===-1?r:n;i===-1?this.setRoot_(o,t):this.getLeft(i)===a?this.setLeft_(i,o):this.setRight_(i,o),o!==-1&&this.setParent_(o,i),this.freeNode_(e,t)}deleteNode_(e,t){this.setPriority_(e,p());let n=H.st_nullNode(),r=H.st_nullNode(),i=this.getRoot_(t),a=i===e;if(a&&(n=this.getLeft(i),r=this.getRight(i),n===H.st_nullNode()&&r===H.st_nullNode())){this.removeFromList_(i,t),this.freeNode_(i,t),this.setRoot_(H.st_nullNode(),t);return}this.bubbleDown_(e);let o=this.getParent(e);o!==H.st_nullNode()&&(this.getLeft(o)===e?this.setLeft_(o,H.st_nullNode()):this.setRight_(o,H.st_nullNode())),this.removeFromList_(e,t),this.freeNode_(e,t),a&&this.setRoot_(n===H.st_nullNode()||this.getParent(n)!==H.st_nullNode()?r:n,t)}setElement_(e,t){this.m_treapData.setField(e,3,t)}addBiggestElement_(e,t){if(this.getRoot_(t)===H.st_nullNode()){this.setRoot_(e,t),this.addToList_(-1,e,t);return}let n=this.getLast_(t);this.setRight_(n,e),this.setParent_(e,n),this.bubbleUp_(e),this.getParent(e)===H.st_nullNode()&&this.setRoot_(e,t),this.addToList_(-1,e,t)}}class U{m_listNodes;m_lists;m_listOfLists;m_bStoreListIndexWithNode;constructor(e){this.m_lists=new B(6),this.m_listOfLists=U.st_nullNode(),e===void 0?(this.m_listNodes=new B(3),this.m_bStoreListIndexWithNode=!1):(this.m_listNodes=new B(e?4:3),this.m_bStoreListIndexWithNode=e)}freeNode_(e){this.m_listNodes.deleteElement(e)}newNode_(){return this.m_listNodes.newElement()}freeList_(e){h(0)}newList_(){return this.m_lists.newElement()}setPrev_(e,t){this.m_listNodes.setField(e,1,t)}setNext_(e,t){this.m_listNodes.setField(e,2,t)}setData_(e,t){h(0)}setList_(e,t){return this.m_listNodes.setField(e,3,t)}setListSize_(e,t){this.m_lists.setField(e,4,t)}setNextList_(e,t){h(0)}setPrevList_(e,t){this.m_lists.setField(e,2,t)}createList(e){let t=this.newList_();return this.m_lists.setField(t,3,this.m_listOfLists),this.m_lists.setField(t,4,0),this.m_lists.setField(t,5,e),this.m_listOfLists!==U.st_nullNode()&&this.setPrevList_(this.m_listOfLists,t),this.m_listOfLists=t,t}deleteList(e){this.clear(e);let t=this.m_lists.getField(e,2),n=this.m_lists.getField(e,3);return t===U.st_nullNode()?this.m_listOfLists=n:this.setNextList_(t,n),n!==U.st_nullNode()&&this.setPrevList_(n,t),this.freeList_(e),n}reserveLists(e){h(0)}getListData(e){return this.m_lists.getField(e,5)}getList(e){return h(0),0}setListData(e,t){this.m_lists.setField(e,5,t)}addElement(e,t){return this.insertElement(e,-1,t)}insertElement(e,t,n){let r=this.newNode_(),i=-1;if(t!==U.st_nullNode()&&(i=this.getPrev(t),this.setPrev_(t,r)),this.setNext_(r,t),i!==U.st_nullNode()&&this.setNext_(i,r),t===this.m_lists.getField(e,0)&&this.m_lists.setField(e,0,r),t===U.st_nullNode()){let t=this.m_lists.getField(e,1);this.setPrev_(r,t),t!==-1&&this.setNext_(t,r),this.m_lists.setField(e,1,r)}return this.setData(r,n),this.setListSize_(e,this.getListSize(e)+1),this.m_bStoreListIndexWithNode&&this.setList_(r,e),r}deleteElement(e,t){let n=this.getPrev(t),r=this.getNext(t);return n===U.st_nullNode()?this.m_lists.setField(e,0,r):this.setNext_(n,r),r===U.st_nullNode()?this.m_lists.setField(e,1,n):this.setPrev_(r,n),this.freeNode_(t),this.setListSize_(e,this.getListSize(e)-1),r}reserveNodes(e){this.m_listNodes.setCapacity(e)}getData(e){return this.m_listNodes.getField(e,0)}getElement(e){return this.getData(e)}setData(e,t){this.m_listNodes.setField(e,0,t)}getNext(e){return this.m_listNodes.getField(e,2)}getPrev(e){return this.m_listNodes.getField(e,1)}getFirst(e){return this.m_lists.getField(e,0)}getLast(e){return this.m_lists.getField(e,1)}static st_nullNode(){return-1}clear(e){if(e!==void 0){let t=this.getLast(e);for(;t!==U.st_nullNode();){let e=t;t=this.getPrev(e),this.freeNode_(e)}this.m_lists.setField(e,0,-1),this.m_lists.setField(e,1,-1),this.setListSize_(e,0);return}for(let e=this.getFirstList();e!==-1;)e=this.deleteList(e)}isEmpty(e){return h(0),!1}getNodeCount(){return this.m_listNodes.size()}getListCount(){return this.m_lists.size()}getListSize(e){return this.m_lists.getField(e,4)}getFirstList(){return this.m_listOfLists}getNextList(e){return this.m_lists.getField(e,3)}}class De extends Ee{m_intervalTree;constructor(e){super(),this.m_intervalTree=e}compare(e,t,n){let r=e.getElement(n),i=this.m_intervalTree.getValue_(t),a=this.m_intervalTree.getValue_(r);return i<a?-1:i===a?W.isLeft_(t)&&W.isRight_(r)?-1:W.isLeft_(r)&&W.isRight_(t)?1:0:1}}class W{m_bEnvelopesRef=!1;m_bOfflineDynamic;m_intervals=[];m_envelopesRef=null;m_tertiaryNodes;m_intervalNodes=new B(3);m_intervalHandles=[];m_secondaryLists;m_secondaryTreaps;m_endIndicesUnique=[];m_cCount=-1;m_root=-1;m_bSortIntervals=!1;m_bConstructing=!1;m_bConstructionEnded=!1;constructor(e){this.m_bOfflineDynamic=e,this.m_tertiaryNodes=new B(this.m_bOfflineDynamic?5:4),this.m_secondaryTreaps=new H,this.m_secondaryTreaps.setComparator(new De(this)),this.m_secondaryLists=new U}addEnvelopesRef(e){this.reset_(!0,!0),this.m_bEnvelopesRef=!0,this.m_envelopesRef=e,this.m_bConstructing=!1,this.m_bConstructionEnded=!0,this.m_bOfflineDynamic||(this.insertIntervalsStatic_(),this.m_cCount=this.m_envelopesRef.length)}startConstruction(){this.reset_(!0,!1)}addInterval(e){this.m_bConstructing||x(``),this.m_intervals.push(e.clone())}addIntervalCoords(e,t){h(0)}endConstruction(){this.m_bConstructing||x(``),this.m_bConstructing=!1,this.m_bConstructionEnded=!0,this.m_bOfflineDynamic||(this.insertIntervalsStatic_(),this.m_cCount=this.m_intervals.length)}insert(e){if((!this.m_bOfflineDynamic||!this.m_bConstructionEnded)&&x(``),this.m_root===-1){let e=this.m_bEnvelopesRef?this.m_envelopesRef.length:this.m_intervals.length;if(this.m_bSortIntervals){let t=new L(0);this.querySortedEndPointIndices_(t),this.m_endIndicesUnique.length=0,this.querySortedDuplicatesRemoved_(t),this.m_intervalHandles.length=e,this.m_intervalHandles.fill(-1),this.m_bSortIntervals=!1}else this.m_intervalHandles.fill(-1,0,e);this.m_root=this.createRoot_()}let t=this.insertIntervalEnd_(e<<1,this.m_root),n=this.getSecondaryFromInterval_(t),r=this.m_secondaryTreaps.addElement((e<<1)+1,n);this.setRightEnd_(t,r),this.m_intervalHandles[e]=t,this.m_cCount++}remove(e){(!this.m_bOfflineDynamic||!this.m_bConstructionEnded)&&x(``);let t=this.m_intervalHandles[e];t===-1&&g(`the interval does not exist in the interval tree`),this.m_intervalHandles[e]=-1,this.m_cCount--;let n,r=this.getSecondaryFromInterval_(t),i=-1;i=this.m_secondaryTreaps.getTreapData(r),this.m_secondaryTreaps.deleteNode(this.getLeftEnd_(t),r),this.m_secondaryTreaps.deleteNode(this.getRightEnd_(t),r),n=this.m_secondaryTreaps.size(r),n===0&&(this.m_secondaryTreaps.deleteTreap(r),this.setSecondaryToTertiary_(i,-1)),this.m_intervalNodes.deleteElement(t);let a=this.getPptr_(i),o=this.getLptr_(i),s=this.getRptr_(i);for(;!(n>0||i===this.m_root||o!==-1&&s!==-1);)i===this.getLptr_(a)?o===-1?s===-1?(this.setLptr_(a,-1),this.setPptr_(i,-1)):(this.setLptr_(a,s),this.setPptr_(s,a),this.setRptr_(i,-1),this.setPptr_(i,-1)):(this.setLptr_(a,o),this.setPptr_(o,a),this.setLptr_(i,-1),this.setPptr_(i,-1)):o===-1?s===-1?(this.setRptr_(a,-1),this.setPptr_(i,-1)):(this.setRptr_(a,s),this.setPptr_(s,a),this.setRptr_(i,-1),this.setPptr_(i,-1)):(this.setRptr_(a,o),this.setPptr_(o,a),this.setLptr_(i,-1),this.setPptr_(i,-1)),this.m_tertiaryNodes.deleteElement(i),i=a,r=this.getSecondaryFromTertiary_(i),n=r===-1?0:this.m_secondaryTreaps.size(r),o=this.getLptr_(i),s=this.getRptr_(i),a=this.getPptr_(i)}size(){return this.m_cCount}getIteratorQuery(e,t){return e instanceof a?new Oe(this,e,t):(h(0),{})}getIterator(){return new Oe(this)}querySortedEndPointIndices_(e){let t=this.m_bEnvelopesRef?this.m_envelopesRef.length:this.m_intervals.length;for(let n=0;n<2*t;n++)e.add(n);this.sortEndIndices_(e,0,2*t)}querySortedDuplicatesRemoved_(e){let t=NaN;for(let n=0;n<e.size();n++){let r=e.read(n),i=this.getValue_(r);i!==t&&(this.m_endIndicesUnique.push(r),t=i)}}insertIntervalsStatic_(){let e=this.m_bEnvelopesRef?this.m_envelopesRef.length:this.m_intervals.length,n=new L(0);this.querySortedEndPointIndices_(n),this.m_endIndicesUnique.length=0,this.querySortedDuplicatesRemoved_(n),this.m_intervalNodes.setCapacity(e),this.m_secondaryLists.reserveNodes(2*e);let r=t(e,-1);this.m_root=this.createRoot_();for(let e=0;e<n.size();e++){let t=n.read(e),i=r[t>>1];if(i!==-1){let e=this.getSecondaryFromInterval_(i);this.setRightEnd_(i,this.m_secondaryLists.addElement(e,t))}else i=this.insertIntervalEnd_(t,this.m_root),r[t>>1]=i}}createRoot_(){let e=this.calculateDiscriminantIndex1_(0,this.m_endIndicesUnique.length-1);return this.createTertiaryNode_(e)}insertIntervalEnd_(e,t){let n=-1,r=t,i=-1,a=-1,o=0,s=this.m_endIndicesUnique.length-1,c=0,l=e>>1,u=NaN,d=NaN,f=!0,p=this.getMin_(l),m=this.getMax_(l),h=-1;for(;f;){c=o+(s-o>>1),h=this.calculateDiscriminantIndex1_(o,s);let t=this.getDiscriminantFromIndex1_(h);if(m<t){if(r!==-1){if(h===this.getDiscriminantIndex1_(r))n=r,u=t,r=this.getLptr_(r),d=r===-1?NaN:this.getDiscriminant_(r);else if(d>t){let e=this.createTertiaryNode_(h);t<u?this.setLptr_(n,e):this.setRptr_(n,e),this.setRptr_(e,r),this.m_bOfflineDynamic&&(this.setPptr_(e,n),this.setPptr_(r,e)),n=e,u=t,r=-1,d=NaN}}s=c;continue}if(p>t){if(r!==-1){if(h===this.getDiscriminantIndex1_(r))n=r,u=t,r=this.getRptr_(r),d=r===-1?NaN:this.getDiscriminant_(r);else if(d<t){let e=this.createTertiaryNode_(h);t<u?this.setLptr_(n,e):this.setRptr_(n,e),this.setLptr_(e,r),this.m_bOfflineDynamic&&(this.setPptr_(e,n),this.setPptr_(r,e)),n=e,u=t,r=-1,d=NaN}}o=c+1;continue}let l=-1;l=r===-1||h!==this.getDiscriminantIndex1_(r)?this.createTertiaryNode_(h):r,i=this.getSecondaryFromTertiary_(l),i===-1&&(i=this.createSecondary_(l),this.setSecondaryToTertiary_(l,i));let g=this.addEndIndex_(i,e);a=this.createIntervalNode_(),this.setSecondaryToInterval_(a,i),this.setLeftEnd_(a,g),(r===-1||h!==this.getDiscriminantIndex1_(r))&&(t<u?this.setLptr_(n,l):this.setRptr_(n,l),this.m_bOfflineDynamic&&this.setPptr_(l,n),r!==-1&&(d<t?this.setLptr_(l,r):this.setRptr_(l,r),this.m_bOfflineDynamic&&this.setPptr_(r,l))),f=!1;break}return a}createTertiaryNode_(e){let t=this.m_tertiaryNodes.newElement();return this.setDiscriminantIndex1_(t,e),t}createSecondary_(e){return this.m_bOfflineDynamic?this.m_secondaryTreaps.createTreap(e):this.m_secondaryLists.createList(e)}createIntervalNode_(){return this.m_intervalNodes.newElement()}reset(){(!this.m_bOfflineDynamic||!this.m_bConstructionEnded)&&x(``),this.reset_(!1,this.m_bEnvelopesRef)}reset_(e,t){e?(this.m_bEnvelopesRef=!1,this.m_envelopesRef=null,this.m_bSortIntervals=!0,this.m_bConstructing=!0,this.m_bConstructionEnded=!1,this.m_endIndicesUnique.length=0,t?(this.m_intervals.length=0,this.m_bEnvelopesRef=!0):this.m_intervals.length=0):this.m_bSortIntervals=!1,this.m_bOfflineDynamic?this.m_secondaryTreaps.clear():this.m_secondaryLists.clear(),this.m_intervalNodes.deleteAll(!1),this.m_tertiaryNodes.deleteAll(!1),this.m_root=-1,this.m_cCount=0}getDiscriminant_(e){let t=this.getDiscriminantIndex1_(e);return this.getDiscriminantFromIndex1_(t)}getDiscriminantFromIndex1_(e){if(e===-1)return NaN;if(e>0){let t=e-2,n=this.m_endIndicesUnique[t],r=this.m_endIndicesUnique[t+1];return .5*(this.getValue_(n)+this.getValue_(r))}let t=-e-2,n=this.m_endIndicesUnique[t];return this.getValue_(n)}calculateDiscriminantIndex1_(e,t){let n;return n=e<t?e+(t-e>>1)+2:-(e+2),n}setDiscriminantIndex1_(e,t){this.m_tertiaryNodes.setField(e,0,t)}setSecondaryToTertiary_(e,t){this.m_tertiaryNodes.setField(e,1,t)}setLptr_(e,t){this.m_tertiaryNodes.setField(e,2,t)}setRptr_(e,t){this.m_tertiaryNodes.setField(e,3,t)}setPptr_(e,t){this.m_tertiaryNodes.setField(e,4,t)}setSecondaryToInterval_(e,t){this.m_intervalNodes.setField(e,0,t)}addEndIndex_(e,t){let n=-1;return n=this.m_bOfflineDynamic?this.m_secondaryTreaps.addElement(t,e):this.m_secondaryLists.addElement(e,t),n}setLeftEnd_(e,t){this.m_intervalNodes.setField(e,1,t)}setRightEnd_(e,t){this.m_intervalNodes.setField(e,2,t)}getFirst_(e){return this.m_bOfflineDynamic?this.m_secondaryTreaps.getFirst(e):this.m_secondaryLists.getFirst(e)}getLast_(e){return this.m_bOfflineDynamic?this.m_secondaryTreaps.getLast(e):this.m_secondaryLists.getLast(e)}static isLeft_(e){return!(e&1)}static isRight_(e){return(e&1)==1}getDiscriminantIndex1_(e){return this.m_tertiaryNodes.getField(e,0)}getSecondaryFromTertiary_(e){return this.m_tertiaryNodes.getField(e,1)}getLptr_(e){return this.m_tertiaryNodes.getField(e,2)}getRptr_(e){return this.m_tertiaryNodes.getField(e,3)}getPptr_(e){return this.m_tertiaryNodes.getField(e,4)}getSecondaryFromInterval_(e){return this.m_intervalNodes.getField(e,0)}getLeftEnd_(e){return this.m_intervalNodes.getField(e,1)}getRightEnd_(e){return this.m_intervalNodes.getField(e,2)}getMin_(e){return this.m_bEnvelopesRef?this.m_envelopesRef[e].xmin:this.m_intervals[e].vmin}getMax_(e){return this.m_bEnvelopesRef?this.m_envelopesRef[e].xmax:this.m_intervals[e].vmax}sortEndIndices_(e,t,n){let r=this;new z().sort(e,t,n,{userSort(e,t,n){r.sortEndIndicesHelper_(n,e,t)},getValue(e){return r.getValue_(e)}})}sortEndIndicesHelper_(e,t,n){e.sort(t,n,(e,t)=>{let n=this.getValue_(e),r=this.getValue_(t);return n<r||n===r&&W.isLeft_(e)&&W.isRight_(t)?-1:1})}getValue_(e){if(!this.m_bEnvelopesRef){let t=this.m_intervals[e>>1];return W.isLeft_(e)?t.vmin:t.vmax}let t=this.m_envelopesRef[e>>1];return W.isLeft_(e)?t.xmin:t.xmax}}class Oe{m_intervalTree;m_query=a.constructEmpty();m_tertiaryHandle=-1;m_nextTertiaryHandle=-1;m_forkedHandle=-1;m_currentEndHandle=-1;m_nextEndHandle=-1;m_tertiaryStack=[];m_functionIndex=0;m_functionStack;m_fi;constructor(e,t,n){this.m_intervalTree=e,this.m_functionStack=[,,],this.m_functionStack[0]=this.nullFunc_,this.m_functionStack[1]=this.nullFunc_,t!==void 0&&this.resetIterator(t,n)}nullFunc_(){return b(`should not be called`),!1}resetIterator(e,t){if(typeof e==`number`){let n=new a;n.setCoords(e,e),this.resetIterator(n,t)}else t===void 0&&(t=0),this.m_query.vmin=e.vmin-t,this.m_query.vmax=e.vmax+t,this.m_tertiaryStack.length=0,this.m_functionIndex=0,this.m_functionStack[0]=this.initialize_}next(){if(this.m_intervalTree.m_bConstructionEnded||x(``),this.m_functionIndex<0)return-1;for(;this.m_fi=this.m_functionStack[this.m_functionIndex],this.m_fi(););return this.m_currentEndHandle===-1?-1:this.getCurrentEndIndex_()>>1}initialize_(){return this.m_tertiaryHandle=-1,this.m_nextTertiaryHandle=-1,this.m_forkedHandle=-1,this.m_currentEndHandle=-1,this.m_intervalTree.m_tertiaryNodes.size()>0?(this.m_functionStack[0]=this.pIn_,this.m_nextTertiaryHandle=this.m_intervalTree.m_root,!0):(this.m_functionIndex=-1,!1)}pIn_(){if(this.m_tertiaryHandle=this.m_nextTertiaryHandle,this.m_tertiaryHandle===-1)return this.m_functionIndex=-1,this.m_currentEndHandle=-1,!1;let e=this.m_intervalTree.getDiscriminant_(this.m_tertiaryHandle);if(this.m_query.vmax<e){let e=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);return this.m_nextTertiaryHandle=this.m_intervalTree.getLptr_(this.m_tertiaryHandle),e!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getFirst_(e),this.m_functionStack[++this.m_functionIndex]=this.left_),!0}if(e<this.m_query.vmin){let e=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);return this.m_nextTertiaryHandle=this.m_intervalTree.getRptr_(this.m_tertiaryHandle),e!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getLast_(e),this.m_functionStack[++this.m_functionIndex]=this.right_),!0}this.m_functionStack[this.m_functionIndex]=this.pL_,this.m_forkedHandle=this.m_tertiaryHandle;let t=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);return this.m_nextTertiaryHandle=this.m_intervalTree.getLptr_(this.m_tertiaryHandle),t!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getFirst_(t),this.m_functionStack[++this.m_functionIndex]=this.all_),!0}pL_(){if(this.m_tertiaryHandle=this.m_nextTertiaryHandle,this.m_tertiaryHandle===-1)return this.m_functionStack[this.m_functionIndex]=this.pR_,this.m_nextTertiaryHandle=this.m_intervalTree.getRptr_(this.m_forkedHandle),!0;if(this.m_intervalTree.getDiscriminant_(this.m_tertiaryHandle)<this.m_query.vmin){let e=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);return this.m_nextTertiaryHandle=this.m_intervalTree.getRptr_(this.m_tertiaryHandle),e!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getLast_(e),this.m_functionStack[++this.m_functionIndex]=this.right_),!0}let e=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);this.m_nextTertiaryHandle=this.m_intervalTree.getLptr_(this.m_tertiaryHandle),e!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getFirst_(e),this.m_functionStack[++this.m_functionIndex]=this.all_);let t=this.m_intervalTree.getRptr_(this.m_tertiaryHandle);return t!==-1&&this.m_tertiaryStack.push(t),!0}pR_(){if(this.m_tertiaryHandle=this.m_nextTertiaryHandle,this.m_tertiaryHandle===-1)return this.m_functionStack[this.m_functionIndex]=this.pT_,!0;let e=this.m_intervalTree.getDiscriminant_(this.m_tertiaryHandle);if(this.m_query.vmax<e){let e=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);return this.m_nextTertiaryHandle=this.m_intervalTree.getLptr_(this.m_tertiaryHandle),e!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getFirst_(e),this.m_functionStack[++this.m_functionIndex]=this.left_),!0}let t=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);this.m_nextTertiaryHandle=this.m_intervalTree.getRptr_(this.m_tertiaryHandle),t!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getFirst_(t),this.m_functionStack[++this.m_functionIndex]=this.all_);let n=this.m_intervalTree.getLptr_(this.m_tertiaryHandle);return n!==-1&&this.m_tertiaryStack.push(n),!0}pT_(){if(this.m_tertiaryStack.length===0)return this.m_functionIndex=-1,this.m_currentEndHandle=-1,!1;this.m_tertiaryHandle=this.m_tertiaryStack.at(-1),this.m_tertiaryStack.pop();let e=this.m_intervalTree.getSecondaryFromTertiary_(this.m_tertiaryHandle);return e!==-1&&(this.m_nextEndHandle=this.m_intervalTree.getFirst_(e),this.m_functionStack[++this.m_functionIndex]=this.all_),this.m_intervalTree.getLptr_(this.m_tertiaryHandle)!==-1&&this.m_tertiaryStack.push(this.m_intervalTree.getLptr_(this.m_tertiaryHandle)),this.m_intervalTree.getRptr_(this.m_tertiaryHandle)!==-1&&this.m_tertiaryStack.push(this.m_intervalTree.getRptr_(this.m_tertiaryHandle)),!0}left_(){return this.m_currentEndHandle=this.m_nextEndHandle,this.m_currentEndHandle!==-1&&W.isLeft_(this.getCurrentEndIndex_())&&this.m_intervalTree.getValue_(this.getCurrentEndIndex_())<=this.m_query.vmax?(this.m_nextEndHandle=this.getNext_(),!1):(this.m_functionIndex--,!0)}right_(){return this.m_currentEndHandle=this.m_nextEndHandle,this.m_currentEndHandle!==-1&&W.isRight_(this.getCurrentEndIndex_())&&this.m_intervalTree.getValue_(this.getCurrentEndIndex_())>=this.m_query.vmin?(this.m_nextEndHandle=this.getPrev_(),!1):(this.m_functionIndex--,!0)}all_(){return this.m_currentEndHandle=this.m_nextEndHandle,this.m_currentEndHandle!==-1&&W.isLeft_(this.getCurrentEndIndex_())?(this.m_nextEndHandle=this.getNext_(),!1):(this.m_functionIndex--,!0)}getNext_(){return this.m_intervalTree.m_bOfflineDynamic?this.m_intervalTree.m_secondaryTreaps.getNext(this.m_currentEndHandle):this.m_intervalTree.m_secondaryLists.getNext(this.m_currentEndHandle)}getPrev_(){return this.m_intervalTree.m_bOfflineDynamic?this.m_intervalTree.m_secondaryTreaps.getPrev(this.m_currentEndHandle):this.m_intervalTree.m_secondaryLists.getPrev(this.m_currentEndHandle)}getCurrentEndIndex_(){return this.m_intervalTree.m_bOfflineDynamic?this.m_intervalTree.m_secondaryTreaps.getElement(this.m_currentEndHandle):this.m_intervalTree.m_secondaryLists.getData(this.m_currentEndHandle)}}class G{m_tolerance=0;m_sweepIndexRed=-1;m_sweepIndexBlue=-1;m_envelopeHandleA=-1;m_envelopeHandleB=-1;m_intervalTreeRed=null;m_intervalTreeBlue=null;m_iteratorRed=null;m_iteratorBlue=null;m_envelopesRed=[];m_envelopesBlue=[];m_elementsRed=[];m_elementsBlue=[];m_sortedEndIndicesRed=new L(0);m_sortedEndIndicesBlue=new L(0);m_queuedListRed=-1;m_queuedListBlue=-1;m_queuedEnvelopes=new U;m_queuedIndicesRed=[];m_queuedIndicesBlue=[];m_bAddRed=!1;m_bAddBlue=!1;m_bAddRedRed=!1;m_bDone=!0;m_function;constructor(){this.m_function=this.nullFunc_,this.reset_()}startConstruction(){this.reset_(),this.m_bAddRedRed=!0,this.m_elementsRed.length=0,this.m_envelopesRed.length=0}addEnvelope(e,t){this.m_bAddRedRed||x(``),this.m_elementsRed.push(e),this.m_envelopesRed.push(new S(t))}endConstruction(){this.m_bAddRedRed||x(``),this.m_bAddRedRed=!1,this.m_envelopesRed.length>0&&(this.m_function=this.initialize_,this.m_bDone=!1)}startRedConstruction(){this.reset_(),this.m_bAddRed=!0,this.m_elementsRed.length=0,this.m_envelopesRed.length=0}addRedEnvelope(e,t){this.m_bAddRed||x(``),this.m_elementsRed.push(e),this.m_envelopesRed.push(t.clone())}endRedConstruction(){this.m_bAddRed||x(``),this.m_bAddRed=!1,this.m_envelopesRed.length>0&&this.m_envelopesBlue.length>0&&(this.m_function===this.nullFunc_||this.m_function===this.initializeBlue_?this.m_function=this.initializeRedBlue_:this.m_function!==this.initializeRedBlue_&&(this.m_function=this.initializeRed_),this.m_bDone=!1)}startBlueConstruction(){this.reset_(),this.m_bAddBlue=!0,this.m_elementsBlue.length=0,this.m_envelopesBlue.length=0}addBlueEnvelope(e,t){this.m_bAddBlue||x(``),this.m_elementsBlue.push(e),this.m_envelopesBlue.push(t.clone())}endBlueConstruction(){this.m_bAddBlue||x(``),this.m_bAddBlue=!1,this.m_envelopesRed.length>0&&this.m_envelopesBlue.length>0&&(this.m_function===this.nullFunc_||this.m_function===this.initializeRed_?this.m_function=this.initializeRedBlue_:this.m_function!==this.initializeRedBlue_&&(this.m_function=this.initializeBlue_),this.m_bDone=!1)}next(){if(this.m_bDone)return!1;for(;this.m_function(););return!this.m_bDone}getHandleA(){return this.m_envelopeHandleA}getHandleB(){return this.m_envelopeHandleB}setTolerance(e){this.m_tolerance=e}getElement(e){return this.m_elementsRed[e]}getRedEnvelope(e){return this.m_envelopesRed[e]}getBlueEnvelope(e){return this.m_envelopesBlue[e]}getRedElement(e){return this.m_elementsRed[e]}getBlueElement(e){return this.m_elementsBlue[e]}isTop_(e){return(e&1)==1}isBottom_(e){return!(e&1)}reset_(){this.m_bAddRed=!1,this.m_bAddBlue=!1,this.m_bAddRedRed=!1,this.m_sweepIndexRed=-1,this.m_sweepIndexBlue=-1,this.m_queuedListRed=-1,this.m_queuedListBlue=-1,this.m_bDone=!0}initialize_(){if(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_envelopesRed.length<10)return this.m_sweepIndexRed=this.m_envelopesRed.length,this.m_function=this.sweepBruteForce_,!0;this.m_intervalTreeRed||=new W(!0),this.m_intervalTreeRed.addEnvelopesRef(this.m_envelopesRed),this.m_iteratorRed===null&&(this.m_iteratorRed=this.m_intervalTreeRed.getIterator()),this.m_sortedEndIndicesRed.resize(0);for(let e=0;e<2*this.m_envelopesRed.length;e++)this.m_sortedEndIndicesRed.add(e);return this.sortYEndIndices_(this.m_sortedEndIndicesRed,0,2*this.m_envelopesRed.length,!0),this.m_sweepIndexRed=2*this.m_envelopesRed.length,this.m_function=this.sweep_,!0}initializeRed_(){if(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_envelopesRed.length<10||this.m_envelopesBlue.length<10)return this.m_sweepIndexRed=this.m_envelopesRed.length,this.m_function=this.sweepRedBlueBruteForce_,!0;this.m_intervalTreeRed||=new W(!0),this.m_intervalTreeRed.addEnvelopesRef(this.m_envelopesRed),this.m_iteratorRed===null&&(this.m_iteratorRed=this.m_intervalTreeRed.getIterator()),this.m_sortedEndIndicesRed.resize(0);for(let e=0;e<2*this.m_envelopesRed.length;e++)this.m_sortedEndIndicesRed.add(e);return this.sortYEndIndices_(this.m_sortedEndIndicesRed,0,this.m_sortedEndIndicesRed.size(),!0),this.m_sweepIndexRed=this.m_sortedEndIndicesRed.size(),this.m_queuedListRed!==-1&&(this.m_queuedEnvelopes.deleteList(this.m_queuedListRed),this.m_queuedIndicesRed.length=0,this.m_queuedListRed=-1),this.m_function=this.sweepRedBlue_,this.resetBlue_()}initializeBlue_(){if(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_envelopesRed.length<10||this.m_envelopesBlue.length<10)return this.m_sweepIndexRed=this.m_envelopesRed.length,this.m_function=this.sweepRedBlueBruteForce_,!0;this.m_intervalTreeBlue||=new W(!0),this.m_intervalTreeBlue.addEnvelopesRef(this.m_envelopesBlue),this.m_iteratorBlue??=this.m_intervalTreeBlue.getIterator(),this.m_sortedEndIndicesBlue.resize(0);for(let e=0;e<2*this.m_envelopesBlue.length;e++)this.m_sortedEndIndicesBlue.add(e);return this.sortYEndIndices_(this.m_sortedEndIndicesBlue,0,this.m_sortedEndIndicesBlue.size(),!1),this.m_sweepIndexBlue=this.m_sortedEndIndicesBlue.size(),this.m_queuedListBlue!==-1&&(this.m_queuedEnvelopes.deleteList(this.m_queuedListBlue),this.m_queuedIndicesBlue.length=0,this.m_queuedListBlue=-1),this.m_function=this.sweepRedBlue_,this.resetRed_()}initializeRedBlue_(){if(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_envelopesRed.length<10||this.m_envelopesBlue.length<10)return this.m_sweepIndexRed=this.m_envelopesRed.length,this.m_function=this.sweepRedBlueBruteForce_,!0;this.m_intervalTreeRed||=new W(!0),this.m_intervalTreeBlue||=new W(!0),this.m_intervalTreeRed.addEnvelopesRef(this.m_envelopesRed),this.m_intervalTreeBlue.addEnvelopesRef(this.m_envelopesBlue),this.m_iteratorRed===null&&(this.m_iteratorRed=this.m_intervalTreeRed.getIterator()),this.m_iteratorBlue===null&&(this.m_iteratorBlue=this.m_intervalTreeBlue.getIterator()),this.m_sortedEndIndicesRed.resize(0),this.m_sortedEndIndicesBlue.resize(0);for(let e=0;e<2*this.m_envelopesRed.length;e++)this.m_sortedEndIndicesRed.add(e);for(let e=0;e<2*this.m_envelopesBlue.length;e++)this.m_sortedEndIndicesBlue.add(e);return this.sortYEndIndices_(this.m_sortedEndIndicesRed,0,this.m_sortedEndIndicesRed.size(),!0),this.sortYEndIndices_(this.m_sortedEndIndicesBlue,0,this.m_sortedEndIndicesBlue.size(),!1),this.m_sweepIndexRed=this.m_sortedEndIndicesRed.size(),this.m_sweepIndexBlue=this.m_sortedEndIndicesBlue.size(),this.m_queuedListRed!==-1&&(this.m_queuedEnvelopes.deleteList(this.m_queuedListRed),this.m_queuedIndicesRed.length=0,this.m_queuedListRed=-1),this.m_queuedListBlue!==-1&&(this.m_queuedEnvelopes.deleteList(this.m_queuedListBlue),this.m_queuedIndicesBlue.length=0,this.m_queuedListBlue=-1),this.m_function=this.sweepRedBlue_,!0}sweep_(){let e=this.m_sortedEndIndicesRed.read(--this.m_sweepIndexRed),t=e>>1;if(this.isBottom_(e))return this.m_intervalTreeRed.remove(t),this.m_sweepIndexRed!==0||(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_bDone=!0,!1);let n=a.construct(this.m_envelopesRed[t].xmin,this.m_envelopesRed[t].xmax);return this.m_iteratorRed.resetIterator(n,this.m_tolerance),this.m_envelopeHandleA=t,this.m_function=this.iterate_,!0}sweepBruteForce_(){return--this.m_sweepIndexRed===-1?(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_bDone=!0,!1):(this.m_envelopeHandleA=this.m_sweepIndexRed,this.m_sweepIndexBlue=this.m_sweepIndexRed,this.m_function=this.iterateBruteForce_,!0)}sweepRedBlueBruteForce_(){return--this.m_sweepIndexRed===-1?(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_bDone=!0,!1):(this.m_envelopeHandleA=this.m_sweepIndexRed,this.m_sweepIndexBlue=this.m_envelopesBlue.length,this.m_function=this.iterateRedBlueBruteForce_,!0)}sweepRedBlue_(){let e=this.m_sortedEndIndicesRed.read(this.m_sweepIndexRed-1),t=this.m_sortedEndIndicesBlue.read(this.m_sweepIndexBlue-1),n=this.getAdjustedValue_(e,!0),r=this.getAdjustedValue_(t,!1);return n>r?this.sweepRed_():n<r?this.sweepBlue_():this.isTop_(e)?this.sweepRed_():this.isTop_(t)?this.sweepBlue_():this.sweepRed_()}sweepRed_(){let e=this.m_sortedEndIndicesRed.read(--this.m_sweepIndexRed),t=e>>1;if(this.isBottom_(e))return this.m_queuedListRed!==-1&&this.m_queuedIndicesRed[t]!==-1?(this.m_queuedEnvelopes.deleteElement(this.m_queuedListRed,this.m_queuedIndicesRed[t]),this.m_queuedIndicesRed[t]=-1):this.m_intervalTreeRed.remove(t),this.m_sweepIndexRed!==0||(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_bDone=!0,!1);if(this.m_queuedListBlue!==-1&&this.m_queuedEnvelopes.getListSize(this.m_queuedListBlue)>0){let e=this.m_queuedEnvelopes.getFirst(this.m_queuedListBlue);for(;e!==-1;){let t=this.m_queuedEnvelopes.getData(e);this.m_intervalTreeBlue.insert(t),this.m_queuedIndicesBlue[t]=-1;let n=this.m_queuedEnvelopes.getNext(e);this.m_queuedEnvelopes.deleteElement(this.m_queuedListBlue,e),e=n}}if(this.m_intervalTreeBlue.size()>0){let e=a.construct(this.m_envelopesRed[t].xmin,this.m_envelopesRed[t].xmax);this.m_iteratorBlue.resetIterator(e,this.m_tolerance),this.m_envelopeHandleA=t,this.m_function=this.iterateBlue_}else this.m_queuedListRed===-1&&(m(this.m_queuedIndicesRed,this.m_envelopesRed.length,-1),this.m_queuedListRed=this.m_queuedEnvelopes.createList(1)),this.m_queuedIndicesRed[t]=this.m_queuedEnvelopes.addElement(this.m_queuedListRed,t),this.m_function=this.sweepRedBlue_;return!0}sweepBlue_(){let e=this.m_sortedEndIndicesBlue.read(--this.m_sweepIndexBlue),t=e>>1;if(this.isBottom_(e))return this.m_queuedListBlue!==-1&&this.m_queuedIndicesBlue[t]!==-1?(this.m_queuedEnvelopes.deleteElement(this.m_queuedListBlue,this.m_queuedIndicesBlue[t]),this.m_queuedIndicesBlue[t]=-1):this.m_intervalTreeBlue.remove(t),this.m_sweepIndexBlue!==0||(this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1,this.m_bDone=!0,!1);if(this.m_queuedListRed!==-1&&this.m_queuedEnvelopes.getListSize(this.m_queuedListRed)>0){let e=this.m_queuedEnvelopes.getFirst(this.m_queuedListRed);for(;e!==-1;){let t=this.m_queuedEnvelopes.getData(e);this.m_intervalTreeRed.insert(t),this.m_queuedIndicesRed[t]=-1;let n=this.m_queuedEnvelopes.getNext(e);this.m_queuedEnvelopes.deleteElement(this.m_queuedListRed,e),e=n}}if(this.m_intervalTreeRed.size()>0){let e=a.construct(this.m_envelopesBlue[t].xmin,this.m_envelopesBlue[t].xmax);this.m_iteratorRed.resetIterator(e,this.m_tolerance),this.m_envelopeHandleB=t,this.m_function=this.iterateRed_}else this.m_queuedListBlue===-1&&(m(this.m_queuedIndicesBlue,this.m_envelopesBlue.length,-1),this.m_queuedListBlue=this.m_queuedEnvelopes.createList(0)),this.m_queuedIndicesBlue[t]=this.m_queuedEnvelopes.addElement(this.m_queuedListBlue,t),this.m_function=this.sweepRedBlue_;return!0}iterate_(){if(this.m_envelopeHandleB=this.m_iteratorRed.next(),this.m_envelopeHandleB!==-1)return!1;let e=this.m_sortedEndIndicesRed.read(this.m_sweepIndexRed)>>1;return this.m_intervalTreeRed.insert(e),this.m_function=this.sweep_,!0}iterateRed_(){if(this.m_envelopeHandleA=this.m_iteratorRed.next(),this.m_envelopeHandleA!==-1)return!1;this.m_envelopeHandleA=-1,this.m_envelopeHandleB=-1;let e=this.m_sortedEndIndicesBlue.read(this.m_sweepIndexBlue)>>1;return this.m_intervalTreeBlue.insert(e),this.m_function=this.sweepRedBlue_,!0}iterateBlue_(){if(this.m_envelopeHandleB=this.m_iteratorBlue.next(),this.m_envelopeHandleB!==-1)return!1;let e=this.m_sortedEndIndicesRed.read(this.m_sweepIndexRed)>>1;return this.m_intervalTreeRed.insert(e),this.m_function=this.sweepRedBlue_,!0}iterateBruteForce_(){if(--this.m_sweepIndexBlue===-1)return this.m_function=this.sweepBruteForce_,!0;let e=this.m_envelopesRed[this.m_sweepIndexRed].clone(),t=this.m_envelopesRed[this.m_sweepIndexBlue];return e.inflateCoords(this.m_tolerance,this.m_tolerance),!e.isIntersecting(t)||(this.m_envelopeHandleB=this.m_sweepIndexBlue,!1)}iterateRedBlueBruteForce_(){if(--this.m_sweepIndexBlue===-1)return this.m_function=this.sweepRedBlueBruteForce_,!0;let e=this.m_envelopesRed[this.m_sweepIndexRed].clone(),t=this.m_envelopesBlue[this.m_sweepIndexBlue];return e.inflateCoords(this.m_tolerance,this.m_tolerance),!e.isIntersecting(t)||(this.m_envelopeHandleB=this.m_sweepIndexBlue,!1)}resetRed_(){return this.m_sweepIndexRed=this.m_sortedEndIndicesRed.size(),this.m_intervalTreeRed.size()>0&&this.m_intervalTreeRed.reset(),this.m_queuedListRed!==-1&&(this.m_queuedEnvelopes.deleteList(this.m_queuedListRed),this.m_queuedIndicesRed.length=0,this.m_queuedListRed=-1),this.m_bDone=!1,!0}resetBlue_(){return this.m_sweepIndexBlue=this.m_sortedEndIndicesBlue.size(),this.m_intervalTreeBlue.size()>0&&this.m_intervalTreeBlue.reset(),this.m_queuedListBlue!==-1&&(this.m_queuedEnvelopes.deleteList(this.m_queuedListBlue),this.m_queuedIndicesBlue.length=0,this.m_queuedListBlue=-1),this.m_bDone=!1,!0}nullFunc_(){return b(`should not be called`),!1}sortYEndIndices_(e,t,n,r){let i=this;new z().sort(e,t,n,{userSort(e,t,n){i.sortYEndIndicesHelper_(n,e,t,r)},getValue(e){return i.getAdjustedValue_(e,r)}})}sortYEndIndicesHelper_(e,t,n,r){e.sort(t,n,(e,t)=>{let n=this.getAdjustedValue_(e,r),i=this.getAdjustedValue_(t,r);return n<i||n===i&&this.isBottom_(e)&&this.isTop_(t)?-1:1})}getAdjustedValue_(e,t){let n=.5*this.m_tolerance;if(t){let t=this.m_envelopesRed[e>>1];return this.isBottom_(e)?t.ymin-n:t.ymax+n}let r=this.m_envelopesBlue[e>>1];return this.isBottom_(e)?r.ymin-n:r.ymax+n}}var ke=w;class K{tolerance;resolution;constructor(e,t){this.tolerance=e===void 0?NaN:e,this.resolution=t===void 0?NaN:t}add(e){return new K(this.tolerance+e,this.resolution)}scale(e){return new K(this.tolerance*e,this.resolution*e)}total(){return this.tolerance+this.resolution}}function Ae(e,t,r,i,a){let o=i*i,s=e.sub(t),c=r.sub(t),l=s.sqrLength(),u=c.sqrLength();if(l<=o||u<=o)return!0;let d=n(s.crossProduct(c));return d<=o*l||d<=o*u?s.dotProduct(c)>=0:!1}function je(e,t,n){return r=>n===0?(r+e)*t:(r-e*t)*1/t}function Me(e,t){let n=new S;return e.queryLooseEnvelope(n),n.mergeEnvelope2D(t),n}function Ne(e,t){let n=S.constructEmpty();e.queryLooseEnvelope(n);let r=S.constructEmpty();return t.queryLooseEnvelope(r),n.mergeEnvelope2D(r),n}function Pe(e,t){return(Number.isFinite(e)||Number.isNaN(e))&&(Number.isFinite(t)||Number.isNaN(t))}function Fe(e,t){return Number.isFinite(e)&&Number.isFinite(t)}function Ie(e,t,n){let r=S.constructEmpty();return r.setFromPoints(e,t),q(0,null,r.calculateToleranceFromEnvelope(),n,!1)}function Le(e,t,n){return q(0,e,t.calculateToleranceFromEnvelope(),n,!1)}function Re(e,t,n){return q(1,e,t.calculateToleranceFromEnvelope(),n,!1)}function ze(e,t,n){return Re(e,t.queryInterval(1,0),n)}function Be(e,t,n){let r=S.constructEmpty();return t.queryEnvelope(r),Le(e,r,n)}function Ve(e,t,n=!1){return q(0,e,t.calculateToleranceFromEnvelope(),n,!0).total()}function He(e,t,n){let r=S.constructEmpty();return t.queryEnvelope(r),Ve(e,r,n)}function q(e,t,n,r,i){let a=new K(0,0);return t!==null&&(a.tolerance=t.getTolerance(e),(!i||r)&&t!==null&&(a.resolution=t.getResolution(e),r&&(a.resolution*=2))),r&&(n*=4,a.tolerance*=1.01,a.resolution*=1.01),a.total()<n?new K(n,0):a}function Ue(e){return Math.sqrt(2)*(2*e.tolerance+e.resolution)}function We(e){return Math.sqrt(2)*(e.tolerance+e.resolution)}function Ge(e){return e>=3}function Ke(e,t){return e.getImpl().getIsSimple(t,[0])>=3}function qe(e,t){e.getImpl().setIsSimple(3,t)}function Je(e,t,i,a){if(n(t.x-e.x)+n(t.y-e.y)<=i*i){let n=e.z,i=t.z;return r(n,i,a)}return!1}function Ye(e){return e>=4}function Xe(e,t){return e===v.enumPolygon?Ge(t):t>=1}function Ze(e,t,n){let r=S.constructEmpty(),i=S.constructEmpty();e.queryLooseEnvelope(r),t.queryLooseEnvelope(i),r.inflateCoords(n,n),i.inflateCoords(n,n);let a=S.constructEmpty();a.setCoords({env2D:r}),a.intersect(i);let o=e.querySegmentIterator(),s=t.querySegmentIterator(),c=S.constructEmpty(),l=S.constructEmpty(),u=new G;u.setTolerance(n);let d=!1;for(u.startRedConstruction();o.nextPath();)for(;o.hasNextSegment();)o.nextSegment().queryLooseEnvelope(c),c.isIntersecting(a)&&(d=!0,u.addRedEnvelope(o.getStartPointIndex(),c));if(u.endRedConstruction(),!d)return null;let f=!1;for(u.startBlueConstruction();s.nextPath();)for(;s.hasNextSegment();)s.nextSegment().queryLooseEnvelope(l),l.isIntersecting(a)&&(f=!0,u.addBlueEnvelope(s.getStartPointIndex(),l));return u.endBlueConstruction(),f?u:null}function Qe(e,t,n,r,i){e.getGeometryType(),t.getGeometryType();let a=S.constructEmpty(),o=S.constructEmpty();e.queryLooseEnvelope(a),t.queryLooseEnvelope(o),a.inflateCoords(n,n),o.inflateCoords(n,n);let s=S.constructEmpty();s.setCoords({env2D:a}),s.intersect(o);let c=new G;c.setTolerance(n);let l=!1;c.startRedConstruction();for(let t=0,n=e.getPathCount();t<n;t++)e.queryLoosePathEnvelope(t,a),a.isIntersecting(s)&&(l=!0,c.addRedEnvelope(t,a));if(c.endRedConstruction(),!l)return null;let u=!1;c.startBlueConstruction();for(let e=0,n=t.getPathCount();e<n;e++)t.queryLoosePathEnvelope(e,o),o.isIntersecting(s)&&(u=!0,c.addBlueEnvelope(e,o));return c.endBlueConstruction(),u?c:null}function $e(e,t,n){let r=S.constructEmpty(),i=S.constructEmpty();e.queryLooseEnvelope(r),t.queryEnvelope(i),r.inflateCoords(n,n),i.inflateCoords(n,n);let a=S.constructEmpty();a.setCoords({env2D:r}),a.intersect(i);let o=e.querySegmentIterator(),s=new G;s.setTolerance(n);let c=!1;for(s.startRedConstruction();o.nextPath();)for(;o.hasNextSegment();)o.nextSegment().queryLooseEnvelope(r),r.isIntersecting(a)&&(c=!0,s.addRedEnvelope(o.getStartPointIndex(),r));if(s.endRedConstruction(),!c)return null;let l=!1;s.startBlueConstruction();for(let e=0,n=t.getPointCount();e<n;e++){let n=t.getXY(e);a.contains(n)&&(l=!0,s.addBlueEnvelope(e,S.construct(n.x,n.y,n.x,n.y)))}return s.endBlueConstruction(),l?s:null}function et(e,t,n){let r=S.constructEmpty(),i=S.constructEmpty();e.queryEnvelope(r),t.queryEnvelope(i),r.inflateCoords(n,n),i.inflateCoords(n,n);let a=S.constructEmpty();a.setCoords({env2D:r}),a.intersect(i);let o=new G;o.setTolerance(n);let c=!1;o.startRedConstruction();let l=new s;for(let t=0,n=e.getPointCount();t<n;t++)e.queryXY(t,l),a.contains(l)&&(c=!0,o.addRedEnvelope(t,S.construct(l.x,l.y,l.x,l.y)));if(o.endRedConstruction(),!c)return null;let u=!1;o.startBlueConstruction();let d=new s;for(let e=0,n=t.getPointCount();e<n;e++)t.queryXY(e,d),a.contains(d)&&(u=!0,o.addBlueEnvelope(e,S.construct(d.x,d.y,d.x,d.y)));return o.endBlueConstruction(),u?o:null}function tt(e){let t=new S;return e.queryLooseEnvelope(t),t.inflateCoords(1,1),nt(e,t)}function nt(e,t,n){let r=new S;if(e.queryLooseEnvelope(r),r.isEmpty())return null;e.getGeometryType();let i=new V(r,8),a=-1,o=new S,s=!1;do for(let n=0,c=e.getPathCount();n<c;n++)if(e.queryLoosePathEnvelope(n,o),o.isIntersecting(t)){if(a=i.insertEx(n,o,a),a===-1){s&&b(`build_quad_tree_for_paths`),r.assign(e.calculateEnvelope2D(!1)),s=!0,i.reset(r,8);break}s=!1}while(s);return i}function rt(e,t){if(!t){let t=new S;e.queryLooseEnvelope(t);let n=new V(t,8),r=-1,i=new S,a=e.querySegmentIterator(),o=!1;for(;a.nextPath();)for(;a.hasNextSegment();){let s=a.nextSegment(),c=a.getStartPointIndex();if(s.queryLooseEnvelope(i),r=n.insertEx(c,i,r),r===-1){o&&b(``),t.assign(e.calculateEnvelope2D(!1)),o=!0,n.reset(t,8),a.resetToFirstPath();break}}return n}let n=new S;e.queryLooseEnvelope(n);let r=new V(n,8),i=-1,a=new S,o=e.querySegmentIterator(),s=!1;for(;o.nextPath();)for(;o.hasNextSegment();){let c=o.nextSegment(),l=o.getStartPointIndex();if(c.queryLooseEnvelope(a),a.isIntersecting(t)&&(i=r.insertEx(l,a,i),i===-1)){s&&b(``),n.assign(e.calculateEnvelope2D(!1)),s=!0,r.reset(n,8),o.resetToFirstPath();break}}return r}function it(e,t){if(t){let n=new V(t,8),r=new s,i=new S,a=!1;for(let o=0;o<e.getPointCount();o++)if(r.setCoordsPoint2D(e.getXY(o)),t.contains(r)&&(i.setCoords({pt:r}),n.insert(o,i)===-1)){a&&b(``),a=!0,n.reset(e.calculateEnvelope2D(),8),o=-1;continue}return n}return y(`no-extent version not yet impl`),null}function at(e,t,n,r,i){let a=!1,o=i.vmin,s=i.vmax;for(let i=n;i<t;i+=r){let t=e.read(i);t<o?(a=!0,e.write(i,o)):t>s&&(a=!0,e.write(i,s))}return a}function ot(e,t,n,r){if(!e.hasAttribute(n))return!1;let i=e.getGeometryType();if(i===v.enumGeometryCollection){let i=e,a=i.getGeometryCount(),o=0;for(let e=0;e<a;++e){let a=i.getGeometry(e);o|=+!!ot(a,t,n,r)}return!!o}if(te(i)){let i=e,a=ke.getPersistence(n),o=ke.getComponentCount(n),s=i.getPointCount();if(a===1){let e=at(i.getAttributeStreamRef(n),s*o,r,o,t);return e&&i.notifyModified(),e}if(a===2){let e=at(i.getAttributeStreamRef(n),s*o,r,o,t);return e&&i.notifyModified(),e}b(`snap_coordinate not implemented`)}if(i===v.enumEnvelope){let i=e,a=i.queryInterval(n,r),o=!1;return a.vmin<t.vmin&&(o=!0,a.vmin=t.vmin),a.vmax>t.vmax&&(o=!0,a.vmax=t.vmax),o&&i.setIntervalEnvelope(n,r,a),o}if(i===v.enumPoint){let i=e,a=i.getAttributeAsDbl(n,r),o=!1;return a<t.vmin&&(o=!0,a=t.vmin),a>t.vmax&&(o=!0,a=t.vmax),o&&i.setAttributeBasic(n,r,a),o}if(ne(i)){let i=e,a=i.getStartAttributeAsDbl(n,r),o=!1;return a<t.vmin&&(o=!0,a=t.vmin),a>t.vmax&&(o=!0,a=t.vmax),o&&i.setStartAttribute(n,r,a),a=i.getEndAttributeAsDbl(n,r),a<t.vmin&&(o=!0,a=t.vmin),a>t.vmax&&(o=!0,a=t.vmax),o&&i.setEndAttribute(n,r,a),o}b(`snap_coordinate not implemented`)}var J=w;class Y{static type=v.enumPoint;m_description=null;x=NaN;y=NaN;m_attribs=null;constructor(e){if(!e){this.m_description=N();return}if(e.copy){e.copy.copyTo(this);return}if(e.move){this.m_description=e.move.m_description,e.move.m_description=null,this.m_attribs=e.move.m_attribs,e.move.m_attribs=null,this.x=e.move.x,this.y=e.move.y;return}if(e.vd){this.m_description=e.vd,e.attribBuffer?(this.m_attribs=e.attribBuffer,e.initDefaultValues&&this.setDefaultAttributeValues()):this.ensureAttributes();return}if(e.pt){this.m_description=N(),this.setXY(e.pt);return}`x`in e&&(`z`in e?(this.m_description=le(),this.ensureAttributes(),this.setXYZ(new T(e.x,e.y,e.z))):(this.m_description=N(),this.setXYCoords(e.x,e.y)))}assignCopy(e){return this.m_attribs=null,e.copyTo(this),this}assignMove(e){return this.m_attribs=null,e.copyTo(this),e.setEmpty(),this}getXY(){return new s(this.x,this.y)}queryXY(e){e.x=this.x,e.y=this.y}setXY(e){this.x=e.x,this.y=e.y}setXYCoords(e,t){this.x=e,this.y=t}getXYZ(){let e=new T;return e.x=this.x,e.y=this.y,e.z=this.getZ(),e}setXYZ(e){this.addAttribute(1),this.x=e.x,this.y=e.y,this.m_attribs[0]=e.z}getX(){return this.x}setX(e){this.x=e}getY(){return this.y}setY(e){this.y=e}getZ(){return this.m_description.hasZ()?this.m_attribs[0]:J.getDefaultValue(1)}setZ(e){this.addAttribute(1),this.m_attribs[0]=e}getM(){return this.getAttributeAsDbl(2,0)}setM(e){this.addAttribute(2),this.m_description.hasZ()?this.m_attribs[1]=e:this.m_attribs[0]=e}getID(){return this.getAttributeAsInt(3,0)}setID(e){this.setAttributeBasic(3,0,e)}isEqualXY(e,t){return t===void 0&&(t=0),Math.abs(e.x-this.x)<=t&&Math.abs(e.y-this.y)<=t}isEqualXYCoords(e,t,n){return n===void 0&&(n=0),Math.abs(e-this.x)<=n&&Math.abs(t-this.y)<=n}getAttributeAsDbl(e,t){if(e===0){if(t===0)return this.x;if(t===1)return this.y;_(``)}let n=J.getComponentCount(e);(t<0||t>=n)&&_(``);let r=this.m_description.getAttributeIndex(e);return r>=0?this.m_attribs[this.m_description.getPointAttributeOffset(r)-2+t]:J.getDefaultValue(e)}getAttributeAsInt(e,t){return Math.trunc(this.getAttributeAsDbl(e,t))}setAttributeBasic(e,t,n){if(e===0){t===0?this.x=n:t===1?this.y=n:_(``);return}let r=J.getComponentCount(e);(t<0||t>=r)&&_(``);let i=this.m_description.getAttributeIndex(e);i<0&&(this.addAttribute(e),i=this.m_description.getAttributeIndex(e)),this.m_attribs[this.m_description.getPointAttributeOffset(i)-2+t]=n}copyAttributesFrom(e,t){if(this===e)return;let n=e.getDescription(),r=t&&n.hasZ()?2:1;for(let t=r,i=n.getAttributeCount();t<i;++t){let r=n.getSemantics(t),i=J.getComponentCount(r);for(let t=0;t<i;++t){let n=e.getAttributeAsDbl(r,t);this.setAttributeBasic(r,t,n)}}}getAttributeArray(){return this.m_attribs}getDescription(){return this.m_description}assignVertexDescription(e){this.m_description!==e&&this.assignVertexDescriptionImpl(e)}mergeVertexDescription(e){this.m_description!==e&&(this.m_description.hasAttributesFrom(e)||this.mergeVertexDescriptionImpl(e))}hasAttribute(e){return this.m_description.hasAttribute(e)}addAttribute(e){if(this.m_description.hasAttribute(e))return;let t=j(this.m_description,e);this.assignVertexDescription(t)}dropAttribute(e){if(!this.m_description.hasAttribute(e))return;let t=M(this.m_description,e);this.assignVertexDescription(t)}dropAllAttributes(){let e=N();e!==this.m_description&&this.assignVertexDescription(e)}getGeometryType(){return v.enumPoint}getDimension(){return 0}queryEnvelope(e){if(e instanceof $){e.setEmpty(),e.assignVertexDescription(this.m_description),e.merge(this);return}if(e instanceof de){if(this.isEmpty()){e.setEmpty();return}let t=this.getXYZ();e.xmin=t.x,e.ymin=t.y,e.zmin=t.z,e.xmax=t.x,e.ymax=t.y,e.zmax=t.z;return}if(this.isEmpty()){e.setEmpty();return}e.xmin=this.x,e.ymin=this.y,e.xmax=this.x,e.ymax=this.y}queryLooseEnvelope(e){this.queryEnvelope(e)}queryInterval(e,t){let n=new a;if(this.isEmpty())return n.setEmpty(),n;let r=this.getAttributeAsDbl(e,t);return n.vmin=r,n.vmax=r,n}applyTransformation(e){if(!this.isEmpty()){if(e.m_TransformationType===1){let t=this.getXY();e.transformInPlace(t),this.setXY(t);return}y(`3d not impl`)}}transformAttribute(e,t,n,r,i){if(this.isEmpty())return;this.addAttribute(e);let a=this.getAttributeAsDbl(e,t),o=je(n,r,i);this.setAttributeBasic(e,t,o(a))}createInstance(){return new Y({vd:this.m_description})}copyTo(e){if(this===e)return;e.getGeometryType()!==v.enumPoint&&g();let t=e;t.x=this.x,t.y=this.y,this.m_attribs?(t.assignVertexDescription(this.m_description),t.m_attribs=this.m_attribs.slice()):(t.releaseAttributes(),t.assignVertexDescription(this.m_description))}isEmpty(){return Number.isNaN(this.x)||Number.isNaN(this.y)}setEmpty(){this.m_description||(this.m_description=N(),this.releaseAttributes()),this.x=NaN,this.y=NaN,this.m_attribs&&l(this.m_attribs,this.m_description.getDefaultPointAttributes(),0,2,this.m_description.getTotalComponentCount()-2)}calculateArea2D(){return 0}calculateLength2D(){return 0}calculateLength3D(e){return 0}equals(e,t){if(e===this)return!0;if(e.getGeometryType()!==v.enumPoint)return!1;let n=e;if(this.m_description!==n.m_description||this.isEmpty()!==n.isEmpty())return!1;if(this.isEmpty())return!0;if(t===void 0&&(t=0),Math.abs(this.x-n.x)>t||Math.abs(this.y-n.y)>t)return!1;for(let e=0,i=this.m_description.getTotalComponentCount()-2;e<i;e++)if(!r(this.m_attribs[e],n.m_attribs[e],t))return!1;return!0}getBoundary(){return null}clone(){let e=new Y({vd:this.m_description});return this.copyTo(e),e}swap(e){if(this===e)return;e.getGeometryType()!==v.enumPoint&&g(`wrong geometry type`);let t=e;t.m_description=o(this.m_description,this.m_description=t.m_description),t.x=o(this.x,this.x=t.x),t.y=o(this.y,this.y=t.y),t.m_attribs=o(this.m_attribs,this.m_attribs=t.m_attribs)}replaceNaNs(e,t){if(this.addAttribute(e),this.isEmpty())return;let n=J.getComponentCount(e);for(let r=0;r<n;r++){let n=this.getAttributeAsDbl(e,r);Number.isNaN(n)&&this.setAttributeBasic(e,r,t)}}lerp(e,t,n){if(e.getDescription()!==t.getDescription()&&g(`Point.lerp`),this.assignVertexDescription(e.getDescription()),e.isEmpty()||t.isEmpty())return this.setEmpty(),this;this.ensureAttributes();let r=C();e.queryValues(r,r.length);let i=C();t.queryValues(i,i.length);let a=C(),o=r,s=i,c=a,l=0;for(let e=0,t=this.m_description.getAttributeCount();e<t;e++){let t=this.m_description.getSemantics(e),r=J.getInterpolation(t),i=J.getComponentCount(t),a=J.getDefaultValue(t);u(r,o,s,c,l,i,n,a),o=o.slice(i),s=s.slice(i),l+=i}return this.setValues(a,l),this}static lerp(e,t,n,r){r.lerp(e,t,n)}setDefaultAttributeValues(){let e=this.m_description.getTotalComponentCount()-2;e>0&&(this.m_attribs?l(this.m_attribs,this.m_description.getDefaultPointAttributes(),0,2,e):this.m_attribs=this.m_description.getDefaultPointAttributes().slice(2))}static sqrDistance2D(e,t){return s.sqrDistanceCoords(e.x,e.y,t.x,t.y)}getImpl(){return this}mergeVertexDescriptionImpl(e){let t=A(this.getDescription(),e);this.assignVertexDescription(t)}releaseAttributes(){this.m_attribs=null}assignVertexDescriptionImpl(e){this.m_description||=N();let t=D();ue(e,this.m_description,t);let n=null;e.getTotalComponentCount()-2>0&&(n=e.getDefaultPointAttributes().slice(2));for(let r=1,i=e.getAttributeCount();r<i;r++){let i=t[r];if(i!==-1){let t=this.m_description.getPointAttributeOffset(i)-2,a=e.getPointAttributeOffset(r)-2,o=J.getComponentCount(e.getSemantics(r));for(let e=0;e<o;e++)n[a+e]=this.m_attribs[t+e]}}this.m_attribs=n,this.m_description=e}ensureAttributes(){this.m_description.getTotalComponentCount()-2>0&&this.m_attribs===null&&(this.m_attribs=this.m_description.getDefaultPointAttributes().slice(2))}queryValues(e,t){let n=this.m_description.getTotalComponentCount();h(n<=t),e[0]=this.x,e[1]=this.y,l(e,this.m_attribs,2,0,n-2)}copyCommonAttributesTo(e){e.x=this.x,e.y=this.y;let t=e.getDescription();if(t===this.m_description)this.m_attribs&&l(e.m_attribs,this.m_attribs,0,0,this.m_description.getTotalComponentCount()-2);else{let n=0;for(let r=1,i=t.getAttributeCount();r<i;r++){let i=t.getSemantics(r),a=J.getComponentCount(i);if(this.m_description.hasAttribute(i)){let t=this.m_description.getPointAttributeOffset(this.m_description.getAttributeIndex(i))-2;for(;a!==0;)e.m_attribs[n++]=this.m_attribs[t++],a--}else{let t=J.getDefaultValue(i);for(;a!==0;)e.m_attribs[n++]=t,a--}}}}setValues(e,t){let n=this.m_description.getTotalComponentCount();h(n<=t),this.x=e[0],this.y=e[1],l(this.m_attribs,e,0,2,n-2)}dbgDefaultAttribs(){}toFlatGeometry(){let e=Float64Array.of(this.getX(),this.getY(),this.getZ(),this.getM());return{type:`point`,vertexCount:1,vertexXY:e.subarray(0,2),vertexZ:this.hasAttribute(1)?e.subarray(2,3):void 0,vertexM:this.hasAttribute(2)?e.subarray(3,4):void 0,...Se}}}var X=w;function Z(e,t){return t*(e.getTotalComponentCount()-2)}class Q{m_envelope2D;m_attributes;constructor(e){if(this.m_attributes=null,!e)this.m_envelope2D=S.constructEmpty();else if(e.xmin!==void 0)this.m_envelope2D=new S(e.xmin,e.ymin,e.xmax,e.ymax);else if(e.env2D!==void 0)this.m_envelope2D=new S(e.env2D);else if(e.move)this.m_envelope2D=new S(e.move.m_envelope2D),this.m_attributes=e.move.m_attributes,e.move.m_attributes=null;else if(e.moveEnv){let t=e.moveEnv.accessEnvelopeData();this.m_envelope2D=new S(t.m_envelope2D),this.m_attributes=t.m_attributes,t.m_attributes=null}else throw Error(`unrecognized EnvelopeData constructor options`)}ensureAttributes(e){let n=e.getTotalComponentCount()-2;!this.m_attributes&&n&&(this.m_attributes=t(2*n,NaN),this.m_attributes.fill(NaN))}copyTo(e,n){let r=n,i=e.getTotalComponentCount()-2;if(r.m_description!==e&&(r.releaseAttributes_(),r.m_description=e,i&&(r.m_data.m_attributes=t(i*2,NaN))),i){h(this.m_attributes&&r.m_data.m_attributes);let e=2*i;l(r.m_data.m_attributes,this.m_attributes,0,0,e)}r.m_data.m_envelope2D=new S(this.m_envelope2D)}copyToIfNotNull(e,t){t.m_envelope2D=new S(this.m_envelope2D),t.releaseAttributes(),e.getTotalComponentCount()-2&&this.m_attributes&&(t.m_attributes=this.m_attributes.slice())}releaseAttributes(){this.m_attributes=null}isEmpty(){return this.m_envelope2D.isEmpty()}transformAttribute(e,t,n,r,i){h(0)}queryInterval(e,t,n,r){if(this.isEmpty()){r.setEmpty();return}if(t===0){n===0?this.m_envelope2D.queryIntervalX(r):n===1?this.m_envelope2D.queryIntervalY(r):_(``);return}let i=X.getComponentCount(t);(n<0||n>=i)&&_(``);let a=e.getAttributeIndex(t);if(a>=0){r.vmin=this.m_attributes[Z(e,0)+e.getPointAttributeOffset(a)-2+n],r.vmax=this.m_attributes[Z(e,1)+e.getPointAttributeOffset(a)-2+n];return}{let e=X.getDefaultValue(t);r.setCoords(e,e);return}}queryEnvelope3D(e,t){let n=new a;this.queryInterval(e,1,0,n),t.setCoords(this.m_envelope2D.xmin,this.m_envelope2D.ymin,n.vmin,this.m_envelope2D.xmax,this.m_envelope2D.ymax,n.vmax)}setEmpty(e){this.m_envelope2D.setEmpty();let n=e.getTotalComponentCount()-2;n&&(this.m_attributes?this.dbgAssertSize(n):this.m_attributes=t(2*n,NaN),this.m_attributes.fill(NaN))}dbgAssertSize(e){}}let $=class e{static type=v.enumEnvelope;m_EnvelopeType=4;m_description;m_data;constructor(e){if(this.m_description=N(),e===void 0)this.m_data=new Q;else if(e.vd!==void 0)this.m_description=e.vd,this.m_data=new Q,this.ensureAttributes_();else if(e?.env2D)this.m_data=new Q({env2D:e.env2D});else if(e.xmin!==void 0)this.m_data=new Q({xmin:e.xmin,ymin:e.ymin,xmax:e.xmax,ymax:e.ymax});else if(e.copy)this.m_data=new Q,e.copy.copyTo(this);else if(e.move)this.m_description=e.move.m_description,e.move.m_description=null,this.m_data=new Q({move:e.move.m_data});else if(e.centerPoint)this.m_description=e.centerPoint.getDescription(),this.m_data=new Q,this.ensureAttributes_(),this.setFromPoint(e.centerPoint,e.width,e.height);else throw Error(`unrecognized Envelope constructor options`)}accessEnvelopeData(){return this.m_description=null,this.m_data}assignMove(e){return this===e?this:(this.m_description=e.m_description,e.m_description=null,this.m_data=new Q({move:e.m_data}),this)}assignCopy(e){return this===e||e.copyTo(this),this}transformAttribute(e,t,n,r,i){h(0)}setAttributeBasic(e,t,n){if(this.addAttribute(e),this.m_data.isEmpty())return;let r=this.queryInterval(e,t);r.vmin=n,r.vmax=n,this.setIntervalEnvelope(e,t,r)}mergeVertexDescriptionImpl(e){let t=A(this.getDescription(),e);this.assignVertexDescription(t)}asEnvelope2D(){return new S(this.m_data.m_envelope2D)}assignVertexDescription(e){this.m_description!==e&&this.assignVertexDescriptionImpl(e)}getGeometryType(){return v.enumEnvelope}getDimension(){return 2}getXMin(){return this.m_data.m_envelope2D.xmin}getYMin(){return this.m_data.m_envelope2D.ymin}getXMax(){return this.m_data.m_envelope2D.xmax}getYMax(){return this.m_data.m_envelope2D.ymax}width(){return this.m_data.isEmpty()?NaN:this.m_data.m_envelope2D.width()}height(){return this.m_data.isEmpty()?NaN:this.m_data.m_envelope2D.height()}getCenterXY(){return this.m_data.isEmpty()?new s:this.m_data.m_envelope2D.getCenter()}getCenter(e){if(e.assignVertexDescription(this.m_description),this.m_data.isEmpty()){e.setEmpty();return}let t=this.m_description.getAttributeCount();for(let n=1;n<t;n++){let t=this.m_description.getSemantics(n),r=X.getComponentCount(t);for(let n=0;n<r;n++){let r=.5*(this.getAttributeAsDblImpl(0,t,n)+this.getAttributeAsDblImpl(1,t,n));e.setAttributeBasic(t,n,r)}}e.setXY(this.m_data.m_envelope2D.getCenter())}setCoords(e,t,n,r){this.m_data.m_envelope2D.setCoords({xmin:e,ymin:t,xmax:n,ymax:r})}setEnvelope(e){if(e instanceof S)this.m_data.m_envelope2D=new S(e),this.m_data.m_envelope2D.normalize();else{this.addAttribute(1),this.m_data.m_envelope2D=e.getEnvelope2D(),this.m_data.m_envelope2D.normalize();let t=a.constructEmpty();t.setCoords(e.zmin,e.zmax),this.setInterval(1,0,t.vmin,t.vmax)}}merge(t){if(t instanceof S){t.isValid()||g(``),this.m_data.m_envelope2D.mergeEnvelope2D(t);return}if(t instanceof e){if(t.m_data.isEmpty())return;let e=t.getDescription();this.mergeVertexDescription(e),this.m_data.m_envelope2D.mergeEnvelope2D(t.m_data.m_envelope2D);for(let n=1,r=e.getAttributeCount();n<r;n++){let r=e.getSemantics(n),i=X.getComponentCount(r);for(let e=0;e<i;e++){let n=t.queryInterval(r,e),i=this.queryInterval(r,e);i.merge(n),this.setIntervalEnvelope(r,e,i)}}return}if(t instanceof Y){let e=t;if(e.isEmpty())return;let n=e.getDescription();if(this.mergeVertexDescription(n),this.m_data.isEmpty()){this.setFromPoint(e);return}this.m_data.m_envelope2D.merge(e.getXY());for(let t=1,r=n.getAttributeCount();t<r;t++){let r=n.getSemantics(t),i=X.getComponentCount(r);for(let t=0;t<i;t++){let n=e.getAttributeAsDbl(r,t),i=this.queryInterval(r,t);i.mergeCoordinate(n),this.setIntervalEnvelope(r,t,i)}}return}y(`unrecognized type for envelope.merge`)}intersect(e){if(!this.m_data.m_envelope2D.intersect(e.m_data.m_envelope2D))return this.setEmpty(),!1;let t=e.getDescription();this.mergeVertexDescription(t);for(let t=1,n=this.m_description.getAttributeCount();t<n;t++){let n=this.m_description.getSemantics(t),r=X.getComponentCount(n);for(let t=0;t<r;t++){let r=e.queryInterval(n,t),i=this.queryInterval(n,t);i.intersect(r),this.setIntervalEnvelope(n,t,i)}}return!0}intersectCommonAttributes(e){if(!this.m_data.m_envelope2D.intersect(e.m_data.m_envelope2D))return this.setEmpty(),!1;let t=e.getDescription();for(let n=1,r=this.m_description.getAttributeCount();n<r;n++){let r=this.m_description.getSemantics(n);if(!t.hasAttribute(r))continue;let i=X.getComponentCount(r);for(let t=0;t<i;t++){let n=e.queryInterval(r,t),i=this.queryInterval(r,t);i.intersect(n),this.setIntervalEnvelope(r,t,i)}}return!0}move(e,t){this.m_data.m_envelope2D.move(e,t)}centerAt(e,t){this.m_data.m_envelope2D.centerAtCoords(e,t)}centerAtPoint(e){this.m_data.m_envelope2D.centerAt(e)}reaspect(e,t){this.m_data.m_envelope2D.reaspect(e,t)}inflateCoords(e,t){this.m_data.m_envelope2D.inflateCoords(e,t)}containsCoords(e,t){return this.m_data.m_envelope2D.containsCoords(e,t)}contains(e){return this.m_data.m_envelope2D.contains(e)}containsPoint(e){return!e.isEmpty()&&this.m_data.m_envelope2D.contains(e.getXY())}containsEnvelope(e){return this.m_data.m_envelope2D.containsEnvelope(e.m_data.m_envelope2D)}setIntervalEnvelope(e,t,n){if(this.addAttribute(e),this.m_data.isEmpty())return;let r=new a(n);if(r.normalize(),e===0){if(r.isEmpty()){this.setEmpty();return}t===0?(this.m_data.m_envelope2D.xmin=r.vmin,this.m_data.m_envelope2D.xmax=r.vmax):t===1?(this.m_data.m_envelope2D.ymin=r.vmin,this.m_data.m_envelope2D.ymax=r.vmax):_(``)}else this.setAttributeAsDblImpl(0,e,t,r.vmin),this.setAttributeAsDblImpl(1,e,t,r.vmax)}setInterval(e,t,n,r){this.setIntervalEnvelope(e,t,new a(n,r))}queryInterval(e,t){let n=new a;return this.m_data.queryInterval(this.m_description,e,t,n),n}queryEnvelope(e){if(e.m_EnvelopeType===2){e.setCoords({env2D:this.m_data.m_envelope2D});return}if(e.m_EnvelopeType===3){this.m_data.queryEnvelope3D(this.m_description,e);return}if(e.m_EnvelopeType===4){this.copyTo(e);return}y(`unrecognized type for queryEnveloper`)}applyTransformation(e){if(e.m_TransformationType===1){e.transformEnvInPlace(this.m_data.m_envelope2D);return}h(0)}createInstance(){return new e({vd:this.m_description})}copyTo(e){e!==this&&this.m_data.copyTo(this.m_description,e)}isEmpty(){return this.m_data.isEmpty()}setEmpty(){this.m_description||=N(),this.m_data.setEmpty(this.m_description)}calculateArea2D(){return this.m_data.m_envelope2D.getArea()}calculateLength2D(){return this.m_data.m_envelope2D.getLength()}calculateLength3D(e){return h(0),0}equals(e,t){if(e===this)return!0;let n=e;if(this.m_description!==n.m_description||this.m_data.isEmpty()!==n.m_data.isEmpty())return!1;if(this.m_data.isEmpty())return!0;if(t===void 0&&(t=0),Math.abs(this.m_data.m_envelope2D.xmin-n.m_data.m_envelope2D.xmin)>t||Math.abs(this.m_data.m_envelope2D.ymin-n.m_data.m_envelope2D.ymin)>t||Math.abs(this.m_data.m_envelope2D.xmax-n.m_data.m_envelope2D.xmax)>t||Math.abs(this.m_data.m_envelope2D.ymax-n.m_data.m_envelope2D.ymax)>t)return!1;for(let e=0,i=(this.m_description.getTotalComponentCount()-2)*2;e<i;e++)if(!r(this.m_data.m_attributes[e],n.m_data.m_attributes[e],t))return!1;return!0}getBoundary(){return y(`getBoundary not available in this context. Use the boundary operator with an envelope parameter`),null}clone(){return new e({copy:this})}swap(e){if(this===e)return;e.getGeometryType()!==v.enumEnvelope&&g(`wrong geometry type`);let t=e;t.m_description=o(this.m_description,this.m_description=t.m_description),t.m_data.m_envelope2D=o(this.m_data.m_envelope2D,this.m_data.m_envelope2D=t.m_data.m_envelope2D),t.m_data.m_attributes=o(this.m_data.m_attributes,this.m_data.m_attributes=t.m_data.m_attributes)}queryCoordinates(e){this.m_data.isEmpty()&&g(``),this.m_data.m_envelope2D.queryCorners(e)}queryCornerByVal(e,t){(e<0||e>3)&&_(``),t.assignVertexDescription(this.m_description);let n=this.getDescription().getAttributeCount();for(let r=1;r<n;r++){let n=this.m_description.getSemantics(r),i=X.getComponentCount(n);for(let r=0;r<i;r++)t.setAttributeBasic(n,r,this.getAttributeAsDblImpl(e%2,n,r))}t.setXY(this.m_data.m_envelope2D.queryCorner(e))}queryCorner(e,t){t.assign(this.m_data.m_envelope2D.queryCorner(e))}getDescription(){return this.m_description}mergeVertexDescription(e){this.m_description!==e&&(this.m_description&&this.m_description.hasAttributesFrom(e)||this.mergeVertexDescriptionImpl(e))}hasAttribute(e){return this.m_description.hasAttribute(e)}addAttribute(e){if(this.m_description.hasAttribute(e))return;let t=j(this.m_description,e);this.assignVertexDescription(t)}dropAttribute(e){if(!this.m_description.hasAttribute(e))return;let t=M(this.m_description,e);this.assignVertexDescription(t)}dropAllAttributes(){let e=N();e!==this.m_description&&this.assignVertexDescription(e)}queryLooseEnvelope(e){this.queryEnvelope(e)}replaceNaNs(e,t){if(this.addAttribute(e),this.m_data.isEmpty())return;let n=X.getComponentCount(e);for(let r=0;r<n;r++){let n=this.queryInterval(e,r);n.isEmpty()&&(n.vmin=t,n.vmax=t,this.setIntervalEnvelope(e,r,n))}}getImpl(){return this}setFromPoint(e,t,n){this.m_data.m_envelope2D.setCoords({center:e.getXY(),width:t??0,height:n??0});let r=e.getDescription();for(let t=1,n=r.getAttributeCount();t<n;t++){let n=r.getSemantics(t),i=X.getComponentCount(n);for(let t=0;t<i;t++){let r=e.getAttributeAsDbl(n,t);this.setInterval(n,t,r,r)}}}assignVertexDescriptionImpl(e){let n=D();ue(e,this.m_description,n);let r=null,i=e.getTotalComponentCount()-2,a=this.m_description?this.m_description.getTotalComponentCount()-2:0;i>0&&(r=t(2*i,NaN));for(let t=1;t<e.getAttributeCount();t++){let o=n[t];if(o!==-1){let n=e.getPointAttributeOffset(t)-2,s=X.getComponentCount(e.getSemantics(t)),c=this.m_description.getPointAttributeOffset(o)-2;l(r,this.m_data.m_attributes,n,c,s),l(r,this.m_data.m_attributes,i+n,a+c,s)}}this.releaseAttributes_(),this.m_data.m_attributes=r,this.m_description=e}getAttributeAsDblImpl(e,t,n){if(this.m_data.isEmpty()&&ee(``),t===0)return e?n?this.m_data.m_envelope2D.ymax:this.m_data.m_envelope2D.xmax:n?this.m_data.m_envelope2D.ymin:this.m_data.m_envelope2D.xmin;n>=X.getComponentCount(t)&&_(``);let r=this.m_description.getAttributeIndex(t);return r>=0?this.m_data.m_attributes[Z(this.m_description,e)+this.m_description.getPointAttributeOffset(r)-2+n]:w.getDefaultValue(t)}setAttributeAsDblImpl(e,t,n,r){t===0&&(e?n===1?this.m_data.m_envelope2D.ymax=r:n===0?this.m_data.m_envelope2D.xmax=r:_(``):n===1?this.m_data.m_envelope2D.ymin=r:n===0?this.m_data.m_envelope2D.xmin=r:_(``));let i=X.getComponentCount(t);(n<0||n>=i)&&_(``),this.addAttribute(t);let a=this.m_description.getAttributeIndex(t);this.m_data.m_attributes[Z(this.m_description,e)+this.m_description.getPointAttributeOffset(a)-2+n]=r}releaseAttributes_(){this.m_data.releaseAttributes()}ensureAttributes_(){this.m_data.ensureAttributes(this.m_description)}};const st=Object.freeze(Object.defineProperty({__proto__:null,Envelope:$,EnvelopeData:Q},Symbol.toStringTag,{value:`Module`}));export{Se as $,R as A,z as B,K as C,G as D,$ as E,Ee as F,fe as G,Ae as H,U as I,ot as J,N as K,le as L,A as M,j as N,M as O,Y as P,D as Q,ue as R,B as S,H as T,Q as U,w as V,C as W,me as X,he as Y,ce as Z,je as _,L as a,ge as a0,_e as a1,ve as a2,tt as a3,Ie as a4,Pe as a5,Fe as a6,pe as a7,st as a8,I as b,Le as c,Ve as d,Be as e,Ue as f,Ne as g,Me as h,Ye as i,Ke as j,T as k,Xe as l,He as m,We as n,ze as o,Je as p,Ge as q,de as r,qe as s,Re as t,rt as u,it as v,Ze as w,$e as x,et as y,Qe as z};
|
package/chunks/Envelope2D.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{t as e,a as t}from"./Geometry.js";import{P as n,m as r,s as i,g as a}from"./Point2D.js";class o{m_EnvelopeType=2;xmin;ymin;xmax;ymax;static construct(e,t,n,r){return new o(e,t,n,r)}constructor(e,t,n,r){e===void 0?(this.xmin=NaN,this.ymin=NaN,this.xmax=NaN,this.ymax=NaN):typeof e==`number`?(this.xmin=e,this.ymin=t,this.xmax=n,this.ymax=r):(this.xmin=e.xmin,this.ymin=e.ymin,this.xmax=e.xmax,this.ymax=e.ymax),this.normalize()}static constructEmpty(){return new o(NaN,NaN,NaN,NaN)}clone(){return new o(this)}assign(e){return this.xmin=e.xmin,this.xmax=e.xmax,this.ymin=e.ymin,this.ymax=e.ymax,this}width(){return this.xmax-this.xmin}height(){return this.ymax-this.ymin}maxDimension(){return Math.max(this.width(),this.height())}minDimension(){return Math.min(this.width(),this.height())}sqrDiagonal(){let e=this.width(),t=this.height();return e*e+t*t}diagonal(){return Math.sqrt(this.sqrDiagonal())}getCenterX(){return .5*(this.xmin+this.xmax)}getCenterY(){return .5*(this.ymin+this.ymax)}getCenter(){return n.construct(this.getCenterX(),this.getCenterY())}queryCenter(e){e.x=.5*(this.xmin+this.xmax),e.y=.5*(this.ymin+this.ymax)}setEmpty(){this.xmin=NaN,this.ymin=NaN,this.xmax=NaN,this.ymax=NaN}setInfinite(){this.xmin=-1/0,this.xmax=1/0,this.ymin=-1/0,this.ymax=1/0}isDegenerate(e){return!this.isEmpty()&&(this.width()<=e||this.height()<=e)}isZero(){return!this.isEmpty()&&(!this.width()||!this.height())}isEmpty(){return Number.isNaN(this.xmin)||Number.isNaN(this.ymin)||Number.isNaN(this.xmax)||Number.isNaN(this.ymax)}mergeNeCoords(e,t){this.xmin>e?this.xmin=e:this.xmax<e&&(this.xmax=e),this.ymin>t?this.ymin=t:this.ymax<t&&(this.ymax=t)}mergeNe(e){this.mergeNeCoords(e.x,e.y)}mergeCoords(e,t){this.isEmpty()?(this.xmin=e,this.ymin=t,this.xmax=e,this.ymax=t):(this.xmin>e?this.xmin=e:this.xmax<e&&(this.xmax=e),this.ymin>t?this.ymin=t:this.ymax<t&&(this.ymax=t))}merge(e){this.mergeCoords(e.x,e.y)}mergeEnvelope2D(e){e.isEmpty()||(this.mergeCoords(e.xmin,e.ymin),this.mergeNeCoords(e.xmax,e.ymax))}mergePoints(e,t){for(let n=0;n<t;)if(this.isEmpty())this.setCoords(e[n]),n++;else{for(let r=n;r<t;r++)this.mergeNe(e[r]);break}}mergePointsInterleaved(e,t,n){for(let r=t*2,i=r+n*2;r<i;r+=2)this.mergeCoords(e.read(r),e.read(r+1))}inflateCoords(e,t){this.isEmpty()||(this.xmin-=e,this.xmax+=e,this.ymin-=t,this.ymax+=t,(this.xmin>this.xmax||this.ymin>this.ymax)&&this.setEmpty())}getInflatedCoords(e,t){let n=this.clone();return n.inflateCoords(e,t),n}inflate(e){this.inflateCoords(e,e)}getInflated(e){let t=this.clone();return t.inflateCoords(e,e),t}zoom(e,t){this.isEmpty()||this.setCoords({center:this.getCenter(),width:e*this.width(),height:t*this.height()})}scale(e){e<0&&this.setEmpty(),this.xmin*=e,this.xmax*=e,this.ymin*=e,this.ymax*=e}equals(e,t){return this.isEmpty()&&e.isEmpty()?!0:t?Math.abs(this.xmin-e.xmin)<=t&&Math.abs(this.ymin-e.ymin)<=t&&Math.abs(this.xmax-e.xmax)<=t&&Math.abs(this.ymax-e.ymax)<=t:this.xmin===e.xmin&&this.ymin===e.ymin&&this.xmax===e.xmax&&this.ymax===e.ymax}setCoords(t){t.xmin===void 0?t.x===void 0?t.pt1===void 0?t.env2D===void 0?t.pt===void 0?t.center===void 0?e(`unrecognized input type for setCoords`):(this.xmin=t.center.x-t.width*.5,this.xmax=this.xmin+t.width,this.ymin=t.center.y-t.height*.5,this.ymax=this.ymin+t.height,this.normalize()):(this.xmin=t.pt.x,this.xmax=t.pt.x,this.ymin=t.pt.y,this.ymax=t.pt.y):(this.xmin=t.env2D.xmin,this.xmax=t.env2D.xmax,this.ymin=t.env2D.ymin,this.ymax=t.env2D.ymax,this.normalize()):(this.xmin=t.pt1.x,this.ymin=t.pt1.y,this.xmax=t.pt2.x,this.ymax=t.pt2.y,this.normalize()):(this.xmin=t.x,this.xmax=t.x,this.ymin=t.y,this.ymax=t.y):(this.xmin=t.xmin,this.xmax=t.xmax,this.ymin=t.ymin,this.ymax=t.ymax),this.normalize()}queryIntervalX(e){this.isEmpty()?e.setEmpty():e.setCoords(this.xmin,this.xmax)}queryIntervalY(e){this.isEmpty()?e.setEmpty():e.setCoords(this.ymin,this.ymax)}setFromPoints(e,t){if(t===0){this.setEmpty();return}if(Array.isArray(e)){let n=e;this.setCoords(n[0]);for(let e=1;e<t;)if(this.isEmpty())this.setCoords(n[e]),e++;else{for(let r=e;r<t;r++)this.mergeNe(n[r]);return}return}let n=e;this.setCoords({x:n[0],y:n[1]});for(let e=1,r=t*2;e<r;e+=2)if(this.isEmpty())this.setCoords({x:n[e],y:n[e+1]}),e+=2;else{for(let r=e,i=t*2;r<i;r+=2)this.mergeNeCoords(n[r],n[r+1]);return}}normalize(){let e=!1;if(this.xmin<=this.xmax||([this.xmin,this.xmax]=[this.xmax,this.xmin],e=!0),this.ymin<=this.ymax||([this.ymin,this.ymax]=[this.ymax,this.ymin],e=!0),e&&!(this.xmin<=this.xmax&&this.ymin<=this.ymax)){this.setEmpty();return}}isValid(){return this.isEmpty()||this.xmin<=this.xmax&&this.ymin<=this.ymax}getLowerLeft(){return new n(this.xmin,this.ymin)}getLowerRight(){return new n(this.xmax,this.ymin)}getUpperLeft(){return new n(this.xmin,this.ymax)}getUpperRight(){return new n(this.xmax,this.ymax)}move(e,t){this.isEmpty()||(this.xmin+=e,this.ymin+=t,this.xmax+=e,this.ymax+=t)}centerAtCoords(e,t){this.move(e-this.getCenterX(),t-this.getCenterY())}centerAt(e){this.centerAtCoords(e.x,e.y)}containsCoords(e,t){return e>=this.xmin&&e<=this.xmax&&t>=this.ymin&&t<=this.ymax}contains(e){return this.containsCoords(e.x,e.y)}containsEnvelope(e){return e.xmin>=this.xmin&&e.xmax<=this.xmax&&e.ymin>=this.ymin&&e.ymax<=this.ymax}containsExclusiveCoords(e,t){return e>this.xmin&&e<this.xmax&&t>this.ymin&&t<this.ymax}containsExclusive(e){return this.containsExclusiveCoords(e.x,e.y)}containsExclusiveEnvelope(e){return e.xmin>this.xmin&&e.xmax<this.xmax&&e.ymin>this.ymin&&e.ymax<this.ymax}isIntersecting(e){return(this.xmin<=e.xmin?this.xmax>=e.xmin:e.xmax>=this.xmin)&&(this.ymin<=e.ymin?this.ymax>=e.ymin:e.ymax>=this.ymin)}isIntersectingNe(e){return(this.xmin<=e.xmin?this.xmax>=e.xmin:e.xmax>=this.xmin)&&(this.ymin<=e.ymin?this.ymax>=e.ymin:e.ymax>=this.ymin)}intersect(e){if(this.isEmpty())return!1;if(e.isEmpty())return this.setEmpty(),!1;e.xmin>this.xmin&&(this.xmin=e.xmin),e.xmax<this.xmax&&(this.xmax=e.xmax),e.ymin>this.ymin&&(this.ymin=e.ymin),e.ymax<this.ymax&&(this.ymax=e.ymax);let t=this.xmin<=this.xmax&&this.ymin<=this.ymax;return t||this.setEmpty(),t}queryCorner(e){switch(e&3){case 0:return new n(this.xmin,this.ymin);case 1:return new n(this.xmin,this.ymax);case 2:return new n(this.xmax,this.ymax);default:return new n(this.xmax,this.ymin)}}queryCorners(e){e[0].setCoords(this.xmin,this.ymin),e[1].setCoords(this.xmin,this.ymax),e[2].setCoords(this.xmax,this.ymax),e[3].setCoords(this.xmax,this.ymin)}queryCornersReversed(e){e[0].setCoords(this.xmin,this.ymin),e[1].setCoords(this.xmax,this.ymin),e[2].setCoords(this.xmax,this.ymax),e[3].setCoords(this.xmin,this.ymax)}reaspect(e,t){if(this.isEmpty())return;let n=e/t,r=this.width()*.5,i=this.height()*.5*n;if(r<=i){let e=this.getCenterX();this.xmin=e-i,this.xmax=e+i}else{let e=r/n,t=this.getCenterY();this.ymin=t-e,this.ymax=t+e}this.normalize()}getArea(){return this.isEmpty()?0:this.width()*this.height()}getLength(){return this.isEmpty()?0:2*(this.width()+this.height())}clipCode(e){return+(e.x<this.xmin)|(e.x>this.xmax)<<1|(e.y<this.ymin)<<2|(e.y>this.ymax)<<3}static XLESSXMIN=1;static YLESSYMIN=4;static XMASK=3;static YMASK=12;clipLine(e,t){let n=this.clipCode(e),r=this.clipCode(t);if(n&r)return 0;if(!(n|r))return 4;let i=!!n|(r?2:0);do{let i=t.x-e.x,a=t.y-e.y;if(Math.abs(i)>Math.abs(a)?n&o.XMASK?(n&o.XLESSXMIN?(e.y+=a*(this.xmin-e.x)/i,e.x=this.xmin):(e.y+=a*(this.xmax-e.x)/i,e.x=this.xmax),n=this.clipCode(e)):r&o.XMASK?(r&o.XLESSXMIN?(t.y+=a*(this.xmin-t.x)/i,t.x=this.xmin):(t.y+=a*(this.xmax-t.x)/i,t.x=this.xmax),r=this.clipCode(t)):n?(n&o.YLESSYMIN?(e.x+=i*(this.ymin-e.y)/a,e.y=this.ymin):(e.x+=i*(this.ymax-e.y)/a,e.y=this.ymax),n=this.clipCode(e)):(r&o.YLESSYMIN?(t.x+=i*(this.ymin-t.y)/a,t.y=this.ymin):(t.x+=i*(this.ymax-t.y)/a,t.y=this.ymax),r=this.clipCode(t)):n&o.YMASK?(n&o.YLESSYMIN?(e.x+=i*(this.ymin-e.y)/a,e.y=this.ymin):(e.x+=i*(this.ymax-e.y)/a,e.y=this.ymax),n=this.clipCode(e)):r&o.YMASK?(r&o.YLESSYMIN?(t.x+=i*(this.ymin-t.y)/a,t.y=this.ymin):(t.x+=i*(this.ymax-t.y)/a,t.y=this.ymax),r=this.clipCode(t)):n?(n&o.XLESSXMIN?(e.y+=a*(this.xmin-e.x)/i,e.x=this.xmin):(e.y+=a*(this.xmax-e.x)/i,e.x=this.xmax),n=this.clipCode(e)):(r&o.XLESSXMIN?(t.y+=a*(this.xmin-t.x)/i,t.x=this.xmin):(t.y+=a*(this.xmax-t.x)/i,t.x=this.xmax),r=this.clipCode(t)),n&r)return 0}while(n|r);return i}distanceFromEnvelope(e){return Math.sqrt(this.sqrDistanceEnvelope(e,null,null))}distance(e){return Math.sqrt(this.sqrDistance(e))}sqrDistanceEnvelope(e,t,n){if(!t&&!n){if(this.isEmpty()||e.isEmpty())return NaN;let t=0,n=0,r;return r=this.xmin-e.xmax,r>t&&(t=r),r=this.ymin-e.ymax,r>n&&(n=r),r=e.xmin-this.xmax,r>t&&(t=r),r=e.ymin-this.ymax,r>n&&(n=r),t*t+n*n}if(this.isEmpty()||e.isEmpty())return t&&t.setNAN(),n&&n.setNAN(),NaN;let r=0,i=0,a,o=Math.max(this.xmin,e.xmin),s=Math.max(this.ymin,e.ymin);return t&&t.setCoords(o,s),n&&n.setCoords(o,s),a=this.xmin-e.xmax,a>r&&(r=a,t&&(t.x=this.xmin),n&&(n.x=e.xmax)),a=this.ymin-e.ymax,a>i&&(i=a,t&&(t.y=this.ymin),n&&(n.y=e.ymax)),a=e.xmin-this.xmax,a>r&&(r=a,t&&(t.x=this.xmax),n&&(n.x=e.xmin)),a=e.ymin-this.ymax,a>i&&(i=a,t&&(t.y=this.ymax),n&&(n.y=e.ymin)),r*r+i*i}sqrDistance(e,t){if(t===void 0){if(this.isEmpty()||e.isNAN())return NaN;let t=0,n=0,r;return r=this.xmin-e.x,r>t&&(t=r),r=this.ymin-e.y,r>n&&(n=r),r=e.x-this.xmax,r>t&&(t=r),r=e.y-this.ymax,r>n&&(n=r),t*t+n*n}if(this.isEmpty()||e.isNAN())return t.setNAN(),NaN;t.assign(e);let n=0,r=0,i;return i=this.xmin-e.x,i>n&&(n=i,t.x=this.xmin),i=this.ymin-e.y,i>r&&(r=i,t.y=this.ymin),i=e.x-this.xmax,i>n&&(n=i,t.x=this.xmax),i=e.y-this.ymax,i>r&&(r=i,t.y=this.ymax),n*n+r*r}sqrMaxMinDistanceEnvelope(e){if(this.isEmpty()||e.isEmpty())return NaN;let t=Number.MAX_VALUE;{let r=n.sqrDistanceCoords(this.xmin,this.ymin,e.xmax,e.ymin),i=n.sqrDistanceCoords(this.xmin,this.ymin,e.xmax,e.ymax),a=n.sqrDistanceCoords(this.xmin,this.ymax,e.xmax,e.ymin),o=n.sqrDistanceCoords(this.xmin,this.ymax,e.xmax,e.ymax);t=Math.min(Math.max(Math.max(r,i),Math.max(a,o)),t)}{let r=n.sqrDistanceCoords(this.xmin,this.ymin,e.xmin,e.ymax),i=n.sqrDistanceCoords(this.xmin,this.ymin,e.xmax,e.ymax),a=n.sqrDistanceCoords(this.xmax,this.ymin,e.xmin,e.ymax),o=n.sqrDistanceCoords(this.xmax,this.ymin,e.xmax,e.ymax);t=Math.min(Math.max(Math.max(r,i),Math.max(a,o)),t)}{let r=n.sqrDistanceCoords(this.xmax,this.ymin,e.xmin,e.ymin),i=n.sqrDistanceCoords(this.xmax,this.ymin,e.xmin,e.ymax),a=n.sqrDistanceCoords(this.xmax,this.ymax,e.xmin,e.ymin),o=n.sqrDistanceCoords(this.xmax,this.ymax,e.xmin,e.ymax);t=Math.min(Math.max(Math.max(r,i),Math.max(a,o)),t)}{let r=n.sqrDistanceCoords(this.xmin,this.ymax,e.xmin,e.ymin),i=n.sqrDistanceCoords(this.xmin,this.ymax,e.xmax,e.ymin),a=n.sqrDistanceCoords(this.xmax,this.ymax,e.xmin,e.ymin),o=n.sqrDistanceCoords(this.xmax,this.ymax,e.xmax,e.ymin);t=Math.min(Math.max(Math.max(r,i),Math.max(a,o)),t)}return t}sqrMaxDistanceEnvelope(e){if(this.isEmpty()||e.isEmpty())return NaN;let t=0,i=r(n,4);this.queryCorners(i);let a=r(n,4);e.queryCorners(a);for(let e=0;e<4;e++)for(let r=0;r<4;r++){let o=n.sqrDistance(i[e],a[r]);o>t&&(t=o)}return t}sqrMaxMinDistance(e){let t=n.sqrDistance(e,this.getLowerLeft()),r=n.sqrDistance(e,this.getUpperLeft()),i=n.sqrDistance(e,this.getLowerRight()),a=n.sqrDistance(e,this.getUpperRight()),o=Math.max(t,r),s;return s=Math.max(t,i),o>s&&(o=s),s=Math.max(r,a),o>s&&(o=s),s=Math.max(i,a),o>s&&(o=s),o}sqrMinDistance(e){return this.contains(e)?0:this.sqrDistance(e)}sqrMaxDistance(e){let t=n.sqrDistance(e,this.getLowerLeft());return t=Math.max(n.sqrDistance(e,this.getUpperLeft()),t),t=Math.max(n.sqrDistance(e,this.getUpperRight()),t),t=Math.max(n.sqrDistance(e,this.getLowerRight()),t),t}snapToBoundary(e){if(e.isNAN())return!1;if(this.isEmpty())return e.setNAN(),!0;let t=!0;if(e.x<this.xmin?e.x=this.xmin:e.x>this.xmax?e.x=this.xmax:t=!1,e.y<this.ymin?e.y=this.ymin:e.y>this.ymax?e.y=this.ymax:t=!1,t)return!0;if(e.x===this.xmin||e.x===this.xmax||e.y===this.ymin||e.y===this.ymax)return!1;let n=this.xmax-e.x,r=e.x-this.xmin,i=this.ymax-e.y,a=e.y-this.ymin;return Math.max(n,r)>Math.max(i,a)?e.y=a<i?this.ymin:this.ymax:e.x=r<n?this.xmin:this.xmax,!0}snapClip(e){let t=i(e.x,this.xmin,this.xmax),r=i(e.y,this.ymin,this.ymax);return n.construct(t,r)}boundaryDistance(e){if(this.isEmpty()||e.isNAN())return NaN;if(e.x===this.xmin)return e.y-this.ymin;let t=this.ymax-this.ymin,r=this.xmax-this.xmin;if(e.y===this.ymax)return t+e.x-this.xmin;if(e.x===this.xmax)return t+r+this.ymax-e.y;if(e.y===this.ymin)return t*2+r+this.xmax-e.x;let i=new n;return i.setCoordsPoint2D(e),this.snapToBoundary(i),this.boundaryDistance(i)}envelopeSide(e){if(this.isEmpty())return-1;let t=this.boundaryDistance(e),n=this.ymax-this.ymin,r=this.xmax-this.xmin;return t<n?0:(t-=n)<r?1:t-r<n?2:3}querySide(e,n){switch(e){case 0:n.constructFromCoords(this.xmin,this.ymin,this.xmin,this.ymax);break;case 1:n.constructFromCoords(this.xmin,this.ymax,this.xmax,this.ymax);break;case 2:n.constructFromCoords(this.xmax,this.ymax,this.xmax,this.ymin);break;case 3:n.constructFromCoords(this.xmax,this.ymin,this.xmin,this.ymin);break;default:t(`query_side`)}return n}isPointOnBoundary(e,t){return Math.abs(e.x-this.xmin)<=t||Math.abs(e.x-this.xmax)<=t||Math.abs(e.y-this.ymin)<=t||Math.abs(e.y-this.ymax)<=t}calculateToleranceFromEnvelope(){return this.isEmpty()?a():(Math.abs(this.xmin)+Math.abs(this.xmax)+Math.abs(this.ymin)+Math.abs(this.ymax)+1)*a()}toString(){return`[${this.xmin}, ${this.ymin}, ${this.xmax}, ${this.ymax}]`}}export{o as Envelope2D};
|
|
2
|
+
import{a as e,b as t}from"./Geometry.js";import{P as n,d as r,a as i,g as a}from"./Point2D.js";class o{m_EnvelopeType=2;xmin;ymin;xmax;ymax;static construct(e,t,n,r){return new o(e,t,n,r)}constructor(e,t,n,r){e===void 0?(this.xmin=NaN,this.ymin=NaN,this.xmax=NaN,this.ymax=NaN):typeof e==`number`?(this.xmin=e,this.ymin=t,this.xmax=n,this.ymax=r):(this.xmin=e.xmin,this.ymin=e.ymin,this.xmax=e.xmax,this.ymax=e.ymax),this.normalize()}static constructEmpty(){return new o(NaN,NaN,NaN,NaN)}clone(){return new o(this)}assign(e){return this.xmin=e.xmin,this.xmax=e.xmax,this.ymin=e.ymin,this.ymax=e.ymax,this}width(){return this.xmax-this.xmin}height(){return this.ymax-this.ymin}maxDimension(){return Math.max(this.width(),this.height())}minDimension(){return Math.min(this.width(),this.height())}sqrDiagonal(){let e=this.width(),t=this.height();return e*e+t*t}diagonal(){return Math.sqrt(this.sqrDiagonal())}getCenterX(){return .5*(this.xmin+this.xmax)}getCenterY(){return .5*(this.ymin+this.ymax)}getCenter(){return n.construct(this.getCenterX(),this.getCenterY())}queryCenter(e){e.x=.5*(this.xmin+this.xmax),e.y=.5*(this.ymin+this.ymax)}setEmpty(){this.xmin=NaN,this.ymin=NaN,this.xmax=NaN,this.ymax=NaN}setInfinite(){this.xmin=-1/0,this.xmax=1/0,this.ymin=-1/0,this.ymax=1/0}isDegenerate(e){return!this.isEmpty()&&(this.width()<=e||this.height()<=e)}isZero(){return!this.isEmpty()&&(!this.width()||!this.height())}isEmpty(){return Number.isNaN(this.xmin)||Number.isNaN(this.ymin)||Number.isNaN(this.xmax)||Number.isNaN(this.ymax)}mergeNeCoords(e,t){this.xmin>e?this.xmin=e:this.xmax<e&&(this.xmax=e),this.ymin>t?this.ymin=t:this.ymax<t&&(this.ymax=t)}mergeNe(e){this.mergeNeCoords(e.x,e.y)}mergeCoords(e,t){this.isEmpty()?(this.xmin=e,this.ymin=t,this.xmax=e,this.ymax=t):(this.xmin>e?this.xmin=e:this.xmax<e&&(this.xmax=e),this.ymin>t?this.ymin=t:this.ymax<t&&(this.ymax=t))}merge(e){this.mergeCoords(e.x,e.y)}mergeEnvelope2D(e){e.isEmpty()||(this.mergeCoords(e.xmin,e.ymin),this.mergeNeCoords(e.xmax,e.ymax))}mergePoints(e,t){for(let n=0;n<t;)if(this.isEmpty())this.setCoords(e[n]),n++;else{for(let r=n;r<t;r++)this.mergeNe(e[r]);break}}mergePointsInterleaved(e,t,n){for(let r=t*2,i=r+n*2;r<i;r+=2)this.mergeCoords(e.read(r),e.read(r+1))}inflateCoords(e,t){this.isEmpty()||(this.xmin-=e,this.xmax+=e,this.ymin-=t,this.ymax+=t,(this.xmin>this.xmax||this.ymin>this.ymax)&&this.setEmpty())}getInflatedCoords(e,t){let n=this.clone();return n.inflateCoords(e,t),n}inflate(e){this.inflateCoords(e,e)}getInflated(e){let t=this.clone();return t.inflateCoords(e,e),t}zoom(e,t){this.isEmpty()||this.setCoords({center:this.getCenter(),width:e*this.width(),height:t*this.height()})}scale(e){e<0&&this.setEmpty(),this.xmin*=e,this.xmax*=e,this.ymin*=e,this.ymax*=e}equals(e,t){return this.isEmpty()&&e.isEmpty()?!0:t?Math.abs(this.xmin-e.xmin)<=t&&Math.abs(this.ymin-e.ymin)<=t&&Math.abs(this.xmax-e.xmax)<=t&&Math.abs(this.ymax-e.ymax)<=t:this.xmin===e.xmin&&this.ymin===e.ymin&&this.xmax===e.xmax&&this.ymax===e.ymax}setCoords(t){t.xmin===void 0?t.x===void 0?t.pt1===void 0?t.env2D===void 0?t.pt===void 0?t.center===void 0?e(`unrecognized input type for setCoords`):(this.xmin=t.center.x-t.width*.5,this.xmax=this.xmin+t.width,this.ymin=t.center.y-t.height*.5,this.ymax=this.ymin+t.height,this.normalize()):(this.xmin=t.pt.x,this.xmax=t.pt.x,this.ymin=t.pt.y,this.ymax=t.pt.y):(this.xmin=t.env2D.xmin,this.xmax=t.env2D.xmax,this.ymin=t.env2D.ymin,this.ymax=t.env2D.ymax,this.normalize()):(this.xmin=t.pt1.x,this.ymin=t.pt1.y,this.xmax=t.pt2.x,this.ymax=t.pt2.y,this.normalize()):(this.xmin=t.x,this.xmax=t.x,this.ymin=t.y,this.ymax=t.y):(this.xmin=t.xmin,this.xmax=t.xmax,this.ymin=t.ymin,this.ymax=t.ymax),this.normalize()}queryIntervalX(e){this.isEmpty()?e.setEmpty():e.setCoords(this.xmin,this.xmax)}queryIntervalY(e){this.isEmpty()?e.setEmpty():e.setCoords(this.ymin,this.ymax)}setFromPoints(e,t){if(t===0){this.setEmpty();return}if(Array.isArray(e)){let n=e;this.setCoords(n[0]);for(let e=1;e<t;)if(this.isEmpty())this.setCoords(n[e]),e++;else{for(let r=e;r<t;r++)this.mergeNe(n[r]);return}return}let n=e;this.setCoords({x:n[0],y:n[1]});for(let e=1,r=t*2;e<r;e+=2)if(this.isEmpty())this.setCoords({x:n[e],y:n[e+1]}),e+=2;else{for(let r=e,i=t*2;r<i;r+=2)this.mergeNeCoords(n[r],n[r+1]);return}}normalize(){let e=!1;if(this.xmin<=this.xmax||([this.xmin,this.xmax]=[this.xmax,this.xmin],e=!0),this.ymin<=this.ymax||([this.ymin,this.ymax]=[this.ymax,this.ymin],e=!0),e&&!(this.xmin<=this.xmax&&this.ymin<=this.ymax)){this.setEmpty();return}}isValid(){return this.isEmpty()||this.xmin<=this.xmax&&this.ymin<=this.ymax}getLowerLeft(){return new n(this.xmin,this.ymin)}getLowerRight(){return new n(this.xmax,this.ymin)}getUpperLeft(){return new n(this.xmin,this.ymax)}getUpperRight(){return new n(this.xmax,this.ymax)}move(e,t){this.isEmpty()||(this.xmin+=e,this.ymin+=t,this.xmax+=e,this.ymax+=t)}centerAtCoords(e,t){this.move(e-this.getCenterX(),t-this.getCenterY())}centerAt(e){this.centerAtCoords(e.x,e.y)}containsCoords(e,t){return e>=this.xmin&&e<=this.xmax&&t>=this.ymin&&t<=this.ymax}contains(e){return this.containsCoords(e.x,e.y)}containsEnvelope(e){return e.xmin>=this.xmin&&e.xmax<=this.xmax&&e.ymin>=this.ymin&&e.ymax<=this.ymax}containsExclusiveCoords(e,t){return e>this.xmin&&e<this.xmax&&t>this.ymin&&t<this.ymax}containsExclusive(e){return this.containsExclusiveCoords(e.x,e.y)}containsExclusiveEnvelope(e){return e.xmin>this.xmin&&e.xmax<this.xmax&&e.ymin>this.ymin&&e.ymax<this.ymax}isIntersecting(e){return(this.xmin<=e.xmin?this.xmax>=e.xmin:e.xmax>=this.xmin)&&(this.ymin<=e.ymin?this.ymax>=e.ymin:e.ymax>=this.ymin)}isIntersectingNe(e){return(this.xmin<=e.xmin?this.xmax>=e.xmin:e.xmax>=this.xmin)&&(this.ymin<=e.ymin?this.ymax>=e.ymin:e.ymax>=this.ymin)}intersect(e){if(this.isEmpty())return!1;if(e.isEmpty())return this.setEmpty(),!1;e.xmin>this.xmin&&(this.xmin=e.xmin),e.xmax<this.xmax&&(this.xmax=e.xmax),e.ymin>this.ymin&&(this.ymin=e.ymin),e.ymax<this.ymax&&(this.ymax=e.ymax);let t=this.xmin<=this.xmax&&this.ymin<=this.ymax;return t||this.setEmpty(),t}queryCorner(e){switch(e&3){case 0:return new n(this.xmin,this.ymin);case 1:return new n(this.xmin,this.ymax);case 2:return new n(this.xmax,this.ymax);default:return new n(this.xmax,this.ymin)}}queryCorners(e){e[0].setCoords(this.xmin,this.ymin),e[1].setCoords(this.xmin,this.ymax),e[2].setCoords(this.xmax,this.ymax),e[3].setCoords(this.xmax,this.ymin)}queryCornersReversed(e){e[0].setCoords(this.xmin,this.ymin),e[1].setCoords(this.xmax,this.ymin),e[2].setCoords(this.xmax,this.ymax),e[3].setCoords(this.xmin,this.ymax)}reaspect(e,t){if(this.isEmpty())return;let n=e/t,r=this.width()*.5,i=this.height()*.5*n;if(r<=i){let e=this.getCenterX();this.xmin=e-i,this.xmax=e+i}else{let e=r/n,t=this.getCenterY();this.ymin=t-e,this.ymax=t+e}this.normalize()}getArea(){return this.isEmpty()?0:this.width()*this.height()}getLength(){return this.isEmpty()?0:2*(this.width()+this.height())}clipCode(e){return+(e.x<this.xmin)|(e.x>this.xmax)<<1|(e.y<this.ymin)<<2|(e.y>this.ymax)<<3}static XLESSXMIN=1;static YLESSYMIN=4;static XMASK=3;static YMASK=12;clipLine(e,t){let n=this.clipCode(e),r=this.clipCode(t);if(n&r)return 0;if(!(n|r))return 4;let i=!!n|(r?2:0);do{let i=t.x-e.x,a=t.y-e.y;if(Math.abs(i)>Math.abs(a)?n&o.XMASK?(n&o.XLESSXMIN?(e.y+=a*(this.xmin-e.x)/i,e.x=this.xmin):(e.y+=a*(this.xmax-e.x)/i,e.x=this.xmax),n=this.clipCode(e)):r&o.XMASK?(r&o.XLESSXMIN?(t.y+=a*(this.xmin-t.x)/i,t.x=this.xmin):(t.y+=a*(this.xmax-t.x)/i,t.x=this.xmax),r=this.clipCode(t)):n?(n&o.YLESSYMIN?(e.x+=i*(this.ymin-e.y)/a,e.y=this.ymin):(e.x+=i*(this.ymax-e.y)/a,e.y=this.ymax),n=this.clipCode(e)):(r&o.YLESSYMIN?(t.x+=i*(this.ymin-t.y)/a,t.y=this.ymin):(t.x+=i*(this.ymax-t.y)/a,t.y=this.ymax),r=this.clipCode(t)):n&o.YMASK?(n&o.YLESSYMIN?(e.x+=i*(this.ymin-e.y)/a,e.y=this.ymin):(e.x+=i*(this.ymax-e.y)/a,e.y=this.ymax),n=this.clipCode(e)):r&o.YMASK?(r&o.YLESSYMIN?(t.x+=i*(this.ymin-t.y)/a,t.y=this.ymin):(t.x+=i*(this.ymax-t.y)/a,t.y=this.ymax),r=this.clipCode(t)):n?(n&o.XLESSXMIN?(e.y+=a*(this.xmin-e.x)/i,e.x=this.xmin):(e.y+=a*(this.xmax-e.x)/i,e.x=this.xmax),n=this.clipCode(e)):(r&o.XLESSXMIN?(t.y+=a*(this.xmin-t.x)/i,t.x=this.xmin):(t.y+=a*(this.xmax-t.x)/i,t.x=this.xmax),r=this.clipCode(t)),n&r)return 0}while(n|r);return i}distanceFromEnvelope(e){return Math.sqrt(this.sqrDistanceEnvelope(e,null,null))}distance(e){return Math.sqrt(this.sqrDistance(e))}sqrDistanceEnvelope(e,t,n){if(!t&&!n){if(this.isEmpty()||e.isEmpty())return NaN;let t=0,n=0,r;return r=this.xmin-e.xmax,r>t&&(t=r),r=this.ymin-e.ymax,r>n&&(n=r),r=e.xmin-this.xmax,r>t&&(t=r),r=e.ymin-this.ymax,r>n&&(n=r),t*t+n*n}if(this.isEmpty()||e.isEmpty())return t&&t.setNAN(),n&&n.setNAN(),NaN;let r=0,i=0,a,o=Math.max(this.xmin,e.xmin),s=Math.max(this.ymin,e.ymin);return t&&t.setCoords(o,s),n&&n.setCoords(o,s),a=this.xmin-e.xmax,a>r&&(r=a,t&&(t.x=this.xmin),n&&(n.x=e.xmax)),a=this.ymin-e.ymax,a>i&&(i=a,t&&(t.y=this.ymin),n&&(n.y=e.ymax)),a=e.xmin-this.xmax,a>r&&(r=a,t&&(t.x=this.xmax),n&&(n.x=e.xmin)),a=e.ymin-this.ymax,a>i&&(i=a,t&&(t.y=this.ymax),n&&(n.y=e.ymin)),r*r+i*i}sqrDistance(e,t){if(t===void 0){if(this.isEmpty()||e.isNAN())return NaN;let t=0,n=0,r;return r=this.xmin-e.x,r>t&&(t=r),r=this.ymin-e.y,r>n&&(n=r),r=e.x-this.xmax,r>t&&(t=r),r=e.y-this.ymax,r>n&&(n=r),t*t+n*n}if(this.isEmpty()||e.isNAN())return t.setNAN(),NaN;t.assign(e);let n=0,r=0,i;return i=this.xmin-e.x,i>n&&(n=i,t.x=this.xmin),i=this.ymin-e.y,i>r&&(r=i,t.y=this.ymin),i=e.x-this.xmax,i>n&&(n=i,t.x=this.xmax),i=e.y-this.ymax,i>r&&(r=i,t.y=this.ymax),n*n+r*r}sqrMaxMinDistanceEnvelope(e){if(this.isEmpty()||e.isEmpty())return NaN;let t=Number.MAX_VALUE;{let r=n.sqrDistanceCoords(this.xmin,this.ymin,e.xmax,e.ymin),i=n.sqrDistanceCoords(this.xmin,this.ymin,e.xmax,e.ymax),a=n.sqrDistanceCoords(this.xmin,this.ymax,e.xmax,e.ymin),o=n.sqrDistanceCoords(this.xmin,this.ymax,e.xmax,e.ymax);t=Math.min(Math.max(Math.max(r,i),Math.max(a,o)),t)}{let r=n.sqrDistanceCoords(this.xmin,this.ymin,e.xmin,e.ymax),i=n.sqrDistanceCoords(this.xmin,this.ymin,e.xmax,e.ymax),a=n.sqrDistanceCoords(this.xmax,this.ymin,e.xmin,e.ymax),o=n.sqrDistanceCoords(this.xmax,this.ymin,e.xmax,e.ymax);t=Math.min(Math.max(Math.max(r,i),Math.max(a,o)),t)}{let r=n.sqrDistanceCoords(this.xmax,this.ymin,e.xmin,e.ymin),i=n.sqrDistanceCoords(this.xmax,this.ymin,e.xmin,e.ymax),a=n.sqrDistanceCoords(this.xmax,this.ymax,e.xmin,e.ymin),o=n.sqrDistanceCoords(this.xmax,this.ymax,e.xmin,e.ymax);t=Math.min(Math.max(Math.max(r,i),Math.max(a,o)),t)}{let r=n.sqrDistanceCoords(this.xmin,this.ymax,e.xmin,e.ymin),i=n.sqrDistanceCoords(this.xmin,this.ymax,e.xmax,e.ymin),a=n.sqrDistanceCoords(this.xmax,this.ymax,e.xmin,e.ymin),o=n.sqrDistanceCoords(this.xmax,this.ymax,e.xmax,e.ymin);t=Math.min(Math.max(Math.max(r,i),Math.max(a,o)),t)}return t}sqrMaxDistanceEnvelope(e){if(this.isEmpty()||e.isEmpty())return NaN;let t=0,i=r(n,4);this.queryCorners(i);let a=r(n,4);e.queryCorners(a);for(let e=0;e<4;e++)for(let r=0;r<4;r++){let o=n.sqrDistance(i[e],a[r]);o>t&&(t=o)}return t}sqrMaxMinDistance(e){let t=n.sqrDistance(e,this.getLowerLeft()),r=n.sqrDistance(e,this.getUpperLeft()),i=n.sqrDistance(e,this.getLowerRight()),a=n.sqrDistance(e,this.getUpperRight()),o=Math.max(t,r),s;return s=Math.max(t,i),o>s&&(o=s),s=Math.max(r,a),o>s&&(o=s),s=Math.max(i,a),o>s&&(o=s),o}sqrMinDistance(e){return this.contains(e)?0:this.sqrDistance(e)}sqrMaxDistance(e){let t=n.sqrDistance(e,this.getLowerLeft());return t=Math.max(n.sqrDistance(e,this.getUpperLeft()),t),t=Math.max(n.sqrDistance(e,this.getUpperRight()),t),t=Math.max(n.sqrDistance(e,this.getLowerRight()),t),t}snapToBoundary(e){if(e.isNAN())return!1;if(this.isEmpty())return e.setNAN(),!0;let t=!0;if(e.x<this.xmin?e.x=this.xmin:e.x>this.xmax?e.x=this.xmax:t=!1,e.y<this.ymin?e.y=this.ymin:e.y>this.ymax?e.y=this.ymax:t=!1,t)return!0;if(e.x===this.xmin||e.x===this.xmax||e.y===this.ymin||e.y===this.ymax)return!1;let n=this.xmax-e.x,r=e.x-this.xmin,i=this.ymax-e.y,a=e.y-this.ymin;return Math.max(n,r)>Math.max(i,a)?e.y=a<i?this.ymin:this.ymax:e.x=r<n?this.xmin:this.xmax,!0}snapClip(e){let t=i(e.x,this.xmin,this.xmax),r=i(e.y,this.ymin,this.ymax);return n.construct(t,r)}boundaryDistance(e){if(this.isEmpty()||e.isNAN())return NaN;if(e.x===this.xmin)return e.y-this.ymin;let t=this.ymax-this.ymin,r=this.xmax-this.xmin;if(e.y===this.ymax)return t+e.x-this.xmin;if(e.x===this.xmax)return t+r+this.ymax-e.y;if(e.y===this.ymin)return t*2+r+this.xmax-e.x;let i=new n;return i.setCoordsPoint2D(e),this.snapToBoundary(i),this.boundaryDistance(i)}envelopeSide(e){if(this.isEmpty())return-1;let t=this.boundaryDistance(e),n=this.ymax-this.ymin,r=this.xmax-this.xmin;return t<n?0:(t-=n)<r?1:t-r<n?2:3}querySide(e,n){switch(e){case 0:n.constructFromCoords(this.xmin,this.ymin,this.xmin,this.ymax);break;case 1:n.constructFromCoords(this.xmin,this.ymax,this.xmax,this.ymax);break;case 2:n.constructFromCoords(this.xmax,this.ymax,this.xmax,this.ymin);break;case 3:n.constructFromCoords(this.xmax,this.ymin,this.xmin,this.ymin);break;default:t(`query_side`)}return n}isPointOnBoundary(e,t){return Math.abs(e.x-this.xmin)<=t||Math.abs(e.x-this.xmax)<=t||Math.abs(e.y-this.ymin)<=t||Math.abs(e.y-this.ymax)<=t}calculateToleranceFromEnvelope(){return this.isEmpty()?a():(Math.abs(this.xmin)+Math.abs(this.xmax)+Math.abs(this.ymin)+Math.abs(this.ymax)+1)*a()}toString(){return`[${this.xmin}, ${this.ymin}, ${this.xmax}, ${this.ymax}]`}}export{o as Envelope2D};
|