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

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 (766) hide show
  1. package/analysis/ElevationProfileAnalysis.js +1 -1
  2. package/analysis/VolumeMeasurement/VolumeMeasurementCutFillOptions.js +1 -1
  3. package/analysis/VolumeMeasurement/volumeMeasurementConfiguration.js +5 -0
  4. package/analysis/VolumeMeasurementAnalysis.js +1 -1
  5. package/analysis/featureReferenceUtils.js +1 -1
  6. package/applications/Components/featureUtils.d.ts +1 -0
  7. package/applications/Components/featureUtils.js +1 -1
  8. package/applications/KnowledgeStudio/resourceSerializationUtils.js +1 -1
  9. package/assets/esri/core/workers/RemoteClient.js +1 -1
  10. package/assets/esri/core/workers/chunks/{57c08ccb75e3135978d1.js → 0086a09441627842d34a.js} +1 -1
  11. package/assets/esri/core/workers/chunks/02bc183e30e3392bb76d.js +1 -0
  12. package/assets/esri/core/workers/chunks/{155dcbd957f8787a45c3.js → 05eee334d58a0b9f6316.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{0f37204f86d2997a2811.js → 06e60fc7715d08ede59d.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{94ddf029698991d853b9.js → 0811ac64d08454460fb1.js} +1 -1
  15. package/assets/esri/core/workers/chunks/{6391ce002fbde9f27a77.js → 081a7082dc281ca7662a.js} +1 -1
  16. package/assets/esri/core/workers/chunks/{3c3b1dc95f03082e4d5b.js → 083f1c2fd0b59a0bf4c3.js} +1 -1
  17. package/assets/esri/core/workers/chunks/097e5deb51ee7e25e654.js +1 -0
  18. package/assets/esri/core/workers/chunks/{c6cae8471c5d4ae40c65.js → 145c6a7cdcc9893efb27.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{0cfded1acf92f89a13cb.js → 14ace5dc4b8984212a57.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{39a5863355cccaabd2d6.js → 1762ff76350065750c75.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{a98b284b147258629947.js → 188272af9a6470ccfe31.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{ce8f56cf371812b57a46.js → 19699769deff862e29ce.js} +1 -1
  23. package/assets/esri/core/workers/chunks/{ce2fcaa21d6efcdf4da5.js → 1b85967d1178956ee36b.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{bf9d09493fd849ea69fd.js → 1fd459234917a51b6ae1.js} +1 -1
  25. package/assets/esri/core/workers/chunks/{0aaaf4d1c4a5d284216e.js → 22bb877b85ae250d7819.js} +1 -1
  26. package/assets/esri/core/workers/chunks/24b97ba933324aea6a07.js +1 -0
  27. package/assets/esri/core/workers/chunks/{e5d974593043d5e2b502.js → 2795a2817ebe3298c350.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{71fef0a33b7ed9456e47.js → 28a5f8978817e0471a2a.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{07a7ca89ef2ca4fc090b.js → 2a30afa043e3f88655d9.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{41f275401e1cde7eee20.js → 2a8b75d2445680571759.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{6b208f5d423da64c8559.js → 2a900a632a1231deb713.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{0e5e565df6ec71445f2e.js → 2bbe8277578b033f92d4.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{77e611724a499d36eacc.js → 2c72e185b780bbbb1c9f.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{38d874d7f815f5329420.js → 2ca8b0c1ca399fd5dc2f.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{c799f1c03cb22ef52f5f.js → 2d51e9c9b73301b6879c.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{cd0c222a36caa7f80860.js → 2f9e79a67eae746d55d3.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{0856cd281efd71bfe3c4.js → 3116b35a92cc0afd9fd3.js} +1 -1
  38. package/assets/esri/core/workers/chunks/{e153b61560a7a869db63.js → 319c3f46f2afb8f3e5a9.js} +1 -1
  39. package/assets/esri/core/workers/chunks/{b8f55ee77ab6ea4c289e.js → 326a76a4e80269d4029d.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{28bb6896c5fd353ca5e9.js → 3367b8565226646decec.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{8513c9282c44bb0a736e.js → 3495162f4608f5205d87.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{c38360d912f256519e06.js → 3496e025e48cf580250d.js} +1 -1
  43. package/assets/esri/core/workers/chunks/{4753793daf0b7ff8b5ff.js → 35255e2b980f650490d8.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{d2df6e685d6cffc5f486.js → 37d05d9796917c3d4b7a.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{7b17f52019762aa21af8.js → 3815ffa13e7b439bca6e.js} +1 -1
  46. package/assets/esri/core/workers/chunks/{de34c21d3e6913befe5a.js → 3b65d6a78fbffca37fbd.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{2698f656405876f4bd20.js → 3ccdce156b906574bd29.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{0ceb68ff73e5d39e837a.js → 3ffdf73aaecc42448f8a.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{68f5a2d2666636c3f807.js → 40b81d1c2d53cf598b8e.js} +1 -1
  50. package/assets/esri/core/workers/chunks/4239572007ecfac49dc1.js +1 -0
  51. package/assets/esri/core/workers/chunks/{f3284d4e0d41efb0b4a0.js → 441ead5bce80f639934e.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{97eb2cfc1f036feea9a9.js → 44c3b5a507814103f4b4.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{6f29951f5a2da068b257.js → 456161a323be7d640c61.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{b18887a6dc86f0c8324a.js → 48646f3d95a3f2b17e78.js} +1 -1
  55. package/assets/esri/core/workers/chunks/49571d6875de1f2e7e25.js +33 -0
  56. package/assets/esri/core/workers/chunks/{1bbc0dfad4cd72a1c42b.js → 4a2bf3c8da24abd8b9e2.js} +6 -6
  57. package/assets/esri/core/workers/chunks/4b13749b74059a7837d2.js +1 -0
  58. package/assets/esri/core/workers/chunks/{c8e4fe0e3b109eb80e8e.js → 4b83b45df0c4005d078d.js} +1 -1
  59. package/assets/esri/core/workers/chunks/{896c7d137bfd7a8fa0bc.js → 4f01be74dd26e639330f.js} +1 -1
  60. package/assets/esri/core/workers/chunks/{b5c829e904bc9cb5347d.js → 50a5caa96c111dda5c60.js} +1 -1
  61. package/assets/esri/core/workers/chunks/{98381404f2d99a1f9341.js → 50e1c63d0b6196dd365e.js} +1 -1
  62. package/assets/esri/core/workers/chunks/{899f493412acd5a5d91f.js → 5132ca68e8c7af111a47.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{d08b80583a23ba253c7e.js → 56916e56c20465428dd4.js} +1 -1
  64. package/assets/esri/core/workers/chunks/{bbdadced49446c907361.js → 578789c040846ea3759b.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{f62717338075df626eda.js → 5a527a47285a5995cff9.js} +1 -1
  66. package/assets/esri/core/workers/chunks/5cb92abb1f0f38bd0eab.js +1 -0
  67. package/assets/esri/core/workers/chunks/{56edb55b53779e7fd31e.js → 5d2e5774768d8f290343.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{6e5175b43220d6692263.js → 5d3661d1fe46dd29aae9.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{0652d7e525d99e39c957.js → 5fb2ce028b371b3a8acb.js} +1 -1
  70. package/assets/esri/core/workers/chunks/63019a7eb5222dc5e420.js +1 -0
  71. package/assets/esri/core/workers/chunks/{71c6c0b26253c4ca1b68.js → 630efe10c871425b6a95.js} +1 -1
  72. package/assets/esri/core/workers/chunks/64629ddcf008349eaf41.js +1 -0
  73. package/assets/esri/core/workers/chunks/{61e8e159f1f336569b27.js → 65111858957f43eacd8c.js} +1 -1
  74. package/assets/esri/core/workers/chunks/{0427f66b56ec6601deb0.js → 6ac90d88e5f931b1a003.js} +1 -1
  75. package/assets/esri/core/workers/chunks/6c842b955fdd40b39914.js +1 -0
  76. package/assets/esri/core/workers/chunks/{08b0fc6bfe9640ee2525.js → 6cd379bb66dc4cf5d2bf.js} +1 -1
  77. package/assets/esri/core/workers/chunks/6ec77a8142fbfa805b5a.js +1 -0
  78. package/assets/esri/core/workers/chunks/{541bffd61006d0e36166.js → 6f4bd0ee85e7e5a74340.js} +1 -1
  79. package/assets/esri/core/workers/chunks/{648c91a9822bc9d6ee47.js → 701a1835684cf815bcb7.js} +1 -1
  80. package/assets/esri/core/workers/chunks/{f71b76c9506178124fa3.js → 70af1b5b3d2f3f395441.js} +1 -1
  81. package/assets/esri/core/workers/chunks/{d7adef4093ce19ad356d.js → 72846fb9c87c6642daf0.js} +1 -1
  82. package/assets/esri/core/workers/chunks/{f88fe2e8fbc763bdc940.js → 73c1d43070b4fe1e5c1e.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{cab2a1382bdd32bb34d8.js → 7421f9575487cdc9e28e.js} +1 -1
  84. package/assets/esri/core/workers/chunks/{a845c68e76382a73da5e.js → 7633537dc0c65d655baf.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{82e0d22619dc26920ca9.js → 7698f4f4471b6e1c12ef.js} +1 -1
  86. package/assets/esri/core/workers/chunks/{9a0b9d931c1a29e81475.js → 76e444bd625cf3d35877.js} +1 -1
  87. package/assets/esri/core/workers/chunks/{b265472ac3f949a7f40c.js → 773d76253588bcf14eaa.js} +1 -1
  88. package/assets/esri/core/workers/chunks/{77705d0c7c17bd46d81a.js → 7810f870d71f80ca4f41.js} +1 -1
  89. package/assets/esri/core/workers/chunks/{56de25a6fe659a5b5c2b.js → 78b35a19332e58c8c279.js} +1 -1
  90. package/assets/esri/core/workers/chunks/{e4833b718a813a8d125b.js → 79012b873d2b7786be77.js} +1 -1
  91. package/assets/esri/core/workers/chunks/7a6a96edc892d7060b7d.js +1 -0
  92. package/assets/esri/core/workers/chunks/7b3ff47cdbb6af38530d.js +1 -0
  93. package/assets/esri/core/workers/chunks/{04dbdaa63c950f32b8f0.js → 7e8f7fa884d6d41ebae2.js} +1 -1
  94. package/assets/esri/core/workers/chunks/{48133effac2eacc2196e.js → 7fa324900c147ba51019.js} +1 -1
  95. package/assets/esri/core/workers/chunks/80c492f8fdab7698596a.js +1 -0
  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/{a6533bab3b2fbc1e2a47.js → 8b16aa50d879b92a5375.js} +1 -1
  106. package/assets/esri/core/workers/chunks/{2b9c9a35a6e1f56920b5.js → 9027f22a04ac2076ff0e.js} +14 -14
  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/{a0fab8cd791c33d3895d.js → 98dbafa4d45fdf790fff.js} +1 -1
  111. package/assets/esri/core/workers/chunks/{2b867cec6ada339f1c8f.js → 9958a3ed4aa787d19e00.js} +1 -1
  112. package/assets/esri/core/workers/chunks/9a723d739ac44b45432c.js +1 -0
  113. package/assets/esri/core/workers/chunks/9c6fc4fe2c46f40d63d9.js +1 -0
  114. package/assets/esri/core/workers/chunks/{9d9a639f7388a29e7c96.js → 9e4f37367d61a2e13053.js} +1 -1
  115. package/assets/esri/core/workers/chunks/a16526adc0dbffdc1ffc.js +1 -0
  116. package/assets/esri/core/workers/chunks/a19063456ce21b471b69.js +1 -0
  117. package/assets/esri/core/workers/chunks/{c4641c2c130c7b8bcdee.js → a1c4509a3865139eb570.js} +1 -1
  118. package/assets/esri/core/workers/chunks/{e2fdc4dc1ab9decd731e.js → a4db5c9a90107e097df8.js} +1 -1
  119. package/assets/esri/core/workers/chunks/{176f56de787bf486be9f.js → a7bd294996e6c8b8354a.js} +1 -1
  120. package/assets/esri/core/workers/chunks/{80a155496deef2c02a3e.js → a878061845e594b2d72c.js} +1 -1
  121. package/assets/esri/core/workers/chunks/{8f426cb210a4250517d5.js → ad3e18c4c65aa2cd1ceb.js} +1 -1
  122. package/assets/esri/core/workers/chunks/{0328eaea66c1db98da1c.js → ae807912acc19a166264.js} +1 -1
  123. package/assets/esri/core/workers/chunks/{0a981061df08da19372c.js → ae8c387d59be87457567.js} +1 -1
  124. package/assets/esri/core/workers/chunks/{5caf49e679ed0c27e0bd.js → aea8553a2aa54cfd694b.js} +1 -1
  125. package/assets/esri/core/workers/chunks/b1f667006cba60ef4aa7.js +1 -0
  126. package/assets/esri/core/workers/chunks/{70c8f69eed14d55c5cf6.js → b2add7338258ca7c24dd.js} +1 -1
  127. package/assets/esri/core/workers/chunks/b2d9f4e057af26a538fb.js +1 -0
  128. package/assets/esri/core/workers/chunks/{26081b6486c623735657.js → b4ea675831627d9808dd.js} +1 -1
  129. package/assets/esri/core/workers/chunks/{35ca317490540fae437c.js → b54202dcab8df080e991.js} +1 -1
  130. package/assets/esri/core/workers/chunks/ba212ba895ccf573eedf.js +1 -0
  131. package/assets/esri/core/workers/chunks/{95bae3c275f1483eb7ed.js → bcff6178e9d16b1b6191.js} +1 -1
  132. package/assets/esri/core/workers/chunks/{2845a0810e9c00bf30f8.js → bf775fe489213cfc08b1.js} +1 -1
  133. package/assets/esri/core/workers/chunks/{4823e4522bd7379d858e.js → bfc1e8aec7aace3ff30e.js} +1 -1
  134. package/assets/esri/core/workers/chunks/c0849628a7fbc6869340.js +1 -0
  135. package/assets/esri/core/workers/chunks/{20003728a679479b14dc.js → c31583229a1100b66a18.js} +1 -1
  136. package/assets/esri/core/workers/chunks/{9346437b152b20bdcf8a.js → c941d15190fc08523d0d.js} +1 -1
  137. package/assets/esri/core/workers/chunks/{5746c4861af83c1d57a8.js → cf11b1dcc2cff30229b6.js} +1 -1
  138. package/assets/esri/core/workers/chunks/{fe1dcf9f81da4adbb1fe.js → cf13625a033f9903655f.js} +1 -1
  139. package/assets/esri/core/workers/chunks/{1990162dcf73601d54f7.js → d3cd9c24edf7520d0824.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/{c5c6a32a24005478c976.js → e032f3d2ee19790f8c79.js} +1 -1
  149. package/assets/esri/core/workers/chunks/{3d7923d25734d03a4d27.js → e1dba29f5fd1ee5fc999.js} +1 -1
  150. package/assets/esri/core/workers/chunks/{352511dbc67166face40.js → e2e32e2f04cce9e932fd.js} +1 -1
  151. package/assets/esri/core/workers/chunks/e5bcc44f3dc6fc90835a.js +1 -0
  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/f09242e97196ad177c10.js +1 -0
  155. package/assets/esri/core/workers/chunks/{779ee975efebb838b5d6.js → f154336b4af011cd0c56.js} +1 -1
  156. package/assets/esri/core/workers/chunks/{3807d0b9b1894731174d.js → f1be3a177328a169128f.js} +1 -1
  157. package/assets/esri/core/workers/chunks/{0810dbbf348a927392e7.js → f59c782898d931810374.js} +1 -1
  158. package/assets/esri/core/workers/chunks/{c9159ebf930af3f336f3.js → f5d89b48f62fba78fd10.js} +1 -1
  159. package/assets/esri/core/workers/chunks/f7846523adacbfe5047e.js +1 -0
  160. package/assets/esri/core/workers/chunks/{b510c07dfd0d31683b08.js → f7a9d2da07196a0989ae.js} +1 -1
  161. package/assets/esri/core/workers/chunks/{143503f6eb270c4683f8.js → f7c99e9c8d19352af38d.js} +1 -1
  162. package/assets/esri/core/workers/chunks/{79ab06fb4c91ac8da323.js → f839b86bee15deaf84e4.js} +1 -1
  163. package/assets/esri/core/workers/chunks/{9adecee0ed2f1df3b0d2.js → f85e2b6a285fa8ad60aa.js} +1 -1
  164. package/assets/esri/core/workers/chunks/{024063fe2bbb27899094.js → fbbccca5b1bcffb31c4e.js} +1 -1
  165. package/assets/esri/core/workers/chunks/{009556f323e58271bc7a.js → fc4417d1260b717a9385.js} +1 -1
  166. package/assets/esri/core/workers/chunks/{6810ecdeccf4b7eae5e2.js → fdaf8fb5a3cc7abea44b.js} +1 -1
  167. package/assets/esri/core/workers/chunks/{05072093e0209ef5db20.js → fe3f95fda29e4844b153.js} +1 -1
  168. package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
  169. package/assets/esri/themes/base/widgets/_Editor.scss +4 -0
  170. package/assets/esri/themes/dark/main.css +1 -1
  171. package/assets/esri/themes/light/main.css +1 -1
  172. package/assets/esri/themes/light/view.css +1 -1
  173. package/assets/esri/widgets/Editor/t9n/Editor.json +1 -1
  174. package/assets/esri/widgets/Editor/t9n/Editor_ar.json +1 -1
  175. package/assets/esri/widgets/Editor/t9n/Editor_bg.json +1 -1
  176. package/assets/esri/widgets/Editor/t9n/Editor_bs.json +1 -1
  177. package/assets/esri/widgets/Editor/t9n/Editor_ca.json +1 -1
  178. package/assets/esri/widgets/Editor/t9n/Editor_cs.json +1 -1
  179. package/assets/esri/widgets/Editor/t9n/Editor_da.json +1 -1
  180. package/assets/esri/widgets/Editor/t9n/Editor_de.json +1 -1
  181. package/assets/esri/widgets/Editor/t9n/Editor_el.json +1 -1
  182. package/assets/esri/widgets/Editor/t9n/Editor_en.json +1 -1
  183. package/assets/esri/widgets/Editor/t9n/Editor_es.json +1 -1
  184. package/assets/esri/widgets/Editor/t9n/Editor_et.json +1 -1
  185. package/assets/esri/widgets/Editor/t9n/Editor_fi.json +1 -1
  186. package/assets/esri/widgets/Editor/t9n/Editor_fr.json +1 -1
  187. package/assets/esri/widgets/Editor/t9n/Editor_he.json +1 -1
  188. package/assets/esri/widgets/Editor/t9n/Editor_hr.json +1 -1
  189. package/assets/esri/widgets/Editor/t9n/Editor_hu.json +1 -1
  190. package/assets/esri/widgets/Editor/t9n/Editor_id.json +1 -1
  191. package/assets/esri/widgets/Editor/t9n/Editor_it.json +1 -1
  192. package/assets/esri/widgets/Editor/t9n/Editor_ja.json +1 -1
  193. package/assets/esri/widgets/Editor/t9n/Editor_ko.json +1 -1
  194. package/assets/esri/widgets/Editor/t9n/Editor_lt.json +1 -1
  195. package/assets/esri/widgets/Editor/t9n/Editor_lv.json +1 -1
  196. package/assets/esri/widgets/Editor/t9n/Editor_nl.json +1 -1
  197. package/assets/esri/widgets/Editor/t9n/Editor_no.json +1 -1
  198. package/assets/esri/widgets/Editor/t9n/Editor_pl.json +1 -1
  199. package/assets/esri/widgets/Editor/t9n/Editor_pt-BR.json +1 -1
  200. package/assets/esri/widgets/Editor/t9n/Editor_pt-PT.json +1 -1
  201. package/assets/esri/widgets/Editor/t9n/Editor_ro.json +1 -1
  202. package/assets/esri/widgets/Editor/t9n/Editor_ru.json +1 -1
  203. package/assets/esri/widgets/Editor/t9n/Editor_sk.json +1 -1
  204. package/assets/esri/widgets/Editor/t9n/Editor_sl.json +1 -1
  205. package/assets/esri/widgets/Editor/t9n/Editor_sr.json +1 -1
  206. package/assets/esri/widgets/Editor/t9n/Editor_sv.json +1 -1
  207. package/assets/esri/widgets/Editor/t9n/Editor_th.json +1 -1
  208. package/assets/esri/widgets/Editor/t9n/Editor_tr.json +1 -1
  209. package/assets/esri/widgets/Editor/t9n/Editor_uk.json +1 -1
  210. package/assets/esri/widgets/Editor/t9n/Editor_vi.json +1 -1
  211. package/assets/esri/widgets/Editor/t9n/Editor_zh-CN.json +1 -1
  212. package/assets/esri/widgets/Editor/t9n/Editor_zh-HK.json +1 -1
  213. package/assets/esri/widgets/Editor/t9n/Editor_zh-TW.json +1 -1
  214. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer.json +1 -1
  215. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
  216. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
  217. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
  218. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
  219. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
  220. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
  221. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
  222. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
  223. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_en.json +1 -1
  224. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
  225. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
  226. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
  227. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
  228. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
  229. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
  230. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
  231. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
  232. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
  233. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
  234. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
  235. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
  236. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
  237. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
  238. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_no.json +1 -1
  239. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
  240. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
  241. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
  242. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
  243. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
  244. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
  245. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
  246. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
  247. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
  248. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
  249. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
  250. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
  251. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
  252. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
  253. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
  254. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
  255. package/assets/esri/widgets/Sketch/t9n/Sketch.json +1 -1
  256. package/assets/esri/widgets/Sketch/t9n/Sketch_ar.json +1 -1
  257. package/assets/esri/widgets/Sketch/t9n/Sketch_bg.json +1 -1
  258. package/assets/esri/widgets/Sketch/t9n/Sketch_bs.json +1 -1
  259. package/assets/esri/widgets/Sketch/t9n/Sketch_ca.json +1 -1
  260. package/assets/esri/widgets/Sketch/t9n/Sketch_cs.json +1 -1
  261. package/assets/esri/widgets/Sketch/t9n/Sketch_da.json +1 -1
  262. package/assets/esri/widgets/Sketch/t9n/Sketch_de.json +1 -1
  263. package/assets/esri/widgets/Sketch/t9n/Sketch_el.json +1 -1
  264. package/assets/esri/widgets/Sketch/t9n/Sketch_en.json +1 -1
  265. package/assets/esri/widgets/Sketch/t9n/Sketch_es.json +1 -1
  266. package/assets/esri/widgets/Sketch/t9n/Sketch_et.json +1 -1
  267. package/assets/esri/widgets/Sketch/t9n/Sketch_fi.json +1 -1
  268. package/assets/esri/widgets/Sketch/t9n/Sketch_fr.json +1 -1
  269. package/assets/esri/widgets/Sketch/t9n/Sketch_he.json +1 -1
  270. package/assets/esri/widgets/Sketch/t9n/Sketch_hr.json +1 -1
  271. package/assets/esri/widgets/Sketch/t9n/Sketch_hu.json +1 -1
  272. package/assets/esri/widgets/Sketch/t9n/Sketch_id.json +1 -1
  273. package/assets/esri/widgets/Sketch/t9n/Sketch_it.json +1 -1
  274. package/assets/esri/widgets/Sketch/t9n/Sketch_ja.json +1 -1
  275. package/assets/esri/widgets/Sketch/t9n/Sketch_ko.json +1 -1
  276. package/assets/esri/widgets/Sketch/t9n/Sketch_lt.json +1 -1
  277. package/assets/esri/widgets/Sketch/t9n/Sketch_lv.json +1 -1
  278. package/assets/esri/widgets/Sketch/t9n/Sketch_nl.json +1 -1
  279. package/assets/esri/widgets/Sketch/t9n/Sketch_no.json +1 -1
  280. package/assets/esri/widgets/Sketch/t9n/Sketch_pl.json +1 -1
  281. package/assets/esri/widgets/Sketch/t9n/Sketch_pt-BR.json +1 -1
  282. package/assets/esri/widgets/Sketch/t9n/Sketch_pt-PT.json +1 -1
  283. package/assets/esri/widgets/Sketch/t9n/Sketch_ro.json +1 -1
  284. package/assets/esri/widgets/Sketch/t9n/Sketch_ru.json +1 -1
  285. package/assets/esri/widgets/Sketch/t9n/Sketch_sk.json +1 -1
  286. package/assets/esri/widgets/Sketch/t9n/Sketch_sl.json +1 -1
  287. package/assets/esri/widgets/Sketch/t9n/Sketch_sr.json +1 -1
  288. package/assets/esri/widgets/Sketch/t9n/Sketch_sv.json +1 -1
  289. package/assets/esri/widgets/Sketch/t9n/Sketch_th.json +1 -1
  290. package/assets/esri/widgets/Sketch/t9n/Sketch_tr.json +1 -1
  291. package/assets/esri/widgets/Sketch/t9n/Sketch_uk.json +1 -1
  292. package/assets/esri/widgets/Sketch/t9n/Sketch_vi.json +1 -1
  293. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-CN.json +1 -1
  294. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-HK.json +1 -1
  295. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-TW.json +1 -1
  296. package/chunks/Envelope.js +1 -1
  297. package/chunks/Fog.glsl.js +2 -2
  298. package/chunks/Geometry.js +1 -1
  299. package/chunks/GlowBlur.glsl.js +8 -9
  300. package/chunks/GlowComposition.glsl.js +15 -16
  301. package/chunks/Laserlines.glsl.js +12 -12
  302. package/chunks/MultiPathImpl.js +1 -1
  303. package/chunks/Point2D.js +1 -1
  304. package/chunks/PointRenderer.glsl.js +1 -1
  305. package/chunks/Precipitation.glsl.js +2 -2
  306. package/chunks/Terrain.glsl.js +1 -1
  307. package/chunks/boundedPlane.js +1 -1
  308. package/chunks/bundle.js +1 -1
  309. package/chunks/cameraUtilsPlanar.js +1 -1
  310. package/chunks/cameraUtilsSpherical.js +1 -1
  311. package/chunks/sphere.js +1 -1
  312. package/chunks/vec32.js +1 -1
  313. package/config.js +1 -1
  314. package/core/accessorSupport/extensions/serializableProperty/reader.js +1 -1
  315. package/core/accessorSupport/extensions/serializableProperty/utils.js +5 -0
  316. package/core/accessorSupport/extensions/serializableProperty.js +1 -1
  317. package/core/accessorSupport/read.js +1 -1
  318. package/core/accessorSupport/write.js +1 -1
  319. package/core/dedupeResult.js +5 -0
  320. package/core/has.js +1 -1
  321. package/core/libs/gl-matrix-2/math/quat.js +1 -1
  322. package/core/libs/gl-matrix-2/math/vec3.js +1 -1
  323. package/core/perspectiveUtils.js +1 -1
  324. package/core/workers/workerFactory.js +1 -1
  325. package/editing/geometry/lineUtils.js +1 -1
  326. package/geometry/Mesh.js +1 -1
  327. package/geometry/operators/support/jsonConverter.js +1 -1
  328. package/geometry/projection/localLinearScaleFactors.js +1 -1
  329. package/geometry/projection/projectDirection.js +1 -1
  330. package/geometry/projection/projectVec3Array.js +1 -1
  331. package/geometry/support/axisAngle.js +1 -1
  332. package/geometry/support/axisAngleDegrees.js +1 -1
  333. package/geometry/support/buffer/internals/Vec3.js +1 -1
  334. package/geometry/support/clipRay.js +1 -1
  335. package/geometry/support/coordinateSystem.js +1 -1
  336. package/geometry/support/frustum.js +1 -1
  337. package/geometry/support/lineSegment.js +1 -1
  338. package/geometry/support/meshUtils/centerAt.js +1 -1
  339. package/geometry/support/meshUtils/exporters/gltf/geometry.js +1 -1
  340. package/geometry/support/meshUtils/loadExternal.js +1 -1
  341. package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
  342. package/geometry/support/meshUtils/merge.js +1 -1
  343. package/geometry/support/meshUtils/rotate.js +1 -1
  344. package/geometry/support/meshUtils/scale.js +1 -1
  345. package/geometry/support/meshUtils/vertexSpaceConversion.js +1 -1
  346. package/geometry/support/plane.js +1 -1
  347. package/geometry/support/polygonUtils.js +1 -1
  348. package/geometry/support/ray.js +1 -1
  349. package/geometry/support/sphereUtils.js +1 -1
  350. package/geometry/support/triangle.js +1 -1
  351. package/geometry/support/vector.js +1 -1
  352. package/interfaces.d.ts +256 -188
  353. package/kernel.js +1 -1
  354. package/layers/FeatureLayer.js +1 -1
  355. package/layers/KnowledgeGraphLayer.js +1 -1
  356. package/layers/LinkChartLayer.js +1 -1
  357. package/layers/VoxelWasmPerSceneView.js +1 -1
  358. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  359. package/layers/graphics/sources/OGCFeatureSource.js +1 -1
  360. package/layers/graphics/sources/ParquetSource.js +1 -1
  361. package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
  362. package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
  363. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  364. package/layers/graphics/sources/support/QueryTask.js +1 -1
  365. package/layers/graphics/sources/support/clientSideDefaults.js +1 -1
  366. package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
  367. package/layers/knowledgeGraph/layerUtils.js +1 -1
  368. package/layers/mixins/ArcGISImageService.js +1 -1
  369. package/layers/orientedImagery/core/coverageUtils.js +1 -1
  370. package/layers/orientedImagery/transformations/utils.js +1 -1
  371. package/layers/orientedImagery/transformations/worldToImage.js +1 -1
  372. package/layers/support/Sublayer.js +1 -1
  373. package/layers/support/capabilities.js +1 -1
  374. package/layers/support/featurePopupQueryUtils.js +1 -1
  375. package/layers/support/layerUtils.js +1 -1
  376. package/layers/support/rasterDatasets/FunctionRaster.js +1 -1
  377. package/layers/support/serviceCapabilitiesUtils.js +1 -1
  378. package/layers/support/tiles3DUtils.js +1 -1
  379. package/layers/video/VideoCameraSensorModel.js +1 -1
  380. package/layers/voxel/VoxelVolume.js +1 -1
  381. package/layers/voxel/voxelPlaneUtils.js +1 -1
  382. package/package.json +3 -3
  383. package/rest/knowledgeGraph/GraphApplyEdits.js +1 -1
  384. package/rest/query/executePivotQuery.js +5 -0
  385. package/rest/query/operations/query.js +1 -1
  386. package/rest/query/operations/queryPivot.js +5 -0
  387. package/rest/query/operations/queryUtils.js +5 -0
  388. package/rest/support/PivotDefinition.js +5 -0
  389. package/rest/support/PivotQuery.js +5 -0
  390. package/rest/support/UnPivotDefinition.js +5 -0
  391. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  392. package/smartMapping/support/adapters/support/utils.js +1 -1
  393. package/support/basemapDefinitions.js +1 -1
  394. package/support/revision.js +1 -1
  395. package/views/2d/GoToManager.js +1 -1
  396. package/views/2d/analysis/ElevationProfile/ElevationProfileInputVisualization2D.js +1 -1
  397. package/views/2d/analysis/ElevationProfileAnalysisView2D.js +1 -1
  398. package/views/2d/engine/flow/dataUtils.js +1 -1
  399. package/views/2d/engine/flow/utils.js +1 -1
  400. package/views/2d/engine/webgl/AFeatureTile.js +1 -1
  401. package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
  402. package/views/2d/interactive/editingTools/TransformTool.js +1 -1
  403. package/views/2d/interactive/editingTools/manipulations/RotateManipulation.js +1 -1
  404. package/views/2d/interactive/editingTools/manipulations/ScaleManipulation.js +1 -1
  405. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  406. package/views/2d/layers/MapNotesLayerView2D.js +1 -1
  407. package/views/2d/layers/RouteLayerView2D.js +1 -1
  408. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  409. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  410. package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
  411. package/views/2d/navigation/actions/Pan.js +1 -1
  412. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
  413. package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
  414. package/views/3d/analysis/Dimension/lengthDimensionConstraintUtils.js +1 -1
  415. package/views/3d/analysis/Dimension/lengthDimensionManipulatorUtils.js +1 -1
  416. package/views/3d/analysis/Dimension/lengthDimensionUtils.js +1 -1
  417. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
  418. package/views/3d/analysis/ElevationProfile/ElevationProfileGeometryVisualization3D.js +5 -0
  419. package/views/3d/analysis/ElevationProfile/ElevationProfileLineSceneComputation.js +1 -1
  420. package/views/3d/analysis/ElevationProfile/ElevationProfileLineVisualization3D.js +1 -1
  421. package/views/3d/analysis/ElevationProfile/ElevationProfileVisualization3D.js +1 -1
  422. package/views/3d/analysis/ElevationProfileAnalysisView3D.js +1 -1
  423. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  424. package/views/3d/analysis/LineOfSight/LineOfSightRayIntersector.js +1 -1
  425. package/views/3d/analysis/LineOfSight/LineOfSightVisualization.js +1 -1
  426. package/views/3d/analysis/Slice/ShiftManipulator.js +1 -1
  427. package/views/3d/analysis/Slice/SliceTool.js +1 -1
  428. package/views/3d/analysis/Slice/SliceVisualization.js +1 -1
  429. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  430. package/views/3d/analysis/Viewshed/ViewshedComputedData.js +1 -1
  431. package/views/3d/analysis/Viewshed/ViewshedFieldOfViewManipulation.js +1 -1
  432. package/views/3d/analysis/Viewshed/ViewshedScaleOrientManipulation.js +1 -1
  433. package/views/3d/analysis/Viewshed/ViewshedShapeVisualElement.js +1 -1
  434. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  435. package/views/3d/analysis/Viewshed/ViewshedSubVisualization.js +1 -1
  436. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  437. package/views/3d/analysis/Viewshed/viewshedToolUtils.js +1 -1
  438. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  439. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillComputation.js +1 -1
  440. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  441. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
  442. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementError.js +1 -1
  443. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  444. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
  445. package/views/3d/analysis/VolumeMeasurement/volumeMeasurementErrors.js +5 -0
  446. package/views/3d/analysis/VolumeMeasurementAnalysisView3D.js +1 -1
  447. package/views/3d/analysis/support/measurementUtils.js +1 -1
  448. package/views/3d/animation/pointToPoint/Animation.js +1 -1
  449. package/views/3d/animation/pointToPoint/Camera.js +1 -1
  450. package/views/3d/camera/constraintUtils/altitude.js +1 -1
  451. package/views/3d/camera/constraintUtils/common.js +1 -1
  452. package/views/3d/camera/constraintUtils/distance.js +1 -1
  453. package/views/3d/camera/constraintUtils/surfaceCollision.js +1 -1
  454. package/views/3d/camera/constraintUtils/tilt.js +1 -1
  455. package/views/3d/camera/intersectionUtils.js +1 -1
  456. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  457. package/views/3d/environment/CloudsParameters.js +1 -1
  458. package/views/3d/environment/EnvironmentManager.js +1 -1
  459. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  460. package/views/3d/environment/Fog.js +1 -1
  461. package/views/3d/environment/MarsAtmosphere.js +1 -1
  462. package/views/3d/glTF/loader.js +1 -1
  463. package/views/3d/interactive/Manipulator3D.js +1 -1
  464. package/views/3d/interactive/SnappingVisualizer3D.js +1 -1
  465. package/views/3d/interactive/editingTools/dragEventPipeline3D.js +1 -1
  466. package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
  467. package/views/3d/interactive/editingTools/lineObjectVisualElementUtils.js +1 -1
  468. package/views/3d/interactive/editingTools/manipulations/MoveXYAxisManipulation.js +1 -1
  469. package/views/3d/interactive/editingTools/manipulations/MoveXYDiscManipulation.js +1 -1
  470. package/views/3d/interactive/editingTools/manipulations/MoveZManipulation.js +1 -1
  471. package/views/3d/interactive/editingTools/media/MediaElementManipulator3D.js +1 -1
  472. package/views/3d/interactive/editingTools/originGeometryVisualElementUtils.js +1 -1
  473. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  474. package/views/3d/interactive/editingTools/reshape/edgeOffsetUtils.js +1 -1
  475. package/views/3d/interactive/editingTools/transform/ScaleRotateTransform.js +1 -1
  476. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentMove.js +1 -1
  477. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentRotate.js +1 -1
  478. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentScale.js +1 -1
  479. package/views/3d/interactive/editingTools/transform/extentTransform/extentUtils.js +1 -1
  480. package/views/3d/interactive/manipulatorUtils.js +1 -1
  481. package/views/3d/interactive/support/viewUtils.js +1 -1
  482. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  483. package/views/3d/interactive/visualElements/LabelVisualElement.js +1 -1
  484. package/views/3d/interactive/visualElements/LaserlineVisualElement.js +1 -1
  485. package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
  486. package/views/3d/interactive/visualElements/MeasurementAreaVisualElement.js +1 -1
  487. package/views/3d/interactive/visualElements/MeasurementArrowVisualElement.js +1 -1
  488. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  489. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  490. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  491. package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
  492. package/views/3d/interactive/visualElements/VerticesVisualElement.js +1 -1
  493. package/views/3d/interactive/visualElements/support/Segment.js +1 -1
  494. package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
  495. package/views/3d/layers/FlowSubView3D.js +1 -1
  496. package/views/3d/layers/I3SMeshView3D.js +1 -1
  497. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  498. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  499. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  500. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  501. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  502. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  503. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  504. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  505. package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayer.js +1 -1
  506. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  507. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  508. package/views/3d/layers/graphics/Graphics3DLodInstanceGraphicLayer.js +1 -1
  509. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  510. package/views/3d/layers/graphics/Graphics3DMeshObject3DGraphicLayer.js +1 -1
  511. package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
  512. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  513. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  514. package/views/3d/layers/graphics/LabelInfo.js +1 -1
  515. package/views/3d/layers/graphics/Labeler.js +1 -1
  516. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  517. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  518. package/views/3d/layers/i3s/I3SGeometryUtil.js +1 -1
  519. package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
  520. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  521. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  522. package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
  523. package/views/3d/layers/i3s/LoDUtil.js +1 -1
  524. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  525. package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
  526. package/views/3d/layers/support/FeatureTileMeasurements3D.js +1 -1
  527. package/views/3d/layers/support/FeatureTileVisibility3D.js +1 -1
  528. package/views/3d/layers/support/I3STreeDebugger.js +1 -1
  529. package/views/3d/layers/support/uvUtils.js +1 -1
  530. package/views/3d/state/Frustum.js +1 -1
  531. package/views/3d/state/NearFarHeuristic.js +1 -1
  532. package/views/3d/state/controllers/FovController.js +1 -1
  533. package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
  534. package/views/3d/state/controllers/PinchAndPanControllerGlobal.js +1 -1
  535. package/views/3d/state/controllers/PinchAndPanControllerLocal.js +1 -1
  536. package/views/3d/state/controllers/RotateController.js +1 -1
  537. package/views/3d/state/controllers/ZoomControllerGlobal.js +1 -1
  538. package/views/3d/state/controllers/ZoomControllerLocal.js +1 -1
  539. package/views/3d/state/controllers/ZoomStepControllerGlobal.js +1 -1
  540. package/views/3d/state/controllers/ZoomStepControllerLocal.js +1 -1
  541. package/views/3d/state/controllers/momentum/PanPlanarMomentumController.js +1 -1
  542. package/views/3d/state/controllers/momentum/PanSphericalMomentumController.js +1 -1
  543. package/views/3d/state/controllers/momentum/ZoomPlanarMomentumController.js +1 -1
  544. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  545. package/views/3d/state/utils/navigationUtils.js +1 -1
  546. package/views/3d/state/utils/viewUtils.js +1 -1
  547. package/views/3d/support/FrustumExtentIntersection.js +1 -1
  548. package/views/3d/support/RenderCoordsHelper.js +1 -1
  549. package/views/3d/support/cameraUtils.js +1 -1
  550. package/views/3d/support/cameraUtilsInternal.js +1 -1
  551. package/views/3d/support/dito.js +1 -1
  552. package/views/3d/support/flow/FlowSubViewTiles3D.js +1 -1
  553. package/views/3d/support/flow/StreamlineResources3DOverlay.js +1 -1
  554. package/views/3d/support/flow/StreamlineResources3DShape.js +1 -1
  555. package/views/3d/support/flow/constants.js +1 -1
  556. package/views/3d/support/geometryUtils/ray.js +1 -1
  557. package/views/3d/support/intersectionUtils.js +1 -1
  558. package/views/3d/support/mathUtils.js +1 -1
  559. package/views/3d/support/orientedBoundingBox.js +1 -1
  560. package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
  561. package/views/3d/support/pointsOfInterest/CenterOnSurface.js +1 -1
  562. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  563. package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
  564. package/views/3d/support/sunUtils.js +1 -1
  565. package/views/3d/support/viewpointUtils.js +1 -1
  566. package/views/3d/terrain/OverlayManager.js +1 -1
  567. package/views/3d/terrain/OverlayRenderer.js +1 -1
  568. package/views/3d/terrain/PatchGeometry.js +1 -1
  569. package/views/3d/terrain/PatchRenderData.js +1 -1
  570. package/views/3d/terrain/SphericalPatch.js +1 -1
  571. package/views/3d/terrain/TerrainRenderer.js +1 -1
  572. package/views/3d/terrain/TerrainSurface.js +1 -1
  573. package/views/3d/terrain/Tile.js +1 -1
  574. package/views/3d/webgl/RenderCamera.js +1 -1
  575. package/views/3d/webgl-engine/Stage.js +1 -1
  576. package/views/3d/webgl-engine/collections/Component/ComponentObject.js +1 -1
  577. package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticBVH.js +1 -1
  578. package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticComponentGeometryBVH.js +1 -1
  579. package/views/3d/webgl-engine/collections/Component/DepthRange.js +1 -1
  580. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  581. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js +1 -1
  582. package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js +1 -1
  583. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +2 -2
  584. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +1 -1
  585. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js +1 -1
  586. package/views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js +1 -1
  587. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  588. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechnique.js +1 -1
  589. package/views/3d/webgl-engine/core/util/TwoVectorPosition.js +1 -1
  590. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +7 -7
  591. package/views/3d/webgl-engine/effects/glow/GlowCompositionTechnique.js +1 -1
  592. package/views/3d/webgl-engine/effects/glow/GlowRenderNode.js +1 -1
  593. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  594. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  595. package/views/3d/webgl-engine/effects/laserlines/LaserLineRenderer.js +1 -1
  596. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathData.js +1 -1
  597. package/views/3d/webgl-engine/lib/BoundingInfo.js +1 -1
  598. package/views/3d/webgl-engine/lib/CompositingHelper.js +1 -1
  599. package/views/3d/webgl-engine/lib/CutFillColor.js +1 -1
  600. package/views/3d/webgl-engine/lib/CutFillDepth.js +1 -1
  601. package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
  602. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  603. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  604. package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
  605. package/views/3d/webgl-engine/lib/Intersector.js +1 -1
  606. package/views/3d/webgl-engine/lib/IntersectorResult.js +1 -1
  607. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  608. package/views/3d/webgl-engine/lib/Octree.js +1 -1
  609. package/views/3d/webgl-engine/lib/Path.js +1 -1
  610. package/views/3d/webgl-engine/lib/PathGeometryData.js +1 -1
  611. package/views/3d/webgl-engine/lib/PathVertex.js +1 -1
  612. package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
  613. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  614. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  615. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  616. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  617. package/views/3d/webgl-engine/lib/ViewshedShadowMap.js +1 -1
  618. package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
  619. package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
  620. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  621. package/views/3d/webgl-engine/lib/edgeRendering/edgeBufferWriters.js +1 -1
  622. package/views/3d/webgl-engine/lib/edgeRendering/edgePreprocessing.js +1 -1
  623. package/views/3d/webgl-engine/lib/geometryDataUtils.js +1 -1
  624. package/views/3d/webgl-engine/lib/intersectorUtils.js +1 -1
  625. package/views/3d/webgl-engine/lib/lodRendering/InstanceData.js +1 -1
  626. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  627. package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
  628. package/views/3d/webgl-engine/lib/triangleIntersectionUtils.js +1 -1
  629. package/views/3d/webgl-engine/lib/verticalOffsetUtils.js +1 -1
  630. package/views/3d/webgl-engine/lighting/SceneLighting.js +1 -1
  631. package/views/3d/webgl-engine/lighting/SphericalHarmonics.js +1 -1
  632. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  633. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  634. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  635. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  636. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  637. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  638. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  639. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  640. package/views/3d/webgl-engine/materials/TriangleMaterial.js +1 -1
  641. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  642. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  643. package/views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js +1 -1
  644. package/views/3d/webgl.js +1 -1
  645. package/views/DOMContainer.js +1 -1
  646. package/views/SceneView.js +1 -1
  647. package/views/View.js +1 -1
  648. package/views/View2D.js +1 -1
  649. package/views/analysis/ElevationProfile/ElevationProfileController.js +1 -1
  650. package/views/analysis/ElevationProfile/ElevationProfileError.d.ts +4 -0
  651. package/views/analysis/ElevationProfile/ElevationProfileError.js +5 -0
  652. package/views/analysis/ElevationProfile/ElevationProfileLineGroundComputation.js +1 -1
  653. package/views/analysis/ElevationProfile/ElevationProfileLineInputComputation.js +1 -1
  654. package/views/analysis/ElevationProfile/ElevationProfileTool.js +1 -1
  655. package/views/analysis/ElevationProfile/elevationProfileErrors.js +5 -0
  656. package/views/analysis/ElevationProfile/elevationProfileGenerationUtils.js +1 -1
  657. package/views/analysis/ElevationProfile/elevationProfileGeometryUtils.js +1 -1
  658. package/views/analysis/ElevationProfile/elevationProfileInputVisualizationUtils.js +1 -1
  659. package/views/analysis/ElevationProfile/elevationProfileLayerUtils.js +5 -0
  660. package/views/analysis/ExclusiveOperationManager.js +1 -1
  661. package/views/draw/support/Reshape.js +1 -1
  662. package/views/draw/support/createUtils.js +1 -1
  663. package/views/draw/support/helpMessageUtils3d.js +1 -1
  664. package/views/draw/support/surfaceCoordinateSystems.js +1 -1
  665. package/views/interactive/GraphicManipulator.js +1 -1
  666. package/views/interactive/coordinateHelper.js +1 -1
  667. package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
  668. package/views/interactive/editGeometry/support/editPlaneUtils.js +1 -1
  669. package/views/interactive/sketch/constraintUtils.js +1 -1
  670. package/views/interactive/sketch/constraints.js +1 -1
  671. package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
  672. package/views/interactive/snapping/RightAngleSnapper.js +1 -1
  673. package/views/interactive/snapping/candidates/ParallelLineSnappingCandidate.js +1 -1
  674. package/views/interactive/snapping/candidates/RightAngleTriangleSnappingCandidate.js +1 -1
  675. package/views/interactive/snapping/featureSources/featureServiceSource/tileUtils.js +1 -1
  676. package/views/interactive/snapping/featureSources/sceneLayerSource/SceneLayerSnappingSourceWorker.js +1 -1
  677. package/views/interactive/snapping/featureSources/sceneLayerSource/sceneLayerSnappingUtils.js +1 -1
  678. package/views/interactive/snapping/hints/LineSnappingHint.js +1 -1
  679. package/views/interactive/tooltip/tooltipCommonUtils.js +1 -1
  680. package/views/layers/FeatureLayerView.d.ts +1 -1
  681. package/views/layers/FeatureLayerView.js +1 -1
  682. package/views/layers/SceneLayerView.js +1 -1
  683. package/views/navigation/PanPlanarMomentumEstimator.js +1 -1
  684. package/views/navigation/PanSphericalMomentumEstimator.js +1 -1
  685. package/views/navigation/gamepadAndKeyboardUtils.js +1 -1
  686. package/views/popupAdapter.js +1 -1
  687. package/views/support/angularMeasurementUtils.js +1 -1
  688. package/views/support/euclideanAreaMeasurementUtils.js +1 -1
  689. package/views/support/euclideanLengthMeasurementUtils.js +1 -1
  690. package/views/support/geometry3dUtils.js +1 -1
  691. package/widgets/Daylight/DaylightViewModel.js +1 -1
  692. package/widgets/Daylight.js +1 -1
  693. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  694. package/widgets/Editor/EditorViewModel.js +1 -1
  695. package/widgets/Editor/SplitFeatureWorkflow.js +1 -1
  696. package/widgets/Editor/SplitFeatureWorkflowData.js +1 -1
  697. package/widgets/Editor/UpdateWorkflow.js +1 -1
  698. package/widgets/Editor/components/PendingFeatureList.js +1 -1
  699. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  700. package/widgets/Editor/components/UploadDetails.js +1 -1
  701. package/widgets/Editor/components/workflowAdapters/pendingFeatureList/CreateFeaturesWorkflowPendingFeatureListAdapter.ts.js +5 -0
  702. package/widgets/Editor/components/workflowAdapters/pendingFeatureList/SplitFeatureWorkflowPendingFeatureListAdapter.js +5 -0
  703. package/widgets/Editor/css.js +1 -1
  704. package/widgets/Editor/modelUploadUtils.js +1 -1
  705. package/widgets/Editor/support/splitFeatureUtils.js +1 -1
  706. package/widgets/Editor/workflowUtils.js +1 -1
  707. package/widgets/Editor.js +1 -1
  708. package/widgets/ElevationProfile/ElevationProfileLineView.js +1 -1
  709. package/widgets/ElevationProfile/support/geometryUtils.js +1 -1
  710. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  711. package/widgets/FeatureTable/FieldColumn.js +1 -1
  712. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  713. package/widgets/FeatureTable/support/tableUtils.js +1 -1
  714. package/widgets/FeatureTable/support/templateUtils.js +1 -1
  715. package/widgets/Legend/LegendViewModel.js +1 -1
  716. package/widgets/Legend.js +1 -1
  717. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  718. package/widgets/OrientedImageryViewer/components/ImageLocationWidget.js +1 -1
  719. package/widgets/OrientedImageryViewer/components/ImageOverlays.js +1 -1
  720. package/widgets/OrientedImageryViewer/dataCaptureUtils.js +1 -1
  721. package/widgets/OrientedImageryViewer/imageMeasurementUtils.js +1 -1
  722. package/widgets/OrientedImageryViewer.js +1 -1
  723. package/widgets/PanoramicViewer/PanoramicViewerViewModel.js +1 -1
  724. package/widgets/PanoramicViewer/PanoramicZoomManager.js +5 -0
  725. package/widgets/PanoramicViewer/PanoramicZoomViewModel.js +1 -1
  726. package/widgets/PanoramicViewer/constants.js +1 -1
  727. package/widgets/PanoramicViewer/support/ClosestMap.js +5 -0
  728. package/widgets/PanoramicViewer/support/PanoramicMeshManager.js +1 -1
  729. package/widgets/PanoramicViewer/support/PanoramicMeshWorker.js +1 -1
  730. package/widgets/PanoramicViewer/support/PanoramicTileNode.js +5 -0
  731. package/widgets/PanoramicViewer/support/PanoramicTilePyramid.js +5 -0
  732. package/widgets/PanoramicViewer/support/importUtils.js +5 -0
  733. package/widgets/PanoramicViewer/utils.js +1 -1
  734. package/widgets/PanoramicViewer.js +1 -1
  735. package/widgets/UtilityNetworkAssociations/UtilityNetworkAssociationsViewModel.js +1 -1
  736. package/widgets/support/forms/formUtils.js +1 -1
  737. package/analysis/ElevationProfile/ElevationProfileUnits.d.ts +0 -4
  738. package/assets/esri/core/workers/chunks/004b13c1db79c9e668b1.js +0 -1
  739. package/assets/esri/core/workers/chunks/06c389283ee5b60573f2.js +0 -1
  740. package/assets/esri/core/workers/chunks/0ca5060c81a1a05b8be3.js +0 -1
  741. package/assets/esri/core/workers/chunks/1214c126af0de25a4b4a.js +0 -1
  742. package/assets/esri/core/workers/chunks/147f6e7b147beaa4ed29.js +0 -1
  743. package/assets/esri/core/workers/chunks/1f2d13466c60a6b57717.js +0 -1
  744. package/assets/esri/core/workers/chunks/23e600e368ac829680b5.js +0 -1
  745. package/assets/esri/core/workers/chunks/3d800fbc449bea18b1cd.js +0 -1
  746. package/assets/esri/core/workers/chunks/3dcdbba706a8034b6ba3.js +0 -1
  747. package/assets/esri/core/workers/chunks/3e11a893271caa11a881.js +0 -1
  748. package/assets/esri/core/workers/chunks/503c81dda242e6077317.js +0 -1
  749. package/assets/esri/core/workers/chunks/52121179d4f9833008ec.js +0 -1
  750. package/assets/esri/core/workers/chunks/56b3bb68b61b77138186.js +0 -1
  751. package/assets/esri/core/workers/chunks/5aacd1c6b171c99b41f5.js +0 -1
  752. package/assets/esri/core/workers/chunks/633faa9cec8988ab06af.js +0 -33
  753. package/assets/esri/core/workers/chunks/801451fb572bc5f1f270.js +0 -1
  754. package/assets/esri/core/workers/chunks/8d63b42aea32ce2e5d09.js +0 -1
  755. package/assets/esri/core/workers/chunks/b1ccbc2fef7f7e5e04f7.js +0 -1
  756. package/assets/esri/core/workers/chunks/bec9ddd38c9ab9f2561b.js +0 -1
  757. package/assets/esri/core/workers/chunks/bf9031749d10e7d457b6.js +0 -1
  758. package/assets/esri/core/workers/chunks/c473b15d4d52f0a63d20.js +0 -1
  759. package/assets/esri/core/workers/chunks/c547692862df95d22818.js +0 -1
  760. package/assets/esri/core/workers/chunks/c84665db250b05e2829d.js +0 -1
  761. package/assets/esri/core/workers/chunks/c86ca87959f04075e834.js +0 -1
  762. package/assets/esri/core/workers/chunks/ef75cad6570b14a42b62.js +0 -1
  763. package/assets/esri/core/workers/chunks/fb456e7425e09df17d8c.js +0 -1
  764. package/views/3d/analysis/ElevationProfile/ElevationProfileInputVisualization3D.js +0 -5
  765. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementConfiguration.js +0 -5
  766. 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{__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{dedupeResult as t}from"../../../../core/dedupeResult.js";import{isIterable as r}from"../../../../core/iteratorUtils.js";import{equalsShallow as o}from"../../../../core/lang.js";import{equalsMaybe as i}from"../../../../core/maybe.js";import{watch as s}from"../../../../core/reactiveUtils.js";import{getMetersPerVerticalUnitForSR as n}from"../../../../core/unitUtils.js";import{property as l}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import{subclass as a}from"../../../../core/accessorSupport/decorators/subclass.js";import{j as c}from"../../../../chunks/vec32.js";import{create as p}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as u}from"../../../../geometry/ellipsoidUtils.js";import{create as m,fromPoints as d}from"../../../../geometry/support/ray.js";import{GeometryDescriptor as y}from"../../../../layers/support/GeometryDescriptor.js";import{externalToInternalIntersectOptions as f}from"../../support/hitTest.js";import{Intersector as h}from"../../webgl-engine/lib/Intersector.js";import{getVisibleLayerIds as v}from"../../../analysis/ElevationProfile/elevationProfileLayerUtils.js";import{ElevationProfileLineComputation as _}from"../../../analysis/ElevationProfile/ElevationProfileLineComputation.js";const g=2e5;let w=class extends _{constructor(){super(...arguments),this.type="scene",this.numSamplesForPreview=50,this.numSamplesPerChunk=25,this._getStableElevationDependencies=t(()=>{const e=this._view;return e?{view:e,stationary:e.stationary,geometry:this.controller?.analysis.geometry,visibleLayerIds:this._getStableLayerIds(),maxIntersectionDistance:this._maxIntersectionDistance,intersectOptions:this._intersectOptions,spatialReference:this._getStableSpatialReference()}:null},o),this._getStableSpatialReference=t(()=>this._view?.spatialReference,i),this._getStableLayerIds=t(()=>v(this._view),o),this._getStablePointCloudLayers=t(()=>{const e=this._view;return e?e.allLayerViews.toArray().filter(e=>"point-cloud"===e.layer?.type).map(e=>e.layer):[]},o),this._vecA=p(),this._vecB=p(),this._ray=m()}get minDemResolution(){const e=this._view;if(!e)return null;const t=e.pointsOfInterest?.focus?.worldUnitsPerContentPixel;return null==t?null:t*n(e.spatialReference)}initialize(){const e=()=>this.onInvalidate(this);return this.addHandles([s(()=>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:l}=o,a=n.renderCoordsHelper,p=n.sceneIntersectionHelper,u=this._vecA,m=this._vecA,f=this._vecB,h=this._ray;if(!l)return{geometry:e,noDataValue:t};const v=await y.fromGeometry(e).project(l,r);if(!v)return{geometry:e,noDataValue:t};const _=v.coordinates,w=_.length;for(let y=0;y<w;++y){const e=_[y];c(f,e.x,e.y,e.z??0),a.toRenderCoords(f,l,f),a.setAltitude(u,g,f);const r=d(u,f,h);p.computeIntersection(r,i,!0,s);const n=j(o,i.results.all);n?(n.getIntersectionPoint(m),a.fromRenderCoords(m,m,l),e.z=m[2]):e.z=t}return{geometry:v.export(),noDataValue:t}}get _queryElevationDependencies(){return this._getStableElevationDependencies()}get _intersectOptions(){const e=this._view;if(!e||e.destroyed)return{};const{include:t,exclude:o}=this.profile;return f(e,{include:t,exclude:[...this._pointCloudLayers,...r(o)?o:o?[o]:[]]})}get _pointCloudLayers(){return this._getStablePointCloudLayers()}get _view(){const e=this.controller.view;return"3d"===e.type?e:null}get _maxIntersectionDistance(){const e=this._view;return e?.renderCoordsHelper?u(e.spatialReference).radius/e.renderCoordsHelper.unitInMeters:Number.POSITIVE_INFINITY}get _intersector(){const e=this._view;if(!e)return null;const t=new h(e.state.viewingMode),r=t.options;return r.hud=!1,r.invisibleTerrain=!1,r.backfacesTerrain=!1,r.selectionMode=!1,r.store=2,t}};function j({maxIntersectionDistance:e},t){for(const r of t)if(r.withinDistance(e))return r;return null}e([l({readOnly:!0})],w.prototype,"minDemResolution",null),e([l()],w.prototype,"_queryElevationDependencies",null),e([l()],w.prototype,"_intersectOptions",null),e([l()],w.prototype,"_pointCloudLayers",null),e([l()],w.prototype,"_view",null),e([l()],w.prototype,"_maxIntersectionDistance",null),e([l()],w.prototype,"_intersector",null),w=e([a("esri.views.3d.analysis.ElevationProfile.ElevationProfileLineSceneComputation")],w);export{w 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};
@@ -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 e from"../../../../core/Accessor.js";import{destroyHandle as t}from"../../../../core/handleUtils.js";import{watch as s,syncAndInitial as o}from"../../../../core/reactiveUtils.js";import{property as r}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{fromScaling as a,multiply as n}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{i as m,l as p}from"../../../../chunks/vec32.js";import{ZEROS as u}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{sv3d as c,sm4d as h}from"../../../../geometry/support/vectorStacks.js";import{getGridColor as d,getOutlineColor as v,planeColor as g}from"./settings.js";import{planePreviewOutlineWidth as w,planeOutlineWidth as V}from"./sliceToolConfig.js";import{createGridVisualElement as f,createOutlineVisualElement as _,calculateBoundedPlaneTranslateRotate as E}from"./sliceToolUtils.js";import{createStipplePatternSimple as j}from"../../webgl-engine/materials/lineStippleUtils.js";let b=class extends e{constructor(i){super(i),this._gridVisualElement=null,this._outlineVisualElement=null,this.showGrid=!1,this.preview=!0}initialize(){const i=this.analysisViewData;if(null==i)throw new Error("expected internal object to be valid");this._gridVisualElement=f(this.view),this._outlineVisualElement=_(this.view),this.addHandles([s(()=>{const e=null!=i.plane&&this.analysisViewData.visible,{active:t}=this.analysisViewData,{preview:s,showGrid:o,view:r}=this,{effectiveTheme:l}=r;return{visible:e,active:t,preview:s,showGrid:o,gridColor:d(l),outlineColor:v(l)}},i=>this._updateMaterials(i),o),s(()=>i.plane,i=>this._updatePlane(i),o),t(this._gridVisualElement),t(this._outlineVisualElement),s(()=>"web-scene"!==this.analysis?.origin?.type,i=>{this._gridVisualElement.isDecoration=i,this._outlineVisualElement.isDecoration=i},o)])}destroy(){this.set("view",null)}_updatePlane(i){if(null==i)return;this._gridVisualElement.attached=!0,this._outlineVisualElement.attached=!0;const e=m(c.get(),p(i.basis1),p(i.basis2),1),t=a(h.get(),e),s=E(i,h.get()),o=n(t,s,t);this._outlineVisualElement.transform=o,this._gridVisualElement.transform=o}_updateMaterials({visible:i,active:e,preview:t,showGrid:s,gridColor:o,outlineColor:r}){this._outlineVisualElement.color=r,this._outlineVisualElement.width=t?w:V,this._outlineVisualElement.stipplePattern=e?null:j(5),this._gridVisualElement.backgroundColor=g,this._gridVisualElement.gridColor=s?o:u,this._gridVisualElement.visible=i,this._outlineVisualElement.visible=i}};i([r()],b.prototype,"view",void 0),i([r()],b.prototype,"analysis",void 0),i([r()],b.prototype,"analysisViewData",void 0),i([r()],b.prototype,"showGrid",void 0),i([r()],b.prototype,"preview",void 0),b=i([l("esri.views.3d.analysis.Slice.SliceVisualization")],b);export{b as SliceVisualization};
5
+ import{__decorate as i}from"tslib";import e from"../../../../core/Accessor.js";import{destroyHandle as t}from"../../../../core/handleUtils.js";import{watch as s,syncAndInitial as o}from"../../../../core/reactiveUtils.js";import{property as r}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{fromScaling as a,multiply as n}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{j as m,b as p}from"../../../../chunks/vec32.js";import{ZEROS as u}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{sv3d as c,sm4d as h}from"../../../../geometry/support/vectorStacks.js";import{getGridColor as d,getOutlineColor as v,planeColor as g}from"./settings.js";import{planePreviewOutlineWidth as w,planeOutlineWidth as V}from"./sliceToolConfig.js";import{createGridVisualElement as f,createOutlineVisualElement as _,calculateBoundedPlaneTranslateRotate as E}from"./sliceToolUtils.js";import{createStipplePatternSimple as j}from"../../webgl-engine/materials/lineStippleUtils.js";let b=class extends e{constructor(i){super(i),this._gridVisualElement=null,this._outlineVisualElement=null,this.showGrid=!1,this.preview=!0}initialize(){const i=this.analysisViewData;if(null==i)throw new Error("expected internal object to be valid");this._gridVisualElement=f(this.view),this._outlineVisualElement=_(this.view),this.addHandles([s(()=>{const e=null!=i.plane&&this.analysisViewData.visible,{active:t}=this.analysisViewData,{preview:s,showGrid:o,view:r}=this,{effectiveTheme:l}=r;return{visible:e,active:t,preview:s,showGrid:o,gridColor:d(l),outlineColor:v(l)}},i=>this._updateMaterials(i),o),s(()=>i.plane,i=>this._updatePlane(i),o),t(this._gridVisualElement),t(this._outlineVisualElement),s(()=>"web-scene"!==this.analysis?.origin?.type,i=>{this._gridVisualElement.isDecoration=i,this._outlineVisualElement.isDecoration=i},o)])}destroy(){this.set("view",null)}_updatePlane(i){if(null==i)return;this._gridVisualElement.attached=!0,this._outlineVisualElement.attached=!0;const e=m(c.get(),p(i.basis1),p(i.basis2),1),t=a(h.get(),e),s=E(i,h.get()),o=n(t,s,t);this._outlineVisualElement.transform=o,this._gridVisualElement.transform=o}_updateMaterials({visible:i,active:e,preview:t,showGrid:s,gridColor:o,outlineColor:r}){this._outlineVisualElement.color=r,this._outlineVisualElement.width=t?w:V,this._outlineVisualElement.stipplePattern=e?null:j(5),this._gridVisualElement.backgroundColor=g,this._gridVisualElement.gridColor=s?o:u,this._gridVisualElement.visible=i,this._outlineVisualElement.visible=i}};i([r()],b.prototype,"view",void 0),i([r()],b.prototype,"analysis",void 0),i([r()],b.prototype,"analysisViewData",void 0),i([r()],b.prototype,"showGrid",void 0),i([r()],b.prototype,"preview",void 0),b=i([l("esri.views.3d.analysis.Slice.SliceVisualization")],b);export{b as SliceVisualization};
@@ -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 i from"../../../../analysis/SlicePlane.js";import"../../../../core/has.js";import e from"../../../../core/Logger.js";import{rad2deg as t,deg2rad as n}from"../../../../core/mathUtils.js";import{castRenderScreenPointArray3 as o}from"../../../../core/screenUtils.js";import{fromZRotation as s,scale as r,multiply as a,rotateZ as c,rotateX as l}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{l as u,i as d,f as g,g as m,c as p,d as f,e as b,n as h,h as j,k as w,a as v}from"../../../../chunks/vec32.js";import{clone as P}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import M from"../../../../geometry/Extent.js";import U from"../../../../geometry/Point.js";import{tryProjectWithZConversion as y}from"../../../../geometry/projectionUtils.js";import{a as R,r as x,n as S,u as T,f as k,i as A}from"../../../../chunks/boundedPlane.js";import{fromPositionAndNormal as C,fromVectorsAndPoint as L}from"../../../../geometry/support/plane.js";import{create as E}from"../../../../geometry/support/ray.js";import{angleAroundAxis as H}from"../../../../geometry/support/vector.js";import{sv3d as I,sm4d as z}from"../../../../geometry/support/vectorStacks.js";import{getGridColor as F,planeColor as W,getOutlineColor as B}from"./settings.js";import{resizeHandleEdgePaddingFrac as D,planeOutlineWidth as O,planeMinBasisScreenLen2 as V,initialPlaneHalfSizeViewProportion as $,shiftRestartOffsetDistance as q,smallAngleDotThreshold as G,verticalDotThreshold as J}from"./sliceToolConfig.js";import{applyProjectionAndElevationAlignment as K}from"../support/projectionUtils.js";import{calculateTranslateRotateFromBases as N}from"../../interactive/manipulatorUtils.js";import{LineVisualElement as Q}from"../../interactive/visualElements/LineVisualElement.js";import{SlicePlaneVisualElement as X}from"../../interactive/visualElements/SlicePlaneVisualElement.js";import{RenderCoordsHelper as Y}from"../../support/RenderCoordsHelper.js";import{fromRender as Z}from"../../support/geometryUtils/ray.js";function _(i,e,t,n,o,s,r,a){return ii(e,r.worldUpAtPosition(i,I.get()),o,s,a.basis1,a.basis2),m(a.basis1,a.basis1,t),m(a.basis2,a.basis2,n),p(a.origin,i),L(a.basis2,a.basis1,a.origin,a.plane),a}function ii(i,e,t,n,o,s){const r=b(i,e),a=I.get(),c=I.get();switch(0===n?Math.abs(r)>J?1:2:n){case 2:{const n=Math.abs(r)<=G?i:t.viewUp;j(a,n,e),p(c,e);break}case 1:j(a,t.viewUp,e),j(c,e,a);break;case 3:{const n=Math.abs(r)<=G?e:t.viewUp;j(a,n,i),j(c,i,a);break}}const l=j(I.get(),a,c);b(l,t.viewForward)>0&&m(c,c,-1),h(o,a),h(s,c)}function ei(i,e,t){const n=e.worldUpAtPosition(i.origin,I.get()),o=i.basis1,s=Pi(i,n),r=Math.round(s/ki)*ki;return x(i,r-s,o,t)}function ti(i,e,t,n,o,s){const r=p(I.get(),o.origin);g(r,r,m(I.get(),o.basis1,i.direction[0]<0?1:-1)),g(r,r,m(I.get(),o.basis2,i.direction[1]<0?1:-1));const a=u(o.basis1),c=u(o.basis2),l=f(I.get(),t,r),d=f(I.get(),e,r);let h=0,j=0;if(bi(i)){const e=fi(o),t=fi(s);h=a-.5*i.direction[0]*b(o.basis1,d)/a,j=c-.5*i.direction[1]*b(o.basis2,d)/c;const n=t/e;h*=n,j*=n}const w=h+.5*i.direction[0]*b(o.basis1,l)/a,v=j+.5*i.direction[1]*b(o.basis2,l)/c,P=m(I.get(),o.basis1,w/a),M=m(I.get(),o.basis2,v/c);(w<=0||mi(s.origin,P,n)<=V)&&p(P,s.basis1),(v<=0||mi(s.origin,M,n)<=V)&&p(M,s.basis2);const U=p(I.get(),r);return g(U,U,m(I.get(),P,i.direction[0]<0?-1:1)),g(U,U,m(I.get(),M,i.direction[1]<0?-1:1)),k(U,P,M,s)}function ni(i,e){return $*Math.min(e.width,e.height)*e.computeRenderPixelSizeAt(i)}function oi(i,e,t,n){const o=j(I.get(),e,t);return j(o,o,e),C(i,o,n)}function si(i,e){return N(i.basis1,i.basis2,i.origin,e)}function ri(i,e,t,n){const o=e.worldUpAtPosition(i.origin,I.get()),s=I.get();switch(t){case 1:p(s,o);break;case 2:p(s,i.basis1)}return C(i.origin,s,n)}function ai(i,e,t,n){const s=gi(t,2),r=z.get();c(r,e,s.edge*Math.PI/2);const a=h(I.get(),s.basis);let l=m(I.get(),a,s.direction*n.computeScreenPixelSizeAt(s.position)*q);g(l,l,s.position);const u=n.projectToRenderScreen(l,o(I.get())),d=ci(n,u);Z(n,u,Ti),h(Ti.direction,Ti.direction);const p=I.get();!d&&A(t,Ti,p)&&(l=p),r[12]=0,r[13]=0,r[14]=0,i.modelTransform=r,i.renderLocation=P(l),d?i.state|=Si:i.state&=~Si}function ci(i,e){if(null==e)return!1;const[t,n,o,s]=i.viewport,r=Math.min(o,s)/16;let a=!0;return e[0]<t+r?(e[0]=t+r,a=!1):e[0]>t+o-r&&(e[0]=t+o-r,a=!1),e[1]<n+r?(e[1]=n+r,a=!1):e[1]>n+s-r&&(e[1]=n+s-r,a=!1),a}function li(i,e,t,n){const o=u(n.basis1),c=u(n.basis2),l=pi(n),p=fi(n),f=d(I.get(),0,0,0);g(f,m(I.get(),n.basis1,e.direction[0]),m(I.get(),n.basis2,e.direction[1])),g(f,n.origin,f);let b=0,h=1;if(bi(e))1===e.direction[0]&&-1===e.direction[1]?b=ki:1===e.direction[0]&&1===e.direction[1]?b=Math.PI:-1===e.direction[0]&&1===e.direction[1]&&(b=3*Math.PI/2),h=p;else{const i=0!==e.direction[0]?1:2;b=1===i?ki:0,h=(1===i?c:o)-l}const j=s(z.get(),b);r(j,j,d(I.get(),h,h,h)),a(j,t,j),j[12]=0,j[13]=0,j[14]=0,i.modelTransform=j,i.renderLocation=f}function ui(i,e,t,n){const o=n.worldUpAtPosition(t.origin,I.get()),r=gi(t,0),c=s(z.get(),r.edge*Math.PI/2);l(c,c,-Pi(t,o)),a(c,e,c),c[12]=0,c[13]=0,c[14]=0,i.modelTransform=c,i.renderLocation=r.position}function di(i,e,t){const n=gi(t,1),o=s(z.get(),n.edge*Math.PI/2);l(o,o,ki),a(o,e,o),o[12]=0,o[13]=0,o[14]=0,i.modelTransform=o,i.renderLocation=n.position}function gi(i,e){switch(e){case 0:return{basis:i.basis1,direction:1,position:g(I.get(),i.origin,i.basis1),edge:e};case 1:return{basis:i.basis2,direction:1,position:g(I.get(),i.origin,i.basis2),edge:e};case 2:return{basis:i.basis1,direction:-1,position:f(I.get(),i.origin,i.basis1),edge:e};case 3:return{basis:i.basis2,direction:-1,position:f(I.get(),i.origin,i.basis2),edge:e}}}function mi(i,e,t){const n=t.projectToRenderScreen(g(I.get(),i,e),o(I.get())),s=t.projectToRenderScreen(f(I.get(),i,e),o(I.get()));return n&&s?w(f(n,n,s)):0}function pi(i){const e=u(i.basis1),t=u(i.basis2);return D*Math.min(e,t)}function fi(i){return pi(i)}function bi(i){return 0!==i.direction[0]&&0!==i.direction[1]}function hi(i){const e=[[-1,-1,0],[1,-1,0],[1,1,0],[-1,1,0],[-1,-1,0]];return new Q({view:i,attached:!1,color:B(i.effectiveTheme),width:O,renderOccluded:4,geometry:[e],isDecoration:!0})}function ji(i){return new X({view:i,attached:!1,backgroundColor:W,gridColor:F(i.effectiveTheme),gridWidth:4,renderOccluded:4,isDecoration:!0})}function wi(e,n,o,s=new i){if(null==e)return null;const{renderCoordsHelper:r}=n,a=r.fromRenderCoords(e.origin,new U({spatialReference:n.spatialReference}));if(null==a)return null;const c=y(a,o);if(null==c)return null;s.position=c;const l=2*u(e.basis1),d=2*u(e.basis2),g=Y.renderUnitScaleFactor(n.spatialReference,o);s.width=l*g,s.height=d*g;const m=r.worldUpAtPosition(e.origin,I.get());return s.tilt=t(Pi(e,m)),s.heading=r.headingAtPosition(e.origin,e.basis1)-90,s}function vi(i,e,t){if(null==i)return null;const n=i.origin,o=I.get(),s=I.get(),r=I.get(),a=I.get();let c,l,u,d,m,p;g(o,n,i.basis1),g(o,o,i.basis2),g(s,n,i.basis1),v(s,s,i.basis2),v(r,n,i.basis1),v(r,r,i.basis2),v(a,n,i.basis1),g(a,a,i.basis2);for(const g of[o,s,r,a]){const i=e.fromRenderCoords(g,g,t);if(null==i)return null;c=null==c?i[0]:Math.min(c,i[0]),l=null==l?i[0]:Math.max(l,i[0]),u=null==u?i[1]:Math.min(u,i[1]),d=null==d?i[1]:Math.max(d,i[1]),m=null==m?i[2]:Math.min(m,i[2]),p=null==p?i[2]:Math.max(p,i[2])}return new M({xmin:c,xmax:l,ymin:u,ymax:d,zmin:m,zmax:p,spatialReference:t})}function Pi(i,e){return H(e,i.basis2,i.basis1)+ki}function Mi(i,t,o,s,r,a,c=R()){return a.toRenderCoords(i,c.origin)?(a.worldBasisAtPosition(c.origin,0,c.basis1),a.worldBasisAtPosition(c.origin,1,c.basis2),L(c.basis2,c.basis1,c.origin,c.plane),x(c,-n(t),S(c),c),x(c,n(o),c.basis1,c),m(c.basis1,c.basis1,s/2),m(c.basis2,c.basis2,r/2),T(c),c):(e.getLogger("esri.views.3d.analysis.Slice.sliceToolUtils").error(`Failed to project slice plane position, projection from ${i.spatialReference.wkid} is not supported`),null)}function Ui(i,e){if(null==i?.position)return null;const t=K(i.position,e.spatialReference,e.elevationProvider);if(null==t)return null;const n=Y.renderUnitScaleFactor(i.position.spatialReference,e.spatialReference),o=i.width*n,s=i.height*n;return{position:t,heading:i.heading,tilt:i.tilt,renderWidth:o,renderHeight:s}}function yi(i,e,t,n=R()){const o=Ui(i,e);return null==o?null:Ri(o,e,t,n)}function Ri(i,e,t,n=R()){if(null==i)return null;const o=Mi(i.position,i.heading,i.tilt,i.renderWidth,i.renderHeight,e.renderCoordsHelper,n);return t.tiltEnabled||null==o||ei(o,e.renderCoordsHelper,o),o}const xi=16,Si=32,Ti=E(),ki=Math.PI/2,Ai=16,Ci=32;function Li(i){return null!=("building-scene-3d"===i.type?i:null)}export{xi as DidPointerMoveRecentlyFlag,Si as IsShiftEdgeOnScreenFlag,si as calculateBoundedPlaneTranslateRotate,fi as calculateDiagonalResizeHandleScale,ni as calculatePlaneHalfSize,ji as createGridVisualElement,hi as createOutlineVisualElement,_ as createPlane,ri as createRotatePlane,oi as createShiftPlane,ei as forceHorizontalOrVertical,Li as isBuildingSceneLayerView3D,bi as isDiagonalResizeHandle,ii as normalToBases,vi as planeToExtent,wi as planeToShape,Ui as projectAndElevationAlignShape,Ri as projectedShapeToPlane,Ai as resizeNormal,Ci as resizeOutlineOnly,ti as resizePlane,yi as shapeToPlane,li as updateResizeHandle,ui as updateRotateHeadingHandle,di as updateRotateTiltHandle,ai as updateShiftRestartHandle};
5
+ import i from"../../../../analysis/SlicePlane.js";import"../../../../core/has.js";import e from"../../../../core/Logger.js";import{rad2deg as t,deg2rad as n}from"../../../../core/mathUtils.js";import{castRenderScreenPointArray3 as o}from"../../../../core/screenUtils.js";import{fromZRotation as s,scale as r,multiply as a,rotateZ as c,rotateX as l}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{b as u,j as d,g,h as m,d as p,e as f,f as b,n as h,i as j,m as w,a as v}from"../../../../chunks/vec32.js";import{clone as P}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import M from"../../../../geometry/Extent.js";import U from"../../../../geometry/Point.js";import{tryProjectWithZConversion as y}from"../../../../geometry/projectionUtils.js";import{a as R,r as x,n as S,u as T,f as A,i as C}from"../../../../chunks/boundedPlane.js";import{fromPositionAndNormal as k,fromVectorsAndPoint as L}from"../../../../geometry/support/plane.js";import{create as E}from"../../../../geometry/support/ray.js";import{angleAroundAxis as H}from"../../../../geometry/support/vector.js";import{sv3d as I,sm4d as z}from"../../../../geometry/support/vectorStacks.js";import{getGridColor as F,planeColor as W,getOutlineColor as B}from"./settings.js";import{resizeHandleEdgePaddingFrac as D,planeOutlineWidth as O,planeMinBasisScreenLen2 as V,initialPlaneHalfSizeViewProportion as $,shiftRestartOffsetDistance as q,smallAngleDotThreshold as G,verticalDotThreshold as J}from"./sliceToolConfig.js";import{applyProjectionAndElevationAlignment as K}from"../support/projectionUtils.js";import{calculateTranslateRotateFromBases as N}from"../../interactive/manipulatorUtils.js";import{LineVisualElement as Q}from"../../interactive/visualElements/LineVisualElement.js";import{SlicePlaneVisualElement as X}from"../../interactive/visualElements/SlicePlaneVisualElement.js";import{RenderCoordsHelper as Y}from"../../support/RenderCoordsHelper.js";import{fromRender as Z}from"../../support/geometryUtils/ray.js";function _(i,e,t,n,o,s,r,a){return ii(e,r.worldUpAtPosition(i,I.get()),o,s,a.basis1,a.basis2),m(a.basis1,a.basis1,t),m(a.basis2,a.basis2,n),p(a.origin,i),L(a.basis2,a.basis1,a.origin,a.plane),a}function ii(i,e,t,n,o,s){const r=b(i,e),a=I.get(),c=I.get();switch(0===n?Math.abs(r)>J?1:2:n){case 2:{const n=Math.abs(r)<=G?i:t.viewUp;j(a,n,e),p(c,e);break}case 1:j(a,t.viewUp,e),j(c,e,a);break;case 3:{const n=Math.abs(r)<=G?e:t.viewUp;j(a,n,i),j(c,i,a);break}}const l=j(I.get(),a,c);b(l,t.viewForward)>0&&m(c,c,-1),h(o,a),h(s,c)}function ei(i,e,t){const n=e.worldUpAtPosition(i.origin,I.get()),o=i.basis1,s=Pi(i,n),r=Math.round(s/Ai)*Ai;return x(i,r-s,o,t)}function ti(i,e,t,n,o,s){const r=p(I.get(),o.origin);g(r,r,m(I.get(),o.basis1,i.direction[0]<0?1:-1)),g(r,r,m(I.get(),o.basis2,i.direction[1]<0?1:-1));const a=u(o.basis1),c=u(o.basis2),l=f(I.get(),t,r),d=f(I.get(),e,r);let h=0,j=0;if(bi(i)){const e=fi(o),t=fi(s);h=a-.5*i.direction[0]*b(o.basis1,d)/a,j=c-.5*i.direction[1]*b(o.basis2,d)/c;const n=t/e;h*=n,j*=n}const w=h+.5*i.direction[0]*b(o.basis1,l)/a,v=j+.5*i.direction[1]*b(o.basis2,l)/c,P=m(I.get(),o.basis1,w/a),M=m(I.get(),o.basis2,v/c);(w<=0||mi(s.origin,P,n)<=V)&&p(P,s.basis1),(v<=0||mi(s.origin,M,n)<=V)&&p(M,s.basis2);const U=p(I.get(),r);return g(U,U,m(I.get(),P,i.direction[0]<0?-1:1)),g(U,U,m(I.get(),M,i.direction[1]<0?-1:1)),A(U,P,M,s)}function ni(i,e){return $*Math.min(e.width,e.height)*e.computeRenderPixelSizeAt(i)}function oi(i,e,t,n){const o=j(I.get(),e,t);return j(o,o,e),k(i,o,n)}function si(i,e){return N(i.basis1,i.basis2,i.origin,e)}function ri(i,e,t,n){const o=e.worldUpAtPosition(i.origin,I.get()),s=I.get();switch(t){case 1:p(s,o);break;case 2:p(s,i.basis1)}return k(i.origin,s,n)}function ai(i,e,t,n){const s=gi(t,2),r=z.get();c(r,e,s.edge*Math.PI/2);const a=h(I.get(),s.basis);let l=m(I.get(),a,s.direction*n.computeScreenPixelSizeAt(s.position)*q);g(l,l,s.position);const u=n.projectToRenderScreen(l,o(I.get())),d=ci(n,u);Z(n,u,Ti),h(Ti.direction,Ti.direction);const p=I.get();!d&&C(t,Ti,p)&&(l=p),r[12]=0,r[13]=0,r[14]=0,i.modelTransform=r,i.renderLocation=P(l),d?i.state|=Si:i.state&=~Si}function ci(i,e){if(null==e)return!1;const[t,n,o,s]=i.viewport,r=Math.min(o,s)/16;let a=!0;return e[0]<t+r?(e[0]=t+r,a=!1):e[0]>t+o-r&&(e[0]=t+o-r,a=!1),e[1]<n+r?(e[1]=n+r,a=!1):e[1]>n+s-r&&(e[1]=n+s-r,a=!1),a}function li(i,e,t,n){const o=u(n.basis1),c=u(n.basis2),l=pi(n),p=fi(n),f=d(I.get(),0,0,0);g(f,m(I.get(),n.basis1,e.direction[0]),m(I.get(),n.basis2,e.direction[1])),g(f,n.origin,f);let b=0,h=1;if(bi(e))1===e.direction[0]&&-1===e.direction[1]?b=Ai:1===e.direction[0]&&1===e.direction[1]?b=Math.PI:-1===e.direction[0]&&1===e.direction[1]&&(b=3*Math.PI/2),h=p;else{const i=0!==e.direction[0]?1:2;b=1===i?Ai:0,h=(1===i?c:o)-l}const j=s(z.get(),b);r(j,j,d(I.get(),h,h,h)),a(j,t,j),j[12]=0,j[13]=0,j[14]=0,i.modelTransform=j,i.renderLocation=f}function ui(i,e,t,n){const o=n.worldUpAtPosition(t.origin,I.get()),r=gi(t,0),c=s(z.get(),r.edge*Math.PI/2);l(c,c,-Pi(t,o)),a(c,e,c),c[12]=0,c[13]=0,c[14]=0,i.modelTransform=c,i.renderLocation=r.position}function di(i,e,t){const n=gi(t,1),o=s(z.get(),n.edge*Math.PI/2);l(o,o,Ai),a(o,e,o),o[12]=0,o[13]=0,o[14]=0,i.modelTransform=o,i.renderLocation=n.position}function gi(i,e){switch(e){case 0:return{basis:i.basis1,direction:1,position:g(I.get(),i.origin,i.basis1),edge:e};case 1:return{basis:i.basis2,direction:1,position:g(I.get(),i.origin,i.basis2),edge:e};case 2:return{basis:i.basis1,direction:-1,position:f(I.get(),i.origin,i.basis1),edge:e};case 3:return{basis:i.basis2,direction:-1,position:f(I.get(),i.origin,i.basis2),edge:e}}}function mi(i,e,t){const n=t.projectToRenderScreen(g(I.get(),i,e),o(I.get())),s=t.projectToRenderScreen(f(I.get(),i,e),o(I.get()));return n&&s?w(f(n,n,s)):0}function pi(i){const e=u(i.basis1),t=u(i.basis2);return D*Math.min(e,t)}function fi(i){return pi(i)}function bi(i){return 0!==i.direction[0]&&0!==i.direction[1]}function hi(i){const e=[[-1,-1,0],[1,-1,0],[1,1,0],[-1,1,0],[-1,-1,0]];return new Q({view:i,attached:!1,color:B(i.effectiveTheme),width:O,renderOccluded:4,geometry:[e],isDecoration:!0})}function ji(i){return new X({view:i,attached:!1,backgroundColor:W,gridColor:F(i.effectiveTheme),gridWidth:4,renderOccluded:4,isDecoration:!0})}function wi(e,n,o,s=new i){if(null==e)return null;const{renderCoordsHelper:r}=n,a=r.fromRenderCoords(e.origin,new U({spatialReference:n.spatialReference}));if(null==a)return null;const c=y(a,o);if(null==c)return null;s.position=c;const l=2*u(e.basis1),d=2*u(e.basis2),g=Y.renderUnitScaleFactor(n.spatialReference,o);s.width=l*g,s.height=d*g;const m=r.worldUpAtPosition(e.origin,I.get());return s.tilt=t(Pi(e,m)),s.heading=r.headingAtPosition(e.origin,e.basis1)-90,s}function vi(i,e,t){if(null==i)return null;const n=i.origin,o=I.get(),s=I.get(),r=I.get(),a=I.get();let c,l,u,d,m,p;g(o,n,i.basis1),g(o,o,i.basis2),g(s,n,i.basis1),v(s,s,i.basis2),v(r,n,i.basis1),v(r,r,i.basis2),v(a,n,i.basis1),g(a,a,i.basis2);for(const g of[o,s,r,a]){const i=e.fromRenderCoords(g,g,t);if(null==i)return null;c=null==c?i[0]:Math.min(c,i[0]),l=null==l?i[0]:Math.max(l,i[0]),u=null==u?i[1]:Math.min(u,i[1]),d=null==d?i[1]:Math.max(d,i[1]),m=null==m?i[2]:Math.min(m,i[2]),p=null==p?i[2]:Math.max(p,i[2])}return new M({xmin:c,xmax:l,ymin:u,ymax:d,zmin:m,zmax:p,spatialReference:t})}function Pi(i,e){return H(e,i.basis2,i.basis1)+Ai}function Mi(i,t,o,s,r,a,c=R()){return a.toRenderCoords(i,c.origin)?(a.worldBasisAtPosition(c.origin,0,c.basis1),a.worldBasisAtPosition(c.origin,1,c.basis2),L(c.basis2,c.basis1,c.origin,c.plane),x(c,-n(t),S(c),c),x(c,n(o),c.basis1,c),m(c.basis1,c.basis1,s/2),m(c.basis2,c.basis2,r/2),T(c),c):(e.getLogger("esri.views.3d.analysis.Slice.sliceToolUtils").error(`Failed to project slice plane position, projection from ${i.spatialReference.wkid} is not supported`),null)}function Ui(i,e){if(null==i?.position)return null;const t=K(i.position,e.spatialReference,e.elevationProvider);if(null==t)return null;const n=Y.renderUnitScaleFactor(i.position.spatialReference,e.spatialReference),o=i.width*n,s=i.height*n;return{position:t,heading:i.heading,tilt:i.tilt,renderWidth:o,renderHeight:s}}function yi(i,e,t,n=R()){const o=Ui(i,e);return null==o?null:Ri(o,e,t,n)}function Ri(i,e,t,n=R()){if(null==i)return null;const o=Mi(i.position,i.heading,i.tilt,i.renderWidth,i.renderHeight,e.renderCoordsHelper,n);return t.tiltEnabled||null==o||ei(o,e.renderCoordsHelper,o),o}const xi=16,Si=32,Ti=E(),Ai=Math.PI/2,Ci=16,ki=32;function Li(i){return null!=("building-scene-3d"===i.type?i:null)}export{xi as DidPointerMoveRecentlyFlag,Si as IsShiftEdgeOnScreenFlag,si as calculateBoundedPlaneTranslateRotate,fi as calculateDiagonalResizeHandleScale,ni as calculatePlaneHalfSize,ji as createGridVisualElement,hi as createOutlineVisualElement,_ as createPlane,ri as createRotatePlane,oi as createShiftPlane,ei as forceHorizontalOrVertical,Li as isBuildingSceneLayerView3D,bi as isDiagonalResizeHandle,ii as normalToBases,vi as planeToExtent,wi as planeToShape,Ui as projectAndElevationAlignShape,Ri as projectedShapeToPlane,Ci as resizeNormal,ki as resizeOutlineOnly,ti as resizePlane,yi as shapeToPlane,li as updateResizeHandle,ui as updateRotateHeadingHandle,di as updateRotateTiltHandle,ai as updateShiftRestartHandle};
@@ -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{deg2rad as r}from"../../../../core/mathUtils.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 i}from"../../../../core/accessorSupport/decorators/subclass.js";import{create as s}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{a as n,n as p,h as a,u as c,f as l,g as h}from"../../../../chunks/vec32.js";import{create as d,fromValues as u,fromArray as f}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import v from"../../../../geometry/Point.js";import{rotateBy as g}from"./viewshedToolUtils.js";var S;let m=S=class extends t{constructor(e){super(e),this.observerRenderSpaceOverride=null,this.needUpdateByFeature=!1}get observer(){return this.viewshed.observer??new v}get effectiveObserverRenderSpace(){return this.observerRenderSpaceOverride??this.observerRenderSpace}get effectiveObserver(){return this.renderSpaceToPoint(this.effectiveObserverRenderSpace,this.observer.spatialReference)}get effectiveTargetRenderSpace(){return this._computeTargetRenderSpace(this.effectiveObserverRenderSpace)}get farDistance(){return this.viewshed.farDistance}get farDistanceRenderSpace(){return this.farDistance/this.metersPerUnit}get heading(){return this.viewshed.heading}get tilt(){return this.viewshed.tilt}get feature(){return this.viewshed.feature}get tiltParallelToSurface(){return this.tilt-90}get horizontalFieldOfView(){return this.viewshed.horizontalFieldOfView}get verticalFieldOfView(){return this.viewshed.verticalFieldOfView}get observerRenderSpace(){return this._pointToRenderSpace(this.observer,d())}get target(){const e=this.targetRenderSpace;return this.renderSpaceToPoint(e,this.observer.spatialReference)}get targetRenderSpace(){return this._computeTargetRenderSpace(this.observerRenderSpace)}get targetDirection(){const e=n(d(),this.targetRenderSpace,this.observerRenderSpace);return p(e,e)}get tiltedUpVector(){const e=g(d(),this.upVector,-r(this.tiltParallelToSurface),this.leftVector);return p(e,e)}get _basis(){return this.renderCoordsHelper.basisMatrixAtPosition(this.observerRenderSpace,s())}get upVector(){const e=this._basis;return u(e[8],e[9],e[10])}get northVector(){const e=this._basis;return u(e[4],e[5],e[6])}get leftVector(){const e=this.upVector,t=g(d(),this.northVector,-r(this.heading),e);return a(t,e,t)}get rightVector(){return c(d(),this.leftVector)}clone(){return new S({renderCoordsHelper:this.renderCoordsHelper,viewshed:this.viewshed.clone()})}get valid(){return this.viewshed.valid}get metersPerUnit(){return this.renderCoordsHelper.spatialReference.metersPerUnit}pointOnSphere(e,t,o){const{observerRenderSpace:i,targetRenderSpace:s}=this,p=n(R,s,i);return g(p,p,-r(t),this.leftVector),g(p,p,-r(e),this.tiltedUpVector),l(o,p,i)}cornerPoints(e){const t=this.horizontalFieldOfView/2,r=this.verticalFieldOfView/2;this.pointOnSphere(-t,r,e.topLeft),this.pointOnSphere(t,r,e.topRight),this.pointOnSphere(-t,-r,e.bottomLeft),this.pointOnSphere(t,-r,e.bottomRight)}arcCentersPoints(e){const t=this.horizontalFieldOfView/2,r=this.verticalFieldOfView/2;this.pointOnSphere(0,r,e.top),this.pointOnSphere(0,-r,e.bottom),this.pointOnSphere(-t,0,e.left),this.pointOnSphere(t,0,e.right)}parallelCenterPoints(e){const t=this.observerRenderSpace,o=this.farDistanceRenderSpace*Math.sin(r(this.verticalFieldOfView/2)),i=h(R,this.tiltedUpVector,o);l(e.top,t,i),n(e.bottom,t,i)}renderSpaceToPoint(e,t){const r=R;return this.renderCoordsHelper.fromRenderCoords(e,r,t),new v(r[0],r[1],r[2],t)}_pointToRenderSpace(e,t){const r=f(e.toArray());return this.renderCoordsHelper.toRenderCoords(r,e.spatialReference,t),t}_computeTargetRenderSpace(e){const{leftVector:t,northVector:o,upVector:i}=this,s=this.farDistanceRenderSpace,n=d();return h(n,o,s),g(n,n,-r(this.heading),i),g(n,n,-r(this.tiltParallelToSurface),t),l(n,e,n),n}};e([o()],m.prototype,"renderCoordsHelper",void 0),e([o()],m.prototype,"viewshed",void 0),e([o()],m.prototype,"observerRenderSpaceOverride",void 0),e([o()],m.prototype,"needUpdateByFeature",void 0),e([o()],m.prototype,"observer",null),e([o()],m.prototype,"effectiveObserverRenderSpace",null),e([o()],m.prototype,"effectiveObserver",null),e([o()],m.prototype,"effectiveTargetRenderSpace",null),e([o()],m.prototype,"farDistance",null),e([o()],m.prototype,"farDistanceRenderSpace",null),e([o()],m.prototype,"heading",null),e([o()],m.prototype,"tilt",null),e([o()],m.prototype,"feature",null),e([o()],m.prototype,"tiltParallelToSurface",null),e([o()],m.prototype,"horizontalFieldOfView",null),e([o()],m.prototype,"verticalFieldOfView",null),e([o()],m.prototype,"observerRenderSpace",null),e([o()],m.prototype,"target",null),e([o()],m.prototype,"targetRenderSpace",null),e([o()],m.prototype,"targetDirection",null),e([o()],m.prototype,"tiltedUpVector",null),e([o()],m.prototype,"_basis",null),e([o()],m.prototype,"upVector",null),e([o()],m.prototype,"northVector",null),e([o()],m.prototype,"leftVector",null),e([o()],m.prototype,"rightVector",null),e([o()],m.prototype,"valid",null),e([o()],m.prototype,"metersPerUnit",null),m=S=e([i("esri.views.3d.analysis.Viewshed.ViewshedComputedData")],m);const R=d();export{m as ViewshedComputedData};
5
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{deg2rad as r}from"../../../../core/mathUtils.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 i}from"../../../../core/accessorSupport/decorators/subclass.js";import{create as s}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{a as n,n as p,i as a,u as c,g as l,h}from"../../../../chunks/vec32.js";import{create as d,fromValues as u,fromArray as f}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import v from"../../../../geometry/Point.js";import{rotateBy as g}from"./viewshedToolUtils.js";var S;let m=S=class extends t{constructor(e){super(e),this.observerRenderSpaceOverride=null,this.needUpdateByFeature=!1}get observer(){return this.viewshed.observer??new v}get effectiveObserverRenderSpace(){return this.observerRenderSpaceOverride??this.observerRenderSpace}get effectiveObserver(){return this.renderSpaceToPoint(this.effectiveObserverRenderSpace,this.observer.spatialReference)}get effectiveTargetRenderSpace(){return this._computeTargetRenderSpace(this.effectiveObserverRenderSpace)}get farDistance(){return this.viewshed.farDistance}get farDistanceRenderSpace(){return this.farDistance/this.metersPerUnit}get heading(){return this.viewshed.heading}get tilt(){return this.viewshed.tilt}get feature(){return this.viewshed.feature}get tiltParallelToSurface(){return this.tilt-90}get horizontalFieldOfView(){return this.viewshed.horizontalFieldOfView}get verticalFieldOfView(){return this.viewshed.verticalFieldOfView}get observerRenderSpace(){return this._pointToRenderSpace(this.observer,d())}get target(){const e=this.targetRenderSpace;return this.renderSpaceToPoint(e,this.observer.spatialReference)}get targetRenderSpace(){return this._computeTargetRenderSpace(this.observerRenderSpace)}get targetDirection(){const e=n(d(),this.targetRenderSpace,this.observerRenderSpace);return p(e,e)}get tiltedUpVector(){const e=g(d(),this.upVector,-r(this.tiltParallelToSurface),this.leftVector);return p(e,e)}get _basis(){return this.renderCoordsHelper.basisMatrixAtPosition(this.observerRenderSpace,s())}get upVector(){const e=this._basis;return u(e[8],e[9],e[10])}get northVector(){const e=this._basis;return u(e[4],e[5],e[6])}get leftVector(){const e=this.upVector,t=g(d(),this.northVector,-r(this.heading),e);return a(t,e,t)}get rightVector(){return c(d(),this.leftVector)}clone(){return new S({renderCoordsHelper:this.renderCoordsHelper,viewshed:this.viewshed.clone()})}get valid(){return this.viewshed.valid}get metersPerUnit(){return this.renderCoordsHelper.spatialReference.metersPerUnit}pointOnSphere(e,t,o){const{observerRenderSpace:i,targetRenderSpace:s}=this,p=n(R,s,i);return g(p,p,-r(t),this.leftVector),g(p,p,-r(e),this.tiltedUpVector),l(o,p,i)}cornerPoints(e){const t=this.horizontalFieldOfView/2,r=this.verticalFieldOfView/2;this.pointOnSphere(-t,r,e.topLeft),this.pointOnSphere(t,r,e.topRight),this.pointOnSphere(-t,-r,e.bottomLeft),this.pointOnSphere(t,-r,e.bottomRight)}arcCentersPoints(e){const t=this.horizontalFieldOfView/2,r=this.verticalFieldOfView/2;this.pointOnSphere(0,r,e.top),this.pointOnSphere(0,-r,e.bottom),this.pointOnSphere(-t,0,e.left),this.pointOnSphere(t,0,e.right)}parallelCenterPoints(e){const t=this.observerRenderSpace,o=this.farDistanceRenderSpace*Math.sin(r(this.verticalFieldOfView/2)),i=h(R,this.tiltedUpVector,o);l(e.top,t,i),n(e.bottom,t,i)}renderSpaceToPoint(e,t){const r=R;return this.renderCoordsHelper.fromRenderCoords(e,r,t),new v(r[0],r[1],r[2],t)}_pointToRenderSpace(e,t){const r=f(e.toArray());return this.renderCoordsHelper.toRenderCoords(r,e.spatialReference,t),t}_computeTargetRenderSpace(e){const{leftVector:t,northVector:o,upVector:i}=this,s=this.farDistanceRenderSpace,n=d();return h(n,o,s),g(n,n,-r(this.heading),i),g(n,n,-r(this.tiltParallelToSurface),t),l(n,e,n),n}};e([o()],m.prototype,"renderCoordsHelper",void 0),e([o()],m.prototype,"viewshed",void 0),e([o()],m.prototype,"observerRenderSpaceOverride",void 0),e([o()],m.prototype,"needUpdateByFeature",void 0),e([o()],m.prototype,"observer",null),e([o()],m.prototype,"effectiveObserverRenderSpace",null),e([o()],m.prototype,"effectiveObserver",null),e([o()],m.prototype,"effectiveTargetRenderSpace",null),e([o()],m.prototype,"farDistance",null),e([o()],m.prototype,"farDistanceRenderSpace",null),e([o()],m.prototype,"heading",null),e([o()],m.prototype,"tilt",null),e([o()],m.prototype,"feature",null),e([o()],m.prototype,"tiltParallelToSurface",null),e([o()],m.prototype,"horizontalFieldOfView",null),e([o()],m.prototype,"verticalFieldOfView",null),e([o()],m.prototype,"observerRenderSpace",null),e([o()],m.prototype,"target",null),e([o()],m.prototype,"targetRenderSpace",null),e([o()],m.prototype,"targetDirection",null),e([o()],m.prototype,"tiltedUpVector",null),e([o()],m.prototype,"_basis",null),e([o()],m.prototype,"upVector",null),e([o()],m.prototype,"northVector",null),e([o()],m.prototype,"leftVector",null),e([o()],m.prototype,"rightVector",null),e([o()],m.prototype,"valid",null),e([o()],m.prototype,"metersPerUnit",null),m=S=e([i("esri.views.3d.analysis.Viewshed.ViewshedComputedData")],m);const R=d();export{m as ViewshedComputedData};
@@ -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 r from"../../../../core/Handles.js";import{handlesGroup as e}from"../../../../core/handleUtils.js";import{deg2rad as a,clamp as i}from"../../../../core/mathUtils.js";import{destroyMaybe as o}from"../../../../core/maybe.js";import{watch as n,initial as s}from"../../../../core/reactiveUtils.js";import{fromYRotation as l,fromXRotation as c,fromScaling as u,fromZRotation as p,fromRotation as m,multiply as h}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as f}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{i as d,a as _,g}from"../../../../chunks/vec32.js";import{create as M,fromValues as b}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{f as v}from"../../../../chunks/boundedPlane.js";import{viewshedToolManipulatorConfiguration as j}from"./ViewshedConfiguration.js";import{getViewshedRotationMatrix as w,screenToCircleAngle as A}from"./viewshedToolUtils.js";import{Manipulator3D as V}from"../../interactive/Manipulator3D.js";import{RenderObject as O}from"../../interactive/RenderObject.js";import{InteractiveManipulation as E}from"../../interactive/editingTools/manipulations/InteractiveManipulation.js";import{createPolylineGeometry as y}from"../../webgl-engine/lib/GeometryUtil.js";import{assert as R}from"../../webgl-engine/lib/Util.js";import{RibbonLineMaterial as T}from"../../webgl-engine/materials/RibbonLineMaterial.js";import{createManipulatorDragEventPipeline as U}from"../../../interactive/dragEventPipeline.js";class x extends E{constructor(t){super(),this._handles=new r,this._tool=t.tool,this._view=t.view,this._focusedArcMaterial=this._createArcMaterial(!0),this._unfocusedArcMaterial=this._createArcMaterial(!1),this._createManipulators(),this.forEachManipulator(t=>this._tool.manipulators.add(t))}destroy(){this._handles=o(this._handles),this.forEachManipulator(t=>{this._tool.manipulators.remove(t),t.destroy()}),this._tool=null,this._view=null,this._manipulators=null}createDragPipeline(t,r){const a=Object.values(this._manipulators);return e(a.map(({manipulator:e,side:a})=>U(e,(e,i,o,n,s)=>{const l=G(a,r),c=i.next(t=>({...t,manipulatorType:2,side:a})),u=A(c,this._view,l,r);t(e,u,o)})))}updateManipulatorsTransform(t){t.arcCentersPoints(H),this._forEachManipulatorInfo(r=>this._updateArcManipulatorTransform(r,t,H[r.side]))}updateManipulatorVisuals(t){this._forEachManipulatorInfo(r=>this._updateArcManipulatorVisuals(r,t))}_updateArcManipulatorVisuals({manipulator:t,side:r},e){const a=[];if(null!=e){const[i,o]=P(r,e,this._unfocusedArcMaterial);a.push(new O(i,1),new O(i.instantiate({material:this._focusedArcMaterial}),2)),t.collisionType={type:"line",paths:[o]}}t.renderObjects=a,t.radius=j.collisionRadius}_updateArcManipulatorTransform({manipulator:t,side:r},e,i){const o=e.horizontalFieldOfView,n=a(e.verticalFieldOfView/2),s=a(o/2),_=I(r);t.renderLocation=i;const g=f(),M=t=>{h(g,t,g)};M(l(k,a(-90))),_||M(c(k,n));const b=e.farDistanceRenderSpace;let v,j;M(u(k,d(L,b,b,b))),M(p(k,F(r))),M(w(e,k)),_?(v=s,j=e.tiltedUpVector):(j=e.rightVector,v=n),v*="right"===r||"bottom"===r?-1:1;const A=m(k,v,j);null!=A&&M(A),t.modelTransform=g}_createManipulators(){const t=this._createArcManipulator("left"),r=this._createArcManipulator("right"),e=this._createArcManipulator("top"),a=this._createArcManipulator("bottom");this._manipulators={left:t,right:r,top:e,bottom:a};[[a.manipulator,e.manipulator],[t.manipulator,r.manipulator]].forEach(([t,r])=>{t.metadata={pairedManipulator:r},r.metadata={pairedManipulator:t}})}_createArcManipulator(t){const r=new V({view:this._view,autoScaleRenderObjects:!1,worldSized:!0}),e={manipulator:r,side:t};return this._updateArcManipulatorVisuals(e),this._handles.add(r.events.on(["focus-changed","grab-changed"],t=>{const e=r.metadata?.pairedManipulator;null!=e&&(e.hovering!==r.hovering&&(e.hovering=r.hovering),e.grabbing!==r.grabbing&&(e.grabbing=r.grabbing))})),e}_createArcMaterial(r){const e=j.getFovArcWidth(r),a=new T({renderOccluded:4,isDecoration:!0,width:e},this._view.state.isGlobal);return this._handles.add(n(()=>t.toUnitRGBA(this._view.effectiveTheme.accentColor),t=>a.setParameters({color:t}),s)),a}forEachManipulator(t){Object.values(this._manipulators).forEach(({manipulator:r})=>t(r,2))}_forEachManipulatorInfo(t){Object.values(this._manipulators).forEach(r=>t(r))}get test(){return{manipulators:this._manipulators}}}function P(t,r,e){const{horizontalFieldOfView:o,verticalFieldOfView:n}=r,s=I(t),l=a(i((s?n:o)/2,0,15)),c=S(-l/2,l/2,s?1:Math.max(Math.sin(a(90-n/2)),.1));return[y(e,c),c]}function S(t,r,e,a=10){R(a>1,"createArcPolylineGeometry() needs at least 2 for numVertices");const i=r-t;if(i<=0||e<=0){const t=.01;return[b(0,0,t),b(0,0,-t)]}const o=[],n=i/a;for(let s=0;s<a;s++){let i=t+s*n;s===a-1&&(i=r);const l=Math.cos(i)*e,c=Math.sin(i)*e,u=b(l-e,0,c);o.push(u)}return o}function D(t){switch(t){case"left":return 0;case"bottom":return 1;case"right":return 2;case"top":return 3}}function F(t){return D(t)*z}function I(t){return"left"===t||"right"===t}function C(t){return"left"===t?"right":"right"===t?"left":"top"===t?"bottom":"top"}function G(t,{observerRenderSpace:r,targetRenderSpace:e,tiltedUpVector:a,rightVector:i,farDistanceRenderSpace:o}){const n=_(L,e,r),s=I(t)?i:a,l=g(B,s,o);return v(r,n,l)}const z=Math.PI/2,k=f(),L=M(),B=M(),H={top:M(),bottom:M(),left:M(),right:M()};export{x as ViewshedFieldOfViewManipulation,S as createArcPolylineVertices,C as flipSide,I as isSideHorizontal,F as sideToRad};
5
+ import t from"../../../../Color.js";import r from"../../../../core/Handles.js";import{handlesGroup as e}from"../../../../core/handleUtils.js";import{deg2rad as a,clamp as i}from"../../../../core/mathUtils.js";import{destroyMaybe as o}from"../../../../core/maybe.js";import{watch as n,initial as s}from"../../../../core/reactiveUtils.js";import{fromYRotation as l,fromXRotation as c,fromScaling as u,fromZRotation as p,fromRotation as m,multiply as h}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as f}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{j as d,a as _,h as g}from"../../../../chunks/vec32.js";import{create as M,fromValues as b}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{f as v}from"../../../../chunks/boundedPlane.js";import{viewshedToolManipulatorConfiguration as j}from"./ViewshedConfiguration.js";import{getViewshedRotationMatrix as w,screenToCircleAngle as A}from"./viewshedToolUtils.js";import{Manipulator3D as V}from"../../interactive/Manipulator3D.js";import{RenderObject as O}from"../../interactive/RenderObject.js";import{InteractiveManipulation as E}from"../../interactive/editingTools/manipulations/InteractiveManipulation.js";import{createPolylineGeometry as y}from"../../webgl-engine/lib/GeometryUtil.js";import{assert as R}from"../../webgl-engine/lib/Util.js";import{RibbonLineMaterial as T}from"../../webgl-engine/materials/RibbonLineMaterial.js";import{createManipulatorDragEventPipeline as U}from"../../../interactive/dragEventPipeline.js";class x extends E{constructor(t){super(),this._handles=new r,this._tool=t.tool,this._view=t.view,this._focusedArcMaterial=this._createArcMaterial(!0),this._unfocusedArcMaterial=this._createArcMaterial(!1),this._createManipulators(),this.forEachManipulator(t=>this._tool.manipulators.add(t))}destroy(){this._handles=o(this._handles),this.forEachManipulator(t=>{this._tool.manipulators.remove(t),t.destroy()}),this._tool=null,this._view=null,this._manipulators=null}createDragPipeline(t,r){const a=Object.values(this._manipulators);return e(a.map(({manipulator:e,side:a})=>U(e,(e,i,o,n,s)=>{const l=G(a,r),c=i.next(t=>({...t,manipulatorType:2,side:a})),u=A(c,this._view,l,r);t(e,u,o)})))}updateManipulatorsTransform(t){t.arcCentersPoints(H),this._forEachManipulatorInfo(r=>this._updateArcManipulatorTransform(r,t,H[r.side]))}updateManipulatorVisuals(t){this._forEachManipulatorInfo(r=>this._updateArcManipulatorVisuals(r,t))}_updateArcManipulatorVisuals({manipulator:t,side:r},e){const a=[];if(null!=e){const[i,o]=P(r,e,this._unfocusedArcMaterial);a.push(new O(i,1),new O(i.instantiate({material:this._focusedArcMaterial}),2)),t.collisionType={type:"line",paths:[o]}}t.renderObjects=a,t.radius=j.collisionRadius}_updateArcManipulatorTransform({manipulator:t,side:r},e,i){const o=e.horizontalFieldOfView,n=a(e.verticalFieldOfView/2),s=a(o/2),_=I(r);t.renderLocation=i;const g=f(),M=t=>{h(g,t,g)};M(l(k,a(-90))),_||M(c(k,n));const b=e.farDistanceRenderSpace;let v,j;M(u(k,d(L,b,b,b))),M(p(k,F(r))),M(w(e,k)),_?(v=s,j=e.tiltedUpVector):(j=e.rightVector,v=n),v*="right"===r||"bottom"===r?-1:1;const A=m(k,v,j);null!=A&&M(A),t.modelTransform=g}_createManipulators(){const t=this._createArcManipulator("left"),r=this._createArcManipulator("right"),e=this._createArcManipulator("top"),a=this._createArcManipulator("bottom");this._manipulators={left:t,right:r,top:e,bottom:a};[[a.manipulator,e.manipulator],[t.manipulator,r.manipulator]].forEach(([t,r])=>{t.metadata={pairedManipulator:r},r.metadata={pairedManipulator:t}})}_createArcManipulator(t){const r=new V({view:this._view,autoScaleRenderObjects:!1,worldSized:!0}),e={manipulator:r,side:t};return this._updateArcManipulatorVisuals(e),this._handles.add(r.events.on(["focus-changed","grab-changed"],t=>{const e=r.metadata?.pairedManipulator;null!=e&&(e.hovering!==r.hovering&&(e.hovering=r.hovering),e.grabbing!==r.grabbing&&(e.grabbing=r.grabbing))})),e}_createArcMaterial(r){const e=j.getFovArcWidth(r),a=new T({renderOccluded:4,isDecoration:!0,width:e},this._view.state.isGlobal);return this._handles.add(n(()=>t.toUnitRGBA(this._view.effectiveTheme.accentColor),t=>a.setParameters({color:t}),s)),a}forEachManipulator(t){Object.values(this._manipulators).forEach(({manipulator:r})=>t(r,2))}_forEachManipulatorInfo(t){Object.values(this._manipulators).forEach(r=>t(r))}get test(){return{manipulators:this._manipulators}}}function P(t,r,e){const{horizontalFieldOfView:o,verticalFieldOfView:n}=r,s=I(t),l=a(i((s?n:o)/2,0,15)),c=S(-l/2,l/2,s?1:Math.max(Math.sin(a(90-n/2)),.1));return[y(e,c),c]}function S(t,r,e,a=10){R(a>1,"createArcPolylineGeometry() needs at least 2 for numVertices");const i=r-t;if(i<=0||e<=0){const t=.01;return[b(0,0,t),b(0,0,-t)]}const o=[],n=i/a;for(let s=0;s<a;s++){let i=t+s*n;s===a-1&&(i=r);const l=Math.cos(i)*e,c=Math.sin(i)*e,u=b(l-e,0,c);o.push(u)}return o}function D(t){switch(t){case"left":return 0;case"bottom":return 1;case"right":return 2;case"top":return 3}}function F(t){return D(t)*z}function I(t){return"left"===t||"right"===t}function C(t){return"left"===t?"right":"right"===t?"left":"top"===t?"bottom":"top"}function G(t,{observerRenderSpace:r,targetRenderSpace:e,tiltedUpVector:a,rightVector:i,farDistanceRenderSpace:o}){const n=_(L,e,r),s=I(t)?i:a,l=g(B,s,o);return v(r,n,l)}const z=Math.PI/2,k=f(),L=M(),B=M(),H={top:M(),bottom:M(),left:M(),right:M()};export{x as ViewshedFieldOfViewManipulation,S as createArcPolylineVertices,C as flipSide,I as isSideHorizontal,F as sideToRad};
@@ -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"../../../../core/Handles.js";import{deg2rad as i}from"../../../../core/mathUtils.js";import{fromScaling as e,fromTranslation as a,fromZRotation as r,mul as o,fromYRotation as n,multiply as s}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{i as m,g as c,f as p,a as u,H as h,e as d,b as f,n as _}from"../../../../chunks/vec32.js";import{create as g}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{f as v}from"../../../../chunks/boundedPlane.js";import{fromValues as T}from"../../../../geometry/support/ray.js";import{displayFocusMultiplier as w}from"../Slice/sliceToolConfig.js";import{ViewshedArrowManipulator as j}from"./ViewshedArrowManipulator.js";import{viewshedToolManipulatorConfiguration as D}from"./ViewshedConfiguration.js";import{getViewshedRotationMatrix as H,screenToCircleAngle as x}from"./viewshedToolUtils.js";import{screenToRenderRay as S}from"../../interactive/editingTools/dragEventPipeline3D.js";import{discRadiusSmall as M,discRadius as P}from"../../interactive/editingTools/manipulations/config.js";import{InteractiveManipulation as R}from"../../interactive/editingTools/manipulations/InteractiveManipulation.js";import{createManipulatorDragEventPipeline as b,dragAtLocation as y}from"../../../interactive/dragEventPipeline.js";class V extends R{constructor(i){super(),this._handles=new t,this._tool=i.tool,this._view=i.view;const e=D.scaleOrientHandleRadius;this._manipulatorHeading=new j(this._view,e),this._manipulatorTilt=new j(this._view,e),this._manipulatorDistance=new j(this._view,e),this.forEachManipulator(t=>this._tool.manipulators.add(t))}destroy(){this._handles.destroy(),this.forEachManipulator(t=>{this._tool.manipulators.remove(t),t.destroy()}),this._manipulatorHeading=null,this._manipulatorTilt=null,this._manipulatorDistance=null,this._tool=null,this._view=null}createHeadingDragPipeline(t,e){return b(this._manipulatorHeading,(a,r,o,n,s)=>{const l=this._view,{tiltParallelToSurface:m,farDistanceRenderSpace:d,upVector:f,observerRenderSpace:_,targetRenderSpace:g,rightVector:T}=e,w=Math.sin(i(m))*d,j=p(L,_,c(O,f,w)),D=u(O,g,j),H=c(k,T,h(D)),S=v(j,D,H),M=x(r,l,S,e).next(t=>({...t,manipulatorType:3}));t(a,M,o)})}createTiltDragPipeline(t,i){return b(this._manipulatorTilt,(e,a,r,o,n)=>{const{observerRenderSpace:s,farDistanceRenderSpace:l,upVector:m,targetDirection:p}=i,u=d(p,m),h=f(L,p,m,-u);c(h,_(h,h),l);const g=c(O,m,l),T=v(s,h,g),w=x(a,this._view,T,i).next(t=>({...t,manipulatorType:3}));t(e,w,r)})}createDistanceDragPipeline(t,i){return b(this._manipulatorDistance,(e,a,r,o,n)=>{const s=T(i.observerRenderSpace,i.targetDirection),l=a.next(y(this._view,e.location)).next(S(this._view,s)).next(t=>({...t,manipulatorType:2}));t(e,l,r)})}updateManipulators(t){const{targetRenderSpace:i}=t;this._manipulatorHeading.renderLocation=i,this._manipulatorTilt.renderLocation=i,this._manipulatorDistance.renderLocation=i;const p=l(),u=t=>{s(p,t,p)},h=D.scaleOrientSize*(M/P);u(e(E,m(L,h,h,h))),u(H(t,E));const d=D.scaleOrientHandleRadius*w*h,f=c(L,t.targetDirection,d);u(a(E,f));const _=r(E,-C);o(_,_,n(I,-C)),this._manipulatorHeading.modelTransform=o(l(),p,_);const g=n(E,C);o(g,g,r(I,Math.PI)),this._manipulatorTilt.modelTransform=s(l(),p,g),this._manipulatorDistance.modelTransform=p}forEachManipulator(t){t(this._manipulatorHeading,3),t(this._manipulatorTilt,3),t(this._manipulatorDistance,2)}}const E=l(),I=l(),L=g(),O=g(),k=g(),C=Math.PI/2;export{V as ViewshedScaleOrientManipulation};
5
+ import t from"../../../../core/Handles.js";import{deg2rad as i}from"../../../../core/mathUtils.js";import{fromScaling as e,fromTranslation as a,fromZRotation as r,mul as o,fromYRotation as n,multiply as s}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{j as m,h as c,g as p,a as u,H as h,f as d,c as f,n as _}from"../../../../chunks/vec32.js";import{create as g}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{f as v}from"../../../../chunks/boundedPlane.js";import{fromValues as T}from"../../../../geometry/support/ray.js";import{displayFocusMultiplier as w}from"../Slice/sliceToolConfig.js";import{ViewshedArrowManipulator as j}from"./ViewshedArrowManipulator.js";import{viewshedToolManipulatorConfiguration as D}from"./ViewshedConfiguration.js";import{getViewshedRotationMatrix as H,screenToCircleAngle as x}from"./viewshedToolUtils.js";import{screenToRenderRay as S}from"../../interactive/editingTools/dragEventPipeline3D.js";import{discRadiusSmall as M,discRadius as P}from"../../interactive/editingTools/manipulations/config.js";import{InteractiveManipulation as R}from"../../interactive/editingTools/manipulations/InteractiveManipulation.js";import{createManipulatorDragEventPipeline as y,dragAtLocation as b}from"../../../interactive/dragEventPipeline.js";class V extends R{constructor(i){super(),this._handles=new t,this._tool=i.tool,this._view=i.view;const e=D.scaleOrientHandleRadius;this._manipulatorHeading=new j(this._view,e),this._manipulatorTilt=new j(this._view,e),this._manipulatorDistance=new j(this._view,e),this.forEachManipulator(t=>this._tool.manipulators.add(t))}destroy(){this._handles.destroy(),this.forEachManipulator(t=>{this._tool.manipulators.remove(t),t.destroy()}),this._manipulatorHeading=null,this._manipulatorTilt=null,this._manipulatorDistance=null,this._tool=null,this._view=null}createHeadingDragPipeline(t,e){return y(this._manipulatorHeading,(a,r,o,n,s)=>{const l=this._view,{tiltParallelToSurface:m,farDistanceRenderSpace:d,upVector:f,observerRenderSpace:_,targetRenderSpace:g,rightVector:T}=e,w=Math.sin(i(m))*d,j=p(L,_,c(O,f,w)),D=u(O,g,j),H=c(k,T,h(D)),S=v(j,D,H),M=x(r,l,S,e).next(t=>({...t,manipulatorType:3}));t(a,M,o)})}createTiltDragPipeline(t,i){return y(this._manipulatorTilt,(e,a,r,o,n)=>{const{observerRenderSpace:s,farDistanceRenderSpace:l,upVector:m,targetDirection:p}=i,u=d(p,m),h=f(L,p,m,-u);c(h,_(h,h),l);const g=c(O,m,l),T=v(s,h,g),w=x(a,this._view,T,i).next(t=>({...t,manipulatorType:3}));t(e,w,r)})}createDistanceDragPipeline(t,i){return y(this._manipulatorDistance,(e,a,r,o,n)=>{const s=T(i.observerRenderSpace,i.targetDirection),l=a.next(b(this._view,e.location)).next(S(this._view,s)).next(t=>({...t,manipulatorType:2}));t(e,l,r)})}updateManipulators(t){const{targetRenderSpace:i}=t;this._manipulatorHeading.renderLocation=i,this._manipulatorTilt.renderLocation=i,this._manipulatorDistance.renderLocation=i;const p=l(),u=t=>{s(p,t,p)},h=D.scaleOrientSize*(M/P);u(e(E,m(L,h,h,h))),u(H(t,E));const d=D.scaleOrientHandleRadius*w*h,f=c(L,t.targetDirection,d);u(a(E,f));const _=r(E,-C);o(_,_,n(I,-C)),this._manipulatorHeading.modelTransform=o(l(),p,_);const g=n(E,C);o(g,g,r(I,Math.PI)),this._manipulatorTilt.modelTransform=s(l(),p,g),this._manipulatorDistance.modelTransform=p}forEachManipulator(t){t(this._manipulatorHeading,3),t(this._manipulatorTilt,3),t(this._manipulatorDistance,2)}}const E=l(),I=l(),L=g(),O=g(),k=g(),C=Math.PI/2;export{V as ViewshedScaleOrientManipulation};
@@ -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 t}from"../../../../core/mathUtils.js";import{fromScaling as e,mul as r,fromTranslation as s,fromRotation as o}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as i}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{i as a,c as n,t as l}from"../../../../chunks/vec32.js";import{fromValues as m,create as c}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{viewshedVisualizationConfiguration as f,arcAnglePerSegment as h}from"./ViewshedConfiguration.js";import{getViewshedRotationMatrix as p,rotateBy as u}from"./viewshedToolUtils.js";import{Object3DVisualElement as d}from"../../interactive/visualElements/Object3DVisualElement.js";import{Attribute as w}from"../../webgl-engine/lib/Attribute.js";import{Geometry as v}from"../../webgl-engine/lib/Geometry.js";import{ColorMaterial as D}from"../../webgl-engine/materials/ColorMaterial.js";class b extends d{constructor(t){super(t),this._material=null,this._viewshedComputedData=null,this._material=new D({...f.shapeMaterialParameters,isDecoration:this.isDecoration,writeDepth:!1}),this.applyProperties(t)}get viewshedComputedData(){return this._viewshedComputedData}set viewshedComputedData(t){this._viewshedComputedData=t,this.updateTransform()}updateTransform(){const t=this._viewshedComputedData;if(null==t)return;const o=i(),a=t.farDistanceRenderSpace;e(o,m(a,a,a)),p(t,M),r(o,M,o),s(M,this._viewshedComputedData.observerRenderSpace),r(o,M,o),this.transform=o}createExternalResources(){}destroyExternalResources(){}forEachMaterial(t){t(this._material)}createGeometries(t){const{_material:e,viewshedComputedData:r}=this;if(null==r||null==e||!r.valid)return;j(e,r).forEach(e=>t.addGeometry(e))}}function j(e,r){const{horizontalFieldOfView:s,verticalFieldOfView:i}=r,m=a(C,0,0,1),c=a(_,0,1,0),f=a(x,1,0,0);u(m,m,t(i/2),c),u(m,m,t(s/2),f);const p=t=>Math.ceil(Math.abs(t)/h)+1,d=t(s),D=n(E,f),b=p(d),j=g(-d/(b-1)),R=o(M,j,D),V=t(-i),G=p(V),O=g(V/(G-1)),T=n(_,c),F=o(y,t(s)/2,f);l(T,T,F);const N=y,P=[],S=n(x,m);for(let t=0;t<b;t++){o(N,O,T);for(let e=0;e<G;e++){const r=3*(e*b+t);P[r]=S[0],P[r+1]=S[1],P[r+2]=S[2],l(S,S,N)}l(T,T,R),l(m,m,R),n(S,m)}const U=b*G;P[3*U]=0,P[3*U+1]=0,P[3*U+2]=0;const k=[];for(let t=0;t<b-1;t++)for(let e=0;e<G-1;e++){const r=6*(e*(b-1)+t);k[r]=e*b+t,k[r+1]=(e+1)*b+t,k[r+2]=e*b+t+1,k[r+3]=e*b+t+1,k[r+4]=(e+1)*b+t,k[r+5]=(e+1)*b+t+1}const z=[k];if(360!==s&&0!==i){const t=[],e=[];for(let r=0;r<G-1;r++){const s=3*r;t[s]=U,t[s+1]=(r+1)*b,t[s+2]=r*b,e[s]=U,e[s+1]=r*b+b-1,e[s+2]=(r+1)*b+b-1}z.push(t,e)}if(180!==i&&0!==s){const t=[],e=[];for(let r=0;r<b-1;r++){const s=3*r;t[s]=U,t[s+1]=r,t[s+2]=r+1,e[s]=U,e[s+1]=r+(G-1)*b+1,e[s+2]=r+(G-1)*b}z.push(t,e)}return z.map(t=>{const r=[["position",new w(P,t,3,!0)]];return new v(e,r)})}function g(t){return isNaN(t)?1:t}const C=c(),_=c(),x=c(),E=c(),M=i(),y=i();export{b as ViewshedShapeVisualElement};
5
+ import{deg2rad as t}from"../../../../core/mathUtils.js";import{fromScaling as e,mul as r,fromTranslation as s,fromRotation as o}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as i}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{j as a,d as n,t as l}from"../../../../chunks/vec32.js";import{fromValues as m,create as c}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{viewshedVisualizationConfiguration as f,arcAnglePerSegment as h}from"./ViewshedConfiguration.js";import{getViewshedRotationMatrix as p,rotateBy as u}from"./viewshedToolUtils.js";import{Object3DVisualElement as d}from"../../interactive/visualElements/Object3DVisualElement.js";import{Attribute as w}from"../../webgl-engine/lib/Attribute.js";import{Geometry as v}from"../../webgl-engine/lib/Geometry.js";import{ColorMaterial as j}from"../../webgl-engine/materials/ColorMaterial.js";class D extends d{constructor(t){super(t),this._material=null,this._viewshedComputedData=null,this._material=new j({...f.shapeMaterialParameters,isDecoration:this.isDecoration,writeDepth:!1}),this.applyProperties(t)}get viewshedComputedData(){return this._viewshedComputedData}set viewshedComputedData(t){this._viewshedComputedData=t,this.updateTransform()}updateTransform(){const t=this._viewshedComputedData;if(null==t)return;const o=i(),a=t.farDistanceRenderSpace;e(o,m(a,a,a)),p(t,M),r(o,M,o),s(M,this._viewshedComputedData.observerRenderSpace),r(o,M,o),this.transform=o}createExternalResources(){}destroyExternalResources(){}forEachMaterial(t){t(this._material)}createGeometries(t){const{_material:e,viewshedComputedData:r}=this;if(null==r||null==e||!r.valid)return;b(e,r).forEach(e=>t.addGeometry(e))}}function b(e,r){const{horizontalFieldOfView:s,verticalFieldOfView:i}=r,m=a(C,0,0,1),c=a(_,0,1,0),f=a(x,1,0,0);u(m,m,t(i/2),c),u(m,m,t(s/2),f);const p=t=>Math.ceil(Math.abs(t)/h)+1,d=t(s),j=n(E,f),D=p(d),b=g(-d/(D-1)),R=o(M,b,j),V=t(-i),G=p(V),O=g(V/(G-1)),T=n(_,c),F=o(y,t(s)/2,f);l(T,T,F);const N=y,P=[],S=n(x,m);for(let t=0;t<D;t++){o(N,O,T);for(let e=0;e<G;e++){const r=3*(e*D+t);P[r]=S[0],P[r+1]=S[1],P[r+2]=S[2],l(S,S,N)}l(T,T,R),l(m,m,R),n(S,m)}const U=D*G;P[3*U]=0,P[3*U+1]=0,P[3*U+2]=0;const k=[];for(let t=0;t<D-1;t++)for(let e=0;e<G-1;e++){const r=6*(e*(D-1)+t);k[r]=e*D+t,k[r+1]=(e+1)*D+t,k[r+2]=e*D+t+1,k[r+3]=e*D+t+1,k[r+4]=(e+1)*D+t,k[r+5]=(e+1)*D+t+1}const z=[k];if(360!==s&&0!==i){const t=[],e=[];for(let r=0;r<G-1;r++){const s=3*r;t[s]=U,t[s+1]=(r+1)*D,t[s+2]=r*D,e[s]=U,e[s+1]=r*D+D-1,e[s+2]=(r+1)*D+D-1}z.push(t,e)}if(180!==i&&0!==s){const t=[],e=[];for(let r=0;r<D-1;r++){const s=3*r;t[s]=U,t[s+1]=r,t[s+2]=r+1,e[s]=U,e[s+1]=r+(G-1)*D+1,e[s+2]=r+(G-1)*D}z.push(t,e)}return z.map(t=>{const r=[["position",new w(P,t,3,!0)]];return new v(e,r)})}function g(t){return isNaN(t)?1:t}const C=c(),_=c(),x=c(),E=c(),M=i(),y=i();export{D as ViewshedShapeVisualElement};