@arcgis/core 4.34.0-next.94 → 4.34.0-next.95

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 (735) hide show
  1. package/analysis/ElevationProfileAnalysis.js +1 -1
  2. package/analysis/VolumeMeasurementAnalysis.js +1 -1
  3. package/analysis/featureReferenceUtils.js +1 -1
  4. package/applications/Components/featureUtils.d.ts +1 -0
  5. package/applications/Components/featureUtils.js +1 -1
  6. package/applications/KnowledgeStudio/resourceSerializationUtils.js +1 -1
  7. package/assets/esri/core/workers/RemoteClient.js +1 -1
  8. package/assets/esri/core/workers/chunks/{57c08ccb75e3135978d1.js → 0086a09441627842d34a.js} +1 -1
  9. package/assets/esri/core/workers/chunks/{35ca317490540fae437c.js → 04c30eec4387078cd38f.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{155dcbd957f8787a45c3.js → 05eee334d58a0b9f6316.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{0f37204f86d2997a2811.js → 06e60fc7715d08ede59d.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{94ddf029698991d853b9.js → 0811ac64d08454460fb1.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{6391ce002fbde9f27a77.js → 081a7082dc281ca7662a.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{3c3b1dc95f03082e4d5b.js → 083f1c2fd0b59a0bf4c3.js} +1 -1
  15. package/assets/esri/core/workers/chunks/{9d9a639f7388a29e7c96.js → 08ee3a97d2b8adb44ea9.js} +1 -1
  16. package/assets/esri/core/workers/chunks/097e5deb51ee7e25e654.js +1 -0
  17. package/assets/esri/core/workers/chunks/{c86ca87959f04075e834.js → 0a7efed82d8e47290147.js} +1 -1
  18. package/assets/esri/core/workers/chunks/{147f6e7b147beaa4ed29.js → 0d94a08769727875bf0e.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{e2fdc4dc1ab9decd731e.js → 135e270b4f03c4270870.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{c6cae8471c5d4ae40c65.js → 145c6a7cdcc9893efb27.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{0cfded1acf92f89a13cb.js → 14ace5dc4b8984212a57.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{39a5863355cccaabd2d6.js → 1762ff76350065750c75.js} +1 -1
  23. package/assets/esri/core/workers/chunks/{a98b284b147258629947.js → 188272af9a6470ccfe31.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{ce8f56cf371812b57a46.js → 19699769deff862e29ce.js} +1 -1
  25. package/assets/esri/core/workers/chunks/{bf9d09493fd849ea69fd.js → 1fd459234917a51b6ae1.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{0aaaf4d1c4a5d284216e.js → 22bb877b85ae250d7819.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{05072093e0209ef5db20.js → 24c14e4a1d2a2267097e.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{e5d974593043d5e2b502.js → 2795a2817ebe3298c350.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{71fef0a33b7ed9456e47.js → 28a5f8978817e0471a2a.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{07a7ca89ef2ca4fc090b.js → 2a30afa043e3f88655d9.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{41f275401e1cde7eee20.js → 2a8b75d2445680571759.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{6b208f5d423da64c8559.js → 2a900a632a1231deb713.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{0e5e565df6ec71445f2e.js → 2bbe8277578b033f92d4.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{48133effac2eacc2196e.js → 2bf29faeb23120dc1916.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{77e611724a499d36eacc.js → 2c72e185b780bbbb1c9f.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{38d874d7f815f5329420.js → 2ca8b0c1ca399fd5dc2f.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{c799f1c03cb22ef52f5f.js → 2d51e9c9b73301b6879c.js} +1 -1
  38. package/assets/esri/core/workers/chunks/{cd0c222a36caa7f80860.js → 2e4dccee7ea387263f15.js} +1 -1
  39. package/assets/esri/core/workers/chunks/{0856cd281efd71bfe3c4.js → 3116b35a92cc0afd9fd3.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{e153b61560a7a869db63.js → 319c3f46f2afb8f3e5a9.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{b8f55ee77ab6ea4c289e.js → 326a76a4e80269d4029d.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{28bb6896c5fd353ca5e9.js → 3367b8565226646decec.js} +1 -1
  43. package/assets/esri/core/workers/chunks/{c38360d912f256519e06.js → 3496e025e48cf580250d.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{4753793daf0b7ff8b5ff.js → 35255e2b980f650490d8.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{d2df6e685d6cffc5f486.js → 37d05d9796917c3d4b7a.js} +1 -1
  46. package/assets/esri/core/workers/chunks/{7b17f52019762aa21af8.js → 3815ffa13e7b439bca6e.js} +1 -1
  47. package/assets/esri/core/workers/chunks/3a2d4b78a48ebb181105.js +1 -0
  48. package/assets/esri/core/workers/chunks/{de34c21d3e6913befe5a.js → 3b65d6a78fbffca37fbd.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{c473b15d4d52f0a63d20.js → 3c78208a97c4cbd8d6d1.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{2698f656405876f4bd20.js → 3ccdce156b906574bd29.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{68f5a2d2666636c3f807.js → 40b81d1c2d53cf598b8e.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{f3284d4e0d41efb0b4a0.js → 441ead5bce80f639934e.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{97eb2cfc1f036feea9a9.js → 44c3b5a507814103f4b4.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{6f29951f5a2da068b257.js → 456161a323be7d640c61.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{b18887a6dc86f0c8324a.js → 48646f3d95a3f2b17e78.js} +1 -1
  56. package/assets/esri/core/workers/chunks/49571d6875de1f2e7e25.js +33 -0
  57. package/assets/esri/core/workers/chunks/{1bbc0dfad4cd72a1c42b.js → 4a2bf3c8da24abd8b9e2.js} +6 -6
  58. package/assets/esri/core/workers/chunks/4b13749b74059a7837d2.js +1 -0
  59. package/assets/esri/core/workers/chunks/{c8e4fe0e3b109eb80e8e.js → 4b83b45df0c4005d078d.js} +1 -1
  60. package/assets/esri/core/workers/chunks/{896c7d137bfd7a8fa0bc.js → 4f01be74dd26e639330f.js} +1 -1
  61. package/assets/esri/core/workers/chunks/{b5c829e904bc9cb5347d.js → 50a5caa96c111dda5c60.js} +1 -1
  62. package/assets/esri/core/workers/chunks/{98381404f2d99a1f9341.js → 50e1c63d0b6196dd365e.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{899f493412acd5a5d91f.js → 5132ca68e8c7af111a47.js} +1 -1
  64. package/assets/esri/core/workers/chunks/{d08b80583a23ba253c7e.js → 56916e56c20465428dd4.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{bbdadced49446c907361.js → 578789c040846ea3759b.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{f62717338075df626eda.js → 5a527a47285a5995cff9.js} +1 -1
  67. package/assets/esri/core/workers/chunks/5cb92abb1f0f38bd0eab.js +1 -0
  68. package/assets/esri/core/workers/chunks/{56edb55b53779e7fd31e.js → 5d2e5774768d8f290343.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{6e5175b43220d6692263.js → 5d3661d1fe46dd29aae9.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{0652d7e525d99e39c957.js → 5fb2ce028b371b3a8acb.js} +1 -1
  71. package/assets/esri/core/workers/chunks/63019a7eb5222dc5e420.js +1 -0
  72. package/assets/esri/core/workers/chunks/{71c6c0b26253c4ca1b68.js → 630efe10c871425b6a95.js} +1 -1
  73. package/assets/esri/core/workers/chunks/64629ddcf008349eaf41.js +1 -0
  74. package/assets/esri/core/workers/chunks/{61e8e159f1f336569b27.js → 65111858957f43eacd8c.js} +1 -1
  75. package/assets/esri/core/workers/chunks/{0427f66b56ec6601deb0.js → 6ac90d88e5f931b1a003.js} +1 -1
  76. package/assets/esri/core/workers/chunks/6c842b955fdd40b39914.js +1 -0
  77. package/assets/esri/core/workers/chunks/{08b0fc6bfe9640ee2525.js → 6cd379bb66dc4cf5d2bf.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{1f2d13466c60a6b57717.js → 6e5b3bbee054d072b594.js} +1 -1
  79. package/assets/esri/core/workers/chunks/6ec77a8142fbfa805b5a.js +1 -0
  80. package/assets/esri/core/workers/chunks/{541bffd61006d0e36166.js → 6f4bd0ee85e7e5a74340.js} +1 -1
  81. package/assets/esri/core/workers/chunks/{648c91a9822bc9d6ee47.js → 701a1835684cf815bcb7.js} +1 -1
  82. package/assets/esri/core/workers/chunks/{f71b76c9506178124fa3.js → 70af1b5b3d2f3f395441.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{d7adef4093ce19ad356d.js → 72846fb9c87c6642daf0.js} +1 -1
  84. package/assets/esri/core/workers/chunks/{f88fe2e8fbc763bdc940.js → 73c1d43070b4fe1e5c1e.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{cab2a1382bdd32bb34d8.js → 7421f9575487cdc9e28e.js} +1 -1
  86. package/assets/esri/core/workers/chunks/{a845c68e76382a73da5e.js → 7633537dc0c65d655baf.js} +1 -1
  87. package/assets/esri/core/workers/chunks/{82e0d22619dc26920ca9.js → 7698f4f4471b6e1c12ef.js} +1 -1
  88. package/assets/esri/core/workers/chunks/{9a0b9d931c1a29e81475.js → 76e444bd625cf3d35877.js} +1 -1
  89. package/assets/esri/core/workers/chunks/{b265472ac3f949a7f40c.js → 773d76253588bcf14eaa.js} +1 -1
  90. package/assets/esri/core/workers/chunks/{77705d0c7c17bd46d81a.js → 7810f870d71f80ca4f41.js} +1 -1
  91. package/assets/esri/core/workers/chunks/{56de25a6fe659a5b5c2b.js → 78b35a19332e58c8c279.js} +1 -1
  92. package/assets/esri/core/workers/chunks/{e4833b718a813a8d125b.js → 79012b873d2b7786be77.js} +1 -1
  93. package/assets/esri/core/workers/chunks/7a6a96edc892d7060b7d.js +1 -0
  94. package/assets/esri/core/workers/chunks/7b3ff47cdbb6af38530d.js +1 -0
  95. package/assets/esri/core/workers/chunks/{04dbdaa63c950f32b8f0.js → 7e8f7fa884d6d41ebae2.js} +1 -1
  96. package/assets/esri/core/workers/chunks/81bbe5251ed13c0d91cc.js +1 -0
  97. package/assets/esri/core/workers/chunks/{0037abf0a82d1ed32e91.js → 8215015f11221a354273.js} +1 -1
  98. package/assets/esri/core/workers/chunks/{cb6a9b43406f4fbe10b2.js → 82f1cd3896401c85df35.js} +1 -1
  99. package/assets/esri/core/workers/chunks/{2bb61f80473b495163e3.js → 83ab8c8bc9e6990114a8.js} +1 -1
  100. package/assets/esri/core/workers/chunks/{03b455e9405a8b6fec68.js → 8659abd4b46f153b6902.js} +1 -1
  101. package/assets/esri/core/workers/chunks/{19bd0b56d82446dbb7c5.js → 868ee8f429e7caddc045.js} +1 -1
  102. package/assets/esri/core/workers/chunks/{1fc7df018c8f802565a6.js → 86b978a48b539e9fc5b8.js} +1 -1
  103. package/assets/esri/core/workers/chunks/{4dfcd03082be83600f3a.js → 88add09190569b04e824.js} +1 -1
  104. package/assets/esri/core/workers/chunks/{65e279516170ddbd4a65.js → 89027f6800e17fab8973.js} +1 -1
  105. package/assets/esri/core/workers/chunks/{3e11a893271caa11a881.js → 8ad8fe758c615fcf2185.js} +1 -1
  106. package/assets/esri/core/workers/chunks/{a6533bab3b2fbc1e2a47.js → 8b16aa50d879b92a5375.js} +1 -1
  107. package/assets/esri/core/workers/chunks/{edaf059c7ea18088c3dd.js → 91df8638b8b904e6d8c5.js} +1 -1
  108. package/assets/esri/core/workers/chunks/92c306d02569e7cd9af3.js +1 -0
  109. package/assets/esri/core/workers/chunks/{fdadf11f31384c09db9f.js → 94486f3fcba48fa93aa8.js} +1 -1
  110. package/assets/esri/core/workers/chunks/{8513c9282c44bb0a736e.js → 9834bc11586a2d8d6f35.js} +1 -1
  111. package/assets/esri/core/workers/chunks/{a0fab8cd791c33d3895d.js → 98dbafa4d45fdf790fff.js} +1 -1
  112. package/assets/esri/core/workers/chunks/{2b867cec6ada339f1c8f.js → 9958a3ed4aa787d19e00.js} +1 -1
  113. package/assets/esri/core/workers/chunks/9a723d739ac44b45432c.js +1 -0
  114. package/assets/esri/core/workers/chunks/{2b9c9a35a6e1f56920b5.js → 9b0ea5e50aeeea615592.js} +14 -14
  115. package/assets/esri/core/workers/chunks/9c6fc4fe2c46f40d63d9.js +1 -0
  116. package/assets/esri/core/workers/chunks/{c4641c2c130c7b8bcdee.js → a1c4509a3865139eb570.js} +1 -1
  117. package/assets/esri/core/workers/chunks/{176f56de787bf486be9f.js → a7bd294996e6c8b8354a.js} +1 -1
  118. package/assets/esri/core/workers/chunks/{80a155496deef2c02a3e.js → a878061845e594b2d72c.js} +1 -1
  119. package/assets/esri/core/workers/chunks/{8f426cb210a4250517d5.js → ad3e18c4c65aa2cd1ceb.js} +1 -1
  120. package/assets/esri/core/workers/chunks/{0328eaea66c1db98da1c.js → ae807912acc19a166264.js} +1 -1
  121. package/assets/esri/core/workers/chunks/{0a981061df08da19372c.js → ae8c387d59be87457567.js} +1 -1
  122. package/assets/esri/core/workers/chunks/{5caf49e679ed0c27e0bd.js → aea8553a2aa54cfd694b.js} +1 -1
  123. package/assets/esri/core/workers/chunks/{0ceb68ff73e5d39e837a.js → b13ccda702b714fe6161.js} +1 -1
  124. package/assets/esri/core/workers/chunks/b1f667006cba60ef4aa7.js +1 -0
  125. package/assets/esri/core/workers/chunks/{70c8f69eed14d55c5cf6.js → b2add7338258ca7c24dd.js} +1 -1
  126. package/assets/esri/core/workers/chunks/b2d9f4e057af26a538fb.js +1 -0
  127. package/assets/esri/core/workers/chunks/{26081b6486c623735657.js → b4ea675831627d9808dd.js} +1 -1
  128. package/assets/esri/core/workers/chunks/{ce2fcaa21d6efcdf4da5.js → b8339c1d60847a9eed3e.js} +1 -1
  129. package/assets/esri/core/workers/chunks/{b1ccbc2fef7f7e5e04f7.js → bae0dfe9a2f5aabae42c.js} +1 -1
  130. package/assets/esri/core/workers/chunks/{95bae3c275f1483eb7ed.js → bcff6178e9d16b1b6191.js} +1 -1
  131. package/assets/esri/core/workers/chunks/{2845a0810e9c00bf30f8.js → bf775fe489213cfc08b1.js} +1 -1
  132. package/assets/esri/core/workers/chunks/{4823e4522bd7379d858e.js → bfc1e8aec7aace3ff30e.js} +1 -1
  133. package/assets/esri/core/workers/chunks/{20003728a679479b14dc.js → c31583229a1100b66a18.js} +1 -1
  134. package/assets/esri/core/workers/chunks/{9346437b152b20bdcf8a.js → c941d15190fc08523d0d.js} +1 -1
  135. package/assets/esri/core/workers/chunks/{5746c4861af83c1d57a8.js → cf11b1dcc2cff30229b6.js} +1 -1
  136. package/assets/esri/core/workers/chunks/{fe1dcf9f81da4adbb1fe.js → cf13625a033f9903655f.js} +1 -1
  137. package/assets/esri/core/workers/chunks/d28ea91f7458daa67fae.js +1 -0
  138. package/assets/esri/core/workers/chunks/{1990162dcf73601d54f7.js → d3cd9c24edf7520d0824.js} +1 -1
  139. package/assets/esri/core/workers/chunks/{bec9ddd38c9ab9f2561b.js → d4f16c2b9297a479731e.js} +1 -1
  140. package/assets/esri/core/workers/chunks/{73db6c070b049fe05147.js → d57edb77c6deee36cce5.js} +1 -1
  141. package/assets/esri/core/workers/chunks/{6e4ec9fa931c69e4e4ba.js → da573ecc68e6aa8f6da9.js} +1 -1
  142. package/assets/esri/core/workers/chunks/{bdf0ab95401c6d8fbc7d.js → db559437b571462fb3db.js} +1 -1
  143. package/assets/esri/core/workers/chunks/{512dcd6e34e217029391.js → deb2854bb7d082a26f52.js} +1 -1
  144. package/assets/esri/core/workers/chunks/{5993427325d1add18ed9.js → dede989d59c4b416af68.js} +1 -1
  145. package/assets/esri/core/workers/chunks/{18e9cb71fa020e93d139.js → df5ecb3339d9301a6f5b.js} +1 -1
  146. package/assets/esri/core/workers/chunks/{e22b400636094fc7b6c0.js → dfbf2e17058aa876f96a.js} +1 -1
  147. package/assets/esri/core/workers/chunks/dfc37c2ce51e6a34fd87.js +1 -0
  148. package/assets/esri/core/workers/chunks/dff8e15958423e0212e5.js +1 -0
  149. package/assets/esri/core/workers/chunks/{c5c6a32a24005478c976.js → e032f3d2ee19790f8c79.js} +1 -1
  150. package/assets/esri/core/workers/chunks/{3d7923d25734d03a4d27.js → e1dba29f5fd1ee5fc999.js} +1 -1
  151. package/assets/esri/core/workers/chunks/{352511dbc67166face40.js → e2e32e2f04cce9e932fd.js} +1 -1
  152. package/assets/esri/core/workers/chunks/{bb0a1be03bb9d621432c.js → e7638b9ab6674bc8a18f.js} +1 -1
  153. package/assets/esri/core/workers/chunks/{edef1e2254c992459c63.js → eb1a7bb8b14e651bc241.js} +1 -1
  154. package/assets/esri/core/workers/chunks/{779ee975efebb838b5d6.js → f154336b4af011cd0c56.js} +1 -1
  155. package/assets/esri/core/workers/chunks/{3807d0b9b1894731174d.js → f1be3a177328a169128f.js} +1 -1
  156. package/assets/esri/core/workers/chunks/{0810dbbf348a927392e7.js → f59c782898d931810374.js} +1 -1
  157. package/assets/esri/core/workers/chunks/{c9159ebf930af3f336f3.js → f5d89b48f62fba78fd10.js} +1 -1
  158. package/assets/esri/core/workers/chunks/f7846523adacbfe5047e.js +1 -0
  159. package/assets/esri/core/workers/chunks/{b510c07dfd0d31683b08.js → f7a9d2da07196a0989ae.js} +1 -1
  160. package/assets/esri/core/workers/chunks/{143503f6eb270c4683f8.js → f7c99e9c8d19352af38d.js} +1 -1
  161. package/assets/esri/core/workers/chunks/{79ab06fb4c91ac8da323.js → f839b86bee15deaf84e4.js} +1 -1
  162. package/assets/esri/core/workers/chunks/{9adecee0ed2f1df3b0d2.js → f85e2b6a285fa8ad60aa.js} +1 -1
  163. package/assets/esri/core/workers/chunks/{024063fe2bbb27899094.js → fbbccca5b1bcffb31c4e.js} +1 -1
  164. package/assets/esri/core/workers/chunks/{009556f323e58271bc7a.js → fc4417d1260b717a9385.js} +1 -1
  165. package/assets/esri/core/workers/chunks/{6810ecdeccf4b7eae5e2.js → fdaf8fb5a3cc7abea44b.js} +1 -1
  166. package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
  167. package/assets/esri/themes/base/widgets/_Editor.scss +4 -0
  168. package/assets/esri/themes/dark/main.css +1 -1
  169. package/assets/esri/themes/light/main.css +1 -1
  170. package/assets/esri/themes/light/view.css +1 -1
  171. package/assets/esri/widgets/Editor/t9n/Editor.json +1 -1
  172. package/assets/esri/widgets/Editor/t9n/Editor_ar.json +1 -1
  173. package/assets/esri/widgets/Editor/t9n/Editor_bg.json +1 -1
  174. package/assets/esri/widgets/Editor/t9n/Editor_bs.json +1 -1
  175. package/assets/esri/widgets/Editor/t9n/Editor_ca.json +1 -1
  176. package/assets/esri/widgets/Editor/t9n/Editor_cs.json +1 -1
  177. package/assets/esri/widgets/Editor/t9n/Editor_da.json +1 -1
  178. package/assets/esri/widgets/Editor/t9n/Editor_de.json +1 -1
  179. package/assets/esri/widgets/Editor/t9n/Editor_el.json +1 -1
  180. package/assets/esri/widgets/Editor/t9n/Editor_en.json +1 -1
  181. package/assets/esri/widgets/Editor/t9n/Editor_es.json +1 -1
  182. package/assets/esri/widgets/Editor/t9n/Editor_et.json +1 -1
  183. package/assets/esri/widgets/Editor/t9n/Editor_fi.json +1 -1
  184. package/assets/esri/widgets/Editor/t9n/Editor_fr.json +1 -1
  185. package/assets/esri/widgets/Editor/t9n/Editor_he.json +1 -1
  186. package/assets/esri/widgets/Editor/t9n/Editor_hr.json +1 -1
  187. package/assets/esri/widgets/Editor/t9n/Editor_hu.json +1 -1
  188. package/assets/esri/widgets/Editor/t9n/Editor_id.json +1 -1
  189. package/assets/esri/widgets/Editor/t9n/Editor_it.json +1 -1
  190. package/assets/esri/widgets/Editor/t9n/Editor_ja.json +1 -1
  191. package/assets/esri/widgets/Editor/t9n/Editor_ko.json +1 -1
  192. package/assets/esri/widgets/Editor/t9n/Editor_lt.json +1 -1
  193. package/assets/esri/widgets/Editor/t9n/Editor_lv.json +1 -1
  194. package/assets/esri/widgets/Editor/t9n/Editor_nl.json +1 -1
  195. package/assets/esri/widgets/Editor/t9n/Editor_no.json +1 -1
  196. package/assets/esri/widgets/Editor/t9n/Editor_pl.json +1 -1
  197. package/assets/esri/widgets/Editor/t9n/Editor_pt-BR.json +1 -1
  198. package/assets/esri/widgets/Editor/t9n/Editor_pt-PT.json +1 -1
  199. package/assets/esri/widgets/Editor/t9n/Editor_ro.json +1 -1
  200. package/assets/esri/widgets/Editor/t9n/Editor_ru.json +1 -1
  201. package/assets/esri/widgets/Editor/t9n/Editor_sk.json +1 -1
  202. package/assets/esri/widgets/Editor/t9n/Editor_sl.json +1 -1
  203. package/assets/esri/widgets/Editor/t9n/Editor_sr.json +1 -1
  204. package/assets/esri/widgets/Editor/t9n/Editor_sv.json +1 -1
  205. package/assets/esri/widgets/Editor/t9n/Editor_th.json +1 -1
  206. package/assets/esri/widgets/Editor/t9n/Editor_tr.json +1 -1
  207. package/assets/esri/widgets/Editor/t9n/Editor_uk.json +1 -1
  208. package/assets/esri/widgets/Editor/t9n/Editor_vi.json +1 -1
  209. package/assets/esri/widgets/Editor/t9n/Editor_zh-CN.json +1 -1
  210. package/assets/esri/widgets/Editor/t9n/Editor_zh-HK.json +1 -1
  211. package/assets/esri/widgets/Editor/t9n/Editor_zh-TW.json +1 -1
  212. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer.json +1 -1
  213. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
  214. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
  215. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
  216. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
  217. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
  218. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
  219. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
  220. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
  221. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_en.json +1 -1
  222. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
  223. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
  224. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
  225. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
  226. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
  227. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
  228. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
  229. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
  230. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
  231. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
  232. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
  233. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
  234. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
  235. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
  236. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_no.json +1 -1
  237. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
  238. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
  239. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
  240. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
  241. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
  242. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
  243. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
  244. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
  245. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
  246. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
  247. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
  248. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
  249. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
  250. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
  251. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
  252. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
  253. package/assets/esri/widgets/Sketch/t9n/Sketch.json +1 -1
  254. package/assets/esri/widgets/Sketch/t9n/Sketch_ar.json +1 -1
  255. package/assets/esri/widgets/Sketch/t9n/Sketch_bg.json +1 -1
  256. package/assets/esri/widgets/Sketch/t9n/Sketch_bs.json +1 -1
  257. package/assets/esri/widgets/Sketch/t9n/Sketch_ca.json +1 -1
  258. package/assets/esri/widgets/Sketch/t9n/Sketch_cs.json +1 -1
  259. package/assets/esri/widgets/Sketch/t9n/Sketch_da.json +1 -1
  260. package/assets/esri/widgets/Sketch/t9n/Sketch_de.json +1 -1
  261. package/assets/esri/widgets/Sketch/t9n/Sketch_el.json +1 -1
  262. package/assets/esri/widgets/Sketch/t9n/Sketch_en.json +1 -1
  263. package/assets/esri/widgets/Sketch/t9n/Sketch_es.json +1 -1
  264. package/assets/esri/widgets/Sketch/t9n/Sketch_et.json +1 -1
  265. package/assets/esri/widgets/Sketch/t9n/Sketch_fi.json +1 -1
  266. package/assets/esri/widgets/Sketch/t9n/Sketch_fr.json +1 -1
  267. package/assets/esri/widgets/Sketch/t9n/Sketch_he.json +1 -1
  268. package/assets/esri/widgets/Sketch/t9n/Sketch_hr.json +1 -1
  269. package/assets/esri/widgets/Sketch/t9n/Sketch_hu.json +1 -1
  270. package/assets/esri/widgets/Sketch/t9n/Sketch_id.json +1 -1
  271. package/assets/esri/widgets/Sketch/t9n/Sketch_it.json +1 -1
  272. package/assets/esri/widgets/Sketch/t9n/Sketch_ja.json +1 -1
  273. package/assets/esri/widgets/Sketch/t9n/Sketch_ko.json +1 -1
  274. package/assets/esri/widgets/Sketch/t9n/Sketch_lt.json +1 -1
  275. package/assets/esri/widgets/Sketch/t9n/Sketch_lv.json +1 -1
  276. package/assets/esri/widgets/Sketch/t9n/Sketch_nl.json +1 -1
  277. package/assets/esri/widgets/Sketch/t9n/Sketch_no.json +1 -1
  278. package/assets/esri/widgets/Sketch/t9n/Sketch_pl.json +1 -1
  279. package/assets/esri/widgets/Sketch/t9n/Sketch_pt-BR.json +1 -1
  280. package/assets/esri/widgets/Sketch/t9n/Sketch_pt-PT.json +1 -1
  281. package/assets/esri/widgets/Sketch/t9n/Sketch_ro.json +1 -1
  282. package/assets/esri/widgets/Sketch/t9n/Sketch_ru.json +1 -1
  283. package/assets/esri/widgets/Sketch/t9n/Sketch_sk.json +1 -1
  284. package/assets/esri/widgets/Sketch/t9n/Sketch_sl.json +1 -1
  285. package/assets/esri/widgets/Sketch/t9n/Sketch_sr.json +1 -1
  286. package/assets/esri/widgets/Sketch/t9n/Sketch_sv.json +1 -1
  287. package/assets/esri/widgets/Sketch/t9n/Sketch_th.json +1 -1
  288. package/assets/esri/widgets/Sketch/t9n/Sketch_tr.json +1 -1
  289. package/assets/esri/widgets/Sketch/t9n/Sketch_uk.json +1 -1
  290. package/assets/esri/widgets/Sketch/t9n/Sketch_vi.json +1 -1
  291. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-CN.json +1 -1
  292. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-HK.json +1 -1
  293. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-TW.json +1 -1
  294. package/chunks/Envelope.js +1 -1
  295. package/chunks/Fog.glsl.js +2 -2
  296. package/chunks/Geometry.js +1 -1
  297. package/chunks/GlowBlur.glsl.js +8 -9
  298. package/chunks/GlowComposition.glsl.js +15 -16
  299. package/chunks/Laserlines.glsl.js +12 -12
  300. package/chunks/MultiPathImpl.js +1 -1
  301. package/chunks/Point2D.js +1 -1
  302. package/chunks/PointRenderer.glsl.js +1 -1
  303. package/chunks/Precipitation.glsl.js +2 -2
  304. package/chunks/Terrain.glsl.js +1 -1
  305. package/chunks/boundedPlane.js +1 -1
  306. package/chunks/bundle.js +1 -1
  307. package/chunks/cameraUtilsPlanar.js +1 -1
  308. package/chunks/cameraUtilsSpherical.js +1 -1
  309. package/chunks/sphere.js +1 -1
  310. package/chunks/vec32.js +1 -1
  311. package/config.js +1 -1
  312. package/core/accessorSupport/extensions/serializableProperty/reader.js +1 -1
  313. package/core/accessorSupport/extensions/serializableProperty/utils.js +5 -0
  314. package/core/accessorSupport/extensions/serializableProperty.js +1 -1
  315. package/core/accessorSupport/read.js +1 -1
  316. package/core/accessorSupport/write.js +1 -1
  317. package/core/has.js +1 -1
  318. package/core/libs/gl-matrix-2/math/quat.js +1 -1
  319. package/core/libs/gl-matrix-2/math/vec3.js +1 -1
  320. package/core/perspectiveUtils.js +1 -1
  321. package/core/workers/workerFactory.js +1 -1
  322. package/editing/geometry/lineUtils.js +1 -1
  323. package/geometry/Mesh.js +1 -1
  324. package/geometry/operators/support/jsonConverter.js +1 -1
  325. package/geometry/projection/localLinearScaleFactors.js +1 -1
  326. package/geometry/projection/projectDirection.js +1 -1
  327. package/geometry/projection/projectVec3Array.js +1 -1
  328. package/geometry/support/axisAngle.js +1 -1
  329. package/geometry/support/axisAngleDegrees.js +1 -1
  330. package/geometry/support/buffer/internals/Vec3.js +1 -1
  331. package/geometry/support/clipRay.js +1 -1
  332. package/geometry/support/coordinateSystem.js +1 -1
  333. package/geometry/support/frustum.js +1 -1
  334. package/geometry/support/lineSegment.js +1 -1
  335. package/geometry/support/meshUtils/centerAt.js +1 -1
  336. package/geometry/support/meshUtils/exporters/gltf/geometry.js +1 -1
  337. package/geometry/support/meshUtils/loadExternal.js +1 -1
  338. package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
  339. package/geometry/support/meshUtils/merge.js +1 -1
  340. package/geometry/support/meshUtils/rotate.js +1 -1
  341. package/geometry/support/meshUtils/scale.js +1 -1
  342. package/geometry/support/meshUtils/vertexSpaceConversion.js +1 -1
  343. package/geometry/support/plane.js +1 -1
  344. package/geometry/support/polygonUtils.js +1 -1
  345. package/geometry/support/ray.js +1 -1
  346. package/geometry/support/sphereUtils.js +1 -1
  347. package/geometry/support/triangle.js +1 -1
  348. package/geometry/support/vector.js +1 -1
  349. package/interfaces.d.ts +269 -145
  350. package/kernel.js +1 -1
  351. package/layers/FeatureLayer.js +1 -1
  352. package/layers/VoxelWasmPerSceneView.js +1 -1
  353. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  354. package/layers/graphics/sources/ParquetSource.js +1 -1
  355. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  356. package/layers/graphics/sources/support/QueryTask.js +1 -1
  357. package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
  358. package/layers/knowledgeGraph/layerUtils.js +1 -1
  359. package/layers/orientedImagery/core/coverageUtils.js +1 -1
  360. package/layers/orientedImagery/transformations/utils.js +1 -1
  361. package/layers/orientedImagery/transformations/worldToImage.js +1 -1
  362. package/layers/support/featurePopupQueryUtils.js +1 -1
  363. package/layers/support/layerUtils.js +1 -1
  364. package/layers/support/rasterDatasets/FunctionRaster.js +1 -1
  365. package/layers/support/tiles3DUtils.js +1 -1
  366. package/layers/video/VideoCameraSensorModel.js +1 -1
  367. package/layers/voxel/VoxelVolume.js +1 -1
  368. package/layers/voxel/voxelPlaneUtils.js +1 -1
  369. package/package.json +3 -3
  370. package/rest/knowledgeGraph/GraphApplyEdits.js +1 -1
  371. package/rest/query/executePivotQuery.js +5 -0
  372. package/rest/query/operations/query.js +1 -1
  373. package/rest/query/operations/queryPivot.js +5 -0
  374. package/rest/query/operations/queryUtils.js +5 -0
  375. package/rest/support/PivotDefinition.js +5 -0
  376. package/rest/support/PivotQuery.js +5 -0
  377. package/rest/support/UnPivotDefinition.js +5 -0
  378. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  379. package/smartMapping/support/adapters/support/utils.js +1 -1
  380. package/support/revision.js +1 -1
  381. package/views/2d/analysis/ElevationProfile/ElevationProfileInputVisualization2D.js +1 -1
  382. package/views/2d/analysis/ElevationProfileAnalysisView2D.js +1 -1
  383. package/views/2d/engine/flow/dataUtils.js +1 -1
  384. package/views/2d/engine/flow/utils.js +1 -1
  385. package/views/2d/engine/webgl/AFeatureTile.js +1 -1
  386. package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
  387. package/views/2d/interactive/editingTools/TransformTool.js +1 -1
  388. package/views/2d/interactive/editingTools/manipulations/RotateManipulation.js +1 -1
  389. package/views/2d/interactive/editingTools/manipulations/ScaleManipulation.js +1 -1
  390. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  391. package/views/2d/layers/MapNotesLayerView2D.js +1 -1
  392. package/views/2d/layers/RouteLayerView2D.js +1 -1
  393. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  394. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  395. package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
  396. package/views/2d/navigation/actions/Pan.js +1 -1
  397. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
  398. package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
  399. package/views/3d/analysis/Dimension/lengthDimensionConstraintUtils.js +1 -1
  400. package/views/3d/analysis/Dimension/lengthDimensionManipulatorUtils.js +1 -1
  401. package/views/3d/analysis/Dimension/lengthDimensionUtils.js +1 -1
  402. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
  403. package/views/3d/analysis/ElevationProfile/ElevationProfileGeometryVisualization3D.js +5 -0
  404. package/views/3d/analysis/ElevationProfile/ElevationProfileLineSceneComputation.js +1 -1
  405. package/views/3d/analysis/ElevationProfile/ElevationProfileLineVisualization3D.js +1 -1
  406. package/views/3d/analysis/ElevationProfile/ElevationProfileVisualization3D.js +1 -1
  407. package/views/3d/analysis/ElevationProfileAnalysisView3D.js +1 -1
  408. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  409. package/views/3d/analysis/LineOfSight/LineOfSightRayIntersector.js +1 -1
  410. package/views/3d/analysis/LineOfSight/LineOfSightVisualization.js +1 -1
  411. package/views/3d/analysis/Slice/ShiftManipulator.js +1 -1
  412. package/views/3d/analysis/Slice/SliceTool.js +1 -1
  413. package/views/3d/analysis/Slice/SliceVisualization.js +1 -1
  414. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  415. package/views/3d/analysis/Viewshed/ViewshedComputedData.js +1 -1
  416. package/views/3d/analysis/Viewshed/ViewshedFieldOfViewManipulation.js +1 -1
  417. package/views/3d/analysis/Viewshed/ViewshedScaleOrientManipulation.js +1 -1
  418. package/views/3d/analysis/Viewshed/ViewshedShapeVisualElement.js +1 -1
  419. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  420. package/views/3d/analysis/Viewshed/ViewshedSubVisualization.js +1 -1
  421. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  422. package/views/3d/analysis/Viewshed/viewshedToolUtils.js +1 -1
  423. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  424. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementConfiguration.js +1 -1
  425. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillComputation.js +1 -1
  426. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  427. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
  428. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementError.js +1 -1
  429. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  430. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
  431. package/views/3d/analysis/VolumeMeasurementAnalysisView3D.js +1 -1
  432. package/views/3d/analysis/support/measurementUtils.js +1 -1
  433. package/views/3d/animation/pointToPoint/Animation.js +1 -1
  434. package/views/3d/animation/pointToPoint/Camera.js +1 -1
  435. package/views/3d/camera/constraintUtils/altitude.js +1 -1
  436. package/views/3d/camera/constraintUtils/common.js +1 -1
  437. package/views/3d/camera/constraintUtils/distance.js +1 -1
  438. package/views/3d/camera/constraintUtils/surfaceCollision.js +1 -1
  439. package/views/3d/camera/constraintUtils/tilt.js +1 -1
  440. package/views/3d/camera/intersectionUtils.js +1 -1
  441. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  442. package/views/3d/environment/CloudsParameters.js +1 -1
  443. package/views/3d/environment/EnvironmentManager.js +1 -1
  444. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  445. package/views/3d/environment/Fog.js +1 -1
  446. package/views/3d/environment/MarsAtmosphere.js +1 -1
  447. package/views/3d/glTF/loader.js +1 -1
  448. package/views/3d/interactive/Manipulator3D.js +1 -1
  449. package/views/3d/interactive/SnappingVisualizer3D.js +1 -1
  450. package/views/3d/interactive/editingTools/dragEventPipeline3D.js +1 -1
  451. package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
  452. package/views/3d/interactive/editingTools/lineObjectVisualElementUtils.js +1 -1
  453. package/views/3d/interactive/editingTools/manipulations/MoveXYAxisManipulation.js +1 -1
  454. package/views/3d/interactive/editingTools/manipulations/MoveXYDiscManipulation.js +1 -1
  455. package/views/3d/interactive/editingTools/manipulations/MoveZManipulation.js +1 -1
  456. package/views/3d/interactive/editingTools/media/MediaElementManipulator3D.js +1 -1
  457. package/views/3d/interactive/editingTools/originGeometryVisualElementUtils.js +1 -1
  458. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  459. package/views/3d/interactive/editingTools/reshape/edgeOffsetUtils.js +1 -1
  460. package/views/3d/interactive/editingTools/transform/ScaleRotateTransform.js +1 -1
  461. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentMove.js +1 -1
  462. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentRotate.js +1 -1
  463. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentScale.js +1 -1
  464. package/views/3d/interactive/editingTools/transform/extentTransform/extentUtils.js +1 -1
  465. package/views/3d/interactive/manipulatorUtils.js +1 -1
  466. package/views/3d/interactive/support/viewUtils.js +1 -1
  467. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  468. package/views/3d/interactive/visualElements/LabelVisualElement.js +1 -1
  469. package/views/3d/interactive/visualElements/LaserlineVisualElement.js +1 -1
  470. package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
  471. package/views/3d/interactive/visualElements/MeasurementAreaVisualElement.js +1 -1
  472. package/views/3d/interactive/visualElements/MeasurementArrowVisualElement.js +1 -1
  473. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  474. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  475. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  476. package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
  477. package/views/3d/interactive/visualElements/VerticesVisualElement.js +1 -1
  478. package/views/3d/interactive/visualElements/support/Segment.js +1 -1
  479. package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
  480. package/views/3d/layers/FlowSubView3D.js +1 -1
  481. package/views/3d/layers/I3SMeshView3D.js +1 -1
  482. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  483. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  484. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  485. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  486. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  487. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  488. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  489. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  490. package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayer.js +1 -1
  491. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  492. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  493. package/views/3d/layers/graphics/Graphics3DLodInstanceGraphicLayer.js +1 -1
  494. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  495. package/views/3d/layers/graphics/Graphics3DMeshObject3DGraphicLayer.js +1 -1
  496. package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
  497. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  498. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  499. package/views/3d/layers/graphics/LabelInfo.js +1 -1
  500. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  501. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  502. package/views/3d/layers/i3s/I3SGeometryUtil.js +1 -1
  503. package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
  504. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  505. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  506. package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
  507. package/views/3d/layers/i3s/LoDUtil.js +1 -1
  508. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  509. package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
  510. package/views/3d/layers/support/FeatureTileMeasurements3D.js +1 -1
  511. package/views/3d/layers/support/FeatureTileVisibility3D.js +1 -1
  512. package/views/3d/layers/support/I3STreeDebugger.js +1 -1
  513. package/views/3d/layers/support/uvUtils.js +1 -1
  514. package/views/3d/state/Frustum.js +1 -1
  515. package/views/3d/state/NearFarHeuristic.js +1 -1
  516. package/views/3d/state/controllers/FovController.js +1 -1
  517. package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
  518. package/views/3d/state/controllers/PinchAndPanControllerGlobal.js +1 -1
  519. package/views/3d/state/controllers/PinchAndPanControllerLocal.js +1 -1
  520. package/views/3d/state/controllers/RotateController.js +1 -1
  521. package/views/3d/state/controllers/ZoomControllerGlobal.js +1 -1
  522. package/views/3d/state/controllers/ZoomControllerLocal.js +1 -1
  523. package/views/3d/state/controllers/ZoomStepControllerGlobal.js +1 -1
  524. package/views/3d/state/controllers/ZoomStepControllerLocal.js +1 -1
  525. package/views/3d/state/controllers/momentum/PanPlanarMomentumController.js +1 -1
  526. package/views/3d/state/controllers/momentum/PanSphericalMomentumController.js +1 -1
  527. package/views/3d/state/controllers/momentum/ZoomPlanarMomentumController.js +1 -1
  528. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  529. package/views/3d/state/utils/navigationUtils.js +1 -1
  530. package/views/3d/state/utils/viewUtils.js +1 -1
  531. package/views/3d/support/FrustumExtentIntersection.js +1 -1
  532. package/views/3d/support/RenderCoordsHelper.js +1 -1
  533. package/views/3d/support/cameraUtils.js +1 -1
  534. package/views/3d/support/cameraUtilsInternal.js +1 -1
  535. package/views/3d/support/dito.js +1 -1
  536. package/views/3d/support/flow/FlowSubViewTiles3D.js +1 -1
  537. package/views/3d/support/flow/StreamlineResources3DOverlay.js +1 -1
  538. package/views/3d/support/flow/StreamlineResources3DShape.js +1 -1
  539. package/views/3d/support/flow/constants.js +1 -1
  540. package/views/3d/support/geometryUtils/ray.js +1 -1
  541. package/views/3d/support/intersectionUtils.js +1 -1
  542. package/views/3d/support/mathUtils.js +1 -1
  543. package/views/3d/support/orientedBoundingBox.js +1 -1
  544. package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
  545. package/views/3d/support/pointsOfInterest/CenterOnSurface.js +1 -1
  546. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  547. package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
  548. package/views/3d/support/sunUtils.js +1 -1
  549. package/views/3d/support/viewpointUtils.js +1 -1
  550. package/views/3d/terrain/OverlayManager.js +1 -1
  551. package/views/3d/terrain/OverlayRenderer.js +1 -1
  552. package/views/3d/terrain/PatchGeometry.js +1 -1
  553. package/views/3d/terrain/PatchRenderData.js +1 -1
  554. package/views/3d/terrain/SphericalPatch.js +1 -1
  555. package/views/3d/terrain/TerrainRenderer.js +1 -1
  556. package/views/3d/terrain/TerrainSurface.js +1 -1
  557. package/views/3d/terrain/Tile.js +1 -1
  558. package/views/3d/webgl/RenderCamera.js +1 -1
  559. package/views/3d/webgl-engine/Stage.js +1 -1
  560. package/views/3d/webgl-engine/collections/Component/ComponentObject.js +1 -1
  561. package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticBVH.js +1 -1
  562. package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticComponentGeometryBVH.js +1 -1
  563. package/views/3d/webgl-engine/collections/Component/DepthRange.js +1 -1
  564. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  565. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js +1 -1
  566. package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js +1 -1
  567. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +2 -2
  568. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +1 -1
  569. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js +1 -1
  570. package/views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js +1 -1
  571. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  572. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechnique.js +1 -1
  573. package/views/3d/webgl-engine/core/util/TwoVectorPosition.js +1 -1
  574. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +7 -7
  575. package/views/3d/webgl-engine/effects/glow/GlowCompositionTechnique.js +1 -1
  576. package/views/3d/webgl-engine/effects/glow/GlowRenderNode.js +1 -1
  577. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  578. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  579. package/views/3d/webgl-engine/effects/laserlines/LaserLineRenderer.js +1 -1
  580. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathData.js +1 -1
  581. package/views/3d/webgl-engine/lib/BoundingInfo.js +1 -1
  582. package/views/3d/webgl-engine/lib/CompositingHelper.js +1 -1
  583. package/views/3d/webgl-engine/lib/CutFillColor.js +1 -1
  584. package/views/3d/webgl-engine/lib/CutFillDepth.js +1 -1
  585. package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
  586. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  587. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  588. package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
  589. package/views/3d/webgl-engine/lib/Intersector.js +1 -1
  590. package/views/3d/webgl-engine/lib/IntersectorResult.js +1 -1
  591. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  592. package/views/3d/webgl-engine/lib/Octree.js +1 -1
  593. package/views/3d/webgl-engine/lib/Path.js +1 -1
  594. package/views/3d/webgl-engine/lib/PathGeometryData.js +1 -1
  595. package/views/3d/webgl-engine/lib/PathVertex.js +1 -1
  596. package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
  597. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  598. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  599. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  600. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  601. package/views/3d/webgl-engine/lib/ViewshedShadowMap.js +1 -1
  602. package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
  603. package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
  604. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  605. package/views/3d/webgl-engine/lib/edgeRendering/edgeBufferWriters.js +1 -1
  606. package/views/3d/webgl-engine/lib/edgeRendering/edgePreprocessing.js +1 -1
  607. package/views/3d/webgl-engine/lib/geometryDataUtils.js +1 -1
  608. package/views/3d/webgl-engine/lib/intersectorUtils.js +1 -1
  609. package/views/3d/webgl-engine/lib/lodRendering/InstanceData.js +1 -1
  610. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  611. package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
  612. package/views/3d/webgl-engine/lib/triangleIntersectionUtils.js +1 -1
  613. package/views/3d/webgl-engine/lib/verticalOffsetUtils.js +1 -1
  614. package/views/3d/webgl-engine/lighting/SceneLighting.js +1 -1
  615. package/views/3d/webgl-engine/lighting/SphericalHarmonics.js +1 -1
  616. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  617. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  618. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  619. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  620. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  621. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  622. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  623. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  624. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  625. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  626. package/views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js +1 -1
  627. package/views/3d/webgl.js +1 -1
  628. package/views/DOMContainer.js +1 -1
  629. package/views/SceneView.js +1 -1
  630. package/views/View.js +1 -1
  631. package/views/View2D.js +1 -1
  632. package/views/analysis/ElevationProfile/ElevationProfileController.js +1 -1
  633. package/views/analysis/ElevationProfile/ElevationProfileError.d.ts +4 -0
  634. package/views/analysis/ElevationProfile/ElevationProfileError.js +5 -0
  635. package/views/analysis/ElevationProfile/ElevationProfileTool.js +1 -1
  636. package/views/analysis/ElevationProfile/elevationProfileErrors.js +5 -0
  637. package/views/analysis/ElevationProfile/elevationProfileGenerationUtils.js +1 -1
  638. package/views/analysis/ElevationProfile/elevationProfileGeometryUtils.js +1 -1
  639. package/views/analysis/ElevationProfile/elevationProfileInputVisualizationUtils.js +1 -1
  640. package/views/analysis/ExclusiveOperationManager.js +1 -1
  641. package/views/draw/support/Reshape.js +1 -1
  642. package/views/draw/support/createUtils.js +1 -1
  643. package/views/draw/support/helpMessageUtils3d.js +1 -1
  644. package/views/draw/support/surfaceCoordinateSystems.js +1 -1
  645. package/views/interactive/GraphicManipulator.js +1 -1
  646. package/views/interactive/coordinateHelper.js +1 -1
  647. package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
  648. package/views/interactive/editGeometry/support/editPlaneUtils.js +1 -1
  649. package/views/interactive/sketch/constraintUtils.js +1 -1
  650. package/views/interactive/sketch/constraints.js +1 -1
  651. package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
  652. package/views/interactive/snapping/RightAngleSnapper.js +1 -1
  653. package/views/interactive/snapping/candidates/ParallelLineSnappingCandidate.js +1 -1
  654. package/views/interactive/snapping/candidates/RightAngleTriangleSnappingCandidate.js +1 -1
  655. package/views/interactive/snapping/featureSources/featureServiceSource/tileUtils.js +1 -1
  656. package/views/interactive/snapping/featureSources/sceneLayerSource/SceneLayerSnappingSourceWorker.js +1 -1
  657. package/views/interactive/snapping/featureSources/sceneLayerSource/sceneLayerSnappingUtils.js +1 -1
  658. package/views/interactive/snapping/hints/LineSnappingHint.js +1 -1
  659. package/views/interactive/tooltip/tooltipCommonUtils.js +1 -1
  660. package/views/layers/FeatureLayerView.d.ts +1 -1
  661. package/views/layers/FeatureLayerView.js +1 -1
  662. package/views/layers/SceneLayerView.js +1 -1
  663. package/views/navigation/PanPlanarMomentumEstimator.js +1 -1
  664. package/views/navigation/PanSphericalMomentumEstimator.js +1 -1
  665. package/views/navigation/gamepadAndKeyboardUtils.js +1 -1
  666. package/views/popupAdapter.js +1 -1
  667. package/views/support/angularMeasurementUtils.js +1 -1
  668. package/views/support/euclideanAreaMeasurementUtils.js +1 -1
  669. package/views/support/euclideanLengthMeasurementUtils.js +1 -1
  670. package/views/support/geometry3dUtils.js +1 -1
  671. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  672. package/widgets/Editor/EditorViewModel.js +1 -1
  673. package/widgets/Editor/SplitFeatureWorkflow.js +1 -1
  674. package/widgets/Editor/SplitFeatureWorkflowData.js +1 -1
  675. package/widgets/Editor/UpdateWorkflow.js +1 -1
  676. package/widgets/Editor/components/PendingFeatureList.js +1 -1
  677. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  678. package/widgets/Editor/components/UploadDetails.js +1 -1
  679. package/widgets/Editor/components/workflowAdapters/pendingFeatureList/CreateFeaturesWorkflowPendingFeatureListAdapter.ts.js +5 -0
  680. package/widgets/Editor/components/workflowAdapters/pendingFeatureList/SplitFeatureWorkflowPendingFeatureListAdapter.js +5 -0
  681. package/widgets/Editor/css.js +1 -1
  682. package/widgets/Editor/modelUploadUtils.js +1 -1
  683. package/widgets/Editor/support/splitFeatureUtils.js +1 -1
  684. package/widgets/Editor/workflowUtils.js +1 -1
  685. package/widgets/Editor.js +1 -1
  686. package/widgets/ElevationProfile/ElevationProfileLineView.js +1 -1
  687. package/widgets/ElevationProfile/support/geometryUtils.js +1 -1
  688. package/widgets/FeatureTable/FieldColumn.js +1 -1
  689. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  690. package/widgets/FeatureTable/support/tableUtils.js +1 -1
  691. package/widgets/FeatureTable/support/templateUtils.js +1 -1
  692. package/widgets/Legend/LegendViewModel.js +1 -1
  693. package/widgets/Legend.js +1 -1
  694. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  695. package/widgets/OrientedImageryViewer/components/ImageLocationWidget.js +1 -1
  696. package/widgets/OrientedImageryViewer/components/ImageOverlays.js +1 -1
  697. package/widgets/OrientedImageryViewer/dataCaptureUtils.js +1 -1
  698. package/widgets/OrientedImageryViewer/imageMeasurementUtils.js +1 -1
  699. package/widgets/OrientedImageryViewer.js +1 -1
  700. package/widgets/PanoramicViewer/PanoramicViewerViewModel.js +1 -1
  701. package/widgets/PanoramicViewer/PanoramicZoomManager.js +5 -0
  702. package/widgets/PanoramicViewer/PanoramicZoomViewModel.js +1 -1
  703. package/widgets/PanoramicViewer/constants.js +1 -1
  704. package/widgets/PanoramicViewer/support/ClosestMap.js +5 -0
  705. package/widgets/PanoramicViewer/support/PanoramicMeshManager.js +1 -1
  706. package/widgets/PanoramicViewer/support/PanoramicMeshWorker.js +1 -1
  707. package/widgets/PanoramicViewer/support/PanoramicTileNode.js +5 -0
  708. package/widgets/PanoramicViewer/support/PanoramicTilePyramid.js +5 -0
  709. package/widgets/PanoramicViewer/support/importUtils.js +5 -0
  710. package/widgets/PanoramicViewer/utils.js +1 -1
  711. package/widgets/PanoramicViewer.js +1 -1
  712. package/widgets/UtilityNetworkAssociations/UtilityNetworkAssociationsViewModel.js +1 -1
  713. package/widgets/support/forms/formUtils.js +1 -1
  714. package/analysis/ElevationProfile/ElevationProfileUnits.d.ts +0 -4
  715. package/assets/esri/core/workers/chunks/004b13c1db79c9e668b1.js +0 -1
  716. package/assets/esri/core/workers/chunks/06c389283ee5b60573f2.js +0 -1
  717. package/assets/esri/core/workers/chunks/0ca5060c81a1a05b8be3.js +0 -1
  718. package/assets/esri/core/workers/chunks/1214c126af0de25a4b4a.js +0 -1
  719. package/assets/esri/core/workers/chunks/23e600e368ac829680b5.js +0 -1
  720. package/assets/esri/core/workers/chunks/3d800fbc449bea18b1cd.js +0 -1
  721. package/assets/esri/core/workers/chunks/3dcdbba706a8034b6ba3.js +0 -1
  722. package/assets/esri/core/workers/chunks/503c81dda242e6077317.js +0 -1
  723. package/assets/esri/core/workers/chunks/52121179d4f9833008ec.js +0 -1
  724. package/assets/esri/core/workers/chunks/56b3bb68b61b77138186.js +0 -1
  725. package/assets/esri/core/workers/chunks/5aacd1c6b171c99b41f5.js +0 -1
  726. package/assets/esri/core/workers/chunks/633faa9cec8988ab06af.js +0 -33
  727. package/assets/esri/core/workers/chunks/801451fb572bc5f1f270.js +0 -1
  728. package/assets/esri/core/workers/chunks/8d63b42aea32ce2e5d09.js +0 -1
  729. package/assets/esri/core/workers/chunks/bf9031749d10e7d457b6.js +0 -1
  730. package/assets/esri/core/workers/chunks/c547692862df95d22818.js +0 -1
  731. package/assets/esri/core/workers/chunks/c84665db250b05e2829d.js +0 -1
  732. package/assets/esri/core/workers/chunks/ef75cad6570b14a42b62.js +0 -1
  733. package/assets/esri/core/workers/chunks/fb456e7425e09df17d8c.js +0 -1
  734. package/views/3d/analysis/ElevationProfile/ElevationProfileInputVisualization3D.js +0 -5
  735. package/views/analysis/ElevationProfile/ElevationProfileGenerationError.js +0 -5
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../../Color.js";import{lengthDimensionMeasureType as t}from"../../../../analysis/dimensionUtils.js";import{cyclicalDegrees as r}from"../../../../core/Cyclical.js";import{rad2deg as n}from"../../../../core/mathUtils.js";import{watch as i,initial as o}from"../../../../core/reactiveUtils.js";import{pt2px as a}from"../../../../core/screenUtils.js";import{identity as s,scale as c}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{g as m,c as d,q as u,l as p,i as f,a as g,d as h,h as v,e as y}from"../../../../chunks/vec32.js";import{fromValues as w,create as S,ZEROS as j}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as x}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import b from"../../../../geometry/Point.js";import{fromPositionAndNormal as H,create as M,signedDistance as P,getNormal as C}from"../../../../geometry/support/plane.js";import{sv3d as T}from"../../../../geometry/support/vectorStacks.js";import{clonePoint as R}from"../../../../layers/graphics/hydratedFeatures.js";import{isValidComputation as z,computeOffsetForPoint as O,computeSegmentForMeasureType as U,computeOffsetAxis as _,dimensionStartToEnd as A,headingFromGeometry as L,computeGeometryFromDimension as k,computationToGeometryDependencies as E,directUp as D,directStartToEnd as G}from"./lengthDimensionUtils.js";import{getTransparentAccentColor as F,pointRadius as B,lengthFraction as W,minLengthMeters as I,linePaddingPx as q,focusedLinePaddingPx as N,orientationFocusMultiplier as J,orientationDiscScale as K,orientationCalloutWidth as Q,markerLineSizeFraction as V,orientationCalloutOffsetPx as X,orientationSnapThresholdDegrees as Y}from"./settings.js";import{Manipulator3D as Z}from"../../interactive/Manipulator3D.js";import{createManipulatorMaterial as $,worldScaledManipulatorSettings as ee,calculateTranslateRotateFromBases as te,rotateManipulatorDefaults as re,calculateInputRotationTransform as ne}from"../../interactive/manipulatorUtils.js";import{RenderObject as ie}from"../../interactive/RenderObject.js";import{hideManipulatorWhileDragging as oe,screenToMap3D as ae,screenToRenderPlane as se}from"../../interactive/editingTools/dragEventPipeline3D.js";import{EuclideanSegment as ce}from"../../interactive/visualElements/support/Segment.js";import{markerSizePerLineWidth as le}from"../../support/engineContent/marker.js";import{Attribute as me}from"../../webgl-engine/lib/Attribute.js";import{Geometry as de}from"../../webgl-engine/lib/Geometry.js";import{createSphereGeometry as ue,createPolylineGeometry as pe}from"../../webgl-engine/lib/GeometryUtil.js";import{RibbonLineMaterial as fe}from"../../webgl-engine/materials/RibbonLineMaterial.js";import{createManipulatorDragEventPipeline as ge,resetProperties as he,EventPipeline as ve}from"../../../interactive/dragEventPipeline.js";class ye{constructor(e){this.start=e.start,this.end=e.end,this.offset=e.offset,this.heading=e.heading,this.rotation=e.rotation,this.direct=e.direct,this.horizontal=e.horizontal,this.vertical=e.vertical}manipulatorName(e){return Object.keys(this).find(t=>this.hasOwnProperty(t)&&e===this[t])}values(){return[this.start,this.end,this.offset,this.heading,this.rotation,this.direct,this.horizontal,this.vertical]}forEachMeasureTypeManipulator(e){for(const r of t)e(this.manipulatorForMeasureType(r),r)}manipulatorForMeasureType(e){switch(e){case"direct":return this.direct;case"horizontal":return this.horizontal;case"vertical":return this.vertical}}}class we extends Z{constructor(t,r){const n=$(e.toUnitRGBA(F(t.effectiveTheme))),o=[new ie(ue(n,1,32,32),Ve)];super({view:t,renderObjects:o,metadata:r.metadata,available:!1,grabCursor:"crosshair",radius:B,collisionPriority:1}),this._themeHandle=i(()=>({color:e.toUnitRGBA(F(t.effectiveTheme))}),e=>n.setParameters(e))}destroy(){this._themeHandle.remove(),super.destroy()}}function Se(e,t){const r=[w(-.5,0,0),w(.5,0,0)],n=pe(t.unfocusedMaterial,r.map(e=>m(S(),e,W))),i=n.instantiate({material:t.focusedMaterial});return new Z({view:e,renderObjects:[new ie(n,9|Ve),new ie(i,2|Ve)],collisionType:{type:"line",paths:[r]},radius:Ke(t.lineSizePt)/2,metadata:t.metadata,available:!1,...ee})}class je extends Z{constructor(t,{lineSizePt:r,material:n,metadata:a}){super({view:t,autoScaleRenderObjects:!1,collisionPriority:1,metadata:a}),this._options={calloutColor:x(),lineSizePt:r,material:n},this._themeHandle=i(()=>e.toUnitRGBA(F(t.effectiveTheme)),e=>{this._options.calloutColor=e,Qe(this,xe({...this._options,metadata:this.metadata}))},o)}update({lineSizePt:e,material:t}){this._options.lineSizePt=e,this._options.material=t,Qe(this,xe({...this._options,metadata:this.metadata}))}destroy(){this._themeHandle.remove(),super.destroy()}}function xe({calloutColor:e,lineSizePt:t,material:r,metadata:n}){return{calloutLength:.25*le*V*a(t)+X,calloutColor:e,calloutWidth:Q,customStateMask:Ve,discScale:K,focusMultiplier:J,material:r,metadata:n}}function be(e,t){const r=[w(-.5,0,0),w(.5,0,0)],n=pe(t.thinOffsetManipulatorMaterial,r),i=pe(t.unfocusedMaterial,r.map(e=>m(S(),e,W))),o=i.instantiate({material:t.focusedMaterial});return new Z({view:e,renderObjects:[new ie(i,1|Ve),new ie(o,2|Ve),new ie(n,Ve)],collisionType:{type:"line",paths:[r]},radius:Ke(t.lineSizePt)/2,available:!1,metadata:t.metadata,...ee})}function He(e,{isStart:t,createSnappingPipelineStep:r,dimension:n,onUpdate:i,view:o}){const a=t?"startPoint":"endPoint",s=ge(e,(e,t,s,c)=>{const l=oe(e),{snappingStep:m,cancelSnapping:d}=r(c);s=s.next(l).next(he(n,[a,"measureType","orientation"])).next(d),t.next(l).next(ae(o)).next(...m).next(e=>{const t=R(e.mapEnd,new b);i("startPoint"===a?{startPoint:t}:{endPoint:t})})});return[s]}function Me(e,{computation:t,view:r}){return[ge(e,(e,n,i)=>{if(!z(t)||!e.selected)return;const{geometry:o,dimension:a}=t,s=oe(e);n.next(s).next(Ue(r,a,o.dimensionSegment,o.primaryOffsetAxis)),i.next(s).next(he(a,["offset"]))})]}function Pe(e,{computation:t,view:r}){return[ge(e,(e,n,i)=>{Re({cancel:i,computation:t,settingHeading:!0,steps:n,view:r})})]}function Ce(e,{computation:t,view:r}){return[ge(e,(e,n,i)=>{Re({cancel:i,computation:t,settingHeading:!1,steps:n,view:r})}),e.events.on("immediate-click",e=>{Te(e,t,r)})]}function Te(e,t,n){const{dimension:i,geometry:o}=t;if(90===i.orientation||270===i.orientation)return i.orientation=0,void e.stopPropagation();if(null==o)return;const{renderCoordsHelper:a}=n,s=k({...E(t),orientation:90},a),c=k({...E(t),orientation:270},a);if(null==s||null==c)return;const l=L(s,a),m=L(c,a),d=_e(o,n),u=r.shortestSignedDiff(d,l),p=r.shortestSignedDiff(d,m);i.orientation=Math.abs(u)<Math.abs(p)?90:270,e.stopPropagation()}function Re(e){const{cancel:t,computation:r,settingHeading:i,steps:o,view:a}=e;if(!z(r))return;const{renderCoordsHelper:s}=a,{dimension:c,geometry:l}=r,m=S(),u=Be(S(),l,l.directSegment,s),p=We(T.get(),{forHeading:i,geometry:l,renderCoordsHelper:s}),f=H(u,p,M()),g=i?c.orientation??L(l,a.renderCoordsHelper):c.orientation??0;o.next(se(a,f)).next(e=>{"start"===e.action&&d(m,e.renderStart);const t=C(f),r=ne(m,e.renderEnd,u,t);let o=g-n(r);i||(o=ze(o)),c.orientation=o}),t.next(he(c,["orientation"]))}function ze(e){const t=r.normalize(e)%90;return t<Y?e-t:90-t<Y?e+(90-t):e}function Oe(e,{computation:t,manipulatorMeasureType:r,view:n}){let i="direct",o=0,a=0;return[e.events.on("grab-changed",s=>{if("start"!==s.action||!z(t))return;const{dimension:c,geometry:l}=t;i=c.measureType,o=c.offset,a=c.orientation;const m=d(T.get(),e.renderLocation);c.measureType=r,c.offset=O(m,r,l,n.renderCoordsHelper),c.orientation=0}),ge(e,(e,s,c)=>{if(!z(t))return;const{geometry:l,dimension:m}=t,{renderCoordsHelper:d}=n,u=U($e,r,t,d),p=_(T.get(),{measureType:r,directSegment:l.directSegment,renderCoordsHelper:d}),f=oe(e);s.next(f).next(Ue(n,m,u,p)),c.next(f).next(e=>(m.measureType=i,m.offset=o,m.orientation=a,e))})]}function Ue(e,t,r,n){const i=h(T.get(),r.endRenderSpace,r.startRenderSpace);v(i,i,n);const o=H(r.startRenderSpace,i,M()),a=H(r.startRenderSpace,n,M()),s=t.offset;let c,l=0;const m=new ve;return m.next(se(e,o)).next(r=>{"start"===r.action&&(l=P(a,r.renderStart));const n=(P(a,r.renderEnd)-l)*e.renderCoordsHelper.unitInMeters;t.offset=s+n,c=r}),e=>(m.execute(e),c)}function _e(e,t){const{directSegment:r}=e,{renderCoordsHelper:n}=t,i=D(T.get(),e,n),o=G(T.get(),e),a=v(T.get(),o,i),{viewForward:s}=t.state.camera;y(a,s)>0&&m(a,a,-1);const c=r.eval(.5,T.get());return n.headingAtPosition(c,a)}function Ae(e,t,r){const{dimensionSegment:n,primaryOffsetAxis:i}=t,o=A(Xe,t),a=u(o,j)?s(Ze):te(o,i,j,Ze),l=Math.max(p(o),I/r.unitInMeters);c(a,a,f(Xe,l,l,l)),e.modelTransform=a,e.renderLocation=n.eval(.5,Xe)}function Le(e,t,r){Ee(e,t,r,{forHeading:!0})}function ke(e,t,r){Ee(e,t,r,{forHeading:!1})}function Ee(e,t,r,{forHeading:n}){const{dimension:i,geometry:o}=t,{primaryOffsetAxis:a}=o,s=m(De,a,i.offset>=0?1:-1),c=We(Ge,{forHeading:n,geometry:o,renderCoordsHelper:r});v(c,c,s);const l=te(s,c,j,Ze);e.modelTransform=l,e.renderLocation=Be(Xe,o,o.dimensionSegment,r)}const De=S(),Ge=S();function Fe(e,t,r,n){const{geometry:i}=t,o=U($e,r,t,n),a=_(Xe,{measureType:r,directSegment:i.directSegment,renderCoordsHelper:n}),s=g(Ye,o.endRenderSpace,o.startRenderSpace),l=te(s,a,j,Ze),m=p(s);c(l,l,f(Ye,m,m,m)),e.modelTransform=l,e.renderLocation=o.eval(.5,Ye)}function Be(e,t,r,n){const{startRenderSpace:i,endRenderSpace:o}=r,a=Ie(t,n)?i:o;return d(e,a)}function We(e,{forHeading:t,geometry:r,renderCoordsHelper:n}){return t?D(e,r,n):A(e,r,{invert:!0})}function Ie(e,t){const r=G(qe,e),n=D(Ne,e,t);return y(r,n)>0}const qe=S(),Ne=S();function Je(e){return a(e)+q}function Ke(e){return a(e)+N}function Qe(e,t){const r=t.material,n=t.focusMultiplier??re.focusMultiplier,i=t.calloutLength??re.calloutLength,o=re.discRadius*(t.discScale??1),a=o*n,s=(e,t)=>{const r=[0,1,2,2,3,0];return new de(t,[["position",new me([i-e,-e,0,i+e,-e,0,i+e,e,0,i-e,e,0],r,3,!0)],["uv0",new me([0,0,1,0,1,1,0,1],r,2,!0)]])},c=t.calloutWidth??re.calloutWidth,l=new fe({width:c,color:t.calloutColor,renderOccluded:4,isDecoration:!0},e.view.state.isGlobal),m=pe(l,[[0,0,0],[i-o,0,0]]),d=pe(l,[[0,0,0],[i-a,0,0]]),u=t.customStateMask??0;e.collisionType={type:"disc",direction:[0,0,1],offset:[i,0,0]},e.focusMultiplier=n,e.metadata=t.metadata,e.radius=o,e.renderObjects=[new ie(s(o,r),1|u),new ie(m,1|u),new ie(s(a,r),2|u),new ie(d,2|u)]}const Ve=16,Xe=S(),Ye=S(),Ze=l(),$e=new ce;export{Ve as DidPointerMoveRecentlyFlag,ye as LengthDimensionManipulators,we as LengthDimensionPointManipulator,je as LineOfSightOrientationManipulator,_e as automaticHeadingFromCamera,be as createMeasureTypeManipulator,Se as createOffsetManipulator,Ke as focusedOffsetWidth,Pe as headingManipulatorHandles,Oe as measureTypeManipulatorHandles,Me as offsetManipulatorHandles,He as pointManipulatorHandles,Ce as rotationManipulatorHandles,ze as snapOrientationToNearestRightAngle,Je as unfocusedOffsetWidth,Le as updateHeadingManipulatorTransform,Fe as updateMeasureTypeManipulatorTransform,Ae as updateOffsetManipulatorTransform,ke as updateRotationManipulatorTransform};
5
+ import e from"../../../../Color.js";import{lengthDimensionMeasureType as t}from"../../../../analysis/dimensionUtils.js";import{cyclicalDegrees as r}from"../../../../core/Cyclical.js";import{rad2deg as n}from"../../../../core/mathUtils.js";import{watch as i,initial as o}from"../../../../core/reactiveUtils.js";import{pt2px as a}from"../../../../core/screenUtils.js";import{identity as s,scale as c}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{h as m,d,q as u,b as p,j as f,a as h,e as g,i as v,f as y}from"../../../../chunks/vec32.js";import{fromValues as w,create as S,ZEROS as j}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as x}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import b from"../../../../geometry/Point.js";import{fromPositionAndNormal as H,create as M,signedDistance as P,getNormal as C}from"../../../../geometry/support/plane.js";import{sv3d as T}from"../../../../geometry/support/vectorStacks.js";import{clonePoint as R}from"../../../../layers/graphics/hydratedFeatures.js";import{isValidComputation as z,computeOffsetForPoint as O,computeSegmentForMeasureType as U,computeOffsetAxis as _,dimensionStartToEnd as A,headingFromGeometry as L,computeGeometryFromDimension as k,computationToGeometryDependencies as E,directUp as D,directStartToEnd as G}from"./lengthDimensionUtils.js";import{getTransparentAccentColor as F,pointRadius as B,lengthFraction as W,minLengthMeters as I,linePaddingPx as q,focusedLinePaddingPx as N,orientationFocusMultiplier as J,orientationDiscScale as K,orientationCalloutWidth as Q,markerLineSizeFraction as V,orientationCalloutOffsetPx as X,orientationSnapThresholdDegrees as Y}from"./settings.js";import{Manipulator3D as Z}from"../../interactive/Manipulator3D.js";import{createManipulatorMaterial as $,worldScaledManipulatorSettings as ee,calculateTranslateRotateFromBases as te,rotateManipulatorDefaults as re,calculateInputRotationTransform as ne}from"../../interactive/manipulatorUtils.js";import{RenderObject as ie}from"../../interactive/RenderObject.js";import{hideManipulatorWhileDragging as oe,screenToMap3D as ae,screenToRenderPlane as se}from"../../interactive/editingTools/dragEventPipeline3D.js";import{EuclideanSegment as ce}from"../../interactive/visualElements/support/Segment.js";import{markerSizePerLineWidth as le}from"../../support/engineContent/marker.js";import{Attribute as me}from"../../webgl-engine/lib/Attribute.js";import{Geometry as de}from"../../webgl-engine/lib/Geometry.js";import{createSphereGeometry as ue,createPolylineGeometry as pe}from"../../webgl-engine/lib/GeometryUtil.js";import{RibbonLineMaterial as fe}from"../../webgl-engine/materials/RibbonLineMaterial.js";import{createManipulatorDragEventPipeline as he,resetProperties as ge,EventPipeline as ve}from"../../../interactive/dragEventPipeline.js";class ye{constructor(e){this.start=e.start,this.end=e.end,this.offset=e.offset,this.heading=e.heading,this.rotation=e.rotation,this.direct=e.direct,this.horizontal=e.horizontal,this.vertical=e.vertical}manipulatorName(e){return Object.keys(this).find(t=>this.hasOwnProperty(t)&&e===this[t])}values(){return[this.start,this.end,this.offset,this.heading,this.rotation,this.direct,this.horizontal,this.vertical]}forEachMeasureTypeManipulator(e){for(const r of t)e(this.manipulatorForMeasureType(r),r)}manipulatorForMeasureType(e){switch(e){case"direct":return this.direct;case"horizontal":return this.horizontal;case"vertical":return this.vertical}}}class we extends Z{constructor(t,r){const n=$(e.toUnitRGBA(F(t.effectiveTheme))),o=[new ie(ue(n,1,32,32),Ve)];super({view:t,renderObjects:o,metadata:r.metadata,available:!1,grabCursor:"crosshair",radius:B,collisionPriority:1}),this._themeHandle=i(()=>({color:e.toUnitRGBA(F(t.effectiveTheme))}),e=>n.setParameters(e))}destroy(){this._themeHandle.remove(),super.destroy()}}function Se(e,t){const r=[w(-.5,0,0),w(.5,0,0)],n=pe(t.unfocusedMaterial,r.map(e=>m(S(),e,W))),i=n.instantiate({material:t.focusedMaterial});return new Z({view:e,renderObjects:[new ie(n,9|Ve),new ie(i,2|Ve)],collisionType:{type:"line",paths:[r]},radius:Ke(t.lineSizePt)/2,metadata:t.metadata,available:!1,...ee})}class je extends Z{constructor(t,{lineSizePt:r,material:n,metadata:a}){super({view:t,autoScaleRenderObjects:!1,collisionPriority:1,metadata:a}),this._options={calloutColor:x(),lineSizePt:r,material:n},this._themeHandle=i(()=>e.toUnitRGBA(F(t.effectiveTheme)),e=>{this._options.calloutColor=e,Qe(this,xe({...this._options,metadata:this.metadata}))},o)}update({lineSizePt:e,material:t}){this._options.lineSizePt=e,this._options.material=t,Qe(this,xe({...this._options,metadata:this.metadata}))}destroy(){this._themeHandle.remove(),super.destroy()}}function xe({calloutColor:e,lineSizePt:t,material:r,metadata:n}){return{calloutLength:.25*le*V*a(t)+X,calloutColor:e,calloutWidth:Q,customStateMask:Ve,discScale:K,focusMultiplier:J,material:r,metadata:n}}function be(e,t){const r=[w(-.5,0,0),w(.5,0,0)],n=pe(t.thinOffsetManipulatorMaterial,r),i=pe(t.unfocusedMaterial,r.map(e=>m(S(),e,W))),o=i.instantiate({material:t.focusedMaterial});return new Z({view:e,renderObjects:[new ie(i,1|Ve),new ie(o,2|Ve),new ie(n,Ve)],collisionType:{type:"line",paths:[r]},radius:Ke(t.lineSizePt)/2,available:!1,metadata:t.metadata,...ee})}function He(e,{isStart:t,createSnappingPipelineStep:r,dimension:n,onUpdate:i,view:o}){const a=t?"startPoint":"endPoint",s=he(e,(e,t,s,c)=>{const l=oe(e),{snappingStep:m,cancelSnapping:d}=r(c);s=s.next(l).next(ge(n,[a,"measureType","orientation"])).next(d),t.next(l).next(ae(o)).next(...m).next(e=>{const t=R(e.mapEnd,new b);i("startPoint"===a?{startPoint:t}:{endPoint:t})})});return[s]}function Me(e,{computation:t,view:r}){return[he(e,(e,n,i)=>{if(!z(t)||!e.selected)return;const{geometry:o,dimension:a}=t,s=oe(e);n.next(s).next(Ue(r,a,o.dimensionSegment,o.primaryOffsetAxis)),i.next(s).next(ge(a,["offset"]))})]}function Pe(e,{computation:t,view:r}){return[he(e,(e,n,i)=>{Re({cancel:i,computation:t,settingHeading:!0,steps:n,view:r})})]}function Ce(e,{computation:t,view:r}){return[he(e,(e,n,i)=>{Re({cancel:i,computation:t,settingHeading:!1,steps:n,view:r})}),e.events.on("immediate-click",e=>{Te(e,t,r)})]}function Te(e,t,n){const{dimension:i,geometry:o}=t;if(90===i.orientation||270===i.orientation)return i.orientation=0,void e.stopPropagation();if(null==o)return;const{renderCoordsHelper:a}=n,s=k({...E(t),orientation:90},a),c=k({...E(t),orientation:270},a);if(null==s||null==c)return;const l=L(s,a),m=L(c,a),d=_e(o,n),u=r.shortestSignedDiff(d,l),p=r.shortestSignedDiff(d,m);i.orientation=Math.abs(u)<Math.abs(p)?90:270,e.stopPropagation()}function Re(e){const{cancel:t,computation:r,settingHeading:i,steps:o,view:a}=e;if(!z(r))return;const{renderCoordsHelper:s}=a,{dimension:c,geometry:l}=r,m=S(),u=Be(S(),l,l.directSegment,s),p=We(T.get(),{forHeading:i,geometry:l,renderCoordsHelper:s}),f=H(u,p,M()),h=i?c.orientation??L(l,a.renderCoordsHelper):c.orientation??0;o.next(se(a,f)).next(e=>{"start"===e.action&&d(m,e.renderStart);const t=C(f),r=ne(m,e.renderEnd,u,t);let o=h-n(r);i||(o=ze(o)),c.orientation=o}),t.next(ge(c,["orientation"]))}function ze(e){const t=r.normalize(e)%90;return t<Y?e-t:90-t<Y?e+(90-t):e}function Oe(e,{computation:t,manipulatorMeasureType:r,view:n}){let i="direct",o=0,a=0;return[e.events.on("grab-changed",s=>{if("start"!==s.action||!z(t))return;const{dimension:c,geometry:l}=t;i=c.measureType,o=c.offset,a=c.orientation;const m=d(T.get(),e.renderLocation);c.measureType=r,c.offset=O(m,r,l,n.renderCoordsHelper),c.orientation=0}),he(e,(e,s,c)=>{if(!z(t))return;const{geometry:l,dimension:m}=t,{renderCoordsHelper:d}=n,u=U($e,r,t,d),p=_(T.get(),{measureType:r,directSegment:l.directSegment,renderCoordsHelper:d}),f=oe(e);s.next(f).next(Ue(n,m,u,p)),c.next(f).next(e=>(m.measureType=i,m.offset=o,m.orientation=a,e))})]}function Ue(e,t,r,n){const i=g(T.get(),r.endRenderSpace,r.startRenderSpace);v(i,i,n);const o=H(r.startRenderSpace,i,M()),a=H(r.startRenderSpace,n,M()),s=t.offset;let c,l=0;const m=new ve;return m.next(se(e,o)).next(r=>{"start"===r.action&&(l=P(a,r.renderStart));const n=(P(a,r.renderEnd)-l)*e.renderCoordsHelper.unitInMeters;t.offset=s+n,c=r}),e=>(m.execute(e),c)}function _e(e,t){const{directSegment:r}=e,{renderCoordsHelper:n}=t,i=D(T.get(),e,n),o=G(T.get(),e),a=v(T.get(),o,i),{viewForward:s}=t.state.camera;y(a,s)>0&&m(a,a,-1);const c=r.eval(.5,T.get());return n.headingAtPosition(c,a)}function Ae(e,t,r){const{dimensionSegment:n,primaryOffsetAxis:i}=t,o=A(Xe,t),a=u(o,j)?s(Ze):te(o,i,j,Ze),l=Math.max(p(o),I/r.unitInMeters);c(a,a,f(Xe,l,l,l)),e.modelTransform=a,e.renderLocation=n.eval(.5,Xe)}function Le(e,t,r){Ee(e,t,r,{forHeading:!0})}function ke(e,t,r){Ee(e,t,r,{forHeading:!1})}function Ee(e,t,r,{forHeading:n}){const{dimension:i,geometry:o}=t,{primaryOffsetAxis:a}=o,s=m(De,a,i.offset>=0?1:-1),c=We(Ge,{forHeading:n,geometry:o,renderCoordsHelper:r});v(c,c,s);const l=te(s,c,j,Ze);e.modelTransform=l,e.renderLocation=Be(Xe,o,o.dimensionSegment,r)}const De=S(),Ge=S();function Fe(e,t,r,n){const{geometry:i}=t,o=U($e,r,t,n),a=_(Xe,{measureType:r,directSegment:i.directSegment,renderCoordsHelper:n}),s=h(Ye,o.endRenderSpace,o.startRenderSpace),l=te(s,a,j,Ze),m=p(s);c(l,l,f(Ye,m,m,m)),e.modelTransform=l,e.renderLocation=o.eval(.5,Ye)}function Be(e,t,r,n){const{startRenderSpace:i,endRenderSpace:o}=r,a=Ie(t,n)?i:o;return d(e,a)}function We(e,{forHeading:t,geometry:r,renderCoordsHelper:n}){return t?D(e,r,n):A(e,r,{invert:!0})}function Ie(e,t){const r=G(qe,e),n=D(Ne,e,t);return y(r,n)>0}const qe=S(),Ne=S();function Je(e){return a(e)+q}function Ke(e){return a(e)+N}function Qe(e,t){const r=t.material,n=t.focusMultiplier??re.focusMultiplier,i=t.calloutLength??re.calloutLength,o=re.discRadius*(t.discScale??1),a=o*n,s=(e,t)=>{const r=[0,1,2,2,3,0];return new de(t,[["position",new me([i-e,-e,0,i+e,-e,0,i+e,e,0,i-e,e,0],r,3,!0)],["uv0",new me([0,0,1,0,1,1,0,1],r,2,!0)]])},c=t.calloutWidth??re.calloutWidth,l=new fe({width:c,color:t.calloutColor,renderOccluded:4,isDecoration:!0},e.view.state.isGlobal),m=pe(l,[[0,0,0],[i-o,0,0]]),d=pe(l,[[0,0,0],[i-a,0,0]]),u=t.customStateMask??0;e.collisionType={type:"disc",direction:[0,0,1],offset:[i,0,0]},e.focusMultiplier=n,e.metadata=t.metadata,e.radius=o,e.renderObjects=[new ie(s(o,r),1|u),new ie(m,1|u),new ie(s(a,r),2|u),new ie(d,2|u)]}const Ve=16,Xe=S(),Ye=S(),Ze=l(),$e=new ce;export{Ve as DidPointerMoveRecentlyFlag,ye as LengthDimensionManipulators,we as LengthDimensionPointManipulator,je as LineOfSightOrientationManipulator,_e as automaticHeadingFromCamera,be as createMeasureTypeManipulator,Se as createOffsetManipulator,Ke as focusedOffsetWidth,Pe as headingManipulatorHandles,Oe as measureTypeManipulatorHandles,Me as offsetManipulatorHandles,He as pointManipulatorHandles,Ce as rotationManipulatorHandles,ze as snapOrientationToNearestRightAngle,Je as unfocusedOffsetWidth,Le as updateHeadingManipulatorTransform,Fe as updateMeasureTypeManipulatorTransform,Ae as updateOffsetManipulatorTransform,ke as updateRotationManipulatorTransform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{deg2rad as e}from"../../../../core/mathUtils.js";import{toUnit as t}from"../../../../core/quantityUtils.js";import{adaptiveVerticalLengthUnit as n,adaptiveLengthUnit as r}from"../../../../core/unitUtils.js";import{ensureType as i}from"../../../../core/accessorSupport/ensureType.js";import{fromRotation as o}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{c as s,k as d,b as c,t as l,a as u,h as p,e as m,G as g,n as S,x as f}from"../../../../chunks/vec32.js";import{create as v,ZEROS as R}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import A from"../../../../geometry/Point.js";import{sv3d as P}from"../../../../geometry/support/vectorStacks.js";import{makeDehydratedPoint as h}from"../../../../layers/graphics/dehydratedPoint.js";import{clonePoint as y}from"../../../../layers/graphics/hydratedFeatures.js";import{EuclideanSegment as j}from"../../interactive/visualElements/support/Segment.js";import{euclideanDirectDistanceBetweenPoints as E,euclideanDirectDistance as x}from"../../../support/euclideanLengthMeasurementUtils.js";import{geodesicDistanceThreshold as w}from"../../../support/geodesicMeasurementUtils.js";class z{constructor(e,t,n,r,i,o){this.elevationAlignedStartPoint=e,this.elevationAlignedEndPoint=t,this.directSegment=n,this.dimensionSegment=r,this.primaryOffsetAxis=i,this.spatialReference=o}}const b=i(A);function T(e,i,o,a){if(null==e)return null;let s;if("horizontal"===i)s=a.autoDistanceBetweenPoints2D(b(e.elevationAlignedStartPoint),b(e.elevationAlignedEndPoint));else{const{startRenderSpace:t,endRenderSpace:n}=e.dimensionSegment;s=x(t,n,e.spatialReference)}if(null==s)return null;const d="vertical"===i?n(s.value,s.unit,o):r(s.value,s.unit,o);return t(s,d)}function U(e){const{elevationAlignedStartPoint:t,elevationAlignedEndPoint:n,dimension:{offset:r,measureType:i,orientation:o}}=e;return{elevationAlignedStartPoint:t,elevationAlignedEndPoint:n,offset:r,measureType:i,orientation:o}}function C({elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,offset:n,measureType:r,orientation:i},o,a=null){if(null==e||null==t)return null;const d=O(a?.directSegment??new j,{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t},o),c=a?.primaryOffsetAxis??v();G(c,{measureType:r,elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,directSegment:d,orientation:i,renderCoordsHelper:o});const l=a?.dimensionSegment??new j;return J({elevationAlignedStartPoint:e,elevationAlignedEndPoint:t})&&"vertical"===r?(s(l.startRenderSpace,d.startRenderSpace),s(l.endRenderSpace,d.endRenderSpace)):K(l,c,n,d,o),new z(e,t,d,l,c,o.spatialReference)}function k(e,t,n,r){return 0===t?(s(e.startRenderSpace,n.startRenderSpace),s(e.endRenderSpace,r.startRenderSpace)):(s(e.startRenderSpace,n.endRenderSpace),s(e.endRenderSpace,r.endRenderSpace)),e}function M(e,t,n,r){c(e.startRenderSpace,t.startRenderSpace,n,r),c(e.endRenderSpace,t.endRenderSpace,n,r)}function H(e,t,n,r){switch(t){case"direct":return O(e,n,r);case"horizontal":case"vertical":{const{elevationAlignedStartPoint:i,elevationAlignedEndPoint:o,dimension:a,geometry:s}=n;let d;if("direct"===a.measureType){d=B(s,r)===i.z>o.z,"horizontal"===t&&(d=!d)}else d=!D(s);const[c,l]=d?[i,o]:[o,i],u=y(l,I);return"horizontal"===t?u.z=c.z:(u.x=c.x,u.y=c.y),r.toRenderCoords(c,e.startRenderSpace),r.toRenderCoords(u,e.endRenderSpace),e}}}function O(e,t,n){return n.toRenderCoords(t.elevationAlignedStartPoint,e.startRenderSpace),n.toRenderCoords(t.elevationAlignedEndPoint,e.endRenderSpace),e}function B(e,t){const n=e.directSegment.eval(.5,P.get()),r=t.worldUpAtPosition(n,P.get()),i=e.dimensionSegment.eval(.5,P.get()),o=u(P.get(),i,n);return!g(o,R)&&m(o,r)>0}function D(e){const{startRenderSpace:t,endRenderSpace:n}=e.dimensionSegment,{startRenderSpace:r,endRenderSpace:i}=e.directSegment;return f(r,t)<f(i,n)}const I=h(0,0,0,null);function q(e,t,n,r){const{directSegment:i}=n,o=G(P.get(),{measureType:t,directSegment:i,renderCoordsHelper:r}),a=K(F,o,0,i,r).eval(.5,P.get()),s=u(P.get(),e,a);return m(s,o)*r.unitInMeters}const F=new j;function G(t,n){const{measureType:r,elevationAlignedStartPoint:i,elevationAlignedEndPoint:a,directSegment:{startRenderSpace:d,endRenderSpace:c},directSegment:f,renderCoordsHelper:v}=n,A=f.eval(.5,P.get()),h=v.worldUpAtPosition(A,P.get()),y=v.worldBasisAtPosition(A,1,P.get());switch(r){case"horizontal":s(t,h);break;case"vertical":m(d,h)<m(c,h)?u(t,c,d):u(t,d,c),p(t,t,h),p(t,t,h);break;case"direct":{const r=n.orientation??0;if(J({elevationAlignedStartPoint:i,elevationAlignedEndPoint:a}))o(L,-e(r),h),l(t,y,L);else{const n=u(P.get(),c,d),i=p(P.get(),n,h);p(i,i,n),o(L,e(r),n),l(t,i,L)}break}}return g(t,R)?s(t,y):S(t,t)}const L=a();function J({elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}){return null!=e&&null!=t&&e.x===t.x&&e.y===t.y}function K(e,t,n,r,i){const{startRenderSpace:o,endRenderSpace:a}=r,s=n/i.unitInMeters,[d,l]=N(o,a,t,s);return c(e.startRenderSpace,r.startRenderSpace,t,d),c(e.endRenderSpace,r.endRenderSpace,t,l),e}function N(e,t,n,r=0){const i=m(t,n),o=m(e,n),a=Math.abs(i-o)+r;return i>o?[a,r]:[r,a]}function Q(e,t,n){const r=t.directSegment.eval(.5,P.get());return n.worldUpAtPosition(r,e)}function V(e,t){const{startRenderSpace:n,endRenderSpace:r}=t.directSegment;return u(e,r,n)}function W(e,t,n={invert:!1}){const{startRenderSpace:r,endRenderSpace:i}=t.dimensionSegment;return n.invert?u(e,r,i):u(e,i,r)}function X(e,t){const n=e.directSegment.eval(.5,P.get());return t.headingAtPosition(n,e.primaryOffsetAxis)}function Y(e,t){return d(W(Z,e))/t**2}const Z=v();function $(e){const{elevationAlignedStartPoint:n,elevationAlignedEndPoint:r}=e;if(null==n||null==r)return!1;const i=E(n,r);return null!=i&&t(i,"meters").value>w}function _(e){return null!=e.geometry}export{z as LengthDimensionGeometry,J as arePointsVerticallyAligned,U as computationToGeometryDependencies,C as computeGeometryFromDimension,T as computeLength,G as computeOffsetAxis,q as computeOffsetForPoint,H as computeSegmentForMeasureType,k as computeSpanningSegment,W as dimensionStartToEnd,V as directStartToEnd,Q as directUp,X as headingFromGeometry,$ as isGeodesicDimension,_ as isValidComputation,Y as maxScreenLengthSquaredFromGeometry,M as offsetSegment};
5
+ import{deg2rad as e}from"../../../../core/mathUtils.js";import{toUnit as t}from"../../../../core/quantityUtils.js";import{adaptiveVerticalLengthUnit as n,adaptiveLengthUnit as r}from"../../../../core/unitUtils.js";import{ensureType as i}from"../../../../core/accessorSupport/ensureType.js";import{fromRotation as o}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{d as s,m as d,c,t as l,a as u,i as p,f as m,G as g,n as S,x as f}from"../../../../chunks/vec32.js";import{create as v,ZEROS as R}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import A from"../../../../geometry/Point.js";import{sv3d as P}from"../../../../geometry/support/vectorStacks.js";import{makeDehydratedPoint as y}from"../../../../layers/graphics/dehydratedPoint.js";import{clonePoint as h}from"../../../../layers/graphics/hydratedFeatures.js";import{EuclideanSegment as j}from"../../interactive/visualElements/support/Segment.js";import{euclideanDirectDistanceBetweenPoints as E,euclideanDirectDistance as x}from"../../../support/euclideanLengthMeasurementUtils.js";import{geodesicDistanceThreshold as w}from"../../../support/geodesicMeasurementUtils.js";class z{constructor(e,t,n,r,i,o){this.elevationAlignedStartPoint=e,this.elevationAlignedEndPoint=t,this.directSegment=n,this.dimensionSegment=r,this.primaryOffsetAxis=i,this.spatialReference=o}}const T=i(A);function U(e,i,o,a){if(null==e)return null;let s;if("horizontal"===i)s=a.autoDistanceBetweenPoints2D(T(e.elevationAlignedStartPoint),T(e.elevationAlignedEndPoint));else{const{startRenderSpace:t,endRenderSpace:n}=e.dimensionSegment;s=x(t,n,e.spatialReference)}if(null==s)return null;const d="vertical"===i?n(s.value,s.unit,o):r(s.value,s.unit,o);return t(s,d)}function b(e){const{elevationAlignedStartPoint:t,elevationAlignedEndPoint:n,dimension:{offset:r,measureType:i,orientation:o}}=e;return{elevationAlignedStartPoint:t,elevationAlignedEndPoint:n,offset:r,measureType:i,orientation:o}}function C({elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,offset:n,measureType:r,orientation:i},o,a=null){if(null==e||null==t)return null;const d=O(a?.directSegment??new j,{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t},o),c=a?.primaryOffsetAxis??v();G(c,{measureType:r,elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,directSegment:d,orientation:i,renderCoordsHelper:o});const l=a?.dimensionSegment??new j;return J({elevationAlignedStartPoint:e,elevationAlignedEndPoint:t})&&"vertical"===r?(s(l.startRenderSpace,d.startRenderSpace),s(l.endRenderSpace,d.endRenderSpace)):K(l,c,n,d,o),new z(e,t,d,l,c,o.spatialReference)}function k(e,t,n,r){return 0===t?(s(e.startRenderSpace,n.startRenderSpace),s(e.endRenderSpace,r.startRenderSpace)):(s(e.startRenderSpace,n.endRenderSpace),s(e.endRenderSpace,r.endRenderSpace)),e}function M(e,t,n,r){c(e.startRenderSpace,t.startRenderSpace,n,r),c(e.endRenderSpace,t.endRenderSpace,n,r)}function H(e,t,n,r){switch(t){case"direct":return O(e,n,r);case"horizontal":case"vertical":{const{elevationAlignedStartPoint:i,elevationAlignedEndPoint:o,dimension:a,geometry:s}=n;let d;if("direct"===a.measureType){d=B(s,r)===i.z>o.z,"horizontal"===t&&(d=!d)}else d=!D(s);const[c,l]=d?[i,o]:[o,i],u=h(l,I);return"horizontal"===t?u.z=c.z:(u.x=c.x,u.y=c.y),r.toRenderCoords(c,e.startRenderSpace),r.toRenderCoords(u,e.endRenderSpace),e}}}function O(e,t,n){return n.toRenderCoords(t.elevationAlignedStartPoint,e.startRenderSpace),n.toRenderCoords(t.elevationAlignedEndPoint,e.endRenderSpace),e}function B(e,t){const n=e.directSegment.eval(.5,P.get()),r=t.worldUpAtPosition(n,P.get()),i=e.dimensionSegment.eval(.5,P.get()),o=u(P.get(),i,n);return!g(o,R)&&m(o,r)>0}function D(e){const{startRenderSpace:t,endRenderSpace:n}=e.dimensionSegment,{startRenderSpace:r,endRenderSpace:i}=e.directSegment;return f(r,t)<f(i,n)}const I=y(0,0,0,null);function q(e,t,n,r){const{directSegment:i}=n,o=G(P.get(),{measureType:t,directSegment:i,renderCoordsHelper:r}),a=K(F,o,0,i,r).eval(.5,P.get()),s=u(P.get(),e,a);return m(s,o)*r.unitInMeters}const F=new j;function G(t,n){const{measureType:r,elevationAlignedStartPoint:i,elevationAlignedEndPoint:a,directSegment:{startRenderSpace:d,endRenderSpace:c},directSegment:f,renderCoordsHelper:v}=n,A=f.eval(.5,P.get()),y=v.worldUpAtPosition(A,P.get()),h=v.worldBasisAtPosition(A,1,P.get());switch(r){case"horizontal":s(t,y);break;case"vertical":m(d,y)<m(c,y)?u(t,c,d):u(t,d,c),p(t,t,y),p(t,t,y);break;case"direct":{const r=n.orientation??0;if(J({elevationAlignedStartPoint:i,elevationAlignedEndPoint:a}))o(L,-e(r),y),l(t,h,L);else{const n=u(P.get(),c,d),i=p(P.get(),n,y);p(i,i,n),o(L,e(r),n),l(t,i,L)}break}}return g(t,R)?s(t,h):S(t,t)}const L=a();function J({elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}){return null!=e&&null!=t&&e.x===t.x&&e.y===t.y}function K(e,t,n,r,i){const{startRenderSpace:o,endRenderSpace:a}=r,s=n/i.unitInMeters,[d,l]=N(o,a,t,s);return c(e.startRenderSpace,r.startRenderSpace,t,d),c(e.endRenderSpace,r.endRenderSpace,t,l),e}function N(e,t,n,r=0){const i=m(t,n),o=m(e,n),a=Math.abs(i-o)+r;return i>o?[a,r]:[r,a]}function Q(e,t,n){const r=t.directSegment.eval(.5,P.get());return n.worldUpAtPosition(r,e)}function V(e,t){const{startRenderSpace:n,endRenderSpace:r}=t.directSegment;return u(e,r,n)}function W(e,t,n={invert:!1}){const{startRenderSpace:r,endRenderSpace:i}=t.dimensionSegment;return n.invert?u(e,r,i):u(e,i,r)}function X(e,t){const n=e.directSegment.eval(.5,P.get());return t.headingAtPosition(n,e.primaryOffsetAxis)}function Y(e,t){return d(W(Z,e))/t**2}const Z=v();function $(e){const{elevationAlignedStartPoint:n,elevationAlignedEndPoint:r}=e;if(null==n||null==r)return!1;const i=E(n,r);return null!=i&&t(i,"meters").value>w}function _(e){return null!=e.geometry}export{z as LengthDimensionGeometry,J as arePointsVerticallyAligned,b as computationToGeometryDependencies,C as computeGeometryFromDimension,U as computeLength,G as computeOffsetAxis,q as computeOffsetForPoint,H as computeSegmentForMeasureType,k as computeSpanningSegment,W as dimensionStartToEnd,V as directStartToEnd,Q as directUp,X as headingFromGeometry,$ as isGeodesicDimension,_ as isValidComputation,Y as maxScreenLengthSquaredFromGeometry,M as offsetSegment};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import"../../../../intl.js";import t from"../../../../core/Accessor.js";import{unitRGBAFromColor as i,multiplyOpacityToUnitRGBA as s,getContrast as n,multiplyOpacity as l}from"../../../../core/colorUtils.js";import"../../../../core/has.js";import{nextHighestPowerOfTen as o,deg2rad as r}from"../../../../core/mathUtils.js";import{destroyMaybe as a}from"../../../../core/maybe.js";import{formatDecimal as c,formatImperialVerticalLength as h,formatImperialLength as u,formatMetricVerticalLength as d,formatMetricLength as m}from"../../../../core/quantityFormatUtils.js";import{toUnit as g}from"../../../../core/quantityUtils.js";import{watch as p,syncAndInitial as _,initial as v}from"../../../../core/reactiveUtils.js";import{createRenderScreenPointArray3 as b,createRenderScreenPointArray as L}from"../../../../core/screenUtils.js";import{adaptiveImperialLengthUnit as w,convertUnit as y}from"../../../../core/unitUtils.js";import{property as S}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as f}from"../../../../core/accessorSupport/decorators/subclass.js";import{dot as E}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{g as V,f as z}from"../../../../chunks/vec32.js";import{create as A}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{renderScreenSpaceTangent as P}from"../../interactive/support/viewUtils.js";import{LabelVisualElement as j,mirrorPosition as M}from"../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as C}from"../../interactive/visualElements/LineVisualElement.js";import{MeasurementArrowVisualElement as O}from"../../interactive/visualElements/MeasurementArrowVisualElement.js";import{RightAngleQuadVisualElement as x}from"../../interactive/visualElements/RightAngleQuadVisualElement.js";import{GeodesicSegment as D,EuclideanSegment as G}from"../../interactive/visualElements/support/Segment.js";import{createStipplePatternSimple as H}from"../../webgl-engine/materials/lineStippleUtils.js";import{geodesicDistanceThreshold as k}from"../../../support/geodesicMeasurementUtils.js";import{onLocaleChange as T}from"../../../../intl/locale.js";import{fetchMessageBundle as U}from"../../../../intl/messages.js";let R=class extends t{get _parameters(){const e=this.view.effectiveTheme,{accentColor:t,textColor:o}=e,r=i(t),a=s(t,.75),c=i(n(t)),h=n(o,160);return{accentColor:r,contrastColor:c,translucentAccentColor:a,triangleLineWidth:3,geodesicProjectionLineWidth:2,guideLineWidth:2,guideStippleLengthPixels:3,directLabelFontSize:16,horizontalLabelFontSize:12,verticalLabelFontSize:12,textColor:o,textBackgroundColor:l(h,.6),textCalloutColor:l(h,.5)}}get visible(){return this.analysisView.visible}get viewMode(){const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView;if(null==e||null==t||e.equals(t))return 0;const i=this.analysisView.result;if(null==i)return 1;if("geodesic"===this.actualVisualizedMeasurement)return this._requiresGeodesicGuideAt(this._startPosition)||this._requiresGeodesicGuideAt(this._endPosition)?3:1;const{verticalDistance:s,horizontalDistance:n}=i,l=g(s,"meters").value,o=g(n,"meters").value;return Math.min(l/o,o/l)<this.triangleCollapseRatioThreshold?1:2}get actualVisualizedMeasurement(){const{measurementMode:e,result:t}=this.analysisView;switch(e){case 0:return null!=t&&g(t.horizontalDistance,"meters").value>k?"geodesic":"euclidean";case 1:return"euclidean";case 2:return"geodesic"}}get allowVisualElementsOrientationChange(){return null==this._triangleOrientationOverride}set allowVisualElementsOrientationChange(e){null==this._triangleOrientationOverride!==e&&(null==this._triangleOrientationOverride?this._triangleOrientationOverride=this._actualVisualElementsOrientation:this._triangleOrientationOverride=null)}get labels(){return"geodesic"===this.actualVisualizedMeasurement?{direct:null,horizontal:this._segmentLabel,vertical:this._verticalLabel}:{direct:this._segmentLabel,horizontal:this._horizontalLabel,vertical:this._verticalLabel}}constructor(e){super(e),this._segmentVisualElement=null,this._triangleVisualElement=null,this._rightAngleQuad=null,this._projectedGeodesicLine=null,this._geodesicStartHint=null,this._geodesicEndHint=null,this._segmentLabel=null,this._verticalLabel=null,this._horizontalLabel=null,this._startPosition=A(),this._endPosition=A(),this._cornerPosition=A(),this._startPositionAtSeaLevel=A(),this._endPositionAtSeaLevel=A(),this._triangleOrientationOverride=null,this.messages=null,this.loadingMessages=!0,this.visualElementOrientation=0,this.triangleCollapseRatioThreshold=.03}initialize(){const e={attached:!0,view:this.view,isDecoration:!0},{guideLineWidth:t,guideStippleLengthPixels:i,triangleLineWidth:s,geodesicProjectionLineWidth:n,directLabelFontSize:l,verticalLabelFontSize:o,horizontalLabelFontSize:r}=this._parameters;this._segmentVisualElement=new O({...e,geometry:null,renderOccluded:4}),this._triangleVisualElement=new C({...e,width:s,renderOccluded:4}),this._rightAngleQuad=new x({...e,renderOccluded:4});const a={...e,polygonOffset:!0,renderOccluded:4};this._projectedGeodesicLine=new C({...a,width:n,stipplePattern:H(i)}),this._geodesicStartHint=new C({...a,width:t,stipplePattern:H(i)}),this._geodesicEndHint=new C({...a,width:t,stipplePattern:H(i)}),this._segmentLabel=new j({...e,fontSize:l}),this._verticalLabel=new j({...e,fontSize:o}),this._horizontalLabel=new j({...e,fontSize:r}),this.addHandles([p(()=>{const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView,i=this.view;return{view:i,camera:i.state.camera,viewMode:this.viewMode,elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,orientation:this._actualVisualElementsOrientation,visualizedMeasurement:this.actualVisualizedMeasurement,stripeLength:this._measurementArrowStripeLength}},e=>this._updateGeometryAndViewMode(e),_),p(()=>({visible:this.visible,viewMode:this.viewMode}),e=>this._updateVisualElementVisibility(e),_),p(()=>({text:this._labelsText,visualizedMeasurement:this.actualVisualizedMeasurement}),e=>this._updateLabelText(e),_),p(()=>({visible:this.visible,viewMode:this.viewMode}),e=>this._updateLabelVisibility(e),_),p(()=>this._measurementArrowStripeLength,e=>this._updateSegmentStripeLength(e),_),T(()=>this._updateMessageBundle()),p(()=>this._parameters,({textBackgroundColor:e,textCalloutColor:t,textColor:i,translucentAccentColor:s,accentColor:n,contrastColor:l})=>{const{_segmentLabel:o,_verticalLabel:r,_horizontalLabel:a,_triangleVisualElement:c,_rightAngleQuad:h,_projectedGeodesicLine:u,_geodesicStartHint:d,_geodesicEndHint:m,_segmentVisualElement:g}=this;o.backgroundColor=e,o.calloutColor=t,o.textColor=i,r.backgroundColor=e,r.calloutColor=t,r.textColor=i,a.backgroundColor=e,a.calloutColor=t,a.textColor=i,c.color=s,h.color=s,u.color=s,d.color=s,m.color=s,g.color=n,g.contrastColor=l},v)]),this._updateMessageBundle()}destroy(){this._segmentVisualElement=a(this._segmentVisualElement),this._triangleVisualElement=a(this._triangleVisualElement),this._rightAngleQuad=a(this._rightAngleQuad),this._projectedGeodesicLine=a(this._projectedGeodesicLine),this._geodesicStartHint=a(this._geodesicStartHint),this._geodesicEndHint=a(this._geodesicEndHint),this._segmentLabel=a(this._segmentLabel),this._verticalLabel=a(this._verticalLabel),this._horizontalLabel=a(this._horizontalLabel),this.set("view",null)}_updateVisualElementVisibility({visible:e,viewMode:t}){if(this._segmentVisualElement.visible=!1,this._triangleVisualElement.visible=!1,this._rightAngleQuad.visible=!1,this._projectedGeodesicLine.visible=!1,this._geodesicStartHint.visible=!1,this._geodesicEndHint.visible=!1,e)switch(t){case 0:break;case 1:this._segmentVisualElement.visible=!0;break;case 2:this._segmentVisualElement.visible=!0,this._triangleVisualElement.visible=!0,this._rightAngleQuad.visible=!0;break;case 3:this._segmentVisualElement.visible=!0,this._projectedGeodesicLine.visible=!0,this._geodesicStartHint.visible=!0,this._geodesicEndHint.visible=!0}}_updateGeometryAndViewMode({view:e,camera:t,viewMode:i,elevationAlignedStartPoint:s,elevationAlignedEndPoint:n,orientation:l,visualizedMeasurement:o,stripeLength:r}){const a=e.renderCoordsHelper;if(null==a||null==s||null==n||s.equals(n))return;let c=this._startPosition,h=this._endPosition;a.toRenderCoords(s,c),a.toRenderCoords(n,h);const u=1===l?1:-1,d=u*(a.getAltitude(h)-a.getAltitude(c));d<0&&(c=this._endPosition,h=this._startPosition);const m="geodesic"===o?new D(this._startPosition,this._endPosition,a.spatialReference):new G(this._startPosition,this._endPosition);switch(this._segmentVisualElement.geometry=m,this._updateSegmentStripeLength(r),i){case 1:this._updateSegment(m,l);break;case 2:this._updateSegmentAndTriangle({view:e,camera:t,segment:m,orientation:l,startPosition:c,endPosition:h,deltaSign:u,altitudeDelta:d});break;case 3:this._updateSegmentAndProjection({view:e,orientation:l,startPosition:c,endPosition:h})}}_updateSegment(e,t){this._segmentLabel.anchor=1===t?"top":"bottom",this._segmentLabel.geometry={type:"segment",segment:e,sampleLocation:"center"}}_updateSegmentAndTriangle({view:{renderCoordsHelper:e},camera:t,segment:i,orientation:s,startPosition:n,endPosition:l,deltaSign:o,altitudeDelta:r}){const a=this._cornerPosition;e.worldUpAtPosition(n,a),V(a,a,o*Math.abs(r)),z(a,a,n),this._triangleVisualElement.geometry=[[[n[0],n[1],n[2]],[a[0],a[1],a[2]],[l[0],l[1],l[2]]]],this._rightAngleQuad.geometry={previous:n,center:a,next:l};const c=new G(n,a),h=new G(a,l),u=F(n,l,a,s,t);u&&(this._segmentLabel.anchor=u.segment,this._segmentLabel.geometry={type:"segment",segment:i,sampleLocation:"center"},this._verticalLabel.geometry={type:"segment",segment:c,sampleLocation:"center"},this._verticalLabel.anchor=u.vertical,this._horizontalLabel.geometry={type:"segment",segment:h,sampleLocation:"center"},this._horizontalLabel.anchor=u.horizontal)}_updateSegmentAndProjection({view:{renderCoordsHelper:e},orientation:t,startPosition:i,endPosition:s}){e.setAltitude(this._startPositionAtSeaLevel,0,i),e.setAltitude(this._endPositionAtSeaLevel,0,s);const n=new D(this._startPositionAtSeaLevel,this._endPositionAtSeaLevel,e.spatialReference);this._projectedGeodesicLine.setGeometryFromSegment(n),this._geodesicStartHint.setGeometryFromSegment(new G(this._startPositionAtSeaLevel,i)),this._geodesicEndHint.setGeometryFromSegment(new G(this._endPositionAtSeaLevel,s)),this._segmentLabel.geometry={type:"segment",segment:n,sampleLocation:"center"},this._segmentLabel.anchor=1===t?"top":"bottom"}_updateLabelText({text:e,visualizedMeasurement:t}){null!=e?(this._segmentLabel.text="euclidean"===t?e.directDistance:e.horizontalDistance,this._horizontalLabel.text=e.horizontalDistance,this._verticalLabel.text=e.verticalDistance):(this._segmentLabel.text=null,this._horizontalLabel.text=null,this._verticalLabel.text=null),this.notifyChange("labels")}_updateLabelVisibility({visible:e,viewMode:t}){const i=this._segmentLabel,s=this._horizontalLabel,n=this._verticalLabel;if(i.visible=!1,s.visible=!1,n.visible=!1,e)switch(t){case 1:case 3:i.visible=!0;break;case 2:i.visible=!0,s.visible=!0,n.visible=!0}}get _labelsText(){if(this.destroyed)return null;const e=this.messages,t=this.analysisView.result;if(null==t||null==e)return null;const{directDistance:i,horizontalDistance:s,verticalDistance:n}=t,l=this.analysisView.unit,o=e=>({directDistance:"",horizontalDistance:"",verticalDistance:"",...e});switch(l){case"metric":return o({directDistance:i&&m(e,i),horizontalDistance:s&&m(e,s),verticalDistance:n&&d(e,n)});case"imperial":return o({directDistance:i&&u(e,i),horizontalDistance:s&&u(e,s),verticalDistance:n&&h(e,n)});default:return o({directDistance:i&&c(e,i,l),horizontalDistance:s&&c(e,s,l),verticalDistance:n&&c(e,n,l)})}}_updateSegmentStripeLength(e){const t=this._segmentVisualElement;null!=e?(t.stripeLength=e,t.stripesEnabled=!0):t.stripesEnabled=!1}get _actualVisualElementsOrientation(){if(null!=this._triangleOrientationOverride)return this._triangleOrientationOverride;const e=this.visualElementOrientation;return 0===e?this.view.state.camera.aboveGround?1:2:e}_requiresGeodesicGuideAt(e){const t=this.view;if(!t?.state)return!1;const i=t.state.camera,s=t.renderCoordsHelper;if(!s)return!1;const n=i.computeScreenPixelSizeAt(e);return s.getAltitude(e)/n>=10}get _measurementArrowStripeLength(){const{result:e,unit:t}=this.analysisView;if(null==e)return null;let i=null;const s=e.directDistance;switch(t){case"metric":i=s&&g(s,"meters");break;case"imperial":i=s&&g(s,w(s.value,s.unit));break;default:i=s&&g(s,t)}if(null==i)return null;return o(i.value/30)*y(1,i.unit,"meters")}_updateMessageBundle(){this.loadingMessages=!0,U("esri/core/t9n/Units").then(e=>{this.messages=e}).finally(()=>{this.loadingMessages=!1})}get testData(){}};function F(e,t,i,s,n){const l=P(e,i,n,B),o=P(e,t,n,I);if(null==l||null==o)return null;const r=n.projectToRenderScreen(i,q),a=n.projectToRenderScreen(t,W),c={segment:"bottom",horizontal:"top",vertical:null==r||null==a||r[0]<a[0]?"left":"right"};if(E(l,o)>=Q){const e=Math.sign(l[1])===Math.sign(o[1]);c.segment=e?M(c.vertical):c.vertical}else{const e=J;P(i,t,n,e),E(e,o)>=Q&&(c.segment=Math.sign(e[0])===Math.sign(o[0])?M(c.horizontal):c.horizontal)}if(2===s){const e=e=>"top"===e?"bottom":"top";c.segment=e(c.segment),c.horizontal=e(c.horizontal),c.vertical=e(c.vertical)}return c}e([S()],R.prototype,"_parameters",null),e([S()],R.prototype,"_triangleOrientationOverride",void 0),e([S()],R.prototype,"messages",void 0),e([S()],R.prototype,"view",void 0),e([S()],R.prototype,"analysis",void 0),e([S()],R.prototype,"analysisView",void 0),e([S()],R.prototype,"loadingMessages",void 0),e([S()],R.prototype,"visible",null),e([S()],R.prototype,"viewMode",null),e([S()],R.prototype,"actualVisualizedMeasurement",null),e([S()],R.prototype,"visualElementOrientation",void 0),e([S()],R.prototype,"triangleCollapseRatioThreshold",void 0),e([S()],R.prototype,"allowVisualElementsOrientationChange",null),e([S()],R.prototype,"labels",null),e([S()],R.prototype,"_labelsText",null),e([S()],R.prototype,"_actualVisualElementsOrientation",null),e([S()],R.prototype,"_measurementArrowStripeLength",null),R=e([f("esri.views.3d.analysis.DirectLineMeasurement.DirectLineMeasurementVisualization")],R);const Q=Math.cos(r(12)),q=b(),W=b(),B=L(),I=L(),J=L();export{R as DirectLineMeasurementVisualization};
5
+ import{__decorate as e}from"tslib";import"../../../../intl.js";import t from"../../../../core/Accessor.js";import{unitRGBAFromColor as i,multiplyOpacityToUnitRGBA as s,getContrast as n,multiplyOpacity as l}from"../../../../core/colorUtils.js";import"../../../../core/has.js";import{nextHighestPowerOfTen as o,deg2rad as r}from"../../../../core/mathUtils.js";import{destroyMaybe as a}from"../../../../core/maybe.js";import{formatDecimal as c,formatImperialVerticalLength as h,formatImperialLength as u,formatMetricVerticalLength as d,formatMetricLength as m}from"../../../../core/quantityFormatUtils.js";import{toUnit as g}from"../../../../core/quantityUtils.js";import{watch as p,syncAndInitial as _,initial as v}from"../../../../core/reactiveUtils.js";import{createRenderScreenPointArray3 as b,createRenderScreenPointArray as L}from"../../../../core/screenUtils.js";import{adaptiveImperialLengthUnit as w,convertUnit as y}from"../../../../core/unitUtils.js";import{property as S}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as f}from"../../../../core/accessorSupport/decorators/subclass.js";import{dot as E}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{h as V,g as z}from"../../../../chunks/vec32.js";import{create as A}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{renderScreenSpaceTangent as P}from"../../interactive/support/viewUtils.js";import{LabelVisualElement as j,mirrorPosition as M}from"../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as C}from"../../interactive/visualElements/LineVisualElement.js";import{MeasurementArrowVisualElement as O}from"../../interactive/visualElements/MeasurementArrowVisualElement.js";import{RightAngleQuadVisualElement as x}from"../../interactive/visualElements/RightAngleQuadVisualElement.js";import{GeodesicSegment as D,EuclideanSegment as G}from"../../interactive/visualElements/support/Segment.js";import{createStipplePatternSimple as H}from"../../webgl-engine/materials/lineStippleUtils.js";import{geodesicDistanceThreshold as k}from"../../../support/geodesicMeasurementUtils.js";import{onLocaleChange as T}from"../../../../intl/locale.js";import{fetchMessageBundle as U}from"../../../../intl/messages.js";let R=class extends t{get _parameters(){const e=this.view.effectiveTheme,{accentColor:t,textColor:o}=e,r=i(t),a=s(t,.75),c=i(n(t)),h=n(o,160);return{accentColor:r,contrastColor:c,translucentAccentColor:a,triangleLineWidth:3,geodesicProjectionLineWidth:2,guideLineWidth:2,guideStippleLengthPixels:3,directLabelFontSize:16,horizontalLabelFontSize:12,verticalLabelFontSize:12,textColor:o,textBackgroundColor:l(h,.6),textCalloutColor:l(h,.5)}}get visible(){return this.analysisView.visible}get viewMode(){const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView;if(null==e||null==t||e.equals(t))return 0;const i=this.analysisView.result;if(null==i)return 1;if("geodesic"===this.actualVisualizedMeasurement)return this._requiresGeodesicGuideAt(this._startPosition)||this._requiresGeodesicGuideAt(this._endPosition)?3:1;const{verticalDistance:s,horizontalDistance:n}=i,l=g(s,"meters").value,o=g(n,"meters").value;return Math.min(l/o,o/l)<this.triangleCollapseRatioThreshold?1:2}get actualVisualizedMeasurement(){const{measurementMode:e,result:t}=this.analysisView;switch(e){case 0:return null!=t&&g(t.horizontalDistance,"meters").value>k?"geodesic":"euclidean";case 1:return"euclidean";case 2:return"geodesic"}}get allowVisualElementsOrientationChange(){return null==this._triangleOrientationOverride}set allowVisualElementsOrientationChange(e){null==this._triangleOrientationOverride!==e&&(null==this._triangleOrientationOverride?this._triangleOrientationOverride=this._actualVisualElementsOrientation:this._triangleOrientationOverride=null)}get labels(){return"geodesic"===this.actualVisualizedMeasurement?{direct:null,horizontal:this._segmentLabel,vertical:this._verticalLabel}:{direct:this._segmentLabel,horizontal:this._horizontalLabel,vertical:this._verticalLabel}}constructor(e){super(e),this._segmentVisualElement=null,this._triangleVisualElement=null,this._rightAngleQuad=null,this._projectedGeodesicLine=null,this._geodesicStartHint=null,this._geodesicEndHint=null,this._segmentLabel=null,this._verticalLabel=null,this._horizontalLabel=null,this._startPosition=A(),this._endPosition=A(),this._cornerPosition=A(),this._startPositionAtSeaLevel=A(),this._endPositionAtSeaLevel=A(),this._triangleOrientationOverride=null,this.messages=null,this.loadingMessages=!0,this.visualElementOrientation=0,this.triangleCollapseRatioThreshold=.03}initialize(){const e={attached:!0,view:this.view,isDecoration:!0},{guideLineWidth:t,guideStippleLengthPixels:i,triangleLineWidth:s,geodesicProjectionLineWidth:n,directLabelFontSize:l,verticalLabelFontSize:o,horizontalLabelFontSize:r}=this._parameters;this._segmentVisualElement=new O({...e,geometry:null,renderOccluded:4}),this._triangleVisualElement=new C({...e,width:s,renderOccluded:4}),this._rightAngleQuad=new x({...e,renderOccluded:4});const a={...e,polygonOffset:!0,renderOccluded:4};this._projectedGeodesicLine=new C({...a,width:n,stipplePattern:H(i)}),this._geodesicStartHint=new C({...a,width:t,stipplePattern:H(i)}),this._geodesicEndHint=new C({...a,width:t,stipplePattern:H(i)}),this._segmentLabel=new j({...e,fontSize:l}),this._verticalLabel=new j({...e,fontSize:o}),this._horizontalLabel=new j({...e,fontSize:r}),this.addHandles([p(()=>{const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView,i=this.view;return{view:i,camera:i.state.camera,viewMode:this.viewMode,elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,orientation:this._actualVisualElementsOrientation,visualizedMeasurement:this.actualVisualizedMeasurement,stripeLength:this._measurementArrowStripeLength}},e=>this._updateGeometryAndViewMode(e),_),p(()=>({visible:this.visible,viewMode:this.viewMode}),e=>this._updateVisualElementVisibility(e),_),p(()=>({text:this._labelsText,visualizedMeasurement:this.actualVisualizedMeasurement}),e=>this._updateLabelText(e),_),p(()=>({visible:this.visible,viewMode:this.viewMode}),e=>this._updateLabelVisibility(e),_),p(()=>this._measurementArrowStripeLength,e=>this._updateSegmentStripeLength(e),_),T(()=>this._updateMessageBundle()),p(()=>this._parameters,({textBackgroundColor:e,textCalloutColor:t,textColor:i,translucentAccentColor:s,accentColor:n,contrastColor:l})=>{const{_segmentLabel:o,_verticalLabel:r,_horizontalLabel:a,_triangleVisualElement:c,_rightAngleQuad:h,_projectedGeodesicLine:u,_geodesicStartHint:d,_geodesicEndHint:m,_segmentVisualElement:g}=this;o.backgroundColor=e,o.calloutColor=t,o.textColor=i,r.backgroundColor=e,r.calloutColor=t,r.textColor=i,a.backgroundColor=e,a.calloutColor=t,a.textColor=i,c.color=s,h.color=s,u.color=s,d.color=s,m.color=s,g.color=n,g.contrastColor=l},v)]),this._updateMessageBundle()}destroy(){this._segmentVisualElement=a(this._segmentVisualElement),this._triangleVisualElement=a(this._triangleVisualElement),this._rightAngleQuad=a(this._rightAngleQuad),this._projectedGeodesicLine=a(this._projectedGeodesicLine),this._geodesicStartHint=a(this._geodesicStartHint),this._geodesicEndHint=a(this._geodesicEndHint),this._segmentLabel=a(this._segmentLabel),this._verticalLabel=a(this._verticalLabel),this._horizontalLabel=a(this._horizontalLabel),this.set("view",null)}_updateVisualElementVisibility({visible:e,viewMode:t}){if(this._segmentVisualElement.visible=!1,this._triangleVisualElement.visible=!1,this._rightAngleQuad.visible=!1,this._projectedGeodesicLine.visible=!1,this._geodesicStartHint.visible=!1,this._geodesicEndHint.visible=!1,e)switch(t){case 0:break;case 1:this._segmentVisualElement.visible=!0;break;case 2:this._segmentVisualElement.visible=!0,this._triangleVisualElement.visible=!0,this._rightAngleQuad.visible=!0;break;case 3:this._segmentVisualElement.visible=!0,this._projectedGeodesicLine.visible=!0,this._geodesicStartHint.visible=!0,this._geodesicEndHint.visible=!0}}_updateGeometryAndViewMode({view:e,camera:t,viewMode:i,elevationAlignedStartPoint:s,elevationAlignedEndPoint:n,orientation:l,visualizedMeasurement:o,stripeLength:r}){const a=e.renderCoordsHelper;if(null==a||null==s||null==n||s.equals(n))return;let c=this._startPosition,h=this._endPosition;a.toRenderCoords(s,c),a.toRenderCoords(n,h);const u=1===l?1:-1,d=u*(a.getAltitude(h)-a.getAltitude(c));d<0&&(c=this._endPosition,h=this._startPosition);const m="geodesic"===o?new D(this._startPosition,this._endPosition,a.spatialReference):new G(this._startPosition,this._endPosition);switch(this._segmentVisualElement.geometry=m,this._updateSegmentStripeLength(r),i){case 1:this._updateSegment(m,l);break;case 2:this._updateSegmentAndTriangle({view:e,camera:t,segment:m,orientation:l,startPosition:c,endPosition:h,deltaSign:u,altitudeDelta:d});break;case 3:this._updateSegmentAndProjection({view:e,orientation:l,startPosition:c,endPosition:h})}}_updateSegment(e,t){this._segmentLabel.anchor=1===t?"top":"bottom",this._segmentLabel.geometry={type:"segment",segment:e,sampleLocation:"center"}}_updateSegmentAndTriangle({view:{renderCoordsHelper:e},camera:t,segment:i,orientation:s,startPosition:n,endPosition:l,deltaSign:o,altitudeDelta:r}){const a=this._cornerPosition;e.worldUpAtPosition(n,a),V(a,a,o*Math.abs(r)),z(a,a,n),this._triangleVisualElement.geometry=[[[n[0],n[1],n[2]],[a[0],a[1],a[2]],[l[0],l[1],l[2]]]],this._rightAngleQuad.geometry={previous:n,center:a,next:l};const c=new G(n,a),h=new G(a,l),u=F(n,l,a,s,t);u&&(this._segmentLabel.anchor=u.segment,this._segmentLabel.geometry={type:"segment",segment:i,sampleLocation:"center"},this._verticalLabel.geometry={type:"segment",segment:c,sampleLocation:"center"},this._verticalLabel.anchor=u.vertical,this._horizontalLabel.geometry={type:"segment",segment:h,sampleLocation:"center"},this._horizontalLabel.anchor=u.horizontal)}_updateSegmentAndProjection({view:{renderCoordsHelper:e},orientation:t,startPosition:i,endPosition:s}){e.setAltitude(this._startPositionAtSeaLevel,0,i),e.setAltitude(this._endPositionAtSeaLevel,0,s);const n=new D(this._startPositionAtSeaLevel,this._endPositionAtSeaLevel,e.spatialReference);this._projectedGeodesicLine.setGeometryFromSegment(n),this._geodesicStartHint.setGeometryFromSegment(new G(this._startPositionAtSeaLevel,i)),this._geodesicEndHint.setGeometryFromSegment(new G(this._endPositionAtSeaLevel,s)),this._segmentLabel.geometry={type:"segment",segment:n,sampleLocation:"center"},this._segmentLabel.anchor=1===t?"top":"bottom"}_updateLabelText({text:e,visualizedMeasurement:t}){null!=e?(this._segmentLabel.text="euclidean"===t?e.directDistance:e.horizontalDistance,this._horizontalLabel.text=e.horizontalDistance,this._verticalLabel.text=e.verticalDistance):(this._segmentLabel.text=null,this._horizontalLabel.text=null,this._verticalLabel.text=null),this.notifyChange("labels")}_updateLabelVisibility({visible:e,viewMode:t}){const i=this._segmentLabel,s=this._horizontalLabel,n=this._verticalLabel;if(i.visible=!1,s.visible=!1,n.visible=!1,e)switch(t){case 1:case 3:i.visible=!0;break;case 2:i.visible=!0,s.visible=!0,n.visible=!0}}get _labelsText(){if(this.destroyed)return null;const e=this.messages,t=this.analysisView.result;if(null==t||null==e)return null;const{directDistance:i,horizontalDistance:s,verticalDistance:n}=t,l=this.analysisView.unit,o=e=>({directDistance:"",horizontalDistance:"",verticalDistance:"",...e});switch(l){case"metric":return o({directDistance:i&&m(e,i),horizontalDistance:s&&m(e,s),verticalDistance:n&&d(e,n)});case"imperial":return o({directDistance:i&&u(e,i),horizontalDistance:s&&u(e,s),verticalDistance:n&&h(e,n)});default:return o({directDistance:i&&c(e,i,l),horizontalDistance:s&&c(e,s,l),verticalDistance:n&&c(e,n,l)})}}_updateSegmentStripeLength(e){const t=this._segmentVisualElement;null!=e?(t.stripeLength=e,t.stripesEnabled=!0):t.stripesEnabled=!1}get _actualVisualElementsOrientation(){if(null!=this._triangleOrientationOverride)return this._triangleOrientationOverride;const e=this.visualElementOrientation;return 0===e?this.view.state.camera.aboveGround?1:2:e}_requiresGeodesicGuideAt(e){const t=this.view;if(!t?.state)return!1;const i=t.state.camera,s=t.renderCoordsHelper;if(!s)return!1;const n=i.computeScreenPixelSizeAt(e);return s.getAltitude(e)/n>=10}get _measurementArrowStripeLength(){const{result:e,unit:t}=this.analysisView;if(null==e)return null;let i=null;const s=e.directDistance;switch(t){case"metric":i=s&&g(s,"meters");break;case"imperial":i=s&&g(s,w(s.value,s.unit));break;default:i=s&&g(s,t)}if(null==i)return null;return o(i.value/30)*y(1,i.unit,"meters")}_updateMessageBundle(){this.loadingMessages=!0,U("esri/core/t9n/Units").then(e=>{this.messages=e}).finally(()=>{this.loadingMessages=!1})}get testData(){}};function F(e,t,i,s,n){const l=P(e,i,n,B),o=P(e,t,n,I);if(null==l||null==o)return null;const r=n.projectToRenderScreen(i,q),a=n.projectToRenderScreen(t,W),c={segment:"bottom",horizontal:"top",vertical:null==r||null==a||r[0]<a[0]?"left":"right"};if(E(l,o)>=Q){const e=Math.sign(l[1])===Math.sign(o[1]);c.segment=e?M(c.vertical):c.vertical}else{const e=J;P(i,t,n,e),E(e,o)>=Q&&(c.segment=Math.sign(e[0])===Math.sign(o[0])?M(c.horizontal):c.horizontal)}if(2===s){const e=e=>"top"===e?"bottom":"top";c.segment=e(c.segment),c.horizontal=e(c.horizontal),c.vertical=e(c.vertical)}return c}e([S()],R.prototype,"_parameters",null),e([S()],R.prototype,"_triangleOrientationOverride",void 0),e([S()],R.prototype,"messages",void 0),e([S()],R.prototype,"view",void 0),e([S()],R.prototype,"analysis",void 0),e([S()],R.prototype,"analysisView",void 0),e([S()],R.prototype,"loadingMessages",void 0),e([S()],R.prototype,"visible",null),e([S()],R.prototype,"viewMode",null),e([S()],R.prototype,"actualVisualizedMeasurement",null),e([S()],R.prototype,"visualElementOrientation",void 0),e([S()],R.prototype,"triangleCollapseRatioThreshold",void 0),e([S()],R.prototype,"allowVisualElementsOrientationChange",null),e([S()],R.prototype,"labels",null),e([S()],R.prototype,"_labelsText",null),e([S()],R.prototype,"_actualVisualElementsOrientation",null),e([S()],R.prototype,"_measurementArrowStripeLength",null),R=e([f("esri.views.3d.analysis.DirectLineMeasurement.DirectLineMeasurementVisualization")],R);const Q=Math.cos(r(12)),q=b(),W=b(),B=L(),I=L(),J=L();export{R as DirectLineMeasurementVisualization};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
+ */
5
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{destroyHandle as i,handlesGroup as o}from"../../../../core/handleUtils.js";import{removeMaybe as s}from"../../../../core/maybe.js";import{watch as r,syncAndInitial as a}from"../../../../core/reactiveUtils.js";import{property as n}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as l}from"../../../../core/accessorSupport/decorators/subclass.js";import{Settings as m}from"../../interactive/editingTools/settings.js";import{OutlineVisualElement as c}from"../../interactive/visualElements/OutlineVisualElement.js";import{GraphicState as p}from"../../layers/graphics/GraphicState.js";import{isValidInputPath as d}from"../../../analysis/ElevationProfile/elevationProfileGeometryUtils.js";import{connectVisualization as v}from"../../../analysis/ElevationProfile/elevationProfileInputVisualizationUtils.js";let h=class extends t{constructor(e){super(e),this._visualElementHandle=null}initialize(){this._settings=new m({getTheme:()=>this.view.effectiveTheme}),this.addHandles(v({analysisViewData:this.analysisViewData,remove:()=>this._remove(),show:e=>this._show(e)}))}destroy(){this._remove()}get updating(){return!1}_remove(){this._visualElementHandle=s(this._visualElementHandle)}_show(e){this._remove();const{view:t}=this,s=new c({view:t,geometry:u(e),attached:!1,renderOccluded:8,isDecoration:!0}),n=new p({graphic:e}),l=[r(()=>({draped:n.isDraped,elevationInfo:this.analysisViewData.analysis.elevationInfo}),({draped:e,elevationInfo:t})=>{s.elevationInfo=t,s.isDraped=e},a),n.on("changed",()=>s.geometry=u(e)),t.trackGraphicState(n),t.maskOccludee(e),i(s)];this._settings.visualElements.lineObjects.outline.apply(s),s.attached=!0,this._visualElementHandle=o(l)}};function u({geometry:e}){return d(e)?e:null}e([n({constructOnly:!0})],h.prototype,"view",void 0),e([n({constructOnly:!0})],h.prototype,"analysisViewData",void 0),e([n()],h.prototype,"updating",null),h=e([l("esri.views.3d.analysis.ElevationProfile.ElevationProfileGeometryVisualization3D")],h);export{h as ElevationProfileGeometryVisualization3D};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{isIterable as t}from"../../../../core/iteratorUtils.js";import{memoize as r}from"../../../../core/memoize.js";import{watch as o}from"../../../../core/reactiveUtils.js";import{getMetersPerVerticalUnitForSR as i}from"../../../../core/unitUtils.js";import{property as s}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as n}from"../../../../core/accessorSupport/decorators/subclass.js";import{i as l}from"../../../../chunks/vec32.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as c}from"../../../../geometry/ellipsoidUtils.js";import{create as p,fromPoints as u}from"../../../../geometry/support/ray.js";import{GeometryDescriptor as m}from"../../../../layers/support/GeometryDescriptor.js";import{externalToInternalIntersectOptions as y}from"../../support/hitTest.js";import{Intersector as d}from"../../webgl-engine/lib/Intersector.js";import{ElevationProfileLineComputation as f}from"../../../analysis/ElevationProfile/ElevationProfileLineComputation.js";const h=2e5;let v=class extends f{constructor(){super(...arguments),this.type="scene",this.numSamplesForPreview=50,this.numSamplesPerChunk=25,this._getQueryElevationDependenciesMemoized=r((e,t,r,o,i,s,n)=>({geometry:e,visibleLayers:t,maxIntersectionDistance:r,intersectOptions:o,view:i,stationary:s,spatialReference:n})),this._vecA=a(),this._vecB=a(),this._ray=p()}get minDemResolution(){const e=this._view;if(!e)return null;const t=e.pointsOfInterest?.focus?.worldUnitsPerContentPixel;return null==t?null:t*i(e.spatialReference)}initialize(){const e=()=>this.onInvalidate(this);return this.addHandles([o(()=>this._queryElevationDependencies,e),this.controller.onElevationChange(e)])}async queryElevation(e,{noDataValue:t,signal:r}){const o=this._queryElevationDependencies;if(null==o)throw new Error(`${this.declaredClass}: no dependencies`);const i=this._intersector;if(null==i)throw new Error(`${this.declaredClass}: no view`);const{intersectOptions:s,view:n,spatialReference:a}=o,c=n.renderCoordsHelper,p=n.sceneIntersectionHelper,y=this._vecA,d=this._vecA,f=this._vecB,v=this._ray;if(!a)return{geometry:e,noDataValue:t};const g=await m.fromGeometry(e).project(a,r);if(!g)return{geometry:e,noDataValue:t};const w=g.coordinates,D=w.length;for(let m=0;m<D;++m){const e=w[m];l(f,e.x,e.y,e.z??0),c.toRenderCoords(f,a,f),c.setAltitude(y,h,f);const r=u(y,f,v);p.computeIntersection(r,i,!0,s);const n=_(o,i.results.all);n?(n.getIntersectionPoint(d),c.fromRenderCoords(d,d,a),e.z=d[2]):e.z=t}return{geometry:g.export(),noDataValue:t}}get _queryElevationDependencies(){const e=this._view;return e?this._getQueryElevationDependenciesMemoized(this.controller?.analysis.geometry,this._visibleLayers,this._maxIntersectionDistance,this._intersectOptions,e,e.stationary,e.spatialReference):null}get _visibleLayers(){return this._view?.map?.allLayers?.filter(e=>e.visible).toArray()??[]}get _intersectOptions(){const e=this._view;if(!e||e.destroyed)return{};const{include:r,exclude:o}=this.profile;return y(e,{include:r,exclude:[...this._pointCloudLayers,...t(o)?o:o?[o]:[]]})}get _pointCloudLayers(){const e=this._view;return e?e.allLayerViews.toArray().filter(e=>"point-cloud"===e.layer?.type).map(e=>e.layer):[]}get _view(){const e=this.controller.view;return"3d"===e.type?e:null}get _maxIntersectionDistance(){const e=this._view;return e?.renderCoordsHelper?c(e.spatialReference).radius/e.renderCoordsHelper.unitInMeters:Number.POSITIVE_INFINITY}get _intersector(){const e=this._view;if(!e)return null;const t=new d(e.state.viewingMode),r=t.options;return r.hud=!1,r.invisibleTerrain=!1,r.backfacesTerrain=!1,r.selectionMode=!1,r.store=2,t}};function _({maxIntersectionDistance:e},t){for(const r of t)if(r.withinDistance(e))return r;return null}e([s({readOnly:!0})],v.prototype,"minDemResolution",null),e([s()],v.prototype,"_queryElevationDependencies",null),e([s()],v.prototype,"_visibleLayers",null),e([s()],v.prototype,"_intersectOptions",null),e([s()],v.prototype,"_pointCloudLayers",null),e([s()],v.prototype,"_view",null),e([s()],v.prototype,"_maxIntersectionDistance",null),e([s()],v.prototype,"_intersector",null),v=e([n("esri.views.3d.analysis.ElevationProfile.ElevationProfileLineSceneComputation")],v);export{v as ElevationProfileLineSceneComputation};
5
+ import{__decorate as e}from"tslib";import{isIterable as t}from"../../../../core/iteratorUtils.js";import{memoize as r}from"../../../../core/memoize.js";import{watch as o}from"../../../../core/reactiveUtils.js";import{getMetersPerVerticalUnitForSR as i}from"../../../../core/unitUtils.js";import{property as s}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as n}from"../../../../core/accessorSupport/decorators/subclass.js";import{j as l}from"../../../../chunks/vec32.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as c}from"../../../../geometry/ellipsoidUtils.js";import{create as p,fromPoints as u}from"../../../../geometry/support/ray.js";import{GeometryDescriptor as m}from"../../../../layers/support/GeometryDescriptor.js";import{externalToInternalIntersectOptions as y}from"../../support/hitTest.js";import{Intersector as d}from"../../webgl-engine/lib/Intersector.js";import{ElevationProfileLineComputation as f}from"../../../analysis/ElevationProfile/ElevationProfileLineComputation.js";const h=2e5;let v=class extends f{constructor(){super(...arguments),this.type="scene",this.numSamplesForPreview=50,this.numSamplesPerChunk=25,this._getQueryElevationDependenciesMemoized=r((e,t,r,o,i,s,n)=>({geometry:e,visibleLayers:t,maxIntersectionDistance:r,intersectOptions:o,view:i,stationary:s,spatialReference:n})),this._vecA=a(),this._vecB=a(),this._ray=p()}get minDemResolution(){const e=this._view;if(!e)return null;const t=e.pointsOfInterest?.focus?.worldUnitsPerContentPixel;return null==t?null:t*i(e.spatialReference)}initialize(){const e=()=>this.onInvalidate(this);return this.addHandles([o(()=>this._queryElevationDependencies,e),this.controller.onElevationChange(e)])}async queryElevation(e,{noDataValue:t,signal:r}){const o=this._queryElevationDependencies;if(null==o)throw new Error(`${this.declaredClass}: no dependencies`);const i=this._intersector;if(null==i)throw new Error(`${this.declaredClass}: no view`);const{intersectOptions:s,view:n,spatialReference:a}=o,c=n.renderCoordsHelper,p=n.sceneIntersectionHelper,y=this._vecA,d=this._vecA,f=this._vecB,v=this._ray;if(!a)return{geometry:e,noDataValue:t};const g=await m.fromGeometry(e).project(a,r);if(!g)return{geometry:e,noDataValue:t};const w=g.coordinates,j=w.length;for(let m=0;m<j;++m){const e=w[m];l(f,e.x,e.y,e.z??0),c.toRenderCoords(f,a,f),c.setAltitude(y,h,f);const r=u(y,f,v);p.computeIntersection(r,i,!0,s);const n=_(o,i.results.all);n?(n.getIntersectionPoint(d),c.fromRenderCoords(d,d,a),e.z=d[2]):e.z=t}return{geometry:g.export(),noDataValue:t}}get _queryElevationDependencies(){const e=this._view;return e?this._getQueryElevationDependenciesMemoized(this.controller?.analysis.geometry,this._visibleLayers,this._maxIntersectionDistance,this._intersectOptions,e,e.stationary,e.spatialReference):null}get _visibleLayers(){return this._view?.map?.allLayers?.filter(e=>e.visible).toArray()??[]}get _intersectOptions(){const e=this._view;if(!e||e.destroyed)return{};const{include:r,exclude:o}=this.profile;return y(e,{include:r,exclude:[...this._pointCloudLayers,...t(o)?o:o?[o]:[]]})}get _pointCloudLayers(){const e=this._view;return e?e.allLayerViews.toArray().filter(e=>"point-cloud"===e.layer?.type).map(e=>e.layer):[]}get _view(){const e=this.controller.view;return"3d"===e.type?e:null}get _maxIntersectionDistance(){const e=this._view;return e?.renderCoordsHelper?c(e.spatialReference).radius/e.renderCoordsHelper.unitInMeters:Number.POSITIVE_INFINITY}get _intersector(){const e=this._view;if(!e)return null;const t=new d(e.state.viewingMode),r=t.options;return r.hud=!1,r.invisibleTerrain=!1,r.backfacesTerrain=!1,r.selectionMode=!1,r.store=2,t}};function _({maxIntersectionDistance:e},t){for(const r of t)if(r.withinDistance(e))return r;return null}e([s({readOnly:!0})],v.prototype,"minDemResolution",null),e([s()],v.prototype,"_queryElevationDependencies",null),e([s()],v.prototype,"_visibleLayers",null),e([s()],v.prototype,"_intersectOptions",null),e([s()],v.prototype,"_pointCloudLayers",null),e([s()],v.prototype,"_view",null),e([s()],v.prototype,"_maxIntersectionDistance",null),e([s()],v.prototype,"_intersector",null),v=e([n("esri.views.3d.analysis.ElevationProfile.ElevationProfileLineSceneComputation")],v);export{v as ElevationProfileLineSceneComputation};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../../../../Color.js";import i from"../../../../core/Accessor.js";import{watch as s,syncAndInitial as o}from"../../../../core/reactiveUtils.js";import{throttle as r}from"../../../../core/throttle.js";import{property as l}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as a}from"../../../../core/accessorSupport/decorators/subclass.js";import{fromValues as n,fromArray as p}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{OutlineVisualElement as m}from"../../interactive/visualElements/OutlineVisualElement.js";import{getConfig as u}from"../../../analysis/ElevationProfile/constants.js";import{createLineGeometry as c}from"../../../analysis/ElevationProfile/elevationProfileVisualizationUtils.js";let f=class extends i{constructor(e){super(e),this._updateGeometryThrottled=r(e=>{e&&(this._visualElement.visible=!0,this._visualElement.geometry=c(e.samples,e.spatialReference))},u().profileLinesUpdateThrottleMillis)}initialize(){this._visualElement=new m({view:this.view,elevationInfo:{mode:"absolute-height",offset:0},innerWidth:0,innerColor:n(0,0,0,0),width:3,falloff:0,renderOccluded:16,isDecoration:!0}),this.addHandles([s(()=>({color:this.getResult()?.computation.profile.color,visible:this._effectiveVisible}),({color:e,visible:i})=>{e&&(this._visualElement.color=p(t.toUnitRGBA(e))),this._visualElement.visible=i,i||(this._visualElement.geometry=null)},o),s(()=>this.analysisViewData.analysis.geometry,()=>{this._visualElement.visible=!1,this._visualElement.geometry=null},o),s(()=>this._geometryUpdateParameters,e=>this._updateGeometryThrottled(e),o),this._updateGeometryThrottled])}destroy(){this._visualElement.destroy()}get updating(){return this._updateGeometryThrottled.hasPendingUpdates()}get _result(){return this.getResult()}get _effectiveVisible(){const{analysisViewData:e,_result:t}=this;return e.visible&&null!=t&&t.available&&t.computation.profile.viewOptions.lineVisible}get _geometryUpdateParameters(){if(!this._effectiveVisible)return null;const e=this._result;return 1!==e?.progress?null:{samples:e.samples,spatialReference:this.view.spatialReference}}};e([l()],f.prototype,"view",void 0),e([l()],f.prototype,"analysisViewData",void 0),e([l()],f.prototype,"getResult",void 0),e([l()],f.prototype,"updating",null),e([l()],f.prototype,"_result",null),e([l()],f.prototype,"_effectiveVisible",null),e([l()],f.prototype,"_geometryUpdateParameters",null),f=e([a("esri.views.3d.analysis.ElevationProfile.ElevationProfileLineVisualization3D")],f);export{f as ElevationProfileLineVisualization3D};
5
+ import{__decorate as e}from"tslib";import t from"../../../../Color.js";import i from"../../../../core/Accessor.js";import{watch as o,syncAndInitial as s}from"../../../../core/reactiveUtils.js";import{throttle as r}from"../../../../core/throttle.js";import{property as l}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as a}from"../../../../core/accessorSupport/decorators/subclass.js";import{fromValues as n,fromArray as p}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{absoluteHeightElevationInfo as m}from"../../../../support/elevationInfoUtils.js";import{OutlineVisualElement as u}from"../../interactive/visualElements/OutlineVisualElement.js";import{getConfig as c}from"../../../analysis/ElevationProfile/constants.js";import{createLineGeometry as f}from"../../../analysis/ElevationProfile/elevationProfileVisualizationUtils.js";let v=class extends i{constructor(e){super(e),this._updateGeometryThrottled=r(e=>{if(!e)return;const{samples:t,spatialReference:i}=e,o=null!=t&&t.length>0;this._visualElement.geometry=o?f(t,i):null},c().profileLinesUpdateThrottleMillis)}initialize(){this._visualElement=new u({view:this.view,elevationInfo:m,innerWidth:0,innerColor:n(0,0,0,0),width:3,falloff:0,renderOccluded:16,isDecoration:!0}),this.addHandles([o(()=>({color:this._result?.computation.profile.color,visible:this._effectiveVisible}),({color:e,visible:i})=>{e&&(this._visualElement.color=p(t.toUnitRGBA(e))),this._visualElement.visible=i},s),o(()=>this.analysisViewData.analysis.geometry,()=>{this._visualElement.geometry=null},s),o(()=>this._geometryUpdateParameters,e=>this._updateGeometryThrottled(e),s),this._updateGeometryThrottled])}destroy(){this._visualElement.destroy()}get updating(){return this._updateGeometryThrottled.hasPendingUpdates()}get _result(){return this.getResult()}get _effectiveVisible(){const{analysisViewData:e,_result:t}=this;return e.visible&&null!=t&&t.available&&t.computation.profile.viewOptions.lineVisible}get _geometryUpdateParameters(){return this._effectiveVisible&&1!==this.analysisViewData.progress?null:{samples:this._result?.samples,spatialReference:this.view.spatialReference}}};e([l()],v.prototype,"view",void 0),e([l()],v.prototype,"analysisViewData",void 0),e([l()],v.prototype,"getResult",void 0),e([l()],v.prototype,"updating",null),e([l()],v.prototype,"_result",null),e([l()],v.prototype,"_effectiveVisible",null),e([l()],v.prototype,"_geometryUpdateParameters",null),v=e([a("esri.views.3d.analysis.ElevationProfile.ElevationProfileLineVisualization3D")],v);export{v as ElevationProfileLineVisualization3D};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as i}from"tslib";import o from"../../../../core/Accessor.js";import{mapCollection as t}from"../../../../core/mapCollectionUtils.js";import{property as s}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as a}from"../../../../core/accessorSupport/decorators/subclass.js";import{ElevationProfileInputVisualization3D as e}from"./ElevationProfileInputVisualization3D.js";import{ElevationProfileLineVisualization3D as r}from"./ElevationProfileLineVisualization3D.js";import{ElevationProfileHoveredPointsVisualization as n}from"../../../analysis/ElevationProfile/ElevationProfileHoveredPointsVisualization.js";let l=class extends o{constructor(i){super(i)}initialize(){const{view:i,analysisViewData:o}=this;this._hoveredPointsVisualization=new n({view:i,analysisViewData:o}),this._inputVisualization=new e({view:i,analysisViewData:o}),this._lineVisualizations=t(()=>this.analysisViewData.analysis.profiles,t=>new r({view:i,analysisViewData:o,getResult:()=>o.results.find(i=>i.computation.profile===t)}))}destroy(){this._inputVisualization.destroy(),this._hoveredPointsVisualization.destroy(),this._lineVisualizations.destroy()}get updating(){return this._inputVisualization.updating||this._lineVisualizations.some(i=>i.updating)}};i([s()],l.prototype,"view",void 0),i([s()],l.prototype,"analysisViewData",void 0),i([s()],l.prototype,"updating",null),l=i([a("esri.views.3d.analysis.ElevationProfile.ElevationProfileVisualization3D")],l);export{l as ElevationProfileVisualization3D};
5
+ import{__decorate as i}from"tslib";import o from"../../../../core/Accessor.js";import{mapCollection as t}from"../../../../core/mapCollectionUtils.js";import{property as s}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as e}from"../../../../core/accessorSupport/decorators/subclass.js";import{ElevationProfileGeometryVisualization3D as a}from"./ElevationProfileGeometryVisualization3D.js";import{ElevationProfileLineVisualization3D as r}from"./ElevationProfileLineVisualization3D.js";import{ElevationProfileHoveredPointsVisualization as n}from"../../../analysis/ElevationProfile/ElevationProfileHoveredPointsVisualization.js";let l=class extends o{constructor(i){super(i)}initialize(){const{view:i,analysisViewData:o}=this;this._hoveredPointsVisualization=new n({view:i,analysisViewData:o}),this._geometryVisualization=new a({view:i,analysisViewData:o}),this._lineVisualizations=t(()=>this.analysisViewData.analysis.profiles,t=>new r({view:i,analysisViewData:o,getResult:()=>o.results.find(i=>i.computation.profile===t)}))}destroy(){this._geometryVisualization.destroy(),this._hoveredPointsVisualization.destroy(),this._lineVisualizations.destroy()}get updating(){return this._geometryVisualization.updating||this._lineVisualizations.some(i=>i.updating)}};i([s()],l.prototype,"view",void 0),i([s()],l.prototype,"analysisViewData",void 0),i([s()],l.prototype,"updating",null),l=i([e("esri.views.3d.analysis.ElevationProfile.ElevationProfileVisualization3D")],l);export{l as ElevationProfileVisualization3D};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import{property as e}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";import{AnalysisView3D as i}from"./AnalysisView3D.js";import{ElevationProfileLineSceneComputation as r}from"./ElevationProfile/ElevationProfileLineSceneComputation.js";import{ElevationProfileVisualization3D as s}from"./ElevationProfile/ElevationProfileVisualization3D.js";import{ElevationProfileController as l}from"../../analysis/ElevationProfile/ElevationProfileController.js";import{ElevationProfileLineGroundComputation as n}from"../../analysis/ElevationProfile/ElevationProfileLineGroundComputation.js";import{ElevationProfileLineInputComputation as a}from"../../analysis/ElevationProfile/ElevationProfileLineInputComputation.js";import{ElevationProfileLineQueryComputation as p}from"../../analysis/ElevationProfile/ElevationProfileLineQueryComputation.js";import{ElevationProfileTool as c}from"../../analysis/ElevationProfile/ElevationProfileTool.js";let u=class extends i{constructor(t){super(t),this.type="elevation-profile-view-3d",this.analysis=null,this.hoveredPosition=null}initialize(){const{analysis:t,view:e}=this;this._controller=new l({analysis:t,analysisViewData:this,view:e,computationFactory:{create:t=>{switch(t.profile.type){case"ground":return new n(t);case"input":return new a(t);case"query":return new p(t);case"scene":return new r(t)}}}}),this._visualization=new s({view:e,analysisViewData:this}),this._sketchTool=new c({view:e,analysisViewData:this})}destroy(){this._controller?.destroy(),this._visualization?.destroy(),this._sketchTool?.destroy()}get effectiveDisplayUnits(){return this._controller?.effectiveDisplayUnits??{distance:"meters",elevation:"meters"}}get error(){return this._controller?.error}get hoveredPoints(){return this._controller?.hoveredPoints??[]}get interactive(){return super.interactive}set interactive(t){super.interactive=t}get progress(){return this._controller?.progress??0}get results(){return this._controller?.results??[]}get statistics(){return this._controller?.statistics}get updating(){return!0===this._controller?.updating||!0===this._visualization?.updating||!0===this._sketchTool?.updating}get visible(){return super.visible}set visible(t){super.visible=t}get sketchGraphic(){return this._sketchTool?.sketchGraphic}get toolState(){return this._sketchTool?.state??"idle"}place(t){return this._sketchTool.place(t)}pickGraphic(t){return this._sketchTool.pickGraphic(t)}};t([e({readOnly:!0})],u.prototype,"type",void 0),t([e({constructOnly:!0,nonNullable:!0})],u.prototype,"analysis",void 0),t([e({readOnly:!0})],u.prototype,"effectiveDisplayUnits",null),t([e({readOnly:!0})],u.prototype,"error",null),t([e()],u.prototype,"hoveredPosition",void 0),t([e()],u.prototype,"hoveredPoints",null),t([e({readOnly:!0})],u.prototype,"progress",null),t([e({readOnly:!0})],u.prototype,"results",null),t([e({readOnly:!0})],u.prototype,"statistics",null),t([e({readOnly:!0})],u.prototype,"updating",null),t([e()],u.prototype,"sketchGraphic",null),t([e()],u.prototype,"toolState",null),t([e()],u.prototype,"_controller",void 0),t([e()],u.prototype,"_visualization",void 0),t([e()],u.prototype,"_sketchTool",void 0),u=t([o("esri.views.3d.analysis.ElevationProfileAnalysisView3D")],u);const y=u;export{y as default};
5
+ import{__decorate as t}from"tslib";import{property as e}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";import{AnalysisView3D as r}from"./AnalysisView3D.js";import{ElevationProfileLineSceneComputation as i}from"./ElevationProfile/ElevationProfileLineSceneComputation.js";import{ElevationProfileVisualization3D as s}from"./ElevationProfile/ElevationProfileVisualization3D.js";import{ElevationProfileController as l}from"../../analysis/ElevationProfile/ElevationProfileController.js";import{ElevationProfileLineGroundComputation as n}from"../../analysis/ElevationProfile/ElevationProfileLineGroundComputation.js";import{ElevationProfileLineInputComputation as a}from"../../analysis/ElevationProfile/ElevationProfileLineInputComputation.js";import{ElevationProfileLineQueryComputation as p}from"../../analysis/ElevationProfile/ElevationProfileLineQueryComputation.js";import{ElevationProfileTool as c}from"../../analysis/ElevationProfile/ElevationProfileTool.js";let u=class extends r{constructor(t){super(t),this.type="elevation-profile-view-3d",this.analysis=null,this.hoveredPosition=null}initialize(){const{analysis:t,view:e}=this;this._controller=new l({analysis:t,analysisViewData:this,view:e,computationFactory:{create:t=>{switch(t.profile.type){case"ground":return new n(t);case"input":return new a(t);case"query":return new p(t);case"scene":return new i(t)}}}}),this._visualization=new s({view:e,analysisViewData:this}),this._sketchTool=new c({view:e,analysisViewData:this})}destroy(){this._controller?.destroy(),this._visualization?.destroy(),this._sketchTool?.destroy()}get effectiveDisplayUnits(){return this._controller?.effectiveDisplayUnits??{distance:"meters",elevation:"meters"}}get error(){return this._controller?.error}get hoveredPoints(){return this._controller?.hoveredPoints??[]}get interactive(){return super.interactive}set interactive(t){super.interactive=t}get progress(){return this._controller?.progress??0}get results(){return this._controller?.results??[]}get statistics(){return this._controller?.statistics}get updating(){return!0===this._controller?.updating||!0===this._visualization?.updating||!0===this._sketchTool?.updating}get visible(){return super.visible}set visible(t){super.visible=t}get sketchGraphic(){return this._sketchTool?.sketchGraphic}get toolState(){return this._sketchTool?.state??"idle"}place(t){return this._sketchTool.place(t)}pickFeature(t){return this._sketchTool.pickFeature(t)}};t([e({readOnly:!0})],u.prototype,"type",void 0),t([e({constructOnly:!0,nonNullable:!0})],u.prototype,"analysis",void 0),t([e({readOnly:!0})],u.prototype,"effectiveDisplayUnits",null),t([e({readOnly:!0})],u.prototype,"error",null),t([e()],u.prototype,"hoveredPosition",void 0),t([e()],u.prototype,"hoveredPoints",null),t([e({readOnly:!0})],u.prototype,"progress",null),t([e({readOnly:!0})],u.prototype,"results",null),t([e({readOnly:!0})],u.prototype,"statistics",null),t([e({readOnly:!0})],u.prototype,"updating",null),t([e()],u.prototype,"sketchGraphic",null),t([e()],u.prototype,"toolState",null),t([e()],u.prototype,"_controller",void 0),t([e()],u.prototype,"_visualization",void 0),t([e()],u.prototype,"_sketchTool",void 0),u=t([o("esri.views.3d.analysis.ElevationProfileAnalysisView3D")],u);const y=u;export{y as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{updatePointsFromFeatureReference as t,getFeatureId as o}from"../../../../analysis/featureReferenceUtils.js";import{createTask as n}from"../../../../core/asyncUtils.js";import{EventedAccessor as i}from"../../../../core/Evented.js";import r from"../../../../core/Handles.js";import{handlesGroup as s,makeHandle as a}from"../../../../core/handleUtils.js";import l from"../../../../core/Logger.js";import{abortMaybe as u}from"../../../../core/maybe.js";import{ignoreAbortErrors as c}from"../../../../core/promiseUtils.js";import{initial as d,on as p}from"../../../../core/reactiveUtils.js";import{property as g}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/RandomLCG.js";import{subclass as h}from"../../../../core/accessorSupport/decorators/subclass.js";import{c as m,d as v,n as f,g as _,f as b,F as y,a as C}from"../../../../chunks/vec32.js";import{create as T}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as O}from"../../../../core/support/UpdatingHandles.js";import P from"../../../../geometry/Point.js";import{projectOrLoad as I}from"../../../../geometry/projectionUtils.js";import{projectBoundingRect as S}from"../../../../geometry/projection/projectBoundingRect.js";import{intersectsSegment as j}from"../../../../geometry/support/aaBoundingBox.js";import{empty as w,containsPointObject as R,intersectsSegment as A}from"../../../../geometry/support/aaBoundingRect.js";import{fromPoints as H,create as E}from"../../../../geometry/support/ray.js";import{zValueInAbsoluteHeightMode as L}from"../../../../support/elevationInfoUtils.js";import V from"../LineOfSightAnalysisResult.js";import{LineOfSightComputation as F}from"./LineOfSightComputation.js";import{LineOfSightRayIntersector as x}from"./LineOfSightRayIntersector.js";import{logFailedGeometryProjectionError as D}from"../support/projectionUtils.js";import{toGraphic as G}from"../../webgl-engine/lib/intersectorUtilsConversions.js";import{ImmediateTask as U,TaskPriority as z}from"../../../support/Scheduler.js";let N=class extends i{constructor(e){super(e),this.updateOnCameraChange=!0,this._observerGroundOffsetRenderSpace=0,this._effectiveObserverElevationMode="absolute-height",this._observerFeatureId=null,this._updatingHandles=new O,this._frameTask=U,this._computationHandles=new r,this._externalObserverUpdate=!0}initialize(){const e=this.view.resourceController?.scheduler;this._frameTask=e?e.registerTask(z.LINE_OF_SIGHT_TOOL):U,this._intersector=new x({view:this.view}),this.addHandles([this._connectObserver(),this._connectComputations(),this._connectTargets()])}destroy(){this._computationHandles.destroy(),this._computations.removeAll(),this._updatingHandles.destroy()}get updating(){return this._frameTask.updating||this._updatingHandles.updating}get priority(){return this._frameTask.priority}set priority(e){this._frameTask.priority=e}get _computations(){return this.analysisViewData.computations}get _elevationAlignedObserverPositionRenderSpace(){return this.analysisViewData.observerEngineLocation}set _elevationAlignedObserverPositionRenderSpace(e){this.analysisViewData.observerEngineLocation=e}get _screenPixelSize(){return this.view.state.camera.computeScreenPixelSizeAt(this._elevationAlignedObserverPositionRenderSpace)}_computeResult(e){const t=e.computation,{inputPoints:o,computationResult:n}=t,{observerAdjusted:i,targetAdjusted:r}=o,{start:s,end:a}=n;m(s,i),m(a,r);this._canCompute(t)?this._computeIntersection(e):M(e),t.notifyResultChanged(),this.emit("result-changed",{target:e.computation.target,result:t.result})}_adjustStartEndPositions(e){const{view:o}=this,{inputPoints:n}=e,{observer:i,target:r,observerAdjusted:s,targetAdjusted:a}=n;m(s,i),m(a,r),t(o,this._intersector.intersector,n);const{observerSurfaceNormal:l,targetSurfaceNormal:u}=n,c=this._screenPixelSize,d=Z;null!=l?m(d,l):v(d,a,s);const p=c;f(d,d),_(d,d,Math.min(p,1)),b(s,s,d),null!=u?m(d,u):v(d,s,a);const g=o.state.camera.computeScreenPixelSizeAt(a);f(d,d),_(d,d,Math.min(g,1)),b(a,a,d)}_computeIntersection({computation:e,interpolationInfo:t}){const{view:o}=this,{sceneIntersectionHelper:n,renderCoordsHelper:i}=o;if(null==n)return;const r=this._intersector.intersector,{computationResult:s,inputPoints:a}=e,{observer:l,target:u}=a,{start:c,end:d}=s,p=H(c,d,q);r.options.store=0,n.intersectToolIntersectorRay(p,r);const g=r.results.min,h=s.intersection,v=Z;let f=!0;if(null!=g&&g.getIntersectionPoint(h)){m(t.originalIntersection,h),m(t.originalObserver,c),m(t.originalTarget,d),i.fromRenderCoords(h,v,o.spatialReference);const e=1-y(d,u)/y(c,u);f=y(l,h)>=e*y(l,u)}const _=new P(v,o.spatialReference);{const{result:t,target:n}=e;null!=t?(t.target=n,t.intersectedGraphic=f?null:G(g,o),t.intersectedLocation=f?null:_,t.visible=f):e.result=new V({target:n,elevationAlignedTargetLocation:e.elevationAlignedTargetLocation,intersectedGraphic:f?null:G(g,o),intersectedLocation:f?null:_,visible:f})}s.isValid=a.isValid=!0,s.isTargetVisible=f}_canCompute(e){const t=this.analysisViewData.elevationAlignedObserver,o=this.view.frustum;if(null==t||null==e.elevationAlignedTargetLocation||null==o)return!1;const{observerAdjusted:n,targetAdjusted:i}=e.inputPoints,r=o.intersectsPoint(n),s=o.intersectsPoint(i);return r&&s}_onObserverPositionChange(e,t,n,i,r){if(this._externalObserverUpdate=r,null==e)return this.analysisViewData.elevationAlignedObserver=null,void(this._observerFeatureId=null);if(null==t)return D(this.analysis,e.spatialReference,l.getLogger(this)),void(this.analysisViewData.elevationAlignedObserver=null);const s=k(t,n),{absoluteZ:a,elevation:u}=L(t.x,t.y,t.z,this.view.spatialReference,this.view,s),c=t.clone();c.z=a,this._effectiveObserverElevationMode=s.mode,this.analysisViewData.elevationAlignedObserver=c;const d=T();this.view.renderCoordsHelper.toRenderCoords(c,d),this._elevationAlignedObserverPositionRenderSpace=d,this._observerGroundOffsetRenderSpace=a-u,this._observerFeatureId=o(i),this.priority=z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_onObserverRenderSpacePositionChangeForComputation(e,t,o,n,i){const{inputPoints:r}=e;switch(m(r.observer,t),r.observerFeatureId=i,r.observerSurfaceNormal=null,n){case"on-the-ground":case"relative-to-ground":{const e=this._intersector.updateFromGroundIntersection(r.observer,o,r.observer);null==r.observerFeatureId&&(r.observerSurfaceNormal=e)}}this._adjustStartEndPositions(e),e.notifyInputPointsChanged(),this.priority=z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_onTargetPositionChange(e,t,n,i,r,s=!0){const a=e.inputPoints;if(s&&(a.isValid=!1),null==n)return null!=t&&D(this.analysis,t.spatialReference,l.getLogger(this)),e.elevationAlignedTargetLocation=null,void e.notifyInputPointsChanged();const u=k(n,i),{absoluteZ:c,elevation:d}=L(n.x,n.y,n.z,this.view.spatialReference,this.view,u),p=n.clone();switch(p.z=c,e.elevationAlignedTargetLocation=p,this.view.renderCoordsHelper.toRenderCoords(e.elevationAlignedTargetLocation,a.target),a.targetFeatureId=o(r),a.targetSurfaceNormal=null,u.mode){case"on-the-ground":case"relative-to-ground":{const e=this._intersector.updateFromGroundIntersection(a.target,c-d,a.target);null==a.targetFeatureId&&(a.targetSurfaceNormal=e)}}this._adjustStartEndPositions(e),e.notifyInputPointsChanged(),this.priority=z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_connectComputationToTarget(e){return s([this._updatingHandles.add(()=>({computation:e,targetPosition:e.target.position,targetElevationInfo:e.target.elevationInfo,targetFeatureInfo:e.target.feature,projectedTargetPosition:I(e.target.position,this.view.spatialReference)}),({computation:e,targetPosition:t,targetElevationInfo:o,targetFeatureInfo:n,projectedTargetPosition:i})=>{null==i.pending?this._onTargetPositionChange(e,t,i.geometry,o,n):this._updatingHandles.addPromise(i.pending)},d)])}_connectComputationToObserver(e){return this._updatingHandles.add(()=>({computation:e,observer:this.analysisViewData.elevationAlignedObserver}),({computation:e})=>{this._externalObserverUpdate&&(e.inputPoints.isValid=!1,e.notifyInputPointsChanged())},d)}_connectComputationToRenderSpaceObserver(e){return this._updatingHandles.add(()=>({computation:e,observer:this._elevationAlignedObserverPositionRenderSpace,observerGroundOffset:this._observerGroundOffsetRenderSpace,observerElevationMode:this._effectiveObserverElevationMode,observerFeatureId:this._observerFeatureId}),({computation:e,observer:t,observerGroundOffset:o,observerElevationMode:n,observerFeatureId:i})=>{this._onObserverRenderSpacePositionChangeForComputation(e,t,o,n,i)},d)}_connectComputationToCamera(e){return this._updatingHandles.add(()=>({camera:this.view.state.camera,isDirty:this._isCameraDirty}),({isDirty:t})=>{!this.updateOnCameraChange||e.inputPoints.isValid&&!t||e.notifyInputPointsChanged()})}_connectComputationToSlicePlane(e){return this._updatingHandles.add(()=>this.view.slice.plane,()=>{e.inputPoints.isValid=!1,e.notifyInputPointsChanged()})}_connectComputationToElevation(e){const t=(o,n)=>{const i=this.analysis.observer,r=e.target;let s=null,a=null,l=null,u=null,c=null,d=null;if(null!=i?.position){const e=I(i.position,this.view.spatialReference);if(null!=e.pending)return this._updatingHandles.addPromise(e.pending),void e.pending.finally(()=>t(o,n));s=e.geometry,a=i.elevationInfo,l=i.feature}if(null!=r.position){const e=I(r.position,this.view.spatialReference);if(null!=e.pending)return this._updatingHandles.addPromise(e.pending),void e.pending.finally(()=>t(o,n));u=e.geometry,c=r.elevationInfo,d=r.feature}null==s&&null==u||(S(o,n,J,this.view.spatialReference),null!=s&&R(J,s)&&this._onObserverPositionChange(null!=i?i.position:null,s,a,l,!1),null!=u&&R(J,u)&&this._onTargetPositionChange(e,r.position,u,c,d,!1),null!=s&&null!=u&&A(J,s,u)&&e.notifyInputPointsChanged())};return this.view.elevationProvider.on("elevation-change",({extent:e,spatialReference:o})=>t(e,o))}_connectComputationToTask(e){let t=null;const o={computation:e,interpolationInfo:{originalIntersection:T(),originalObserver:T(),originalTarget:T()}};return s([this._updatingHandles.add(()=>e.inputPoints,()=>{t=u(t),t=n(async e=>{await c(this._frameTask.schedule(()=>this._computeResult(o),e))})},{initial:!0,equals:()=>!1}),a(()=>t=u(t))])}_connectComputationToContent(e){return p(()=>this.view.pointsOfInterest?.contentGeometryUpdates.events,"request-update",t=>{const o=t?.renderBounds,{observerAdjusted:n,targetAdjusted:i}=e.inputPoints;(null==o||j(o,n,i))&&(e.inputPoints.isValid=!1,e.notifyInputPointsChanged())})}_connectComputation(e){const t=this._computationHandles;t.has(e)||t.add([this._connectComputationToTarget(e),this._connectComputationToObserver(e),this._connectComputationToRenderSpaceObserver(e),this._connectComputationToCamera(e),this._connectComputationToSlicePlane(e),this._connectComputationToElevation(e),this._connectComputationToTask(e),this._connectComputationToContent(e)],e)}_disconnectComputation(e){this._computationHandles.remove(e)}_onComputationCollectionChange({added:e,removed:t}){for(const o of t)this._disconnectComputation(o);for(const o of e)this._connectComputation(o)}_onTargetCollectionChange({added:e,removed:t}){for(const o of t)this._removeTarget(o);for(const o of e)this._addTarget(o)}_onCursorTargetChange(e,t){null!=t&&this._removeTarget(t),null!=e&&this._addTarget(e)}_addTarget(e){this._computations.some(t=>t.target===e)||this._computations.add(new F({target:e}))}_removeTarget(e){const t=this._computations.findIndex(t=>t.target===e);this._computations.removeAt(t)}_connectObserver(){return s([this._updatingHandles.add(()=>({observerPosition:null!=this.analysis.observer?this.analysis.observer.position:null,projectedObserverPosition:I(null!=this.analysis.observer?this.analysis.observer.position:null,this.view.spatialReference),observerElevationInfo:null!=this.analysis.observer?this.analysis.observer.elevationInfo:null,observerFeatureInfo:null!=this.analysis.observer?this.analysis.observer.feature:null}),({observerPosition:e,projectedObserverPosition:t,observerElevationInfo:o,observerFeatureInfo:n})=>{null==t.pending?this._onObserverPositionChange(e,t.geometry,o,n,!0):this._updatingHandles.addPromise(t.pending)},d)])}_connectComputations(){return this._updatingHandles.addOnCollectionChange(()=>this._computations,e=>this._onComputationCollectionChange(e),{initial:!0,final:!0})}_connectTargets(){return s([this._updatingHandles.addOnCollectionChange(()=>this.analysis.targets,e=>this._onTargetCollectionChange(e),{initial:!0,final:!0}),this._updatingHandles.add(()=>this.analysisViewData.cursorTarget,(e,t)=>{this._onCursorTargetChange(e,t)})])}get _isCameraDirty(){const e=this.analysisViewData.elevationAlignedObserver,{view:t}=this,{renderCoordsHelper:o}=t;if(null==e||null==o)return!1;const n=Z;o.toRenderCoords(e,n);const i=t.state.camera.computeScreenPixelSizeAt(n);return Math.abs((i-this._screenPixelSize)/this._screenPixelSize)>B}};function k(e,t){return e.hasZ?t??{mode:"absolute-height",offset:0}:{mode:"on-the-ground",offset:0}}function M({computation:e,interpolationInfo:t}){const{computationResult:o,inputPoints:n}=e,{start:i,end:r,intersection:s}=o,{originalIntersection:a,originalObserver:l,originalTarget:u}=t;if(m(s,a),n.isValid){const e=Z,t=y(l,a)/y(l,u);C(e,i,l),_(e,e,1-t),b(s,s,e),C(e,r,u),_(e,e,t),b(s,s,e),o.isValid=!0}else e.result=null,o.isValid=!1,o.isTargetVisible=!1}e([g({constructOnly:!0})],N.prototype,"analysis",void 0),e([g({constructOnly:!0})],N.prototype,"analysisViewData",void 0),e([g({constructOnly:!0})],N.prototype,"view",void 0),e([g()],N.prototype,"updating",null),e([g()],N.prototype,"priority",null),e([g()],N.prototype,"updateOnCameraChange",void 0),e([g()],N.prototype,"_computations",null),e([g()],N.prototype,"_elevationAlignedObserverPositionRenderSpace",null),e([g()],N.prototype,"_observerGroundOffsetRenderSpace",void 0),e([g()],N.prototype,"_effectiveObserverElevationMode",void 0),e([g()],N.prototype,"_observerFeatureId",void 0),e([g()],N.prototype,"_screenPixelSize",null),e([g({readOnly:!0})],N.prototype,"_updatingHandles",void 0),e([g()],N.prototype,"_frameTask",void 0),e([g()],N.prototype,"_isCameraDirty",null),N=e([h("esri.views.3d.analysis.LineOfSight.LineOfSightController")],N);const B=.1,Z=T(),q=E(),J=w();export{N as LineOfSightController};
5
+ import{__decorate as e}from"tslib";import{updatePointsFromFeatureReference as t,getFeatureId as o}from"../../../../analysis/featureReferenceUtils.js";import{createTask as n}from"../../../../core/asyncUtils.js";import{EventedAccessor as i}from"../../../../core/Evented.js";import r from"../../../../core/Handles.js";import{handlesGroup as s,makeHandle as a}from"../../../../core/handleUtils.js";import l from"../../../../core/Logger.js";import{abortMaybe as u}from"../../../../core/maybe.js";import{ignoreAbortErrors as c}from"../../../../core/promiseUtils.js";import{initial as d,on as p}from"../../../../core/reactiveUtils.js";import{property as g}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/RandomLCG.js";import{subclass as h}from"../../../../core/accessorSupport/decorators/subclass.js";import{d as m,e as v,n as f,h as _,g as b,F as y,a as C}from"../../../../chunks/vec32.js";import{create as T}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as O}from"../../../../core/support/UpdatingHandles.js";import P from"../../../../geometry/Point.js";import{projectOrLoad as I}from"../../../../geometry/projectionUtils.js";import{projectBoundingRect as S}from"../../../../geometry/projection/projectBoundingRect.js";import{intersectsSegment as j}from"../../../../geometry/support/aaBoundingBox.js";import{empty as w,containsPointObject as R,intersectsSegment as A}from"../../../../geometry/support/aaBoundingRect.js";import{fromPoints as H,create as E}from"../../../../geometry/support/ray.js";import{zValueInAbsoluteHeightMode as L}from"../../../../support/elevationInfoUtils.js";import V from"../LineOfSightAnalysisResult.js";import{LineOfSightComputation as F}from"./LineOfSightComputation.js";import{LineOfSightRayIntersector as x}from"./LineOfSightRayIntersector.js";import{logFailedGeometryProjectionError as D}from"../support/projectionUtils.js";import{toGraphic as G}from"../../webgl-engine/lib/intersectorUtilsConversions.js";import{ImmediateTask as U,TaskPriority as z}from"../../../support/Scheduler.js";let N=class extends i{constructor(e){super(e),this.updateOnCameraChange=!0,this._observerGroundOffsetRenderSpace=0,this._effectiveObserverElevationMode="absolute-height",this._observerFeatureId=null,this._updatingHandles=new O,this._frameTask=U,this._computationHandles=new r,this._externalObserverUpdate=!0}initialize(){const e=this.view.resourceController?.scheduler;this._frameTask=e?e.registerTask(z.LINE_OF_SIGHT_TOOL):U,this._intersector=new x({view:this.view}),this.addHandles([this._connectObserver(),this._connectComputations(),this._connectTargets()])}destroy(){this._computationHandles.destroy(),this._computations.removeAll(),this._updatingHandles.destroy()}get updating(){return this._frameTask.updating||this._updatingHandles.updating}get priority(){return this._frameTask.priority}set priority(e){this._frameTask.priority=e}get _computations(){return this.analysisViewData.computations}get _elevationAlignedObserverPositionRenderSpace(){return this.analysisViewData.observerEngineLocation}set _elevationAlignedObserverPositionRenderSpace(e){this.analysisViewData.observerEngineLocation=e}get _screenPixelSize(){return this.view.state.camera.computeScreenPixelSizeAt(this._elevationAlignedObserverPositionRenderSpace)}_computeResult(e){const t=e.computation,{inputPoints:o,computationResult:n}=t,{observerAdjusted:i,targetAdjusted:r}=o,{start:s,end:a}=n;m(s,i),m(a,r);this._canCompute(t)?this._computeIntersection(e):M(e),t.notifyResultChanged(),this.emit("result-changed",{target:e.computation.target,result:t.result})}_adjustStartEndPositions(e){const{view:o}=this,{inputPoints:n}=e,{observer:i,target:r,observerAdjusted:s,targetAdjusted:a}=n;m(s,i),m(a,r),t(o,this._intersector.intersector,n);const{observerSurfaceNormal:l,targetSurfaceNormal:u}=n,c=this._screenPixelSize,d=Z;null!=l?m(d,l):v(d,a,s);const p=c;f(d,d),_(d,d,Math.min(p,1)),b(s,s,d),null!=u?m(d,u):v(d,s,a);const g=o.state.camera.computeScreenPixelSizeAt(a);f(d,d),_(d,d,Math.min(g,1)),b(a,a,d)}_computeIntersection({computation:e,interpolationInfo:t}){const{view:o}=this,{sceneIntersectionHelper:n,renderCoordsHelper:i}=o;if(null==n)return;const r=this._intersector.intersector,{computationResult:s,inputPoints:a}=e,{observer:l,target:u}=a,{start:c,end:d}=s,p=H(c,d,q);r.options.store=0,n.intersectToolIntersectorRay(p,r);const g=r.results.min,h=s.intersection,v=Z;let f=!0;if(null!=g&&g.getIntersectionPoint(h)){m(t.originalIntersection,h),m(t.originalObserver,c),m(t.originalTarget,d),i.fromRenderCoords(h,v,o.spatialReference);const e=1-y(d,u)/y(c,u);f=y(l,h)>=e*y(l,u)}const _=new P(v,o.spatialReference);{const{result:t,target:n}=e;null!=t?(t.target=n,t.intersectedGraphic=f?null:G(g,o),t.intersectedLocation=f?null:_,t.visible=f):e.result=new V({target:n,elevationAlignedTargetLocation:e.elevationAlignedTargetLocation,intersectedGraphic:f?null:G(g,o),intersectedLocation:f?null:_,visible:f})}s.isValid=a.isValid=!0,s.isTargetVisible=f}_canCompute(e){const t=this.analysisViewData.elevationAlignedObserver,o=this.view.frustum;if(null==t||null==e.elevationAlignedTargetLocation||null==o)return!1;const{observerAdjusted:n,targetAdjusted:i}=e.inputPoints,r=o.intersectsPoint(n),s=o.intersectsPoint(i);return r&&s}_onObserverPositionChange(e,t,n,i,r){if(this._externalObserverUpdate=r,null==e)return this.analysisViewData.elevationAlignedObserver=null,void(this._observerFeatureId=null);if(null==t)return D(this.analysis,e.spatialReference,l.getLogger(this)),void(this.analysisViewData.elevationAlignedObserver=null);const s=k(t,n),{absoluteZ:a,elevation:u}=L(t.x,t.y,t.z,this.view.spatialReference,this.view,s),c=t.clone();c.z=a,this._effectiveObserverElevationMode=s.mode,this.analysisViewData.elevationAlignedObserver=c;const d=T();this.view.renderCoordsHelper.toRenderCoords(c,d),this._elevationAlignedObserverPositionRenderSpace=d,this._observerGroundOffsetRenderSpace=a-u,this._observerFeatureId=o(i),this.priority=z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_onObserverRenderSpacePositionChangeForComputation(e,t,o,n,i){const{inputPoints:r}=e;switch(m(r.observer,t),r.observerFeatureId=i,r.observerSurfaceNormal=null,n){case"on-the-ground":case"relative-to-ground":{const e=this._intersector.updateFromGroundIntersection(r.observer,o,r.observer);null==r.observerFeatureId&&(r.observerSurfaceNormal=e)}}this._adjustStartEndPositions(e),e.notifyInputPointsChanged(),this.priority=z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_onTargetPositionChange(e,t,n,i,r,s=!0){const a=e.inputPoints;if(s&&(a.isValid=!1),null==n)return null!=t&&D(this.analysis,t.spatialReference,l.getLogger(this)),e.elevationAlignedTargetLocation=null,void e.notifyInputPointsChanged();const u=k(n,i),{absoluteZ:c,elevation:d}=L(n.x,n.y,n.z,this.view.spatialReference,this.view,u),p=n.clone();switch(p.z=c,e.elevationAlignedTargetLocation=p,this.view.renderCoordsHelper.toRenderCoords(e.elevationAlignedTargetLocation,a.target),a.targetFeatureId=o(r),a.targetSurfaceNormal=null,u.mode){case"on-the-ground":case"relative-to-ground":{const e=this._intersector.updateFromGroundIntersection(a.target,c-d,a.target);null==a.targetFeatureId&&(a.targetSurfaceNormal=e)}}this._adjustStartEndPositions(e),e.notifyInputPointsChanged(),this.priority=z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_connectComputationToTarget(e){return s([this._updatingHandles.add(()=>({computation:e,targetPosition:e.target.position,targetElevationInfo:e.target.elevationInfo,targetFeatureInfo:e.target.feature,projectedTargetPosition:I(e.target.position,this.view.spatialReference)}),({computation:e,targetPosition:t,targetElevationInfo:o,targetFeatureInfo:n,projectedTargetPosition:i})=>{null==i.pending?this._onTargetPositionChange(e,t,i.geometry,o,n):this._updatingHandles.addPromise(i.pending)},d)])}_connectComputationToObserver(e){return this._updatingHandles.add(()=>({computation:e,observer:this.analysisViewData.elevationAlignedObserver}),({computation:e})=>{this._externalObserverUpdate&&(e.inputPoints.isValid=!1,e.notifyInputPointsChanged())},d)}_connectComputationToRenderSpaceObserver(e){return this._updatingHandles.add(()=>({computation:e,observer:this._elevationAlignedObserverPositionRenderSpace,observerGroundOffset:this._observerGroundOffsetRenderSpace,observerElevationMode:this._effectiveObserverElevationMode,observerFeatureId:this._observerFeatureId}),({computation:e,observer:t,observerGroundOffset:o,observerElevationMode:n,observerFeatureId:i})=>{this._onObserverRenderSpacePositionChangeForComputation(e,t,o,n,i)},d)}_connectComputationToCamera(e){return this._updatingHandles.add(()=>({camera:this.view.state.camera,isDirty:this._isCameraDirty}),({isDirty:t})=>{!this.updateOnCameraChange||e.inputPoints.isValid&&!t||e.notifyInputPointsChanged()})}_connectComputationToSlicePlane(e){return this._updatingHandles.add(()=>this.view.slice.plane,()=>{e.inputPoints.isValid=!1,e.notifyInputPointsChanged()})}_connectComputationToElevation(e){const t=(o,n)=>{const i=this.analysis.observer,r=e.target;let s=null,a=null,l=null,u=null,c=null,d=null;if(null!=i?.position){const e=I(i.position,this.view.spatialReference);if(null!=e.pending)return this._updatingHandles.addPromise(e.pending),void e.pending.finally(()=>t(o,n));s=e.geometry,a=i.elevationInfo,l=i.feature}if(null!=r.position){const e=I(r.position,this.view.spatialReference);if(null!=e.pending)return this._updatingHandles.addPromise(e.pending),void e.pending.finally(()=>t(o,n));u=e.geometry,c=r.elevationInfo,d=r.feature}null==s&&null==u||(S(o,n,J,this.view.spatialReference),null!=s&&R(J,s)&&this._onObserverPositionChange(null!=i?i.position:null,s,a,l,!1),null!=u&&R(J,u)&&this._onTargetPositionChange(e,r.position,u,c,d,!1),null!=s&&null!=u&&A(J,s,u)&&e.notifyInputPointsChanged())};return this.view.elevationProvider.on("elevation-change",({extent:e,spatialReference:o})=>t(e,o))}_connectComputationToTask(e){let t=null;const o={computation:e,interpolationInfo:{originalIntersection:T(),originalObserver:T(),originalTarget:T()}};return s([this._updatingHandles.add(()=>e.inputPoints,()=>{t=u(t),t=n(async e=>{await c(this._frameTask.schedule(()=>this._computeResult(o),e))})},{initial:!0,equals:()=>!1}),a(()=>t=u(t))])}_connectComputationToContent(e){return p(()=>this.view.pointsOfInterest?.contentGeometryUpdates.events,"request-update",t=>{const o=t?.renderBounds,{observerAdjusted:n,targetAdjusted:i}=e.inputPoints;(null==o||j(o,n,i))&&(e.inputPoints.isValid=!1,e.notifyInputPointsChanged())})}_connectComputation(e){const t=this._computationHandles;t.has(e)||t.add([this._connectComputationToTarget(e),this._connectComputationToObserver(e),this._connectComputationToRenderSpaceObserver(e),this._connectComputationToCamera(e),this._connectComputationToSlicePlane(e),this._connectComputationToElevation(e),this._connectComputationToTask(e),this._connectComputationToContent(e)],e)}_disconnectComputation(e){this._computationHandles.remove(e)}_onComputationCollectionChange({added:e,removed:t}){for(const o of t)this._disconnectComputation(o);for(const o of e)this._connectComputation(o)}_onTargetCollectionChange({added:e,removed:t}){for(const o of t)this._removeTarget(o);for(const o of e)this._addTarget(o)}_onCursorTargetChange(e,t){null!=t&&this._removeTarget(t),null!=e&&this._addTarget(e)}_addTarget(e){this._computations.some(t=>t.target===e)||this._computations.add(new F({target:e}))}_removeTarget(e){const t=this._computations.findIndex(t=>t.target===e);this._computations.removeAt(t)}_connectObserver(){return s([this._updatingHandles.add(()=>({observerPosition:null!=this.analysis.observer?this.analysis.observer.position:null,projectedObserverPosition:I(null!=this.analysis.observer?this.analysis.observer.position:null,this.view.spatialReference),observerElevationInfo:null!=this.analysis.observer?this.analysis.observer.elevationInfo:null,observerFeatureInfo:null!=this.analysis.observer?this.analysis.observer.feature:null}),({observerPosition:e,projectedObserverPosition:t,observerElevationInfo:o,observerFeatureInfo:n})=>{null==t.pending?this._onObserverPositionChange(e,t.geometry,o,n,!0):this._updatingHandles.addPromise(t.pending)},d)])}_connectComputations(){return this._updatingHandles.addOnCollectionChange(()=>this._computations,e=>this._onComputationCollectionChange(e),{initial:!0,final:!0})}_connectTargets(){return s([this._updatingHandles.addOnCollectionChange(()=>this.analysis.targets,e=>this._onTargetCollectionChange(e),{initial:!0,final:!0}),this._updatingHandles.add(()=>this.analysisViewData.cursorTarget,(e,t)=>{this._onCursorTargetChange(e,t)})])}get _isCameraDirty(){const e=this.analysisViewData.elevationAlignedObserver,{view:t}=this,{renderCoordsHelper:o}=t;if(null==e||null==o)return!1;const n=Z;o.toRenderCoords(e,n);const i=t.state.camera.computeScreenPixelSizeAt(n);return Math.abs((i-this._screenPixelSize)/this._screenPixelSize)>B}};function k(e,t){return e.hasZ?t??{mode:"absolute-height",offset:0}:{mode:"on-the-ground",offset:0}}function M({computation:e,interpolationInfo:t}){const{computationResult:o,inputPoints:n}=e,{start:i,end:r,intersection:s}=o,{originalIntersection:a,originalObserver:l,originalTarget:u}=t;if(m(s,a),n.isValid){const e=Z,t=y(l,a)/y(l,u);C(e,i,l),_(e,e,1-t),b(s,s,e),C(e,r,u),_(e,e,t),b(s,s,e),o.isValid=!0}else e.result=null,o.isValid=!1,o.isTargetVisible=!1}e([g({constructOnly:!0})],N.prototype,"analysis",void 0),e([g({constructOnly:!0})],N.prototype,"analysisViewData",void 0),e([g({constructOnly:!0})],N.prototype,"view",void 0),e([g()],N.prototype,"updating",null),e([g()],N.prototype,"priority",null),e([g()],N.prototype,"updateOnCameraChange",void 0),e([g()],N.prototype,"_computations",null),e([g()],N.prototype,"_elevationAlignedObserverPositionRenderSpace",null),e([g()],N.prototype,"_observerGroundOffsetRenderSpace",void 0),e([g()],N.prototype,"_effectiveObserverElevationMode",void 0),e([g()],N.prototype,"_observerFeatureId",void 0),e([g()],N.prototype,"_screenPixelSize",null),e([g({readOnly:!0})],N.prototype,"_updatingHandles",void 0),e([g()],N.prototype,"_frameTask",void 0),e([g()],N.prototype,"_isCameraDirty",null),N=e([h("esri.views.3d.analysis.LineOfSight.LineOfSightController")],N);const B=.1,Z=T(),q=E(),J=w();export{N as LineOfSightController};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{screenPointObjectToArray as r}from"../../../../core/screenUtils.js";import{property as o}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as n}from"../../../../core/accessorSupport/decorators/subclass.js";import{c as i,n as s,g as a,f as c}from"../../../../chunks/vec32.js";import{create as l,clone as m}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import p from"../../../../geometry/Point.js";import{create as u,copy as d,fromPoints as f}from"../../../../geometry/support/ray.js";import{sv2d as g}from"../../../../geometry/support/vectorStacks.js";import{LineOfSightIntersectionResult as y,lineOfSightIntersectionContextGround as w,LineOfSightIntersectionContextGraphic as h}from"./LineOfSightIntersectionResult.js";import{fromScreen as j}from"../../support/geometryUtils/ray.js";import{isTerrainIntersectorResult as v,isIntegratedMeshIntersectorResult as I}from"../../terrain/Intersector.js";import{Intersector as P}from"../../webgl-engine/lib/Intersector.js";import{toGraphic as b}from"../../webgl-engine/lib/intersectorUtilsConversions.js";let x=class extends t{constructor(e){super(e),this._terrainIntersectionOptionsLayerUids=new Set(["terrain"])}initialize(){this.intersector=new P(this.view.state.viewingMode),this.intersector.options.hud=!1,this.intersector.options.store=0}getScreenPointIntersection(e){const t=r(e,g.get()),o=j(this.view.state.camera,t,O);return this._getRayIntersection(o)}_getRayIntersection(e,t){const{view:r,intersector:o}=this;if(null==e||null==r.sceneIntersectionHelper)return null;o.options.store=0,r.sceneIntersectionHelper.intersectToolIntersectorRay(e,o,t);const n=o.results.min;if(null==n.target)return null;const i=l();if(!n.getIntersectionPoint(i))return null;if(null!=t?.maxDistance&&!n.withinDistance(t.maxDistance))return null;const s=r.renderCoordsHelper.fromRenderCoords(i,new p({spatialReference:r.spatialReference})),a=m(n.normal);if(v(n))return new y({context:w,id:n.target.lij.slice(),mapPoint:s,renderPoint:i,normal:a,ray:d(e)});if(I(r,n))return new y({context:w,id:`${n.target.layerViewUid}`,mapPoint:s,renderPoint:i,normal:a,ray:d(e)});const c=b(n,r);if(null!=c){const{layer:t}=c,r=c.getObjectId()??c.uid;return new y({context:new h(c),id:`${t?.uid}/${r}`,mapPoint:s,renderPoint:i,normal:a,ray:d(e)})}const u="layerViewUid"in n.target?`${n.target.layerViewUid}`:"";return new y({context:null,id:u,mapPoint:s,renderPoint:i,normal:a,ray:d(e)})}updateFromGroundIntersection(e,t,r){const o=R,n=U,l=S,p=L;i(n,e),this.view.renderCoordsHelper.worldUpAtPosition(n,l),s(l,l);const u=this.view.basemapTerrain.visibleElevationBounds,d=(t>=0?1:-1)*((u?Math.abs(u.max-u.min):100)+Math.abs(t));a(p,l,d),c(o,n,p),f(o,n,O);const g=this._getRayIntersection(O,{include:this._terrainIntersectionOptionsLayerUids,maxDistance:d});if(null!=g){const e=L;return a(e,l,t),c(r,g.renderPoint,e),m(g.normal)}return i(r,e),null}};e([o()],x.prototype,"view",void 0),e([o()],x.prototype,"intersector",void 0),x=e([n("esri.views.3d.analysis.LineOfSight.LineOfSightRayIntersector")],x);const R=l(),U=l(),S=l(),L=l(),O=u();export{x as LineOfSightRayIntersector};
5
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{screenPointObjectToArray as r}from"../../../../core/screenUtils.js";import{property as o}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as n}from"../../../../core/accessorSupport/decorators/subclass.js";import{d as i,n as s,h as a,g as c}from"../../../../chunks/vec32.js";import{create as l,clone as m}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import p from"../../../../geometry/Point.js";import{create as u,copy as d,fromPoints as f}from"../../../../geometry/support/ray.js";import{sv2d as g}from"../../../../geometry/support/vectorStacks.js";import{LineOfSightIntersectionResult as y,lineOfSightIntersectionContextGround as w,LineOfSightIntersectionContextGraphic as h}from"./LineOfSightIntersectionResult.js";import{fromScreen as j}from"../../support/geometryUtils/ray.js";import{isTerrainIntersectorResult as v,isIntegratedMeshIntersectorResult as I}from"../../terrain/Intersector.js";import{Intersector as P}from"../../webgl-engine/lib/Intersector.js";import{toGraphic as b}from"../../webgl-engine/lib/intersectorUtilsConversions.js";let x=class extends t{constructor(e){super(e),this._terrainIntersectionOptionsLayerUids=new Set(["terrain"])}initialize(){this.intersector=new P(this.view.state.viewingMode),this.intersector.options.hud=!1,this.intersector.options.store=0}getScreenPointIntersection(e){const t=r(e,g.get()),o=j(this.view.state.camera,t,O);return this._getRayIntersection(o)}_getRayIntersection(e,t){const{view:r,intersector:o}=this;if(null==e||null==r.sceneIntersectionHelper)return null;o.options.store=0,r.sceneIntersectionHelper.intersectToolIntersectorRay(e,o,t);const n=o.results.min;if(null==n.target)return null;const i=l();if(!n.getIntersectionPoint(i))return null;if(null!=t?.maxDistance&&!n.withinDistance(t.maxDistance))return null;const s=r.renderCoordsHelper.fromRenderCoords(i,new p({spatialReference:r.spatialReference})),a=m(n.normal);if(v(n))return new y({context:w,id:n.target.lij.slice(),mapPoint:s,renderPoint:i,normal:a,ray:d(e)});if(I(r,n))return new y({context:w,id:`${n.target.layerViewUid}`,mapPoint:s,renderPoint:i,normal:a,ray:d(e)});const c=b(n,r);if(null!=c){const{layer:t}=c,r=c.getObjectId()??c.uid;return new y({context:new h(c),id:`${t?.uid}/${r}`,mapPoint:s,renderPoint:i,normal:a,ray:d(e)})}const u="layerViewUid"in n.target?`${n.target.layerViewUid}`:"";return new y({context:null,id:u,mapPoint:s,renderPoint:i,normal:a,ray:d(e)})}updateFromGroundIntersection(e,t,r){const o=R,n=U,l=S,p=L;i(n,e),this.view.renderCoordsHelper.worldUpAtPosition(n,l),s(l,l);const u=this.view.basemapTerrain.visibleElevationBounds,d=(t>=0?1:-1)*((u?Math.abs(u.max-u.min):100)+Math.abs(t));a(p,l,d),c(o,n,p),f(o,n,O);const g=this._getRayIntersection(O,{include:this._terrainIntersectionOptionsLayerUids,maxDistance:d});if(null!=g){const e=L;return a(e,l,t),c(r,g.renderPoint,e),m(g.normal)}return i(r,e),null}};e([o()],x.prototype,"view",void 0),e([o()],x.prototype,"intersector",void 0),x=e([n("esri.views.3d.analysis.LineOfSight.LineOfSightRayIntersector")],x);const R=l(),U=l(),S=l(),L=l(),O=u();export{x as LineOfSightRayIntersector};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as i}from"tslib";import t from"../../../../Color.js";import e from"../../../../core/Accessor.js";import o from"../../../../core/Handles.js";import{makeHandle as n}from"../../../../core/handleUtils.js";import"../../../../core/has.js";import{destroyMaybe as s}from"../../../../core/maybe.js";import{initial as r}from"../../../../core/reactiveUtils.js";import{property as a}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as l}from"../../../../core/accessorSupport/decorators/subclass.js";import{create as c}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{d}from"../../../../chunks/vec32.js";import{create as u,fromArray as m}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as p}from"../../../../core/support/UpdatingHandles.js";import{lineOfSightConfiguration as h}from"./LineOfSightConfiguration.js";import{LineOfSightVisualElement as v}from"./LineOfSightVisualElement.js";import{LineVisualElement as g}from"../../interactive/visualElements/LineVisualElement.js";import{PointVisualElement as f}from"../../interactive/visualElements/PointVisualElement.js";let b=class extends e{constructor(i){super(i),this._lineOfSightVisualElements=new Array,this._computationHandles=new o,this._updatingHandles=new p}initialize(){this.addHandles(this._connectComputations()),this._createObserverVisualization()}destroy(){this._updatingHandles=s(this._updatingHandles),this._computationHandles=s(this._computationHandles),this._observerVisualElement=s(this._observerVisualElement)}get visible(){return this.analysisViewData.visible}get updating(){return this._updatingHandles.updating}get interactiveAndEditable(){return this.analysisViewData.interactive&&this.analysisViewData.editable}get test(){}_createLineOfSightVisualization(){const i=h,e=this.view,o=this.isDecoration,n={view:e,attached:!0,width:i.outerWidth,innerWidth:i.innerWidth,isDecoration:o},s=t.toUnitRGBA(i.visibleOuterColor),r=t.toUnitRGBA(i.visibleInnerColor),a=t.toUnitRGBA(i.occludedOuterColor),l=t.toUnitRGBA(i.occludedInnerColor),c=t.toUnitRGBA(i.undefinedOuterColor),d=t.toUnitRGBA(i.undefinedInnerColor),u=new g({...n,color:s,innerColor:r}),m=new g({...n,color:a,innerColor:l}),p=new g({...n,color:c,innerColor:d}),b=new f({view:e,attached:!0,...y,size:8,isDecoration:o}),_=new v(u,m,p,b);return this._lineOfSightVisualElements.push(_),_}_destroyLineOfSightVisualization(i){i.destroy(),this._lineOfSightVisualElements.splice(this._lineOfSightVisualElements.indexOf(i),1)}_updateLineOfSightVisualization(i,e,o){const n=h,{computationResult:s,inputPoints:r}=i,{start:a,end:l,intersection:c,isValid:u,isTargetVisible:p}=s,{observer:v}=r,g=V;g[12]=v[0],g[13]=v[1],g[14]=v[2];const f=d(_,a,v),b=d(C,l,v),y=d(O,c,v),{visibleLineVisualElement:A,occludedLineVisualElement:E,undefinedLineVisualElement:w,targetVisualElement:L}=e,S=null==this.analysisViewData.elevationAlignedObserver||null==i.elevationAlignedTargetLocation,j=this.visible&&!S;A.visible=j,E.visible=j,w.visible=j,L.visible=j,L.attached=!o.interactiveAndEditable,j&&(A.geometry=null,E.geometry=null,w.geometry=null,L.geometry=i.elevationAlignedTargetLocation,u?p?(A.geometry=[[m(f),m(b)]],A.transform=g,A.color=t.toUnitRGBA(n.visibleOuterColor),L.color=t.toUnitRGBA(n.visibleInnerColor)):(A.geometry=[[m(f),m(y)]],A.transform=g,A.color=t.toUnitRGBA(n.occludedOuterColor),E.geometry=[[m(y),m(b)]],E.transform=g,L.color=t.toUnitRGBA(n.occludedInnerColor)):(w.geometry=[[m(f),m(b)]],w.transform=g,L.color=t.toUnitRGBA(n.undefinedInnerColor)))}_getLineOfSightVisualizationDependencies(i){const{computationResult:t}=i,{occludedOuterColor:e,visibleOuterColor:o}=h;return{computationResult:t,occludedOuterColor:e,visibleOuterColor:o,visible:this.visible,interactiveAndEditable:this.interactiveAndEditable}}_connectComputation(i){const t=this._computationHandles;if(t.has(i))return;const e=this._createLineOfSightVisualization();t.add([this._updatingHandles.add(()=>this._getLineOfSightVisualizationDependencies(i),t=>this._updateLineOfSightVisualization(i,e,t),{initial:!0,equals:()=>!1}),n(()=>this._destroyLineOfSightVisualization(e))],i)}_disconnectComputation(i){this._computationHandles.remove(i)}_connectComputations(){return this._updatingHandles.addOnCollectionChange(()=>this.analysisViewData.computations,i=>this._onComputationsCollectionChange(i),{initial:!0,final:!0})}_onComputationsCollectionChange({added:i,removed:t}){for(const e of t)this._disconnectComputation(e);for(const e of i)this._connectComputation(e)}_createObserverVisualization(){const i=t.toUnitRGBA(h.visibleInnerColor),e=new f({view:this.view,color:i,...y,isDecoration:this.isDecoration});this._observerVisualElement=e,this.addHandles(this._updatingHandles.add(()=>({observer:this.analysisViewData.elevationAlignedObserver,interactiveAndEditable:this.interactiveAndEditable,visible:this.visible}),({observer:i,interactiveAndEditable:t,visible:o})=>{null!=i&&!t&&o?(e.geometry=i,this._observerVisualElement.attached=!0):e.attached=!1},r))}};i([a({constructOnly:!0})],b.prototype,"analysis",void 0),i([a({constructOnly:!0})],b.prototype,"analysisViewData",void 0),i([a({constructOnly:!0})],b.prototype,"view",void 0),i([a({readOnly:!0})],b.prototype,"visible",null),i([a({constructOnly:!0})],b.prototype,"isDecoration",void 0),i([a()],b.prototype,"updating",null),i([a()],b.prototype,"interactiveAndEditable",null),i([a()],b.prototype,"test",null),b=i([l("esri.views.3d.analysis.LineOfSight.LineOfSightVisualization")],b);const y={size:6,pixelSnappingEnabled:!1,primitive:"circle",elevationInfo:{mode:"absolute-height",offset:0},outlineSize:0},_=u(),C=u(),O=u(),V=c();export{b as LineOfSightVisualization};
5
+ import{__decorate as i}from"tslib";import t from"../../../../Color.js";import e from"../../../../core/Accessor.js";import o from"../../../../core/Handles.js";import{makeHandle as n}from"../../../../core/handleUtils.js";import"../../../../core/has.js";import{destroyMaybe as s}from"../../../../core/maybe.js";import{initial as r}from"../../../../core/reactiveUtils.js";import{property as a}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as l}from"../../../../core/accessorSupport/decorators/subclass.js";import{create as c}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{e as d}from"../../../../chunks/vec32.js";import{create as u,fromArray as m}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as p}from"../../../../core/support/UpdatingHandles.js";import{lineOfSightConfiguration as h}from"./LineOfSightConfiguration.js";import{LineOfSightVisualElement as v}from"./LineOfSightVisualElement.js";import{LineVisualElement as g}from"../../interactive/visualElements/LineVisualElement.js";import{PointVisualElement as f}from"../../interactive/visualElements/PointVisualElement.js";let b=class extends e{constructor(i){super(i),this._lineOfSightVisualElements=new Array,this._computationHandles=new o,this._updatingHandles=new p}initialize(){this.addHandles(this._connectComputations()),this._createObserverVisualization()}destroy(){this._updatingHandles=s(this._updatingHandles),this._computationHandles=s(this._computationHandles),this._observerVisualElement=s(this._observerVisualElement)}get visible(){return this.analysisViewData.visible}get updating(){return this._updatingHandles.updating}get interactiveAndEditable(){return this.analysisViewData.interactive&&this.analysisViewData.editable}get test(){}_createLineOfSightVisualization(){const i=h,e=this.view,o=this.isDecoration,n={view:e,attached:!0,width:i.outerWidth,innerWidth:i.innerWidth,isDecoration:o},s=t.toUnitRGBA(i.visibleOuterColor),r=t.toUnitRGBA(i.visibleInnerColor),a=t.toUnitRGBA(i.occludedOuterColor),l=t.toUnitRGBA(i.occludedInnerColor),c=t.toUnitRGBA(i.undefinedOuterColor),d=t.toUnitRGBA(i.undefinedInnerColor),u=new g({...n,color:s,innerColor:r}),m=new g({...n,color:a,innerColor:l}),p=new g({...n,color:c,innerColor:d}),b=new f({view:e,attached:!0,...y,size:8,isDecoration:o}),_=new v(u,m,p,b);return this._lineOfSightVisualElements.push(_),_}_destroyLineOfSightVisualization(i){i.destroy(),this._lineOfSightVisualElements.splice(this._lineOfSightVisualElements.indexOf(i),1)}_updateLineOfSightVisualization(i,e,o){const n=h,{computationResult:s,inputPoints:r}=i,{start:a,end:l,intersection:c,isValid:u,isTargetVisible:p}=s,{observer:v}=r,g=V;g[12]=v[0],g[13]=v[1],g[14]=v[2];const f=d(_,a,v),b=d(C,l,v),y=d(O,c,v),{visibleLineVisualElement:A,occludedLineVisualElement:E,undefinedLineVisualElement:w,targetVisualElement:L}=e,S=null==this.analysisViewData.elevationAlignedObserver||null==i.elevationAlignedTargetLocation,j=this.visible&&!S;A.visible=j,E.visible=j,w.visible=j,L.visible=j,L.attached=!o.interactiveAndEditable,j&&(A.geometry=null,E.geometry=null,w.geometry=null,L.geometry=i.elevationAlignedTargetLocation,u?p?(A.geometry=[[m(f),m(b)]],A.transform=g,A.color=t.toUnitRGBA(n.visibleOuterColor),L.color=t.toUnitRGBA(n.visibleInnerColor)):(A.geometry=[[m(f),m(y)]],A.transform=g,A.color=t.toUnitRGBA(n.occludedOuterColor),E.geometry=[[m(y),m(b)]],E.transform=g,L.color=t.toUnitRGBA(n.occludedInnerColor)):(w.geometry=[[m(f),m(b)]],w.transform=g,L.color=t.toUnitRGBA(n.undefinedInnerColor)))}_getLineOfSightVisualizationDependencies(i){const{computationResult:t}=i,{occludedOuterColor:e,visibleOuterColor:o}=h;return{computationResult:t,occludedOuterColor:e,visibleOuterColor:o,visible:this.visible,interactiveAndEditable:this.interactiveAndEditable}}_connectComputation(i){const t=this._computationHandles;if(t.has(i))return;const e=this._createLineOfSightVisualization();t.add([this._updatingHandles.add(()=>this._getLineOfSightVisualizationDependencies(i),t=>this._updateLineOfSightVisualization(i,e,t),{initial:!0,equals:()=>!1}),n(()=>this._destroyLineOfSightVisualization(e))],i)}_disconnectComputation(i){this._computationHandles.remove(i)}_connectComputations(){return this._updatingHandles.addOnCollectionChange(()=>this.analysisViewData.computations,i=>this._onComputationsCollectionChange(i),{initial:!0,final:!0})}_onComputationsCollectionChange({added:i,removed:t}){for(const e of t)this._disconnectComputation(e);for(const e of i)this._connectComputation(e)}_createObserverVisualization(){const i=t.toUnitRGBA(h.visibleInnerColor),e=new f({view:this.view,color:i,...y,isDecoration:this.isDecoration});this._observerVisualElement=e,this.addHandles(this._updatingHandles.add(()=>({observer:this.analysisViewData.elevationAlignedObserver,interactiveAndEditable:this.interactiveAndEditable,visible:this.visible}),({observer:i,interactiveAndEditable:t,visible:o})=>{null!=i&&!t&&o?(e.geometry=i,this._observerVisualElement.attached=!0):e.attached=!1},r))}};i([a({constructOnly:!0})],b.prototype,"analysis",void 0),i([a({constructOnly:!0})],b.prototype,"analysisViewData",void 0),i([a({constructOnly:!0})],b.prototype,"view",void 0),i([a({readOnly:!0})],b.prototype,"visible",null),i([a({constructOnly:!0})],b.prototype,"isDecoration",void 0),i([a()],b.prototype,"updating",null),i([a()],b.prototype,"interactiveAndEditable",null),i([a()],b.prototype,"test",null),b=i([l("esri.views.3d.analysis.LineOfSight.LineOfSightVisualization")],b);const y={size:6,pixelSnappingEnabled:!1,primitive:"circle",elevationInfo:{mode:"absolute-height",offset:0},outlineSize:0},_=u(),C=u(),O=u(),V=c();export{b as LineOfSightVisualization};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import t from"../../../../Color.js";import{getContrast as e}from"../../../../core/colorUtils.js";import{watch as o,initial as r}from"../../../../core/reactiveUtils.js";import{identity as a,translate as i,scale as s,fromQuat as n,multiply as c}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{rotationTo as m}from"../../../../core/libs/gl-matrix-2/math/quat.js";import{d as p,n as u,g as f,f as d,i as g}from"../../../../chunks/vec32.js";import{create as h,fromValues as b}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{sv3d as j,sm4d as M,sq4d as w}from"../../../../geometry/support/vectorStacks.js";import{shiftRestartOffsetDistance as v,shiftRestartTipRadius as O,shiftRestartTipLength as U,shiftRestartArrowOutlineWidth as y,shiftRestartArrowLength as D,shiftRestartTubeRadius as P,shiftRestartTubeFocusMultiplier as R,shiftRestartTipFocusMultiplier as x}from"./sliceToolConfig.js";import{DidPointerMoveRecentlyFlag as C,IsShiftEdgeOnScreenFlag as G}from"./sliceToolUtils.js";import{Manipulator3D as A}from"../../interactive/Manipulator3D.js";import{RenderObject as B}from"../../interactive/RenderObject.js";import{createPolylineGeometry as F,createConeGeometry as T,createPathExtrusionGeometry as k}from"../../webgl-engine/lib/GeometryUtil.js";import{ColorMaterial as H}from"../../webgl-engine/materials/ColorMaterial.js";import{RibbonLineMaterial as S}from"../../webgl-engine/materials/RibbonLineMaterial.js";class _ extends A{constructor(a,i){const s=new S({width:1,renderOccluded:4,isDecoration:!0},a.state.isGlobal),n=new H({cullFace:2,renderOccluded:16,isDecoration:!0}),c=new H({cullFace:2,renderOccluded:16,isDecoration:!0}),l=new H({cullFace:2,renderOccluded:16,isDecoration:!0}),m=new H({writeDepth:!1,cullFace:1,renderOccluded:2,isDecoration:!0});super({view:a,...q({offsetMode:i,tubeMaterial:n,tipMaterial:c,capMaterial:l,outlineMaterial:m,calloutMaterial:s})}),this._themeHandle=o(()=>a.effectiveTheme.accentColor,o=>{const r=e(o),a=t.toUnitRGBA(o),i=t.toUnitRGBA(r),p=t.toUnitRGBA(t.blendColors(r,o,.4)),u=t.toUnitRGBA(t.blendColors(r,o,.14));s.setParameters({color:a}),n.setParameters({color:u}),c.setParameters({color:i}),l.setParameters({color:p}),m.setParameters({color:a})},r)}destroy(){this._themeHandle.remove(),super.destroy()}}function q({offsetMode:t,tubeMaterial:e,tipMaterial:o,capMaterial:r,outlineMaterial:a,calloutMaterial:i}){const s=0===t?v:0,n=[b(s,0,-D/2),b(s,0,D/2)],c=z(n),l=I({vertices:n,padding:0,materials:{tube:e,tip:o,cap:r}}),m=I({vertices:n,padding:y,materials:{tube:a,tip:a,cap:a}}),p=F(i,[[s,0,0],[s-v,0,0]]),u=F(i,[[s,0,0],[s-v,0,0]]);return{renderObjects:[...l.normal.map(t=>new B(t,1|C)),...m.normal.map(t=>new B(t,1|C)),new B(p,1|C|G),...l.focused.map(t=>new B(t,2|C)),...m.focused.map(t=>new B(t,2|C)),new B(u,2|C|G)],autoScaleRenderObjects:!1,collisionType:{type:"line",paths:[c]},collisionPriority:1,radius:O,state:C}}function I({vertices:t,padding:e,materials:o}){const r=r=>{const v=t.slice(),y=p(j.get(),v[0],v[1]);u(y,y);const D=p(j.get(),v[v.length-1],v[v.length-2]);if(u(D,D),e>0){const t=f(h(),D,-e);v[v.length-1]=d(t,t,v[v.length-1]);const o=f(h(),y,-e);v[0]=d(o,o,v[0])}const C=r?x:1,G=U*C,A=O*C,B=a(M.get());if(e>0){const t=G/4,o=g(j.get(),0,t,0),r=1+e/t;i(B,B,o),s(B,B,g(j.get(),r,r,r)),i(B,B,f(o,o,-1/r))}const F=a(l()),k=b(0,1,0),H=n(l(),m(w.get(),k,D));H[12]=v[v.length-1][0],H[13]=v[v.length-1][1],H[14]=v[v.length-1][2],c(H,H,B);const S=o.tube,_=L(P*(r?R:1)+e,v,S);_.transformation=F;const q=[_],I=o.tip,z=T(I,G,A,24,!1,!1,!0);z.transformation=H,q.push(z);const E=o.cap,J=T(E,G,A,24,!1,!0,!1);J.transformation=H,q.push(J);const K=n(l(),m(w.get(),k,y));return K[12]=v[0][0],K[13]=v[0][1],K[14]=v[0][2],c(K,K,B),q.push(z.instantiate({transformation:K})),q.push(J.instantiate({transformation:K})),q};return{normal:r(!1),focused:r(!0)}}function L(t,e,o){const r=[],a=12;for(let i=0;i<a;i++){const e=i/a*2*Math.PI;r.push([Math.cos(e)*t,Math.sin(e)*t])}return k(o,r,e,[],[],!1)}function z(t,e){const o=p(h(),t[t.length-1],t[t.length-2]);u(o,o),f(o,o,U),d(o,o,t[t.length-1]);{const e=p(h(),t[0],t[1]);return u(e,e),f(e,e,U),d(e,e,t[0]),[e,...t,o]}}export{_ as ShiftManipulator};
5
+ import t from"../../../../Color.js";import{getContrast as e}from"../../../../core/colorUtils.js";import{watch as o,initial as r}from"../../../../core/reactiveUtils.js";import{identity as a,translate as i,scale as s,fromQuat as n,multiply as c}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{rotationTo as m}from"../../../../core/libs/gl-matrix-2/math/quat.js";import{e as p,n as u,h as f,g as d,j as g}from"../../../../chunks/vec32.js";import{create as h,fromValues as b}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{sv3d as j,sm4d as M,sq4d as w}from"../../../../geometry/support/vectorStacks.js";import{shiftRestartOffsetDistance as v,shiftRestartTipRadius as O,shiftRestartTipLength as U,shiftRestartArrowOutlineWidth as y,shiftRestartArrowLength as D,shiftRestartTubeRadius as P,shiftRestartTubeFocusMultiplier as R,shiftRestartTipFocusMultiplier as x}from"./sliceToolConfig.js";import{DidPointerMoveRecentlyFlag as C,IsShiftEdgeOnScreenFlag as G}from"./sliceToolUtils.js";import{Manipulator3D as A}from"../../interactive/Manipulator3D.js";import{RenderObject as B}from"../../interactive/RenderObject.js";import{createPolylineGeometry as F,createConeGeometry as T,createPathExtrusionGeometry as k}from"../../webgl-engine/lib/GeometryUtil.js";import{ColorMaterial as H}from"../../webgl-engine/materials/ColorMaterial.js";import{RibbonLineMaterial as S}from"../../webgl-engine/materials/RibbonLineMaterial.js";class _ extends A{constructor(a,i){const s=new S({width:1,renderOccluded:4,isDecoration:!0},a.state.isGlobal),n=new H({cullFace:2,renderOccluded:16,isDecoration:!0}),c=new H({cullFace:2,renderOccluded:16,isDecoration:!0}),l=new H({cullFace:2,renderOccluded:16,isDecoration:!0}),m=new H({writeDepth:!1,cullFace:1,renderOccluded:2,isDecoration:!0});super({view:a,...q({offsetMode:i,tubeMaterial:n,tipMaterial:c,capMaterial:l,outlineMaterial:m,calloutMaterial:s})}),this._themeHandle=o(()=>a.effectiveTheme.accentColor,o=>{const r=e(o),a=t.toUnitRGBA(o),i=t.toUnitRGBA(r),p=t.toUnitRGBA(t.blendColors(r,o,.4)),u=t.toUnitRGBA(t.blendColors(r,o,.14));s.setParameters({color:a}),n.setParameters({color:u}),c.setParameters({color:i}),l.setParameters({color:p}),m.setParameters({color:a})},r)}destroy(){this._themeHandle.remove(),super.destroy()}}function q({offsetMode:t,tubeMaterial:e,tipMaterial:o,capMaterial:r,outlineMaterial:a,calloutMaterial:i}){const s=0===t?v:0,n=[b(s,0,-D/2),b(s,0,D/2)],c=z(n),l=I({vertices:n,padding:0,materials:{tube:e,tip:o,cap:r}}),m=I({vertices:n,padding:y,materials:{tube:a,tip:a,cap:a}}),p=F(i,[[s,0,0],[s-v,0,0]]),u=F(i,[[s,0,0],[s-v,0,0]]);return{renderObjects:[...l.normal.map(t=>new B(t,1|C)),...m.normal.map(t=>new B(t,1|C)),new B(p,1|C|G),...l.focused.map(t=>new B(t,2|C)),...m.focused.map(t=>new B(t,2|C)),new B(u,2|C|G)],autoScaleRenderObjects:!1,collisionType:{type:"line",paths:[c]},collisionPriority:1,radius:O,state:C}}function I({vertices:t,padding:e,materials:o}){const r=r=>{const v=t.slice(),y=p(j.get(),v[0],v[1]);u(y,y);const D=p(j.get(),v[v.length-1],v[v.length-2]);if(u(D,D),e>0){const t=f(h(),D,-e);v[v.length-1]=d(t,t,v[v.length-1]);const o=f(h(),y,-e);v[0]=d(o,o,v[0])}const C=r?x:1,G=U*C,A=O*C,B=a(M.get());if(e>0){const t=G/4,o=g(j.get(),0,t,0),r=1+e/t;i(B,B,o),s(B,B,g(j.get(),r,r,r)),i(B,B,f(o,o,-1/r))}const F=a(l()),k=b(0,1,0),H=n(l(),m(w.get(),k,D));H[12]=v[v.length-1][0],H[13]=v[v.length-1][1],H[14]=v[v.length-1][2],c(H,H,B);const S=o.tube,_=L(P*(r?R:1)+e,v,S);_.transformation=F;const q=[_],I=o.tip,z=T(I,G,A,24,!1,!1,!0);z.transformation=H,q.push(z);const E=o.cap,J=T(E,G,A,24,!1,!0,!1);J.transformation=H,q.push(J);const K=n(l(),m(w.get(),k,y));return K[12]=v[0][0],K[13]=v[0][1],K[14]=v[0][2],c(K,K,B),q.push(z.instantiate({transformation:K})),q.push(J.instantiate({transformation:K})),q};return{normal:r(!1),focused:r(!0)}}function L(t,e,o){const r=[],a=12;for(let i=0;i<a;i++){const e=i/a*2*Math.PI;r.push([Math.cos(e)*t,Math.sin(e)*t])}return k(o,r,e,[],[],!1)}function z(t,e){const o=p(h(),t[t.length-1],t[t.length-2]);u(o,o),f(o,o,U),d(o,o,t[t.length-1]);{const e=p(h(),t[0],t[1]);return u(e,e),f(e,e,U),d(e,e,t[0]),[e,...t,o]}}export{_ as ShiftManipulator};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import e from"../../../../analysis/SlicePlane.js";import{clock as i}from"../../../../core/clock.js";import{destroyMaybe as a,removeMaybe as s}from"../../../../core/maybe.js";import{watch as n,sync as r,when as l,syncAndInitial as o}from"../../../../core/reactiveUtils.js";import{addFrameTask as h}from"../../../../core/scheduling.js";import{createScreenPoint as p,screenPointObjectToArray as u}from"../../../../core/screenUtils.js";import{property as c}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as d}from"../../../../core/accessorSupport/decorators/subclass.js";import{fromRotation as _,fromScaling as v,multiply as m}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{e as P,l as y,c as w,g,f,t as M,n as D,i as V}from"../../../../chunks/vec32.js";import{create as b,clone as T}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{clone as S,ZEROS as k}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{a as x,d as E,n as j,f as C}from"../../../../chunks/boundedPlane.js";import{signedDistance as H,create as R,intersectRay as I,getNormal as z}from"../../../../geometry/support/plane.js";import{create as O}from"../../../../geometry/support/ray.js";import{sv3d as G,sm4d as U,sv2d as K}from"../../../../geometry/support/vectorStacks.js";import{getSliceableContainer as B}from"../../../../graphic/getSliceableContainer.js";import{getRotateHeadingTexture as A,getTiltRotateTexture as F}from"../images/Factory.js";import{ResizeManipulator as L}from"./ResizeManipulator.js";import{RotateManipulator as q}from"./RotateManipulator.js";import{getOutlineColor as N,planeColor as J}from"./settings.js";import{ShiftManipulator as Q}from"./ShiftManipulator.js";import{pointerMoveTimerMs as W,planePreviewOutlineWidth as X,forceVerticalModifier as Y,forceHorizontalModifier as Z,previewFadeDurationSeconds as $,previewFadeDotThreshold as tt,initialDepthOffsetFrac as et}from"./sliceToolConfig.js";import{createGridVisualElement as it,createOutlineVisualElement as at,planeToShape as st,createRotatePlane as nt,resizePlane as rt,calculatePlaneHalfSize as lt,createPlane as ot,DidPointerMoveRecentlyFlag as ht,calculateBoundedPlaneTranslateRotate as pt,updateShiftRestartHandle as ut,updateRotateHeadingHandle as ct,updateRotateTiltHandle as dt,updateResizeHandle as _t,createShiftPlane as vt}from"./sliceToolUtils.js";import{calculateInputRotationTransform as mt}from"../../interactive/manipulatorUtils.js";import{screenToRenderPlane as Pt}from"../../interactive/editingTools/dragEventPipeline3D.js";import{fromScreenNormalized as yt}from"../../support/geometryUtils/ray.js";import{AnalysisToolBase as wt}from"../../../interactive/AnalysisToolBase.js";import{createManipulatorDragEventPipeline as gt}from"../../../interactive/dragEventPipeline.js";import{newToolIntersector as ft}from"../../../interactive/ToolIntersector.js";import{createScreenPointFromEvent as Mt}from"../../../support/screenUtils.js";var Dt;let Vt=class extends wt{static{Dt=this}constructor(t){super(t),this._clock=i,this._previewPlaneOpacity=1,this.removeIncompleteOnCancel=!1,this._mode="none",this.shiftManipulator=null,this.rotateHeadingManipulator=null,this.rotateTiltManipulator=null,this.resizeManipulators=null,this._frameTask=null,this._pointerMoveTimerMs=W,this._prevPointerMoveTimeout=null,this._previewPlaneGridVisualElement=null,this._previewPlaneOutlineVisualElement=null,this._startPlane=x(),this._previewPlane=null,this._activeKeyModifiers={},this._lastCursorPosition=p(),this._resizeHandles=[{direction:[1,0]},{direction:[1,1]},{direction:[0,1]},{direction:[-1,1]},{direction:[-1,0]},{direction:[-1,-1]},{direction:[0,-1]},{direction:[1,-1]}],this._intersector=ft(t.view.state.viewingMode)}initialize(){if(null==this.analysis)throw new Error("SliceTool requires valid analysis, but null was provided.");const t=t=>{this._updateManipulatorsInteractive(t),t.grabbing||(null!=this.analysisViewData.plane&&E(this.analysisViewData.plane,this._startPlane),this.inputState=null)},e=new Q(this.view,1);this.shiftManipulator=e,this.manipulators.add(e),this.addHandles([this._createShiftDragPipeline(e),e.events.on("grab-changed",i=>{this._onShiftGrab(i),t(e)})]);const i=!this.view.stage?.renderView.renderingContext.driverTest.svgPremultipliesAlpha.result,a=new q(this.view,(t,e)=>A(this.view.stage.textures,{accentColor:t,contrastColor:e,preMultiplyAlpha:i}));this.rotateHeadingManipulator=a,this.manipulators.add(a),this.addHandles([this._createRotateHeadingDragPipeline(a),a.events.on("grab-changed",e=>{this._onRotateHeadingGrab(e),t(a)})]);const s=new q(this.view,(t,e)=>F(this.view.stage.textures,{accentColor:t,contrastColor:e,preMultiplyAlpha:i}));this.rotateTiltManipulator=s,this.manipulators.add(s),this.addHandles([this._createRotateTiltDragPipeline(s),s.events.on("grab-changed",e=>{this._onRotateTiltGrab(e),t(s)})]),this.resizeManipulators=this._resizeHandles.map((e,i)=>{const a=new L(this.view,e);return this.addHandles([this._createResizeDragPipeline(a),a.events.on("grab-changed",e=>{this._onResizeGrab(e,i),t(a)})]),a}),this.manipulators.addMany(this.resizeManipulators),this._previewPlaneGridVisualElement=it(this.view),this._previewPlaneOutlineVisualElement=at(this.view),this._previewPlaneOutlineVisualElement.width=X,this.addHandles(n(()=>[this.analysisViewData.plane,this.analysis.tiltEnabled],()=>this._updateManipulators(),r)),this.addHandles([l(()=>"sliced"===this.state,()=>{this.finishToolCreation(),this.stop()},o),n(()=>this.view.state.camera,()=>this._onCameraChange())])}destroy(){this._removeFrameTask(),this._clearPointerMoveTimeout(),this._previewPlaneOutlineVisualElement=a(this._previewPlaneOutlineVisualElement),this._previewPlaneGridVisualElement=a(this._previewPlaneGridVisualElement)}get state(){const t=!!this.analysisViewData.plane,e=!!this.inputState;return t?t&&e?"slicing":t&&!e?"sliced":"ready":"ready"}get cursor(){return this.active?this._placingSlicePlane||"exclude"===this.mode?"crosshair":null!=this._creatingPointerId?"grabbing":null:null}set analysis(t){if(null==t)throw new Error("SliceTool requires valid analysis, but null was provided.");this.removeHandles("analysis"),this._set("analysis",t)}get mode(){return this._mode}static{this.disableEngineLayers=!1}get inputState(){return this._get("inputState")}set inputState(t){this._set("inputState",t),this.analysisViewData.showGrid=null!=t&&"resize"===t.type,this._updateMaterials()}get _placingSlicePlane(){return this.active&&!this.inputState&&"place"===this._mode}get _creatingPointerId(){return null!=this.inputState&&"shift"===this.inputState.type?this.inputState.creatingPointerId:null}start(t){this._finishToolCreationIfValid(),this._mode=t,this.active||(this.view.activeTool=this)}stop(){this.active&&(this.view.activeTool=null)}onActivate(){this._finishToolCreationIfValid(),"none"===this._mode&&null==this.analysisViewData.plane&&(this._mode="place")}onDeactivate(){this._mode="none",this._updatePreviewPlane(null)}onShow(){this._updateVisibility(!0)}onHide(){this._updateVisibility(!1)}_updateVisibility(t){this._updateManipulators(),t||this._clearPointerMoveTimeout()}onInputEvent(t){switch(t.type){case"pointer-drag":if(!Tt(t))return;this._placingSlicePlane?this._onClickPlacePlane(t)&&t.stopPropagation():this._onPointerDrag(t)&&t.stopPropagation();break;case"pointer-move":this._onPointerMove(t);break;case"pointer-up":this._onPointerUp(t)&&t.stopPropagation();break;case"immediate-click":if(!Tt(t))return;"exclude"===this._mode?t.defer(async()=>{await this._onClickExcludeLayer(t)&&t.stopPropagation()}):this._onClickPlacePlane(t)&&t.stopPropagation();break;case"drag":this.inputState&&t.stopPropagation();break;case"key-down":this._onKeyDown(t)&&t.stopPropagation();break;case"key-up":this._onKeyUp(t)&&t.stopPropagation()}}onEditableChange(){this.analysisViewData.editable=this.internallyEditable}_onPointerDrag(t){const e=this.inputState;if(t.pointerId===this._creatingPointerId&&null!=e&&"shift"===e.type){const i=Mt(t);return this.shiftManipulator.events.emit("drag",{action:e.hasBeenDragged?"update":"start",pointerType:t.pointerType,start:i,screenPoint:i}),e.hasBeenDragged=!0,!0}return!1}_onPointerMove(t){this._lastCursorPosition.x=t.x,this._lastCursorPosition.y=t.y,this._resetPointerMoveTimeout(),"touch"!==t.pointerType&&this._updatePreviewPlane(Mt(t),this._activeKeyModifiers)}_onCameraChange(){this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),this._updateManipulators()}_onPointerUp(t){if(t.pointerId===this._creatingPointerId&&null!=this.analysisViewData.plane){const e=Mt(t);return this.shiftManipulator.events.emit("drag",{action:"end",start:e,screenPoint:e}),E(this.analysisViewData.plane,this._startPlane),this.inputState=null,!0}return!1}_onClickPlacePlane(t){if(!this._placingSlicePlane)return!1;const i=Mt(t),a=x();if(this._pickPlane(i,!1,this._activeKeyModifiers,a)){if("pointer-drag"===t.type){const e=yt(this.view.state.camera,i,kt);this.inputState=bt(e,t.pointerId,a.origin,a)}return E(a,this._startPlane),this.analysis.shape=st(a,this.view,this.view.spatialReference,new e),"pointer-drag"!==t.type&&this.stop(),!0}return!1}async _onClickExcludeLayer(t){if("exclude"!==this.mode)return!1;const e=await this.view.hitTest(Mt(t)),i=e.results.at(0);if(i){const t="graphic"===i.type&&i.graphic;if(t){const e=B(t.origin)??t.sourceLayer??t.layer;e&&"subtype-sublayer"!==e.type&&this.analysis.excludedLayers.push(e)}}else e.ground.layer?this.analysis.excludedLayers.push(e.ground.layer):this.analysis.excludeGroundSurface=!0;return this.stop(),!0}_onKeyDown(t){return(t.key===Y||t.key===Z)&&(this._activeKeyModifiers[t.key]=!0,null!=this._previewPlane&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onKeyUp(t){return!(t.key!==Y&&t.key!==Z||!this._activeKeyModifiers[t.key])&&(delete this._activeKeyModifiers[t.key],null!=this._previewPlane&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onShiftGrab(t){if("start"!==t.action||null==this.analysisViewData.plane||!t.screenPoint)return;const e=yt(this.view.state.camera,t.screenPoint,kt);E(this.analysisViewData.plane,this._startPlane),this.inputState=bt(e,null,this.shiftManipulator.renderLocation,this.analysisViewData.plane)}_createShiftDragPipeline(t){return gt(t,(t,e,i)=>{const a=this.inputState;if(null==a||"shift"!==a.type)return;const s=null!=this.analysisViewData.plane?E(this.analysisViewData.plane,x()):null;e.next(Pt(this.view,a.shiftPlane)).next(this._shiftDragAdjustSensitivity(a)).next(this._shiftDragUpdatePlane(a)),i.next(()=>{null!=s&&this._updateBoundedPlane(s)})})}_shiftDragAdjustSensitivity(t){return e=>{if(null==this.analysisViewData.plane)return null;const i=.001,a=Math.min((1-Math.abs(P(j(this.analysisViewData.plane),e.ray.direction)/y(e.ray.direction)))/i,1),s=-H(this._startPlane.plane,e.renderEnd),n=-H(this._startPlane.plane,t.startPoint);return t.depth=t.depth*(1-a)+s*a-n,e}}_shiftDragUpdatePlane(t){return()=>{if(null==this.analysisViewData.plane)return;const e=w(G.get(),this._startPlane.origin),i=w(G.get(),j(this._startPlane));g(i,i,-t.depth),f(i,i,e);const a=C(i,this.analysisViewData.plane.basis1,this.analysisViewData.plane.basis2,x());this._updateBoundedPlane(a)}}_onRotateHeadingGrab(t){if("start"!==t.action||null==this.analysisViewData.plane||!t.screenPoint)return;const e=nt(this.analysisViewData.plane,this.view.renderCoordsHelper,1,R()),i=yt(this.view.state.camera,t.screenPoint,kt),a=b();I(e,i,a)&&(E(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateHeadingDragPipeline(t){return gt(t,(t,e,i)=>{const a=this.inputState;if(null==a||"rotate"!==a.type)return;const s=null!=this.analysisViewData.plane?E(this.analysisViewData.plane,x()):null;e.next(Pt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next(()=>{null!=s&&this._updateBoundedPlane(s)})})}_onRotateTiltGrab(t){if("start"!==t.action||null==this.analysisViewData.plane||!t.screenPoint)return;const e=nt(this.analysisViewData.plane,this.view.renderCoordsHelper,2,R()),i=yt(this.view.state.camera,t.screenPoint,kt),a=b();I(e,i,a)&&(E(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateTiltDragPipeline(t){return gt(t,(t,e,i)=>{const a=this.inputState;if(null==a||"rotate"!==a.type)return;const s=null!=this.analysisViewData.plane?E(this.analysisViewData.plane,x()):null;e.next(Pt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next(()=>{null!=s&&this._updateBoundedPlane(s)})})}_rotateDragRenderPlaneToRotate(t){return e=>{if(null==this.analysisViewData.plane)return null;const i=z(t.rotatePlane),a=mt(t.startPoint,e.renderEnd,this.analysisViewData.plane.origin,i);return{...e,rotateAxis:i,rotateAngle:a}}}_rotateDragUpdatePlaneFromRotate(){return t=>{if(null==this.analysisViewData.plane)return;const e=_(U.get(),t.rotateAngle,t.rotateAxis);if(null==e)return;const i=M(G.get(),this._startPlane.basis1,e),a=M(G.get(),this._startPlane.basis2,e),s=C(this.analysisViewData.plane.origin,i,a,x());this._updateBoundedPlane(s)}}_onResizeGrab(t,e){if("start"!==t.action||null==this.analysisViewData.plane||!t.screenPoint)return;const i=yt(this.view.state.camera,t.screenPoint,kt),a=G.get();I(this.analysisViewData.plane.plane,i,a)&&(E(this.analysisViewData.plane,this._startPlane),this.inputState={type:"resize",activeHandleIdx:e,startPoint:T(a)})}_createResizeDragPipeline(t){return gt(t,(t,e,i)=>{const a=this.inputState;if(null==a||"resize"!==a.type||null==this.analysisViewData.plane)return;const s=E(this.analysisViewData.plane,x());e.next(Pt(this.view,this.analysisViewData.plane.plane)).next(this._resizeDragUpdatePlane(a)),i.next(()=>{this._updateBoundedPlane(s)})})}_resizeDragUpdatePlane(t){return e=>{if(null==this.analysisViewData.plane)return;const i=this._resizeHandles[t.activeHandleIdx],a=rt(i,t.startPoint,e.renderEnd,this.view.state.camera,this._startPlane,E(this.analysisViewData.plane));this._updateBoundedPlane(a)}}_updateBoundedPlane(t){const e=this.analysisViewData;if(null==e)throw new Error("valid internal object expected");e.plane=t}_updatePreviewPlane(t,e={}){if("exclude"===this.mode)return;let i=this._previewPlane;if(this._previewPlane=null,null==t)return this._removeFrameTask(),void this._updateManipulators();if(this.active){const a=null!=i?i:x();if(i=null!=i?E(i,St):null,this._pickPlane(t,!0,e,a)){const t=tt;let e=!1;null!=i&&(e=P(z(i.plane),z(a.plane))<t||P(D(G.get(),i.basis1),D(G.get(),a.basis1))<t),e&&(this._previewPlaneOpacity=0),this._previewPlane=a}}null!=this._previewPlane&&null==this._frameTask&&0===this._previewPlaneOpacity?this._frameTask=h({update:({deltaTime:t})=>{this._previewPlaneOpacity=Math.min(this._previewPlaneOpacity+t/(1e3*$),1),this._updateManipulators(),1===this._previewPlaneOpacity&&this._removeFrameTask()}}):null==this._previewPlane&&null!=this._frameTask?this._removeFrameTask():null!=this._previewPlane&&this._updateManipulators()}_removeFrameTask(){this._frameTask=s(this._frameTask)}_pickMinResult(t){const e=u(t,K.get());return this.view.sceneIntersectionHelper.intersectToolIntersectorScreen(e,this._intersector),this._intersector.results.min}_pickPlane(t,e,i,a){const s=this._pickMinResult(t),n=G.get();if(!s.getIntersectionPoint(n))return!1;const r=s.getTransformedNormal(G.get()),l=this.view.state.camera;P(r,l.viewForward)>0&&g(r,r,-1);const o=lt(n,l),h=(e?1:-1)*o*et,p=g(G.get(),r,h);f(p,p,n);const u=this.analysis.tiltEnabled?3:0,c=i[Y]?2:i[Z]?1:u;return ot(p,r,o,o,l,c,this.view.renderCoordsHelper,a),!0}_clearPointerMoveTimeout(){this._prevPointerMoveTimeout=s(this._prevPointerMoveTimeout)}_resetPointerMoveTimeout(){this._clearPointerMoveTimeout(),this.shiftManipulator.state|=ht,this.rotateHeadingManipulator.state|=ht,this.rotateTiltManipulator.state|=ht,this._prevPointerMoveTimeout=this._clock.setTimeout(()=>{this.shiftManipulator.state&=~ht,this.rotateHeadingManipulator.state&=~ht,this.rotateTiltManipulator.state&=~ht},this._pointerMoveTimerMs)}_updateManipulators(){if(Dt.disableEngineLayers)return;let t,e,i=!1;if(null!=this.analysisViewData.plane)t=this.analysisViewData.plane,e=this._previewPlane??t,i=!1;else{if(null==this._previewPlane)return this._setManipulatorVisibility(!1),void this._setPreviewPlaneVisibility(!1);e=t=this._previewPlane,i=!0}if(this._setManipulatorVisibility(!i),!i){const e=pt(t,U.get());ut(this.shiftManipulator,e,t,this.view.state.camera),ct(this.rotateHeadingManipulator,e,t,this.view.renderCoordsHelper),dt(this.rotateTiltManipulator,e,t),this.resizeManipulators.forEach((i,a)=>_t(i,this._resizeHandles[a],e,t))}this._setPreviewPlaneVisibility(!this._creatingPointerId&&(i||"place"===this._mode)),this._updatePreviewPlaneTransform(e),this._updateMaterials()}_setManipulatorVisibility(t){this.shiftManipulator.available=t,this.rotateHeadingManipulator.available=t,this.rotateTiltManipulator.available=t&&this.analysis.tiltEnabled,this.resizeManipulators.forEach(e=>e.available=t)}_updatePreviewPlaneTransform(t){const e=pt(t,U.get()),i=V(G.get(),y(t.basis1),y(t.basis2),1),a=v(U.get(),i),s=m(a,e,a);this._previewPlaneOutlineVisualElement.transform=s,this._previewPlaneGridVisualElement.transform=s}_setPreviewPlaneVisibility(t){const e=this._previewPlaneOutlineVisualElement,i=this._previewPlaneGridVisualElement;t&&(e.attached=!0,i.attached=!0),e.visible=t,i.visible=t}_updateMaterials(){const t=N(this.view.effectiveTheme);t[3]*=this._previewPlaneOpacity;const e=S(J);e[3]*=this._previewPlaneOpacity,this._previewPlaneOutlineVisualElement.color=t,this._previewPlaneGridVisualElement.backgroundColor=e,this._previewPlaneGridVisualElement.gridColor=k}_updateManipulatorsInteractive(t){if(!t.grabbing)return this.shiftManipulator.interactive=!0,this.rotateHeadingManipulator.interactive=!0,this.rotateTiltManipulator.interactive=!0,void this.resizeManipulators.forEach(t=>{t.interactive=!0});this.shiftManipulator.interactive=this.shiftManipulator===t,this.rotateHeadingManipulator.interactive=this.rotateHeadingManipulator===t,this.rotateTiltManipulator.interactive=this.rotateTiltManipulator===t,this.resizeManipulators.forEach(e=>{e.interactive=e===t})}_finishToolCreationIfValid(){this.analysis.valid&&this.finishToolCreation()}get test(){return{plane:this.analysisViewData.plane,setPointerMoveTimerMs:t=>{this._pointerMoveTimerMs=t}}}};function bt(t,e,i,a){const s=vt(i,j(a),t.direction,R()),n=b();return I(s,t,n)?{type:"shift",creatingPointerId:e,hasBeenDragged:!1,shiftPlane:s,depth:0,startPoint:n}:null}function Tt(t){return"mouse"!==t.pointerType||0===t.button}t([c()],Vt.prototype,"_clock",void 0),t([c({constructOnly:!0})],Vt.prototype,"view",void 0),t([c()],Vt.prototype,"analysisViewData",void 0),t([c({readOnly:!0})],Vt.prototype,"state",null),t([c({readOnly:!0})],Vt.prototype,"cursor",null),t([c()],Vt.prototype,"analysis",null),t([c()],Vt.prototype,"removeIncompleteOnCancel",void 0),t([c()],Vt.prototype,"_mode",void 0),t([c()],Vt.prototype,"mode",null),t([c({value:null})],Vt.prototype,"inputState",null),t([c()],Vt.prototype,"_placingSlicePlane",null),t([c()],Vt.prototype,"_creatingPointerId",null),Vt=Dt=t([d("esri.views.3d.analysis.Slice.SliceTool")],Vt);const St=x(),kt=O();export{Vt as default};
5
+ import{__decorate as t}from"tslib";import e from"../../../../analysis/SlicePlane.js";import{clock as i}from"../../../../core/clock.js";import{destroyMaybe as a,removeMaybe as s}from"../../../../core/maybe.js";import{watch as n,sync as r,when as l,syncAndInitial as o}from"../../../../core/reactiveUtils.js";import{addFrameTask as h}from"../../../../core/scheduling.js";import{createScreenPoint as p,screenPointObjectToArray as u}from"../../../../core/screenUtils.js";import{property as c}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as d}from"../../../../core/accessorSupport/decorators/subclass.js";import{fromRotation as _,fromScaling as v,multiply as m}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{f as P,b as y,d as w,h as g,g as f,t as M,n as D,j as V}from"../../../../chunks/vec32.js";import{create as b,clone as T}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{clone as S,ZEROS as k}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{a as x,d as j,n as E,f as C}from"../../../../chunks/boundedPlane.js";import{signedDistance as H,create as R,intersectRay as I,getNormal as z}from"../../../../geometry/support/plane.js";import{create as O}from"../../../../geometry/support/ray.js";import{sv3d as G,sm4d as U,sv2d as K}from"../../../../geometry/support/vectorStacks.js";import{getSliceableContainer as B}from"../../../../graphic/getSliceableContainer.js";import{getRotateHeadingTexture as A,getTiltRotateTexture as F}from"../images/Factory.js";import{ResizeManipulator as L}from"./ResizeManipulator.js";import{RotateManipulator as q}from"./RotateManipulator.js";import{getOutlineColor as N,planeColor as J}from"./settings.js";import{ShiftManipulator as Q}from"./ShiftManipulator.js";import{pointerMoveTimerMs as W,planePreviewOutlineWidth as X,forceVerticalModifier as Y,forceHorizontalModifier as Z,previewFadeDurationSeconds as $,previewFadeDotThreshold as tt,initialDepthOffsetFrac as et}from"./sliceToolConfig.js";import{createGridVisualElement as it,createOutlineVisualElement as at,planeToShape as st,createRotatePlane as nt,resizePlane as rt,calculatePlaneHalfSize as lt,createPlane as ot,DidPointerMoveRecentlyFlag as ht,calculateBoundedPlaneTranslateRotate as pt,updateShiftRestartHandle as ut,updateRotateHeadingHandle as ct,updateRotateTiltHandle as dt,updateResizeHandle as _t,createShiftPlane as vt}from"./sliceToolUtils.js";import{calculateInputRotationTransform as mt}from"../../interactive/manipulatorUtils.js";import{screenToRenderPlane as Pt}from"../../interactive/editingTools/dragEventPipeline3D.js";import{fromScreenNormalized as yt}from"../../support/geometryUtils/ray.js";import{AnalysisToolBase as wt}from"../../../interactive/AnalysisToolBase.js";import{createManipulatorDragEventPipeline as gt}from"../../../interactive/dragEventPipeline.js";import{newToolIntersector as ft}from"../../../interactive/ToolIntersector.js";import{createScreenPointFromEvent as Mt}from"../../../support/screenUtils.js";var Dt;let Vt=class extends wt{static{Dt=this}constructor(t){super(t),this._clock=i,this._previewPlaneOpacity=1,this.removeIncompleteOnCancel=!1,this._mode="none",this.shiftManipulator=null,this.rotateHeadingManipulator=null,this.rotateTiltManipulator=null,this.resizeManipulators=null,this._frameTask=null,this._pointerMoveTimerMs=W,this._prevPointerMoveTimeout=null,this._previewPlaneGridVisualElement=null,this._previewPlaneOutlineVisualElement=null,this._startPlane=x(),this._previewPlane=null,this._activeKeyModifiers={},this._lastCursorPosition=p(),this._resizeHandles=[{direction:[1,0]},{direction:[1,1]},{direction:[0,1]},{direction:[-1,1]},{direction:[-1,0]},{direction:[-1,-1]},{direction:[0,-1]},{direction:[1,-1]}],this._intersector=ft(t.view.state.viewingMode)}initialize(){if(null==this.analysis)throw new Error("SliceTool requires valid analysis, but null was provided.");const t=t=>{this._updateManipulatorsInteractive(t),t.grabbing||(null!=this.analysisViewData.plane&&j(this.analysisViewData.plane,this._startPlane),this.inputState=null)},e=new Q(this.view,1);this.shiftManipulator=e,this.manipulators.add(e),this.addHandles([this._createShiftDragPipeline(e),e.events.on("grab-changed",i=>{this._onShiftGrab(i),t(e)})]);const i=!this.view.stage?.renderView.renderingContext.driverTest.svgPremultipliesAlpha.result,a=new q(this.view,(t,e)=>A(this.view.stage.textures,{accentColor:t,contrastColor:e,preMultiplyAlpha:i}));this.rotateHeadingManipulator=a,this.manipulators.add(a),this.addHandles([this._createRotateHeadingDragPipeline(a),a.events.on("grab-changed",e=>{this._onRotateHeadingGrab(e),t(a)})]);const s=new q(this.view,(t,e)=>F(this.view.stage.textures,{accentColor:t,contrastColor:e,preMultiplyAlpha:i}));this.rotateTiltManipulator=s,this.manipulators.add(s),this.addHandles([this._createRotateTiltDragPipeline(s),s.events.on("grab-changed",e=>{this._onRotateTiltGrab(e),t(s)})]),this.resizeManipulators=this._resizeHandles.map((e,i)=>{const a=new L(this.view,e);return this.addHandles([this._createResizeDragPipeline(a),a.events.on("grab-changed",e=>{this._onResizeGrab(e,i),t(a)})]),a}),this.manipulators.addMany(this.resizeManipulators),this._previewPlaneGridVisualElement=it(this.view),this._previewPlaneOutlineVisualElement=at(this.view),this._previewPlaneOutlineVisualElement.width=X,this.addHandles(n(()=>[this.analysisViewData.plane,this.analysis.tiltEnabled],()=>this._updateManipulators(),r)),this.addHandles([l(()=>"sliced"===this.state,()=>{this.finishToolCreation(),this.stop()},o),n(()=>this.view.state.camera,()=>this._onCameraChange())])}destroy(){this._removeFrameTask(),this._clearPointerMoveTimeout(),this._previewPlaneOutlineVisualElement=a(this._previewPlaneOutlineVisualElement),this._previewPlaneGridVisualElement=a(this._previewPlaneGridVisualElement)}get state(){const t=!!this.analysisViewData.plane,e=!!this.inputState;return t?t&&e?"slicing":t&&!e?"sliced":"ready":"ready"}get cursor(){return this.active?this._placingSlicePlane||"exclude"===this.mode?"crosshair":null!=this._creatingPointerId?"grabbing":null:null}set analysis(t){if(null==t)throw new Error("SliceTool requires valid analysis, but null was provided.");this.removeHandles("analysis"),this._set("analysis",t)}get mode(){return this._mode}static{this.disableEngineLayers=!1}get inputState(){return this._get("inputState")}set inputState(t){this._set("inputState",t),this.analysisViewData.showGrid=null!=t&&"resize"===t.type,this._updateMaterials()}get _placingSlicePlane(){return this.active&&!this.inputState&&"place"===this._mode}get _creatingPointerId(){return null!=this.inputState&&"shift"===this.inputState.type?this.inputState.creatingPointerId:null}start(t){this._finishToolCreationIfValid(),this._mode=t,this.active||(this.view.activeTool=this)}stop(){this.active&&(this.view.activeTool=null)}onActivate(){this._finishToolCreationIfValid(),"none"===this._mode&&null==this.analysisViewData.plane&&(this._mode="place")}onDeactivate(){this._mode="none",this._updatePreviewPlane(null)}onShow(){this._updateVisibility(!0)}onHide(){this._updateVisibility(!1)}_updateVisibility(t){this._updateManipulators(),t||this._clearPointerMoveTimeout()}onInputEvent(t){switch(t.type){case"pointer-drag":if(!Tt(t))return;this._placingSlicePlane?this._onClickPlacePlane(t)&&t.stopPropagation():this._onPointerDrag(t)&&t.stopPropagation();break;case"pointer-move":this._onPointerMove(t);break;case"pointer-up":this._onPointerUp(t)&&t.stopPropagation();break;case"immediate-click":if(!Tt(t))return;"exclude"===this._mode?t.defer(async()=>{await this._onClickExcludeLayer(t)&&t.stopPropagation()}):this._onClickPlacePlane(t)&&t.stopPropagation();break;case"drag":this.inputState&&t.stopPropagation();break;case"key-down":this._onKeyDown(t)&&t.stopPropagation();break;case"key-up":this._onKeyUp(t)&&t.stopPropagation()}}onEditableChange(){this.analysisViewData.editable=this.internallyEditable}_onPointerDrag(t){const e=this.inputState;if(t.pointerId===this._creatingPointerId&&null!=e&&"shift"===e.type){const i=Mt(t);return this.shiftManipulator.events.emit("drag",{action:e.hasBeenDragged?"update":"start",pointerType:t.pointerType,start:i,screenPoint:i}),e.hasBeenDragged=!0,!0}return!1}_onPointerMove(t){this._lastCursorPosition.x=t.x,this._lastCursorPosition.y=t.y,this._resetPointerMoveTimeout(),"touch"!==t.pointerType&&this._updatePreviewPlane(Mt(t),this._activeKeyModifiers)}_onCameraChange(){this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),this._updateManipulators()}_onPointerUp(t){if(t.pointerId===this._creatingPointerId&&null!=this.analysisViewData.plane){const e=Mt(t);return this.shiftManipulator.events.emit("drag",{action:"end",start:e,screenPoint:e}),j(this.analysisViewData.plane,this._startPlane),this.inputState=null,!0}return!1}_onClickPlacePlane(t){if(!this._placingSlicePlane)return!1;const i=Mt(t),a=x();if(this._pickPlane(i,!1,this._activeKeyModifiers,a)){if("pointer-drag"===t.type){const e=yt(this.view.state.camera,i,kt);this.inputState=bt(e,t.pointerId,a.origin,a)}return j(a,this._startPlane),this.analysis.shape=st(a,this.view,this.view.spatialReference,new e),"pointer-drag"!==t.type&&this.stop(),!0}return!1}async _onClickExcludeLayer(t){if("exclude"!==this.mode)return!1;const e=await this.view.hitTest(Mt(t)),i=e.results.at(0);if(i){const t="graphic"===i.type&&i.graphic;if(t){const e=B(t.origin)??t.sourceLayer??t.layer;e&&"subtype-sublayer"!==e.type&&this.analysis.excludedLayers.push(e)}}else e.ground.layer?this.analysis.excludedLayers.push(e.ground.layer):this.analysis.excludeGroundSurface=!0;return this.stop(),!0}_onKeyDown(t){return(t.key===Y||t.key===Z)&&(this._activeKeyModifiers[t.key]=!0,null!=this._previewPlane&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onKeyUp(t){return!(t.key!==Y&&t.key!==Z||!this._activeKeyModifiers[t.key])&&(delete this._activeKeyModifiers[t.key],null!=this._previewPlane&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onShiftGrab(t){if("start"!==t.action||null==this.analysisViewData.plane||!t.screenPoint)return;const e=yt(this.view.state.camera,t.screenPoint,kt);j(this.analysisViewData.plane,this._startPlane),this.inputState=bt(e,null,this.shiftManipulator.renderLocation,this.analysisViewData.plane)}_createShiftDragPipeline(t){return gt(t,(t,e,i)=>{const a=this.inputState;if(null==a||"shift"!==a.type)return;const s=null!=this.analysisViewData.plane?j(this.analysisViewData.plane,x()):null;e.next(Pt(this.view,a.shiftPlane)).next(this._shiftDragAdjustSensitivity(a)).next(this._shiftDragUpdatePlane(a)),i.next(()=>{null!=s&&this._updateBoundedPlane(s)})})}_shiftDragAdjustSensitivity(t){return e=>{if(null==this.analysisViewData.plane)return null;const i=.001,a=Math.min((1-Math.abs(P(E(this.analysisViewData.plane),e.ray.direction)/y(e.ray.direction)))/i,1),s=-H(this._startPlane.plane,e.renderEnd),n=-H(this._startPlane.plane,t.startPoint);return t.depth=t.depth*(1-a)+s*a-n,e}}_shiftDragUpdatePlane(t){return()=>{if(null==this.analysisViewData.plane)return;const e=w(G.get(),this._startPlane.origin),i=w(G.get(),E(this._startPlane));g(i,i,-t.depth),f(i,i,e);const a=C(i,this.analysisViewData.plane.basis1,this.analysisViewData.plane.basis2,x());this._updateBoundedPlane(a)}}_onRotateHeadingGrab(t){if("start"!==t.action||null==this.analysisViewData.plane||!t.screenPoint)return;const e=nt(this.analysisViewData.plane,this.view.renderCoordsHelper,1,R()),i=yt(this.view.state.camera,t.screenPoint,kt),a=b();I(e,i,a)&&(j(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateHeadingDragPipeline(t){return gt(t,(t,e,i)=>{const a=this.inputState;if(null==a||"rotate"!==a.type)return;const s=null!=this.analysisViewData.plane?j(this.analysisViewData.plane,x()):null;e.next(Pt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next(()=>{null!=s&&this._updateBoundedPlane(s)})})}_onRotateTiltGrab(t){if("start"!==t.action||null==this.analysisViewData.plane||!t.screenPoint)return;const e=nt(this.analysisViewData.plane,this.view.renderCoordsHelper,2,R()),i=yt(this.view.state.camera,t.screenPoint,kt),a=b();I(e,i,a)&&(j(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateTiltDragPipeline(t){return gt(t,(t,e,i)=>{const a=this.inputState;if(null==a||"rotate"!==a.type)return;const s=null!=this.analysisViewData.plane?j(this.analysisViewData.plane,x()):null;e.next(Pt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next(()=>{null!=s&&this._updateBoundedPlane(s)})})}_rotateDragRenderPlaneToRotate(t){return e=>{if(null==this.analysisViewData.plane)return null;const i=z(t.rotatePlane),a=mt(t.startPoint,e.renderEnd,this.analysisViewData.plane.origin,i);return{...e,rotateAxis:i,rotateAngle:a}}}_rotateDragUpdatePlaneFromRotate(){return t=>{if(null==this.analysisViewData.plane)return;const e=_(U.get(),t.rotateAngle,t.rotateAxis);if(null==e)return;const i=M(G.get(),this._startPlane.basis1,e),a=M(G.get(),this._startPlane.basis2,e),s=C(this.analysisViewData.plane.origin,i,a,x());this._updateBoundedPlane(s)}}_onResizeGrab(t,e){if("start"!==t.action||null==this.analysisViewData.plane||!t.screenPoint)return;const i=yt(this.view.state.camera,t.screenPoint,kt),a=G.get();I(this.analysisViewData.plane.plane,i,a)&&(j(this.analysisViewData.plane,this._startPlane),this.inputState={type:"resize",activeHandleIdx:e,startPoint:T(a)})}_createResizeDragPipeline(t){return gt(t,(t,e,i)=>{const a=this.inputState;if(null==a||"resize"!==a.type||null==this.analysisViewData.plane)return;const s=j(this.analysisViewData.plane,x());e.next(Pt(this.view,this.analysisViewData.plane.plane)).next(this._resizeDragUpdatePlane(a)),i.next(()=>{this._updateBoundedPlane(s)})})}_resizeDragUpdatePlane(t){return e=>{if(null==this.analysisViewData.plane)return;const i=this._resizeHandles[t.activeHandleIdx],a=rt(i,t.startPoint,e.renderEnd,this.view.state.camera,this._startPlane,j(this.analysisViewData.plane));this._updateBoundedPlane(a)}}_updateBoundedPlane(t){const e=this.analysisViewData;if(null==e)throw new Error("valid internal object expected");e.plane=t}_updatePreviewPlane(t,e={}){if("exclude"===this.mode)return;let i=this._previewPlane;if(this._previewPlane=null,null==t)return this._removeFrameTask(),void this._updateManipulators();if(this.active){const a=null!=i?i:x();if(i=null!=i?j(i,St):null,this._pickPlane(t,!0,e,a)){const t=tt;let e=!1;null!=i&&(e=P(z(i.plane),z(a.plane))<t||P(D(G.get(),i.basis1),D(G.get(),a.basis1))<t),e&&(this._previewPlaneOpacity=0),this._previewPlane=a}}null!=this._previewPlane&&null==this._frameTask&&0===this._previewPlaneOpacity?this._frameTask=h({update:({deltaTime:t})=>{this._previewPlaneOpacity=Math.min(this._previewPlaneOpacity+t/(1e3*$),1),this._updateManipulators(),1===this._previewPlaneOpacity&&this._removeFrameTask()}}):null==this._previewPlane&&null!=this._frameTask?this._removeFrameTask():null!=this._previewPlane&&this._updateManipulators()}_removeFrameTask(){this._frameTask=s(this._frameTask)}_pickMinResult(t){const e=u(t,K.get());return this.view.sceneIntersectionHelper.intersectToolIntersectorScreen(e,this._intersector),this._intersector.results.min}_pickPlane(t,e,i,a){const s=this._pickMinResult(t),n=G.get();if(!s.getIntersectionPoint(n))return!1;const r=s.getTransformedNormal(G.get()),l=this.view.state.camera;P(r,l.viewForward)>0&&g(r,r,-1);const o=lt(n,l),h=(e?1:-1)*o*et,p=g(G.get(),r,h);f(p,p,n);const u=this.analysis.tiltEnabled?3:0,c=i[Y]?2:i[Z]?1:u;return ot(p,r,o,o,l,c,this.view.renderCoordsHelper,a),!0}_clearPointerMoveTimeout(){this._prevPointerMoveTimeout=s(this._prevPointerMoveTimeout)}_resetPointerMoveTimeout(){this._clearPointerMoveTimeout(),this.shiftManipulator.state|=ht,this.rotateHeadingManipulator.state|=ht,this.rotateTiltManipulator.state|=ht,this._prevPointerMoveTimeout=this._clock.setTimeout(()=>{this.shiftManipulator.state&=~ht,this.rotateHeadingManipulator.state&=~ht,this.rotateTiltManipulator.state&=~ht},this._pointerMoveTimerMs)}_updateManipulators(){if(Dt.disableEngineLayers)return;let t,e,i=!1;if(null!=this.analysisViewData.plane)t=this.analysisViewData.plane,e=this._previewPlane??t,i=!1;else{if(null==this._previewPlane)return this._setManipulatorVisibility(!1),void this._setPreviewPlaneVisibility(!1);e=t=this._previewPlane,i=!0}if(this._setManipulatorVisibility(!i),!i){const e=pt(t,U.get());ut(this.shiftManipulator,e,t,this.view.state.camera),ct(this.rotateHeadingManipulator,e,t,this.view.renderCoordsHelper),dt(this.rotateTiltManipulator,e,t),this.resizeManipulators.forEach((i,a)=>_t(i,this._resizeHandles[a],e,t))}this._setPreviewPlaneVisibility(!this._creatingPointerId&&(i||"place"===this._mode)),this._updatePreviewPlaneTransform(e),this._updateMaterials()}_setManipulatorVisibility(t){this.shiftManipulator.available=t,this.rotateHeadingManipulator.available=t,this.rotateTiltManipulator.available=t&&this.analysis.tiltEnabled,this.resizeManipulators.forEach(e=>e.available=t)}_updatePreviewPlaneTransform(t){const e=pt(t,U.get()),i=V(G.get(),y(t.basis1),y(t.basis2),1),a=v(U.get(),i),s=m(a,e,a);this._previewPlaneOutlineVisualElement.transform=s,this._previewPlaneGridVisualElement.transform=s}_setPreviewPlaneVisibility(t){const e=this._previewPlaneOutlineVisualElement,i=this._previewPlaneGridVisualElement;t&&(e.attached=!0,i.attached=!0),e.visible=t,i.visible=t}_updateMaterials(){const t=N(this.view.effectiveTheme);t[3]*=this._previewPlaneOpacity;const e=S(J);e[3]*=this._previewPlaneOpacity,this._previewPlaneOutlineVisualElement.color=t,this._previewPlaneGridVisualElement.backgroundColor=e,this._previewPlaneGridVisualElement.gridColor=k}_updateManipulatorsInteractive(t){if(!t.grabbing)return this.shiftManipulator.interactive=!0,this.rotateHeadingManipulator.interactive=!0,this.rotateTiltManipulator.interactive=!0,void this.resizeManipulators.forEach(t=>{t.interactive=!0});this.shiftManipulator.interactive=this.shiftManipulator===t,this.rotateHeadingManipulator.interactive=this.rotateHeadingManipulator===t,this.rotateTiltManipulator.interactive=this.rotateTiltManipulator===t,this.resizeManipulators.forEach(e=>{e.interactive=e===t})}_finishToolCreationIfValid(){this.analysis.valid&&this.finishToolCreation()}get test(){return{plane:this.analysisViewData.plane,setPointerMoveTimerMs:t=>{this._pointerMoveTimerMs=t}}}};function bt(t,e,i,a){const s=vt(i,E(a),t.direction,R()),n=b();return I(s,t,n)?{type:"shift",creatingPointerId:e,hasBeenDragged:!1,shiftPlane:s,depth:0,startPoint:n}:null}function Tt(t){return"mouse"!==t.pointerType||0===t.button}t([c()],Vt.prototype,"_clock",void 0),t([c({constructOnly:!0})],Vt.prototype,"view",void 0),t([c()],Vt.prototype,"analysisViewData",void 0),t([c({readOnly:!0})],Vt.prototype,"state",null),t([c({readOnly:!0})],Vt.prototype,"cursor",null),t([c()],Vt.prototype,"analysis",null),t([c()],Vt.prototype,"removeIncompleteOnCancel",void 0),t([c()],Vt.prototype,"_mode",void 0),t([c()],Vt.prototype,"mode",null),t([c({value:null})],Vt.prototype,"inputState",null),t([c()],Vt.prototype,"_placingSlicePlane",null),t([c()],Vt.prototype,"_creatingPointerId",null),Vt=Dt=t([d("esri.views.3d.analysis.Slice.SliceTool")],Vt);const St=x(),kt=O();export{Vt as default};