@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.
Files changed (507) hide show
  1. package/analysis/LineOfSightAnalysisObserver.d.ts +12 -0
  2. package/analysis/LineOfSightAnalysisObserver.js +1 -1
  3. package/analysis/LineOfSightAnalysisTarget.d.ts +12 -0
  4. package/analysis/LineOfSightAnalysisTarget.js +1 -1
  5. package/arcade/featureset/sources/FeatureLayerParquet.js +1 -1
  6. package/arcgisGlobal.d.ts +4 -0
  7. package/assets/components/assets/icon/blockHeightMedium16.json +1 -0
  8. package/assets/components/assets/icon/blockHeightMedium24.json +1 -0
  9. package/assets/components/assets/icon/blockHeightMedium32.json +1 -0
  10. package/assets/components/assets/icon/blockHeightShort16.json +1 -0
  11. package/assets/components/assets/icon/blockHeightShort24.json +1 -0
  12. package/assets/components/assets/icon/blockHeightShort32.json +1 -0
  13. package/assets/components/assets/icon/blockHeightTall16.json +1 -0
  14. package/assets/components/assets/icon/blockHeightTall24.json +1 -0
  15. package/assets/components/assets/icon/blockHeightTall32.json +1 -0
  16. package/assets/components/assets/icon/cursorCircle16.json +1 -0
  17. package/assets/components/assets/icon/cursorCircle24.json +1 -0
  18. package/assets/components/assets/icon/cursorCircle32.json +1 -0
  19. package/assets/components/assets/icon/dictionary16.json +1 -0
  20. package/assets/components/assets/icon/dictionary24.json +1 -0
  21. package/assets/components/assets/icon/dictionary32.json +1 -0
  22. package/assets/components/assets/icon/jobDependency16.json +1 -0
  23. package/assets/components/assets/icon/jobDependency24.json +1 -0
  24. package/assets/components/assets/icon/jobDependency32.json +1 -0
  25. package/assets/components/assets/icon/referenceChip16.json +1 -0
  26. package/assets/components/assets/icon/referenceChip24.json +1 -0
  27. package/assets/components/assets/icon/referenceChip32.json +1 -0
  28. package/assets/esri/core/workers/RemoteClient.js +1 -1
  29. package/assets/esri/core/workers/chunks/{4e6f95d8c624d513849a.js → 05963f57cbe5a5249496.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{0b8681ca4a83e97f1f71.js → 067de1910190da228291.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{3c0fd1c6cda44e9f40ab.js → 070684943698fa43c2b4.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{bc1cb4b9a02e6c78deb7.js → 076e8d2e08ff2a013736.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{c10e040368065411506a.js → 10445313d0d57b34511b.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{d537c59b46cdaaf66034.js → 1188d0a136fffc009643.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{20af3f085f60c32c6c53.js → 178083d8ed7707b45ca2.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{f5efe3e800c6e23efcf3.js → 1819c45655c836b9a8d7.js} +1 -1
  37. package/assets/esri/core/workers/chunks/1b946714ca4a1a7359d4.js +2 -0
  38. package/assets/esri/core/workers/chunks/{d8d8b38ac8a91d9e45fc.js → 1cc744ab5eee5ee3bed8.js} +1 -1
  39. package/assets/esri/core/workers/chunks/{05e39b4de7f62c5b22cc.js → 20f75cc777af13fa249b.js} +1 -1
  40. package/assets/esri/core/workers/chunks/2a1ec30f9ad305763f81.js +2 -0
  41. package/assets/esri/core/workers/chunks/34570e6bbf559f18c1a5.js +1 -0
  42. package/assets/esri/core/workers/chunks/{60f6d5da9480dd36e877.js → 3dddae78286d05eb10fc.js} +1 -1
  43. package/assets/esri/core/workers/chunks/{9efd30bbd02ec0d1031b.js → 3ec3589f6e74d7cb87cf.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{0bec054fca104f3bf141.js → 3f776d9fd2ab68b21fca.js} +1 -1
  45. package/assets/esri/core/workers/chunks/402a82c77420254831bc.js +1 -0
  46. package/assets/esri/core/workers/chunks/{e2ebf0ea3af2e6907987.js → 406f24ec13eb30d43405.js} +1 -1
  47. package/assets/esri/core/workers/chunks/43fc42405167a5537039.js +1 -0
  48. package/assets/esri/core/workers/chunks/{ddedc414bb478b376221.js → 46b2d4addfc73f9183a4.js} +1 -1
  49. package/assets/esri/core/workers/chunks/498d6dfd3bb0d3490548.js +1 -0
  50. package/assets/esri/core/workers/chunks/{36ef86701883a20dd6f6.js → 4a640548032355e57acd.js} +1 -1
  51. package/assets/esri/core/workers/chunks/5566f14afb63065e438f.js +1 -0
  52. package/assets/esri/core/workers/chunks/{c3b96d1d43afccd23e45.js → 590e6c70206122e4cc3c.js} +2 -2
  53. package/assets/esri/core/workers/chunks/{54860dd53a46cf4c47f3.js → 59295b99bdff4045a0e7.js} +1 -1
  54. package/assets/esri/core/workers/chunks/5aeb5e18514644fe2cf9.js +1 -0
  55. package/assets/esri/core/workers/chunks/{5da86409d70098fc6a10.js → 5b3cfe95314a75a735c1.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{a54678bfa0f1807b61cd.js → 5c855af73ee3c3e764fb.js} +1 -1
  57. package/assets/esri/core/workers/chunks/{06da3409992bb1fa85b0.js → 5e90c1b49f2b7e21d05a.js} +39 -31
  58. package/assets/esri/core/workers/chunks/5fd099ca1024707387b2.js +1 -0
  59. package/assets/esri/core/workers/chunks/{30f808cac8a34f95ea6e.js → 6079d27f4ab319fb8f0c.js} +1 -1
  60. package/assets/esri/core/workers/chunks/66c2a28a851130b87c04.js +1 -0
  61. package/assets/esri/core/workers/chunks/{dac90b3631f7f7158f68.js → 67f15538c51838201fc7.js} +1 -1
  62. package/assets/esri/core/workers/chunks/{cfaba0470619786e1ef8.js → 68d8ae42ab71d01a70a5.js} +2 -2
  63. package/assets/esri/core/workers/chunks/6aebf7cfd294e88bf926.js +1 -0
  64. package/assets/esri/core/workers/chunks/{864e7030c4ddbfcf0114.js → 6ccf9535013fe672c93b.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{ba7f0cf7e495d3ec2d55.js → 6e62581d933e7298d1f6.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{83b5dd4029e00abd80bf.js → 700b1d5bc67b7e1b3ff3.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{f9fea72cc222a30ef2f9.js → 72399062767abdfb0bee.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{2a7fbfd77002a24bf737.js → 747461bb6a1bc2f0a64d.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{c333f6ed42985bb2b11f.js → 7851aef196eea5d6c94e.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{f0b6bd6fab5320c3082f.js → 7a05b18f655c1167ce0a.js} +1 -1
  71. package/assets/esri/core/workers/chunks/{04296b75d0f81fbd1bb5.js → 864194927d05ebc4cc31.js} +1 -1
  72. package/assets/esri/core/workers/chunks/{3c4a13a9f0b305394a26.js → 876f7633c15f1e31078d.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{62298dba3f6cbdc3f4ae.js → 879b2f0ff1977bca9376.js} +1 -1
  74. package/assets/esri/core/workers/chunks/{b547b3bce729c9dac90d.js → 898359be6996fd9763b8.js} +1 -1
  75. package/assets/esri/core/workers/chunks/8cb716f110d164030309.js +1 -0
  76. package/assets/esri/core/workers/chunks/8dc1c3042267618fd710.js +2 -0
  77. package/assets/esri/core/workers/chunks/{625f02db93d7fbf175ca.js → 9001e9a1e81bce175ddd.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{9ffa6c8d93d3443834c6.js → 912080c90b5cc2e817cf.js} +1 -1
  79. package/assets/esri/core/workers/chunks/96c50a0dda0f1503ef92.js +2 -0
  80. package/assets/esri/core/workers/chunks/{13e4379441499599c3b5.js → 9cbde13e536676767900.js} +1 -1
  81. package/assets/esri/core/workers/chunks/{408db4f32850b77264ae.js → 9cd3fcb5fca6f9dbbcd8.js} +1 -1
  82. package/assets/esri/core/workers/chunks/a054da6cbd8ee4774a57.js +1 -0
  83. package/assets/esri/core/workers/chunks/a05790444115e4cf1bcc.js +1 -0
  84. package/assets/esri/core/workers/chunks/{d1f2685782b423ef87a6.js → a556dd4e9e6d35e33a2c.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{00d576d355599c88931e.js → bc38def1983089514e4b.js} +1 -1
  86. package/assets/esri/core/workers/chunks/{0725e515f3004bdd5c56.js → ca2adcbcf44454484fd5.js} +1 -1
  87. package/assets/esri/core/workers/chunks/{f3507b9e831ffd7a6bf8.js → cca8bd07bcd1d267a2e8.js} +1 -1
  88. package/assets/esri/core/workers/chunks/cfae60b9d2f2939e9c16.js +1 -0
  89. package/assets/esri/core/workers/chunks/{1d6b2a64f4e40e5cc13d.js → d201fbf3ceff946d2bd6.js} +1 -1
  90. package/assets/esri/core/workers/chunks/{4439078780d9ba49fd26.js → d51bb11baadc741c46bc.js} +1 -1
  91. package/assets/esri/core/workers/chunks/db1ab9b9c8bf5c7635d3.js +1 -0
  92. package/assets/esri/core/workers/chunks/de02a6a1f4810f99e9bb.js +1 -0
  93. package/assets/esri/core/workers/chunks/e630f3c56c077cb2bd8e.js +1 -0
  94. package/assets/esri/core/workers/chunks/e81173724e8de8c1e65b.js +1 -0
  95. package/assets/esri/core/workers/chunks/{2025288bed125594ceda.js → f6e62d2d279a328cbed7.js} +1 -1
  96. package/assets/esri/core/workers/chunks/{47c19778fcee7154ca38.js → f8bc474434fd365ab174.js} +1 -1
  97. package/assets/esri/core/workers/chunks/{9a20dc26cb9c7b2087cf.js → f95a1f878c9c1146180e.js} +1 -1
  98. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ar.json +1 -1
  99. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.bg.json +1 -1
  100. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.bs.json +1 -1
  101. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ca.json +1 -1
  102. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.cs.json +1 -1
  103. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.da.json +1 -1
  104. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.de.json +1 -1
  105. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.el.json +1 -1
  106. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.en.json +1 -1
  107. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.es.json +1 -1
  108. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.et.json +1 -1
  109. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.fi.json +1 -1
  110. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.fr.json +1 -1
  111. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.he.json +1 -1
  112. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.hr.json +1 -1
  113. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.hu.json +1 -1
  114. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.id.json +1 -1
  115. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.it.json +1 -1
  116. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ja.json +1 -1
  117. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ko.json +1 -1
  118. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.lt.json +1 -1
  119. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.lv.json +1 -1
  120. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.nl.json +1 -1
  121. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.no.json +1 -1
  122. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pl.json +1 -1
  123. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pt-BR.json +1 -1
  124. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pt-PT.json +1 -1
  125. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ro.json +1 -1
  126. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ru.json +1 -1
  127. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sk.json +1 -1
  128. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sl.json +1 -1
  129. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sr.json +1 -1
  130. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sv.json +1 -1
  131. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.th.json +1 -1
  132. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.tr.json +1 -1
  133. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.uk.json +1 -1
  134. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.vi.json +1 -1
  135. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-CN.json +1 -1
  136. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-HK.json +1 -1
  137. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-TW.json +1 -1
  138. package/assets/esri/widgets/FeatureForm/t9n/messages.ar.json +1 -1
  139. package/assets/esri/widgets/FeatureForm/t9n/messages.bg.json +1 -1
  140. package/assets/esri/widgets/FeatureForm/t9n/messages.bs.json +1 -1
  141. package/assets/esri/widgets/FeatureForm/t9n/messages.ca.json +1 -1
  142. package/assets/esri/widgets/FeatureForm/t9n/messages.cs.json +1 -1
  143. package/assets/esri/widgets/FeatureForm/t9n/messages.da.json +1 -1
  144. package/assets/esri/widgets/FeatureForm/t9n/messages.de.json +1 -1
  145. package/assets/esri/widgets/FeatureForm/t9n/messages.el.json +1 -1
  146. package/assets/esri/widgets/FeatureForm/t9n/messages.es.json +1 -1
  147. package/assets/esri/widgets/FeatureForm/t9n/messages.et.json +1 -1
  148. package/assets/esri/widgets/FeatureForm/t9n/messages.fi.json +1 -1
  149. package/assets/esri/widgets/FeatureForm/t9n/messages.fr.json +1 -1
  150. package/assets/esri/widgets/FeatureForm/t9n/messages.he.json +1 -1
  151. package/assets/esri/widgets/FeatureForm/t9n/messages.hr.json +1 -1
  152. package/assets/esri/widgets/FeatureForm/t9n/messages.hu.json +1 -1
  153. package/assets/esri/widgets/FeatureForm/t9n/messages.id.json +1 -1
  154. package/assets/esri/widgets/FeatureForm/t9n/messages.it.json +1 -1
  155. package/assets/esri/widgets/FeatureForm/t9n/messages.ja.json +1 -1
  156. package/assets/esri/widgets/FeatureForm/t9n/messages.ko.json +1 -1
  157. package/assets/esri/widgets/FeatureForm/t9n/messages.lt.json +1 -1
  158. package/assets/esri/widgets/FeatureForm/t9n/messages.lv.json +1 -1
  159. package/assets/esri/widgets/FeatureForm/t9n/messages.nl.json +1 -1
  160. package/assets/esri/widgets/FeatureForm/t9n/messages.no.json +1 -1
  161. package/assets/esri/widgets/FeatureForm/t9n/messages.pl.json +1 -1
  162. package/assets/esri/widgets/FeatureForm/t9n/messages.pt-BR.json +1 -1
  163. package/assets/esri/widgets/FeatureForm/t9n/messages.pt-PT.json +1 -1
  164. package/assets/esri/widgets/FeatureForm/t9n/messages.ro.json +1 -1
  165. package/assets/esri/widgets/FeatureForm/t9n/messages.ru.json +1 -1
  166. package/assets/esri/widgets/FeatureForm/t9n/messages.sk.json +1 -1
  167. package/assets/esri/widgets/FeatureForm/t9n/messages.sl.json +1 -1
  168. package/assets/esri/widgets/FeatureForm/t9n/messages.sr.json +1 -1
  169. package/assets/esri/widgets/FeatureForm/t9n/messages.sv.json +1 -1
  170. package/assets/esri/widgets/FeatureForm/t9n/messages.th.json +1 -1
  171. package/assets/esri/widgets/FeatureForm/t9n/messages.tr.json +1 -1
  172. package/assets/esri/widgets/FeatureForm/t9n/messages.uk.json +1 -1
  173. package/assets/esri/widgets/FeatureForm/t9n/messages.vi.json +1 -1
  174. package/assets/esri/widgets/FeatureForm/t9n/messages.zh-CN.json +1 -1
  175. package/assets/esri/widgets/FeatureForm/t9n/messages.zh-HK.json +1 -1
  176. package/assets/esri/widgets/FeatureForm/t9n/messages.zh-TW.json +1 -1
  177. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ar.json +1 -1
  178. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.bg.json +1 -1
  179. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.bs.json +1 -1
  180. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ca.json +1 -1
  181. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.cs.json +1 -1
  182. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.da.json +1 -1
  183. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.de.json +1 -1
  184. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.el.json +1 -1
  185. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.en.json +1 -1
  186. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.es.json +1 -1
  187. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.et.json +1 -1
  188. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.fi.json +1 -1
  189. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.fr.json +1 -1
  190. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.he.json +1 -1
  191. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.hr.json +1 -1
  192. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.hu.json +1 -1
  193. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.id.json +1 -1
  194. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.it.json +1 -1
  195. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ja.json +1 -1
  196. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ko.json +1 -1
  197. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.lt.json +1 -1
  198. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.lv.json +1 -1
  199. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.nl.json +1 -1
  200. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.no.json +1 -1
  201. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pl.json +1 -1
  202. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pt-BR.json +1 -1
  203. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pt-PT.json +1 -1
  204. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ro.json +1 -1
  205. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ru.json +1 -1
  206. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sk.json +1 -1
  207. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sl.json +1 -1
  208. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sr.json +1 -1
  209. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sv.json +1 -1
  210. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.th.json +1 -1
  211. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.tr.json +1 -1
  212. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.uk.json +1 -1
  213. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.vi.json +1 -1
  214. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-CN.json +1 -1
  215. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-HK.json +1 -1
  216. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-TW.json +1 -1
  217. package/chunks/Bufferer-CclWhXVb.js +1 -1
  218. package/chunks/Component.glsl.js +3 -3
  219. package/chunks/DefaultMaterial.glsl.js +2 -2
  220. package/chunks/Distance2DCalculator-DjIp2uQi.js +1 -1
  221. package/chunks/Envelope.js +1 -1
  222. package/chunks/Envelope2D.js +1 -1
  223. package/chunks/FocusArea.glsl.js +8 -10
  224. package/chunks/GaussianSplat.glsl.js +2 -2
  225. package/chunks/GeodeticDistanceCalculator-zRp89-dW.js +1 -1
  226. package/chunks/GeodeticUtils.js +1 -1
  227. package/chunks/Geometry.js +1 -1
  228. package/chunks/GeometryCleaner-CIE8Wfmb.js +1 -1
  229. package/chunks/GlobalIllumination.glsl.js +3 -3
  230. package/chunks/LineMarker.glsl.js +35 -42
  231. package/chunks/MultiPathImpl.js +1 -1
  232. package/chunks/OperatorAffineTransform.js +1 -1
  233. package/chunks/OperatorClip.js +1 -1
  234. package/chunks/OperatorDensify.js +1 -1
  235. package/chunks/OperatorDistance.js +1 -1
  236. package/chunks/OperatorGeneralize.js +1 -1
  237. package/chunks/OperatorGeodesicBuffer.js +1 -1
  238. package/chunks/OperatorGeodeticArea.js +1 -1
  239. package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
  240. package/chunks/OperatorGeodeticDistance.js +1 -1
  241. package/chunks/OperatorGeodeticLength.js +1 -1
  242. package/chunks/OperatorGraphicBuffer.js +1 -1
  243. package/chunks/OperatorIntegrate.js +1 -1
  244. package/chunks/OperatorMultiPartToSinglePart.js +1 -1
  245. package/chunks/OperatorProximity.js +1 -1
  246. package/chunks/OperatorProximityGeodesic.js +1 -1
  247. package/chunks/OperatorShapePreservingLength.js +1 -1
  248. package/chunks/OperatorShapePreservingProject.js +1 -1
  249. package/chunks/OperatorSimplifyOGC.js +1 -1
  250. package/chunks/Path.glsl.js +2 -2
  251. package/chunks/Point2D.js +1 -1
  252. package/chunks/RealisticTree.glsl.js +2 -2
  253. package/chunks/RibbonLine.glsl.js +51 -57
  254. package/chunks/SideCalculator2D-DX0718xq.js +1 -1
  255. package/chunks/Terrain.glsl.js +2 -2
  256. package/chunks/Transformation2D.js +1 -1
  257. package/chunks/UnitFactory.js +1 -1
  258. package/config.js +1 -1
  259. package/core/workers/RemoteClient.js +1 -1
  260. package/core/workers/workerFactory.js +1 -1
  261. package/editing/fieldUtils.d.ts +12 -0
  262. package/editing/sharedTemplates/templateDefinitions/TemplateDefinitionBase.js +1 -1
  263. package/geometry/operators/extendOperator.js +1 -1
  264. package/geometry/operators/gx/operatorAlphaShape.js +1 -1
  265. package/geometry/operators/gx/operatorBoundary.js +1 -1
  266. package/geometry/operators/gx/operatorBuffer.js +1 -1
  267. package/geometry/operators/gx/operatorConvexHull.js +1 -1
  268. package/geometry/operators/gx/operatorLabelPoint.js +1 -1
  269. package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
  270. package/geometry/operators/gx/operatorLocateBetween.js +1 -1
  271. package/geometry/operators/gx/operatorMinimumBoundingCircle.js +1 -1
  272. package/geometry/operators/gx/operatorOffset.js +1 -1
  273. package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
  274. package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
  275. package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
  276. package/geometry/operators/isNearOperator.js +1 -1
  277. package/geometry/operators/reshapeOperator.js +1 -1
  278. package/geometry/operators/support/jsonConverter.js +1 -1
  279. package/geometry/support/curves/ellipticArc7Utils.js +1 -1
  280. package/geometry/support/ellipseUtils.js +2 -0
  281. package/interfaces.d.ts +15 -18
  282. package/kernel.js +1 -1
  283. package/layers/LinkChartLayer.js +1 -1
  284. package/layers/ParquetLayer.js +1 -1
  285. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  286. package/layers/list/LayerItemCollection.d.ts +1 -0
  287. package/layers/list/types.d.ts +5 -1
  288. package/layers/orientedImagery/core/coverageUtils.js +1 -1
  289. package/layers/orientedImagery/queries.js +1 -1
  290. package/layers/support/TimeSeriesCalculation.d.ts +1 -1
  291. package/layers/support/TimeSeriesCalculation.js +1 -1
  292. package/layers/support/dataSeriesUtils.d.ts +10 -0
  293. package/layers/support/timeSeriesUtils.js +17 -6
  294. package/libs/lyr3d/Lyr3DModule.js +1 -1
  295. package/networks/UtilityNetwork.d.ts +15 -0
  296. package/networks/UtilityNetwork.js +1 -1
  297. package/package.json +4 -4
  298. package/popup/FeatureContent.d.ts +14 -1
  299. package/popup/FeatureContent.js +1 -1
  300. package/popup/FeatureContentCollection.d.ts +4 -10
  301. package/popup/FeatureContentCollection.js +1 -1
  302. package/popup/actions.js +1 -1
  303. package/popup/support/featureUtils.js +1 -1
  304. package/renderers/support/RenderingInfo.js +1 -1
  305. package/renderers/support/renderingInfoUtils.js +1 -1
  306. package/renderers/visualVariables/SizeVariable.d.ts +16 -20
  307. package/renderers/visualVariables/support/SizeStop.d.ts +6 -2
  308. package/rest/networks/support/TraceLocation.js +1 -1
  309. package/rest/networks/support/TraceResult.d.ts +7 -0
  310. package/rest/networks/support/TraceResult.js +1 -1
  311. package/smartMapping/renderers/color.js +1 -1
  312. package/smartMapping/renderers/opacity.js +1 -1
  313. package/smartMapping/renderers/size.js +1 -1
  314. package/smartMapping/renderers/support/timeSeriesUtils.js +1 -1
  315. package/smartMapping/statistics/histogramForTimeSeries.d.ts +11 -0
  316. package/smartMapping/statistics/histogramForTimeSeries.js +2 -0
  317. package/smartMapping/statistics/summaryStatisticsForTimeSeries.d.ts +11 -0
  318. package/smartMapping/statistics/summaryStatisticsForTimeSeries.js +2 -0
  319. package/smartMapping/statistics/support/timeSeriesUtils.js +24 -0
  320. package/smartMapping/statistics/types.d.ts +50 -0
  321. package/support/tests/serviceMockDependencies.js +1 -1
  322. package/support/tests/setupServiceMocksMesh.js +1 -1
  323. package/symbols/cim/CIMPlacements.js +1 -1
  324. package/symbols/cim/callouts/calloutAnalysisUtils.js +1 -1
  325. package/symbols/cim/callouts/effects/BackgroundCallout.js +1 -1
  326. package/symbols/cim/callouts/effects/BalloonCallout.js +1 -1
  327. package/symbols/cim/callouts/effects/PointSymbolCallout.js +1 -1
  328. package/symbols/cim/callouts/effects/calloutUtils.js +1 -1
  329. package/symbols/cim/cimAnalyzer.js +1 -1
  330. package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
  331. package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
  332. package/views/2d/engine/vectorTiles/decluttering/CollisionJob.js +1 -1
  333. package/views/2d/engine/vectorTiles/decluttering/SymbolFader.js +1 -1
  334. package/views/2d/engine/vectorTiles/decluttering/jobsUtil.js +1 -1
  335. package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
  336. package/views/2d/engine/webgl/definitions.js +1 -1
  337. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
  338. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
  339. package/views/2d/engine/webgl/shaderGraph/techniques/animated/ComputedAnimatedParams.js +1 -1
  340. package/views/2d/engine/webgl/shaderGraph/techniques/markers/ComputedMarkerParams.js +1 -1
  341. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/CalloutMeshWriterPolicy.js +1 -1
  342. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
  343. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextParams.js +1 -1
  344. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  345. package/views/2d/layers/SketchLayerView2D.js +1 -1
  346. package/views/2d/layers/features/layerAdapters/AnnotationLayerAdapter.js +1 -1
  347. package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
  348. package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +1 -1
  349. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  350. package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
  351. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  352. package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
  353. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  354. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  355. package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
  356. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  357. package/views/2d/layers/features/layerAdapters/labelingUtils.js +1 -1
  358. package/views/2d/layers/features/schema/ExceedsLimitCache.js +1 -1
  359. package/views/2d/layers/features/schema/TimeSchema.js +2 -0
  360. package/views/2d/layers/features/schema/processor/LabelMatcherSchema.js +1 -1
  361. package/views/2d/layers/features/schema/processor/MatcherSchema.js +1 -1
  362. package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
  363. package/views/2d/layers/features/sources/FeatureSourceQueryInfo.js +1 -1
  364. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  365. package/views/2d/layers/support/annodime/cimAnnotations.js +1 -1
  366. package/views/2d/layers/support/vectorTileDebugUtils.js +1 -1
  367. package/views/2d/layers/support/visualVariableSimpleUtils.js +1 -1
  368. package/views/2d/types.d.ts +2 -1
  369. package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
  370. package/views/3d/analysis/LineOfSight/LineOfSightItemManipulatedObject3D.js +1 -1
  371. package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
  372. package/views/3d/analysis/LineOfSightAnalysisView3D.d.ts +24 -0
  373. package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
  374. package/views/3d/analysis/Viewshed/ViewshedObserverManipulatedObject3D.js +1 -1
  375. package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
  376. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  377. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  378. package/views/3d/camera/constraintUtils.js +1 -1
  379. package/views/3d/input/handlers/ground/GroundDoubleClickMove.js +1 -1
  380. package/views/3d/input/handlers/ground/GroundNavigation.js +1 -1
  381. package/views/3d/interactive/editingTools/tooltipUtils3D.js +1 -1
  382. package/views/3d/interactive/placementTools/GroundNavigationPlacementTool3D.js +1 -1
  383. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  384. package/views/3d/layers/i3s/I3SOverrides.js +1 -1
  385. package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
  386. package/views/3d/state/controllers/GroundNavigationController.js +1 -1
  387. package/views/3d/state/controllers/momentum/GroundNavigationMomentumController.js +1 -1
  388. package/views/3d/state/utils/OffsetCorrectionController.js +1 -1
  389. package/views/3d/state/utils/groundNavigationUtils.js +1 -1
  390. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  391. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  392. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +16 -8
  393. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +5 -1
  394. package/views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js +12 -0
  395. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +2 -2
  396. package/views/3d/webgl-engine/effects/focusArea/FocusArea.glsl.js +1 -1
  397. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  398. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  399. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  400. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  401. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  402. package/views/SelectionManager.d.ts +3 -3
  403. package/views/draw/support/Reshape.js +1 -1
  404. package/views/interactive/options/bindViewToolOptions.js +1 -1
  405. package/views/interactive/sketch/SketchLabelOptions.d.ts +3 -0
  406. package/views/interactive/sketch/SketchLabelOptions.js +1 -1
  407. package/views/interactive/sketch/SketchTooltipOptions.d.ts +3 -0
  408. package/views/interactive/sketch/SketchTooltipOptions.js +1 -1
  409. package/views/interactive/sketch/SketchValueOptions.d.ts +3 -0
  410. package/views/interactive/sketch/SketchValueOptions.js +1 -1
  411. package/views/interactive/snapping/SnappingOptions.d.ts +3 -0
  412. package/views/interactive/snapping/SnappingOptions.js +1 -1
  413. package/views/interactive/snapping/snappingUtils.js +1 -1
  414. package/views/interactive/tooltip/fields/parsingAndFormattingUtils.js +1 -1
  415. package/views/layers/SketchLayerView.d.ts +34 -0
  416. package/views/layers/SketchLayerView.js +2 -0
  417. package/views/layers/types.d.ts +3 -2
  418. package/views/selection/types.d.ts +15 -4
  419. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  420. package/widgets/BasemapGallery.js +1 -1
  421. package/widgets/Bookmarks/BookmarksViewModel.d.ts +4 -0
  422. package/widgets/Bookmarks/BookmarksVisibleElements.d.ts +5 -1
  423. package/widgets/Bookmarks/types.d.ts +2 -0
  424. package/widgets/Editor/EditorViewModel.d.ts +31 -30
  425. package/widgets/Editor/EditorViewModel.js +1 -1
  426. package/widgets/Editor/components/Settings.js +1 -1
  427. package/widgets/Editor/types.d.ts +44 -0
  428. package/widgets/Editor.d.ts +30 -27
  429. package/widgets/Editor.js +1 -1
  430. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +1 -1
  431. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  432. package/widgets/FeatureTable/support/FeatureStore.d.ts +1 -1
  433. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  434. package/widgets/FeatureTable.d.ts +6 -0
  435. package/widgets/FeatureTable.js +1 -1
  436. package/widgets/Histogram/types.d.ts +10 -2
  437. package/widgets/HistogramRangeSlider/types.d.ts +4 -1
  438. package/widgets/LayerList/LayerListViewModel.d.ts +2 -1
  439. package/widgets/Legend/LegendViewModel.d.ts +2 -0
  440. package/widgets/Legend/styles/card/CardView.d.ts +2 -0
  441. package/widgets/Legend/styles/classic/ClassicView.d.ts +4 -1
  442. package/widgets/Legend.d.ts +3 -0
  443. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.d.ts +7 -0
  444. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  445. package/widgets/OrientedImageryViewer/components/OrientedImageryVideoViewModel.js +1 -1
  446. package/widgets/OrientedImageryViewer/support/VideoFeatureCache.js +2 -0
  447. package/widgets/OrientedImageryViewer/types.d.ts +9 -0
  448. package/widgets/OrientedImageryViewer.d.ts +7 -0
  449. package/widgets/OrientedImageryViewer.js +2 -2
  450. package/widgets/PanoramicVideoViewer.js +1 -1
  451. package/widgets/PanoramicViewer/PanoramicVideoViewerViewModel.js +1 -1
  452. package/widgets/ScaleRangeSlider/types.d.ts +9 -2
  453. package/widgets/Sketch/SketchViewModel.d.ts +32 -1
  454. package/widgets/Sketch/SketchViewModel.js +1 -1
  455. package/widgets/Sketch.d.ts +27 -1
  456. package/widgets/Sketch.js +1 -1
  457. package/widgets/Slider/types.d.ts +58 -13
  458. package/widgets/Slider.d.ts +6 -0
  459. package/widgets/smartMapping/BinaryColorSizeSlider/BinaryColorSizeSliderViewModel.d.ts +2 -0
  460. package/widgets/smartMapping/ClassedColorSlider/ClassedColorSliderViewModel.d.ts +2 -0
  461. package/widgets/smartMapping/ClassedSizeSlider/ClassedSizeSliderViewModel.d.ts +2 -0
  462. package/widgets/smartMapping/ColorSizeSlider/ColorSizeSliderViewModel.d.ts +2 -0
  463. package/widgets/smartMapping/ColorSlider/ColorSliderViewModel.d.ts +2 -0
  464. package/widgets/smartMapping/HeatmapSlider/HeatmapSliderViewModel.d.ts +2 -0
  465. package/widgets/smartMapping/OpacitySlider/OpacitySliderViewModel.d.ts +2 -0
  466. package/widgets/smartMapping/SizeSlider/SizeSliderViewModel.d.ts +3 -0
  467. package/widgets/smartMapping/SmartMappingPrimaryHandleSliderViewModel.d.ts +2 -0
  468. package/widgets/smartMapping/SmartMappingSliderViewModel.d.ts +2 -0
  469. package/widgets/smartMapping/types.d.ts +30 -7
  470. package/widgets/support/FilterBuilder/FilterBuilderViewModel.d.ts +21 -11
  471. package/widgets/support/FilterBuilder/FilterBuilderViewModel.js +1 -1
  472. package/widgets/support/FilterBuilder/types.d.ts +28 -0
  473. package/widgets/support/FilterBuilder.js +1 -1
  474. package/widgets/support/FilterCondition/FilterConditionViewModel.d.ts +24 -0
  475. package/widgets/support/FilterCondition/FilterConditionViewModel.js +1 -1
  476. package/widgets/support/FilterCondition/types.d.ts +16 -1
  477. package/widgets/support/FilterCondition.js +1 -1
  478. package/widgets/support/SnappingControls/snappingLayerListUtils.js +1 -1
  479. package/widgets/support/iconUtils.js +1 -1
  480. package/assets/esri/core/workers/chunks/0606ab6fdfc1dfea3856.js +0 -1
  481. package/assets/esri/core/workers/chunks/078dcd17f46403d44b24.js +0 -1
  482. package/assets/esri/core/workers/chunks/1289204f8ca96032c17a.js +0 -1
  483. package/assets/esri/core/workers/chunks/12b5a645c0987a0efe54.js +0 -2
  484. package/assets/esri/core/workers/chunks/152fe3d6ad7aebbd23d1.js +0 -1
  485. package/assets/esri/core/workers/chunks/17b938ba49fb1e7ab8c4.js +0 -1
  486. package/assets/esri/core/workers/chunks/1dbb3e25e005a8220779.js +0 -2
  487. package/assets/esri/core/workers/chunks/3d6fef25af7e1a51e1bd.js +0 -1
  488. package/assets/esri/core/workers/chunks/3ef367c9b7bf1588307d.js +0 -1
  489. package/assets/esri/core/workers/chunks/5f4feca26102088ea565.js +0 -1
  490. package/assets/esri/core/workers/chunks/74211d096cc3296e0968.js +0 -1
  491. package/assets/esri/core/workers/chunks/7926faab76a721a2e1c4.js +0 -1
  492. package/assets/esri/core/workers/chunks/ad28486bc6afaa346de5.js +0 -1
  493. package/assets/esri/core/workers/chunks/ad29c729e90b5866713c.js +0 -1
  494. package/assets/esri/core/workers/chunks/b72a2514aa4cc4ae7d1b.js +0 -1
  495. package/assets/esri/core/workers/chunks/bb51cf52b8ea8283f4f8.js +0 -1
  496. package/assets/esri/core/workers/chunks/be761749f8d77fbd9df5.js +0 -1
  497. package/assets/esri/core/workers/chunks/dbfd25aa0d19aed5890c.js +0 -1
  498. package/assets/esri/core/workers/chunks/de28a86775235bd5d3c4.js +0 -2
  499. package/assets/esri/core/workers/chunks/f6cfc901267a229de7a1.js +0 -2
  500. package/assets/esri/core/workers/chunks/fb147097149a89e671ff.js +0 -1
  501. package/support/revision.js +0 -2
  502. /package/assets/esri/core/workers/chunks/{1dbb3e25e005a8220779.js.LICENSE.txt → 1b946714ca4a1a7359d4.js.LICENSE.txt} +0 -0
  503. /package/assets/esri/core/workers/chunks/{f6cfc901267a229de7a1.js.LICENSE.txt → 2a1ec30f9ad305763f81.js.LICENSE.txt} +0 -0
  504. /package/assets/esri/core/workers/chunks/{c3b96d1d43afccd23e45.js.LICENSE.txt → 590e6c70206122e4cc3c.js.LICENSE.txt} +0 -0
  505. /package/assets/esri/core/workers/chunks/{cfaba0470619786e1ef8.js.LICENSE.txt → 68d8ae42ab71d01a70a5.js.LICENSE.txt} +0 -0
  506. /package/assets/esri/core/workers/chunks/{de28a86775235bd5d3c4.js.LICENSE.txt → 8dc1c3042267618fd710.js.LICENSE.txt} +0 -0
  507. /package/assets/esri/core/workers/chunks/{12b5a645c0987a0efe54.js.LICENSE.txt → 96c50a0dda0f1503ef92.js.LICENSE.txt} +0 -0
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{sliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{EvaluateAmbientOcclusion as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as ee}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{LineStipple as te,computePixelSize as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{mainLightIntensity as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{MarkerSizing as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{NormalUtils as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PiUtils as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{readFragmentShadow as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readFragmentShadow.glsl.js";import{metersPerRenderUnit as u,screenPixelSizePerDistance as d,inverseProjectionMatrix as f,nearFar as ne,viewport as re}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as m,NoPerspectiveRead as h}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as g,addPixelRatio as _,addCameraPosition as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as y}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as b}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as x}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as S,If as C}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{alphaCutoff as w}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{animatedAlpha as T}from"../views/3d/webgl-engine/shaders/animatedAlpha.glsl.js";import{outputColorHighlightOLID as E}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getTextureBackedBufferModule as D}from"../views/3d/webgl-engine/shaders/RibbonLineTextureBuffer.glsl.js";import{ShaderBuilder as O}from"../views/webgl/ShaderBuilder.js";const k=1;function A(k){let A=new O,{attributes:j,varyings:M,vertex:N,fragment:P}=A,{applyMarkerOffset:F,draped:I,shadingEnabled:L,output:R,capType:z,stippleEnabled:B,falloffEnabled:V,wireframe:H,innerColorEnabled:U,hasAnimation:W,hasScreenSizePerspective:G,worldSized:K,imagePattern:q}=k,J=z===2,Y=B&&J,X=V||Y,ie=B||J,Z=k.usePerspectiveCorrectStipple,Q=D(k).createBuilder(A,k);N.inputs.add(`position`,()=>Q.getTextureAttribute(`position`)),k.hasVVSize?N.inputs.add(`sizeFeatureAttribute`,()=>Q.getTextureAttribute(`sizeFeatureAttribute`)):N.inputs.add(`size`,()=>Q.getTextureAttribute(`size`)),k.hasVVOpacity&&N.inputs.add(`opacityFeatureAttribute`,()=>Q.getTextureAttribute(`opacityFeatureAttribute`)),k.hasVVColor?N.inputs.add(`colorFeatureAttribute`,()=>Q.getTextureAttribute(`colorFeatureAttribute`)):N.inputs.add(`color`,()=>Q.getTextureAttribute(`color`)),P.include(s),A.include(t,k),A.include(te,k),R===11?(A.varyings.add(`objectAndLayerIdColorVarying`,`vec4`),N.code.add(S`
2
+ import{sliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{evaluateSceneLightingFragment as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js";import{LineStipple as r,computePixelSize as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{NormalUtils as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PiUtils as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{metersPerRenderUnit as l,screenPixelSizePerDistance as u,inverseProjectionMatrix as d,nearFar as f,viewport as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as h,NoPerspectiveRead as g}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as _,addPixelRatio as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as y}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as b}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as x}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as S,If as C}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{alphaCutoff as w}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{animatedAlpha as T}from"../views/3d/webgl-engine/shaders/animatedAlpha.glsl.js";import{outputColorHighlightOLID as E}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getTextureBackedBufferModule as ee}from"../views/3d/webgl-engine/shaders/RibbonLineTextureBuffer.glsl.js";import{ShaderBuilder as D}from"../views/webgl/ShaderBuilder.js";const O=1;function k(O){let k=new D,{attributes:A,varyings:j,vertex:M,fragment:N}=k,{applyMarkerOffset:P,draped:F,shadingEnabled:I,output:L,capType:R,stippleEnabled:z,falloffEnabled:B,wireframe:V,innerColorEnabled:H,hasAnimation:U,hasScreenSizePerspective:W,worldSized:G,imagePattern:K}=O,q=R===2,J=z&&q,Y=B||J,X=z||q,Z=O.usePerspectiveCorrectStipple,Q=ee(O).createBuilder(k,O);M.inputs.add(`position`,()=>Q.getTextureAttribute(`position`)),O.hasVVSize?M.inputs.add(`sizeFeatureAttribute`,()=>Q.getTextureAttribute(`sizeFeatureAttribute`)):M.inputs.add(`size`,()=>Q.getTextureAttribute(`size`)),O.hasVVOpacity&&M.inputs.add(`opacityFeatureAttribute`,()=>Q.getTextureAttribute(`opacityFeatureAttribute`)),O.hasVVColor?M.inputs.add(`colorFeatureAttribute`,()=>Q.getTextureAttribute(`colorFeatureAttribute`)):M.inputs.add(`color`,()=>Q.getTextureAttribute(`color`)),N.include(s),k.include(t,O),k.include(r,O),L===11?(k.varyings.add(`objectAndLayerIdColorVarying`,`vec4`),M.code.add(S`
3
3
  vec4 getOlidColor() {
4
4
  return ${Q.getTextureAttribute(`olidColor`)};
5
5
  }
@@ -7,9 +7,9 @@ import{sliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.gls
7
7
  void forwardObjectAndLayerIdColor() {
8
8
  objectAndLayerIdColorVarying = getOlidColor();
9
9
  }
10
- `),P.code.add(S`void outputObjectAndLayerIdColor() {
10
+ `),N.code.add(S`void outputObjectAndLayerIdColor() {
11
11
  fragColor = objectAndLayerIdColorVarying;
12
- }`)):(N.code.add(S`void forwardObjectAndLayerIdColor() {}`),P.code.add(S`void outputObjectAndLayerIdColor() {}`));let $=F&&!I;if($&&A.include(a,k),g(N,k),I&&(K||B)){let e=K?`groundMetersToScreenRatio`:`planarDistanceToScreenRatio`;N.uniforms.add(new b(e,e=>1/(e.screenToPlanarDistanceRatio*(K?e.planarDistanceToGroundRatio:1))))}return K&&!I&&N.uniforms.add(u,d),N.uniforms.add(f,ne,re,new x(`miterLimit`,e=>e.join===`miter`?e.miterLimit:0)),N.constants.add(`LARGE_HALF_FLOAT`,`float`,65500),N.constants.add(`EPS`,`float`,.001),N.constants.add(`NUM_JOIN_SUBDIVISIONS`,`float`,k.numJoinSubdivisions),j.add(`textureElementIndex`,`uint`),j.add(`lineParameters`,`vec2`),M.add(`vColor`,`vec4`),M.add(`vpos`,`vec3`,{invariant:!0}),M.add(`vLineDistance`,`float`),M.add(`vLineWidth`,`float`),B||(M.add(`vIsInsideJoin`,`int`),M.add(`vStretchFactor`,`float`),M.add(`vJoinCenterLineSDFs`,`vec2`),M.add(`vSubdivisionFactor`,`float`)),B&&M.add(`vLineSizeInv`,`float`),X&&M.add(`vLineDistanceNorm`,`float`),J&&(M.add(`vSegmentSDF`,`float`),M.add(`vReverseSegmentSDF`,`float`)),N.code.add(S`vec3 perpendicular(vec3 v) {
12
+ }`)):(M.code.add(S`void forwardObjectAndLayerIdColor() {}`),N.code.add(S`void outputObjectAndLayerIdColor() {}`));let $=P&&!F;if($&&k.include(a,O),_(M,O),F&&(G||z)){let e=G?`groundMetersToScreenRatio`:`planarDistanceToScreenRatio`;M.uniforms.add(new b(e,e=>1/(e.screenToPlanarDistanceRatio*(G?e.planarDistanceToGroundRatio:1))))}return G&&!F&&M.uniforms.add(l,u),M.uniforms.add(d,f,p,new x(`miterLimit`,e=>e.join===`miter`?e.miterLimit:0)),M.constants.add(`LARGE_HALF_FLOAT`,`float`,65500),M.constants.add(`EPS`,`float`,.001),M.constants.add(`NUM_JOIN_SUBDIVISIONS`,`float`,O.numJoinSubdivisions),A.add(`textureElementIndex`,`uint`),A.add(`lineParameters`,`vec2`),j.add(`vColor`,`vec4`),j.add(`vpos`,`vec3`,{invariant:!0}),j.add(`vLineDistance`,`float`),j.add(`vLineWidth`,`float`),z||(j.add(`vIsInsideJoin`,`int`),j.add(`vStretchFactor`,`float`),j.add(`vJoinCenterLineSDFs`,`vec2`),j.add(`vSubdivisionFactor`,`float`)),z&&j.add(`vLineSizeInv`,`float`),Y&&j.add(`vLineDistanceNorm`,`float`),q&&(j.add(`vSegmentSDF`,`float`),j.add(`vReverseSegmentSDF`,`float`)),M.code.add(S`vec3 perpendicular(vec3 v) {
13
13
  return vec3(v.y, -v.x, 0.0);
14
14
  }
15
15
  float nearPlaneInterpolationFactor(float nearPlaneDistance, vec4 start, vec4 end) {
@@ -20,12 +20,12 @@ float s = sin(a);
20
20
  float c = cos(a);
21
21
  mat2 m = mat2(c, -s, s, c);
22
22
  return vec3(m * v.xy, v.z);
23
- }`),N.code.add(S`vec4 projectAndScale(vec4 pos) {
23
+ }`),M.code.add(S`vec4 projectAndScale(vec4 pos) {
24
24
  vec4 posNdc = proj * pos;
25
25
  posNdc.xy *= viewport.zw / posNdc.w;
26
26
  posNdc.z /= posNdc.w;
27
27
  return posNdc;
28
- }`),N.code.add(S`
28
+ }`),M.code.add(S`
29
29
  void clip(
30
30
  inout vec4 pos,
31
31
  inout vec4 prev,
@@ -75,13 +75,13 @@ return posNdc;
75
75
  }
76
76
  }
77
77
  }
78
- `),_(N),N.constants.add(`aaWidth`,`float`,+!B),N.main.add(S`
78
+ `),v(M),M.constants.add(`aaWidth`,`float`,+!z),M.main.add(S`
79
79
  vec3 position = ${Q.getTextureAttribute(`position`)};
80
80
  float u0 = ${Q.getTextureAttribute(`u0`)};
81
- ${C(K,S`
81
+ ${C(G,S`
82
82
  float prevU0 = ${Q.getTextureAttribute(`u0`,-1)};
83
83
  float nextU0 = ${Q.getTextureAttribute(`u0`,1)};
84
- ${C(!I,S`
84
+ ${C(!F,S`
85
85
  u0 *= metersPerRenderUnit;
86
86
  prevU0 *= metersPerRenderUnit;
87
87
  nextU0 *= metersPerRenderUnit;
@@ -108,11 +108,11 @@ return posNdc;
108
108
  vec4 next = view * vec4(nextPosition, 1.0);
109
109
 
110
110
  bool isJoin = vertexType < 3.0;
111
- `),$&&N.main.add(S`vec4 other = isStartVertex ? next : prev;
111
+ `),$&&M.main.add(S`vec4 other = isStartVertex ? next : prev;
112
112
  bool markersHidden = areWorldMarkersHidden(pos.xyz, other.xyz);
113
113
  if (!isJoin && !markersHidden) {
114
114
  pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
115
- }`),A.include(m),N.code.add(S`
115
+ }`),k.include(h),M.code.add(S`
116
116
  vec2 computeJoinAndCapDisplacement(
117
117
  bool isJoin,
118
118
  bool isStartVertex,
@@ -157,7 +157,7 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
157
157
  }
158
158
  }
159
159
 
160
- ${C(!B,S`
160
+ ${C(!z,S`
161
161
  // Compute stretch compensation for feathering.
162
162
  if (subdivisionFactor > 0.0) {
163
163
  vIsInsideJoin = 1;
@@ -192,10 +192,10 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
192
192
  `)}
193
193
 
194
194
  if (isOutside && displacementLen > miterLimit * lineWidth) {
195
- ${C(k.roundJoins,S`
195
+ ${C(O.roundJoins,S`
196
196
  vec3 startDir = perpendicular(leftLen < EPS ? right : left);
197
197
  vec3 endDir = perpendicular(rightLen < EPS ? left : right);
198
- float factor = ${B?S`min(1.0, subdivisionFactor * ((NUM_JOIN_SUBDIVISIONS + 1.0) / NUM_JOIN_SUBDIVISIONS))`:S`subdivisionFactor`};
198
+ float factor = ${z?S`min(1.0, subdivisionFactor * ((NUM_JOIN_SUBDIVISIONS + 1.0) / NUM_JOIN_SUBDIVISIONS))`:S`subdivisionFactor`};
199
199
 
200
200
  float rotationAngle = acos(clamp(dot(startDir.xy, endDir.xy), -1.0, 1.0));
201
201
  joinDisplacementDir = rotateZ(startDir, -lineSide * factor * rotationAngle);
@@ -211,18 +211,18 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
211
211
  vec3 startDir = perpendicular(leftLen < EPS ? right : left);
212
212
  vec3 endDir = perpendicular(rightLen < EPS ? left : right);
213
213
 
214
- ${C(B,S`joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? endDir : startDir;`,S`joinDisplacementDir = mix(startDir, endDir, subdivisionFactor);`)}
214
+ ${C(z,S`joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? endDir : startDir;`,S`joinDisplacementDir = mix(startDir, endDir, subdivisionFactor);`)}
215
215
  `)}
216
216
  displacementLen = lineWidth;
217
217
  }
218
218
  } else {
219
219
  joinDisplacementDir = perpendicular(isStartVertex ? right : left);
220
- ${z===0?``:S`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`}
220
+ ${R===0?``:S`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`}
221
221
  }
222
222
 
223
223
  return (joinDisplacementDir.xy * lineSide + capDisplacementDir.xy) * displacementLen;
224
224
  }
225
- `),N.main.add(S`
225
+ `),M.main.add(S`
226
226
  clip(pos, prev, next, ${C(Z,S`u0, prevU0, nextU0,`)} isStartVertex);
227
227
 
228
228
  vec3 clippedPos = pos.xyz;
@@ -235,12 +235,12 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
235
235
  vec3 left = (pos.xyz - prev.xyz);
236
236
  vec3 right = (next.xyz - pos.xyz);
237
237
 
238
- float lineSize = getSize(${C(G,`clippedPos`)});
239
- ${C(B&&G,`float patternLineSize = getSize(clippedCenter);`)}
240
- ${C(B&&!G,`float patternLineSize = lineSize;`)}
238
+ float lineSize = getSize(${C(W,`clippedPos`)});
239
+ ${C(z&&W,`float patternLineSize = getSize(clippedCenter);`)}
240
+ ${C(z&&!W,`float patternLineSize = lineSize;`)}
241
241
 
242
- ${C(K,S`
243
- ${C(I,S`float lineSizeScreen = lineSize * groundMetersToScreenRatio;`,S`
242
+ ${C(G,S`
243
+ ${C(F,S`float lineSizeScreen = lineSize * groundMetersToScreenRatio;`,S`
244
244
  float metersPerScreenPixel = max(-clippedPos.z, nearFar[0]) * metersPerRenderUnit * screenPixelSizePerDistance;
245
245
  float lineSizeScreen = lineSize / metersPerScreenPixel;
246
246
  `)}
@@ -262,14 +262,14 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
262
262
  `)}
263
263
 
264
264
  vLineWidth = noPerspectiveWrite(lineWidth, pos.w);
265
- ${B?S`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:``}
266
- `),ie&&N.main.add(S`
265
+ ${z?S`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:``}
266
+ `),X&&M.main.add(S`
267
267
  float isEndVertex = float(!isStartVertex);
268
268
  vec3 segmentOrigin = mix(pos.xyz, prev.xyz, isEndVertex);
269
269
  vec3 segment = mix(right, left, isEndVertex);
270
- ${J?S`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:``}
271
- `),N.main.add(S`
272
- ${C(!B,S`
270
+ ${q?S`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:``}
271
+ `),M.main.add(S`
272
+ ${C(!z,S`
273
273
  vIsInsideJoin = 0;
274
274
  vStretchFactor = 1.0;
275
275
  vSubdivisionFactor = 0.0;
@@ -300,10 +300,10 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
300
300
  float lineDistNorm = noPerspectiveWrite(lineSide, pos.w);
301
301
 
302
302
  vLineDistance = lineWidth * lineDistNorm;
303
- ${X?S`vLineDistanceNorm = lineDistNorm;`:``}
303
+ ${Y?S`vLineDistanceNorm = lineDistNorm;`:``}
304
304
 
305
305
  pos.xyz += displacement;
306
- `),B||N.main.add(S`if (isJoin) {
306
+ `),z||M.main.add(S`if (isJoin) {
307
307
  vec2 joinCenterToVertex = displacementXY;
308
308
  vec2 leftCenterlineDir = left.xy;
309
309
  vec2 rightCenterlineDir = right.xy;
@@ -318,30 +318,30 @@ dot(vec2(leftCenterlineDir.y, -leftCenterlineDir.x), joinCenterToVertex)
318
318
  ),
319
319
  pos.w
320
320
  );
321
- }`),J&&N.main.add(S`vec2 segmentDir = normalize(segment.xy);
321
+ }`),q&&M.main.add(S`vec2 segmentDir = normalize(segment.xy);
322
322
  vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin.xy, segmentDir)), pos.w);
323
- vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),B&&(I?N.main.add(S`float stippleDistanceToScreenRatio = ${K?`groundMetersToScreenRatio`:`planarDistanceToScreenRatio`};`):N.main.add(S`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
324
- float stippleDistanceToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),N.main.add(S`
323
+ vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),z&&(F?M.main.add(S`float stippleDistanceToScreenRatio = ${G?`groundMetersToScreenRatio`:`planarDistanceToScreenRatio`};`):M.main.add(S`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
324
+ float stippleDistanceToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),M.main.add(S`
325
325
  float segmentLengthScreenDouble = length(segment.xy);
326
326
  float segmentLengthScreen = segmentLengthScreenDouble * 0.5;
327
327
  float discreteStippleDistanceToScreenRatio = discretizeStippleDistanceToScreenRatio(stippleDistanceToScreenRatio);
328
- float segmentLengthRender = ${C(K,S`abs(mix(nextU0 - u0, u0 - prevU0, isEndVertex))`,S`length(mix(nextPosition - position, position - prevPosition, isEndVertex))`)};
328
+ float segmentLengthRender = ${C(G,S`abs(mix(nextU0 - u0, u0 - prevU0, isEndVertex))`,S`length(mix(nextPosition - position, position - prevPosition, isEndVertex))`)};
329
329
 
330
- ${C(!I||K,S`
331
- float segmentStartRender = ${C(K,S`mix(u0, prevU0, isEndVertex)`,S`mix(u0, u0 - segmentLengthRender, isEndVertex)`)};
330
+ ${C(!F||G,S`
331
+ float segmentStartRender = ${C(G,S`mix(u0, prevU0, isEndVertex)`,S`mix(u0, u0 - segmentLengthRender, isEndVertex)`)};
332
332
  `)}
333
333
 
334
334
  vStipplePatternStretch = stippleDistanceToScreenRatio / discreteStippleDistanceToScreenRatio;
335
- `),I?N.main.add(S`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteStippleDistanceToScreenRatio / stippleDistanceToScreenRatio;
336
- float startPseudoScreen = u0 * discreteStippleDistanceToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):N.main.add(S`float startPseudoScreen = segmentStartRender * discreteStippleDistanceToScreenRatio;
337
- float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceToScreenRatio;`),N.uniforms.add(new x(`stipplePatternPixelSize`,e=>r(e))),N.main.add(S`
335
+ `),F?M.main.add(S`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteStippleDistanceToScreenRatio / stippleDistanceToScreenRatio;
336
+ float startPseudoScreen = u0 * discreteStippleDistanceToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):M.main.add(S`float startPseudoScreen = segmentStartRender * discreteStippleDistanceToScreenRatio;
337
+ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceToScreenRatio;`),M.uniforms.add(new x(`stipplePatternPixelSize`,e=>i(e))),M.main.add(S`
338
338
  float patternLength = patternLineSize * stipplePatternPixelSize;
339
339
 
340
- ${C(K,S`
340
+ ${C(G,S`
341
341
  vStippleDistanceLimits = vec2(segmentStartRender, segmentStartRender + segmentLengthRender);
342
342
  vStipplePatternStretch = 1.0;
343
343
 
344
- ${C(q,S`
344
+ ${C(K,S`
345
345
  // The v-coordinate used in case of an image pattern.
346
346
  bool isLeft = lineSide < 0.0;
347
347
  vStippleV = isLeft ? 0.0 : 1.0;
@@ -385,7 +385,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceT
385
385
  isStartVertex ?
386
386
  vec2(-1e34, vStippleDistanceLimits.y) :
387
387
  vec2(vStippleDistanceLimits.x, 1e34);
388
- `)),N.main.add(S`
388
+ `)),M.main.add(S`
389
389
  // Convert back into NDC
390
390
  pos.xy = (pos.xy / viewport.zw) * pos.w;
391
391
  pos.z = pos.z * pos.w;
@@ -393,13 +393,13 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceT
393
393
  vColor = getColor();
394
394
  vColor.a = noPerspectiveWrite(vColor.a * coverage, pos.w);
395
395
 
396
- ${H&&!I?`pos.z -= EPS * pos.w;`:``}
396
+ ${V&&!F?`pos.z -= EPS * pos.w;`:``}
397
397
 
398
398
  // transform final position to camera space for slicing
399
399
  vpos = (inverseProjectionMatrix * pos).xyz;
400
400
  gl_Position = pos;
401
401
  forwardObjectAndLayerIdColor();
402
- }`),A.include(E,k),A.include(h),P.include(p),P.include(w),P.include(e,k),P.main.add(`discardBySlice(vpos);`),B||P.code.add(S`float lineFeatheringFactor(float lineWidth, float lineDistance) {
402
+ }`),k.include(E,O),k.include(g),N.include(m),N.include(w),N.include(e,O),N.main.add(`discardBySlice(vpos);`),z||N.code.add(S`float lineFeatheringFactor(float lineWidth, float lineDistance) {
403
403
  float stretchFactor = vIsInsideJoin == 1 ? noPerspectiveRead(vStretchFactor) : 1.0;
404
404
  float featherWidth = 2.0;
405
405
  float featherStartDistance = max(lineWidth - featherWidth / stretchFactor, 0.0);
@@ -411,35 +411,29 @@ float joinCenterDistance = abs(vSubdivisionFactor > 0.5 ? joinCenterSDFs.x : joi
411
411
  float straightFeather = (joinCenterDistance - straightFeatherStartDistance) / (lineWidth - straightFeatherStartDistance);
412
412
  feather = vIsInsideJoin == 1 ? max(feather, straightFeather) : feather;
413
413
  return 1.0 - clamp(feather, 0.0, 1.0);
414
- }`),P.main.add(S`
414
+ }`),N.main.add(S`
415
415
  float lineWidth = noPerspectiveRead(vLineWidth);
416
416
  float lineDistance = noPerspectiveRead(vLineDistance);
417
- ${C(X,S`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
418
- `),H?P.main.add(S`vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);`):(J&&P.main.add(S`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
417
+ ${C(Y,S`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
418
+ `),V?N.main.add(S`vec4 albedo = vec4(1.0, 0.0, 1.0, 1.0);
419
+ vec4 finalColor = albedo;`):(q&&N.main.add(S`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
419
420
  vec2 fragmentPosition = vec2(min(sdf, 0.0), lineDistance);
420
421
  float fragmentRadius = length(fragmentPosition);
421
422
  float fragmentCapSDF = (fragmentRadius - lineWidth) * 0.5;
422
423
  float capCoverage = clamp(0.5 - fragmentCapSDF, 0.0, 1.0);
423
424
  if (capCoverage < alphaCutoff) {
424
425
  discard;
425
- }`),Y?P.main.add(S`
426
+ }`),J?N.main.add(S`
426
427
  vec2 stipplePosition = vec2(
427
- min(getStippleSDF() * 2.0 - 1.0, 0.0),
428
+ min(getStippleCapDistance(), 0.0),
428
429
  ${Z?S`lineDistance / lineWidth`:S`lineDistanceNorm`}
429
430
  );
430
431
  float stippleRadius = length(stipplePosition * lineWidth);
431
432
  float stippleCapSDF = (stippleRadius - lineWidth) * 0.5; // Divide by 2 to transform from double pixel scale
432
433
  float stippleCoverage = clamp(0.5 - stippleCapSDF, 0.0, 1.0);
433
434
  float stippleAlpha = step(alphaCutoff, stippleCoverage);
434
- `):P.main.add(S`float stippleAlpha = getStippleAlpha(lineWidth);`),R!==11&&P.main.add(S`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),P.uniforms.add(new y(`intrinsicColor`,e=>e.color)).main.add(S`vec4 color = intrinsicColor * vColor;
435
- color.a = noPerspectiveRead(color.a);`),U&&P.uniforms.add(new y(`innerColor`,e=>e.innerColor??e.color),new x(`innerWidth`,(e,t)=>e.innerWidth*t.camera.pixelRatio)).main.add(S`float distToInner = abs(lineDistance) - innerWidth;
435
+ `):N.main.add(S`float stippleAlpha = getStippleAlpha(lineWidth);`),L!==11&&N.main.add(S`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),N.uniforms.add(new y(`intrinsicColor`,e=>e.color)).main.add(S`vec4 color = intrinsicColor * vColor;
436
+ color.a = noPerspectiveRead(color.a);`),H&&N.uniforms.add(new y(`innerColor`,e=>e.innerColor??e.color),new x(`innerWidth`,(e,t)=>e.innerWidth*t.camera.pixelRatio)).main.add(S`float distToInner = abs(lineDistance) - innerWidth;
436
437
  float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
437
438
  float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
438
- color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),P.main.add(S`vec4 finalColor = blendStipple(color, stippleAlpha);`),V&&(P.uniforms.add(new x(`falloff`,e=>e.falloff)),P.main.add(S`finalColor.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),B||P.main.add(S`finalColor.a *= lineFeatheringFactor(lineWidth, lineDistance);`),L&&(M.add(`vnormal`,`vec3`),N.include(o,k),N.main.add(S`vnormal = getLocalUp(vpos, localOrigin);
439
- forwardLinearDepthToReadShadow();`),A.include(l,k),v(P,k),P.include(ee,k),P.include(n,k),P.uniforms.add(i,N.uniforms.get(`localOrigin`)).main.add(S`vec3 posWorld = vpos + localOrigin;
440
- float additionalAmbientScale = additionalDirectedAmbientLight(posWorld);
441
- float shadow = readFragmentShadow(additionalAmbientScale);
442
- float ssao = evaluateAmbientOcclusionInverse();
443
- vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
444
- vec3 viewDirection = normalize(vpos - cameraPosition);
445
- finalColor = vec4(evaluateSceneLighting(vnormal, finalColor.rgb, shadow, 1.0 - ssao, additionalLight, viewDirection, vnormal), finalColor.a);`)),W&&(N.main.add(`vec4 animatedAlphaTimeStamps = ${Q.getTextureAttribute(`timeStamps`)};`),A.include(T,k),P.main.add(`finalColor.a *= animatedAlpha();`))),P.main.add(S`outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),A}const j=Object.freeze(Object.defineProperty({__proto__:null,build:A,numRoundJoinSubdivisions:1},Symbol.toStringTag,{value:`Module`}));export{j as R,A as b,k as n};
439
+ color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),N.main.add(`vec4 albedo = blendStipple(color, stippleAlpha);`),B&&(N.uniforms.add(new x(`falloff`,e=>e.falloff)),N.main.add(S`albedo.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),z||N.main.add(S`albedo.a *= lineFeatheringFactor(lineWidth, lineDistance);`),U&&(M.main.add(`vec4 animatedAlphaTimeStamps = ${Q.getTextureAttribute(`timeStamps`)};`),k.include(T,O),N.main.add(`albedo.a *= animatedAlpha();`)),I?(j.add(`vnormal`,`vec3`),M.include(o,O),M.main.add(`vnormal = getLocalUp(vpos, localOrigin);`),k.include(n,O),N.main.add(`vec4 finalColor = evaluateSceneLightingFragment(vpos, vnormal, albedo);`)):N.main.add(`vec4 finalColor = albedo;`)),N.main.add(S`outputColorHighlightOLID(applySlice(finalColor, vpos), albedo.rgb);`),k}const A=Object.freeze(Object.defineProperty({__proto__:null,build:k,numRoundJoinSubdivisions:1},Symbol.toStringTag,{value:`Module`}));export{A as R,k as b,O as n};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{P as e}from"./Point2D.js";import{h as t,G as n,a as r}from"./Geometry.js";import{Envelope2D as i}from"./Envelope2D.js";import{K as a}from"./UnitFactory.js";function o(){return s(new e,-1,NaN)}function s(e,t,n){return{m_coordinate:e.clone(),m_vertexIndex:t,m_geometryIndex:0,m_distance:n,m_bRightSide:!1,isEmpty:c}}function c(){return Number.isNaN(this.m_distance)}function l(e,r,a=-1,o=-1){if(e.isEmpty())return 3;let s=e.getGeometryType();if(t(s))return u(e,r,a,o);if(s===n.enumPolygon)return d(e,r,a,o);if(s===n.enumPolyline)return f(e,r,a,o);if(s===n.enumEnvelope){let t=new i;return e.queryEnvelope(t),t.contains(r)?t.containsExclusive(r)?1:2:0}return 3}function u(t,n,i,a){if(i>=0||a>=0)return r(``);if(t.isDegenerate(0))return t.getStartXY().equals(n)?2:3;if(!t.isCurve()){let r=e.orientationRobust(n,t.getStartXY(),t.getEndXY());return r<0?1:r>0?0:2}let o=t.getClosestCoordinate(n,!1),s=t.getTangent(o),c=t.getCoord2D(o),l=e.orientationRobust(n,c,c.add(s));return l<0?1:l>0?0:2}function d(e,t,n,o){(n>=0||o>=0)&&r(``);let s=new i;e.queryEnvelope(s);let c=a(e,t,0);return c===0?0:c===1?1:2}function f(t,n,i,a){(i<0&&a>=0||i>=0&&a<0)&&r(``);let o=t.querySegmentIterator();if(i<0){let t=Number.MAX_VALUE,r=0;for(;o.nextPath();)for(;o.hasNextSegment();){let s=o.nextSegment(),c=s.getClosestCoordinate(n,!1),l=s.getCoord2D(c),u=e.sqrDistance(l,n);u<t?(r=1,i=o.getStartPointIndex(),a=o.getPathIndex(),t=u):u===t&&r++}if(r===0)return 3;if(r===1)return o.resetToVertex(i,a),l(o.nextSegment(),n)}let s=g(n,o,i,a);if(s.i1!==-1&&s.i2===-1)return+!!s.bRight1;if(s.i1!==-1&&s.i2!==-1){if(s.bRight1===s.bRight2)return+!!s.bRight1;{o.resetToVertex(s.i1,-1);let e=o.nextSegment().getTangent(1);o.resetToVertex(s.i2,-1);let t=o.nextSegment().getTangent(0);return+(e.crossProduct(t)>=0)}}return o.resetToVertex(i,a),l(o.nextSegment(),n)}function p(e,t,n){for(e.resetToVertex(t,n);e.hasNextSegment();)if(!e.nextSegment().isDegenerate(0))return e.getStartPointIndex();for(e.resetToVertex(t,n);e.hasPreviousSegment();)if(!e.previousSegment().isDegenerate(0))return e.getStartPointIndex();return-1}function m(e,t){for(e.resetToVertex(t,-1),e.nextSegment();e.hasNextSegment();)if(!e.nextSegment().isDegenerate(0))return e.getStartPointIndex();return-1}function h(e,t){for(e.resetToVertex(t,-1);e.hasPreviousSegment();)if(!e.previousSegment().isDegenerate(0))return e.getStartPointIndex();return-1}function g(t,n,r,i){let a={i1:-1,i2:-1,bRight1:!1,bRight2:!1};if(a.i1=p(n,r,i),a.i1!==-1){n.resetToVertex(a.i1,-1);let r=n.nextSegment(),i=r.getClosestCoordinate(t,!1),o=r.getCoord2D(i),s=e.sqrDistance(o,t);{let e=o.clone();e.subThis(r.getStartXY());let n=t.clone();n.subThis(r.getStartXY()),a.bRight1=e.crossProduct(n)<0}if(a.i2=m(n,a.i1),a.i2!==-1){n.resetToVertex(a.i2,-1);let r=n.nextSegment(),i=r.getClosestCoordinate(t,!1),o=r.getCoord2D(i);if(e.sqrDistance(o,t)>s)a.i2=-1;else{let e=o.clone();e.subThis(r.getStartXY());let n=t.clone();n.subThis(r.getStartXY()),a.bRight2=e.crossProduct(n)<0}}if(a.i2===-1&&(a.i2=h(n,a.i1),a.i2!==-1)){n.resetToVertex(a.i2,-1);let r=n.nextSegment(),i=r.getClosestCoordinate(t,!1),o=r.getCoord2D(i);if(e.sqrDistance(o,t)>s)a.i2=-1;else{let e=o.clone();e.subThis(r.getStartXY());let n=t.clone();n.subThis(r.getStartXY()),a.bRight2=e.crossProduct(n)<0;let i=a.i1;a.i1=a.i2,a.i2=i;let s=a.bRight1;a.bRight1=a.bRight2,a.bRight2=s}}}return a}export{s as a,l as c,o as m};
2
+ import{P as e}from"./Point2D.js";import{h as t,G as n,b as r}from"./Geometry.js";import{Envelope2D as i}from"./Envelope2D.js";import{K as a}from"./UnitFactory.js";function o(){return s(new e,-1,NaN)}function s(e,t,n){return{m_coordinate:e.clone(),m_vertexIndex:t,m_geometryIndex:0,m_distance:n,m_bRightSide:!1,isEmpty:c}}function c(){return Number.isNaN(this.m_distance)}function l(e,r,a=-1,o=-1){if(e.isEmpty())return 3;let s=e.getGeometryType();if(t(s))return u(e,r,a,o);if(s===n.enumPolygon)return d(e,r,a,o);if(s===n.enumPolyline)return f(e,r,a,o);if(s===n.enumEnvelope){let t=new i;return e.queryEnvelope(t),t.contains(r)?t.containsExclusive(r)?1:2:0}return 3}function u(t,n,i,a){if(i>=0||a>=0)return r(``);if(t.isDegenerate(0))return t.getStartXY().equals(n)?2:3;if(!t.isCurve()){let r=e.orientationRobust(n,t.getStartXY(),t.getEndXY());return r<0?1:r>0?0:2}let o=t.getClosestCoordinate(n,!1),s=t.getTangent(o),c=t.getCoord2D(o),l=e.orientationRobust(n,c,c.add(s));return l<0?1:l>0?0:2}function d(e,t,n,o){(n>=0||o>=0)&&r(``);let s=new i;e.queryEnvelope(s);let c=a(e,t,0);return c===0?0:c===1?1:2}function f(t,n,i,a){(i<0&&a>=0||i>=0&&a<0)&&r(``);let o=t.querySegmentIterator();if(i<0){let t=Number.MAX_VALUE,r=0;for(;o.nextPath();)for(;o.hasNextSegment();){let s=o.nextSegment(),c=s.getClosestCoordinate(n,!1),l=s.getCoord2D(c),u=e.sqrDistance(l,n);u<t?(r=1,i=o.getStartPointIndex(),a=o.getPathIndex(),t=u):u===t&&r++}if(r===0)return 3;if(r===1)return o.resetToVertex(i,a),l(o.nextSegment(),n)}let s=g(n,o,i,a);if(s.i1!==-1&&s.i2===-1)return+!!s.bRight1;if(s.i1!==-1&&s.i2!==-1){if(s.bRight1===s.bRight2)return+!!s.bRight1;{o.resetToVertex(s.i1,-1);let e=o.nextSegment().getTangent(1);o.resetToVertex(s.i2,-1);let t=o.nextSegment().getTangent(0);return+(e.crossProduct(t)>=0)}}return o.resetToVertex(i,a),l(o.nextSegment(),n)}function p(e,t,n){for(e.resetToVertex(t,n);e.hasNextSegment();)if(!e.nextSegment().isDegenerate(0))return e.getStartPointIndex();for(e.resetToVertex(t,n);e.hasPreviousSegment();)if(!e.previousSegment().isDegenerate(0))return e.getStartPointIndex();return-1}function m(e,t){for(e.resetToVertex(t,-1),e.nextSegment();e.hasNextSegment();)if(!e.nextSegment().isDegenerate(0))return e.getStartPointIndex();return-1}function h(e,t){for(e.resetToVertex(t,-1);e.hasPreviousSegment();)if(!e.previousSegment().isDegenerate(0))return e.getStartPointIndex();return-1}function g(t,n,r,i){let a={i1:-1,i2:-1,bRight1:!1,bRight2:!1};if(a.i1=p(n,r,i),a.i1!==-1){n.resetToVertex(a.i1,-1);let r=n.nextSegment(),i=r.getClosestCoordinate(t,!1),o=r.getCoord2D(i),s=e.sqrDistance(o,t);{let e=o.clone();e.subThis(r.getStartXY());let n=t.clone();n.subThis(r.getStartXY()),a.bRight1=e.crossProduct(n)<0}if(a.i2=m(n,a.i1),a.i2!==-1){n.resetToVertex(a.i2,-1);let r=n.nextSegment(),i=r.getClosestCoordinate(t,!1),o=r.getCoord2D(i);if(e.sqrDistance(o,t)>s)a.i2=-1;else{let e=o.clone();e.subThis(r.getStartXY());let n=t.clone();n.subThis(r.getStartXY()),a.bRight2=e.crossProduct(n)<0}}if(a.i2===-1&&(a.i2=h(n,a.i1),a.i2!==-1)){n.resetToVertex(a.i2,-1);let r=n.nextSegment(),i=r.getClosestCoordinate(t,!1),o=r.getCoord2D(i);if(e.sqrDistance(o,t)>s)a.i2=-1;else{let e=o.clone();e.subThis(r.getStartXY());let n=t.clone();n.subThis(r.getStartXY()),a.bRight2=e.crossProduct(n)<0;let i=a.i1;a.i1=a.i2,a.i2=i;let s=a.bRight1;a.bRight1=a.bRight2,a.bRight2=s}}}return a}export{s as a,l as c,o as m};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as t}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{normalize as n,set as r}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{addLinearDepth as a}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{sliceDraw as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as s}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as u}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{outputDepth as d}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as f}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{EvaluateAmbientOcclusion as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as h,addAmbientBoostFactor as g,addLightingGlobalFactor as _}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{mainLightDirection as v,mainLightIntensity as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{readShadowDraw as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js";import{OverlayTerrain as S}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as C,TerrainTexture as w}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{viewNormal as T,nearFar as E}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{addProjViewLocalOrigin as D,addCameraPosition as O}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as k}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as A,If as j}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as M}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{Texture2DBindUniform as N}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{alphaCutoff as P}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as F}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as I}from"../views/webgl/ShaderBuilder.js";class L extends C{constructor(){super(...arguments),this.useStencil=!1}}function R(t){let i=new I,{attributes:C,vertex:L,fragment:R,varyings:V}=i;C.add(`position`,`vec3`),i.include(c,t),i.include(l,t);let H=()=>{L.include(b,t),L.code.add(A`vec3 getNormal() {
2
+ import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as t}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{normalize as n,set as r}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{addLinearDepth as a}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{sliceDraw as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as s}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as u}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{outputDepth as d}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as f}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{EvaluateAmbientOcclusion as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as h,addAmbientBoostFactor as g,lightingGlobalFactor as _}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{mainLightDirection as v,mainLightIntensity as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{readShadowDraw as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js";import{OverlayTerrain as S}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as C,TerrainTexture as w}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{viewNormal as T,nearFar as E}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{addProjViewLocalOrigin as D,addCameraPosition as O}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as k}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as A,If as j}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as M}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{Texture2DBindUniform as N}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{alphaCutoff as P}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as F}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as I}from"../views/webgl/ShaderBuilder.js";class L extends C{constructor(){super(...arguments),this.useStencil=!1}}function R(t){let i=new I,{attributes:C,vertex:L,fragment:R,varyings:V}=i;C.add(`position`,`vec3`),i.include(c,t),i.include(l,t);let H=()=>{L.include(b,t),L.code.add(A`vec3 getNormal() {
3
3
  float z = 1.0 - abs(normalCompressed.x) - abs(normalCompressed.y);
4
4
  vec3 n = vec3(normalCompressed + vec2(normalCompressed.x >= 0.0 ? 1.0 : -1.0,
5
5
  normalCompressed.y >= 0.0 ? 1.0 : -1.0) * min(z, 0.0), z);
@@ -16,7 +16,7 @@ return normalize(n);
16
16
  ${j(q,`setOverlayVTC(uv0);`)}
17
17
  ${j(G,`forwardTextureCoordinates();`)}
18
18
  forwardLinearDepthToReadShadow();
19
- `),i.include(x,t),R.include(o,t),R.include(h,t),R.include(m,t),i.include(F,t),O(R,t),g(R),_(R),R.uniforms.add(L.uniforms.get(`localOrigin`),new k(`viewDirection`,({camera:e})=>n(B,r(B,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14])))),s&&R.uniforms.add(new N(`ovWaterTex`,e=>e.overlay?.getTexture(3)),new M(`view`,({origin:t},{camera:n})=>e(z,n.viewMatrix,t))),R.uniforms.add(v,y).main.add(A`
19
+ `),i.include(x,t),R.include(o,t),R.include(h,t),R.include(m,t),i.include(F,t),O(R,t),g(R),R.uniforms.add(_),R.uniforms.add(L.uniforms.get(`localOrigin`),new k(`viewDirection`,({camera:e})=>n(B,r(B,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14])))),s&&R.uniforms.add(new N(`ovWaterTex`,e=>e.overlay?.getTexture(3)),new M(`view`,({origin:t},{camera:n})=>e(z,n.viewMatrix,t))),R.uniforms.add(v,y).main.add(A`
20
20
  vec3 normal = normalize(vnormal);
21
21
  float lightAlignment = dot(normal, mainLightDirection);
22
22
 
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{g as e,a as t,b as n}from"./Geometry.js";import{m as r,P as i,a,M as o,b as s,c}from"./Point2D.js";class l{data;N;M;constructor(e,t,n){if(e instanceof l){this.data=e.data,this.N=e.N,this.M=e.M,e.data=null,e.N=0,e.M=0;return}this.data=e,this.N=t,this.M=n}assignCopy(t){return this===t?this:(e(this.N*this.M===t.N*t.M),this.data.set(t.data),this.N=t.N,this.M=t.M,this)}setZero(){return this.data?.fill(0),this}setIdentity(){for(let e=0;e<this.N;e++)for(let t=0;t<this.M;t++)this.setRowCol(e,t,+(e===t));return this}rows(){return this.N}cols(){return this.M}row(t){return e(0),{}}set(e,t){return this.data[e]=t,this}setRowCol(e,t,n){return this.data[e*this.M+t]=n,this}at(e){return this.data[e]}atRowCol(e,t){return this.data[e*this.M+t]}mulScalar(t,n){e(0)}mul(t,n){if(e(this.M===t.rows()),e(this.N===n.rows()),e(t.cols()===n.cols()),n===this){let e=new Float64Array(this.N*this.M),r=new l(e,this.N,this.M);this.mul(t,r),n.assignCopy(r);return}if(n===t){let e=new Float64Array(t.N*t.M),r=new l(e,t.N,t.M);this.mul(t,r),n.assignCopy(r);return}let r=t.cols();for(let e=0;e<this.N;e++)for(let i=0;i<r;i++){let r=0;for(let n=0;n<this.M;n++)r+=this.atRowCol(e,n)*t.atRowCol(n,i);n.setRowCol(e,i,r)}}mulTranspose(t,n){if(e(this.M===t.cols()),e(this.N===n.rows()),e(t.rows()===n.cols()),n===this){let e=new Float64Array(this.N*this.M),r=new l(e,this.N,this.M);this.mulTranspose(t,r),n.assignCopy(r);return}if(n===t){let e=new Float64Array(t.N*t.M),r=new l(e,t.N,t.M);this.mulTranspose(t,r),n.assignCopy(r);return}let r=t.rows();for(let e=0;e<this.N;e++)for(let i=0;i<r;i++){let r=0;for(let n=0;n<this.M;n++)r+=this.atRowCol(e,n)*t.atRowCol(i,n);n.setRowCol(e,i,r)}}mulLeft(t,n){e(0)}mulLeftTranspose(t,n){e(0)}mulDiag(t,n){if(e(this.M===t.N*t.M),e(this.N===n.rows()),e(this.M===n.cols()),n===this){let e=new Float64Array(this.N*this.M),r=new l(e,this.N,this.M);this.mulDiag(t,r),n.assignCopy(r);return}let r=this.M;for(let e=0;e<this.N;e++)for(let i=0;i<r;i++)n.setRowCol(e,i,this.atRowCol(e,i)*t.at(i))}transposeInPlace(){if(this.N===this.M){for(let e=0;e<this.N;e++)for(let t=e+1;t<this.M;t++){let n=this.atRowCol(e,t);this.setRowCol(e,t,this.atRowCol(t,e)),this.setRowCol(t,e,n)}return this}let e=new Float64Array(this.N*this.M),t=new l(e,this.N,this.M);return t.assignCopy(this),this.M=c(this.N,this.N=this.M),t.transpose(this),this}transpose(e){if(this===e){e.transposeInPlace();return}l.checkDims(e,this.M,this.N);for(let t=0;t<this.N;t++)for(let n=0;n<this.M;n++)e.setRowCol(n,t,this.atRowCol(t,n))}add(e,t){}svd(t,n,r,i=!1){if(l.checkDims(t,this.N,this.M),l.checkDims(n,this.M,1),l.checkDims(r,this.M,this.M),i){if(e(this.N===this.M),!this.symmetricEigen(n,r))return!1;for(let e=0;e<this.M;++e)n.at(e)<0&&n.set(e,0);return t.assignCopy(r),!0}let a=0,o=0,s,c,u,d,f,p,m,h=0,g=0,_=0,v=this.M,y=this.N;t.assignCopy(this);let b=new Float64Array(v),x=new l(b,v,1),S=(e,t)=>t>=0?Math.abs(e):-Math.abs(e),C=(e,t)=>{if(e=Math.abs(e),t=Math.abs(t),e>t){let n=t/e;return e*Math.sqrt(n*n+1)}if(t>0){let n=e/t;return t*Math.sqrt(n*n+1)}return 0};for(let e=0;e<v;e++){if(a=e+1,x.set(e,g*h),h=d=g=0,e<y){for(let n=e;n<y;n++)g+=Math.abs(t.atRowCol(n,e));if(g){for(let n=e;n<y;n++)t.setRowCol(n,e,t.atRowCol(n,e)/g),d+=t.atRowCol(n,e)*t.atRowCol(n,e);c=t.atRowCol(e,e),h=-S(Math.sqrt(d),c),u=c*h-d,t.setRowCol(e,e,c-h);for(let n=a;n<v;n++){d=0;for(let r=e;r<y;r++)d+=t.atRowCol(r,e)*t.atRowCol(r,n);c=d/u;for(let r=e;r<y;r++)t.setRowCol(r,n,t.atRowCol(r,n)+c*t.atRowCol(r,e))}for(let n=e;n<y;n++)t.setRowCol(n,e,t.atRowCol(n,e)*g)}}if(n.set(e,g*h),h=d=g=0,e<y&&e!==v-1){for(let n=a;n<v;n++)g+=Math.abs(t.atRowCol(e,n));if(g){for(let n=a;n<v;n++)t.setRowCol(e,n,t.atRowCol(e,n)/g),d+=t.atRowCol(e,n)*t.atRowCol(e,n);c=t.atRowCol(e,a),h=-S(Math.sqrt(d),c),u=c*h-d,t.setRowCol(e,a,c-h);for(let n=a;n<v;n++)x.set(n,t.atRowCol(e,n)/u);for(let n=a;n<y;n++){d=0;for(let r=a;r<v;r++)d+=t.atRowCol(n,r)*t.atRowCol(e,r);for(let e=a;e<v;e++)t.setRowCol(n,e,t.atRowCol(n,e)+d*x.at(e))}for(let n=a;n<v;n++)t.setRowCol(e,n,t.atRowCol(e,n)*g)}}let r=Math.abs(n.at(e))+Math.abs(x.at(e));_=r>_?r:_}for(let e=v-1;e>=0;e--){if(e<v-1){if(h){for(let n=a;n<v;n++)r.setRowCol(n,e,t.atRowCol(e,n)/t.atRowCol(e,a)/h);for(let n=a;n<v;n++){d=0;for(let i=a;i<v;i++)d+=t.atRowCol(e,i)*r.atRowCol(i,n);for(let t=a;t<v;t++)r.setRowCol(t,n,r.atRowCol(t,n)+d*r.atRowCol(t,e))}}for(let t=a;t<v;t++)r.setRowCol(e,t,0),r.setRowCol(t,e,0)}r.setRowCol(e,e,1),h=x.at(e),a=e}let w=y<v?y:v;for(let e=w-1;e>=0;e--){a=e+1,h=n.at(e);for(let n=a;n<v;n++)t.setRowCol(e,n,0);if(h){h=1/h;for(let n=a;n<v;n++){d=0;for(let r=a;r<y;r++)d+=t.atRowCol(r,e)*t.atRowCol(r,n);c=d/t.atRowCol(e,e)*h;for(let r=e;r<y;r++)t.setRowCol(r,n,t.atRowCol(r,n)+c*t.atRowCol(r,e))}for(let n=e;n<y;n++)t.setRowCol(n,e,t.atRowCol(n,e)*h)}else for(let n=e;n<y;n++)t.setRowCol(n,e,0);t.setRowCol(e,e,t.atRowCol(e,e)+1)}for(let e=v-1;e>=0;e--)for(let i=1;;i++){let l=1;for(a=e;a>=0;a--){if(o=a-1,Math.abs(x.at(a))+_===_){l=0;break}if(Math.abs(n.at(o))+_===_)break}if(l){s=0,d=1;for(let r=a;r<=e&&(c=d*x.at(r),x.set(r,x.at(r)*s),Math.abs(c)+_!==_);r++){h=n.at(r),u=C(c,h),n.set(r,u),u=1/u,s=h*u,d=-c*u;for(let e=0;e<y;e++)p=t.atRowCol(e,o),m=t.atRowCol(e,r),t.setRowCol(e,o,p*s+m*d),t.setRowCol(e,r,m*s-p*d)}}if(m=n.at(e),a===e){if(m<0){n.set(e,-m);for(let t=0;t<v;t++)r.setRowCol(t,e,-r.atRowCol(t,e))}break}if(i===100)return!1;f=n.at(a),o=e-1,p=n.at(o),h=x.at(o),u=x.at(e),c=((p-m)*(p+m)+(h-u)*(h+u))/(2*u*p),h=C(c,1),c=((f-m)*(f+m)+u*(p/(c+S(h,c))-u))/f,s=d=1;for(let e=a;e<=o;e++){let i=e+1;h=x.at(i),p=n.at(i),u=d*h,h=s*h,m=C(c,u),x.set(e,m),s=c/m,d=u/m,c=f*s+h*d,h=h*s-f*d,u=p*d,p*=s;for(let t=0;t<v;t++)f=r.atRowCol(t,e),m=r.atRowCol(t,i),r.setRowCol(t,e,f*s+m*d),r.setRowCol(t,i,m*s-f*d);m=C(c,u),n.set(e,m),m&&(m=1/m,s=c*m,d=u*m),c=s*h+d*p,f=s*p-d*h;for(let n=0;n<y;n++)p=t.atRowCol(n,e),m=t.atRowCol(n,i),t.setRowCol(n,e,p*s+m*d),t.setRowCol(n,i,m*s-p*d)}x.set(a,0),x.set(e,c),n.set(e,f)}let T=new Float64Array(this.N),E=new Float64Array(this.M),D=new l(T,this.N,1),O=new l(E,this.M,1),k=1;do k*=3,k++;while(k<=this.M);do{k/=3,k=Math.trunc(k);for(let e=k;e<this.M;e++){let i=n.at(e);for(let n=0;n<this.N;n++)D.set(n,t.atRowCol(n,e));for(let t=0;t<this.M;t++)O.set(t,r.atRowCol(t,e));let a=e;for(;n.at(a-k)<i;){n.set(a,n.at(a-k));for(let e=0;e<this.N;e++)t.setRowCol(e,a,t.atRowCol(e,a-k));for(let e=0;e<this.M;e++)r.setRowCol(e,a,r.atRowCol(e,a-k));if(a-=k,a<k)break}n.set(a,i);for(let e=0;e<this.N;e++)t.setRowCol(e,a,D.at(e));for(let e=0;e<this.M;e++)r.setRowCol(e,a,O.at(e))}}while(k>1);for(let e=0;e<this.M;e++){let n=0;for(let r=0;r<this.N;r++)t.atRowCol(r,e)<0&&n++;for(let t=0;t<this.M;t++)r.atRowCol(t,e)<0&&n++;if(n>Math.trunc((this.N+this.M)/2)){for(let n=0;n<this.N;n++)t.setRowCol(n,e,-t.atRowCol(n,e));for(let t=0;t<this.M;t++)r.setRowCol(t,e,-r.atRowCol(t,e))}}return!0}isSymmetric(){if(this.N!==this.M)return!1;for(let e=0;e<this.N;e++)for(let t=e+1;t<this.M;t++)if(this.atRowCol(e,t)!==this.atRowCol(t,e))return!1;return!0}isZero(){return e(0),!1}isIdentity(){return e(0),!1}equals(t,n){if(n!==void 0&&e(0),this.N!==t.N||this.M!==t.M)return!1;for(let e=0;e<this.N*this.M;e++)if(this.data[e]!==t.data[e])return!1;return!0}maxElement(){return e(0),0}minElement(){return e(0),0}determinant(){if(e(this.N===this.M),this.N===1)return this.data[0];if(this.N===2)return this.data[0]*this.data[3]-this.data[1]*this.data[2];if(this.N===3){let e=this;return e.atRowCol(0,0)*(e.atRowCol(1,1)*e.atRowCol(2,2)-e.atRowCol(1,2)*e.atRowCol(2,1))-e.atRowCol(0,1)*(e.atRowCol(1,0)*e.atRowCol(2,2)-e.atRowCol(2,0)*e.atRowCol(1,2))+e.atRowCol(0,2)*(e.atRowCol(1,0)*e.atRowCol(2,1)-e.atRowCol(1,1)*e.atRowCol(2,0))}let t=new Float64Array(this.N*this.N),n=new l(t,this.N,this.N),r=new Float64Array(this.N);if(!this.luDecomposition(n,r))return 0;let i=1;for(let e=0;e<this.N;e++)i*=n.atRowCol(e,e),r[e]!==e&&(i=-i);return i}submatrix(t,n,r){e(0)}inverse(t){e(0)}pseudoInverse(e,t=!1,n=2220446049250313e-31){if(e.setZero(),this.N===1&&this.M===1)return this.atRowCol(0,0)===0?e.setRowCol(0,0,0):e.setRowCol(0,0,1/this.atRowCol(0,0)),!0;if(this.N===2&&this.M===2){let t=this.atRowCol(0,0)*this.atRowCol(1,1)-this.atRowCol(0,1)*this.atRowCol(1,0),n=(Math.abs(this.atRowCol(0,0)*this.atRowCol(1,1))+Math.abs(this.atRowCol(0,1)*this.atRowCol(1,0)))*1e-5;if(Math.abs(t)>n)return e.setRowCol(0,0,this.atRowCol(1,1)/t),e.setRowCol(0,1,-this.atRowCol(0,1)/t),e.setRowCol(1,0,-this.atRowCol(1,0)/t),e.setRowCol(1,1,this.atRowCol(0,0)/t),!0}let r=new Float64Array(this.N*this.M),i=new l(r,this.N,this.M),a=new Float64Array(this.M),o=new l(a,this.M,1),s=new Float64Array(this.M*this.M),c=new l(s,this.M,this.M);if(!this.svd(i,o,c,t))return!1;let u=Math.max(this.N,this.M),d=n*Math.abs(o.at(0))*u;for(let e=0;e<this.M;e++)o.at(e)>d?o.set(e,1/o.at(e)):o.set(e,0);return c.mulDiag(o,e),e.mulTranspose(i,e),!0}luDecomposition(t,n){return e(0),!1}symmetricEigen(t,n){e(this.rows()===this.cols()),e(this.rows()===t.rows()),e(n.rows()===n.cols()&&n.rows()===this.rows()),e(this.isSymmetric());let r=new Float64Array(this.N*this.M),i=new l(r,this.N,this.M);i.assignCopy(this);let a=100/2**-52,o=this.rows(),s=new Float64Array(o),c=new Float64Array(o),u=new l(s,o,1),d=new l(c,o,1);for(let e=0;e<o;e++)u.set(e,i.atRowCol(e,e)),t.set(e,i.atRowCol(e,e)),d.set(e,0);n.setIdentity();let f=()=>{let e=u;n.transposeInPlace();let r=1;do r*=3,r++;while(r<=o);do{r/=3,r=Math.trunc(r);for(let i=r;i<o;i++){let a=t.at(i),o=Math.abs(a);for(let t=0;t<this.M;t++)e.set(t,n.atRowCol(t,i));let s=i;for(;Math.abs(t.at(s-r))<o;){t.set(s,t.at(s-r));for(let e=0;e<this.M;e++)n.setRowCol(e,s,n.atRowCol(e,s-r));if(s-=r,s<r)break}if(s!==i){t.set(s,a);for(let t=0;t<this.M;t++)n.setRowCol(t,s,e.at(t))}}}while(r>1)};for(let e=1;;e++){let r=0;for(let e=1;e<o;e++)for(let t=0;t<e;t++)r+=Math.abs(i.atRowCol(e,t));if(r===0)return f(),!0;let s=e<4?.2*r/(o*o):0;for(let r=0;r<o;r++)for(let c=r+1;c<o;c++){let l=a*Math.abs(i.atRowCol(c,r));if(e>4&&l<=Math.abs(t.at(r))&&l<=Math.abs(t.at(c)))i.setRowCol(c,r,0);else if(Math.abs(i.atRowCol(c,r))>s){let e=t.at(c)-t.at(r),a;if(l<Math.abs(e))a=i.atRowCol(c,r)/e;else{let t=.5*e/i.atRowCol(c,r);a=1/(Math.abs(t)+Math.sqrt(1+t*t)),t<0&&(a=-a)}let s=1/Math.sqrt(1+a*a),u=a*s,f=u/(1+s);e=a*i.atRowCol(c,r),d.set(r,d.at(r)-e),d.set(c,d.at(c)+e),t.set(r,t.at(r)-e),t.set(c,t.at(c)+e),i.setRowCol(c,r,0);let p=0;for(;p<r;p++)l=i.atRowCol(r,p),e=i.atRowCol(c,p),i.setRowCol(r,p,l-u*(e+l*f)),i.setRowCol(c,p,e+u*(l-e*f));for(p++;p<c;p++)l=i.atRowCol(p,r),e=i.atRowCol(c,p),i.setRowCol(p,r,l-u*(e+l*f)),i.setRowCol(c,p,e+u*(l-e*f));for(p++;p<o;p++)l=i.atRowCol(p,r),e=i.atRowCol(p,c),i.setRowCol(p,r,l-u*(e+l*f)),i.setRowCol(p,c,e+u*(l-e*f));for(p=0;p<o;p++)l=n.atRowCol(r,p),e=n.atRowCol(c,p),n.setRowCol(r,p,l-u*(e+l*f)),n.setRowCol(c,p,e+u*(l-e*f))}}for(let e=0;e<o;e++)u.set(e,u.at(e)+d.at(e)),t.set(e,u.at(e)),d.set(e,0)}}static checkDims(t,n,r){e(t.rows()===n&&t.cols()===r)}}class u extends l{buffer;constructor(e){if(e.copy){let t=new Float64Array(e.copy.N*e.copy.M);super(t,e.copy.N,e.copy.M),this.buffer=t,this.assignCopy(e.copy);return}let t=new Float64Array(e.NN*e.MM);super(t,e.NN,e.MM),this.buffer=t,e.initializerList&&s(this.buffer,e.initializerList,0,0,e.initializerList.length)}assignCopy(e){return this===e||super.assignCopy(e),this}}class d{m_TransformationType=1;xx;xy;xd;yx;yy;yd;constructor(e){e===void 0?this.setIdentity():e instanceof d?this.set(e):this.setScale(e)}set(e){return this.xx=e.xx,this.xy=e.xy,this.xd=e.xd,this.yx=e.yx,this.yy=e.yy,this.yd=e.yd,this}clone(){return new d().set(this)}setZero(){this.xx=0,this.yy=0,this.xy=0,this.yx=0,this.xd=0,this.yd=0}isEqual(e){return this===e||this.xx===e.xx&&this.xy===e.xy&&this.xd===e.xd&&this.yx===e.yx&&this.yy===e.yy&&this.yd===e.yd}transformInPlace(e){let t=this.xx*e.x+this.xy*e.y+this.xd,n=this.yx*e.x+this.yy*e.y+this.yd;e.x=t,e.y=n}transform(e){let t=e.clone();return this.transformInPlace(t),t}queryTransform(e,t){let n=this.xx*e.x+this.xy*e.y+this.xd,r=this.yx*e.x+this.yy*e.y+this.yd;t.setCoords(n,r)}transformEnvInPlace(e){if(e.isEmpty())return;let t=r(i,4);e.queryCorners(t),this.transformPoints2D(t,4,t),e.setFromPoints(t,4)}queryTransformEnv(t,n){e(0)}transformPoints2D(e,t,n){for(let r=0;r<t;++r)this.queryTransform(e[r],n[r])}transformInterleavedPoints(e,t,n){t*=2;let r=i.getNAN();for(let i=0;i<t;i+=2)r.x=e[i],r.y=e[i+1],this.transformInPlace(r),n[i]=r.x,n[i+1]=r.y}multiply(e){return d.st_multiply(this,e,this),this}mulLeft(t){return e(0),this}static st_multiply(e,t,n){let r=e.xx*t.xx+e.yx*t.xy,i=e.xy*t.xx+e.yy*t.xy,a=e.xd*t.xx+e.yd*t.xy+t.xd,o=e.xx*t.yx+e.yx*t.yy,s=e.xy*t.yx+e.yy*t.yy,c=e.xd*t.yx+e.yd*t.yy+t.yd;n.xx=r,n.xy=i,n.xd=a,n.yx=o,n.yy=s,n.yd=c}getCoefficients(t){e(t.length>=6),t[0]=this.xx,t[1]=this.xy,t[2]=this.xd,t[3]=this.yx,t[4]=this.yy,t[5]=this.yd}setCoefficients(t){e(t.length>=6),this.xx=t[0],this.xy=t[1],this.xd=t[2],this.yx=t[3],this.yy=t[4],this.yd=t[5]}copyTo(t){e(0)}initializeFromRect(e,t){e.isEmpty()||t.isEmpty()||!e.width()||!e.height()?this.setZero():(this.xy=this.yx=0,this.xx=t.width()/e.width(),this.yy=t.height()/e.height(),this.xd=t.xmin-e.xmin*this.xx,this.yd=t.ymin-e.ymin*this.yy)}initializeFromRectIsotropic(e,t){if(e.isEmpty()||!e.width()||!e.height()||t.isEmpty())this.setZero();else{this.yx=0,this.xy=0,this.xx=t.width()/e.width(),this.yy=t.height()/e.height(),this.xx>this.yy?this.xx=this.yy:this.yy=this.xx;let n=t.getCenter(),r=e.getCenter();this.xd=n.x-r.x*this.xx,this.yd=n.y-r.y*this.yy}}initializeFromTwoPointsArray(e,n){if(e[0].equals(n[0])&&e[1].equals(n[1])){this.setIdentity();return}if(e[0].equals(e[1])){if(!n[0].equals(n[1]))t(``);else{this.setShift(n[0].sub(e[0]));return}}if(!e[0].equals(e[1])&&n[0].equals(n[1])){this.setZero(),this.shift(n[0]);return}this.setShiftCoords(-e[0].x,-e[0].y);let r=i.distance(e[0],e[1]),a=i.distance(n[0],n[1]),o=a/r;this.scale(o,o);let s=e[1].sub(e[0]);s.divThis(r);let c=n[1].sub(n[0]);c.divThis(a);let l=s.crossProduct(c),u=s.dotProduct(c);this.rotate(u,l),this.shiftCoords(n[0].x,n[0].y)}initializeFromTwoPoints(e,t,n,r){let i=[e,t],a=[n,r];this.initializeFromTwoPointsArray(i,a)}transformSizeInPlace(t){e(0)}transformSize(t,n){e(0)}transformTol(t){return e(0),0}transformWithoutTranslateArray(e,t,n){for(let r=0;r<t;++r)this.transformWithoutTranslate(e[r],n[r])}transformWithoutTranslateInPlace(e){let t=this.xx*e.x+this.xy*e.y,n=this.yx*e.x+this.yy*e.y;e.setCoords(t,n)}transformWithoutTranslate(e,t){let n=this.xx*e.x+this.xy*e.y,r=this.yx*e.x+this.yy*e.y;t.setCoords(n,r)}setIdentity(){this.xx=1,this.xy=0,this.xd=0,this.yx=0,this.yy=1,this.yd=0}isIdentity(){return this.xx===1&&this.yy===1&&!this.xy&&!this.xd&&!this.yx&&!this.yd}isIdentityTol(e){let t=e*e;return!(a(this.xd)+a(this.yd)>t||a(this.xy+this.xd)+a(this.yy+this.yd-1)>t||a(this.xx+this.xd-1)+a(this.yx+this.yd)>t)}isReflective(){return this.xx*this.yy-this.yx*this.xy<0}isUniform(e){let t=this.xx*this.xx+this.yx*this.yx,n=this.xy*this.xy+this.yy*this.yy,r=(t+n)*e;return Math.abs(t-n)<=r&&Math.abs(this.xx*this.xy+this.yx*this.yy)<=r}isUniformNoRotation(){return this.xx!==0&&Math.abs(this.xx)===Math.abs(this.yy)&&this.xy===0&&this.yx===0}isTranslate(){return this.xx===1&&this.yy===1&&!this.xy&&!this.yx}isTranslateTol(e){let t=new i;return t.setCoords(0,1),this.transformWithoutTranslateInPlace(t),--t.y,t.sqrLength()>e*e?!1:(t.setCoords(1,0),this.transformWithoutTranslateInPlace(t),--t.x,t.sqrLength()<=e*e)}isOrthonormal(e){let t=new d;return t.xx=this.xx*this.xx+this.xy*this.xy,t.xy=this.xx*this.yx+this.xy*this.yy,t.yx=this.yx*this.xx+this.yy*this.xy,t.yy=this.yx*this.yx+this.yy*this.yy,t.xd=0,t.yd=0,t.isIdentityTol(e)}isDegenerate(e){return Math.abs(this.xx*this.yy-this.yx*this.xy)<=2*e*(Math.abs(this.xx*this.yy)+Math.abs(this.yx*this.xy))}isZero(){return this.xx===0&&this.yy===0&&this.xy===0&&this.yx===0&&this.xd===0&&this.yd===0}isScaleAndTranslateTol(e){return this.xy*this.xy+this.yx*this.yx<=(this.xx*this.xx+this.yy*this.yy)*e}setTranslate(e,t){return this.xx=1,this.xy=0,this.xd=e,this.yx=0,this.yy=1,this.yd=t,this}setShiftCoords(e,t){return this.xx=1,this.xy=0,this.xd=e,this.yx=0,this.yy=1,this.yd=t,this}setShift(e){return this.xx=1,this.xy=0,this.xd=e.x,this.yx=0,this.yy=1,this.yd=e.y,this}setScaleCoords(e,t){return this.xx=e,this.xy=0,this.xd=0,this.yx=0,this.yy=t,this.yd=0,this}setScale(e){return this.setScaleCoords(e,e),this}setFlipX(e,t){return this.xx=-1,this.xy=0,this.xd=e+t,this.yx=0,this.yy=1,this.yd=0,this}setFlipY(e,t){return this.xx=1,this.xy=0,this.xd=0,this.yx=0,this.yy=-1,this.yd=e+t,this}setShear(e,t){return this.xx=1,this.xy=e,this.xd=0,this.yx=t,this.yy=1,this.yd=0,this}scale(e,t){return this.xx*=e,this.xy*=e,this.xd*=e,this.yx*=t,this.yy*=t,this.yd*=t,this}setRotateAngle(e){return this.setRotate(Math.cos(e),Math.sin(e))}setRotate(e,t){return this.xx=e,this.xy=-t,this.xd=0,this.yx=t,this.yy=e,this.yd=0,this}setRotateAngleAbout(e,t){return this.setRotateAbout(Math.cos(e),Math.sin(e),t)}setRotateAbout(e,t,n){return this.setTranslate(-n.x,-n.y),this.rotate(e,t),this.translate(n.x,n.y)}setSwapCoordinates(){return this.xx=0,this.xy=1,this.xd=0,this.yx=1,this.yy=0,this.yd=0,this}setRotateCw90(){return this.xx=0,this.xy=1,this.xd=0,this.yx=-1,this.yy=0,this.yd=0,this}setRotateCcw90(){return this.xx=0,this.xy=-1,this.xd=0,this.yx=1,this.yy=0,this.yd=0,this}shiftCoords(e,t){return this.xd+=e,this.yd+=t,this}shift(e){return this.xd+=e.x,this.yd+=e.y,this}translate(e,t){return this.xd+=e,this.yd+=t,this}flipX(e,t){return this.xx=-this.xx,this.xy=-this.xy,this.xd=e+t-this.xd,this}flipY(e,t){return this.yx=-this.yx,this.yy=-this.yy,this.yd=e+t-this.yd,this}shear(e,t){let n=new d;return n.setShear(e,t),this.multiply(n)}rotateAngle(e){let t=new d;return t.setRotateAngle(e),this.multiply(t)}rotate(e,t){let n=new d;return n.setRotate(e,t),this.multiply(n)}rotateAbout(e,t,n){return this.translate(-n.x,-n.y),this.rotate(e,t),this.translate(n.x,n.y)}rotateAngleAbout(e,t){return this.rotateAbout(Math.cos(e),Math.sin(e),t)}setInvert(e){return this.set(e),this.invertThis()}invertThis(){let e=this.xx*this.yy-this.xy*this.yx;if(e===0)return this.setZero(),this;e=1/e;let t=(this.xy*this.yd-this.xd*this.yy)*e,n=(this.xd*this.yx-this.xx*this.yd)*e,r=this.yy*e,i=-this.xy*e,a=-this.yx*e,o=this.xx*e;return this.xd=t,this.yd=n,this.xx=r,this.yy=o,this.xy=i,this.yx=a,this}invertPrecise(e){return this.set(e),this.invertPreciseThis()}invertPreciseThis(){let e=o.constructDouble(this.xy),t=o.constructDouble(this.xx),n=t.mulDouble(this.yy).sub(e.mulDouble(this.yx));if(n.isZero())return this.setZero(),this;let r=n.clone();r.invertThis();let i=o.constructDouble(this.xd),a=e.mulDouble(this.yd).sub(i.mulDouble(this.yy)).mul(r).toDouble(),s=i.mulDouble(this.yx).sub(t.mulDouble(this.yd)).mul(r).toDouble(),c=r.mulDouble(this.yy).toDouble(),l=r.mulDouble(-this.xy).toDouble(),u=r.mulDouble(-this.yx).toDouble(),d=r.mulDouble(this.xx).toDouble();return this.xd=a,this.yd=s,this.xx=c,this.yy=d,this.xy=l,this.yx=u,this}extractScaleTransform(e,t){let n=Math.sqrt(this.xx*this.xx+this.xy*this.xy),r=Math.sqrt(this.yx*this.yx+this.yy*this.yy);t.setScaleCoords(1/n,1/r),t.multiply(this),e.setScaleCoords(n,r)}setFromTwoTriangles(e,t){let n=!0;for(let r=0;r<3;++r)n&&=e[r].equals(t[r]);if(n)return this.setIdentity(),!0;let r=new i;r.setSub(e[0],e[1]);let a=new i;a.setSub(e[0],e[2]);let o=new i;o.setSub(t[0],t[1]);let s=new i;s.setSub(t[0],t[2]);let c=4*2**-52*(Math.abs(r.x*a.y)+Math.abs(a.x*r.y)),l=r.x*a.y-r.y*a.x;if(Math.abs(l)>c)l=1/l,this.xx=(o.x*a.y-r.y*s.x)*l,this.xy=(r.x*s.x-o.x*a.x)*l,this.yx=(o.y*a.y-r.y*s.y)*l,this.yy=(r.x*s.y-o.y*a.x)*l;else return this.setZero(),!1;return this.xd=t[0].x-(this.xx*e[0].x+this.xy*e[0].y),this.yd=t[0].y-(this.yx*e[0].x+this.yy*e[0].y),!0}initializeFromControlPoints(e,t,n,r,i=null){if(t===0){this.setIdentity(),i&&i.setIdentity();return}if(t===1){this.setShift(r[0].sub(n[0])),i&&i.setShift(n[0].sub(r[0]));return}t<3&&(e=1),e===4&&t>2?m(this,t,n,r,i):h(e,this,t,n,r,i)}calculateErrors(t,n,r,a){e(t>0&&n!==null&&r!==null);let o=0;for(let e=0;e<t;++e){let t=this.transform(n[e]),s=i.sqrDistance(r[e],t);o+=s,a&&(a[e]=Math.sqrt(s))}return Math.sqrt(o/t)}}const f=[43,11,41,9,61];function p(t,n){e((n.rows()===2||n.rows()===3)&&(n.cols()===2||n.rows()===3)),t.xx=n.atRowCol(0,0),t.xy=n.atRowCol(0,1),t.yx=n.atRowCol(1,0),t.yy=n.atRowCol(1,1),n.cols()===3?(t.xd=n.atRowCol(0,2),t.yd=n.atRowCol(1,2)):(t.xd=0,t.yd=0)}function m(e,t,r,a,o){let s=i.average(r,t),c=i.average(a,t),l=new u({NN:2,MM:2});l.setZero();let d=new u({NN:2,MM:2});d.setZero();for(let e=0;e<t;++e)l.setRowCol(0,0,l.atRowCol(0,0)+(r[e].x-s.x)*(r[e].x-s.x)),l.setRowCol(0,1,l.atRowCol(0,1)+(r[e].x-s.x)*(r[e].y-s.y)),l.setRowCol(1,1,l.atRowCol(1,1)+(r[e].y-s.y)*(r[e].y-s.y)),d.setRowCol(0,0,d.atRowCol(0,0)+(a[e].x-c.x)*(r[e].x-s.x)),d.setRowCol(0,1,d.atRowCol(0,1)+(a[e].x-c.x)*(r[e].y-s.y)),d.setRowCol(1,0,d.atRowCol(1,0)+(a[e].y-c.y)*(r[e].x-s.x)),d.setRowCol(1,1,d.atRowCol(1,1)+(a[e].y-c.y)*(r[e].y-s.y));l.setRowCol(1,0,l.atRowCol(0,1));let f=new u({NN:2,MM:2});l.pseudoInverse(f,!0)||n(`Failed to compute pseudo inverse`),d.mul(f,d),p(e,d);let m=s.clone();e.transformInPlace(m),e.xd=c.x-m.x,e.yd=c.y-m.y,o&&(d.pseudoInverse(f,!1)||n(`Failed to compute pseudo inverse`),p(o,f),o.transformInPlace(c),o.xd=s.x-c.x,o.yd=s.y-c.y)}function h(t,r,a,o,s,c){e(t===1||t===0||t===2||t===3),r.setIdentity();let l=i.average(o,a),m=i.average(s,a);if(e(t<f.length&&t>0),f[t]&8){let e=new u({NN:2,MM:2});e.setZero();for(let t=0;t<a;++t)e.setRowCol(0,0,e.atRowCol(0,0)+(s[t].x-m.x)*(o[t].x-l.x)),e.setRowCol(1,0,e.atRowCol(1,0)+(s[t].x-m.x)*(o[t].y-l.y)),e.setRowCol(0,1,e.atRowCol(0,1)+(s[t].y-m.y)*(o[t].x-l.x)),e.setRowCol(1,1,e.atRowCol(1,1)+(s[t].y-m.y)*(o[t].y-l.y));let i=new u({NN:2,MM:2}),c=new u({NN:2,MM:1}),h=new u({NN:2,MM:2});e.svd(i,c,h)||n(`Failed to compute svd`);let g=new u({NN:2,MM:2});i.transpose(g);let _=new u({NN:2,MM:2});h.mul(g,_),f[t]&32||_.determinant()<0&&(g.setRowCol(1,0,-g.atRowCol(1,0)),g.setRowCol(1,1,-g.atRowCol(1,1)),h.mul(g,_));let v=new d;p(v,_),r.set(v)}if(f[t]&2){let e=0,t=0;for(let n=0;n<a;++n){let i=o[n].sub(l);e+=i.sqrLength(),r.transformInPlace(i),t+=i.dotProduct(s[n].sub(m))}if(e===0)t===0?r.setIdentity():r.setZero();else{let n=t/e;r.scale(n,n)}}else e(!(f[t]&4));let h=l.clone();r.transformInPlace(h),r.xd=m.x-h.x,r.yd=m.y-h.y,c&&(c.set(r),c.invertThis(),c.isZero()&&(c.xd=l.x,c.yd=l.y))}export{d as T};
2
+ import{g as e,b as t,c as n}from"./Geometry.js";import{d as r,P as i,e as a,M as o,f as s,s as c}from"./Point2D.js";class l{data;N;M;constructor(e,t,n){if(e instanceof l){this.data=e.data,this.N=e.N,this.M=e.M,e.data=null,e.N=0,e.M=0;return}this.data=e,this.N=t,this.M=n}assignCopy(t){return this===t?this:(e(this.N*this.M===t.N*t.M),this.data.set(t.data),this.N=t.N,this.M=t.M,this)}setZero(){return this.data?.fill(0),this}setIdentity(){for(let e=0;e<this.N;e++)for(let t=0;t<this.M;t++)this.setRowCol(e,t,+(e===t));return this}rows(){return this.N}cols(){return this.M}row(t){return e(0),{}}set(e,t){return this.data[e]=t,this}setRowCol(e,t,n){return this.data[e*this.M+t]=n,this}at(e){return this.data[e]}atRowCol(e,t){return this.data[e*this.M+t]}mulScalar(t,n){e(0)}mul(t,n){if(e(this.M===t.rows()),e(this.N===n.rows()),e(t.cols()===n.cols()),n===this){let e=new Float64Array(this.N*this.M),r=new l(e,this.N,this.M);this.mul(t,r),n.assignCopy(r);return}if(n===t){let e=new Float64Array(t.N*t.M),r=new l(e,t.N,t.M);this.mul(t,r),n.assignCopy(r);return}let r=t.cols();for(let e=0;e<this.N;e++)for(let i=0;i<r;i++){let r=0;for(let n=0;n<this.M;n++)r+=this.atRowCol(e,n)*t.atRowCol(n,i);n.setRowCol(e,i,r)}}mulTranspose(t,n){if(e(this.M===t.cols()),e(this.N===n.rows()),e(t.rows()===n.cols()),n===this){let e=new Float64Array(this.N*this.M),r=new l(e,this.N,this.M);this.mulTranspose(t,r),n.assignCopy(r);return}if(n===t){let e=new Float64Array(t.N*t.M),r=new l(e,t.N,t.M);this.mulTranspose(t,r),n.assignCopy(r);return}let r=t.rows();for(let e=0;e<this.N;e++)for(let i=0;i<r;i++){let r=0;for(let n=0;n<this.M;n++)r+=this.atRowCol(e,n)*t.atRowCol(i,n);n.setRowCol(e,i,r)}}mulLeft(t,n){e(0)}mulLeftTranspose(t,n){e(0)}mulDiag(t,n){if(e(this.M===t.N*t.M),e(this.N===n.rows()),e(this.M===n.cols()),n===this){let e=new Float64Array(this.N*this.M),r=new l(e,this.N,this.M);this.mulDiag(t,r),n.assignCopy(r);return}let r=this.M;for(let e=0;e<this.N;e++)for(let i=0;i<r;i++)n.setRowCol(e,i,this.atRowCol(e,i)*t.at(i))}transposeInPlace(){if(this.N===this.M){for(let e=0;e<this.N;e++)for(let t=e+1;t<this.M;t++){let n=this.atRowCol(e,t);this.setRowCol(e,t,this.atRowCol(t,e)),this.setRowCol(t,e,n)}return this}let e=new Float64Array(this.N*this.M),t=new l(e,this.N,this.M);return t.assignCopy(this),this.M=c(this.N,this.N=this.M),t.transpose(this),this}transpose(e){if(this===e){e.transposeInPlace();return}l.checkDims(e,this.M,this.N);for(let t=0;t<this.N;t++)for(let n=0;n<this.M;n++)e.setRowCol(n,t,this.atRowCol(t,n))}add(e,t){}svd(t,n,r,i=!1){if(l.checkDims(t,this.N,this.M),l.checkDims(n,this.M,1),l.checkDims(r,this.M,this.M),i){if(e(this.N===this.M),!this.symmetricEigen(n,r))return!1;for(let e=0;e<this.M;++e)n.at(e)<0&&n.set(e,0);return t.assignCopy(r),!0}let a=0,o=0,s,c,u,d,f,p,m,h=0,g=0,_=0,v=this.M,y=this.N;t.assignCopy(this);let b=new Float64Array(v),x=new l(b,v,1),S=(e,t)=>t>=0?Math.abs(e):-Math.abs(e),C=(e,t)=>{if(e=Math.abs(e),t=Math.abs(t),e>t){let n=t/e;return e*Math.sqrt(n*n+1)}if(t>0){let n=e/t;return t*Math.sqrt(n*n+1)}return 0};for(let e=0;e<v;e++){if(a=e+1,x.set(e,g*h),h=d=g=0,e<y){for(let n=e;n<y;n++)g+=Math.abs(t.atRowCol(n,e));if(g){for(let n=e;n<y;n++)t.setRowCol(n,e,t.atRowCol(n,e)/g),d+=t.atRowCol(n,e)*t.atRowCol(n,e);c=t.atRowCol(e,e),h=-S(Math.sqrt(d),c),u=c*h-d,t.setRowCol(e,e,c-h);for(let n=a;n<v;n++){d=0;for(let r=e;r<y;r++)d+=t.atRowCol(r,e)*t.atRowCol(r,n);c=d/u;for(let r=e;r<y;r++)t.setRowCol(r,n,t.atRowCol(r,n)+c*t.atRowCol(r,e))}for(let n=e;n<y;n++)t.setRowCol(n,e,t.atRowCol(n,e)*g)}}if(n.set(e,g*h),h=d=g=0,e<y&&e!==v-1){for(let n=a;n<v;n++)g+=Math.abs(t.atRowCol(e,n));if(g){for(let n=a;n<v;n++)t.setRowCol(e,n,t.atRowCol(e,n)/g),d+=t.atRowCol(e,n)*t.atRowCol(e,n);c=t.atRowCol(e,a),h=-S(Math.sqrt(d),c),u=c*h-d,t.setRowCol(e,a,c-h);for(let n=a;n<v;n++)x.set(n,t.atRowCol(e,n)/u);for(let n=a;n<y;n++){d=0;for(let r=a;r<v;r++)d+=t.atRowCol(n,r)*t.atRowCol(e,r);for(let e=a;e<v;e++)t.setRowCol(n,e,t.atRowCol(n,e)+d*x.at(e))}for(let n=a;n<v;n++)t.setRowCol(e,n,t.atRowCol(e,n)*g)}}let r=Math.abs(n.at(e))+Math.abs(x.at(e));_=r>_?r:_}for(let e=v-1;e>=0;e--){if(e<v-1){if(h){for(let n=a;n<v;n++)r.setRowCol(n,e,t.atRowCol(e,n)/t.atRowCol(e,a)/h);for(let n=a;n<v;n++){d=0;for(let i=a;i<v;i++)d+=t.atRowCol(e,i)*r.atRowCol(i,n);for(let t=a;t<v;t++)r.setRowCol(t,n,r.atRowCol(t,n)+d*r.atRowCol(t,e))}}for(let t=a;t<v;t++)r.setRowCol(e,t,0),r.setRowCol(t,e,0)}r.setRowCol(e,e,1),h=x.at(e),a=e}let w=y<v?y:v;for(let e=w-1;e>=0;e--){a=e+1,h=n.at(e);for(let n=a;n<v;n++)t.setRowCol(e,n,0);if(h){h=1/h;for(let n=a;n<v;n++){d=0;for(let r=a;r<y;r++)d+=t.atRowCol(r,e)*t.atRowCol(r,n);c=d/t.atRowCol(e,e)*h;for(let r=e;r<y;r++)t.setRowCol(r,n,t.atRowCol(r,n)+c*t.atRowCol(r,e))}for(let n=e;n<y;n++)t.setRowCol(n,e,t.atRowCol(n,e)*h)}else for(let n=e;n<y;n++)t.setRowCol(n,e,0);t.setRowCol(e,e,t.atRowCol(e,e)+1)}for(let e=v-1;e>=0;e--)for(let i=1;;i++){let l=1;for(a=e;a>=0;a--){if(o=a-1,Math.abs(x.at(a))+_===_){l=0;break}if(Math.abs(n.at(o))+_===_)break}if(l){s=0,d=1;for(let r=a;r<=e&&(c=d*x.at(r),x.set(r,x.at(r)*s),Math.abs(c)+_!==_);r++){h=n.at(r),u=C(c,h),n.set(r,u),u=1/u,s=h*u,d=-c*u;for(let e=0;e<y;e++)p=t.atRowCol(e,o),m=t.atRowCol(e,r),t.setRowCol(e,o,p*s+m*d),t.setRowCol(e,r,m*s-p*d)}}if(m=n.at(e),a===e){if(m<0){n.set(e,-m);for(let t=0;t<v;t++)r.setRowCol(t,e,-r.atRowCol(t,e))}break}if(i===100)return!1;f=n.at(a),o=e-1,p=n.at(o),h=x.at(o),u=x.at(e),c=((p-m)*(p+m)+(h-u)*(h+u))/(2*u*p),h=C(c,1),c=((f-m)*(f+m)+u*(p/(c+S(h,c))-u))/f,s=d=1;for(let e=a;e<=o;e++){let i=e+1;h=x.at(i),p=n.at(i),u=d*h,h=s*h,m=C(c,u),x.set(e,m),s=c/m,d=u/m,c=f*s+h*d,h=h*s-f*d,u=p*d,p*=s;for(let t=0;t<v;t++)f=r.atRowCol(t,e),m=r.atRowCol(t,i),r.setRowCol(t,e,f*s+m*d),r.setRowCol(t,i,m*s-f*d);m=C(c,u),n.set(e,m),m&&(m=1/m,s=c*m,d=u*m),c=s*h+d*p,f=s*p-d*h;for(let n=0;n<y;n++)p=t.atRowCol(n,e),m=t.atRowCol(n,i),t.setRowCol(n,e,p*s+m*d),t.setRowCol(n,i,m*s-p*d)}x.set(a,0),x.set(e,c),n.set(e,f)}let T=new Float64Array(this.N),E=new Float64Array(this.M),D=new l(T,this.N,1),O=new l(E,this.M,1),k=1;do k*=3,k++;while(k<=this.M);do{k/=3,k=Math.trunc(k);for(let e=k;e<this.M;e++){let i=n.at(e);for(let n=0;n<this.N;n++)D.set(n,t.atRowCol(n,e));for(let t=0;t<this.M;t++)O.set(t,r.atRowCol(t,e));let a=e;for(;n.at(a-k)<i;){n.set(a,n.at(a-k));for(let e=0;e<this.N;e++)t.setRowCol(e,a,t.atRowCol(e,a-k));for(let e=0;e<this.M;e++)r.setRowCol(e,a,r.atRowCol(e,a-k));if(a-=k,a<k)break}n.set(a,i);for(let e=0;e<this.N;e++)t.setRowCol(e,a,D.at(e));for(let e=0;e<this.M;e++)r.setRowCol(e,a,O.at(e))}}while(k>1);for(let e=0;e<this.M;e++){let n=0;for(let r=0;r<this.N;r++)t.atRowCol(r,e)<0&&n++;for(let t=0;t<this.M;t++)r.atRowCol(t,e)<0&&n++;if(n>Math.trunc((this.N+this.M)/2)){for(let n=0;n<this.N;n++)t.setRowCol(n,e,-t.atRowCol(n,e));for(let t=0;t<this.M;t++)r.setRowCol(t,e,-r.atRowCol(t,e))}}return!0}isSymmetric(){if(this.N!==this.M)return!1;for(let e=0;e<this.N;e++)for(let t=e+1;t<this.M;t++)if(this.atRowCol(e,t)!==this.atRowCol(t,e))return!1;return!0}isZero(){return e(0),!1}isIdentity(){return e(0),!1}equals(t,n){if(n!==void 0&&e(0),this.N!==t.N||this.M!==t.M)return!1;for(let e=0;e<this.N*this.M;e++)if(this.data[e]!==t.data[e])return!1;return!0}maxElement(){return e(0),0}minElement(){return e(0),0}determinant(){if(e(this.N===this.M),this.N===1)return this.data[0];if(this.N===2)return this.data[0]*this.data[3]-this.data[1]*this.data[2];if(this.N===3){let e=this;return e.atRowCol(0,0)*(e.atRowCol(1,1)*e.atRowCol(2,2)-e.atRowCol(1,2)*e.atRowCol(2,1))-e.atRowCol(0,1)*(e.atRowCol(1,0)*e.atRowCol(2,2)-e.atRowCol(2,0)*e.atRowCol(1,2))+e.atRowCol(0,2)*(e.atRowCol(1,0)*e.atRowCol(2,1)-e.atRowCol(1,1)*e.atRowCol(2,0))}let t=new Float64Array(this.N*this.N),n=new l(t,this.N,this.N),r=new Float64Array(this.N);if(!this.luDecomposition(n,r))return 0;let i=1;for(let e=0;e<this.N;e++)i*=n.atRowCol(e,e),r[e]!==e&&(i=-i);return i}submatrix(t,n,r){e(0)}inverse(t){e(0)}pseudoInverse(e,t=!1,n=2220446049250313e-31){if(e.setZero(),this.N===1&&this.M===1)return this.atRowCol(0,0)===0?e.setRowCol(0,0,0):e.setRowCol(0,0,1/this.atRowCol(0,0)),!0;if(this.N===2&&this.M===2){let t=this.atRowCol(0,0)*this.atRowCol(1,1)-this.atRowCol(0,1)*this.atRowCol(1,0),n=(Math.abs(this.atRowCol(0,0)*this.atRowCol(1,1))+Math.abs(this.atRowCol(0,1)*this.atRowCol(1,0)))*1e-5;if(Math.abs(t)>n)return e.setRowCol(0,0,this.atRowCol(1,1)/t),e.setRowCol(0,1,-this.atRowCol(0,1)/t),e.setRowCol(1,0,-this.atRowCol(1,0)/t),e.setRowCol(1,1,this.atRowCol(0,0)/t),!0}let r=new Float64Array(this.N*this.M),i=new l(r,this.N,this.M),a=new Float64Array(this.M),o=new l(a,this.M,1),s=new Float64Array(this.M*this.M),c=new l(s,this.M,this.M);if(!this.svd(i,o,c,t))return!1;let u=Math.max(this.N,this.M),d=n*Math.abs(o.at(0))*u;for(let e=0;e<this.M;e++)o.at(e)>d?o.set(e,1/o.at(e)):o.set(e,0);return c.mulDiag(o,e),e.mulTranspose(i,e),!0}luDecomposition(t,n){return e(0),!1}symmetricEigen(t,n){e(this.rows()===this.cols()),e(this.rows()===t.rows()),e(n.rows()===n.cols()&&n.rows()===this.rows()),e(this.isSymmetric());let r=new Float64Array(this.N*this.M),i=new l(r,this.N,this.M);i.assignCopy(this);let a=100/2**-52,o=this.rows(),s=new Float64Array(o),c=new Float64Array(o),u=new l(s,o,1),d=new l(c,o,1);for(let e=0;e<o;e++)u.set(e,i.atRowCol(e,e)),t.set(e,i.atRowCol(e,e)),d.set(e,0);n.setIdentity();let f=()=>{let e=u;n.transposeInPlace();let r=1;do r*=3,r++;while(r<=o);do{r/=3,r=Math.trunc(r);for(let i=r;i<o;i++){let a=t.at(i),o=Math.abs(a);for(let t=0;t<this.M;t++)e.set(t,n.atRowCol(t,i));let s=i;for(;Math.abs(t.at(s-r))<o;){t.set(s,t.at(s-r));for(let e=0;e<this.M;e++)n.setRowCol(e,s,n.atRowCol(e,s-r));if(s-=r,s<r)break}if(s!==i){t.set(s,a);for(let t=0;t<this.M;t++)n.setRowCol(t,s,e.at(t))}}}while(r>1)};for(let e=1;;e++){let r=0;for(let e=1;e<o;e++)for(let t=0;t<e;t++)r+=Math.abs(i.atRowCol(e,t));if(r===0)return f(),!0;let s=e<4?.2*r/(o*o):0;for(let r=0;r<o;r++)for(let c=r+1;c<o;c++){let l=a*Math.abs(i.atRowCol(c,r));if(e>4&&l<=Math.abs(t.at(r))&&l<=Math.abs(t.at(c)))i.setRowCol(c,r,0);else if(Math.abs(i.atRowCol(c,r))>s){let e=t.at(c)-t.at(r),a;if(l<Math.abs(e))a=i.atRowCol(c,r)/e;else{let t=.5*e/i.atRowCol(c,r);a=1/(Math.abs(t)+Math.sqrt(1+t*t)),t<0&&(a=-a)}let s=1/Math.sqrt(1+a*a),u=a*s,f=u/(1+s);e=a*i.atRowCol(c,r),d.set(r,d.at(r)-e),d.set(c,d.at(c)+e),t.set(r,t.at(r)-e),t.set(c,t.at(c)+e),i.setRowCol(c,r,0);let p=0;for(;p<r;p++)l=i.atRowCol(r,p),e=i.atRowCol(c,p),i.setRowCol(r,p,l-u*(e+l*f)),i.setRowCol(c,p,e+u*(l-e*f));for(p++;p<c;p++)l=i.atRowCol(p,r),e=i.atRowCol(c,p),i.setRowCol(p,r,l-u*(e+l*f)),i.setRowCol(c,p,e+u*(l-e*f));for(p++;p<o;p++)l=i.atRowCol(p,r),e=i.atRowCol(p,c),i.setRowCol(p,r,l-u*(e+l*f)),i.setRowCol(p,c,e+u*(l-e*f));for(p=0;p<o;p++)l=n.atRowCol(r,p),e=n.atRowCol(c,p),n.setRowCol(r,p,l-u*(e+l*f)),n.setRowCol(c,p,e+u*(l-e*f))}}for(let e=0;e<o;e++)u.set(e,u.at(e)+d.at(e)),t.set(e,u.at(e)),d.set(e,0)}}static checkDims(t,n,r){e(t.rows()===n&&t.cols()===r)}}class u extends l{buffer;constructor(e){if(e.copy){let t=new Float64Array(e.copy.N*e.copy.M);super(t,e.copy.N,e.copy.M),this.buffer=t,this.assignCopy(e.copy);return}let t=new Float64Array(e.NN*e.MM);super(t,e.NN,e.MM),this.buffer=t,e.initializerList&&s(this.buffer,e.initializerList,0,0,e.initializerList.length)}assignCopy(e){return this===e||super.assignCopy(e),this}}class d{m_TransformationType=1;xx;xy;xd;yx;yy;yd;constructor(e){e===void 0?this.setIdentity():e instanceof d?this.set(e):this.setScale(e)}set(e){return this.xx=e.xx,this.xy=e.xy,this.xd=e.xd,this.yx=e.yx,this.yy=e.yy,this.yd=e.yd,this}clone(){return new d().set(this)}setZero(){this.xx=0,this.yy=0,this.xy=0,this.yx=0,this.xd=0,this.yd=0}isEqual(e){return this===e||this.xx===e.xx&&this.xy===e.xy&&this.xd===e.xd&&this.yx===e.yx&&this.yy===e.yy&&this.yd===e.yd}transformInPlace(e){let t=this.xx*e.x+this.xy*e.y+this.xd,n=this.yx*e.x+this.yy*e.y+this.yd;e.x=t,e.y=n}transform(e){let t=e.clone();return this.transformInPlace(t),t}queryTransform(e,t){let n=this.xx*e.x+this.xy*e.y+this.xd,r=this.yx*e.x+this.yy*e.y+this.yd;t.setCoords(n,r)}transformEnvInPlace(e){if(e.isEmpty())return;let t=r(i,4);e.queryCorners(t),this.transformPoints2D(t,4,t),e.setFromPoints(t,4)}queryTransformEnv(t,n){e(0)}transformPoints2D(e,t,n){for(let r=0;r<t;++r)this.queryTransform(e[r],n[r])}transformInterleavedPoints(e,t,n){t*=2;let r=i.getNAN();for(let i=0;i<t;i+=2)r.x=e[i],r.y=e[i+1],this.transformInPlace(r),n[i]=r.x,n[i+1]=r.y}multiply(e){return d.st_multiply(this,e,this),this}mulLeft(t){return e(0),this}static st_multiply(e,t,n){let r=e.xx*t.xx+e.yx*t.xy,i=e.xy*t.xx+e.yy*t.xy,a=e.xd*t.xx+e.yd*t.xy+t.xd,o=e.xx*t.yx+e.yx*t.yy,s=e.xy*t.yx+e.yy*t.yy,c=e.xd*t.yx+e.yd*t.yy+t.yd;n.xx=r,n.xy=i,n.xd=a,n.yx=o,n.yy=s,n.yd=c}getCoefficients(t){e(t.length>=6),t[0]=this.xx,t[1]=this.xy,t[2]=this.xd,t[3]=this.yx,t[4]=this.yy,t[5]=this.yd}setCoefficients(t){e(t.length>=6),this.xx=t[0],this.xy=t[1],this.xd=t[2],this.yx=t[3],this.yy=t[4],this.yd=t[5]}copyTo(t){e(0)}initializeFromRect(e,t){e.isEmpty()||t.isEmpty()||!e.width()||!e.height()?this.setZero():(this.xy=this.yx=0,this.xx=t.width()/e.width(),this.yy=t.height()/e.height(),this.xd=t.xmin-e.xmin*this.xx,this.yd=t.ymin-e.ymin*this.yy)}initializeFromRectIsotropic(e,t){if(e.isEmpty()||!e.width()||!e.height()||t.isEmpty())this.setZero();else{this.yx=0,this.xy=0,this.xx=t.width()/e.width(),this.yy=t.height()/e.height(),this.xx>this.yy?this.xx=this.yy:this.yy=this.xx;let n=t.getCenter(),r=e.getCenter();this.xd=n.x-r.x*this.xx,this.yd=n.y-r.y*this.yy}}initializeFromTwoPointsArray(e,n){if(e[0].equals(n[0])&&e[1].equals(n[1])){this.setIdentity();return}if(e[0].equals(e[1])){if(!n[0].equals(n[1]))t(``);else{this.setShift(n[0].sub(e[0]));return}}if(!e[0].equals(e[1])&&n[0].equals(n[1])){this.setZero(),this.shift(n[0]);return}this.setShiftCoords(-e[0].x,-e[0].y);let r=i.distance(e[0],e[1]),a=i.distance(n[0],n[1]),o=a/r;this.scale(o,o);let s=e[1].sub(e[0]);s.divThis(r);let c=n[1].sub(n[0]);c.divThis(a);let l=s.crossProduct(c),u=s.dotProduct(c);this.rotate(u,l),this.shiftCoords(n[0].x,n[0].y)}initializeFromTwoPoints(e,t,n,r){let i=[e,t],a=[n,r];this.initializeFromTwoPointsArray(i,a)}transformSizeInPlace(t){e(0)}transformSize(t,n){e(0)}transformTol(t){return e(0),0}transformWithoutTranslateArray(e,t,n){for(let r=0;r<t;++r)this.transformWithoutTranslate(e[r],n[r])}transformWithoutTranslateInPlace(e){let t=this.xx*e.x+this.xy*e.y,n=this.yx*e.x+this.yy*e.y;e.setCoords(t,n)}transformWithoutTranslate(e,t){let n=this.xx*e.x+this.xy*e.y,r=this.yx*e.x+this.yy*e.y;t.setCoords(n,r)}setIdentity(){this.xx=1,this.xy=0,this.xd=0,this.yx=0,this.yy=1,this.yd=0}isIdentity(){return this.xx===1&&this.yy===1&&!this.xy&&!this.xd&&!this.yx&&!this.yd}isIdentityTol(e){let t=e*e;return!(a(this.xd)+a(this.yd)>t||a(this.xy+this.xd)+a(this.yy+this.yd-1)>t||a(this.xx+this.xd-1)+a(this.yx+this.yd)>t)}isReflective(){return this.xx*this.yy-this.yx*this.xy<0}isUniform(e){let t=this.xx*this.xx+this.yx*this.yx,n=this.xy*this.xy+this.yy*this.yy,r=(t+n)*e;return Math.abs(t-n)<=r&&Math.abs(this.xx*this.xy+this.yx*this.yy)<=r}isUniformNoRotation(){return this.xx!==0&&Math.abs(this.xx)===Math.abs(this.yy)&&this.xy===0&&this.yx===0}isTranslate(){return this.xx===1&&this.yy===1&&!this.xy&&!this.yx}isTranslateTol(e){let t=new i;return t.setCoords(0,1),this.transformWithoutTranslateInPlace(t),--t.y,t.sqrLength()>e*e?!1:(t.setCoords(1,0),this.transformWithoutTranslateInPlace(t),--t.x,t.sqrLength()<=e*e)}isOrthonormal(e){let t=new d;return t.xx=this.xx*this.xx+this.xy*this.xy,t.xy=this.xx*this.yx+this.xy*this.yy,t.yx=this.yx*this.xx+this.yy*this.xy,t.yy=this.yx*this.yx+this.yy*this.yy,t.xd=0,t.yd=0,t.isIdentityTol(e)}isDegenerate(e){return Math.abs(this.xx*this.yy-this.yx*this.xy)<=2*e*(Math.abs(this.xx*this.yy)+Math.abs(this.yx*this.xy))}isZero(){return this.xx===0&&this.yy===0&&this.xy===0&&this.yx===0&&this.xd===0&&this.yd===0}isScaleAndTranslateTol(e){return this.xy*this.xy+this.yx*this.yx<=(this.xx*this.xx+this.yy*this.yy)*e}setTranslate(e,t){return this.xx=1,this.xy=0,this.xd=e,this.yx=0,this.yy=1,this.yd=t,this}setShiftCoords(e,t){return this.xx=1,this.xy=0,this.xd=e,this.yx=0,this.yy=1,this.yd=t,this}setShift(e){return this.xx=1,this.xy=0,this.xd=e.x,this.yx=0,this.yy=1,this.yd=e.y,this}setScaleCoords(e,t){return this.xx=e,this.xy=0,this.xd=0,this.yx=0,this.yy=t,this.yd=0,this}setScale(e){return this.setScaleCoords(e,e),this}setFlipX(e,t){return this.xx=-1,this.xy=0,this.xd=e+t,this.yx=0,this.yy=1,this.yd=0,this}setFlipY(e,t){return this.xx=1,this.xy=0,this.xd=0,this.yx=0,this.yy=-1,this.yd=e+t,this}setShear(e,t){return this.xx=1,this.xy=e,this.xd=0,this.yx=t,this.yy=1,this.yd=0,this}scale(e,t){return this.xx*=e,this.xy*=e,this.xd*=e,this.yx*=t,this.yy*=t,this.yd*=t,this}setRotateAngle(e){return this.setRotate(Math.cos(e),Math.sin(e))}setRotate(e,t){return this.xx=e,this.xy=-t,this.xd=0,this.yx=t,this.yy=e,this.yd=0,this}setRotateAngleAbout(e,t){return this.setRotateAbout(Math.cos(e),Math.sin(e),t)}setRotateAbout(e,t,n){return this.setTranslate(-n.x,-n.y),this.rotate(e,t),this.translate(n.x,n.y)}setSwapCoordinates(){return this.xx=0,this.xy=1,this.xd=0,this.yx=1,this.yy=0,this.yd=0,this}setRotateCw90(){return this.xx=0,this.xy=1,this.xd=0,this.yx=-1,this.yy=0,this.yd=0,this}setRotateCcw90(){return this.xx=0,this.xy=-1,this.xd=0,this.yx=1,this.yy=0,this.yd=0,this}shiftCoords(e,t){return this.xd+=e,this.yd+=t,this}shift(e){return this.xd+=e.x,this.yd+=e.y,this}translate(e,t){return this.xd+=e,this.yd+=t,this}flipX(e,t){return this.xx=-this.xx,this.xy=-this.xy,this.xd=e+t-this.xd,this}flipY(e,t){return this.yx=-this.yx,this.yy=-this.yy,this.yd=e+t-this.yd,this}shear(e,t){let n=new d;return n.setShear(e,t),this.multiply(n)}rotateAngle(e){let t=new d;return t.setRotateAngle(e),this.multiply(t)}rotate(e,t){let n=new d;return n.setRotate(e,t),this.multiply(n)}rotateAbout(e,t,n){return this.translate(-n.x,-n.y),this.rotate(e,t),this.translate(n.x,n.y)}rotateAngleAbout(e,t){return this.rotateAbout(Math.cos(e),Math.sin(e),t)}setInvert(e){return this.set(e),this.invertThis()}invertThis(){let e=this.xx*this.yy-this.xy*this.yx;if(e===0)return this.setZero(),this;e=1/e;let t=(this.xy*this.yd-this.xd*this.yy)*e,n=(this.xd*this.yx-this.xx*this.yd)*e,r=this.yy*e,i=-this.xy*e,a=-this.yx*e,o=this.xx*e;return this.xd=t,this.yd=n,this.xx=r,this.yy=o,this.xy=i,this.yx=a,this}invertPrecise(e){return this.set(e),this.invertPreciseThis()}invertPreciseThis(){let e=o.constructDouble(this.xy),t=o.constructDouble(this.xx),n=t.mulDouble(this.yy).sub(e.mulDouble(this.yx));if(n.isZero())return this.setZero(),this;let r=n.clone();r.invertThis();let i=o.constructDouble(this.xd),a=e.mulDouble(this.yd).sub(i.mulDouble(this.yy)).mul(r).toDouble(),s=i.mulDouble(this.yx).sub(t.mulDouble(this.yd)).mul(r).toDouble(),c=r.mulDouble(this.yy).toDouble(),l=r.mulDouble(-this.xy).toDouble(),u=r.mulDouble(-this.yx).toDouble(),d=r.mulDouble(this.xx).toDouble();return this.xd=a,this.yd=s,this.xx=c,this.yy=d,this.xy=l,this.yx=u,this}extractScaleTransform(e,t){let n=Math.sqrt(this.xx*this.xx+this.xy*this.xy),r=Math.sqrt(this.yx*this.yx+this.yy*this.yy);t.setScaleCoords(1/n,1/r),t.multiply(this),e.setScaleCoords(n,r)}setFromTwoTriangles(e,t){let n=!0;for(let r=0;r<3;++r)n&&=e[r].equals(t[r]);if(n)return this.setIdentity(),!0;let r=new i;r.setSub(e[0],e[1]);let a=new i;a.setSub(e[0],e[2]);let o=new i;o.setSub(t[0],t[1]);let s=new i;s.setSub(t[0],t[2]);let c=4*2**-52*(Math.abs(r.x*a.y)+Math.abs(a.x*r.y)),l=r.x*a.y-r.y*a.x;if(Math.abs(l)>c)l=1/l,this.xx=(o.x*a.y-r.y*s.x)*l,this.xy=(r.x*s.x-o.x*a.x)*l,this.yx=(o.y*a.y-r.y*s.y)*l,this.yy=(r.x*s.y-o.y*a.x)*l;else return this.setZero(),!1;return this.xd=t[0].x-(this.xx*e[0].x+this.xy*e[0].y),this.yd=t[0].y-(this.yx*e[0].x+this.yy*e[0].y),!0}initializeFromControlPoints(e,t,n,r,i=null){if(t===0){this.setIdentity(),i&&i.setIdentity();return}if(t===1){this.setShift(r[0].sub(n[0])),i&&i.setShift(n[0].sub(r[0]));return}t<3&&(e=1),e===4&&t>2?m(this,t,n,r,i):h(e,this,t,n,r,i)}calculateErrors(t,n,r,a){e(t>0&&n!==null&&r!==null);let o=0;for(let e=0;e<t;++e){let t=this.transform(n[e]),s=i.sqrDistance(r[e],t);o+=s,a&&(a[e]=Math.sqrt(s))}return Math.sqrt(o/t)}}const f=[43,11,41,9,61];function p(t,n){e((n.rows()===2||n.rows()===3)&&(n.cols()===2||n.rows()===3)),t.xx=n.atRowCol(0,0),t.xy=n.atRowCol(0,1),t.yx=n.atRowCol(1,0),t.yy=n.atRowCol(1,1),n.cols()===3?(t.xd=n.atRowCol(0,2),t.yd=n.atRowCol(1,2)):(t.xd=0,t.yd=0)}function m(e,t,r,a,o){let s=i.average(r,t),c=i.average(a,t),l=new u({NN:2,MM:2});l.setZero();let d=new u({NN:2,MM:2});d.setZero();for(let e=0;e<t;++e)l.setRowCol(0,0,l.atRowCol(0,0)+(r[e].x-s.x)*(r[e].x-s.x)),l.setRowCol(0,1,l.atRowCol(0,1)+(r[e].x-s.x)*(r[e].y-s.y)),l.setRowCol(1,1,l.atRowCol(1,1)+(r[e].y-s.y)*(r[e].y-s.y)),d.setRowCol(0,0,d.atRowCol(0,0)+(a[e].x-c.x)*(r[e].x-s.x)),d.setRowCol(0,1,d.atRowCol(0,1)+(a[e].x-c.x)*(r[e].y-s.y)),d.setRowCol(1,0,d.atRowCol(1,0)+(a[e].y-c.y)*(r[e].x-s.x)),d.setRowCol(1,1,d.atRowCol(1,1)+(a[e].y-c.y)*(r[e].y-s.y));l.setRowCol(1,0,l.atRowCol(0,1));let f=new u({NN:2,MM:2});l.pseudoInverse(f,!0)||n(`Failed to compute pseudo inverse`),d.mul(f,d),p(e,d);let m=s.clone();e.transformInPlace(m),e.xd=c.x-m.x,e.yd=c.y-m.y,o&&(d.pseudoInverse(f,!1)||n(`Failed to compute pseudo inverse`),p(o,f),o.transformInPlace(c),o.xd=s.x-c.x,o.yd=s.y-c.y)}function h(t,r,a,o,s,c){e(t===1||t===0||t===2||t===3),r.setIdentity();let l=i.average(o,a),m=i.average(s,a);if(e(t<f.length&&t>0),f[t]&8){let e=new u({NN:2,MM:2});e.setZero();for(let t=0;t<a;++t)e.setRowCol(0,0,e.atRowCol(0,0)+(s[t].x-m.x)*(o[t].x-l.x)),e.setRowCol(1,0,e.atRowCol(1,0)+(s[t].x-m.x)*(o[t].y-l.y)),e.setRowCol(0,1,e.atRowCol(0,1)+(s[t].y-m.y)*(o[t].x-l.x)),e.setRowCol(1,1,e.atRowCol(1,1)+(s[t].y-m.y)*(o[t].y-l.y));let i=new u({NN:2,MM:2}),c=new u({NN:2,MM:1}),h=new u({NN:2,MM:2});e.svd(i,c,h)||n(`Failed to compute svd`);let g=new u({NN:2,MM:2});i.transpose(g);let _=new u({NN:2,MM:2});h.mul(g,_),f[t]&32||_.determinant()<0&&(g.setRowCol(1,0,-g.atRowCol(1,0)),g.setRowCol(1,1,-g.atRowCol(1,1)),h.mul(g,_));let v=new d;p(v,_),r.set(v)}if(f[t]&2){let e=0,t=0;for(let n=0;n<a;++n){let i=o[n].sub(l);e+=i.sqrLength(),r.transformInPlace(i),t+=i.dotProduct(s[n].sub(m))}if(e===0)t===0?r.setIdentity():r.setZero();else{let n=t/e;r.scale(n,n)}}else e(!(f[t]&4));let h=l.clone();r.transformInPlace(h),r.xd=m.x-h.x,r.yd=m.y-h.y,c&&(c.set(r),c.invertThis(),c.isZero()&&(c.xd=l.x,c.yd=l.y))}export{d as T};