@arcgis/core 4.34.0-next.37 → 4.34.0-next.39

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 (1090) hide show
  1. package/Basemap.js +1 -1
  2. package/Camera.js +1 -1
  3. package/Graphic.js +1 -1
  4. package/Ground.js +1 -1
  5. package/PopupTemplate.js +1 -1
  6. package/Viewpoint.js +1 -1
  7. package/WebDocument2D.js +1 -1
  8. package/WebScene.js +1 -1
  9. package/analysis/Analysis.js +1 -1
  10. package/analysis/DimensionSimpleStyle.js +1 -1
  11. package/analysis/LengthDimension.js +1 -1
  12. package/analysis/LineOfSightAnalysisObserver.js +1 -1
  13. package/analysis/LineOfSightAnalysisTarget.js +1 -1
  14. package/analysis/SlicePlane.js +1 -1
  15. package/analysis/Viewshed.js +1 -1
  16. package/analysis/VolumeMeasurement/CutFillOptions.js +1 -1
  17. package/analysis/support/SliceAnalysisExcludedLayer.js +1 -1
  18. package/assets/esri/core/workers/RemoteClient.js +1 -1
  19. package/assets/esri/core/workers/chunks/{1c8dbdb833a66f7183fc.js → 00ae094cc21bc42faa54.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{36d15d1dd19417b37d2f.js → 01ae7d36bda6b6186786.js} +1 -1
  21. package/assets/esri/core/workers/chunks/01bd8f90e55081e65b38.js +1 -0
  22. package/assets/esri/core/workers/chunks/03df4668002eb4cb4f98.js +1 -0
  23. package/assets/esri/core/workers/chunks/{c4a20b8038bfbb2af329.js → 09f0c9f0b6aa58ae3c52.js} +1 -1
  24. package/assets/esri/core/workers/chunks/0a27f9b11d03874809ee.js +346 -0
  25. package/assets/esri/core/workers/chunks/{1a5ddb6d36249fe09cc8.js → 0e8d3d38e9b1f6abf6f2.js} +1 -1
  26. package/assets/esri/core/workers/chunks/0f51e51db83f303ce5a6.js +1 -0
  27. package/assets/esri/core/workers/chunks/0faec78b2dd6990a5da0.js +1 -0
  28. package/assets/esri/core/workers/chunks/{2d7bbd001b64138db3c1.js → 14b536e0c1de6c7422bc.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{170fa807b71babedd185.js → 14d3039f92b0d96944f0.js} +1 -1
  30. package/assets/esri/core/workers/chunks/19391d60c76a1dc7c262.js +1 -0
  31. package/assets/esri/core/workers/chunks/{7e9d5beca1991c961ed8.js → 1acc620bfd2983d6853f.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{8e7dced4a8d089185c3a.js → 1cbd59918c60a1a21494.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{ccf3f29d0b1bde90c3cf.js → 1cd15aa69f85ecfa32b0.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{6b5be459ec4c418cc6fd.js → 1d9212a70df68a508dca.js} +1 -1
  35. package/assets/esri/core/workers/chunks/21a9f9c0cc1cde2fee90.js +1 -0
  36. package/assets/esri/core/workers/chunks/{5d4e74eb4c659e8f42d6.js → 21dd626a5b5ea6a7e18e.js} +1 -1
  37. package/assets/esri/core/workers/chunks/224872bfd923cf4c9d78.js +1 -0
  38. package/assets/esri/core/workers/chunks/27027493a8dba8305693.js +1 -0
  39. package/assets/esri/core/workers/chunks/{2b9c403f4b20b8f62804.js → 2a26c3fc324d672ebe88.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{ee28cd411a93245fb90c.js → 2ae0bda04fd5386b462f.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{7efc3ac70a005a771b9c.js → 2c399991e8627baa51b3.js} +1 -1
  42. package/assets/esri/core/workers/chunks/306a68137e62656b0f05.js +1 -0
  43. package/assets/esri/core/workers/chunks/{4c54239974a5847b8fdd.js → 30b9c131b69297ee186f.js} +1 -1
  44. package/assets/esri/core/workers/chunks/31ad9949b08a5b07218c.js +989 -0
  45. package/assets/esri/core/workers/chunks/{e4d08a85d158c705aa3d.js → 31e6eb2685872baf538a.js} +1 -1
  46. package/assets/esri/core/workers/chunks/3264d58aeef8cf074b86.js +1 -0
  47. package/assets/esri/core/workers/chunks/3358c1b04490706681cc.js +1 -0
  48. package/assets/esri/core/workers/chunks/3386420c9ae891db5be7.js +2 -0
  49. package/assets/esri/core/workers/chunks/34f677e8c1691c10e4e9.js +1 -0
  50. package/assets/esri/core/workers/chunks/35df19d1eab3a694c3fa.js +1 -0
  51. package/assets/esri/core/workers/chunks/364fb103cb139f26b455.js +1 -0
  52. package/assets/esri/core/workers/chunks/{33aafaabea07b4f80209.js → 3984ca7e05f30724adaf.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{4d2dcd667b30a98dd341.js → 3af4a410ff0bca7ba2e3.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{b8c1a08020d44ee03a17.js → 3f7d7dc05e63fc50325e.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{02435c653064f879f547.js → 4162c633efefc63c5506.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{0852abaa440c14cc2b36.js → 4459c8e495a37d4c4eb8.js} +1 -1
  57. package/assets/esri/core/workers/chunks/{6e36b247a24172edd5ea.js → 476a6e5ca558db2adaa1.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{cd9e6b86ab0103044370.js → 4970d439d9648e97fd5a.js} +1 -1
  59. package/assets/esri/core/workers/chunks/{5228f535719f5fc38b28.js → 4ae15645e68e7f6dd6b7.js} +1 -1
  60. package/assets/esri/core/workers/chunks/4e6e5677b90b00622146.js +1 -0
  61. package/assets/esri/core/workers/chunks/4f3c187a7cb2b1444281.js +1 -0
  62. package/assets/esri/core/workers/chunks/5156410dd84ea1232a6c.js +1 -0
  63. package/assets/esri/core/workers/chunks/{c64aa9793764eba2c6da.js → 51ddda291bbbf5db9905.js} +1 -1
  64. package/assets/esri/core/workers/chunks/{2177c0ef06c8e7e3e28e.js → 554c789f4e875d7e6fd5.js} +1 -1
  65. package/assets/esri/core/workers/chunks/560bb06cf1bf30df4af3.js +1 -0
  66. package/assets/esri/core/workers/chunks/{36024406932b0a44a74a.js → 5b2ff220aebe464dac23.js} +1 -1
  67. package/assets/esri/core/workers/chunks/5b91a49202129eedaf00.js +1 -0
  68. package/assets/esri/core/workers/chunks/{a0dfd99dc8f4eac0b7ae.js → 5d1d909354c90cb8eb60.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{2f52a57e8c05a3ca1de8.js → 5f11fff5bc16fdec42db.js} +1 -1
  70. package/assets/esri/core/workers/chunks/5fe3c279d57f44416c28.js +1 -0
  71. package/assets/esri/core/workers/chunks/{1c87ed3a5960f8f06fc8.js → 647cff1eaaf1b622f439.js} +1 -1
  72. package/assets/esri/core/workers/chunks/6530449cd1975deb61f1.js +1 -0
  73. package/assets/esri/core/workers/chunks/{c78d98ab82f31ddda362.js → 6759319f3fd2d03c446b.js} +1 -1
  74. package/assets/esri/core/workers/chunks/{e91800c1ea026e5b2d9b.js → 6acffacbb4a03af52e3b.js} +1 -1
  75. package/assets/esri/core/workers/chunks/{23e0fd2d921f74834b12.js → 6b5b609b357924fa35be.js} +1 -1
  76. package/assets/esri/core/workers/chunks/{cab294fd04f2a5eda81d.js → 712c740cf58c2e282efc.js} +1 -1
  77. package/assets/esri/core/workers/chunks/{68edbc3b124eb8e28dd6.js → 719b89341b26c3568c2f.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{6f122e4a2a1f913523b4.js → 774844eea928efa811f2.js} +1 -1
  79. package/assets/esri/core/workers/chunks/{5cdeb6dc72f452d6d1bc.js → 77ee4afaa4a1c7047940.js} +1 -1
  80. package/assets/esri/core/workers/chunks/{904e701e1a12f67beaee.js → 787d281b2fe1edf6cf30.js} +1 -1
  81. package/assets/esri/core/workers/chunks/78de16f65ea297452a65.js +1 -0
  82. package/assets/esri/core/workers/chunks/{a76792c4edd1d688fba2.js → 791b3130b34b52160c1f.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{056fdd5570af28d334cd.js → 79b389baf972d329c38d.js} +1 -1
  84. package/assets/esri/core/workers/chunks/{cf1f8fd1d62be0e02e10.js → 7a5808c6e67c43274d86.js} +1 -1
  85. package/assets/esri/core/workers/chunks/7b1fc59822ac2d421a5a.js +1 -0
  86. package/assets/esri/core/workers/chunks/{826e4bf6374f324d7f19.js → 7b82ed4cc475c782256b.js} +1 -1
  87. package/assets/esri/core/workers/chunks/7b95da70d39ba316b051.js +1 -0
  88. package/assets/esri/core/workers/chunks/{bb1213adeb05d89fbfdb.js → 7d082bfcd13ad6e8c89d.js} +1 -1
  89. package/assets/esri/core/workers/chunks/{7641e24ffa0215d51c34.js → 7ef29640de297a0cf744.js} +1 -1
  90. package/assets/esri/core/workers/chunks/{ac88e0aabbd6c1f1ec98.js → 7f523fa4d4ade4316625.js} +1 -1
  91. package/assets/esri/core/workers/chunks/85bfd380d4f522ff8e83.js +1 -0
  92. package/assets/esri/core/workers/chunks/{21ea48186d01bf459ef6.js → 88308a0dcc479688e67c.js} +1 -1
  93. package/assets/esri/core/workers/chunks/{360223d8bd4ee77ecda1.js → 896c7d137bfd7a8fa0bc.js} +1 -1
  94. package/assets/esri/core/workers/chunks/{74db0831bcbd48152c1d.js → 899f493412acd5a5d91f.js} +1 -1
  95. package/assets/esri/core/workers/chunks/{b331543767c35e5edcc6.js → 8c1bd9bcfc59497de3b5.js} +1 -1
  96. package/assets/esri/core/workers/chunks/{ce211163d078d3d742ce.js → 8ca95499e00ce8b0af9a.js} +1 -1
  97. package/assets/esri/core/workers/chunks/{4ff7c8420c77256f595a.js → 8d51b6823ef5d290c670.js} +1 -1
  98. package/assets/esri/core/workers/chunks/{1512ed7b869b3e8e07bc.js → 8e40c409a9b0a2a768a9.js} +1 -1
  99. package/assets/esri/core/workers/chunks/{938baf4f99332dfdf29d.js → 91be247f868ce6596c9e.js} +1 -1
  100. package/assets/esri/core/workers/chunks/{64553b5eae4edc7f46dc.js → 9247d768c3eccc0828a9.js} +1 -1
  101. package/assets/esri/core/workers/chunks/{02bd15e0adaffcdd645b.js → 947085d176bd3a930e6f.js} +1 -1
  102. package/assets/esri/core/workers/chunks/{dca2b487152cde45fb65.js → 94850c094e076d81a016.js} +1 -1
  103. package/assets/esri/core/workers/chunks/{5fac0b2a5aa33e8a3a84.js → 95f0c15d83d1f38e01d0.js} +1 -1
  104. package/assets/esri/core/workers/chunks/{b45dbbeae54cea2bbc10.js → 962c0ef63de1635fb4aa.js} +1 -1
  105. package/assets/esri/core/workers/chunks/98ac849cccc4d5316021.js +1 -0
  106. package/assets/esri/core/workers/chunks/9928e432b884c75c3436.js +1 -0
  107. package/assets/esri/core/workers/chunks/{d80e26a1f4a61b1c4cf9.js → 9b5e04d87116ce2b68b2.js} +1 -1
  108. package/assets/esri/core/workers/chunks/9c60599131860f635483.js +1 -0
  109. package/assets/esri/core/workers/chunks/{ca5f63c0297612059486.js → 9cd9b22354dbdf1b1df0.js} +1 -1
  110. package/assets/esri/core/workers/chunks/{bd1ba44362b967977003.js → 9e7af4c3c0f8cf0f5c5b.js} +1 -1
  111. package/assets/esri/core/workers/chunks/9f869b331dff505b6b55.js +1 -0
  112. package/assets/esri/core/workers/chunks/{183130521210c855c565.js → a13a36207f265f720255.js} +1 -1
  113. package/assets/esri/core/workers/chunks/a85acb948cc7d22be592.js +1 -0
  114. package/assets/esri/core/workers/chunks/{afb51b8562f8cb29b97e.js → a89c060ad302381aaf7d.js} +1 -1
  115. package/assets/esri/core/workers/chunks/{ada46055fafb8ae21dbe.js → aaab7694eb333ad480f5.js} +1 -1
  116. package/assets/esri/core/workers/chunks/{871da12fb3029177df6f.js → ad106f5f6d6848f40de3.js} +1 -1
  117. package/assets/esri/core/workers/chunks/{dec9656997683ef01ba6.js → ad1e5c24c1eae5ab8e45.js} +1 -1
  118. package/assets/esri/core/workers/chunks/b1c2e5e0a70fb5d27da5.js +1 -0
  119. package/assets/esri/core/workers/chunks/b40845b45f8d7cd347a1.js +1 -0
  120. package/assets/esri/core/workers/chunks/{54a686643e1ec1ea00ac.js → b481807b31e59cce9931.js} +1 -1
  121. package/assets/esri/core/workers/chunks/b5f6a0607b620b027cdd.js +1 -0
  122. package/assets/esri/core/workers/chunks/{8abcf9d3343dd8d45103.js → b884bd2f50aaccfa24c5.js} +1 -1
  123. package/assets/esri/core/workers/chunks/{1285ccdde515aca9a2d5.js → bb23371335ac049861e6.js} +1 -1
  124. package/assets/esri/core/workers/chunks/{469a018d94080fbcde22.js → bbdadced49446c907361.js} +1 -1
  125. package/assets/esri/core/workers/chunks/bc27cdd7c415ab166536.js +1 -0
  126. package/assets/esri/core/workers/chunks/{c06dda7263e64d696c88.js → c110941e87923ba47193.js} +1 -1
  127. package/assets/esri/core/workers/chunks/c474800508e3ad5ce9d7.js +1 -0
  128. package/assets/esri/core/workers/chunks/{67627b1965b27b2f1857.js → c51e2a048df152abd901.js} +1 -1
  129. package/assets/esri/core/workers/chunks/{5c5509147bda78ce338a.js → c52314b987c63cd630f7.js} +1 -1
  130. package/assets/esri/core/workers/chunks/{b12c44faa1efa60067b0.js → c660b6e67d5d13583f19.js} +1 -1
  131. package/assets/esri/core/workers/chunks/c6e3d4c6bb02d58d5cfe.js +1 -0
  132. package/assets/esri/core/workers/chunks/{a1591d7f82e06cab5de4.js → c8d57588267e2fc4406c.js} +1 -1
  133. package/assets/esri/core/workers/chunks/{f5bb7c90f48cae594bc3.js → ca7c9756802214e41c56.js} +1 -1
  134. package/assets/esri/core/workers/chunks/cf474c055a85bdbfa8d0.js +1 -0
  135. package/assets/esri/core/workers/chunks/{9f933a7e9d3b0cd69383.js → d08b80583a23ba253c7e.js} +1 -1
  136. package/assets/esri/core/workers/chunks/d1635a7ab0c204852237.js +1 -0
  137. package/assets/esri/core/workers/chunks/{d16484b389d56a43d204.js → d465e1b3a8a53d9c0a12.js} +1 -1
  138. package/assets/esri/core/workers/chunks/{4c7162883b228db563c6.js → d578c3880eaf2dd62324.js} +1 -1
  139. package/assets/esri/core/workers/chunks/{b8bd0f1be54b318990f6.js → d7c679374aa2d256becf.js} +1 -1
  140. package/assets/esri/core/workers/chunks/{bb0c5275e51d170ac795.js → d93b24e863379116b2aa.js} +1 -1
  141. package/assets/esri/core/workers/chunks/{fae53d825dd9fef0426c.js → da228aed337f492456cc.js} +1 -1
  142. package/assets/esri/core/workers/chunks/{6589133542fa130c0628.js → dd1d9913b33d4e48baff.js} +1 -1
  143. package/assets/esri/core/workers/chunks/{b49b73e2d0d643dfa351.js → de499e33035b56b6697d.js} +1 -1
  144. package/assets/esri/core/workers/chunks/{e59fdb8f625e9080f097.js → e08b2e9213d35f85916f.js} +1 -1
  145. package/assets/esri/core/workers/chunks/{c5c9f0c8da5f7bf41728.js → e177d0ab454dfa024b39.js} +1 -1
  146. package/assets/esri/core/workers/chunks/{948ecf0bfbc886ec3b52.js → e1b25b1ce3bd4f0f2cda.js} +1 -1
  147. package/assets/esri/core/workers/chunks/{eedf97211883713c413e.js → e1b573840ec1f7c3afd3.js} +1 -1
  148. package/assets/esri/core/workers/chunks/{b117e054a2bc54f5f93b.js → e3f2cdf5d71a7040894b.js} +1 -1
  149. package/assets/esri/core/workers/chunks/{dfc5936fbbd26f27a92a.js → e666ca4d14b6490485d6.js} +1 -1
  150. package/assets/esri/core/workers/chunks/e6d08230adb90b9a2a17.js +1 -0
  151. package/assets/esri/core/workers/chunks/{672751823261a5763684.js → e92d9e0ac789bcf1cdf4.js} +1 -1
  152. package/assets/esri/core/workers/chunks/{d3b932ff2299c89c2582.js → e95a8c988ef822723503.js} +1 -1
  153. package/assets/esri/core/workers/chunks/{ae667084cb6a08b97c37.js → eb7dd722e4cd7f83b3f5.js} +1 -1
  154. package/assets/esri/core/workers/chunks/ec9ed7c9d64f88fcb806.js +1 -0
  155. package/assets/esri/core/workers/chunks/{06bd2f5358c6b85d5420.js → f42938e1602306cfa7a8.js} +1 -1
  156. package/assets/esri/core/workers/chunks/{77e083d1e425026fa030.js → f4b145feab275b268c2e.js} +1 -1
  157. package/assets/esri/core/workers/chunks/{568f49f9e50c505b2736.js → f4d7cbd33ef8710d7316.js} +1 -1
  158. package/assets/esri/core/workers/chunks/{451ae19a0a120b27c6da.js → fb0f729eff2f2911d6c3.js} +1 -1
  159. package/assets/esri/core/workers/chunks/{ce0683921ccefc580018.js → fd3009164d5e38fda85f.js} +1 -1
  160. package/assets/esri/core/workers/chunks/{4c77102f083198ae2a6a.js → ff34fdda7899e784ac73.js} +1 -1
  161. package/chunks/ColorMaterial.glsl.js +2 -2
  162. package/chunks/DefaultMaterial.glsl.js +4 -4
  163. package/chunks/HUDMaterial.glsl.js +5 -5
  164. package/chunks/LineMarker.glsl.js +19 -19
  165. package/chunks/Pattern.glsl.js +6 -6
  166. package/chunks/RibbonLine.glsl.js +2 -2
  167. package/chunks/TimeExtent.js +1 -1
  168. package/chunks/TimeInterval.js +1 -1
  169. package/chunks/pe.js +1 -1
  170. package/config.js +1 -1
  171. package/core/AsyncUpdate.js +1 -1
  172. package/core/Collection.js +1 -1
  173. package/core/Evented.js +1 -1
  174. package/core/JSONSupport.d.ts +1 -1
  175. package/core/JSONSupport.js +1 -1
  176. package/core/Loadable.js +1 -1
  177. package/core/MultiOriginJSONSupport.js +1 -1
  178. package/core/Promise.d.ts +1 -1
  179. package/core/Promise.js +1 -1
  180. package/core/ReadOnlyMultiOriginJSONSupport.js +1 -1
  181. package/core/has.js +1 -1
  182. package/core/object.js +1 -1
  183. package/core/workers/RemoteClient.js +1 -1
  184. package/core/workers/utils.js +1 -1
  185. package/editing/sharedTemplates/SharedTemplate.js +1 -1
  186. package/editing/sharedTemplates/SharedTemplateMetadata.js +1 -1
  187. package/editing/sharedTemplates/templateDefinitions/TemplateDefinitionBase.js +1 -1
  188. package/editing/sharedTemplates/templateDefinitions/parts/TemplatePartBase.js +1 -1
  189. package/effects/FocusArea.js +1 -1
  190. package/effects/FocusAreaOutline.js +1 -1
  191. package/effects/FocusAreas.js +1 -1
  192. package/form/ExpressionInfo.js +1 -1
  193. package/form/FormTemplate.js +1 -1
  194. package/form/elements/Element.js +1 -1
  195. package/form/elements/inputs/Input.js +1 -1
  196. package/form/elements/inputs/attachments/Input.js +1 -1
  197. package/geometry/Geometry.js +1 -1
  198. package/geometry/HeightModelInfo.js +1 -1
  199. package/geometry/Mesh.js +1 -1
  200. package/geometry/SpatialReference.js +1 -1
  201. package/geometry/support/MeshComponent.js +1 -1
  202. package/geometry/support/MeshGeoreferencedVertexSpace.js +1 -1
  203. package/geometry/support/MeshLocalVertexSpace.js +1 -1
  204. package/geometry/support/MeshMaterial.js +1 -1
  205. package/geometry/support/MeshTexture.js +1 -1
  206. package/geometry/support/MeshTextureTransform.js +1 -1
  207. package/geometry/support/MeshTransform.js +1 -1
  208. package/geometry/support/MeshVertexAttributes.js +1 -1
  209. package/geometry/support/heightModelInfoUtils.js +1 -1
  210. package/grids/MeasuredGrid.js +1 -1
  211. package/ground/NavigationConstraint.js +1 -1
  212. package/identity/IdentityManagerBase.js +1 -1
  213. package/identity/OAuthInfo.js +1 -1
  214. package/identity/ServerInfo.js +1 -1
  215. package/kernel.js +1 -1
  216. package/layers/BuildingSceneLayer.js +1 -1
  217. package/layers/GaussianSplatLayer.js +5 -0
  218. package/layers/buildingSublayers/BuildingComponentSublayer.js +1 -1
  219. package/layers/buildingSublayers/BuildingGroupSublayer.js +1 -1
  220. package/layers/buildingSublayers/utils.js +5 -0
  221. package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
  222. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  223. package/layers/graphics/sources/MemorySource.js +1 -1
  224. package/layers/knowledgeGraph/IdealEdgeLengthTypeOptions.js +1 -1
  225. package/layers/mixins/OperationalLayer.js +1 -1
  226. package/layers/mixins/TemporalSceneLayer.js +1 -1
  227. package/layers/mixins/operationalLayerModuleMap.js +1 -1
  228. package/layers/orientedImagery/core/CameraOrientationHPR.js +1 -1
  229. package/layers/orientedImagery/core/CameraOrientationLTP.js +1 -1
  230. package/layers/orientedImagery/core/CameraOrientationOPK.js +1 -1
  231. package/layers/orientedImagery/core/CameraOrientationYPR.js +1 -1
  232. package/layers/orientedImagery/core/ElevationSourceDefinitions.js +1 -1
  233. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  234. package/layers/pointCloudFilters/PointCloudFilter.js +1 -1
  235. package/layers/support/AggregateField.js +1 -1
  236. package/layers/support/BuildingFilter.js +1 -1
  237. package/layers/support/BuildingFilterAuthoringInfo.js +1 -1
  238. package/layers/support/BuildingFilterAuthoringInfoBlock.js +1 -1
  239. package/layers/support/BuildingFilterAuthoringInfoType.js +1 -1
  240. package/layers/support/BuildingFilterBlock.js +1 -1
  241. package/layers/support/BuildingFilterMode.js +1 -1
  242. package/layers/support/BuildingSummaryStatistics.js +1 -1
  243. package/layers/support/CodedValue.js +1 -1
  244. package/layers/support/ControlPointsGeoreference.js +1 -1
  245. package/layers/support/DimensionalDefinition.js +1 -1
  246. package/layers/support/DisplayFilter.js +1 -1
  247. package/layers/support/DisplayFilterInfo.js +1 -1
  248. package/layers/support/Domain.js +1 -1
  249. package/layers/support/EditFieldsInfo.js +1 -1
  250. package/layers/support/ExportImageServiceParameters.js +1 -1
  251. package/layers/support/ExpressionInfo.js +1 -1
  252. package/layers/support/FacilityLayerInfo.js +1 -1
  253. package/layers/support/FeatureEffect.js +1 -1
  254. package/layers/support/FeatureFilter.js +1 -1
  255. package/layers/support/FeatureIndex.js +1 -1
  256. package/layers/support/FeatureReduction.js +1 -1
  257. package/layers/support/FeatureReductionCluster.js +1 -1
  258. package/layers/support/FeatureTemplate.js +1 -1
  259. package/layers/support/FeatureType.js +1 -1
  260. package/layers/support/Field.js +1 -1
  261. package/layers/support/GeometryFieldsInfo.js +1 -1
  262. package/layers/support/I3SLayerDefinitions.js +1 -1
  263. package/layers/support/KMLMapImage.js +1 -1
  264. package/layers/support/KMLSublayer.js +1 -1
  265. package/layers/support/LOD.js +1 -1
  266. package/layers/support/LabelClass.js +1 -1
  267. package/layers/support/LabelExpressionInfo.js +1 -1
  268. package/layers/support/LayerContingentValuesCache.js +1 -1
  269. package/layers/support/LayerFloorInfo.js +1 -1
  270. package/layers/support/LayerTimeOptions.js +1 -1
  271. package/layers/support/LevelLayerInfo.js +1 -1
  272. package/layers/support/LocalMediaElementSource.js +1 -1
  273. package/layers/support/MapImage.js +1 -1
  274. package/layers/support/MosaicRule.js +1 -1
  275. package/layers/support/MultidimensionalSubset.js +1 -1
  276. package/layers/support/OrderByInfo.js +1 -1
  277. package/layers/support/ParquetEncodingBase.js +1 -1
  278. package/layers/support/ParquetEncodingLocation.js +1 -1
  279. package/layers/support/ParquetEncodingWkb.js +1 -1
  280. package/layers/support/PixelBlock.js +1 -1
  281. package/layers/support/PlaybackInfo.js +1 -1
  282. package/layers/support/PolygonCollection.js +1 -1
  283. package/layers/support/PurgeOptions.js +1 -1
  284. package/layers/support/RangeInfo.js +1 -1
  285. package/layers/support/RasterBandInfo.js +1 -1
  286. package/layers/support/RasterFunction.js +1 -1
  287. package/layers/support/RasterFunctionInfo.js +1 -1
  288. package/layers/support/RasterFunctionProperties.js +1 -1
  289. package/layers/support/RasterFunctionTemplate.js +1 -1
  290. package/layers/support/RasterFunctionVariable.js +1 -1
  291. package/layers/support/RasterInfo.js +1 -1
  292. package/layers/support/RasterSensorInfo.js +1 -1
  293. package/layers/support/RasterStorageInfo.js +1 -1
  294. package/layers/support/Relationship.js +1 -1
  295. package/layers/support/RouteStopSymbols.js +1 -1
  296. package/layers/support/RouteSymbols.js +1 -1
  297. package/layers/support/SceneFilter.js +1 -1
  298. package/layers/support/SceneModification.js +1 -1
  299. package/layers/support/SceneModifications.js +1 -1
  300. package/layers/support/SiteLayerInfo.js +1 -1
  301. package/layers/support/Subtype.js +1 -1
  302. package/layers/support/TelemetryData.js +1 -1
  303. package/layers/support/TelemetryDisplay.js +1 -1
  304. package/layers/support/TileInfo.js +1 -1
  305. package/layers/support/TileMatrixSet.js +1 -1
  306. package/layers/support/TimeInfo.js +1 -1
  307. package/layers/support/TrackInfo.js +1 -1
  308. package/layers/support/TrackPartInfo.js +1 -1
  309. package/layers/support/VideoFrame.js +1 -1
  310. package/layers/support/VideoTimeExtent.js +1 -1
  311. package/layers/support/WMTSLayerInfo.js +1 -1
  312. package/layers/support/WMTSStyle.js +1 -1
  313. package/layers/support/WMTSSublayer.js +1 -1
  314. package/layers/support/lazyLayerLoader.js +1 -1
  315. package/layers/support/rasterDatasets/BaseRaster.js +1 -1
  316. package/layers/support/rasterFunctions/BaseFunctionArguments.js +1 -1
  317. package/layers/support/rasterFunctions/BaseRasterFunction.js +1 -1
  318. package/layers/support/rasterTransforms/BaseRasterTransform.js +1 -1
  319. package/layers/support/source/DataLayerSource.js +1 -1
  320. package/layers/support/source/MapLayerSource.js +1 -1
  321. package/layers/support/source/QueryTableDataSource.js +1 -1
  322. package/layers/support/source/RasterDataSource.js +1 -1
  323. package/layers/support/source/TableDataSource.js +1 -1
  324. package/layers/voxel/VoxelColorStop.js +1 -1
  325. package/layers/voxel/VoxelDimension.js +1 -1
  326. package/layers/voxel/VoxelDynamicSection.js +1 -1
  327. package/layers/voxel/VoxelFormat.js +1 -1
  328. package/layers/voxel/VoxelIrregularSpacing.js +1 -1
  329. package/layers/voxel/VoxelIsosurface.js +1 -1
  330. package/layers/voxel/VoxelOpacityStop.js +1 -1
  331. package/layers/voxel/VoxelRangeFilter.js +1 -1
  332. package/layers/voxel/VoxelRegularSpacing.js +1 -1
  333. package/layers/voxel/VoxelSection.js +1 -1
  334. package/layers/voxel/VoxelSimpleShading.js +1 -1
  335. package/layers/voxel/VoxelSlice.js +1 -1
  336. package/layers/voxel/VoxelTransferFunctionStyle.js +1 -1
  337. package/layers/voxel/VoxelUniqueValue.js +1 -1
  338. package/layers/voxel/VoxelVariable.js +1 -1
  339. package/layers/voxel/VoxelVariableStyle.js +1 -1
  340. package/layers/voxel/VoxelVolume.js +1 -1
  341. package/layers/voxel/VoxelVolumeIndex.js +1 -1
  342. package/layers/voxel/VoxelVolumeStyle.js +1 -1
  343. package/libs/linkchartlayout/LinkChartLayout.js +1 -1
  344. package/linkChart/ChronologicalLayoutSettings.js +1 -1
  345. package/linkChart/LayoutSettings.js +1 -1
  346. package/linkChart/NonspatialDataDisplay.js +1 -1
  347. package/linkChart/OrganicLayoutSettings.js +1 -1
  348. package/networks/CircuitManager.js +1 -1
  349. package/networks/RulesTable.js +1 -1
  350. package/networks/UnitIdentifierManager.js +1 -1
  351. package/networks/support/Terminal.js +1 -1
  352. package/networks/support/TerminalConfiguration.js +1 -1
  353. package/networks/support/TraceConfiguration.js +1 -1
  354. package/networks/support/UtilityNetworkLookupHelper.js +1 -1
  355. package/package.json +2 -2
  356. package/popup/ElementExpressionInfo.js +1 -1
  357. package/popup/ExpressionInfo.js +1 -1
  358. package/popup/FieldInfo.js +1 -1
  359. package/popup/LayerOptions.js +1 -1
  360. package/popup/RelatedRecordsInfo.js +1 -1
  361. package/popup/content/Content.js +1 -1
  362. package/popup/content/mixins/MediaInfo.js +1 -1
  363. package/popup/content/support/ChartMediaInfoValue.js +1 -1
  364. package/popup/content/support/ImageMediaInfoValue.js +1 -1
  365. package/popup/support/AttachmentsOrderByInfo.js +1 -1
  366. package/popup/support/FieldInfoFormat.js +1 -1
  367. package/popup/support/RelatedRecordsInfoFieldOrder.js +1 -1
  368. package/popup/support/UtilityNetworkAssociationType.js +1 -1
  369. package/portal/Portal.js +1 -1
  370. package/portal/PortalFolder.js +1 -1
  371. package/portal/PortalGroup.js +1 -1
  372. package/portal/PortalItem.js +1 -1
  373. package/portal/PortalUser.js +1 -1
  374. package/renderers/FlowRenderer.js +1 -1
  375. package/renderers/PointCloudClassBreaksRenderer.js +1 -1
  376. package/renderers/PointCloudRenderer.js +1 -1
  377. package/renderers/PointCloudStretchRenderer.js +1 -1
  378. package/renderers/PointCloudUniqueValueRenderer.js +1 -1
  379. package/renderers/RasterColormapRenderer.js +1 -1
  380. package/renderers/RasterShadedReliefRenderer.js +1 -1
  381. package/renderers/RasterStretchRenderer.js +1 -1
  382. package/renderers/Renderer.js +1 -1
  383. package/renderers/VectorFieldRenderer.js +1 -1
  384. package/renderers/support/AttributeColorInfo.js +1 -1
  385. package/renderers/support/AuthoringInfo.js +1 -1
  386. package/renderers/support/AuthoringInfoClassBreakInfo.js +1 -1
  387. package/renderers/support/AuthoringInfoFieldInfo.js +1 -1
  388. package/renderers/support/AuthoringInfoSizeStop.js +1 -1
  389. package/renderers/support/AuthoringInfoVisualVariable.js +1 -1
  390. package/renderers/support/ClassBreakInfo.js +1 -1
  391. package/renderers/support/ColormapInfo.js +1 -1
  392. package/renderers/support/DotDensityLegendOptions.js +1 -1
  393. package/renderers/support/HeatmapColorStop.js +1 -1
  394. package/renderers/support/HeatmapLegendOptions.js +1 -1
  395. package/renderers/support/OthersCategory.js +1 -1
  396. package/renderers/support/RasterPresetRenderer.js +1 -1
  397. package/renderers/support/RasterSymbolizer.js +1 -1
  398. package/renderers/support/RendererLegendOptions.js +1 -1
  399. package/renderers/support/UniqueValue.js +1 -1
  400. package/renderers/support/UniqueValueClass.js +1 -1
  401. package/renderers/support/UniqueValueGroup.js +1 -1
  402. package/renderers/support/UniqueValueInfo.js +1 -1
  403. package/renderers/support/pointCloud/ColorClassBreakInfo.js +1 -1
  404. package/renderers/support/pointCloud/ColorModulation.js +1 -1
  405. package/renderers/support/pointCloud/ColorUniqueValueInfo.js +1 -1
  406. package/renderers/support/pointCloud/PointSizeAlgorithm.js +1 -1
  407. package/renderers/support/pointCloud/fieldsMap.js +5 -0
  408. package/renderers/visualVariables/VisualVariable.js +1 -1
  409. package/renderers/visualVariables/support/ColorSizeStop.js +1 -1
  410. package/renderers/visualVariables/support/ColorStop.js +1 -1
  411. package/renderers/visualVariables/support/OpacityStop.js +1 -1
  412. package/renderers/visualVariables/support/SizeStop.js +1 -1
  413. package/renderers/visualVariables/support/VisualVariableLegendOptions.js +1 -1
  414. package/rest/featureService/FeatureService.js +1 -1
  415. package/rest/knowledgeGraph/DataModel.js +1 -1
  416. package/rest/knowledgeGraph/FieldIndex.js +1 -1
  417. package/rest/knowledgeGraph/GraphObject.js +1 -1
  418. package/rest/knowledgeGraph/GraphObjectType.js +1 -1
  419. package/rest/knowledgeGraph/GraphProperty.js +1 -1
  420. package/rest/knowledgeGraph/KnowledgeGraph.js +1 -1
  421. package/rest/knowledgeGraph/Path.js +1 -1
  422. package/rest/knowledgeGraph/ProtoFeatureCollection.js +1 -1
  423. package/rest/knowledgeGraph/ServiceDefinition.js +1 -1
  424. package/rest/knowledgeGraph/SourceTypeValueBehavior.js +1 -1
  425. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsConfiguration.js +1 -1
  426. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsEntity.js +1 -1
  427. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsPathFilter.js +1 -1
  428. package/rest/knowledgeGraph/toolService/findPaths/CIMKGTraversalDirection.js +1 -1
  429. package/rest/knowledgeGraph/wasmInterface/WasmDataModelWrapperInterfaces.js +1 -1
  430. package/rest/knowledgeGraph/wasmInterface/WasmQueryWrapperInterfaces.js +1 -1
  431. package/rest/knowledgeGraph/wasmInterface/WasmSerializedLayerData.js +1 -1
  432. package/rest/knowledgeGraph/wasmInterface/wasmToDataModelFactories.js +1 -1
  433. package/rest/knowledgeGraph/wasmInterface/wasmToFeatureFactories.js +1 -1
  434. package/rest/knowledgeGraph/wasmInterface/wasmToQueryResponseObjFactories.js +1 -1
  435. package/rest/networks/circuits/support/CircuitVerifyResult.js +1 -1
  436. package/rest/networks/circuits/support/CreateAlterCircuitParameters.js +1 -1
  437. package/rest/networks/circuits/support/DeleteCircuitsParameters.js +1 -1
  438. package/rest/networks/circuits/support/EditCircuitsResult.js +1 -1
  439. package/rest/networks/circuits/support/ExportCircuitsParameters.js +1 -1
  440. package/rest/networks/circuits/support/ExportCircuitsResult.js +1 -1
  441. package/rest/networks/circuits/support/QueryCircuitsParameters.js +1 -1
  442. package/rest/networks/circuits/support/QueryCircuitsResult.js +1 -1
  443. package/rest/networks/circuits/support/VerifyCircuitsParameters.js +1 -1
  444. package/rest/networks/circuits/support/VerifyCircuitsResult.js +1 -1
  445. package/rest/networks/support/AggregatedGeometry.js +1 -1
  446. package/rest/networks/support/Association.js +1 -1
  447. package/rest/networks/support/AssociationGeometriesResult.js +1 -1
  448. package/rest/networks/support/CircuitPath.js +1 -1
  449. package/rest/networks/support/CircuitPathConnectivityElement.js +1 -1
  450. package/rest/networks/support/CircuitTraceResult.js +1 -1
  451. package/rest/networks/support/FunctionResult.js +1 -1
  452. package/rest/networks/support/NetworkElement.js +1 -1
  453. package/rest/networks/support/QueryAssociationsParameters.js +1 -1
  454. package/rest/networks/support/QueryAssociationsResult.js +1 -1
  455. package/rest/networks/support/QueryNamedTraceConfigurationsParameters.js +1 -1
  456. package/rest/networks/support/QueryNamedTraceConfigurationsResult.js +1 -1
  457. package/rest/networks/support/SynthesizeAssociationGeometriesParameters.js +1 -1
  458. package/rest/networks/support/TraceLocation.js +1 -1
  459. package/rest/networks/support/TraceParameters.js +1 -1
  460. package/rest/networks/support/TraceResult.js +1 -1
  461. package/rest/networks/support/ValidateNetworkTopologyParameters.js +1 -1
  462. package/rest/networks/support/ValidateNetworkTopologyResult.js +1 -1
  463. package/rest/networks/unitIdentifiers/support/EditUnitIdentifiersResult.js +1 -1
  464. package/rest/networks/unitIdentifiers/support/InsertGapParameters.js +1 -1
  465. package/rest/networks/unitIdentifiers/support/QueryUnitIdentifiersParameters.js +1 -1
  466. package/rest/networks/unitIdentifiers/support/ResetParameters.js +1 -1
  467. package/rest/networks/unitIdentifiers/support/ResizeParameters.js +1 -1
  468. package/rest/networks/unitIdentifiers/support/UnitQueryResult.js +1 -1
  469. package/rest/query/support/AttachmentInfo.js +1 -1
  470. package/rest/support/AddressCandidate.js +1 -1
  471. package/rest/support/AddressToLocationsParameters.js +1 -1
  472. package/rest/support/AddressesToLocationsParameters.js +1 -1
  473. package/rest/support/ArealUnit.js +1 -1
  474. package/rest/support/AreasAndLengthsParameters.js +1 -1
  475. package/rest/support/AttachmentQuery.js +1 -1
  476. package/rest/support/AttributeBinsGrouping.js +1 -1
  477. package/rest/support/AttributeBinsQuery.js +1 -1
  478. package/rest/support/BaseImageMeasureParameters.js +1 -1
  479. package/rest/support/BaseImageMeasureResult.js +1 -1
  480. package/rest/support/BinParametersBase.js +1 -1
  481. package/rest/support/BufferParameters.js +1 -1
  482. package/rest/support/CameraInfo.js +1 -1
  483. package/rest/support/ClassBreaksDefinition.js +1 -1
  484. package/rest/support/ClosestFacilityParameters.js +1 -1
  485. package/rest/support/ClosestFacilitySolveResult.js +1 -1
  486. package/rest/support/ColorRamp.js +1 -1
  487. package/rest/support/DataFile.js +1 -1
  488. package/rest/support/DataLayer.js +1 -1
  489. package/rest/support/DateBinTimeInterval.js +1 -1
  490. package/rest/support/DensifyParameters.js +1 -1
  491. package/rest/support/DirectionLine.js +1 -1
  492. package/rest/support/DirectionPoint.js +1 -1
  493. package/rest/support/DirectionsEvent.js +1 -1
  494. package/rest/support/DirectionsString.js +1 -1
  495. package/rest/support/FeatureSet.js +1 -1
  496. package/rest/support/FindImagesParameters.js +1 -1
  497. package/rest/support/FindImagesResult.js +1 -1
  498. package/rest/support/FindParameters.js +1 -1
  499. package/rest/support/FindResult.js +1 -1
  500. package/rest/support/FullTextSearch.js +1 -1
  501. package/rest/support/GPMessage.js +1 -1
  502. package/rest/support/GeneralizeParameters.js +1 -1
  503. package/rest/support/GenerateRendererParameters.js +1 -1
  504. package/rest/support/IdentifyParameters.js +1 -1
  505. package/rest/support/IdentifyResult.js +1 -1
  506. package/rest/support/ImageAngleParameters.js +1 -1
  507. package/rest/support/ImageAngleResult.js +1 -1
  508. package/rest/support/ImageBoundaryParameters.js +1 -1
  509. package/rest/support/ImageBoundaryResult.js +1 -1
  510. package/rest/support/ImageGPSInfo.js +1 -1
  511. package/rest/support/ImageGPSInfoParameters.js +1 -1
  512. package/rest/support/ImageGPSInfoResult.js +1 -1
  513. package/rest/support/ImageHistogramParameters.js +1 -1
  514. package/rest/support/ImageIdentifyParameters.js +1 -1
  515. package/rest/support/ImageIdentifyResult.js +1 -1
  516. package/rest/support/ImageInspectionInfo.js +1 -1
  517. package/rest/support/ImagePixelLocationParameters.js +1 -1
  518. package/rest/support/ImagePixelLocationResult.js +1 -1
  519. package/rest/support/ImageSample.js +1 -1
  520. package/rest/support/ImageSampleParameters.js +1 -1
  521. package/rest/support/ImageSampleResult.js +1 -1
  522. package/rest/support/ImageToMapMultirayParameters.js +1 -1
  523. package/rest/support/ImageToMapParameters.js +1 -1
  524. package/rest/support/ImageUrlParameters.js +1 -1
  525. package/rest/support/ImageUrlResult.js +1 -1
  526. package/rest/support/ImageVolume.js +1 -1
  527. package/rest/support/ImageVolumeParameters.js +1 -1
  528. package/rest/support/ImageVolumeResult.js +1 -1
  529. package/rest/support/JobInfo.js +1 -1
  530. package/rest/support/LegendLayer.js +1 -1
  531. package/rest/support/LengthsParameters.js +1 -1
  532. package/rest/support/LinearUnit.js +1 -1
  533. package/rest/support/LocationToAddressParameters.js +1 -1
  534. package/rest/support/MapToImageParameters.js +1 -1
  535. package/rest/support/MeasureAreaFromImageResult.js +1 -1
  536. package/rest/support/MeasureFromImageParameters.js +1 -1
  537. package/rest/support/MeasureLengthFromImageResult.js +1 -1
  538. package/rest/support/MultipartColorRamp.js +1 -1
  539. package/rest/support/NetworkAttribute.js +1 -1
  540. package/rest/support/NetworkDataset.js +1 -1
  541. package/rest/support/NetworkServiceDescription.js +1 -1
  542. package/rest/support/NetworkUrl.js +1 -1
  543. package/rest/support/OffsetParameters.js +1 -1
  544. package/rest/support/ParameterValue.js +1 -1
  545. package/rest/support/PointBarrier.js +1 -1
  546. package/rest/support/PolygonBarrier.js +1 -1
  547. package/rest/support/PolylineBarrier.js +1 -1
  548. package/rest/support/ProjectParameters.js +1 -1
  549. package/rest/support/QuantizationParameters.js +1 -1
  550. package/rest/support/Query.js +1 -1
  551. package/rest/support/RasterData.js +1 -1
  552. package/rest/support/RelationParameters.js +1 -1
  553. package/rest/support/RelationshipQuery.js +1 -1
  554. package/rest/support/RouteInfo.js +1 -1
  555. package/rest/support/RouteParameters.js +1 -1
  556. package/rest/support/RouteResult.js +1 -1
  557. package/rest/support/RouteSettings.js +1 -1
  558. package/rest/support/RouteSolveResult.js +1 -1
  559. package/rest/support/ServiceAreaParameters.js +1 -1
  560. package/rest/support/ServiceAreaSolveResult.js +1 -1
  561. package/rest/support/StatisticDefinition.js +1 -1
  562. package/rest/support/Stop.js +1 -1
  563. package/rest/support/SuggestLocationsParameters.js +1 -1
  564. package/rest/support/SuggestionCandidate.js +1 -1
  565. package/rest/support/TopFeaturesQuery.js +1 -1
  566. package/rest/support/TopFilter.js +1 -1
  567. package/rest/support/TranslateContent.js +1 -1
  568. package/rest/support/TranslateParameters.js +1 -1
  569. package/rest/support/TranslateResult.js +1 -1
  570. package/rest/support/TravelMode.js +1 -1
  571. package/rest/support/TrimExtendParameters.js +1 -1
  572. package/rest/support/UniqueValueDefinition.js +1 -1
  573. package/rest/support/imageMeasureUtils.js +1 -1
  574. package/rest/versionManagement/gdbVersion/support/AlterVersionParameters.js +1 -1
  575. package/rest/versionManagement/gdbVersion/support/ConflictsParameters.js +1 -1
  576. package/rest/versionManagement/gdbVersion/support/ConflictsResult.js +1 -1
  577. package/rest/versionManagement/gdbVersion/support/DeleteForwardEditsParameters.js +1 -1
  578. package/rest/versionManagement/gdbVersion/support/DifferencesParameters.js +1 -1
  579. package/rest/versionManagement/gdbVersion/support/DifferencesResult.js +1 -1
  580. package/rest/versionManagement/gdbVersion/support/InspectConflictsParameters.js +1 -1
  581. package/rest/versionManagement/gdbVersion/support/PostParameters.js +1 -1
  582. package/rest/versionManagement/gdbVersion/support/PostResult.js +1 -1
  583. package/rest/versionManagement/gdbVersion/support/ReconcileParameters.js +1 -1
  584. package/rest/versionManagement/gdbVersion/support/ReconcileResult.js +1 -1
  585. package/rest/versionManagement/gdbVersion/support/RestoreRowsParameters.js +1 -1
  586. package/rest/versionManagement/gdbVersion/support/RestoreRowsResult.js +1 -1
  587. package/rest/versionManagement/support/CreateVersionParameters.js +1 -1
  588. package/rest/versionManagement/support/DeleteVersionParameters.js +1 -1
  589. package/rest/versionManagement/support/GetVersionInfosParameters.js +1 -1
  590. package/rest/versionManagement/support/GetVersionInfosResult.js +1 -1
  591. package/smartMapping/support/adapters/FeatureLayerBinningAdapter.js +1 -1
  592. package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
  593. package/support/MapFloorInfo.js +1 -1
  594. package/support/revision.js +1 -1
  595. package/symbols/Font.js +1 -1
  596. package/symbols/LineStyleMarker3D.js +1 -1
  597. package/symbols/LineSymbolMarker.js +1 -1
  598. package/symbols/Symbol.js +1 -1
  599. package/symbols/Symbol3DLayer.js +1 -1
  600. package/symbols/callouts/Callout3D.js +1 -1
  601. package/symbols/callouts/LineCallout3DBorder.js +1 -1
  602. package/symbols/edges/Edges3D.js +1 -1
  603. package/symbols/patterns/LinePattern3D.js +1 -1
  604. package/symbols/patterns/Pattern3D.js +1 -1
  605. package/symbols/support/ElevationInfo.js +1 -1
  606. package/symbols/support/FeatureExpressionInfo.js +1 -1
  607. package/symbols/support/IconSymbol3DLayerResource.js +1 -1
  608. package/symbols/support/ObjectSymbol3DLayerResource.js +1 -1
  609. package/symbols/support/Symbol3DEmissive.js +1 -1
  610. package/symbols/support/Symbol3DHalo.js +1 -1
  611. package/symbols/support/Symbol3DIconOutline.js +1 -1
  612. package/symbols/support/Symbol3DMaterial.js +1 -1
  613. package/symbols/support/Symbol3DOutline.js +1 -1
  614. package/symbols/support/Symbol3DTextBackground.js +1 -1
  615. package/symbols/support/Symbol3DVerticalOffset.js +1 -1
  616. package/tables/AttributeTableTemplate.js +1 -1
  617. package/tables/elements/AttributeTableElement.js +1 -1
  618. package/tables/support/FieldOrder.js +1 -1
  619. package/undoredo/support/Services.js +1 -1
  620. package/versionManagement/VersionManagementService.js +1 -1
  621. package/versionManagement/VersioningState.js +1 -1
  622. package/views/2d/AnimationManager.js +1 -1
  623. package/views/2d/ViewState.js +1 -1
  624. package/views/2d/engine/AFeatureContainer.js +1 -1
  625. package/views/2d/engine/Bitmap.js +1 -1
  626. package/views/2d/engine/Stage.js +1 -1
  627. package/views/2d/engine/flow/styles/Imagery.js +1 -1
  628. package/views/2d/engine/flow/styles/Particles.js +1 -1
  629. package/views/2d/engine/flow/styles/Streamlines.js +1 -1
  630. package/views/2d/engine/imagery/BrushVectorField.js +1 -1
  631. package/views/2d/engine/imagery/RasterBitmap.js +1 -1
  632. package/views/2d/engine/imagery/RasterVFDisplayObject.js +1 -1
  633. package/views/2d/engine/vectorTiles/RenderBucket.js +1 -1
  634. package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
  635. package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
  636. package/views/2d/engine/vectorTiles/shaders/VTLMaterial.js +1 -1
  637. package/views/2d/engine/webgl/BitBlitRenderer.js +1 -1
  638. package/views/2d/engine/webgl/ClippingInfo.js +1 -1
  639. package/views/2d/engine/webgl/FeatureDisplayList.js +1 -1
  640. package/views/2d/engine/webgl/MaterialManager.js +1 -1
  641. package/views/2d/engine/webgl/Mesh2D.js +1 -1
  642. package/views/2d/engine/webgl/Overlay.js +1 -1
  643. package/views/2d/engine/webgl/OverlayMultipoint.js +1 -1
  644. package/views/2d/engine/webgl/Painter.js +1 -1
  645. package/views/2d/engine/webgl/TiledDisplayObject.js +1 -1
  646. package/views/2d/engine/webgl/Utils.js +1 -1
  647. package/views/2d/engine/webgl/VertexStream.js +1 -1
  648. package/views/2d/engine/webgl/VideoScreenRenderer.js +1 -1
  649. package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
  650. package/views/2d/engine/webgl/animations/store/AnimationStore.js +1 -1
  651. package/views/2d/engine/webgl/brushes/BrushClip.js +1 -1
  652. package/views/2d/engine/webgl/brushes/WGLBrushStencil.js +1 -1
  653. package/views/2d/engine/webgl/brushes/WGLBrushTileDebugInfo.js +1 -1
  654. package/views/2d/engine/webgl/brushes/WGLBrushVTLBackground.js +1 -1
  655. package/views/2d/engine/webgl/cpuMapped/MappedMesh.js +1 -1
  656. package/views/2d/engine/webgl/effects/HittestEffect.js +1 -1
  657. package/views/2d/engine/webgl/effects/highlight/HighlightRenderer.js +1 -1
  658. package/views/2d/engine/webgl/effects/post-processing/Bloom.js +1 -1
  659. package/views/2d/engine/webgl/effects/post-processing/Blur.js +1 -1
  660. package/views/2d/engine/webgl/effects/post-processing/Colorize.js +1 -1
  661. package/views/2d/engine/webgl/effects/post-processing/DropShadow.js +1 -1
  662. package/views/2d/engine/webgl/meshing/Mesh.js +1 -1
  663. package/views/2d/engine/webgl/shaderGraph/GLSLShaderModule.js +1 -1
  664. package/views/2d/engine/webgl/shaderGraph/GraphShaderModule.js +1 -1
  665. package/views/2d/engine/webgl/shaderGraph/techniques/TestDisplayObject.js +1 -1
  666. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityResources.js +1 -1
  667. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapResources.js +1 -1
  668. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/textureUtils.js +1 -1
  669. package/views/2d/engine/webgl/shaderGraph/typed/TypedShaderProgram.js +1 -1
  670. package/views/2d/engine/webgl/shaders/BackgroundPrograms.js +1 -1
  671. package/views/2d/engine/webgl/shaders/BitBlitPrograms.js +1 -1
  672. package/views/2d/engine/webgl/shaders/HighlightPrograms.js +1 -1
  673. package/views/2d/engine/webgl/shaders/MaterialPrograms.js +1 -1
  674. package/views/2d/engine/webgl/shaders/StencilPrograms.js +1 -1
  675. package/views/2d/engine/webgl/shaders/TileInfoPrograms.js +1 -1
  676. package/views/2d/grid/GridView2D.js +1 -1
  677. package/views/2d/layerViewModuleImportUtils.js +1 -1
  678. package/views/2d/layers/BaseDynamicLayerView2D.js +1 -1
  679. package/views/2d/layers/BaseLayerView2D.js +1 -1
  680. package/views/2d/layers/BaseLayerViewGL2D.js +1 -1
  681. package/views/2d/layers/CatalogDynamicGroupLayerView2D.js +1 -1
  682. package/views/2d/layers/CatalogFootprintLayerView2D.js +1 -1
  683. package/views/2d/layers/CatalogLayerView2D.js +1 -1
  684. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  685. package/views/2d/layers/ImageryLayerView2D.js +1 -1
  686. package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
  687. package/views/2d/layers/MapImageLayerView2D.js +1 -1
  688. package/views/2d/layers/MediaLayerView2D.js +1 -1
  689. package/views/2d/layers/OGCFeatureLayerView2D.js +1 -1
  690. package/views/2d/layers/StreamLayerView2D.js +1 -1
  691. package/views/2d/layers/TileLayerView2D.js +1 -1
  692. package/views/2d/layers/VectorTileLayerView2D.js +1 -1
  693. package/views/2d/layers/WMSLayerView2D.js +1 -1
  694. package/views/2d/layers/WMTSLayerView2D.js +1 -1
  695. package/views/2d/layers/features/support/AttributeStore.js +1 -1
  696. package/views/2d/layers/features/support/TileStore.js +1 -1
  697. package/views/2d/layers/graphics/GraphicBoundsRenderer.js +1 -1
  698. package/views/2d/layers/support/DebugOverlay.js +1 -1
  699. package/views/2d/magnifier/MagnifierView2D.js +1 -1
  700. package/views/3d/FocusAreasView.js +1 -1
  701. package/views/3d/analysis/AnalysisView3D.js +1 -1
  702. package/views/3d/analysis/LineOfSightAnalysisView3D.js +1 -1
  703. package/views/3d/environment/ChapmanAtmosphereTechnique.js +1 -1
  704. package/views/3d/environment/CloudsCompositionTechnique.js +1 -1
  705. package/views/3d/environment/CloudsRenderer.js +1 -1
  706. package/views/3d/environment/CloudsTechnique.js +1 -1
  707. package/views/3d/environment/CloudyWeather.js +1 -1
  708. package/views/3d/environment/FogTechnique.js +1 -1
  709. package/views/3d/environment/FoggyWeather.js +1 -1
  710. package/views/3d/environment/LocalAtmosphere.js +1 -1
  711. package/views/3d/environment/MarsAtmosphere.js +1 -1
  712. package/views/3d/environment/NoiseTextureAtlasTechnique.js +1 -1
  713. package/views/3d/environment/Precipitation.js +1 -1
  714. package/views/3d/environment/RainyWeather.js +1 -1
  715. package/views/3d/environment/SimpleAtmosphereTechnique.js +1 -1
  716. package/views/3d/environment/SnowyWeather.js +1 -1
  717. package/views/3d/environment/SunLighting.js +1 -1
  718. package/views/3d/environment/SunnyWeather.js +1 -1
  719. package/views/3d/glTF/internal/Resource.js +1 -1
  720. package/views/3d/glTF/loader.js +1 -1
  721. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  722. package/views/3d/interactive/editingTools/transform/ScaleRotateTransform.js +1 -1
  723. package/views/3d/layerViewModuleImportUtils.js +1 -1
  724. package/views/3d/layers/BuildingSublayerView3D.js +1 -1
  725. package/views/3d/layers/CatalogDynamicGroupLayerView3D.js +1 -1
  726. package/views/3d/layers/CatalogFootprintLayerView3D.js +1 -1
  727. package/views/3d/layers/CatalogLayerView3D.js +1 -1
  728. package/views/3d/layers/DynamicLayerView3D.js +1 -1
  729. package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
  730. package/views/3d/layers/GaussianSplatLayerView3D.js +5 -0
  731. package/views/3d/layers/I3SMeshView3D.js +1 -1
  732. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  733. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  734. package/views/3d/layers/OGCFeatureLayerView3D.js +1 -1
  735. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  736. package/views/3d/layers/StreamLayerView3D.js +1 -1
  737. package/views/3d/layers/TileLayerView3D.js +1 -1
  738. package/views/3d/layers/WMSLayerView3D.js +1 -1
  739. package/views/3d/layers/WMTSLayerView3D.js +1 -1
  740. package/views/3d/layers/graphics/GraphicStateTracking.js +1 -1
  741. package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
  742. package/views/3d/layers/graphics/Graphics3DGraphicsPipeline.js +1 -1
  743. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  744. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  745. package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
  746. package/views/3d/layers/graphics/Graphics3DWaterSymbolLayer.js +1 -1
  747. package/views/3d/layers/graphics/StreamController.js +1 -1
  748. package/views/3d/layers/graphics/pipeline/Feature3DPipeline.js +1 -1
  749. package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorkerHandle.js +1 -1
  750. package/views/3d/layers/graphics/pipeline/rendering/DirectRenderer.js +1 -1
  751. package/views/3d/layers/graphics/pipeline/rendering/FeaturePipelineRenderManager.js +1 -1
  752. package/views/3d/layers/graphics/pipeline/rendering/LodRenderer.js +1 -1
  753. package/views/3d/layers/graphics/pipeline/rendering/RenderCommandContext.js +1 -1
  754. package/views/3d/layers/graphics/pipeline/symbolization/IconSymbolLayerRenderer.js +1 -1
  755. package/views/3d/layers/graphics/pipeline/symbolization/ObjectSymbolLayerRenderer.js +1 -1
  756. package/views/3d/layers/graphics/pipeline/symbolization/primitiveObjectUtils.js +1 -1
  757. package/views/3d/layers/graphics/polygonUtils.js +1 -1
  758. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  759. package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
  760. package/views/3d/layers/support/FeatureTile.js +1 -1
  761. package/views/3d/layers/support/FlowTileTree3DDebugger.js +5 -0
  762. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  763. package/views/3d/state/controllers/AnimationController.js +1 -1
  764. package/views/3d/support/DisplayQualityProfile.js +1 -1
  765. package/views/3d/support/LimitGraphicsMap.js +1 -1
  766. package/views/3d/support/buffer/InterleavedLayout.js +1 -1
  767. package/views/3d/support/buffer/glUtil.js +1 -1
  768. package/views/3d/terrain/BlendLayersTechnique.js +1 -1
  769. package/views/3d/terrain/PatchGeometryFactory.js +1 -1
  770. package/views/3d/terrain/PatchRenderData.js +1 -1
  771. package/views/3d/terrain/RasterColorizerTechnique.js +1 -1
  772. package/views/3d/terrain/TerrainAttributes.js +1 -1
  773. package/views/3d/terrain/TerrainAttributesCache.js +1 -1
  774. package/views/3d/terrain/TileCompositor.js +1 -1
  775. package/views/3d/terrain/isTerrainSurfaceLayer.js +1 -1
  776. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  777. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  778. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  779. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  780. package/views/3d/webgl-engine/collections/Component/SourceGeometry.js +1 -1
  781. package/views/3d/webgl-engine/core/FBOCacheFormats.js +1 -1
  782. package/views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js +2 -2
  783. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +2 -2
  784. package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +4 -4
  785. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +2 -2
  786. package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +1 -1
  787. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +1 -1
  788. package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +4 -4
  789. package/views/3d/webgl-engine/core/shaderModules/glsl.js +1 -1
  790. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechnique.js +1 -1
  791. package/views/3d/webgl-engine/effects/RenderNodes.js +1 -1
  792. package/views/3d/webgl-engine/effects/ScreenSpaceGeometry.js +1 -1
  793. package/views/3d/webgl-engine/effects/bloom/BloomBlurTechnique.js +1 -1
  794. package/views/3d/webgl-engine/effects/bloom/BloomCompositionTechnique.js +1 -1
  795. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +3 -3
  796. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorTechnique.js +1 -1
  797. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  798. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskTechnique.js +1 -1
  799. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  800. package/views/3d/webgl-engine/effects/haze/HazeCompositingTechnique.js +1 -1
  801. package/views/3d/webgl-engine/effects/haze/HazeTechnique.js +1 -1
  802. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  803. package/views/3d/webgl-engine/effects/highlight/HighlightApplyTechnique.js +1 -1
  804. package/views/3d/webgl-engine/effects/highlight/HighlightBlurTechnique.js +1 -1
  805. package/views/3d/webgl-engine/effects/highlight/HighlightDownsampleTechnique.js +1 -1
  806. package/views/3d/webgl-engine/effects/highlight/HighlightToSingleTechnique.js +1 -1
  807. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  808. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightTechnique.js +1 -1
  809. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathData.js +1 -1
  810. package/views/3d/webgl-engine/effects/laserlines/LaserlineTechnique.js +1 -1
  811. package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
  812. package/views/3d/webgl-engine/effects/magnifier/MagnifierTechnique.js +1 -1
  813. package/views/3d/webgl-engine/effects/smaa/SMAABlendWeightsTechnique.js +1 -1
  814. package/views/3d/webgl-engine/effects/smaa/SMAABlurTechnique.js +1 -1
  815. package/views/3d/webgl-engine/effects/smaa/SMAAEdgeDetectTechnique.js +1 -1
  816. package/views/3d/webgl-engine/effects/ssao/SSAOBlurTechnique.js +1 -1
  817. package/views/3d/webgl-engine/effects/ssao/SSAOTechnique.js +1 -1
  818. package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
  819. package/views/3d/webgl-engine/effects/stars/StarsTechnique.js +1 -1
  820. package/views/3d/webgl-engine/effects/transparency/OITBlendTechnique.js +1 -1
  821. package/views/3d/webgl-engine/lib/DefaultVertexBufferLayouts.js +1 -1
  822. package/views/3d/webgl-engine/lib/DrapedHeatmapRenderer.js +1 -1
  823. package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
  824. package/views/3d/webgl-engine/lib/Geometry.js +1 -1
  825. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  826. package/views/3d/webgl-engine/lib/Material.js +1 -1
  827. package/views/3d/webgl-engine/lib/Octree.js +1 -1
  828. package/views/3d/webgl-engine/lib/Program.js +1 -1
  829. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  830. package/views/3d/webgl-engine/lib/RenderingContext.js +1 -1
  831. package/views/3d/webgl-engine/lib/RenderingContextOptions.js +5 -0
  832. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  833. package/views/3d/webgl-engine/lib/ShadowCastRenderer.js +1 -1
  834. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  835. package/views/3d/webgl-engine/lib/TextureTechnique.js +1 -1
  836. package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
  837. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderTechnique.js +1 -1
  838. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  839. package/views/3d/webgl-engine/lib/edgeRendering/bufferLayouts.js +1 -1
  840. package/views/3d/webgl-engine/lib/glUtil3D.js +1 -1
  841. package/views/3d/webgl-engine/lib/lodRendering/InstanceData.js +1 -1
  842. package/views/3d/webgl-engine/lib/lodRendering/InstanceOctree.js +1 -1
  843. package/views/3d/webgl-engine/lib/lodRendering/LodComponentData.js +1 -1
  844. package/views/3d/webgl-engine/lib/lodRendering/LodLevel.js +1 -1
  845. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  846. package/views/3d/webgl-engine/lib/lodRendering/LodResources.js +1 -1
  847. package/views/3d/webgl-engine/lib/lodRendering/RenderInstanceData.js +1 -1
  848. package/views/3d/webgl-engine/lib/octreeUtils.js +1 -1
  849. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  850. package/views/3d/webgl-engine/materials/DefaultBufferWriter.js +1 -1
  851. package/views/3d/webgl-engine/materials/DefaultLayouts.js +1 -1
  852. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  853. package/views/3d/webgl-engine/materials/DefaultTechniqueConfiguration.js +1 -1
  854. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  855. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  856. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  857. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  858. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  859. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  860. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  861. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  862. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  863. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  864. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  865. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  866. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  867. package/views/3d/webgl-engine/materials/WaterTechniqueConfiguration.js +1 -1
  868. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  869. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  870. package/views/3d/webgl-engine/materials/renderers/VaoCache.js +1 -1
  871. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  872. package/views/3d/webgl-engine/parts/ScreenshotManager.js +1 -1
  873. package/views/3d/webgl-engine/shaders/AnimatedLine.glsl.js +5 -5
  874. package/views/3d/webgl-engine/shaders/AtmosphereCompositingTechnique.js +1 -1
  875. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  876. package/views/3d/webgl-engine/shaders/CheckerBoardTechniqueConfiguration.js +1 -1
  877. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  878. package/views/3d/webgl-engine/shaders/ColorMaterialTechniqueConfiguration.js +1 -1
  879. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  880. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  881. package/views/3d/webgl-engine/shaders/DefaultMaterialTechniqueConfiguration.js +1 -1
  882. package/views/3d/webgl-engine/shaders/HUDCompositingTechnique.js +1 -1
  883. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  884. package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
  885. package/views/3d/webgl-engine/shaders/HeatmapDensityTechnique.js +1 -1
  886. package/views/3d/webgl-engine/shaders/HeatmapTechnique.js +1 -1
  887. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  888. package/views/3d/webgl-engine/shaders/ImageMaterialTechniqueConfiguration.js +1 -1
  889. package/views/3d/webgl-engine/shaders/LineCalloutTechnique.js +1 -1
  890. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  891. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  892. package/views/3d/webgl-engine/shaders/MeasurementArrowTechnique.js +1 -1
  893. package/views/3d/webgl-engine/shaders/NativeLineTechnique.js +1 -1
  894. package/views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js +0 -1
  895. package/views/3d/webgl-engine/shaders/OverlayCompositingTechnique.js +1 -1
  896. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  897. package/views/3d/webgl-engine/shaders/PatternTechniqueConfiguration.js +1 -1
  898. package/views/3d/webgl-engine/shaders/PointRendererTechnique.js +1 -1
  899. package/views/3d/webgl-engine/shaders/RealisticTreeTechnique.js +1 -1
  900. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  901. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  902. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
  903. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechniqueConfiguration.js +1 -1
  904. package/views/3d/webgl-engine/shaders/ShadowCastAccumulateTechnique.js +1 -1
  905. package/views/3d/webgl-engine/shaders/ShadowCastClearTechnique.js +1 -1
  906. package/views/3d/webgl-engine/shaders/ShadowCastVisualizeTechnique.js +1 -1
  907. package/views/3d/webgl-engine/shaders/SlicePlaneMaterialTechnique.js +1 -1
  908. package/views/3d/webgl-engine/shaders/TerrainTechnique.js +1 -1
  909. package/views/3d/webgl-engine/shaders/ViewshedTechnique.js +1 -1
  910. package/views/3d/webgl-engine/statistics/RendererPerformanceInfo.js +1 -1
  911. package/views/3d/webgl.js +1 -1
  912. package/views/SceneView.js +1 -1
  913. package/views/VideoView.js +1 -1
  914. package/views/View.js +1 -1
  915. package/views/View2D.js +1 -1
  916. package/views/ViewAnimation.js +1 -1
  917. package/views/draw/DrawAction.js +1 -1
  918. package/views/draw/support/ConnectedReshapeManager.js +1 -1
  919. package/views/interactive/editGeometry/EditGeometryOperations.js +1 -1
  920. package/views/interactive/snapping/Settings.js +1 -1
  921. package/views/interactive/snapping/featureSources/sceneLayerSource/SceneLayerSnappingSourceWorker.js +1 -1
  922. package/views/layers/CatalogDynamicGroupLayerView.d.ts +1 -1
  923. package/views/layers/CatalogDynamicGroupLayerView.js +1 -1
  924. package/views/layers/CatalogFootprintLayerView.d.ts +1 -1
  925. package/views/layers/CatalogFootprintLayerView.js +1 -1
  926. package/views/layers/CatalogLayerView.d.ts +1 -1
  927. package/views/layers/CatalogLayerView.js +1 -1
  928. package/views/layers/FeatureLayerView.d.ts +1 -1
  929. package/views/layers/FeatureLayerView.js +1 -1
  930. package/views/layers/LayerView.js +1 -1
  931. package/views/layers/OGCFeatureLayerView.d.ts +1 -1
  932. package/views/layers/OGCFeatureLayerView.js +1 -1
  933. package/views/layers/PointCloudLayerView.d.ts +1 -1
  934. package/views/layers/PointCloudLayerView.js +1 -1
  935. package/views/layers/RefreshableLayerView.js +1 -1
  936. package/views/layers/StreamLayerView.d.ts +1 -1
  937. package/views/layers/StreamLayerView.js +1 -1
  938. package/views/layers/WMSLayerView.js +1 -1
  939. package/views/layers/support/ClipArea.js +1 -1
  940. package/views/support/PixelHighlightOptions.js +1 -1
  941. package/views/support/Scheduler.js +1 -1
  942. package/views/support/TileTreeDebugger.js +1 -1
  943. package/views/support/imageReprojection.js +1 -1
  944. package/views/support/screenshotUtils.js +1 -1
  945. package/views/webgl/FramebufferObject.js +1 -1
  946. package/views/webgl/InstanceCounter.js +1 -1
  947. package/views/webgl/Parameters.js +1 -1
  948. package/views/webgl/Program.js +1 -1
  949. package/views/webgl/ProgramCache.js +1 -1
  950. package/views/webgl/ProgramTemplate.js +1 -1
  951. package/views/webgl/RenderingContext.js +1 -1
  952. package/views/webgl/RenderingContextOptions.js +5 -0
  953. package/views/webgl/ShaderBuilder.js +1 -1
  954. package/views/webgl/Texture.js +1 -1
  955. package/views/webgl/TextureDescriptor.js +1 -1
  956. package/views/webgl/Util.js +1 -1
  957. package/views/webgl/VertexArrayObject.js +1 -1
  958. package/views/webgl/VertexAttributeLayouts.js +5 -0
  959. package/views/webgl/VertexAttributeLocations.js +5 -0
  960. package/views/webgl/VertexBuffer.js +5 -0
  961. package/views/webgl/capabilities/Capabilities.js +1 -1
  962. package/views/webgl/enums.js +1 -1
  963. package/views/webgl/heatmapTextureUtils.js +1 -1
  964. package/views/webgl/rasterUtils.js +1 -1
  965. package/views/webgl/testAppleAmdDrawArrays.js +1 -1
  966. package/views/webgl/testFloatBufferBlend.js +1 -1
  967. package/views/webgl/testSVGPremultipliedAlpha.js +1 -1
  968. package/views/webgl/textureUtils.js +1 -1
  969. package/webdoc/GeotriggersInfo.js +1 -1
  970. package/webdoc/IPSInfo.js +1 -1
  971. package/webdoc/RangeInfo.js +1 -1
  972. package/webdoc/Widgets.js +1 -1
  973. package/webdoc/applicationProperties/Search.js +1 -1
  974. package/webdoc/applicationProperties/SearchLayer.js +1 -1
  975. package/webdoc/applicationProperties/SearchLayerField.js +1 -1
  976. package/webdoc/applicationProperties/SearchTable.js +1 -1
  977. package/webdoc/applicationProperties/SearchTableField.js +1 -1
  978. package/webdoc/applicationProperties/Viewing.js +1 -1
  979. package/webdoc/geotriggersInfo/DeviceLocationFeed.js +1 -1
  980. package/webdoc/geotriggersInfo/ExpressionInfo.js +1 -1
  981. package/webdoc/geotriggersInfo/FeatureFenceParameters.js +1 -1
  982. package/webdoc/geotriggersInfo/FeatureFilter.js +1 -1
  983. package/webdoc/geotriggersInfo/FeatureLayerSource.js +1 -1
  984. package/webdoc/geotriggersInfo/Geotrigger.js +1 -1
  985. package/webdoc/geotriggersInfo/GeotriggerNotificationOptions.js +1 -1
  986. package/webdoc/ips/AppleIPSProperties.js +1 -1
  987. package/webdoc/ips/Configuration.js +1 -1
  988. package/webdoc/ips/GNSSProperties.js +1 -1
  989. package/webdoc/ips/PathSnappingProperties.js +1 -1
  990. package/webdoc/ips/PositioningService.js +1 -1
  991. package/webdoc/ips/SmoothingProperties.js +1 -1
  992. package/webdoc/support/SlideThumbnail.js +1 -1
  993. package/webdoc/widgets/FloorFilter.js +1 -1
  994. package/webdoc/widgets/Range.js +1 -1
  995. package/webdoc/widgets/TimeSlider.js +1 -1
  996. package/webmap/ApplicationProperties.js +1 -1
  997. package/webmap/Bookmark.js +1 -1
  998. package/webmap/background/ColorBackground.js +1 -1
  999. package/webscene/ApplicationProperties.js +1 -1
  1000. package/webscene/Environment.js +1 -1
  1001. package/webscene/InitialViewProperties.js +1 -1
  1002. package/webscene/Presentation.js +1 -1
  1003. package/webscene/Slide.js +1 -1
  1004. package/webscene/SlideLegendInfo.js +1 -1
  1005. package/webscene/SunLighting.js +1 -1
  1006. package/webscene/TransportationNetwork.js +1 -1
  1007. package/webscene/VirtualLighting.js +1 -1
  1008. package/webscene/background/Background.js +1 -1
  1009. package/webscene/support/Description.js +1 -1
  1010. package/webscene/support/FeatureReference.js +1 -1
  1011. package/webscene/support/FeatureReferenceId.js +1 -1
  1012. package/webscene/support/LayerReference.js +1 -1
  1013. package/webscene/support/SlideElements.js +1 -1
  1014. package/webscene/support/SlideEnvironment.js +1 -1
  1015. package/webscene/support/SlideGround.js +1 -1
  1016. package/webscene/support/SlidePopupInfo.js +1 -1
  1017. package/webscene/support/SlideVisibleLayer.js +1 -1
  1018. package/webscene/support/Title.js +1 -1
  1019. package/widgets/BasemapGallery/support/PortalBasemapsSource.js +1 -1
  1020. package/widgets/Bookmarks/BookmarksViewModel.js +1 -1
  1021. package/widgets/Compass/CompassViewModel.js +1 -1
  1022. package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
  1023. package/widgets/DirectionalPad/DirectionalPadViewModel.js +1 -1
  1024. package/widgets/Directions/DirectionsViewModel.js +1 -1
  1025. package/widgets/Directions/support/directionsUtils.js +1 -1
  1026. package/widgets/Editor/UpdateFeaturesWorkflowData.js +1 -1
  1027. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  1028. package/widgets/FeatureForm/Format.js +1 -1
  1029. package/widgets/FeatureTable/support/ColumnTemplateBase.js +1 -1
  1030. package/widgets/FeatureTable/support/TableTemplate.js +1 -1
  1031. package/widgets/Features/FeaturesViewModel.js +1 -1
  1032. package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
  1033. package/widgets/Home/HomeViewModel.js +1 -1
  1034. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  1035. package/widgets/OrientedImageryViewer/adapters/sketch/MeasurementAdapter.js +1 -1
  1036. package/widgets/OrientedImageryViewer/adapters/sketch/TriangulatedMeasurementAdapter.js +1 -1
  1037. package/widgets/PanoramicViewer/PanoramicZoomConditions.js +1 -1
  1038. package/widgets/Print/CustomTemplate.js +1 -1
  1039. package/widgets/Print/PrintViewModel.js +1 -1
  1040. package/widgets/Search/SearchSource.js +1 -1
  1041. package/widgets/Search/SearchViewModel.js +1 -1
  1042. package/widgets/Widget.js +1 -1
  1043. package/widgets/support/GeolocationPositioning.js +1 -1
  1044. package/widgets/support/GoTo.d.ts +1 -1
  1045. package/widgets/support/GoTo.js +1 -1
  1046. package/assets/esri/core/workers/chunks/040a233ce6fbcc061cdb.js +0 -1
  1047. package/assets/esri/core/workers/chunks/04798411698a48438bd3.js +0 -1
  1048. package/assets/esri/core/workers/chunks/053086e0a043b00f1cca.js +0 -1
  1049. package/assets/esri/core/workers/chunks/05d6ccca0cf38c012873.js +0 -1
  1050. package/assets/esri/core/workers/chunks/0801f9dde41ec5f36cca.js +0 -1
  1051. package/assets/esri/core/workers/chunks/08b4a4c9f3d6478df40a.js +0 -1
  1052. package/assets/esri/core/workers/chunks/0906f977d50b1c5d6ed5.js +0 -1
  1053. package/assets/esri/core/workers/chunks/307df66d00ba5f88780d.js +0 -1
  1054. package/assets/esri/core/workers/chunks/47cdd5a6351e0db3b2e9.js +0 -346
  1055. package/assets/esri/core/workers/chunks/50f56b417992eb30243e.js +0 -1
  1056. package/assets/esri/core/workers/chunks/56aafa6f8862629070d8.js +0 -1
  1057. package/assets/esri/core/workers/chunks/5c5678b15b59f9964bf0.js +0 -1
  1058. package/assets/esri/core/workers/chunks/641ca71d7c1a07bde66a.js +0 -1
  1059. package/assets/esri/core/workers/chunks/6b6ab092f578b20c8e56.js +0 -1
  1060. package/assets/esri/core/workers/chunks/72e0fda211d980572292.js +0 -1
  1061. package/assets/esri/core/workers/chunks/761dab8780495286ec4e.js +0 -1
  1062. package/assets/esri/core/workers/chunks/860bd6d6f0c74ca301a4.js +0 -1
  1063. package/assets/esri/core/workers/chunks/8d914ea9b18b32fd62b8.js +0 -1
  1064. package/assets/esri/core/workers/chunks/97a56b058f8472fec1b2.js +0 -1
  1065. package/assets/esri/core/workers/chunks/9a4d0006c118ae5b45c0.js +0 -1
  1066. package/assets/esri/core/workers/chunks/a2bfb7b2f3f909dc5e59.js +0 -1
  1067. package/assets/esri/core/workers/chunks/afb7e346779adefa4b05.js +0 -1
  1068. package/assets/esri/core/workers/chunks/b2f2c1108fb7cbdd1a68.js +0 -1
  1069. package/assets/esri/core/workers/chunks/b3466edccd553ae0a5d0.js +0 -990
  1070. package/assets/esri/core/workers/chunks/b50841f898d4eb420b73.js +0 -1
  1071. package/assets/esri/core/workers/chunks/b810e2f87c9c59ae04b1.js +0 -1
  1072. package/assets/esri/core/workers/chunks/bf60d4da0dff1e14da8e.js +0 -1
  1073. package/assets/esri/core/workers/chunks/c18ac2018aea6ba97eec.js +0 -1
  1074. package/assets/esri/core/workers/chunks/c3d3e55abf01dae271fb.js +0 -1
  1075. package/assets/esri/core/workers/chunks/d54e18e0f30734610f35.js +0 -1
  1076. package/assets/esri/core/workers/chunks/d7ec905d87a19a1061e7.js +0 -1
  1077. package/assets/esri/core/workers/chunks/d9f206e7ac1fad940be7.js +0 -2
  1078. package/assets/esri/core/workers/chunks/debd832b6c2c0b2ea362.js +0 -1
  1079. package/assets/esri/core/workers/chunks/dfa3ad5d750d7b143a06.js +0 -1
  1080. package/assets/esri/core/workers/chunks/e01fa6389bd0b1ae51a5.js +0 -1
  1081. package/assets/esri/core/workers/chunks/e7cbd1b5e4cb32851a5c.js +0 -1
  1082. package/assets/esri/core/workers/chunks/ed1cd90e899dc9c15ee3.js +0 -1
  1083. package/assets/esri/core/workers/chunks/ef3a11f7e047cff6183c.js +0 -1
  1084. package/assets/esri/core/workers/chunks/f79c9b37f2842ed88a9b.js +0 -1
  1085. package/assets/esri/core/workers/chunks/faa0cfee8c1de9b5b78c.js +0 -1
  1086. package/assets/esri/core/workers/chunks/fe6fa1f2c2d54d41645e.js +0 -1
  1087. package/views/2d/engine/webgl/DefaultVertexAttributeLayouts.js +0 -5
  1088. package/views/2d/engine/webgl/shaderGraph/typed/TypedVertexArrayObject.js +0 -5
  1089. package/views/3d/webgl-engine/lib/DefaultVertexAttributeLocations.js +0 -5
  1090. /package/assets/esri/core/workers/chunks/{d9f206e7ac1fad940be7.js.LICENSE.txt → 3386420c9ae891db5be7.js.LICENSE.txt} +0 -0
@@ -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/ObjectPool.js";import e from"../../../../core/PooledArray.js";import{c as n,m as o,s as i,g as s,f as r}from"../../../../chunks/vec32.js";import{fromValues as h,create as a}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{intersectsSphere as l}from"../../../../geometry/support/frustum.js";import{wrap as d}from"../../../../geometry/support/ray.js";import{h as u,g as c,k as f,c as m,a as _}from"../../../../chunks/sphere.js";import{rayBoxTest as p}from"./Util.js";class b{get bounds(){return this._root.bounds}get halfSize(){return this._root.halfSize}get root(){return this._root.node}get maximumObjectsPerNode(){return this._maximumObjectsPerNode}get maximumDepth(){return this._maximumDepth}get objectCount(){return this._objectCount}constructor(t,e){this.objectToBoundingSphere=t,this._maximumObjectsPerNode=10,this._maximumDepth=20,this._degenerateObjects=new Set,this._root=new g,this._objectCount=0,e&&(void 0!==e.maximumObjectsPerNode&&(this._maximumObjectsPerNode=e.maximumObjectsPerNode),void 0!==e.maximumDepth&&(this._maximumDepth=e.maximumDepth))}destroy(){this._degenerateObjects.clear(),g.clearPool(),k[0]=null,J.prune(),Q.prune()}add(t){const e=Array.from(t);this._grow(e);const n=g.acquire();for(const o of e)++this._objectCount,this._isDegenerate(o)?this._degenerateObjects.add(o):(n.init(this._root),this._add(o,n));g.release(n)}remove(t,e=null){this._objectCount-=t.length;const n=g.acquire();for(const o of t){const t=e??u(this.objectToBoundingSphere(o),W);R(t[3])?(n.init(this._root),x(o,t,n)):this._degenerateObjects.delete(o)}g.release(n),this._shrink()}update(t,e){if(!R(e[3])&&this._isDegenerate(t))return;const n=q(t);this.remove(n,e),this.add(n)}forEachAlongRay(t,e,n){const o=d(t,e);S(this._root,t=>{if(!z(o,t))return!1;const e=t.node;return e.terminals.forAll(t=>{this._intersectsObject(o,t)&&n(t)}),null!==e.residents&&e.residents.forAll(t=>{this._intersectsObject(o,t)&&n(t)}),!0})}forEachAlongRayWithVerticalOffset(t,e,n,o){const i=d(t,e);S(this._root,t=>{if(!M(i,t,o))return!1;const e=t.node;return e.terminals.forAll(t=>{this._intersectsObjectWithOffset(i,t,o)&&n(t)}),null!==e.residents&&e.residents.forAll(t=>{this._intersectsObjectWithOffset(i,t,o)&&n(t)}),!0})}forEach(t){S(this._root,e=>{const n=e.node;return n.terminals.forAll(t),null!==n.residents&&n.residents.forAll(t),!0}),this._degenerateObjects.forEach(t)}forEachDegenerateObject(t){this._degenerateObjects.forEach(t)}findClosest(t,e,n,o=()=>!0,i=1/0){let h=1/0,a=1/0,d=null;const u=E(t,e),c=s=>{if(--i,!o(s))return;const r=this.objectToBoundingSphere(s);if(!l(n,r))return;const u=P(t,e,_(r)),c=u-r[3],f=u+r[3];c<h&&(h=c,a=f,d=s)};return j(this._root,o=>{if(i<=0||!l(n,o.bounds))return!1;s(I,u,o.halfSize),r(I,I,_(o.bounds));if(P(t,e,I)>a)return!1;const h=o.node;return h.terminals.forAll(t=>c(t)),null!==h.residents&&h.residents.forAll(t=>c(t)),!0},t,e),d}forEachInDepthRange(t,e,n,o,i,h,a){let d=-1/0,u=1/0;const c={setRange:t=>{1===n?(d=Math.max(d,t.near),u=Math.min(u,t.far)):(d=Math.max(d,-t.far),u=Math.min(u,-t.near))}};c.setRange(o);const f=P(e,n,t),m=E(e,n),p=E(e,-n),b=t=>{if(!a(t))return;const o=this.objectToBoundingSphere(t),s=_(o),r=P(e,n,s)-f,m=r-o[3],p=r+o[3];m>u||p<d||!l(h,o)||i(t,c)};j(this._root,t=>{if(!l(h,t.bounds))return!1;s(I,m,t.halfSize),r(I,I,_(t.bounds));if(P(e,n,I)-f>u)return!1;s(I,p,t.halfSize),r(I,I,_(t.bounds));if(P(e,n,I)-f<d)return!1;const o=t.node;return o.terminals.forAll(t=>b(t)),null!==o.residents&&o.residents.forAll(t=>b(t)),!0},e,n)}forEachNode(t){S(this._root,e=>t(e.node,e.bounds,e.halfSize,e.depth))}forEachNeighbor(t,e){const n=c(e),o=_(e),s=e=>{const s=this.objectToBoundingSphere(e),r=c(s),h=n+r;return!(i(_(s),o)-h*h<=0)||t(e)};let r=!0;const h=t=>{r&&(r=s(t))};S(this._root,t=>{const e=c(t.bounds),s=n+e;if(i(_(t.bounds),o)-s*s>0)return!1;const a=t.node;return a.terminals.forAll(h),r&&null!==a.residents&&a.residents.forAll(h),r}),r&&this.forEachDegenerateObject(h)}_intersectsObject(t,e){const n=this.objectToBoundingSphere(e);return!(n[3]>0)||f(n,t)}_intersectsObjectWithOffset(t,e,n){const o=this.objectToBoundingSphere(e);return!(o[3]>0)||f(n.applyToBoundingSphere(o),t)}_add(t,e){e.advanceTo(this.objectToBoundingSphere(t))?e.node.terminals.push(t):(e.node.residents.push(t),e.node.residents.length>this._maximumObjectsPerNode&&e.depth<this._maximumDepth&&this._split(e))}_split(t){const e=t.node.residents;t.node.residents=null;for(let n=0;n<e.length;n++){const o=g.acquire().init(t);this._add(e.at(n),o),g.release(o)}}_grow(t){if(B(t,t=>this.objectToBoundingSphere(t),V),R(V[3])&&!this._fitsInsideTree(V))if(N(this._root.node))u(V,this._root.bounds),this._root.halfSize=1.25*this._root.bounds[3],this._root.updateBoundsRadiusFromHalfSize();else{const t=this._rootBoundsForRootAsSubNode(V);this._placingRootViolatesMaxDepth(t)?this._rebuildTree(V,t):this._growRootAsSubNode(t),g.release(t)}}_rebuildTree(t,e){n(_(G),_(e.bounds)),G[3]=e.halfSize,B([t,G],t=>t,U);const o=g.acquire().init(this._root);this._root.initFrom(null,U,U[3]),this._root.increaseHalfSize(1.25),S(o,t=>(this.add(t.node.terminals.data),null!==t.node.residents&&this.add(t.node.residents.data),!0)),g.release(o)}_placingRootViolatesMaxDepth(t){const e=Math.log(t.halfSize/this._root.halfSize)*Math.LOG2E;let n=0;return S(this._root,t=>(n=Math.max(n,t.depth),n+e<=this._maximumDepth)),n+e>this._maximumDepth}_rootBoundsForRootAsSubNode(t){const e=t[3],n=t;let o=-1/0;const i=this._root.bounds,s=this._root.halfSize;for(let h=0;h<3;h++){const t=i[h]-s-(n[h]-e),r=n[h]+e-(i[h]+s),a=Math.max(0,Math.ceil(t/(2*s))),l=Math.max(0,Math.ceil(r/(2*s)))+1,d=2**Math.ceil(Math.log(a+l)*Math.LOG2E);o=Math.max(o,d),K[h].min=a,K[h].max=l}for(let h=0;h<3;h++){let t=K[h].min,e=K[h].max;const n=(o-(t+e))/2;t+=Math.ceil(n),e+=Math.floor(n);const r=i[h]-s-t*s*2;C[h]=r+(e+t)*s}const r=o*s;return C[3]=r*y,g.acquire().initFrom(null,C,r,0)}_growRootAsSubNode(t){const e=this._root.node;n(_(V),_(this._root.bounds)),V[3]=this._root.halfSize,this._root.init(t),t.advanceTo(V,null,!0),t.node.children=e.children,t.node.residents=e.residents,t.node.terminals=e.terminals}_shrink(){for(;;){const t=this._findShrinkIndex();if(-1===t)break;this._root.advance(t),this._root.depth=0}}_findShrinkIndex(){if(0!==this._root.node.terminals.length||this._root.isLeaf())return-1;let t=null;const e=this._root.node.children;let n=0,o=0;for(;o<e.length&&null==t;)n=o++,t=e[n];for(;o<e.length;)if(e[o++])return-1;return n}_isDegenerate(t){return!R(this.objectToBoundingSphere(t)[3])}_fitsInsideTree(t){const e=this._root.bounds,n=this._root.halfSize;return t[3]<=n&&t[0]>=e[0]-n&&t[0]<=e[0]+n&&t[1]>=e[1]-n&&t[1]<=e[1]+n&&t[2]>=e[2]-n&&t[2]<=e[2]+n}toJSON(){const{maximumDepth:t,maximumObjectsPerNode:e,_objectCount:n}=this,o=this._nodeToJSON(this._root.node);return{maximumDepth:t,maximumObjectsPerNode:e,objectCount:n,root:{bounds:this._root.bounds,halfSize:this._root.halfSize,depth:this._root.depth,node:o}}}_nodeToJSON(t){const e=t.children.map(t=>t?this._nodeToJSON(t):null),n=t.residents?.map(t=>this.objectToBoundingSphere(t)),o=t.terminals?.map(t=>this.objectToBoundingSphere(t));return{children:e,residents:n,terminals:o}}static fromJSON(t){const e=new b(t=>t,{maximumDepth:t.maximumDepth,maximumObjectsPerNode:t.maximumObjectsPerNode});return e._objectCount=t.objectCount,e._root.initFrom(t.root.node,t.root.bounds,t.root.halfSize,t.root.depth),e}}class g{constructor(){this.bounds=m(),this.halfSize=0,this.initFrom(null,null,0,0)}init(t){return this.initFrom(t.node,t.bounds,t.halfSize,t.depth)}initFrom(t,e,n,o=this.depth){return this.node=null!=t?t:g.createEmptyNode(),e&&u(e,this.bounds),this.halfSize=n,this.depth=o,this}increaseHalfSize(t){this.halfSize*=t,this.updateBoundsRadiusFromHalfSize()}updateBoundsRadiusFromHalfSize(){this.bounds[3]=this.halfSize*y}advance(t){let e=this.node.children[t];e||(e=g.createEmptyNode(),this.node.children[t]=e),this.node=e,this.halfSize/=2,this.depth++;const n=F[t];return this.bounds[0]+=n[0]*this.halfSize,this.bounds[1]+=n[1]*this.halfSize,this.bounds[2]+=n[2]*this.halfSize,this.updateBoundsRadiusFromHalfSize(),this}advanceTo(t,e,n=!1){for(;;){if(this.isTerminalFor(t))return e&&e(this,-1),!0;if(this.isLeaf()){if(!n)return e&&e(this,-1),!1;this.node.residents=null}const o=this._childIndex(t);e&&e(this,o),this.advance(o)}}isLeaf(){return null!=this.node.residents}isTerminalFor(t){return t[3]>this.halfSize/2}_childIndex(t){const e=this.bounds;return(e[0]<t[0]?1:0)+(e[1]<t[1]?2:0)+(e[2]<t[2]?4:0)}static createEmptyNode(){return{children:[null,null,null,null,null,null,null,null],terminals:new e({shrink:!0}),residents:new e({shrink:!0})}}static{this._pool=new t(g)}static acquire(){return g._pool.acquire()}static release(t){g._pool.release(t)}static clearPool(){g._pool.prune()}}function S(t,e){let n=g.acquire().init(t);const o=[n];for(;0!==o.length;){if(n=o.pop(),e(n)&&!n.isLeaf())for(let t=0;t<n.node.children.length;t++){n.node.children[t]&&o.push(g.acquire().init(n).advance(t))}g.release(n)}}function j(t,e,n,o=1){let i=g.acquire().init(t);const s=[i];for(v(n,o,X);0!==s.length;){if(i=s.pop(),e(i)&&!i.isLeaf())for(let t=7;t>=0;--t){const e=X[t];i.node.children[e]&&s.push(g.acquire().init(i).advance(e))}g.release(i)}}function x(t,e,n){J.clear();const o=n.advanceTo(e,(t,e)=>{J.push(t.node),J.push(e)})?n.node.terminals:n.node.residents;if(o.removeUnordered(t),0===o.length)for(let i=J.length-2;i>=0;i-=2){if(!O(J.data[i],J.data[i+1]))break}}function O(t,n){return n>=0&&(t.children[n]=null),!!N(t)&&(null===t.residents&&(t.residents=new e({shrink:!0})),!0)}function z(t,e){return A(_(e.bounds),2*-e.halfSize,L),A(_(e.bounds),2*e.halfSize,H),p(t.origin,t.direction,L,H)}function M(t,e,n){return A(_(e.bounds),2*-e.halfSize,L),A(_(e.bounds),2*e.halfSize,H),n.applyToMinMax(L,H),p(t.origin,t.direction,L,H)}function N(t){if(0!==t.terminals.length)return!1;if(null!==t.residents)return 0===t.residents.length;for(let e=0;e<t.children.length;e++)if(t.children[e])return!1;return!0}function T(t,e){t[0]=Math.min(t[0],e[0]-e[3]),t[1]=Math.min(t[1],e[1]-e[3]),t[2]=Math.min(t[2],e[2]-e[3])}function D(t,e){t[0]=Math.max(t[0],e[0]+e[3]),t[1]=Math.max(t[1],e[1]+e[3]),t[2]=Math.max(t[2],e[2]+e[3])}function A(t,e,n){n[0]=t[0]+e,n[1]=t[1]+e,n[2]=t[2]+e}function B(t,e,n){L[0]=1/0,L[1]=1/0,L[2]=1/0,H[0]=-1/0,H[1]=-1/0,H[2]=-1/0;for(const o of t){const t=e(o);R(t[3])&&(T(L,t),D(H,t))}o(_(n),L,H,.5),n[3]=Math.max(H[0]-L[0],H[1]-L[1],H[2]-L[2])/2}function v(t,e,n){if(!Q.length)for(let o=0;o<8;++o)Q.push({index:0,distance:0});for(let o=0;o<8;++o){const n=F[o];Q.data[o].index=o,Q.data[o].distance=P(t,e,n)}Q.sort((t,e)=>t.distance-e.distance);for(let o=0;o<8;++o)n[o]=Q.data[o].index}function E(t,e){let n,o=1/0;for(let i=0;i<8;++i){const s=P(t,e,w[i]);s<o&&(o=s,n=w[i])}return n}function P(t,e,n){return e*(t[0]*n[0]+t[1]*n[1]+t[2]*n[2])}function R(t){return!isNaN(t)&&t!==-1/0&&t!==1/0&&t>0}const F=[h(-1,-1,-1),h(1,-1,-1),h(-1,1,-1),h(1,1,-1),h(-1,-1,1),h(1,-1,1),h(-1,1,1),h(1,1,1)],w=[h(-1,-1,-1),h(-1,-1,1),h(-1,1,-1),h(-1,1,1),h(1,-1,-1),h(1,-1,1),h(1,1,-1),h(1,1,1)],y=Math.sqrt(3),k=[null];function q(t){return k[0]=t,k}const C=m(),I=a(),L=a(),H=a(),J=new e,W=m(),V=m(),G=m(),U=m(),K=[{min:0,max:0},{min:0,max:0},{min:0,max:0}],Q=new e,X=[0,0,0,0,0,0,0,0];export{b as default};
5
+ import t from"../../../../core/ObjectPool.js";import e from"../../../../core/PooledArray.js";import{c as n,m as o,s as i,g as s,f as r}from"../../../../chunks/vec32.js";import{fromValues as h,create as a}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{intersectsSphere as l}from"../../../../geometry/support/frustum.js";import{wrap as d}from"../../../../geometry/support/ray.js";import{h as u,g as c,k as f,c as m,a as _}from"../../../../chunks/sphere.js";import{rayBoxTest as p}from"./Util.js";class b{get bounds(){return this._root.bounds}get halfSize(){return this._root.halfSize}get root(){return this._root.node}get maximumObjectsPerNode(){return this._maximumObjectsPerNode}get maximumDepth(){return this._maximumDepth}get objectCount(){return this._objectCount}constructor(t,e){this.objectToBoundingSphere=t,this._maximumObjectsPerNode=10,this._maximumDepth=20,this._degenerateObjects=new Set,this._root=new g,this._objectCount=0,e&&(void 0!==e.maximumObjectsPerNode&&(this._maximumObjectsPerNode=e.maximumObjectsPerNode),void 0!==e.maximumDepth&&(this._maximumDepth=e.maximumDepth))}destroy(){this._degenerateObjects.clear(),g.clearPool(),k[0]=null,J.prune(),Q.prune()}add(t){const e=Array.from(t);this._grow(e);const n=g.acquire();for(const o of e)++this._objectCount,this._isDegenerate(o)?this._degenerateObjects.add(o):(n.init(this._root),this._add(o,n));g.release(n)}remove(t,e=null){this._objectCount-=t.length;const n=g.acquire();for(const o of t){const t=e??u(this.objectToBoundingSphere(o),W);R(t[3])?(n.init(this._root),x(o,t,n)):this._degenerateObjects.delete(o)}g.release(n),this._shrink()}update(t,e){if(!R(e[3])&&this._isDegenerate(t))return;const n=q(t);this.remove(n,e),this.add(n)}forEachAlongRay(t,e,n){const o=d(t,e);S(this._root,t=>{if(!z(o,t))return!1;const e=t.node;return e.terminals.forAll(t=>{this._intersectsObject(o,t)&&n(t)}),null!==e.residents&&e.residents.forAll(t=>{this._intersectsObject(o,t)&&n(t)}),!0})}forEachAlongRayWithVerticalOffset(t,e,n,o){const i=d(t,e);S(this._root,t=>{if(!M(i,t,o))return!1;const e=t.node;return e.terminals.forAll(t=>{this._intersectsObjectWithOffset(i,t,o)&&n(t)}),null!==e.residents&&e.residents.forAll(t=>{this._intersectsObjectWithOffset(i,t,o)&&n(t)}),!0})}forEach(t){S(this._root,e=>{const n=e.node;return n.terminals.forAll(t),null!==n.residents&&n.residents.forAll(t),!0}),this._degenerateObjects.forEach(t)}forEachDegenerateObject(t){this._degenerateObjects.forEach(t)}findClosest(t,e,n,o=()=>!0,i=1/0){let h=1/0,a=1/0,d=null;const u=E(t,e),c=s=>{if(--i,!o(s))return;const r=this.objectToBoundingSphere(s);if(!l(n,r))return;const u=P(t,e,_(r)),c=u-r[3],f=u+r[3];c<h&&(h=c,a=f,d=s)};return j(this._root,o=>{if(i<=0||!l(n,o.bounds))return!1;s(I,u,o.halfSize),r(I,I,_(o.bounds));if(P(t,e,I)>a)return!1;const h=o.node;return h.terminals.forAll(t=>c(t)),null!==h.residents&&h.residents.forAll(t=>c(t)),!0},t,e),d}forEachInDepthRange(t,e,n,o,i,h,a){let d=-1/0,u=1/0;const c={setRange:t=>{1===n?(d=Math.max(d,t.near),u=Math.min(u,t.far)):(d=Math.max(d,-t.far),u=Math.min(u,-t.near))}};c.setRange(o);const f=P(e,n,t),m=E(e,n),p=E(e,-n),b=t=>{if(!a(t))return;const o=this.objectToBoundingSphere(t),s=_(o),r=P(e,n,s)-f,m=r-o[3],p=r+o[3];m>u||p<d||!l(h,o)||i(t,c)};j(this._root,t=>{if(!l(h,t.bounds))return!1;s(I,m,t.halfSize),r(I,I,_(t.bounds));if(P(e,n,I)-f>u)return!1;s(I,p,t.halfSize),r(I,I,_(t.bounds));if(P(e,n,I)-f<d)return!1;const o=t.node;return o.terminals.forAll(t=>b(t)),null!==o.residents&&o.residents.forAll(t=>b(t)),!0},e,n)}forEachNode(t){S(this._root,e=>t(e.node,e.bounds,e.halfSize,e.depth))}forEachNeighbor(t,e){const n=c(e),o=_(e),s=e=>{const s=this.objectToBoundingSphere(e),r=c(s),h=n+r;return!(i(_(s),o)-h*h<=0)||t(e)};let r=!0;const h=t=>{r&&(r=s(t))};S(this._root,t=>{const e=c(t.bounds),s=n+e;if(i(_(t.bounds),o)-s*s>0)return!1;const a=t.node;return a.terminals.forAll(h),r&&null!==a.residents&&a.residents.forAll(h),r}),r&&this.forEachDegenerateObject(h)}_intersectsObject(t,e){const n=this.objectToBoundingSphere(e);return!(n[3]>0)||f(n,t)}_intersectsObjectWithOffset(t,e,n){const o=this.objectToBoundingSphere(e);return!(o[3]>0)||f(n.applyToBoundingSphere(o),t)}_add(t,e){e.advanceTo(this.objectToBoundingSphere(t))?e.node.terminals.push(t):(e.node.residents.push(t),e.node.residents.length>this._maximumObjectsPerNode&&e.depth<this._maximumDepth&&this._split(e))}_split(t){const e=t.node.residents;t.node.residents=null;for(let n=0;n<e.length;n++){const o=g.acquire().init(t);this._add(e.at(n),o),g.release(o)}}_grow(t){if(B(t,t=>this.objectToBoundingSphere(t),V),R(V[3])&&!this._fitsInsideTree(V))if(N(this._root.node))u(V,this._root.bounds),this._root.halfSize=1.25*this._root.bounds[3],this._root.updateBoundsRadiusFromHalfSize();else{const t=this._rootBoundsForRootAsSubNode(V);this._placingRootViolatesMaxDepth(t)?this._rebuildTree(V,t):this._growRootAsSubNode(t),g.release(t)}}_rebuildTree(t,e){n(_(G),_(e.bounds)),G[3]=e.halfSize,B([t,G],t=>t,U);const o=g.acquire().init(this._root);this._root.initFrom(null,U,U[3]),this._root.increaseHalfSize(1.25),S(o,t=>(this.add(t.node.terminals.data),null!==t.node.residents&&this.add(t.node.residents.data),!0)),g.release(o)}_placingRootViolatesMaxDepth(t){const e=Math.log(t.halfSize/this._root.halfSize)*Math.LOG2E;let n=0;return S(this._root,t=>(n=Math.max(n,t.depth),n+e<=this._maximumDepth)),n+e>this._maximumDepth}_rootBoundsForRootAsSubNode(t){const e=t[3],n=t;let o=-1/0;const i=this._root.bounds,s=this._root.halfSize;for(let h=0;h<3;h++){const t=i[h]-s-(n[h]-e),r=n[h]+e-(i[h]+s),a=Math.max(0,Math.ceil(t/(2*s))),l=Math.max(0,Math.ceil(r/(2*s)))+1,d=2**Math.ceil(Math.log(a+l)*Math.LOG2E);o=Math.max(o,d),K[h].min=a,K[h].max=l}for(let h=0;h<3;h++){let t=K[h].min,e=K[h].max;const n=(o-(t+e))/2;t+=Math.ceil(n),e+=Math.floor(n);const r=i[h]-s-t*s*2;C[h]=r+(e+t)*s}const r=o*s;return C[3]=r*y,g.acquire().initFrom(null,C,r,0)}_growRootAsSubNode(t){const e=this._root.node;n(_(V),_(this._root.bounds)),V[3]=this._root.halfSize,this._root.init(t),t.advanceTo(V,null,!0),t.node.children=e.children,t.node.residents=e.residents,t.node.terminals=e.terminals}_shrink(){for(;;){const t=this._findShrinkIndex();if(-1===t)break;this._root.advance(t),this._root.depth=0}}_findShrinkIndex(){if(0!==this._root.node.terminals.length||this._root.isLeaf())return-1;let t=null;const e=this._root.node.children;let n=0,o=0;for(;o<e.length&&null==t;)n=o++,t=e[n];for(;o<e.length;)if(e[o++])return-1;return n}_isDegenerate(t){return!R(this.objectToBoundingSphere(t)[3])}_fitsInsideTree(t){const e=this._root.bounds,n=this._root.halfSize;return t[3]<=n&&t[0]>=e[0]-n&&t[0]<=e[0]+n&&t[1]>=e[1]-n&&t[1]<=e[1]+n&&t[2]>=e[2]-n&&t[2]<=e[2]+n}toJSON(){const{maximumDepth:t,maximumObjectsPerNode:e,_objectCount:n}=this,o=this._nodeToJSON(this._root.node);return{maximumDepth:t,maximumObjectsPerNode:e,objectCount:n,root:{bounds:this._root.bounds,halfSize:this._root.halfSize,depth:this._root.depth,node:o}}}_nodeToJSON(t){const e=t.children.map(t=>t?this._nodeToJSON(t):null),n=t.residents?.map(t=>this.objectToBoundingSphere(t)),o=t.terminals?.map(t=>this.objectToBoundingSphere(t));return{children:e,residents:n,terminals:o}}static fromJSON(t){const e=new b(t=>t,{maximumDepth:t.maximumDepth,maximumObjectsPerNode:t.maximumObjectsPerNode});return e._objectCount=t.objectCount,e._root.initFrom(t.root.node,t.root.bounds,t.root.halfSize,t.root.depth),e}}class g{constructor(){this.bounds=m(),this.halfSize=0,this.initFrom(null,null,0,0)}init(t){return this.initFrom(t.node,t.bounds,t.halfSize,t.depth)}initFrom(t,e,n,o=this.depth){return this.node=null!=t?t:g.createEmptyNode(),e&&u(e,this.bounds),this.halfSize=n,this.depth=o,this}increaseHalfSize(t){this.halfSize*=t,this.updateBoundsRadiusFromHalfSize()}updateBoundsRadiusFromHalfSize(){this.bounds[3]=this.halfSize*y}advance(t){let e=this.node.children[t];e||(e=g.createEmptyNode(),this.node.children[t]=e),this.node=e,this.halfSize/=2,this.depth++;const n=F[t];return this.bounds[0]+=n[0]*this.halfSize,this.bounds[1]+=n[1]*this.halfSize,this.bounds[2]+=n[2]*this.halfSize,this.updateBoundsRadiusFromHalfSize(),this}advanceTo(t,e,n=!1){for(;;){if(this.isTerminalFor(t))return e&&e(this,-1),!0;if(this.isLeaf()){if(!n)return e&&e(this,-1),!1;this.node.residents=null}const o=this._childIndex(t);e&&e(this,o),this.advance(o)}}isLeaf(){return null!=this.node.residents}isTerminalFor(t){return t[3]>this.halfSize/2}_childIndex(t){const e=this.bounds;return(e[0]<t[0]?1:0)+(e[1]<t[1]?2:0)+(e[2]<t[2]?4:0)}static createEmptyNode(){return{children:[null,null,null,null,null,null,null,null],terminals:new e({shrink:!0}),residents:new e({shrink:!0})}}static{this._pool=new t(g)}static acquire(){return g._pool.acquire()}static release(t){g._pool.release(t)}static clearPool(){g._pool.prune()}}function S(t,e){let n=g.acquire().init(t);const o=[n];for(;0!==o.length;){if(n=o.pop(),e(n)&&!n.isLeaf())for(let t=0;t<n.node.children.length;t++){n.node.children[t]&&o.push(g.acquire().init(n).advance(t))}g.release(n)}}function j(t,e,n,o=1){let i=g.acquire().init(t);const s=[i];for(v(n,o,X);0!==s.length;){if(i=s.pop(),e(i)&&!i.isLeaf())for(let t=7;t>=0;--t){const e=X[t];i.node.children[e]&&s.push(g.acquire().init(i).advance(e))}g.release(i)}}function x(t,e,n){J.clear();const o=n.advanceTo(e,(t,e)=>{J.push(t.node),J.push(e)})?n.node.terminals:n.node.residents;if(o.removeUnordered(t),0===o.length)for(let i=J.length-2;i>=0;i-=2){if(!O(J.data[i],J.data[i+1]))break}}function O(t,n){return n>=0&&(t.children[n]=null),!!N(t)&&(null===t.residents&&(t.residents=new e({shrink:!0})),!0)}function z(t,e){return A(_(e.bounds),2*-e.halfSize,L),A(_(e.bounds),2*e.halfSize,H),p(t.origin,t.direction,L,H)}function M(t,e,n){return A(_(e.bounds),2*-e.halfSize,L),A(_(e.bounds),2*e.halfSize,H),n.applyToMinMax(L,H),p(t.origin,t.direction,L,H)}function N(t){if(0!==t.terminals.length)return!1;if(null!==t.residents)return 0===t.residents.length;for(let e=0;e<t.children.length;e++)if(t.children[e])return!1;return!0}function T(t,e){t[0]=Math.min(t[0],e[0]-e[3]),t[1]=Math.min(t[1],e[1]-e[3]),t[2]=Math.min(t[2],e[2]-e[3])}function D(t,e){t[0]=Math.max(t[0],e[0]+e[3]),t[1]=Math.max(t[1],e[1]+e[3]),t[2]=Math.max(t[2],e[2]+e[3])}function A(t,e,n){n[0]=t[0]+e,n[1]=t[1]+e,n[2]=t[2]+e}function B(t,e,n){L[0]=1/0,L[1]=1/0,L[2]=1/0,H[0]=-1/0,H[1]=-1/0,H[2]=-1/0;for(const o of t){const t=e(o);R(t[3])&&(T(L,t),D(H,t))}o(_(n),L,H,.5),n[3]=Math.max(H[0]-L[0],H[1]-L[1],H[2]-L[2])/2}function v(t,e,n){if(!Q.length)for(let o=0;o<8;++o)Q.push({index:0,distance:0});for(let o=0;o<8;++o){const n=F[o];Q.data[o].index=o,Q.data[o].distance=P(t,e,n)}Q.sort((t,e)=>t.distance-e.distance);for(let o=0;o<8;++o)n[o]=Q.data[o].index}function E(t,e){let n,o=1/0;for(let i=0;i<8;++i){const s=P(t,e,w[i]);s<o&&(o=s,n=w[i])}return n}function P(t,e,n){return e*(t[0]*n[0]+t[1]*n[1]+t[2]*n[2])}function R(t){return!isNaN(t)&&t!==-1/0&&t!==1/0&&t>0}const F=[h(-1,-1,-1),h(1,-1,-1),h(-1,1,-1),h(1,1,-1),h(-1,-1,1),h(1,-1,1),h(-1,1,1),h(1,1,1)],w=[h(-1,-1,-1),h(-1,-1,1),h(-1,1,-1),h(-1,1,1),h(1,-1,-1),h(1,-1,1),h(1,1,-1),h(1,1,1)],y=Math.sqrt(3),k=[null];function q(t){return k[0]=t,k}const C=m(),I=a(),L=a(),H=a(),J=new e,W=m(),V=m(),G=m(),U=m(),K=[{min:0,max:0},{min:0,max:0},{min:0,max:0}],Q=new e,X=[0,0,0,0,0,0,0,0];export{b as Octree};
@@ -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"../../../../core/has.js";import{webglDebugEnabled as t}from"../../../webgl/checkWebGLError.js";class r{constructor(t,r,e){this._context=t,this._locations=e,this._textures=new Map,this._glProgram=t.programCache.acquire(r.generate("vertex",!0),r.generate("fragment",!0),e),this._glProgram.stop=()=>{throw new Error("Wrapped _glProgram used directly")},this.bind=r.generateBind(this),this.bindPass=r.generateBindPass(this),this.bindDraw=r.generateBindDraw(this)}dispose(){this._glProgram.dispose()}get glName(){return this._glProgram.glName}get hasTransformFeedbackVaryings(){return this._glProgram.hasTransformFeedbackVaryings}get compiled(){return this._glProgram.compiled}setUniform1b(t,r){this._glProgram.setUniform1i(t,r?1:0)}setUniform1i(t,r){this._glProgram.setUniform1i(t,r)}setUniform1f(t,r,e){this._glProgram.setUniform1f(t,r,e)}setUniform2fv(t,r,e){this._glProgram.setUniform2fv(t,r,e)}setUniform3fv(t,r,e){this._glProgram.setUniform3fv(t,r,e)}setUniform4fv(t,r,e){this._glProgram.setUniform4fv(t,r,e)}setUniformMatrix3fv(t,r,e){this._glProgram.setUniformMatrix3fv(t,r,!1,e)}setUniformMatrix4fv(t,r,e){this._glProgram.setUniformMatrix4fv(t,r,!1,e)}setUniform1fv(t,r,e){this._glProgram.setUniform1fv(t,r,e)}setUniform1iv(t,r){this._glProgram.setUniform1iv(t,r)}setUniform2iv(t,r){this._glProgram.setUniform2iv(t,r)}setUniform3iv(t,r){this._glProgram.setUniform3iv(t,r)}setUniform4iv(t,r){this._glProgram.setUniform4iv(t,r)}assertCompatibleVertexAttributeLocations(t){t.locations!==this._locations&&console.error("VertexAttributeLocations are incompatible")}stop(){this._textures.clear()}bindTexture(r,e){e?.glName||(t()&&console.error(`Texture sampler ${r} has no given Texture in ${(new Error).stack} `),e=this._context.emptyTexture);const i=this._ensureTextureUnit(r,e);this._context.useProgram(this),this.setUniform1i(r,i.unit),this._context.bindTexture(e,i.unit)}_ensureTextureUnit(t,r){let e=this._textures.get(t);return null==e?(e={texture:r,unit:this._textures.size},this._textures.set(t,e)):e.texture=r,e}}export{r as Program};
5
+ import"../../../../core/has.js";import{webglDebugEnabled as t}from"../../../webgl/checkWebGLError.js";class r{constructor(r,e,i){this._context=r,this.locations=i,this._textures=new Map,this.source=t()?e:null,e.attributeNames.forEach(t=>{i.has(t)||console.error(`Missing VertexAttributeLocation for ${t} used in shader`)}),this._glProgram=r.programCache.acquire(e.generate("vertex",!0),e.generate("fragment",!0),i),this._glProgram.stop=()=>{throw new Error("Wrapped _glProgram used directly")},this.bind=e.generateBind(this),this.bindPass=e.generateBindPass(this),this.bindDraw=e.generateBindDraw(this)}dispose(){this._glProgram.dispose()}get glName(){return this._glProgram.glName}get hasTransformFeedbackVaryings(){return this._glProgram.hasTransformFeedbackVaryings}get compiled(){return this._glProgram.compiled}setUniform1b(t,r){this._glProgram.setUniform1i(t,r?1:0)}setUniform1i(t,r){this._glProgram.setUniform1i(t,r)}setUniform1f(t,r,e){this._glProgram.setUniform1f(t,r,e)}setUniform2fv(t,r,e){this._glProgram.setUniform2fv(t,r,e)}setUniform3fv(t,r,e){this._glProgram.setUniform3fv(t,r,e)}setUniform4fv(t,r,e){this._glProgram.setUniform4fv(t,r,e)}setUniformMatrix3fv(t,r,e){this._glProgram.setUniformMatrix3fv(t,r,!1,e)}setUniformMatrix4fv(t,r,e){this._glProgram.setUniformMatrix4fv(t,r,!1,e)}setUniform1fv(t,r,e){this._glProgram.setUniform1fv(t,r,e)}setUniform1iv(t,r){this._glProgram.setUniform1iv(t,r)}setUniform2iv(t,r){this._glProgram.setUniform2iv(t,r)}setUniform3iv(t,r){this._glProgram.setUniform3iv(t,r)}setUniform4iv(t,r){this._glProgram.setUniform4iv(t,r)}assertCompatibleVertexAttributeLocations(t,r){let e=t.locations;if(r){const t=new Map(e);r.forEach((r,i)=>t.set(i,e.size+r)),e=t}e.size!==this.locations.size&&console.error(`VertexAttributeLocations are incompatible: ${e}, ${this.locations}`),this.locations.forEach((t,r)=>{e.get(r)!==t&&console.error(`VertexAttributeLocations are incompatible: Program has ${r} at position ${t}, VAO has it at position ${e.get(r)}.`)})}stop(){this._textures.clear()}bindTexture(r,e){e?.glName||(t()&&console.error(`Texture sampler ${r} has no given Texture in ${(new Error).stack} `),e=this._context.emptyTexture);const i=this._ensureTextureUnit(r,e);this._context.useProgram(this),this.setUniform1i(r,i.unit),this._context.bindTexture(e,i.unit)}_ensureTextureUnit(t,r){let e=this._textures.get(t);return null==e?(e={texture:r,unit:this._textures.size},this._textures.set(t,e)):e.texture=r,e}}export{r as Program};
@@ -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{update as t}from"../../../../core/arrayUtils.js";import{createTask as r}from"../../../../core/asyncUtils.js";import{unitRGBAFromColor as i}from"../../../../core/colorUtils.js";import has from"../../../../core/has.js";import{clamp as s,lerp as a}from"../../../../core/mathUtils.js";import{removeMaybe as n,abortMaybe as h,destroyMaybe as o,releaseMaybe as d}from"../../../../core/maybe.js";import{throwIfAborted as l}from"../../../../core/promiseUtils.js";import{watch as _,syncAndInitial as u,initial as p,sync as m}from"../../../../core/reactiveUtils.js";import{signal as c}from"../../../../core/signal.js";import{Milliseconds as f}from"../../../../core/time.js";import{property as g}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import{subclass as b}from"../../../../core/accessorSupport/decorators/subclass.js";import{equals as P,invert as w,multiply as C}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as S,create as T}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{s as A}from"../../../../chunks/vec42.js";import{ZEROS as E}from"../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{fromValues as x,ZEROS as y}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{pruneIndexArrays as R}from"../../../../geometry/support/Indices.js";import{RenderCategory as D,InternalRenderCategory as I}from"../../webgl.js";import{innerAtmosphereFadeStart as O}from"../../environment/atmosphereUtils.js";import{minNearDistanceInMeters as v}from"../../state/NearFarHeuristic.js";import{debugFlags as M}from"../../support/debugFlags.js";import{FBOCache as H,defaultWebGLFBO as F}from"../core/FBOCache.js";import{RenderPassManager as N}from"../core/renderPasses/RenderPassManager.js";import{isColorOrColorEmission as q}from"../core/shaderLibrary/ShaderOutput.js";import{distanceFadeEnd as G}from"../core/shaderLibrary/shading/ScreenSpaceConstants.js";import{RenderNodes as V}from"../effects/RenderNodes.js";import{RenderPluginManager as L}from"../effects/RenderPluginManager.js";import{Blit as U}from"../effects/blit/Blit.js";import{maxHighlightsPerChannel as j,renderHighlightBuffer as B}from"../effects/highlight/Highlight.js";import{OITBlend as k}from"../effects/transparency/OITBlend.js";import{AnimationTimer as z}from"./AnimationTimer.js";import{AnimationTimeStep as Q}from"./AnimationTimeStep.js";import{BoundingInfo as W}from"./BoundingInfo.js";import{DepthRange as Y}from"./DepthRange.js";import{depthRangeFromScene as J}from"./depthRangeUtils.js";import{hudFragmentOpacityParameters as K}from"./hudFragmentOpacityParameters.js";import{MainFramebuffer as X}from"./MainFramebuffer.js";import{RenderContext as Z,defaultRenderOccludedMask as $}from"./RenderContext.js";import{RendererBase as ee}from"./RendererBase.js";import{setupFeatureDefaults as te}from"./RenderFeature.js";import{RenderPluginInput as re}from"./RenderPluginInput.js";import{ShadowAccumulator as ie}from"./ShadowAccumulator.js";import{ShadowMap as se}from"./ShadowMap.js";import ae from"./SliceHelper.js";import{MergedRenderer as ne}from"../materials/renderers/MergedRenderer.js";import{RenderSceneResult as he}from"../parts/renderUtils.js";import{RendererPerformanceInfo as oe,PerformanceCategory as de}from"../statistics/RendererPerformanceInfo.js";import{ColorAttachment1 as le,ColorAttachment2 as _e}from"../../../webgl/enums.js";let ue=class extends ee{constructor(e,t,r,s,a,n){super({stage:e}),this._techniques=r,this._rctx=s,this._compositingHelper=a,this._requestRender=n,this._pluginsHas={hudElements:!1,water:!1},this.renderPassManager=new N,this._isRendering=!1,this._inGlobeView=!1,this._backgroundColor=x(0,0,0,1),this._sliceHelper=new ae,this._blit=null,this._oitblend=null,this.sceneDepthRange=c(Y.infinite),this._state=c(2),this._highQualityTransparencyEnabled=!0,this._ssrEnabled=!1,this._hasAnimations=!1,this._animationTimestep=new Q,this._loadEdgeViewTask=null,this._edgeViewCallbacks=[],this._reprojectionMatrixVersion=c(0),this._lastFrameTime=f(0),this._renderHiddenTransparentEdges=()=>{},this._pluginInput=new re,this._releaseNormals=e=>{e.some(({name:e})=>"normals"===e)&&this._pluginInput.release("normals")},this._debugNeedsDepth=!1,this._fboCache=new H(s),this._renderStateFeatures=c(te(!has("disable-feature:high-quality-idle"),e.view.qualityProfile)),this._framebuffer=new X(this.fboCache),this._performanceInfo=new oe(this._rctx),this._shadowMap=new se(this.fboCache,e.viewingMode),this._shadowAccumulator=new ie(this.fboCache,r,e,e=>{const t=this.shadowsEnabled;this._shadowMap.enabled=!0,this._ensureBindParametersCamera(e.camera,e.contentCamera),this._plugins.prepareRender(),this._shadowMap.enabled=t},(t,r,i)=>{const s=e.view.qualitySettings.maximumPixelRatio;t.shadowMap.start(t.camera,r,i,!0,s),this._renderShadowCascades(4,t.shadowMap),t.shadowMap.finish(),t.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(t.camera,t.contentCamera)},n),this._renderContext=new Z(this._rctx,this._shadowMap,r),this._nodes=new V(this._renderContext),this._plugins=new L({renderContext:this._renderContext,techniques:r,materials:t,requestRender:n,controller:e,fbos:this.fboCache,isFeatureEnabled:e=>this.isFeatureEnabled(e)}),this._plugins.add(this.renderPassManager),this.addHandles([_(()=>e.view.state.camera,()=>n(),u),_(()=>M.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES,e=>{this._renderHiddenTransparentEdges=e?()=>this._renderEdges(0):()=>{},n()},p),_(()=>e.view.environment.background?.color,e=>{const t=e?i(e):y;A(this._backgroundColor,t[0]*t[3],t[1]*t[3],t[2]*t[3],t[3]),n()},u),_(()=>e.view.state.camera.relativeElevation,e=>this._inGlobeView=(e??1/0)>=G,u),_(()=>this._bindParameters.clouds.fadeFactor,()=>this._bindParameters.fadeLighting(),m),_(()=>this._bindParameters.clouds.data?.state,()=>n(),m),_(()=>e.view.state.highlights,e=>{this._bindParameters.highlights=e,n()},p)])}destroy(){this._gpuTimerHandle=n(this._gpuTimerHandle),this._nodes.destroy(),this._framebuffer.dispose(),this._shadowMap.dispose(),this._shadowAccumulator.dispose(),this._shadowAccumulator=null,this._loadEdgeViewTask=h(this._loadEdgeViewTask),this._edgeView=o(this._edgeView),this.renderPassManager.dispose(),this._releaseFBOs(),this._disposeOffscreenBuffers(),this._fboCache.destroy(),this._fboCache=null,this._plugins.destroy(),this._plugins=null,this._pluginInput=null,this._blit=null,this._oitblend=null,this._compositingHelper=null,this._nodes=null,this._framebuffer=null,this._shadowMap=null,this._renderContext=null,this._performanceInfo=null,W.prune(),ne.prune(),R()}get renderContext(){return this._renderContext}get _bindParameters(){return this._renderContext.bind}get _framebufferSize(){return this._framebuffer.size}get performanceInfo(){return this._performanceInfo}updateRenderFeatures(e=null,t=!has("disable-feature:high-quality-idle")){this._renderStateFeatures.value=te(t,e),this._requestRender()}isFeatureEnabled(e,t=this._state.value){return this._renderStateFeatures.value.get(t,e)??!1}setFeatureEnabled(e,t,r){this._renderStateFeatures.mutate(i=>i.set(t,e,r)),this._requestRender()}get _highQualityTransparency(){return this._highQualityTransparencyEnabled||this.isFeatureEnabled(1)}get hasReflections(){return this._pluginsHas.water&&(this._ssrEnabled||this.isFeatureEnabled(5))}get _hasHighlights(){return this._plugins.produces(8,2,4,17,12,13)}hasHighlight(e){return this._plugins.hasHighlight(e)}get _hasHUDHighlights(){return this._plugins.produces(8,12,13)}get hasSSAO(){return(this.stage.view.qualitySettings.ambientOcclusion||this.isFeatureEnabled(4))&&!this._inGlobeView}get hasSMAA(){return this.stage.view.qualitySettings.antialiasingEnabled||this.isFeatureEnabled(0)}get fullResolutionAtmosphere(){return this.stage.view.qualitySettings.highResolutionAtmosphere||this.isFeatureEnabled(3)}get fboCache(){return this._fboCache}_releaseFBOs(){this._bindParameters.ssr.lastFrameColor=d(this._bindParameters.ssr.lastFrameColor),this._bindParameters.terrainDepth=d(this._bindParameters.terrainDepth),this._bindParameters.geometryDepth=d(this._bindParameters.geometryDepth)}_disposeOffscreenBuffers(){this._framebuffer.dispose(),this._disposeBindBuffers()}_disposeBindBuffers(){this._shadowMap.disposeOffscreenBuffers(),this._bindParameters.depth=d(this._bindParameters.depth),this._bindParameters.hudVisibility=d(this._bindParameters.hudVisibility)}get updating(){return this._loadEdgeViewTask&&!this._loadEdgeViewTask.finished||this._edgeView?.updating||this._shadowAccumulator.readyToRun||this._plugins.updating||!this.isCameraFinal}loadEdgeView(){return this._loadEdgeViewTask||(this._loadEdgeViewTask=r(async e=>{const{EdgeView:t}=await import("./edgeRendering/EdgeView.js");l(e);const r=this._edgeView=new t({rctx:this._rctx,renderSR:this.stage.view.renderSpatialReference,viewingMode:this.stage.view.stage.viewingMode,techniques:this._techniques,setNeedsRender:()=>this._requestRender(),schedule:Te(this.stage.view.resourceController)});return this.addHandles(_(()=>r.updating,()=>this._requestRender(),m)),this._requestRender(),this._edgeViewCallbacks.forEach(e=>e(r)),this._edgeViewCallbacks.length=0,r})),this._loadEdgeViewTask.promise}withEdgeView(e){this.loadEdgeView(),null==this._edgeView?this._edgeViewCallbacks.push(e):e(this._edgeView)}get edgeView(){return this._edgeView}get isCameraFinal(){return this._reprojectionMatrixVersion.value>=0&&P(this._bindParameters.ssr.reprojectionMatrix,S)}set _reprojectionMatrix(e){t(this._bindParameters.ssr.reprojectionMatrix,e)&&this._reprojectionMatrixVersion.value++}get shadowsEnabled(){return!!this._shadowMap?.enabled}setParameters(e){const{_shadowMap:t,_bindParameters:r}=this;if(void 0!==e.qualitySettings?.reflections&&this._ssrEnabled!==e.qualitySettings.reflections&&(this._ssrEnabled=e.qualitySettings.reflections,this._requestRender()),void 0!==e.shadowMap&&this._shadowMap.enabled!==e.shadowMap&&(this._shadowMap.enabled=e.shadowMap,this._requestRender()),void 0!==e.shadowMapMaxCascades&&t.maxCascades!==e.shadowMapMaxCascades&&(t.maxCascades=e.shadowMapMaxCascades,this._requestRender()),null!=e.environment){if(null!=e.environment.weather){const t=e.environment.weather;this._bindParameters.weather=t,this._bindParameters.snowCover=!!e.weatherVisible&&null!=t&&"snowy"===t.type&&"enabled"===t.snowCover}const t="virtual"!==e.environment.lighting.type;r.enableFillLights!==t&&(r.enableFillLights=t,this._requestRender())}void 0!==e.highQualityTransparency&&this._highQualityTransparencyEnabled!==e.highQualityTransparency&&(this._highQualityTransparencyEnabled=e.highQualityTransparency,this._requestRender()),void 0!==e.shadowCast&&this._shadowAccumulator.setOptions(e.shadowCast)}set slice(e){this._sliceHelper.update(e)&&this._requestRender()}get plugins(){return this._plugins}get _hasOITSupport(){return this._rctx.driverTest.floatBufferBlend.result}get _oitEnabled(){return this._highQualityTransparency&&this._hasOITSupport}commit(e,t){return this._isRendering&&console.warn("Renderer.modify called while rendering"),!!super.commit(e,t,this._plugins.context)&&(this.updateHasFlags(),!0)}rendererAdded(e){this._plugins.add(e)}rendererRemoved(e){this._plugins.remove(e)}get occludedRequiresStencil(){return this.occludedRequiresOccludeeStencil||this.occludedRequiresIntegratedMeshStencil}get occludedRequiresOccludeeStencil(){return this._bindParameters.hasOccludees&&!!(8&this.plugins.renderOccludedFlags)}get occludedRequiresIntegratedMeshStencil(){return this._plugins.produces(0,0)&&this._plugins.produces(0,8)}updateHasFlags(){const has=this._pluginsHas;has.hudElements=this._plugins.produces(0,...be),has.water=this._plugins.produces(3,18),this._bindParameters.hasOccludees=this._plugins.hasOccludees,this._requestRender()}updateAnimation(e,t){this._animationTimer??=new z(e.camera,t),this._animationTimer.advance(e.camera,t,this._animationTimeDilation);const r=this._hasAnimations;return this._hasAnimations=this._plugins.updateAnimation(this._animationTimer),this._hasAnimations=this._nodes.updateAnimation(this._animationTimer)||this._hasAnimations,this._hasAnimations!==r&&(this._gpuTimerHandle=r?n(this._gpuTimerHandle):this.performanceInfo.enableGPUPerformanceInfo()),this._hasAnimations}get animationTimestep(){return this._animationTimestep.value}get _animationTimeDilation(){return this._animationTimestep.timeDilation}resetAnimation(){this._animationTimestep.clear()}tick(){this.fboCache.clean()}render(e,t,r=0,i=!1){try{return this._isRendering=!0,this._render(e,t,r,i)}catch(s){console.error(`Exception during rendering: ${s}`)}finally{this._isRendering=!1}return new he(this._pluginInput.get(D.FINAL),null)}_updateHUDOccludedFragmentOpacity(e,t){const{idleOpacity:r,navigatingOpacity:i,maxDelta:n,tiltFadeStart:h,tiltFadeEnd:o,altitudeStart:d,altitudeEnd:l}=K,_=this.stage.view,u=_.stateManager.camera,p=_.qualitySettings.fadeDuration,m=2===e?r:i,c=s((u.tilt-h)/(o-h),0,1),f=s(((u.position.z??0)-d)/(l-d),0,1),g=a(a(1,m,c),1,f),b=this._bindParameters.hudOccludedFragmentOpacity;if(p<=0||b===g||0===this._lastFrameTime||this._lastFrameTime>t)return this._bindParameters.hudOccludedFragmentOpacity=g,void(this._lastFrameTime=t);const P=t-this._lastFrameTime;this._lastFrameTime=t;const w=Math.max(1-r,Math.abs(r-i)),C=Math.min(w*P/p,n);C>=Math.abs(g-b)?this._bindParameters.hudOccludedFragmentOpacity=g:(this._bindParameters.hudOccludedFragmentOpacity=b+Math.sign(g-b)*C,this._requestRender())}_render(e,t,r=0,i){this.performanceInfo.startFrame(),this.fboCache.frameStart(),this.fboCache.interactive=0===r,this._disposeBindBuffers();const{camera:s,contentCamera:a,mode:n,alignPixelEnabled:h}=e;this._state.value=n;const o=this._nodes.produces("magnifier-color"),d=this._nodes.produces(D.FINAL),l=this._nodes.require("emissive",I.TRANSPARENT_ENVIRONMENT,D.COMPOSITE,D.FINAL)>0&&this._plugins.hasEmissions,_=l?1:0;this._renderContext.time=t,this._renderContext.output=_,this._bindParameters.oitPass=0,this._bindParameters.alignPixelEnabled=h,this._bindParameters.decorations=!i,this._bindParameters.mainDepth=null;const u=!i||!this._sliceHelper.isDecoration;this._bindParameters.slicePlane=u?this._sliceHelper.plane:null,this._bindParameters.viewshedEnabled=this._nodes.produces(I.VIEWSHED),this._renderOverlay(),s.setGLViewport(this._rctx);const p=this._framebuffer,m=p.initialize(s.fullWidth,s.fullHeight,this._backgroundColor,l);this.hasReflections?(m?.setName("last frame color"),this._bindParameters.ssr.lastFrameColor=m):m?.release(),this._ensureBindParametersCamera(s,a),this._updateHUDOccludedFragmentOpacity(n,t),this._plugins.prepareRender(),this._bindParameters.shadowHighlightsVisible=this._needsShadowHighlight&&!i;const c=this._highQualityTransparency&&this._hasTransparentTerrain,f=this._plugins.produces(0,...fe);this._precompilePrepasses(),this.performanceInfo.advance(de.PREPARE);const g=this._computeShadowDepthRange(s);this._renderShadowMap(s,this._bindParameters.lighting.mainLight.direction,g),this._pluginInput.set("normals",this._renderNormals()),this._renderRemainingGeometryDepth(),this._renderShadowAccumulation(g,s,a,1===r),this._ensureBindParametersSSR(t),this._precompileShaders(c,f,_),this._renderContext.output=_,p.bind(),this._bindParameters.mainDepth=p.depth.attachment,this._renderOpaque(c),this._renderTransparent(f,c,_),this._shadowMap.disposeMainBuffer(),this._pluginInput.set(I.FOCUSAREA,this._renderFocusAreaGeometry()),p.update(e=>this._renderNodes(I.TRANSPARENT_ENVIRONMENT,e)),p.update(e=>this._renderNodes(I.VIEWSHED,e)),p.update(e=>this._renderNodes(I.LASERLINES,e)),p.update(e=>this._renderNodes(I.FOCUSAREA_COLOR,e)),this._pluginInput.release(I.FOCUSAREA),p.update(e=>this._renderNodes(I.OCCLUDED,e)),this._pluginInput.set("highlights",this._renderHighlightPrepass()),this._renderHighlightShadowMap(s,this._bindParameters.lighting.mainLight.direction,g);const b=2===r?this._renderObjectAndLayerIdColor():null;p.update(e=>this._renderNodes(D.COMPOSITE,e)),this._shadowMap.disposeOffscreenBuffers();const P=!(0!==r||d||o&&!i),w=this._pluginInput.get(D.COMPOSITE),C=P?F:this.fboCache.acquire(w.fbo.width,w.fbo.height,I.ANTIALIASING),S=this._nodes.produces(I.ANTIALIASING)?this._renderNodes(I.ANTIALIASING,C):this._blitFBO(w,C,!1);let T;this._pluginInput.set(I.ANTIALIASING,S),this._hasHUDHighlights?(this._renderHUD(1,S,_),T=this._renderNodes(I.HIGHLIGHTS,S)):(T=this._renderNodes(I.HIGHLIGHTS,S),this._renderHUD(1,T,_));const A=this._renderNodes(I.MAGNIFIER,T);return o&&!i&&0===r&&!d&&this._blitFBO(A),d?(A.attachDepth(p.depth),this._blitFBO(this._renderNodes(D.FINAL,A)),A.detachDepth()):this._pluginInput.set(D.FINAL,A),this._pluginInput.release("highlights"),this.onPostRender&&this.onPostRender(),this._releaseFBOs(),p.releaseDepth(),this._renderContext.lastFrameCamera.copyFrom(this._bindParameters.camera),this.fboCache.frameEnd(),this.performanceInfo.finishFrame(),0!==r&&(this._releaseFBOs(),this._disposeOffscreenBuffers()),new he(this._pluginInput.get(D.FINAL),b)}_precompileShaders(e,t,r){++this._plugins.context.techniques.precompiling,this._renderContext.output=r,this._precompileOpaqueGeometry(),this._nodes.precompile(I.OPAQUE_ENVIRONMENT),this._bindParameters.terrainDepthTest=e,this._bindParameters.cullAboveTerrain=e,this._renderContext.output=2,this._plugins.precompile(6),e&&(this._precompileOpaqueGeometry(),this._precompileTransparentGeometry()),this._renderContext.output=r,this._plugins.precompile(6),t&&(this._precompileTransparentGeometry(),this._hasTransparentTerrain&&(this._bindParameters.cullAboveTerrain=!1,this._precompileTransparentGeometry(),this._bindParameters.cullAboveTerrain=e)),this._nodes.precompile(I.FOCUSAREA),this._needsHUDVisibility&&this._plugins.precompile(11),this._plugins.precompile(14),this._precompileHUD(0),this._bindParameters.terrainDepthTest=!1,this._bindParameters.cullAboveTerrain=!1,this._nodes.precompile(I.VIEWSHED,I.LASERLINES,I.FOCUSAREA_COLOR,I.OCCLUDED,I.ANTIALIASING,I.HIGHLIGHTS);const i=this._bindParameters;i.highlightMixTexture=i.highlights.length>1?this._rctx.emptyTexture:null,this._precompileHUD(1),this._hasHighlights&&(i.highlights.forEach((e,t)=>{i.highlightLevel=t,this._precompileAllGeometry(8)}),i.highlightLevel=null),i.highlightMixTexture=null,this._nodes.precompile(D.COMPOSITE,I.MAGNIFIER),this._shadowAccumulator.precompile(),this._plugins.precompile(7),--this._plugins.context.techniques.precompiling}_renderFocusAreaGeometry(){const e=this._nodes.produce(I.FOCUSAREA,this._pluginInput);return e&&this.performanceInfo.advance(de.FOCUS_AREA_MASK),e}_renderObjectAndLayerIdColor(){if(!this._nodes.produces("olid"))return null;const e=this._renderContext.output;++this._techniques.precompiling;const t=this._framebufferSize;let r=this.fboCache.acquire(t.width,t.height,"olid");return r.acquireDepth(11),r=this._nodes.render(r,this._pluginInput),--this._techniques.precompiling,this.performanceInfo.advance(de.OBJECT_AND_LAYER_ID_COLOR),this._renderContext.output=e,r}finish(e){this._hasAnimations||this._animationTimestep.clear();const t=this.performanceInfo.gpuSamplingEnabled,r=0===e;if(r||t){const e=r?this.performanceInfo.elapsedTime:0;let i=0;t?i=this.performanceInfo.totalGPUTimeSampler.last:this._rctx.gl.finish();const s=Math.max(e,i);this._animationTimestep.frame(s,r)}}readMainDepth(e,t){const{mainDepth:r,camera:i}=this._bindParameters;if(!r)return;const s=this.fboCache.acquire(this._framebufferSize.width,this._framebufferSize.height,"linear-depth");this._rctx.bindFramebuffer(s.fbo),i.setGLViewport(this._rctx),this._rctx.setScissorRect(e[0],e[1],e[2],e[3]),this._rctx.setScissorTestEnabled(!0),this._rctx.clearFramebuffer(y),this._compositingHelper.blitDepthToLinearDepth(this._bindParameters,r),this._rctx.setScissorTestEnabled(!1),this._rctx.setScissorRect(0,0,this._rctx.gl.canvas.width,this._rctx.gl.canvas.width),s.fbo?.readPixels(e[0],e[1],e[2],e[3],6408,5121,t),s.release()}readHUDVisibility(e,t,r,i,s){this._bindParameters.hudVisibility?.fbo?.readPixels(e,t,r,i,6408,5121,s)}readAccumulatedShadow(e){return this._shadowAccumulator.readAccumulatedShadow(e[0],e[1])}_renderEdges(e){const t=this._edgeView;if(!t?.shouldRender())return;const r=this._framebufferSize,i=this.fboCache.acquire(r.width,r.height,"edges"),s=()=>t.render(this._bindParameters,e),a=this._bindParameters.geometryDepth;this.renderToTargets(s,i,a??this._framebuffer.depth,y),this._framebuffer.bind(),this._compositingHelper.composite(this._bindParameters,i.getTexture()),i.release(),this.performanceInfo.advance(1===e?de.OPAQUE_EDGES:de.TRANSPARENT_EDGES)}_renderOverlay(){this._bindParameters.overlay=this.overlay?.render(),this._bindParameters.overlay&&this.performanceInfo.advance(de.OVERLAY)}_renderShadowMap(e,t,r){if(!this.shadowsEnabled)return;const{contentCamera:i}=this._bindParameters,s=this._shadowMap;s.start(e,t,r,this.isFeatureEnabled(6),this.stage.view.qualitySettings.maximumPixelRatio),this._needsShadowHighlight?(this._renderShadowCascades(6,this._shadowMap),s.copySnapshot(1),this._renderShadowCascades(5,this._shadowMap)):this._renderShadowCascades(4),s.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,i),this.performanceInfo.advance(de.SHADOW_MAP)}_renderHighlightShadowMap(e,t,r){if(!this.shadowsEnabled||!this._needsShadowHighlight)return;const{contentCamera:i}=this._bindParameters,s=this._shadowMap;s.start(e,t,r,this.isFeatureEnabled(6),this.stage.view.qualitySettings.maximumPixelRatio),this._renderShadowCascades(5,this._shadowMap),s.moveSnapshot(0),s.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,i),this.performanceInfo.advance(de.SHADOW_MAP)}_precompileShadowCascades(e){for(const t of this._shadowMap.cascades)t.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(t.camera,t.camera),this._precompileAllGeometry(e)}_renderShadowCascades(e,t=this._shadowMap){t.bindFbo();for(const r of t.cascades)r.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(r.camera,r.camera),this.renderAllGeometry(e)}get _needsDepth(){return this._plugins.consumes(2)||this._nodes.requireGeometryDepth()||this.hasReflections||this._needsShadowHighlight||this._shadowAccumulator.active||this._debugNeedsDepth}_renderRemainingGeometryDepth(){const e=this._pluginInput.get("normals");e?(this._pluginInput.set(I.SSAO,this._renderSSAO()),this._needsDepth?(this._rctx.bindFramebuffer(e.fbo),this._rctx.clear(1024),this._renderGeometryWithoutNormals(2),d(this._bindParameters.depth),this._bindParameters.depth=e.obtainDepthTexture(),this.performanceInfo.advance(de.DEPTH)):(e.detachDepth(),this._bindParameters.depth=d(this._bindParameters.depth)),this.hasSSAO&&this._pluginInput.release("normals")):this._renderAllGeometryDepth()}_renderAllGeometryDepth(){if(!this._needsDepth)return void(this._bindParameters.depth=d(this._bindParameters.depth));const e=this._framebufferSize,t=this.fboCache.acquire(e.width,e.height,"depth",11);this._rctx.bindFramebuffer(t.fbo),this._rctx.clear(1280),this.renderAllGeometry(2),d(this._bindParameters.depth),this._bindParameters.depth=t.obtainDepthTexture(),t.release(),this.performanceInfo.advance(de.DEPTH)}_renderTerrainDepth(e){if(this._bindParameters.terrainDepthTest=e,this._bindParameters.cullAboveTerrain=e,!e)return void(this._bindParameters.terrainDepth=d(this._bindParameters.terrainDepth));const t=this._renderContext.output;this._renderContext.output=2;const r=this._framebufferSize,i=this.fboCache.acquire(r.width,r.height,"terrain depth",11);this._rctx.bindFramebuffer(i.fbo),this._rctx.clear(1280),this._renderTransparentTerrain(),d(this._bindParameters.terrainDepth),this._bindParameters.terrainDepth=i.obtainDepthTexture(),this._renderContext.output=t,i.release()}_renderGeometryDepth(e){if(!e)return void(this._bindParameters.geometryDepth=d(this._bindParameters.geometryDepth));const t=this._renderContext.output,{width:r,height:i}=this._framebufferSize,s=this.fboCache.acquire(r,i,"geometry depth",11);this._rctx.bindFramebuffer(s.fbo),this._rctx.clear(1280),this._renderOpaqueAndTransparentGeometry(2),this._renderContext.output=t,d(this._bindParameters.geometryDepth),this._bindParameters.geometryDepth=s.obtainDepthTexture(),s.release()}get _needsShadowDepthRange(){return this._shadowMap.enabled||this._shadowAccumulator.active}_computeShadowDepthRange(e){if(!this._needsShadowDepthRange)return Y.zero;const t=J(e,this._plugins.plugins,this.stage.layers,0);return t.union(this._plugins.queryDepthRange(e)),t.near=Math.max(e.near,t.near),t.far=Math.min(e.far,t.far),t}updateSceneDepthRange(e){if(!this.stage.view.state.isGlobal)return void(this.sceneDepthRange.value=Y.infinite);if((this.stage.view.renderCoordsHelper?.getAltitude(e.eye)??0)<O)return void(this.sceneDepthRange.value=Y.infinite);const t=e.clone();t.near=v,t.far=1e10;const r=J(t,this._plugins.plugins,this.stage.layers,1);r.union(this._plugins.queryDepthRange(t)),this.sceneDepthRange.value.far===r.far&&this.sceneDepthRange.value.near===r.near||(this.sceneDepthRange.value=r)}get _normalsRequired(){const e=this._nodes.require("normals",D.FINAL,D.COMPOSITE,D.OPAQUE,D.TRANSPARENT,I.VIEWSHED,I.LASERLINES);return(this.hasSSAO?1:0)+e}_precompilePrepasses(){this._normalsRequired&&this._precompileAllGeometry(3),this._needsDepth&&this._precompileAllGeometry(2),this.shadowsEnabled&&(this._needsShadowHighlight?(this._precompileShadowCascades(5),this._precompileShadowCascades(6),this._precompileShadowCascades(5)):this._precompileShadowCascades(4)),this._shadowAccumulator.active&&this._precompileAllGeometry(4)}_renderNormals(){const e=this._normalsRequired;if(0===e)return;const t=this._framebufferSize,r=this.fboCache.acquire(t.width,t.height,"normals",5);r.acquireDepth(11),this._rctx.bindFramebuffer(r.fbo),this._rctx.clearFramebuffer(y,!0,!0),this._renderGeometryWithNormals(3);const i=this._nodes.optional("normals",D.FINAL,D.COMPOSITE,D.OPAQUE,D.TRANSPARENT,I.VIEWSHED);return r.retain(e+i-1),this.performanceInfo.advance(de.NORMALS),r}_renderSSAO(){const e=this._pluginInput.get("normals");if(!this.hasSSAO||!e)return;const t=this._nodes.produce(I.SSAO,this._pluginInput);return this._bindParameters.ssao=t,t&&this.performanceInfo.advance(de.SSAO),t}_precompileAllGeometry(e){const t=this._renderContext.output;this._renderContext.output=e,this._precompileOpaqueGeometry(),this._precompileTransparentGeometry(),this._plugins.precompile(6),this._renderContext.output=t}renderAllGeometry(e){this._renderContext.output=e,this._renderOpaqueAndTransparentGeometry(e),this._renderTransparentTerrain()}precompileSlots(e,...t){for(const r of t)this._bindParameters.slot=r,e.precompile(this._renderContext)}precompileOccludedSlots(e,t){for(const r of t)this._renderContext.renderOccludedMask=r,this.precompileSlots(e,...ge);this._renderContext.renderOccludedMask=$}renderSlots(e,...t){for(const r of t)this._bindParameters.slot=r,e.forAll(e=>{const t=e.acquireTechniques(this._renderContext);t&&e.render(this._renderContext,t)})}renderOccludedSlots(e,t){this._renderContext.renderOccludedMask=t,this.plugins.renderOccludedFlags>1&&this._plugins.render(8),this.renderSlots(e,...ge),this._renderContext.renderOccludedMask=$}renderHUD(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(12)}precompileViewshedShadowMap(){this._precompileAllGeometry(7)}renderViewshedShadowMap(e){const{camera:t,contentCamera:r}=this._bindParameters,i=this._renderContext.output;e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,e),this.renderAllGeometry(7),this._ensureBindParametersCamera(t,r),this._bindParameters.camera.setGLViewport(this._rctx),this._renderContext.output=i}_renderOpaqueAndTransparentGeometry(e){this._renderContext.output=e,this._renderOpaqueGeometry(),this._renderTransparentGeometry()}_renderGeometryWithNormals(e){this._renderContext.output=e,this._plugins.render(...pe),this._renderTransparentTerrain()}_renderGeometryWithoutNormals(e){this._renderContext.output=e,this._plugins.render(...me)}_precompileOpaqueGeometry(){this._plugins.precompile(...ce)}_renderOpaqueGeometry(){this._plugins.render(...ce)}_renderTransparentGeometry(){this._plugins.render(...fe)}get _hasTransparentTerrain(){return this._plugins.produces(0,6)}_renderTransparentTerrain(){const e=()=>this._plugins.render(6);if(!q(this._renderContext.output))return void e();const t=this._framebufferSize,r=this.fboCache.acquire(t.width,t.height,"transparent terrain");return this.renderToTargets(e,r,this._framebuffer.depth,y),r}get _needsHUDVisibility(){return this._plugins.produces(this._renderContext.output,11)}_renderHUDVisibility(){if(!this._needsHUDVisibility)return void(this._bindParameters.hudVisibility=d(this._bindParameters.hudVisibility));const{width:e,height:t}=this._framebufferSize;let r=this._bindParameters.hudVisibility;r?.fbo?.width===e&&r?.fbo?.height===t||(r?.release(),r=this.fboCache.acquire(e,t,"hud visibility",4),this._bindParameters.hudVisibility=r);const i=this._bindParameters.geometryDepth;r.attachDepth(i||this._framebuffer.depth),this._rctx.bindFramebuffer(r.fbo),this._rctx.clearFramebuffer([0,1,0,1]),this._plugins.render(11),r.detachDepth(),this._framebuffer.bind(),this.performanceInfo.advance(de.HUD_VISIBILITY)}_renderLineCallouts(e){if(this._bindParameters.hudRenderStyle=e,0===e){const e=()=>this._plugins.render(14),t=this._framebufferSize,r=this.fboCache.acquireDepth(10,t.width,t.height,"line callouts");this.renderToTargets(e,this._framebuffer.color,r,void 0,!0,!0),r.release()}else this._plugins.render(14)}_precompileHUD(e){if(this._precompileHUDOutput(e),this._hasHighlights){const t=this._renderContext.output;this._renderContext.output=8,this._precompileHUDOutput(e),this._renderContext.output=t}}_precompileHUDOutput(e){const t=this._bindParameters.hudRenderStyle;this._bindParameters.hudRenderStyle=e,this._oitEnabled&&q(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...be),this._bindParameters.oitPass=2,this._plugins.precompile(...be),this._bindParameters.oitPass=0):this._plugins.precompile(...be),this._bindParameters.hudRenderStyle=t}_renderHUD(e,t,r){if(this._pluginsHas.hudElements){if(this._oitEnabled){const i=this._renderOIT(1,r,e);this._rctx.bindFramebuffer(t.fbo),this._compositingHelper.compositePreMultipliedAlpha(this._bindParameters,i.getTexture()),i.release()}else if(this._renderContext.output=r,0===e){const t=()=>this._renderHUDElements(e),r=this._framebufferSize,i=this.fboCache.acquireDepth(10,r.width,r.height,"hud");this.renderToTargets(t,this._framebuffer.color,i,void 0,!0,!0),i.release()}else t.acquireDepth(10),this._rctx.bindFramebuffer(t.fbo),this._renderHUDElements(e),t.detachDepth();this.performanceInfo.advance(0===e?de.HUD_OCCLUDED:de.HUD)}}_renderHUDElements(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(...be)}get _needsShadowHighlight(){return this.shadowsEnabled&&this._plugins.produces(5,2)}_renderHighlightPrepass(){if(!this._hasHighlights)return;const{fboCache:e,_rctx:t,_bindParameters:r}=this,i=this._framebufferSize,{highlights:s}=r,a=e.acquire(i.width,i.height,"highlights",s.length>j?3:1);a.acquireDepth(11),t.bindFramebuffer(a.fbo);const{gl:n}=t;return n.clearBufferuiv(n.COLOR,0,[0,0,0,0]),this._renderContext.output=8,t.bindFramebuffer(a.fbo),B(t,e,i,r,()=>this._renderHighlightGeometries()),this.performanceInfo.advance(de.HIGHLIGHTS),a}_renderHighlightGeometries(){this._plugins.render(...Pe),this._rctx.clear(256),this._renderHUDElements(2)}_renderShadowAccumulation(e,t,r,i){this._shadowAccumulator.updateDepthRange(e),this._shadowAccumulator.accumulating&&this._bindParameters.depth&&this._shadowAccumulator.renderAccumulation(this._bindParameters.depth,t,r,i)&&this.performanceInfo.advance(de.ACCUMULATED_SHADOWS)}_precompileTransparentGeometry(){this._oitEnabled&&q(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...fe),this._bindParameters.oitPass=2,this._plugins.precompile(...fe),this._bindParameters.oitPass=0):this._plugins.precompile(...fe)}_renderOIT(e,t,r=2){const i=1===e,s=this._framebufferSize,a=i?this.fboCache.acquire(s.width,s.height,"oit hud composite"):null,n=i?()=>this._renderHUDElements(r):()=>this._renderTransparentGeometry(),h=this._bindParameters,o=this._renderContext.output;this._renderContext.output=t,h.oitPass=1;const d=a?"oit hud color+alpha":"oit color+alpha",l=this.fboCache.acquire(s.width,s.height,d,8),_=1===t;_&&l.acquireColor(le,8,"emissive"),l.acquireColor(_?_e:le,7),a||l.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(l.fbo),this._rctx.clearFramebuffer([0,0,0,1]),_&&this._rctx.clearBuffer(1,E),n(),l.detachDepth(),h.oitPass=2;const u=this.fboCache.acquire(s.width,s.height,a?"oit hud front":"oit front");return _&&u.acquireColor(le,8,"emissive"),a?u.acquireDepth(10):u.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(u.fbo),this._rctx.clearFramebuffer(y,!!a),n(),u.detachDepth(),h.oitPass=0,a?(this._rctx.bindFramebuffer(a.fbo),this._rctx.setClearColor(0,0,0,1e-13),this._rctx.clear(16384)):this._framebuffer.bind(),this._oitblend??=new k(this._techniques),this._oitblend.blend(this._rctx,l,u,h,_),a?.detachDepth(),u.release(),l.release(),this._renderContext.output=o,a}_renderOpaque(e){const t=this.plugins.produces(0,...ce);if(t){this._plugins.render(0,1);const e=this._framebuffer;e.update(e=>this._renderNodes(I.OPAQUE_TERRAIN,e)),e.bind(),this._plugins.render(2,3)}const r=this._framebuffer;r.update(e=>this._renderNodes(D.OPAQUE,e,t)),this.fboCache.debugCallback?.(D.OPAQUE,r.color.fbo),r.update(e=>this._renderNodes(I.OPAQUE_ENVIRONMENT,e)),this.fboCache.debugCallback?.(I.OPAQUE_ENVIRONMENT,r.color.fbo),this._renderTerrainDepth(e),this._renderEdges(1)}_renderTransparent(e,t,r){const i=this._framebuffer;i.bind(),this._renderPlugins(19,de.VOXEL),this._renderHiddenTransparentEdges(),e&&(this._oitEnabled?this._renderOIT(0,r):this._renderTransparentGeometry()),i.update(t=>this._renderNodes(D.TRANSPARENT,t,e)),this.fboCache.debugCallback?.(D.TRANSPARENT,i.color.fbo),this._renderGeometryDepth(t),this._renderHUDVisibility(),t||this._plugins.render(14),this._renderEdges(0);const s=this._hasTransparentTerrain?this._renderTransparentTerrain():null;s&&(this.performanceInfo.advance(de.TRANSPARENT_TERRAIN),this._bindParameters.hudVisibility&&(t?this._renderLineCallouts(0):(this._rctx.bindFramebuffer(this._bindParameters.hudVisibility?.fbo),this._compositingHelper.compositeHUD(this._bindParameters,s.getTexture())),this._renderHUD(0,i.color,r))),this._bindParameters.cullAboveTerrain=!1,s&&(i.bind(),this._compositingHelper.compositePreMultipliedAlpha(this._bindParameters,s.getTexture()),s.release(),t&&(this._renderEdges(1),e&&(this._oitEnabled?this._renderOIT(0,r):this._renderTransparentGeometry(),this.performanceInfo.advance(de.TRANSPARENT)),this._renderEdges(0))),this._bindParameters.ssao=d(this._bindParameters.ssao),t&&this._renderLineCallouts(1),this._bindParameters.terrainDepthTest=!1,this._renderTransparentEnvironment()}_renderTransparentEnvironment(){this._shadowAccumulator.render(this._bindParameters),this.performanceInfo.advance(de.APPLY_ACCUMULATED_SHADOWS),this._framebuffer.bind(),this._plugins.render(7),this.performanceInfo.advance(de.TRANSPARENT_MATERIAL_WITHOUT_DEPTH)}_renderPlugins(e,t){this._plugins.produces(this._renderContext.output,e)&&(this._plugins.render(e),this.performanceInfo.advance(t))}_renderNodes(e,t,r=!1){if(t.setName(e),this._pluginInput.set(e,t),!this._nodes.produces(e))return r&&this.performanceInfo.advance(e),t;const i=this._nodes.render(t,this._pluginInput,this._releaseNormals);return this.performanceInfo.advance(e),i}_blitFBO(e,t=F,r=!0){return this._blit??=new U(this._techniques),this._blit.blit(this._rctx,e,t,this._bindParameters),this._pluginInput.set(e.name,t),r&&e.release(),t}_ensureBindParametersCamera(e,t){this._bindParameters.camera=e,this._bindParameters.contentCamera=t}_ensureBindParametersSSR(e){if(this._bindParameters.ssr.lastFrameColor){null==this._ssrEnableTime&&(this._ssrEnableTime=e),this._renderContext.lastFrameCamera.equals(this._bindParameters.camera)?this._reprojectionMatrix=S:(w(Ce,this._bindParameters.camera.viewMatrix),w(we,this._bindParameters.camera.projectionMatrix),C(Se,Ce,we),C(Se,this._renderContext.lastFrameCamera.viewMatrix,Se),C(Se,this._renderContext.lastFrameCamera.projectionMatrix,Se),this._reprojectionMatrix=Se);const t=this.stage.view.qualitySettings.fadeDuration;this._bindParameters.ssr.fadeFactor=t>0?Math.min(t,e-this._ssrEnableTime)/t:1,this._bindParameters.ssr.fadeFactor<1&&this._requestRender()}else this._reprojectionMatrix=S,this._ssrEnableTime=null}addRenderNode(e){this._nodes.add(e),this._requestRender()}removeRenderNode(e){this._nodes.remove(e),this._requestRender()}updateLighting(e,t,r,i){this._bindParameters.updateLighting(e,t,r,i),this._requestRender(1)}get usedMemory(){return{fbos:this.fboCache.usedMemory,plugins:this._plugins.usedMemory,edges:this.edgeView?.usedMemory??0}}renderToTargets(e,t,r,i,s=!1,a=!1){t.attachDepth(r),this._rctx.bindFramebuffer(t.fbo),this._rctx.clearFramebuffer(i,s,a),e(),t.detachDepth()}get test(){}};e([g({readOnly:!0})],ue.prototype,"fullResolutionAtmosphere",null),e([g()],ue.prototype,"_edgeView",void 0),e([g()],ue.prototype,"updating",null),ue=e([b("esri.views.3d.webgl-engine.lib.Renderer")],ue);const pe=[0,1,2,4],me=[3,5],ce=[0,1,2,3],fe=[4,5],ge=[2,4,7],be=[15,12,13],Pe=[4,5,2,3,6,0,1],we=T(),Ce=T(),Se=T();function Te(e){return t=>e.immediate.schedule(t)}export{ue as Renderer};
5
+ import{__decorate as e}from"tslib";import{update as t}from"../../../../core/arrayUtils.js";import{createTask as r}from"../../../../core/asyncUtils.js";import{unitRGBAFromColor as i}from"../../../../core/colorUtils.js";import has from"../../../../core/has.js";import{clamp as s,lerp as a}from"../../../../core/mathUtils.js";import{removeMaybe as n,abortMaybe as h,destroyMaybe as o,releaseMaybe as d}from"../../../../core/maybe.js";import{throwIfAborted as l}from"../../../../core/promiseUtils.js";import{watch as _,syncAndInitial as u,initial as p,sync as m}from"../../../../core/reactiveUtils.js";import{signal as c}from"../../../../core/signal.js";import{Milliseconds as f}from"../../../../core/time.js";import{property as g}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import{subclass as b}from"../../../../core/accessorSupport/decorators/subclass.js";import{equals as P,invert as w,multiply as S}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as T,create as C}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{s as E}from"../../../../chunks/vec42.js";import{ZEROS as A}from"../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{fromValues as x,ZEROS as y}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{pruneIndexArrays as R}from"../../../../geometry/support/Indices.js";import{RenderCategory as D,InternalRenderCategory as I}from"../../webgl.js";import{innerAtmosphereFadeStart as O}from"../../environment/atmosphereUtils.js";import{minNearDistanceInMeters as v}from"../../state/NearFarHeuristic.js";import{debugFlags as M}from"../../support/debugFlags.js";import{FBOCache as H,defaultWebGLFBO as F}from"../core/FBOCache.js";import{RenderPassManager as N}from"../core/renderPasses/RenderPassManager.js";import{isColorOrColorEmission as q}from"../core/shaderLibrary/ShaderOutput.js";import{distanceFadeEnd as G}from"../core/shaderLibrary/shading/ScreenSpaceConstants.js";import{RenderNodes as V}from"../effects/RenderNodes.js";import{RenderPluginManager as U}from"../effects/RenderPluginManager.js";import{Blit as L}from"../effects/blit/Blit.js";import{maxHighlightsPerChannel as j,renderHighlightBuffer as B}from"../effects/highlight/Highlight.js";import{OITBlend as k}from"../effects/transparency/OITBlend.js";import{AnimationTimer as z}from"./AnimationTimer.js";import{AnimationTimeStep as Q}from"./AnimationTimeStep.js";import{BoundingInfo as W}from"./BoundingInfo.js";import{DepthRange as Y}from"./DepthRange.js";import{depthRangeFromScene as J}from"./depthRangeUtils.js";import{hudFragmentOpacityParameters as K}from"./hudFragmentOpacityParameters.js";import{MainFramebuffer as X}from"./MainFramebuffer.js";import{RenderContext as Z,defaultRenderOccludedMask as $}from"./RenderContext.js";import{RendererBase as ee}from"./RendererBase.js";import{setupFeatureDefaults as te}from"./RenderFeature.js";import{RenderPluginInput as re}from"./RenderPluginInput.js";import{ShadowAccumulator as ie}from"./ShadowAccumulator.js";import{ShadowMap as se}from"./ShadowMap.js";import ae from"./SliceHelper.js";import{MergedRenderer as ne}from"../materials/renderers/MergedRenderer.js";import{RenderSceneResult as he}from"../parts/renderUtils.js";import{RendererPerformanceInfo as oe,PerformanceCategory as de}from"../statistics/RendererPerformanceInfo.js";import{PixelType as le,ColorAttachment1 as _e,ColorAttachment2 as ue}from"../../../webgl/enums.js";let pe=class extends ee{constructor(e,t,r,s,a,n){super({stage:e}),this._techniques=r,this._rctx=s,this._compositingHelper=a,this._requestRender=n,this._pluginsHas={hudElements:!1,water:!1},this.renderPassManager=new N,this._isRendering=!1,this._inGlobeView=!1,this._backgroundColor=x(0,0,0,1),this._sliceHelper=new ae,this._blit=null,this._oitblend=null,this.sceneDepthRange=c(Y.infinite),this._state=c(2),this._highQualityTransparencyEnabled=!0,this._ssrEnabled=!1,this._hasAnimations=!1,this._animationTimestep=new Q,this._loadEdgeViewTask=null,this._edgeViewCallbacks=[],this._reprojectionMatrixVersion=c(0),this._lastFrameTime=f(0),this._renderHiddenTransparentEdges=()=>{},this._pluginInput=new re,this._releaseNormals=e=>{e.some(({name:e})=>"normals"===e)&&this._pluginInput.release("normals")},this._debugNeedsDepth=!1,this._fboCache=new H(s),this._renderStateFeatures=c(te(!has("disable-feature:high-quality-idle"),e.view.qualityProfile)),this._framebuffer=new X(this.fboCache),this._performanceInfo=new oe(this._rctx),this._shadowMap=new se(this.fboCache,e.viewingMode),this._shadowAccumulator=new ie(this.fboCache,r,e,e=>{const t=this.shadowsEnabled;this._shadowMap.enabled=!0,this._ensureBindParametersCamera(e.camera,e.contentCamera),this._plugins.prepareRender(),this._shadowMap.enabled=t},(t,r,i)=>{const s=e.view.qualitySettings.maximumPixelRatio;t.shadowMap.start(t.camera,r,i,!0,s),this._renderShadowCascades(4,t.shadowMap),t.shadowMap.finish(),t.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(t.camera,t.contentCamera)},n),this._renderContext=new Z(this._rctx,this._shadowMap,r),this._nodes=new V(this._renderContext),this._plugins=new U({renderContext:this._renderContext,techniques:r,materials:t,requestRender:n,controller:e,fbos:this.fboCache,isFeatureEnabled:e=>this.isFeatureEnabled(e)}),this._plugins.add(this.renderPassManager),this.addHandles([_(()=>e.view.state.camera,()=>n(),u),_(()=>M.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES,e=>{this._renderHiddenTransparentEdges=e?()=>this._renderEdges(0):()=>{},n()},p),_(()=>e.view.environment.background?.color,e=>{const t=e?i(e):y;E(this._backgroundColor,t[0]*t[3],t[1]*t[3],t[2]*t[3],t[3]),n()},u),_(()=>e.view.state.camera.relativeElevation,e=>this._inGlobeView=(e??1/0)>=G,u),_(()=>this._bindParameters.clouds.fadeFactor,()=>this._bindParameters.fadeLighting(),m),_(()=>this._bindParameters.clouds.data?.state,()=>n(),m),_(()=>e.view.state.highlights,e=>{this._bindParameters.highlights=e,n()},p)])}destroy(){this._gpuTimerHandle=n(this._gpuTimerHandle),this._nodes.destroy(),this._framebuffer.dispose(),this._shadowMap.dispose(),this._shadowAccumulator.dispose(),this._shadowAccumulator=null,this._loadEdgeViewTask=h(this._loadEdgeViewTask),this._edgeView=o(this._edgeView),this.renderPassManager.dispose(),this._releaseFBOs(),this._disposeOffscreenBuffers(),this._fboCache.destroy(),this._fboCache=null,this._plugins.destroy(),this._plugins=null,this._pluginInput=null,this._blit=null,this._oitblend=null,this._compositingHelper=null,this._nodes=null,this._framebuffer=null,this._shadowMap=null,this._renderContext=null,this._performanceInfo=null,W.prune(),ne.prune(),R()}get renderContext(){return this._renderContext}get _bindParameters(){return this._renderContext.bind}get _framebufferSize(){return this._framebuffer.size}get performanceInfo(){return this._performanceInfo}updateRenderFeatures(e=null,t=!has("disable-feature:high-quality-idle")){this._renderStateFeatures.value=te(t,e),this._requestRender()}isFeatureEnabled(e,t=this._state.value){return this._renderStateFeatures.value.get(t,e)??!1}setFeatureEnabled(e,t,r){this._renderStateFeatures.mutate(i=>i.set(t,e,r)),this._requestRender()}get _highQualityTransparency(){return this._highQualityTransparencyEnabled||this.isFeatureEnabled(1)}get hasReflections(){return this._pluginsHas.water&&(this._ssrEnabled||this.isFeatureEnabled(5))}get _hasHighlights(){return this._plugins.produces(8,2,4,17,12,13)}hasHighlight(e){return this._plugins.hasHighlight(e)}get _hasHUDHighlights(){return this._plugins.produces(8,12,13)}get hasSSAO(){return(this.stage.view.qualitySettings.ambientOcclusion||this.isFeatureEnabled(4))&&!this._inGlobeView}get hasSMAA(){return this.stage.view.qualitySettings.antialiasingEnabled||this.isFeatureEnabled(0)}get fullResolutionAtmosphere(){return this.stage.view.qualitySettings.highResolutionAtmosphere||this.isFeatureEnabled(3)}get fboCache(){return this._fboCache}_releaseFBOs(){this._bindParameters.ssr.lastFrameColor=d(this._bindParameters.ssr.lastFrameColor),this._bindParameters.terrainDepth=d(this._bindParameters.terrainDepth),this._bindParameters.geometryDepth=d(this._bindParameters.geometryDepth)}_disposeOffscreenBuffers(){this._framebuffer.dispose(),this._disposeBindBuffers()}_disposeBindBuffers(){this._shadowMap.disposeOffscreenBuffers(),this._bindParameters.depth=d(this._bindParameters.depth),this._bindParameters.hudVisibility=d(this._bindParameters.hudVisibility)}get updating(){return this._loadEdgeViewTask&&!this._loadEdgeViewTask.finished||this._edgeView?.updating||this._shadowAccumulator.readyToRun||this._plugins.updating||!this.isCameraFinal}loadEdgeView(){return this._loadEdgeViewTask||(this._loadEdgeViewTask=r(async e=>{const{EdgeView:t}=await import("./edgeRendering/EdgeView.js");l(e);const r=this._edgeView=new t({rctx:this._rctx,renderSR:this.stage.view.renderSpatialReference,viewingMode:this.stage.view.stage.viewingMode,techniques:this._techniques,setNeedsRender:()=>this._requestRender(),schedule:Ee(this.stage.view.resourceController)});return this.addHandles(_(()=>r.updating,()=>this._requestRender(),m)),this._requestRender(),this._edgeViewCallbacks.forEach(e=>e(r)),this._edgeViewCallbacks.length=0,r})),this._loadEdgeViewTask.promise}withEdgeView(e){this.loadEdgeView(),null==this._edgeView?this._edgeViewCallbacks.push(e):e(this._edgeView)}get edgeView(){return this._edgeView}get isCameraFinal(){return this._reprojectionMatrixVersion.value>=0&&P(this._bindParameters.ssr.reprojectionMatrix,T)}set _reprojectionMatrix(e){t(this._bindParameters.ssr.reprojectionMatrix,e)&&this._reprojectionMatrixVersion.value++}get shadowsEnabled(){return!!this._shadowMap?.enabled}setParameters(e){const{_shadowMap:t,_bindParameters:r}=this;if(void 0!==e.qualitySettings?.reflections&&this._ssrEnabled!==e.qualitySettings.reflections&&(this._ssrEnabled=e.qualitySettings.reflections,this._requestRender()),void 0!==e.shadowMap&&this._shadowMap.enabled!==e.shadowMap&&(this._shadowMap.enabled=e.shadowMap,this._requestRender()),void 0!==e.shadowMapMaxCascades&&t.maxCascades!==e.shadowMapMaxCascades&&(t.maxCascades=e.shadowMapMaxCascades,this._requestRender()),null!=e.environment){if(null!=e.environment.weather){const t=e.environment.weather;this._bindParameters.weather=t,this._bindParameters.snowCover=!!e.weatherVisible&&null!=t&&"snowy"===t.type&&"enabled"===t.snowCover}const t="virtual"!==e.environment.lighting.type;r.enableFillLights!==t&&(r.enableFillLights=t,this._requestRender())}void 0!==e.highQualityTransparency&&this._highQualityTransparencyEnabled!==e.highQualityTransparency&&(this._highQualityTransparencyEnabled=e.highQualityTransparency,this._requestRender()),void 0!==e.shadowCast&&this._shadowAccumulator.setOptions(e.shadowCast)}set slice(e){this._sliceHelper.update(e)&&this._requestRender()}get plugins(){return this._plugins}get _hasOITSupport(){return this._rctx.driverTest.floatBufferBlend.result}get _oitEnabled(){return this._highQualityTransparency&&this._hasOITSupport}commit(e,t){return this._isRendering&&console.warn("Renderer.modify called while rendering"),!!super.commit(e,t,this._plugins.context)&&(this.updateHasFlags(),!0)}rendererAdded(e){this._plugins.add(e)}rendererRemoved(e){this._plugins.remove(e)}get occludedRequiresStencil(){return this.occludedRequiresOccludeeStencil||this.occludedRequiresIntegratedMeshStencil}get occludedRequiresOccludeeStencil(){return this._bindParameters.hasOccludees&&!!(8&this.plugins.renderOccludedFlags)}get occludedRequiresIntegratedMeshStencil(){return this._plugins.produces(0,0)&&this._plugins.produces(0,8)}updateHasFlags(){const has=this._pluginsHas;has.hudElements=this._plugins.produces(0,...Pe),has.water=this._plugins.produces(3,18),this._bindParameters.hasOccludees=this._plugins.hasOccludees,this._requestRender()}updateAnimation(e,t){this._animationTimer??=new z(e.camera,t),this._animationTimer.advance(e.camera,t,this._animationTimeDilation);const r=this._hasAnimations;return this._hasAnimations=this._plugins.updateAnimation(this._animationTimer),this._hasAnimations=this._nodes.updateAnimation(this._animationTimer)||this._hasAnimations,this._hasAnimations!==r&&(this._gpuTimerHandle=r?n(this._gpuTimerHandle):this.performanceInfo.enableGPUPerformanceInfo()),this._hasAnimations}get animationTimestep(){return this._animationTimestep.value}get _animationTimeDilation(){return this._animationTimestep.timeDilation}resetAnimation(){this._animationTimestep.clear()}tick(){this.fboCache.clean()}render(e,t,r,i=!1){try{return this._isRendering=!0,this._render(e,t,r,i)}catch(s){console.error(`Exception during rendering: ${s}`)}finally{this._isRendering=!1}return new he(this._pluginInput.get(D.FINAL),null)}_updateHUDOccludedFragmentOpacity(e,t){const{idleOpacity:r,navigatingOpacity:i,maxDelta:n,tiltFadeStart:h,tiltFadeEnd:o,altitudeStart:d,altitudeEnd:l}=K,_=this.stage.view,u=_.stateManager.camera,p=_.qualitySettings.fadeDuration,m=2===e?r:i,c=s((u.tilt-h)/(o-h),0,1),f=s(((u.position.z??0)-d)/(l-d),0,1),g=a(a(1,m,c),1,f),b=this._bindParameters.hudOccludedFragmentOpacity;if(p<=0||b===g||0===this._lastFrameTime||this._lastFrameTime>t)return this._bindParameters.hudOccludedFragmentOpacity=g,void(this._lastFrameTime=t);const P=t-this._lastFrameTime;this._lastFrameTime=t;const w=Math.max(1-r,Math.abs(r-i)),S=Math.min(w*P/p,n);S>=Math.abs(g-b)?this._bindParameters.hudOccludedFragmentOpacity=g:(this._bindParameters.hudOccludedFragmentOpacity=b+Math.sign(g-b)*S,this._requestRender())}_render(e,t,r,i){const s=0===r;this.performanceInfo.startFrame(),this.fboCache.frameStart(),this.fboCache.interactive=s,this._disposeBindBuffers();const{camera:a,contentCamera:n,mode:h,alignPixelEnabled:o}=e;this._state.value=h;const d=this._nodes.produces("magnifier-color"),l=this._nodes.produces(D.FINAL),_=this._nodes.require("emissive",I.TRANSPARENT_ENVIRONMENT,D.COMPOSITE,D.FINAL)>0&&this._plugins.hasEmissions,u=_?1:0;this._renderContext.time=t,this._renderContext.output=u,this._bindParameters.oitPass=0,this._bindParameters.alignPixelEnabled=o,this._bindParameters.decorations=!i,this._bindParameters.mainDepth=null;const p=!i||!this._sliceHelper.isDecoration;this._bindParameters.slicePlane=p?this._sliceHelper.plane:null,this._bindParameters.viewshedEnabled=this._nodes.produces(I.VIEWSHED),this._renderOverlay(),a.setGLViewport(this._rctx);const m=this._framebuffer,c=m.initialize(a.fullWidth,a.fullHeight,this._backgroundColor,_);this.hasReflections?(c?.setName("last frame color"),this._bindParameters.ssr.lastFrameColor=c):c?.release(),this._ensureBindParametersCamera(a,n),this._updateHUDOccludedFragmentOpacity(h,t),this._plugins.prepareRender(),this._bindParameters.shadowHighlightsVisible=this._needsShadowHighlight&&!i;const f=this._highQualityTransparency&&this._hasTransparentTerrain,g=this._plugins.produces(0,...ge);this._precompilePrepasses(),this.performanceInfo.advance(de.PREPARE);const b=this._computeShadowDepthRange(a);this._renderShadowMap(a,this._bindParameters.lighting.mainLight.direction,b),this._pluginInput.set("normals",this._renderNormals()),this._renderRemainingGeometryDepth(),this._renderShadowAccumulation(b,a,n,!s),this._ensureBindParametersSSR(t),this._precompileShaders(f,g,u),this._renderContext.output=u,m.bind(),this._bindParameters.mainDepth=m.depth.attachment,this._renderOpaque(f),this._renderTransparent(g,f,u),this._shadowMap.disposeMainBuffer(),this._pluginInput.set(I.FOCUSAREA,this._renderFocusAreaGeometry()),m.update(e=>this._renderNodes(I.TRANSPARENT_ENVIRONMENT,e)),m.update(e=>this._renderNodes(I.VIEWSHED,e)),m.update(e=>this._renderNodes(I.LASERLINES,e)),m.update(e=>this._renderNodes(I.FOCUSAREA_COLOR,e)),this._pluginInput.release(I.FOCUSAREA),m.update(e=>this._renderNodes(I.OCCLUDED,e)),this._pluginInput.set("highlights",this._renderHighlightPrepass()),this._renderHighlightShadowMap(a,this._bindParameters.lighting.mainLight.direction,b);const P=2===r?this._renderObjectAndLayerIdColor():null;m.update(e=>this._renderNodes(D.COMPOSITE,e)),this._shadowMap.disposeOffscreenBuffers();const w=s&&!l&&!(d&&!i),S=this._pluginInput.get(D.COMPOSITE),T=w?F:this.fboCache.acquire(S.fbo.width,S.fbo.height,I.ANTIALIASING),C=this._nodes.produces(I.ANTIALIASING)?this._renderNodes(I.ANTIALIASING,T):this._blitFBO(S,T,!1);let E;this._pluginInput.set(I.ANTIALIASING,C),this._hasHUDHighlights?(this._renderHUD(1,C,u),E=this._renderNodes(I.HIGHLIGHTS,C)):(E=this._renderNodes(I.HIGHLIGHTS,C),this._renderHUD(1,E,u));const A=this._renderNodes(I.MAGNIFIER,E);return s&&d&&!i&&!l&&this._blitFBO(A),l?(A.attachDepth(m.depth),this._blitFBO(this._renderNodes(D.FINAL,A)),A.detachDepth()):this._pluginInput.set(D.FINAL,A),this._pluginInput.release("highlights"),this.onPostRender&&this.onPostRender(),this._releaseFBOs(),m.releaseDepth(),this._renderContext.lastFrameCamera.copyFrom(this._bindParameters.camera),this.fboCache.frameEnd(),this.performanceInfo.finishFrame(),s||(this._releaseFBOs(),this._disposeOffscreenBuffers()),new he(this._pluginInput.get(D.FINAL),P)}_precompileShaders(e,t,r){++this._plugins.context.techniques.precompiling,this._renderContext.output=r,this._precompileOpaqueGeometry(),this._nodes.precompile(I.OPAQUE_ENVIRONMENT),this._bindParameters.terrainDepthTest=e,this._bindParameters.cullAboveTerrain=e,this._renderContext.output=2,this._plugins.precompile(6),e&&(this._precompileOpaqueGeometry(),this._precompileTransparentGeometry()),this._renderContext.output=r,this._plugins.precompile(6),t&&(this._precompileTransparentGeometry(),this._hasTransparentTerrain&&(this._bindParameters.cullAboveTerrain=!1,this._precompileTransparentGeometry(),this._bindParameters.cullAboveTerrain=e)),this._nodes.precompile(I.FOCUSAREA),this._needsHUDVisibility&&this._plugins.precompile(11),this._plugins.precompile(14),this._precompileHUD(0),this._bindParameters.terrainDepthTest=!1,this._bindParameters.cullAboveTerrain=!1,this._nodes.precompile(I.VIEWSHED,I.LASERLINES,I.FOCUSAREA_COLOR,I.OCCLUDED,I.ANTIALIASING,I.HIGHLIGHTS);const i=this._bindParameters;i.highlightMixTexture=i.highlights.length>1?this._rctx.emptyTexture:null,this._precompileHUD(1),this._hasHighlights&&(i.highlights.forEach((e,t)=>{i.highlightLevel=t,this._precompileAllGeometry(8)}),i.highlightLevel=null),i.highlightMixTexture=null,this._nodes.precompile(D.COMPOSITE,I.MAGNIFIER),this._shadowAccumulator.precompile(),this._plugins.precompile(7),--this._plugins.context.techniques.precompiling}_renderFocusAreaGeometry(){const e=this._nodes.produce(I.FOCUSAREA,this._pluginInput);return e&&this.performanceInfo.advance(de.FOCUS_AREA_MASK),e}_renderObjectAndLayerIdColor(){if(!this._nodes.produces("olid"))return null;const e=this._renderContext.output;++this._techniques.precompiling;const t=this._framebufferSize;let r=this.fboCache.acquire(t.width,t.height,"olid");return r.acquireDepth(11),r=this._nodes.render(r,this._pluginInput),--this._techniques.precompiling,this.performanceInfo.advance(de.OBJECT_AND_LAYER_ID_COLOR),this._renderContext.output=e,r}finish(e){this._hasAnimations||this._animationTimestep.clear();const t=this.performanceInfo.gpuSamplingEnabled,r=0===e;if(r||t){const e=r?this.performanceInfo.elapsedTime:0;let i=0;t?i=this.performanceInfo.totalGPUTimeSampler.last:this._rctx.gl.finish();const s=Math.max(e,i);this._animationTimestep.frame(s,r)}}readMainDepth(e,t){const{mainDepth:r,camera:i}=this._bindParameters;if(!r)return;const s=this.fboCache.acquire(this._framebufferSize.width,this._framebufferSize.height,"linear-depth");this._rctx.bindFramebuffer(s.fbo),i.setGLViewport(this._rctx),this._rctx.setScissorRect(e[0],e[1],e[2],e[3]),this._rctx.setScissorTestEnabled(!0),this._rctx.clearFramebuffer(y),this._compositingHelper.blitDepthToLinearDepth(this._bindParameters,r),this._rctx.setScissorTestEnabled(!1),this._rctx.setScissorRect(0,0,this._rctx.gl.canvas.width,this._rctx.gl.canvas.width),s.fbo?.readPixels(e[0],e[1],e[2],e[3],6408,le.UNSIGNED_BYTE,t),s.release()}readHUDVisibility(e,t,r,i,s){this._bindParameters.hudVisibility?.fbo?.readPixels(e,t,r,i,6408,le.UNSIGNED_BYTE,s)}readAccumulatedShadow(e){return this._shadowAccumulator.readAccumulatedShadow(e[0],e[1])}_renderEdges(e){const t=this._edgeView;if(!t?.shouldRender())return;const r=this._framebufferSize,i=this.fboCache.acquire(r.width,r.height,"edges"),s=()=>t.render(this._bindParameters,e),a=this._bindParameters.geometryDepth;this.renderToTargets(s,i,a??this._framebuffer.depth,y),this._framebuffer.bind(),this._compositingHelper.composite(this._bindParameters,i.getTexture()),i.release(),this.performanceInfo.advance(1===e?de.OPAQUE_EDGES:de.TRANSPARENT_EDGES)}_renderOverlay(){this._bindParameters.overlay=this.overlay?.render(),this._bindParameters.overlay&&this.performanceInfo.advance(de.OVERLAY)}_renderShadowMap(e,t,r){if(!this.shadowsEnabled)return;const{contentCamera:i}=this._bindParameters,s=this._shadowMap;s.start(e,t,r,this.isFeatureEnabled(6),this.stage.view.qualitySettings.maximumPixelRatio),this._needsShadowHighlight?(this._renderShadowCascades(6,this._shadowMap),s.copySnapshot(1),this._renderShadowCascades(5,this._shadowMap)):this._renderShadowCascades(4),s.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,i),this.performanceInfo.advance(de.SHADOW_MAP)}_renderHighlightShadowMap(e,t,r){if(!this.shadowsEnabled||!this._needsShadowHighlight)return;const{contentCamera:i}=this._bindParameters,s=this._shadowMap;s.start(e,t,r,this.isFeatureEnabled(6),this.stage.view.qualitySettings.maximumPixelRatio),this._renderShadowCascades(5,this._shadowMap),s.moveSnapshot(0),s.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,i),this.performanceInfo.advance(de.SHADOW_MAP)}_precompileShadowCascades(e){for(const t of this._shadowMap.cascades)t.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(t.camera,t.camera),this._precompileAllGeometry(e)}_renderShadowCascades(e,t=this._shadowMap){t.bindFbo();for(const r of t.cascades)r.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(r.camera,r.camera),this.renderAllGeometry(e)}get _needsDepth(){return this._plugins.consumes(2)||this._nodes.requireGeometryDepth()||this.hasReflections||this._needsShadowHighlight||this._shadowAccumulator.active||this._debugNeedsDepth}_renderRemainingGeometryDepth(){const e=this._pluginInput.get("normals");e?(this._pluginInput.set(I.SSAO,this._renderSSAO()),this._needsDepth?(this._rctx.bindFramebuffer(e.fbo),this._rctx.clear(1024),this._renderGeometryWithoutNormals(2),d(this._bindParameters.depth),this._bindParameters.depth=e.obtainDepthTexture(),this.performanceInfo.advance(de.DEPTH)):(e.detachDepth(),this._bindParameters.depth=d(this._bindParameters.depth)),this.hasSSAO&&this._pluginInput.release("normals")):this._renderAllGeometryDepth()}_renderAllGeometryDepth(){if(!this._needsDepth)return void(this._bindParameters.depth=d(this._bindParameters.depth));const e=this._framebufferSize,t=this.fboCache.acquire(e.width,e.height,"depth",11);this._rctx.bindFramebuffer(t.fbo),this._rctx.clear(1280),this.renderAllGeometry(2),d(this._bindParameters.depth),this._bindParameters.depth=t.obtainDepthTexture(),t.release(),this.performanceInfo.advance(de.DEPTH)}_renderTerrainDepth(e){if(this._bindParameters.terrainDepthTest=e,this._bindParameters.cullAboveTerrain=e,!e)return void(this._bindParameters.terrainDepth=d(this._bindParameters.terrainDepth));const t=this._renderContext.output;this._renderContext.output=2;const r=this._framebufferSize,i=this.fboCache.acquire(r.width,r.height,"terrain depth",11);this._rctx.bindFramebuffer(i.fbo),this._rctx.clear(1280),this._renderTransparentTerrain(),d(this._bindParameters.terrainDepth),this._bindParameters.terrainDepth=i.obtainDepthTexture(),this._renderContext.output=t,i.release()}_renderGeometryDepth(e){if(!e)return void(this._bindParameters.geometryDepth=d(this._bindParameters.geometryDepth));const t=this._renderContext.output,{width:r,height:i}=this._framebufferSize,s=this.fboCache.acquire(r,i,"geometry depth",11);this._rctx.bindFramebuffer(s.fbo),this._rctx.clear(1280),this._renderOpaqueAndTransparentGeometry(2),this._renderContext.output=t,d(this._bindParameters.geometryDepth),this._bindParameters.geometryDepth=s.obtainDepthTexture(),s.release()}get _needsShadowDepthRange(){return this._shadowMap.enabled||this._shadowAccumulator.active}_computeShadowDepthRange(e){if(!this._needsShadowDepthRange)return Y.zero;const t=J(e,this._plugins.plugins,this.stage.layers,0);return t.union(this._plugins.queryDepthRange(e)),t.near=Math.max(e.near,t.near),t.far=Math.min(e.far,t.far),t}updateSceneDepthRange(e){if(!this.stage.view.state.isGlobal)return void(this.sceneDepthRange.value=Y.infinite);if((this.stage.view.renderCoordsHelper?.getAltitude(e.eye)??0)<O)return void(this.sceneDepthRange.value=Y.infinite);const t=e.clone();t.near=v,t.far=1e10;const r=J(t,this._plugins.plugins,this.stage.layers,1);r.union(this._plugins.queryDepthRange(t)),this.sceneDepthRange.value.far===r.far&&this.sceneDepthRange.value.near===r.near||(this.sceneDepthRange.value=r)}get _normalsRequired(){const e=this._nodes.require("normals",D.FINAL,D.COMPOSITE,D.OPAQUE,D.TRANSPARENT,I.VIEWSHED,I.LASERLINES);return(this.hasSSAO?1:0)+e}_precompilePrepasses(){this._normalsRequired&&this._precompileAllGeometry(3),this._needsDepth&&this._precompileAllGeometry(2),this.shadowsEnabled&&(this._needsShadowHighlight?(this._precompileShadowCascades(5),this._precompileShadowCascades(6),this._precompileShadowCascades(5)):this._precompileShadowCascades(4)),this._shadowAccumulator.active&&this._precompileAllGeometry(4)}_renderNormals(){const e=this._normalsRequired;if(0===e)return;const t=this._framebufferSize,r=this.fboCache.acquire(t.width,t.height,"normals",5);r.acquireDepth(11),this._rctx.bindFramebuffer(r.fbo),this._rctx.clearFramebuffer(y,!0,!0),this._renderGeometryWithNormals(3);const i=this._nodes.optional("normals",D.FINAL,D.COMPOSITE,D.OPAQUE,D.TRANSPARENT,I.VIEWSHED);return r.retain(e+i-1),this.performanceInfo.advance(de.NORMALS),r}_renderSSAO(){const e=this._pluginInput.get("normals");if(!this.hasSSAO||!e)return;const t=this._nodes.produce(I.SSAO,this._pluginInput);return this._bindParameters.ssao=t,t&&this.performanceInfo.advance(de.SSAO),t}_precompileAllGeometry(e){const t=this._renderContext.output;this._renderContext.output=e,this._precompileOpaqueGeometry(),this._precompileTransparentGeometry(),this._plugins.precompile(6),this._renderContext.output=t}renderAllGeometry(e){this._renderContext.output=e,this._renderOpaqueAndTransparentGeometry(e),this._renderTransparentTerrain()}precompileSlots(e,...t){for(const r of t)this._bindParameters.slot=r,e.precompile(this._renderContext)}precompileOccludedSlots(e,t){for(const r of t)this._renderContext.renderOccludedMask=r,this.precompileSlots(e,...be);this._renderContext.renderOccludedMask=$}renderSlots(e,...t){for(const r of t)this._bindParameters.slot=r,e.forAll(e=>{const t=e.acquireTechniques(this._renderContext);t&&e.render(this._renderContext,t)})}renderOccludedSlots(e,t){this._renderContext.renderOccludedMask=t,this.plugins.renderOccludedFlags>1&&this._plugins.render(8),this.renderSlots(e,...be),this._renderContext.renderOccludedMask=$}renderHUD(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(12)}precompileViewshedShadowMap(){this._precompileAllGeometry(7)}renderViewshedShadowMap(e){const{camera:t,contentCamera:r}=this._bindParameters,i=this._renderContext.output;e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,e),this.renderAllGeometry(7),this._ensureBindParametersCamera(t,r),this._bindParameters.camera.setGLViewport(this._rctx),this._renderContext.output=i}_renderOpaqueAndTransparentGeometry(e){this._renderContext.output=e,this._renderOpaqueGeometry(),this._renderTransparentGeometry()}_renderGeometryWithNormals(e){this._renderContext.output=e,this._plugins.render(...me),this._renderTransparentTerrain()}_renderGeometryWithoutNormals(e){this._renderContext.output=e,this._plugins.render(...ce)}_precompileOpaqueGeometry(){this._plugins.precompile(...fe)}_renderOpaqueGeometry(){this._plugins.render(...fe)}_renderTransparentGeometry(){this._plugins.render(...ge)}get _hasTransparentTerrain(){return this._plugins.produces(0,6)}_renderTransparentTerrain(){const e=()=>this._plugins.render(6);if(!q(this._renderContext.output))return void e();const t=this._framebufferSize,r=this.fboCache.acquire(t.width,t.height,"transparent terrain");return this.renderToTargets(e,r,this._framebuffer.depth,y),r}get _needsHUDVisibility(){return this._plugins.produces(this._renderContext.output,11)}_renderHUDVisibility(){if(!this._needsHUDVisibility)return void(this._bindParameters.hudVisibility=d(this._bindParameters.hudVisibility));const{width:e,height:t}=this._framebufferSize;let r=this._bindParameters.hudVisibility;r?.fbo?.width===e&&r?.fbo?.height===t||(r?.release(),r=this.fboCache.acquire(e,t,"hud visibility",4),this._bindParameters.hudVisibility=r);const i=this._bindParameters.geometryDepth;r.attachDepth(i||this._framebuffer.depth),this._rctx.bindFramebuffer(r.fbo),this._rctx.clearFramebuffer([0,1,0,1]),this._plugins.render(11),r.detachDepth(),this._framebuffer.bind(),this.performanceInfo.advance(de.HUD_VISIBILITY)}_renderLineCallouts(e){if(this._bindParameters.hudRenderStyle=e,0===e){const e=()=>this._plugins.render(14),t=this._framebufferSize,r=this.fboCache.acquireDepth(10,t.width,t.height,"line callouts");this.renderToTargets(e,this._framebuffer.color,r,void 0,!0,!0),r.release()}else this._plugins.render(14)}_precompileHUD(e){if(this._precompileHUDOutput(e),this._hasHighlights){const t=this._renderContext.output;this._renderContext.output=8,this._precompileHUDOutput(e),this._renderContext.output=t}}_precompileHUDOutput(e){const t=this._bindParameters.hudRenderStyle;this._bindParameters.hudRenderStyle=e,this._oitEnabled&&q(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...Pe),this._bindParameters.oitPass=2,this._plugins.precompile(...Pe),this._bindParameters.oitPass=0):this._plugins.precompile(...Pe),this._bindParameters.hudRenderStyle=t}_renderHUD(e,t,r){if(this._pluginsHas.hudElements){if(this._oitEnabled){const i=this._renderOIT(1,r,e);this._rctx.bindFramebuffer(t.fbo),this._compositingHelper.compositePreMultipliedAlpha(this._bindParameters,i.getTexture()),i.release()}else if(this._renderContext.output=r,0===e){const t=()=>this._renderHUDElements(e),r=this._framebufferSize,i=this.fboCache.acquireDepth(10,r.width,r.height,"hud");this.renderToTargets(t,this._framebuffer.color,i,void 0,!0,!0),i.release()}else t.acquireDepth(10),this._rctx.bindFramebuffer(t.fbo),this._renderHUDElements(e),t.detachDepth();this.performanceInfo.advance(0===e?de.HUD_OCCLUDED:de.HUD)}}_renderHUDElements(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(...Pe)}get _needsShadowHighlight(){return this.shadowsEnabled&&this._plugins.produces(5,2)}_renderHighlightPrepass(){if(!this._hasHighlights)return;const{fboCache:e,_rctx:t,_bindParameters:r}=this,i=this._framebufferSize,{highlights:s}=r,a=e.acquire(i.width,i.height,"highlights",s.length>j?3:1);a.acquireDepth(11),t.bindFramebuffer(a.fbo);const{gl:n}=t;return n.clearBufferuiv(n.COLOR,0,[0,0,0,0]),this._renderContext.output=8,t.bindFramebuffer(a.fbo),B(t,e,i,r,()=>this._renderHighlightGeometries()),this.performanceInfo.advance(de.HIGHLIGHTS),a}_renderHighlightGeometries(){this._plugins.render(...we),this._rctx.clear(256),this._renderHUDElements(2)}_renderShadowAccumulation(e,t,r,i){this._shadowAccumulator.updateDepthRange(e),this._shadowAccumulator.accumulating&&this._bindParameters.depth&&this._shadowAccumulator.renderAccumulation(this._bindParameters.depth,t,r,i)&&this.performanceInfo.advance(de.ACCUMULATED_SHADOWS)}_precompileTransparentGeometry(){this._oitEnabled&&q(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...ge),this._bindParameters.oitPass=2,this._plugins.precompile(...ge),this._bindParameters.oitPass=0):this._plugins.precompile(...ge)}_renderOIT(e,t,r=2){const i=1===e,s=this._framebufferSize,a=i?this.fboCache.acquire(s.width,s.height,"oit hud composite"):null,n=i?()=>this._renderHUDElements(r):()=>this._renderTransparentGeometry(),h=this._bindParameters,o=this._renderContext.output;this._renderContext.output=t,h.oitPass=1;const d=a?"oit hud color+alpha":"oit color+alpha",l=this.fboCache.acquire(s.width,s.height,d,8),_=1===t;_&&l.acquireColor(_e,8,"emissive"),l.acquireColor(_?ue:_e,7),a||l.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(l.fbo),this._rctx.clearFramebuffer([0,0,0,1]),_&&this._rctx.clearBuffer(1,A),n(),l.detachDepth(),h.oitPass=2;const u=this.fboCache.acquire(s.width,s.height,a?"oit hud front":"oit front");return _&&u.acquireColor(_e,8,"emissive"),a?u.acquireDepth(10):u.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(u.fbo),this._rctx.clearFramebuffer(y,!!a),n(),u.detachDepth(),h.oitPass=0,a?(this._rctx.bindFramebuffer(a.fbo),this._rctx.setClearColor(0,0,0,1e-13),this._rctx.clear(16384)):this._framebuffer.bind(),this._oitblend??=new k(this._techniques),this._oitblend.blend(this._rctx,l,u,h,_),a?.detachDepth(),u.release(),l.release(),this._renderContext.output=o,a}_renderOpaque(e){const t=this.plugins.produces(0,...fe);if(t){this._plugins.render(0,1);const e=this._framebuffer;e.update(e=>this._renderNodes(I.OPAQUE_TERRAIN,e)),e.bind(),this._plugins.render(2,3)}const r=this._framebuffer;r.update(e=>this._renderNodes(D.OPAQUE,e,t)),this.fboCache.debugCallback?.(D.OPAQUE,r.color.fbo),r.update(e=>this._renderNodes(I.OPAQUE_ENVIRONMENT,e)),this.fboCache.debugCallback?.(I.OPAQUE_ENVIRONMENT,r.color.fbo),this._renderTerrainDepth(e),this._renderEdges(1)}_renderTransparent(e,t,r){const i=this._framebuffer;i.bind(),this._renderPlugins(19,de.VOXEL),this._renderHiddenTransparentEdges(),e&&(this._oitEnabled?this._renderOIT(0,r):this._renderTransparentGeometry()),i.update(t=>this._renderNodes(D.TRANSPARENT,t,e)),this.fboCache.debugCallback?.(D.TRANSPARENT,i.color.fbo),this._renderGeometryDepth(t),this._renderHUDVisibility(),t||this._plugins.render(14),this._renderEdges(0);const s=this._hasTransparentTerrain?this._renderTransparentTerrain():null;s&&(this.performanceInfo.advance(de.TRANSPARENT_TERRAIN),this._bindParameters.hudVisibility&&(t?this._renderLineCallouts(0):(this._rctx.bindFramebuffer(this._bindParameters.hudVisibility?.fbo),this._compositingHelper.compositeHUD(this._bindParameters,s.getTexture())),this._renderHUD(0,i.color,r))),this._bindParameters.cullAboveTerrain=!1,s&&(i.bind(),this._compositingHelper.compositePreMultipliedAlpha(this._bindParameters,s.getTexture()),s.release(),t&&(this._renderEdges(1),e&&(this._oitEnabled?this._renderOIT(0,r):this._renderTransparentGeometry(),this.performanceInfo.advance(de.TRANSPARENT)),this._renderEdges(0))),this._bindParameters.ssao=d(this._bindParameters.ssao),t&&this._renderLineCallouts(1),this._bindParameters.terrainDepthTest=!1,this._renderTransparentEnvironment()}_renderTransparentEnvironment(){this._shadowAccumulator.render(this._bindParameters),this.performanceInfo.advance(de.APPLY_ACCUMULATED_SHADOWS),this._framebuffer.bind(),this._plugins.render(7),this.performanceInfo.advance(de.TRANSPARENT_MATERIAL_WITHOUT_DEPTH)}_renderPlugins(e,t){this._plugins.produces(this._renderContext.output,e)&&(this._plugins.render(e),this.performanceInfo.advance(t))}_renderNodes(e,t,r=!1){if(t.setName(e),this._pluginInput.set(e,t),!this._nodes.produces(e))return r&&this.performanceInfo.advance(e),t;const i=this._nodes.render(t,this._pluginInput,this._releaseNormals);return this.performanceInfo.advance(e),i}_blitFBO(e,t=F,r=!0){return this._blit??=new L(this._techniques),this._blit.blit(this._rctx,e,t,this._bindParameters),this._pluginInput.set(e.name,t),r&&e.release(),t}_ensureBindParametersCamera(e,t){this._bindParameters.camera=e,this._bindParameters.contentCamera=t}_ensureBindParametersSSR(e){if(this._bindParameters.ssr.lastFrameColor){null==this._ssrEnableTime&&(this._ssrEnableTime=e),this._renderContext.lastFrameCamera.equals(this._bindParameters.camera)?this._reprojectionMatrix=T:(w(Te,this._bindParameters.camera.viewMatrix),w(Se,this._bindParameters.camera.projectionMatrix),S(Ce,Te,Se),S(Ce,this._renderContext.lastFrameCamera.viewMatrix,Ce),S(Ce,this._renderContext.lastFrameCamera.projectionMatrix,Ce),this._reprojectionMatrix=Ce);const t=this.stage.view.qualitySettings.fadeDuration;this._bindParameters.ssr.fadeFactor=t>0?Math.min(t,e-this._ssrEnableTime)/t:1,this._bindParameters.ssr.fadeFactor<1&&this._requestRender()}else this._reprojectionMatrix=T,this._ssrEnableTime=null}addRenderNode(e){this._nodes.add(e),this._requestRender()}removeRenderNode(e){this._nodes.remove(e),this._requestRender()}updateLighting(e,t,r,i){this._bindParameters.updateLighting(e,t,r,i),this._requestRender(1)}get usedMemory(){return{fbos:this.fboCache.usedMemory,plugins:this._plugins.usedMemory,edges:this.edgeView?.usedMemory??0}}renderToTargets(e,t,r,i,s=!1,a=!1){t.attachDepth(r),this._rctx.bindFramebuffer(t.fbo),this._rctx.clearFramebuffer(i,s,a),e(),t.detachDepth()}get test(){}};e([g({readOnly:!0})],pe.prototype,"fullResolutionAtmosphere",null),e([g()],pe.prototype,"_edgeView",void 0),e([g()],pe.prototype,"updating",null),pe=e([b("esri.views.3d.webgl-engine.lib.Renderer")],pe);const me=[0,1,2,4],ce=[3,5],fe=[0,1,2,3],ge=[4,5],be=[2,4,7],Pe=[15,12,13],we=[4,5,2,3,6,0,1],Se=C(),Te=C(),Ce=C();function Ee(e){return t=>e.immediate.schedule(t)}export{pe as Renderer};
@@ -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 has from"../../../../core/has.js";import{NestedMap as e}from"../../../../core/NestedMap.js";import{ScreenSpaceGeometry as s}from"../effects/ScreenSpaceGeometry.js";import{createEmptyTexture as r}from"./glUtil3D.js";import{VaoCache as t}from"../materials/renderers/VaoCache.js";import{AppleAmdDriverHelper as i}from"../../../webgl/AppleAmdDriverHelper.js";import{RenderingContext as a}from"../../../webgl/RenderingContext.js";class o extends a{constructor(t,i){super(t,i),this.emptyTexture=r(this),this._vaoCaches=new e,this._appleAmdDriverHelper=null,this._refCount=1,this._newCache=i.newCache,this._screen=new s(this)}configure(e){super.configure(e),this._newCache=e.newCache}destroy(){this._vaoCaches?.forAll(e=>e.dispose()),this._vaoCaches?.clear(),--this._refCount>0||this.dispose()}ref(){++this._refCount}dispose(){this.emptyTexture.dispose(),this._screen.destroy(),this._screen=null,super.dispose(),this._appleAmdDriverHelper?.dispose(),this._vaoCaches.forAll(e=>e.dispose()),this._vaoCaches.clear()}get newCache(){return this._newCache}get screen(){return this._screen}getVaoCache(e,s){const r=Array.from(e).join("."),i=JSON.stringify(s),a=this._vaoCaches.get(r,i);if(a)return a;const o=new t(this,e,s);return this._vaoCaches.set(r,i,o),o}bindTechnique(e,s,r,t){return this.useProgram(e.program),this.setPipelineState(e.getPipeline()),e.program.bind(s),r&&(e.program.bindPass(r,s),t&&e.program.bindDraw(s,r,t)),e.program}runAppleAmdDriverHelper(){this.driverTest.drawArraysRequiresIndicesTypeReset.result&&(this._appleAmdDriverHelper??=new i(this),this._appleAmdDriverHelper.run())}get isAssumedMetalDriver(){if(null==this._isAssumedMetalDriver&&(this._isAssumedMetalDriver=!!has("ios")||!!has("safari"),!this._isAssumedMetalDriver&&has("mac")&&has("chrome"))){const e=this.capabilities.rendererInfo?.getUnmaskedRenderer().toLowerCase(),s=e?.includes("apple")&&e?.includes("angle")&&e?.includes("metal");this._isAssumedMetalDriver=s??!0}return this._isAssumedMetalDriver}get test(){}}export{o as RenderingContext};
5
+ import has from"../../../../core/has.js";import{ScreenSpaceGeometry as e}from"../effects/ScreenSpaceGeometry.js";import{createEmptyTexture as s}from"./glUtil3D.js";import{VaoCache as r}from"../materials/renderers/VaoCache.js";import{AppleAmdDriverHelper as t}from"../../../webgl/AppleAmdDriverHelper.js";import{RenderingContext as i}from"../../../webgl/RenderingContext.js";class a extends i{constructor(r,t){super(r,t),this.emptyTexture=s(this),this._vaoCaches=new Map,this._appleAmdDriverHelper=null,this._refCount=1,this._newCache=t.newCache,this._screen=new e(this)}configure(e){super.configure(e),this._newCache=e.newCache}destroy(){this._vaoCaches.forEach(e=>e.dispose()),this._vaoCaches.clear(),--this._refCount>0||this.dispose()}ref(){++this._refCount}dispose(){this.emptyTexture.dispose(),this._screen.destroy(),this._screen=null,super.dispose(),this._appleAmdDriverHelper?.dispose(),this._vaoCaches.forEach(e=>e.dispose()),this._vaoCaches.clear()}get newCache(){return this._newCache}get screen(){return this._screen}getVaoCache(e){const s=JSON.stringify(e),t=this._vaoCaches.get(s);if(t)return t;const i=new r(this,e);return this._vaoCaches.set(s,i),i}bindTechnique(e,s,r,t){return this.useProgram(e.program),this.setPipelineState(e.getPipeline()),e.program.bind(s),r&&(e.program.bindPass(r,s),t&&e.program.bindDraw(s,r,t)),e.program}runAppleAmdDriverHelper(){this.driverTest.drawArraysRequiresIndicesTypeReset.result&&(this._appleAmdDriverHelper??=new t(this),this._appleAmdDriverHelper.run())}get isAssumedMetalDriver(){if(null==this._isAssumedMetalDriver&&(this._isAssumedMetalDriver=!!has("ios")||!!has("safari"),!this._isAssumedMetalDriver&&has("mac")&&has("chrome"))){const e=this.capabilities.rendererInfo?.getUnmaskedRenderer().toLowerCase(),s=e?.includes("apple")&&e?.includes("angle")&&e?.includes("metal");this._isAssumedMetalDriver=s??!0}return this._isAssumedMetalDriver}get test(){}}export{a as RenderingContext};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
+ */
5
+ import{RenderingContextOptions as e}from"../../../webgl/RenderingContextOptions.js";class t extends e{constructor(e){super(e.options.deactivatedWebGLExtensions||{},e.options.debugWebGLExtensions||{},8,e.view.qualitySettings.maxTexturePixels),this.newCache=(t,n)=>e.view.resourceController.memoryController.newCache(t,n)}}export{t as RenderingContextOptions};
@@ -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"../../../../core/Accessor.js";import{sliceEquals as r}from"../../../../core/arrayUtils.js";import"../../../../core/has.js";import{smoothstep as i}from"../../../../core/mathUtils.js";import{disposeMaybe as s}from"../../../../core/maybe.js";import{watch as o,sync as a}from"../../../../core/reactiveUtils.js";import{signal as n}from"../../../../core/signal.js";import{property as h}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import{subclass as c}from"../../../../core/accessorSupport/decorators/subclass.js";import{c as u,G as l}from"../../../../chunks/vec32.js";import{create as m}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ReadShadowMapPassParameters as _}from"../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{BindParameters as p}from"./BindParameters.js";import{DepthRange as d}from"./DepthRange.js";import{createQuadVAO as f}from"./glUtil3D.js";import{ShadowCastRenderer as g,shadowCastDisabledElevationThreshold as b,shadowCastDisableElevationMax as v,shadowCastDisableElevationMin as S}from"./ShadowCastRenderer.js";import{ShadowMap as w}from"./ShadowMap.js";import{S as y}from"../../../../chunks/ShadowCastAccumulate.glsl.js";import{ShadowCastAccumulateTechnique as F}from"../shaders/ShadowCastAccumulateTechnique.js";import{ShadowCastAccumulateTechniqueConfiguration as A}from"../shaders/ShadowCastAccumulateTechniqueConfiguration.js";import{ShadowCastClearTechnique as R}from"../shaders/ShadowCastClearTechnique.js";import{TaskPriority as x}from"../../../support/Scheduler.js";import{SizedPixelFormat as C}from"../../../webgl/enums.js";import{FramebufferObject as j}from"../../../webgl/FramebufferObject.js";import{TextureDescriptor as P}from"../../../webgl/TextureDescriptor.js";import{vertexCount as q}from"../../../webgl/Util.js";let T=class extends e{updateDepthRange(t){this._depthRange.equals(t)||(this._depthRange=t)}constructor(t,e,r,i,s,n){super({}),this.fbos=t,this._techniques=e,this._stage=r,this._prepareForShadowMapPass=i,this._renderToShadowMap=s,this._requestRender=n,this._primarySet=new M(new A(0),()=>this._requestRenderIfEnabled()),this._contextSet=new M(new A(1),()=>this._requestRenderIfEnabled()),this._passParameters=new _,this._depthRange=d.zero,this._previewing=!1,this._shadowAccumulatorKey=Symbol("shadowAccumulator"),this._rctx=t.rctx,this._bindParameters=new p(new w(t,r.viewingMode)),this._bindParameters.shadowMap.enabled=!0,this._vao=f(this._rctx),this._accumulationRenderer=new g(e,this._rctx,this,n);const h=this._stage.view.resourceController.scheduler;this.addHandles([h.registerTask(x.SHADOW_ACCUMULATOR,this),o(()=>this._previewing,()=>this._requestRenderIfEnabled(),a),o(()=>2===this._numActive,()=>this._numActiveChanged(),a),o(()=>this._depthRange,()=>this._invalidateAccumulationSets(),a)],this._shadowAccumulatorKey);for(const o of this._accumulationSets())o.precompile(e)}*_accumulationSets(){yield this._primarySet,yield this._contextSet}normalizeCtorArgs(){return{}}dispose(){this._disable(),this.removeHandles(this._shadowAccumulatorKey),this._accumulationRenderer=s(this._accumulationRenderer),this._bindParameters.shadowMap.dispose(),this._fbo=s(this._fbo),this._vao=s(this._vao);for(const t of this._accumulationSets())t.destroy();this._contextSet=null,this._primarySet=null,this._bindParameters.destroy()}get computedSamples(){return[this._primarySet.progress,this._contextSet.progress]}get shadowCastTexture(){return this._fbo?.colorTexture}get accumulating(){return this.active&&this._previewing||this._refining}get _refining(){return this.active&&!this._doneAccumulating&&!this._previewing}get active(){return null!=this._fbo&&[...this._accumulationSets()].some(t=>t.active)}get canAccumulate(){return null!=this._bindParameters.depth&&this._depthRange!==d.zero&&this._opacityFromElevation>b}get _doneAccumulating(){return[...this._accumulationSets()].every(t=>t.doneAccumulating)}get _opacityFromElevation(){return this._accumulationRenderer.opacityFromElevation}set _opacityFromElevation(t){this._accumulationRenderer.opacityFromElevation=t}get _numActive(){return[...this._accumulationSets()].reduce((t,e)=>t+(e.active?1:0),0)}get _pixelFormat(){return 2===this._numActive?{pixelFormat:33319,internalFormat:C.RG8}:{pixelFormat:6403,internalFormat:C.R8}}get readyToRun(){return this._refining&&this.canAccumulate&&[...this._accumulationSets()].some(t=>t.running)}runTask(t){this._clearBuffersOnAccumulationStart(),this._prepareForShadowMapPass(this._bindParameters);let e=!1;for(const r of this._accumulationSets())this._runTaskForSet(r,t)&&(e=!0);e&&this._requestRender()}_runTaskForSet(t,e){let r=!1;for(;!e.done&&!t.doneAccumulating;)this._accumulateShadow(t),e.madeProgress(),r=!0;return r}renderAccumulation(t,e,r,i){return this._updateCamera(e),this._bindParameters.contentCamera=r,this._bindParameters.depth=t,this._passParameters.origin=this._bindParameters.camera.center,this.notifyChange("canAccumulate"),!(!this.accumulating||!this.canAccumulate)&&(this._previewing||i?(this._clearFramebuffer(),this._reset()):this._clearBuffersOnAccumulationStart(),this._accumulateSetsForRenderFrame(i))}_clearBuffersOnAccumulationStart(){if([...this._accumulationSets()].every(t=>0===t.progress))this._clearFramebuffer();else for(const t of this._accumulationSets())0===t.progress&&this._clearFramebufferForSet(this._fbo,t)}_accumulateSetsForRenderFrame(t){let e=!1;for(const r of this._accumulationSets())this._accumulateSetForRenderFrame(r,t)&&(e=!0);return e&&this._requestRender(),e}_accumulateSetForRenderFrame(t,e){let r=e?t.sampleCount:Math.min(D,t.sampleCount);r-=t.progress;for(let i=0;i<r;++i)this._accumulateShadow(t);return r>0}precompile(){this._accumulationRenderer.precompile()}render(t){this._accumulationRenderer.render(t)}setOptions(t){void 0!==t.previewing&&(this._previewing=t.previewing),void 0!==t.lightDirections&&(this._primarySet.lightDirections=t.lightDirections),void 0!==t.lightDirectionsContext&&(this._contextSet.lightDirections=t.lightDirectionsContext),!0===t.enabled?this._enable():!1===t.enabled&&this._disable(),this._accumulationRenderer.setOptions(t)}readAccumulatedShadow(t,e){const r=this._primarySet.progress;return!this.active||!this._fbo||r<1||t<0||t>=this._fbo.width||e<0||e>=this._fbo.height?0:(this._fbo.readPixels(t,e,1,1,6408,5121,E),E[0]/r)}_numActiveChanged(){if(!this._fbo)return;const t=2===this._numActive,e=this._createFBO();e.resize(this._fbo.width,this._fbo.height),t&&(this._clearFramebuffer(e),this._contextSet.reset()),this._fbo.width&&this._fbo.height&&this._rctx.blitFramebuffer(this._fbo,e),this._fbo.dispose(),this._fbo=e,this._requestRender()}_enable(){this._fbo||(this._fbo=this._createFBO(),this._invalidateAccumulationSets())}_createFBO(){const{pixelFormat:t,internalFormat:e}=this._pixelFormat,r=new P;return r.pixelFormat=t,r.internalFormat=e,r.wrapMode=33071,new j(this._rctx,r)}_invalidateAccumulationSets(){for(const t of this._accumulationSets())t.reset();this._requestRenderIfEnabled()}_disable(){this._fbo&&(this._fbo=s(this._fbo),this._requestRender())}_reset(){for(const t of this._accumulationSets())t.reset()}_clearFramebuffer(t=this._fbo){t&&t.width&&t.height&&(this._rctx.bindFramebuffer(t),this._rctx.setClearColor(0,0,0,0),this._rctx.clear(16384))}_clearFramebufferForSet(t,e){if(!t)return;const r=this._techniques.get(R,e.configuration);this._rctx.bindFramebuffer(t),this._rctx.bindTechnique(r,this._bindParameters,this._passParameters),this._rctx.bindVAO(this._vao),this._rctx.drawArrays(r.primitiveType,0,q(this._vao,"geometry"))}_accumulateShadow(t){this._renderToShadowMap(this._bindParameters,t.lightDirections[t.progress++],this._depthRange);const e=this._techniques.get(F,t.configuration);this._rctx.bindFramebuffer(this._fbo),this._rctx.bindTechnique(e,this._bindParameters,this._passParameters),this._rctx.bindVAO(this._vao),this._rctx.drawArrays(e.primitiveType,0,q(this._vao,"geometry"))}_updateCamera(t){const e=this._fbo;if(null==e)return;const r=this._bindParameters.camera;t.equals(r)||r.copyFrom(t),e.resize(t.fullWidth,t.fullHeight),this._opacityFromElevation=1-i(S,v,t.relativeElevation)}_requestRenderIfEnabled(){this._fbo&&this._requestRender()}get test(){}};t([h()],T.prototype,"_fbo",void 0),t([h()],T.prototype,"_depthRange",void 0),t([h()],T.prototype,"_previewing",void 0),t([h()],T.prototype,"_accumulationRenderer",void 0),t([h()],T.prototype,"_refining",null),t([h()],T.prototype,"active",null),t([h()],T.prototype,"canAccumulate",null),t([h()],T.prototype,"_doneAccumulating",null),t([h()],T.prototype,"_opacityFromElevation",null),t([h()],T.prototype,"_numActive",null),t([h()],T.prototype,"_pixelFormat",null),t([h()],T.prototype,"readyToRun",null),T=t([c("esri.views.3d.webgl-engine.lib.ShadowAccumulator")],T);const D=6,E=new Uint8Array(4);class M{constructor(t,e){this.configuration=t,this._notifyChange=e,this._cachedLightDirections=[],this._progress=n(0),this._sampleCount=n(0)}get progress(){return this._progress.value}set progress(t){this._progress.value=t}get sampleCount(){return this._sampleCount.value}get doneAccumulating(){return this.progress>=this.sampleCount}get running(){return this.progress>0}get active(){return this.sampleCount>0}get lightDirections(){return this._cachedLightDirections}set lightDirections(t){const e=this._cachedLightDirections,i=Math.min(y,t.length);if(!r(e,0,e.length,t,0,i,l)){e.length=i,this._sampleCount.value=i;for(let r=0;r<i;++r)e[r]=u(e[r]??m(),t[r]);this.reset(),this._notifyChange()}}destroy(){this._cachedLightDirections.length=0,this._sampleCount.value=0}reset(){this.progress=0}precompile(t){t.precompile(F,this.configuration),t.precompile(R,this.configuration)}}export{T as ShadowAccumulator};
5
+ import{__decorate as t}from"tslib";import e from"../../../../core/Accessor.js";import{sliceEquals as r}from"../../../../core/arrayUtils.js";import"../../../../core/has.js";import{smoothstep as i}from"../../../../core/mathUtils.js";import{disposeMaybe as s}from"../../../../core/maybe.js";import{watch as o,sync as a}from"../../../../core/reactiveUtils.js";import{signal as n}from"../../../../core/signal.js";import{property as h}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import{subclass as c}from"../../../../core/accessorSupport/decorators/subclass.js";import{c as u,G as l}from"../../../../chunks/vec32.js";import{create as m}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ReadShadowMapPassParameters as _}from"../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{BindParameters as p}from"./BindParameters.js";import{DepthRange as d}from"./DepthRange.js";import{createQuadVAO as f}from"./glUtil3D.js";import{ShadowCastRenderer as g,shadowCastDisabledElevationThreshold as b,shadowCastDisableElevationMax as v,shadowCastDisableElevationMin as S}from"./ShadowCastRenderer.js";import{ShadowMap as w}from"./ShadowMap.js";import{S as y}from"../../../../chunks/ShadowCastAccumulate.glsl.js";import{ShadowCastAccumulateTechnique as F}from"../shaders/ShadowCastAccumulateTechnique.js";import{ShadowCastAccumulateTechniqueConfiguration as A}from"../shaders/ShadowCastAccumulateTechniqueConfiguration.js";import{ShadowCastClearTechnique as x}from"../shaders/ShadowCastClearTechnique.js";import{TaskPriority as R}from"../../../support/Scheduler.js";import{SizedPixelFormat as C,PixelType as j}from"../../../webgl/enums.js";import{FramebufferObject as P}from"../../../webgl/FramebufferObject.js";import{TextureDescriptor as q}from"../../../webgl/TextureDescriptor.js";let T=class extends e{updateDepthRange(t){this._depthRange.equals(t)||(this._depthRange=t)}constructor(t,e,r,i,s,n){super({}),this.fbos=t,this._techniques=e,this._stage=r,this._prepareForShadowMapPass=i,this._renderToShadowMap=s,this._requestRender=n,this._primarySet=new M(new A(0),()=>this._requestRenderIfEnabled()),this._contextSet=new M(new A(1),()=>this._requestRenderIfEnabled()),this._passParameters=new _,this._depthRange=d.zero,this._previewing=!1,this._shadowAccumulatorKey=Symbol("shadowAccumulator"),this._rctx=t.rctx,this._bindParameters=new p(new w(t,r.viewingMode)),this._bindParameters.shadowMap.enabled=!0,this._vao=f(this._rctx),this._accumulationRenderer=new g(e,this._rctx,this,n);const h=this._stage.view.resourceController.scheduler;this.addHandles([h.registerTask(R.SHADOW_ACCUMULATOR,this),o(()=>this._previewing,()=>this._requestRenderIfEnabled(),a),o(()=>2===this._numActive,()=>this._numActiveChanged(),a),o(()=>this._depthRange,()=>this._invalidateAccumulationSets(),a)],this._shadowAccumulatorKey);for(const o of this._accumulationSets())o.precompile(e)}*_accumulationSets(){yield this._primarySet,yield this._contextSet}normalizeCtorArgs(){return{}}dispose(){this._disable(),this.removeHandles(this._shadowAccumulatorKey),this._accumulationRenderer=s(this._accumulationRenderer),this._bindParameters.shadowMap.dispose(),this._fbo=s(this._fbo),this._vao=s(this._vao);for(const t of this._accumulationSets())t.destroy();this._contextSet=null,this._primarySet=null,this._bindParameters.destroy()}get computedSamples(){return[this._primarySet.progress,this._contextSet.progress]}get shadowCastTexture(){return this._fbo?.colorTexture}get accumulating(){return this.active&&this._previewing||this._refining}get _refining(){return this.active&&!this._doneAccumulating&&!this._previewing}get active(){return null!=this._fbo&&[...this._accumulationSets()].some(t=>t.active)}get canAccumulate(){return null!=this._bindParameters.depth&&this._depthRange!==d.zero&&this._opacityFromElevation>b}get _doneAccumulating(){return[...this._accumulationSets()].every(t=>t.doneAccumulating)}get _opacityFromElevation(){return this._accumulationRenderer.opacityFromElevation}set _opacityFromElevation(t){this._accumulationRenderer.opacityFromElevation=t}get _numActive(){return[...this._accumulationSets()].reduce((t,e)=>t+(e.active?1:0),0)}get _pixelFormat(){return 2===this._numActive?{pixelFormat:33319,internalFormat:C.RG8}:{pixelFormat:6403,internalFormat:C.R8}}get readyToRun(){return this._refining&&this.canAccumulate&&[...this._accumulationSets()].some(t=>t.running)}runTask(t){this._clearBuffersOnAccumulationStart(),this._prepareForShadowMapPass(this._bindParameters);let e=!1;for(const r of this._accumulationSets())this._runTaskForSet(r,t)&&(e=!0);e&&this._requestRender()}_runTaskForSet(t,e){let r=!1;for(;!e.done&&!t.doneAccumulating;)this._accumulateShadow(t),e.madeProgress(),r=!0;return r}renderAccumulation(t,e,r,i){return this._updateCamera(e),this._bindParameters.contentCamera=r,this._bindParameters.depth=t,this._passParameters.origin=this._bindParameters.camera.center,this.notifyChange("canAccumulate"),!(!this.accumulating||!this.canAccumulate)&&(this._previewing||i?(this._clearFramebuffer(),this._reset()):this._clearBuffersOnAccumulationStart(),this._accumulateSetsForRenderFrame(i))}_clearBuffersOnAccumulationStart(){if([...this._accumulationSets()].every(t=>0===t.progress))this._clearFramebuffer();else for(const t of this._accumulationSets())0===t.progress&&this._clearFramebufferForSet(this._fbo,t)}_accumulateSetsForRenderFrame(t){let e=!1;for(const r of this._accumulationSets())this._accumulateSetForRenderFrame(r,t)&&(e=!0);return e&&this._requestRender(),e}_accumulateSetForRenderFrame(t,e){let r=e?t.sampleCount:Math.min(D,t.sampleCount);r-=t.progress;for(let i=0;i<r;++i)this._accumulateShadow(t);return r>0}precompile(){this._accumulationRenderer.precompile()}render(t){this._accumulationRenderer.render(t)}setOptions(t){void 0!==t.previewing&&(this._previewing=t.previewing),void 0!==t.lightDirections&&(this._primarySet.lightDirections=t.lightDirections),void 0!==t.lightDirectionsContext&&(this._contextSet.lightDirections=t.lightDirectionsContext),!0===t.enabled?this._enable():!1===t.enabled&&this._disable(),this._accumulationRenderer.setOptions(t)}readAccumulatedShadow(t,e){const r=this._primarySet.progress;return!this.active||!this._fbo||r<1||t<0||t>=this._fbo.width||e<0||e>=this._fbo.height?0:(this._fbo.readPixels(t,e,1,1,6408,j.UNSIGNED_BYTE,E),E[0]/r)}_numActiveChanged(){if(!this._fbo)return;const t=2===this._numActive,e=this._createFBO();e.resize(this._fbo.width,this._fbo.height),t&&(this._clearFramebuffer(e),this._contextSet.reset()),this._fbo.width&&this._fbo.height&&this._rctx.blitFramebuffer(this._fbo,e),this._fbo.dispose(),this._fbo=e,this._requestRender()}_enable(){this._fbo||(this._fbo=this._createFBO(),this._invalidateAccumulationSets())}_createFBO(){const{pixelFormat:t,internalFormat:e}=this._pixelFormat,r=new q;return r.pixelFormat=t,r.internalFormat=e,r.wrapMode=33071,new P(this._rctx,r)}_invalidateAccumulationSets(){for(const t of this._accumulationSets())t.reset();this._requestRenderIfEnabled()}_disable(){this._fbo&&(this._fbo=s(this._fbo),this._requestRender())}_reset(){for(const t of this._accumulationSets())t.reset()}_clearFramebuffer(t=this._fbo){t&&t.width&&t.height&&(this._rctx.bindFramebuffer(t),this._rctx.setClearColor(0,0,0,0),this._rctx.clear(16384))}_clearFramebufferForSet(t,e){if(!t)return;const r=this._techniques.get(x,e.configuration);this._rctx.bindFramebuffer(t),this._rctx.bindTechnique(r,this._bindParameters,this._passParameters),this._rctx.bindVAO(this._vao),this._rctx.drawArrays(r.primitiveType,0,this._vao.vertexCount("geometry"))}_accumulateShadow(t){this._renderToShadowMap(this._bindParameters,t.lightDirections[t.progress++],this._depthRange);const e=this._techniques.get(F,t.configuration);this._rctx.bindFramebuffer(this._fbo),this._rctx.bindTechnique(e,this._bindParameters,this._passParameters),this._rctx.bindVAO(this._vao),this._rctx.drawArrays(e.primitiveType,0,this._vao.vertexCount("geometry"))}_updateCamera(t){const e=this._fbo;if(null==e)return;const r=this._bindParameters.camera;t.equals(r)||r.copyFrom(t),e.resize(t.fullWidth,t.fullHeight),this._opacityFromElevation=1-i(S,v,t.relativeElevation)}_requestRenderIfEnabled(){this._fbo&&this._requestRender()}get test(){}};t([h()],T.prototype,"_fbo",void 0),t([h()],T.prototype,"_depthRange",void 0),t([h()],T.prototype,"_previewing",void 0),t([h()],T.prototype,"_accumulationRenderer",void 0),t([h()],T.prototype,"_refining",null),t([h()],T.prototype,"active",null),t([h()],T.prototype,"canAccumulate",null),t([h()],T.prototype,"_doneAccumulating",null),t([h()],T.prototype,"_opacityFromElevation",null),t([h()],T.prototype,"_numActive",null),t([h()],T.prototype,"_pixelFormat",null),t([h()],T.prototype,"readyToRun",null),T=t([c("esri.views.3d.webgl-engine.lib.ShadowAccumulator")],T);const D=6,E=new Uint8Array(4);class M{constructor(t,e){this.configuration=t,this._notifyChange=e,this._cachedLightDirections=[],this._progress=n(0),this._sampleCount=n(0)}get progress(){return this._progress.value}set progress(t){this._progress.value=t}get sampleCount(){return this._sampleCount.value}get doneAccumulating(){return this.progress>=this.sampleCount}get running(){return this.progress>0}get active(){return this.sampleCount>0}get lightDirections(){return this._cachedLightDirections}set lightDirections(t){const e=this._cachedLightDirections,i=Math.min(y,t.length);if(!r(e,0,e.length,t,0,i,l)){e.length=i,this._sampleCount.value=i;for(let r=0;r<i;++r)e[r]=u(e[r]??m(),t[r]);this.reset(),this._notifyChange()}}destroy(){this._cachedLightDirections.length=0,this._sampleCount.value=0}reset(){this.progress=0}precompile(t){t.precompile(F,this.configuration),t.precompile(x,this.configuration)}}export{T as ShadowAccumulator};
@@ -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{disposeMaybe as s}from"../../../../core/maybe.js";import{property as i}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as r}from"../../../../core/accessorSupport/decorators/subclass.js";import{a,c as o}from"../../../../chunks/vec42.js";import{createQuadVAO as n}from"./glUtil3D.js";import{S as h}from"../../../../chunks/ShadowCastVisualize.glsl.js";import{ShadowCastVisualizeTechnique as d}from"../shaders/ShadowCastVisualizeTechnique.js";import{ShadowCastVisualizeTechniqueConfiguration as l}from"../shaders/ShadowCastVisualizeTechniqueConfiguration.js";import{vertexCount as _}from"../../../webgl/Util.js";const p=4e4,m=5e4,c=1/512;let u=class extends t{constructor(e,t,s,i){super({}),this._techniques=e,this._rctx=t,this._data=s,this._requestRender=i,this._passParameters=new h(this._data),this._configuration=new l,this._enabled=!1,this._vao=n(t)}dispose(){this._stop(),this._vao=s(this._vao)}precompile(){this._showVisualization&&this._techniques.precompile(d,this._configuration)}render(e){if(!this._showVisualization)return;const[t,s]=this._data.computedSamples;this._passParameters.sampleScale=[t?1/t:0,s?1/s:0];const i=this._techniques.get(d,this._configuration);this._rctx.bindVAO(this._vao),this._rctx.bindTechnique(i,e,this._passParameters),this._rctx.drawArrays(i.primitiveType,0,_(this._vao,"geometry"))}setOptions(e){void 0!==e.enabled&&this._setEnabled(e.enabled),void 0!==e.thresholdColor&&this._setThresholdColor(e.thresholdColor),void 0!==e.gradientColor&&this._setGradientColor(e.gradientColor),void 0!==e.bandedGradientColor&&this._setBandedGradientColor(e.bandedGradientColor),void 0!==e.threshold&&(this._threshold=e.threshold),void 0!==e.visualization&&(this._visualization=e.visualization),void 0!==e.bandSize&&(this._bandSize=e.bandSize)}get opacityFromElevation(){return this._passParameters.opacityFromElevation}set opacityFromElevation(e){this._passParameters.opacityFromElevation!==e&&(this._passParameters.opacityFromElevation=e,this.notifyChange("opacityFromElevation"))}get _showVisualization(){return this._enabled&&(this._data.computedSamples[0]>0||this._data.computedSamples[1]>0)&&this.opacityFromElevation>c}get _threshold(){return this._passParameters.threshold}set _threshold(e){this._threshold!==e&&(this._passParameters.threshold=e,this._requestRenderIfEnabled())}get _visualization(){return this._configuration.visualization}set _visualization(e){e!==this._visualization&&(this._configuration.visualization=e,this._requestRenderIfEnabled())}get _bandSize(){return this._passParameters.bandSize}set _bandSize(e){e!==this._bandSize&&(this._passParameters.bandSize=e,this._requestRenderIfEnabled())}_setThresholdColor(e){const t=this._passParameters.thresholdColor;a(e,t)||(o(this._passParameters.thresholdColor,e),this._requestRenderIfEnabled())}_setGradientColor(e){const t=this._passParameters.gradientColor;a(e,t)||(o(this._passParameters.gradientColor,e),this._requestRenderIfEnabled())}_setBandedGradientColor(e){const t=this._passParameters.bandedGradientColor;a(e,t)||(o(this._passParameters.bandedGradientColor,e),this._requestRenderIfEnabled())}_setEnabled(e){e!==this._enabled&&(e?this._start():this._stop())}_requestRenderIfEnabled(){this._enabled&&this._requestRender()}_start(){this._enabled=!0,this._requestRender()}_stop(){this._enabled=!1,this._requestRender()}};e([i()],u.prototype,"opacityFromElevation",null),u=e([r("esri.views.3d.webgl-engine.lib.ShadowCastRenderer")],u);export{u as ShadowCastRenderer,m as shadowCastDisableElevationMax,p as shadowCastDisableElevationMin,c as shadowCastDisabledElevationThreshold};
5
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{disposeMaybe as s}from"../../../../core/maybe.js";import{property as i}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as r}from"../../../../core/accessorSupport/decorators/subclass.js";import{a,c as o}from"../../../../chunks/vec42.js";import{createQuadVAO as n}from"./glUtil3D.js";import{S as h}from"../../../../chunks/ShadowCastVisualize.glsl.js";import{ShadowCastVisualizeTechnique as d}from"../shaders/ShadowCastVisualizeTechnique.js";import{ShadowCastVisualizeTechniqueConfiguration as l}from"../shaders/ShadowCastVisualizeTechniqueConfiguration.js";const _=4e4,p=5e4,m=1/512;let c=class extends t{constructor(e,t,s,i){super({}),this._techniques=e,this._rctx=t,this._data=s,this._requestRender=i,this._passParameters=new h(this._data),this._configuration=new l,this._enabled=!1,this._vao=n(t)}dispose(){this._stop(),this._vao=s(this._vao)}precompile(){this._showVisualization&&this._techniques.precompile(d,this._configuration)}render(e){if(!this._showVisualization)return;const[t,s]=this._data.computedSamples;this._passParameters.sampleScale=[t?1/t:0,s?1/s:0];const i=this._techniques.get(d,this._configuration);this._rctx.bindVAO(this._vao),this._rctx.bindTechnique(i,e,this._passParameters),this._rctx.drawArrays(i.primitiveType,0,this._vao.vertexCount("geometry"))}setOptions(e){void 0!==e.enabled&&this._setEnabled(e.enabled),void 0!==e.thresholdColor&&this._setThresholdColor(e.thresholdColor),void 0!==e.gradientColor&&this._setGradientColor(e.gradientColor),void 0!==e.bandedGradientColor&&this._setBandedGradientColor(e.bandedGradientColor),void 0!==e.threshold&&(this._threshold=e.threshold),void 0!==e.visualization&&(this._visualization=e.visualization),void 0!==e.bandSize&&(this._bandSize=e.bandSize)}get opacityFromElevation(){return this._passParameters.opacityFromElevation}set opacityFromElevation(e){this._passParameters.opacityFromElevation!==e&&(this._passParameters.opacityFromElevation=e,this.notifyChange("opacityFromElevation"))}get _showVisualization(){return this._enabled&&(this._data.computedSamples[0]>0||this._data.computedSamples[1]>0)&&this.opacityFromElevation>m}get _threshold(){return this._passParameters.threshold}set _threshold(e){this._threshold!==e&&(this._passParameters.threshold=e,this._requestRenderIfEnabled())}get _visualization(){return this._configuration.visualization}set _visualization(e){e!==this._visualization&&(this._configuration.visualization=e,this._requestRenderIfEnabled())}get _bandSize(){return this._passParameters.bandSize}set _bandSize(e){e!==this._bandSize&&(this._passParameters.bandSize=e,this._requestRenderIfEnabled())}_setThresholdColor(e){const t=this._passParameters.thresholdColor;a(e,t)||(o(this._passParameters.thresholdColor,e),this._requestRenderIfEnabled())}_setGradientColor(e){const t=this._passParameters.gradientColor;a(e,t)||(o(this._passParameters.gradientColor,e),this._requestRenderIfEnabled())}_setBandedGradientColor(e){const t=this._passParameters.bandedGradientColor;a(e,t)||(o(this._passParameters.bandedGradientColor,e),this._requestRenderIfEnabled())}_setEnabled(e){e!==this._enabled&&(e?this._start():this._stop())}_requestRenderIfEnabled(){this._enabled&&this._requestRender()}_start(){this._enabled=!0,this._requestRender()}_stop(){this._enabled=!1,this._requestRender()}};e([i()],c.prototype,"opacityFromElevation",null),c=e([r("esri.views.3d.webgl-engine.lib.ShadowCastRenderer")],c);export{c as ShadowCastRenderer,p as shadowCastDisableElevationMax,_ as shadowCastDisableElevationMin,m as shadowCastDisabledElevationThreshold};
@@ -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{addMany as r,filterInPlace as t}from"../../../../core/arrayUtils.js";import"../../../../core/has.js";import{someMap as s,everyMap as i}from"../../../../core/MapUtils.js";import n from"../../../../core/PooledArray.js";import{property as o}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import{subclass as d}from"../../../../core/accessorSupport/decorators/subclass.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{a as h}from"../../../../chunks/sphere.js";import{OverlayTarget as c}from"../../terrain/Intersector.js";import{ChangeSet as l,RenderGeometryUpdate as p}from"./ChangeSet.js";import{IntersectorResult as u}from"./IntersectorResult.js";import{RendererBase as m}from"./RendererBase.js";import{noBudget as g}from"../../../support/Scheduler.js";let y=class extends m{constructor(e){super(e),this._pending=new _,this._changes=new l,this._sortedRenderers=new n,this._geometries=new Map,this._hasHighlights=!1,this._hasWater=!1}destroy(){this.destroyed||(this._changes.prune(),this._sortedRenderers.prune(),this._geometries.clear(),this._pending.clear())}get updating(){return!this._pending.empty||this._changes.updates.length>0}get rctx(){return this.rendererContext.rctx}get _localOriginFactory(){return this.rendererContext.localOriginFactory}get hasHighlights(){return this._hasHighlights}hasHighlight(e){return s(this.renderers,r=>r.hasHighlight(e))}get hasWater(){return this._hasWater}get hasOccluders(){return this.renderers&&s(this.renderers,e=>e.hasOnlyOccluders)}get hasOnlyOccluders(){return i(this.renderers,e=>e.hasOnlyOccluders)}get isEmpty(){return!this.updating&&0===this.renderers.size&&0===this._geometries.size}get sortedRenderers(){return this._sortedRenderers}commitChanges(){return!!this.updating&&(this._processAddsRemoves(),this.commit(this._changes,g,this.rendererContext.pluginContext)&&(this._updateSortedMaterialRenderers(),this._hasHighlights=s(this.renderers,e=>{const r=e.produces.get(17);return!!r&&r(8)}),this._hasWater=s(this.renderers,e=>{const r=e.produces.get(18);return!!r&&r(3)})),this.notifyChange("updating"),!0)}rendererAdded(){this._sortedRenderers.clear()}rendererRemoved(){this._sortedRenderers.clear()}addGeometries(e,r){if(0===e.length)return;const t=this._validateRenderGeometries(e);for(const i of t)this._geometries.set(i.id,i);const s=this._pending.empty;for(const i of t)this._pending.adds.add(i);s&&this.notifyChange("updating"),1===r&&this._notifyGraphicGeometryChanged(e)}removeGeometries(e,r){if(this.destroyed)return;const t=this._pending.empty,s=this._pending.adds;for(const i of e)s.has(i)?(this._pending.removed.add(i),s.delete(i)):this._pending.removed.has(i)||this._pending.removes.add(i),this._geometries.delete(i.id);t&&!this._pending.empty&&this.notifyChange("updating"),1===r&&this._notifyGraphicGeometryChanged(e)}modifyGeometries(e,r){const t=0===this._changes.updates.length;for(const s of e){const e=new p;this._changes.updates.push(e),e.renderGeometry=this._ensureValidRenderGeometry(s),e.updateType=r}switch(t&&this._changes.updates.length>0&&this.notifyChange("updating"),r){case 4:case 2:return this._notifyGraphicGeometryChanged(e);case 1:return this._notifyGraphicVisibilityChanged(e)}}updateAnimation(e){let r=!1;return this._sortedRenderers.forAll(t=>r=!!t.updateAnimation&&t.updateAnimation(e)||r),r}precompile(e){return this._sortedRenderers.reduce((r,t)=>t.precompile(e)||r,!1)}render(e){this._sortedRenderers.forAll(r=>{const t=r.acquireTechniques(e);t&&r.render(e,t)})}intersect(e,r,t,s,i){for(const n of this._geometries.values()){if(!s(n))continue;this._intersectRenderGeometry(n,t,r,0,e,i);const o=this.rendererContext.longitudeCyclical;o&&(n.boundingSphere[0]-n.boundingSphere[3]<o.min&&this._intersectRenderGeometry(n,t,r,o.range,e,i),n.boundingSphere[0]+n.boundingSphere[3]>o.max&&this._intersectRenderGeometry(n,t,r,-o.range,e,i)),i++}return i}_updateSortedMaterialRenderers(){if(!(this._sortedRenderers.length>0)){for(const e of this.renderers.values())this._sortedRenderers.push(e);this._sortedRenderers.sort((e,r)=>r.material?.renderPriority===e.material?.renderPriority?e.drapedPriority-r.drapedPriority:(r.material?.renderPriority||0)-(e.material?.renderPriority||0))}}_processAddsRemoves(){this._changes.adds.length=0,this._changes.removes.length=0,r(this._changes.adds,Array.from(this._pending.adds)),r(this._changes.removes,Array.from(this._pending.removes)),t(this._changes.updates,({renderGeometry:e})=>!this._pending.has(e)),this._pending.clear()}_intersectRenderGeometry(e,r,t,s,i,n){if(!e.visible||!e.material.visible||!e.material.intersectDraped)return;let o=0;s+=e.transformation[12],o=e.transformation[13],R[0]=t[0]-s,R[1]=t[1]-o,e.screenToWorldRatio=this.rendererContext.screenToWorldRatio,e.material.intersectDraped(e,i,R,(t,s,o)=>{f(r,o,n,e.material.renderPriority,i,e.layerViewUid,e.graphicUid)},r)}_notifyGraphicGeometryChanged(e){if(null==this.drapeSource.notifyGraphicGeometryChanged)return;let r;for(const{graphicUid:t}of e)null!=t&&t!==r&&(this.drapeSource.notifyGraphicGeometryChanged(t),r=t)}_notifyGraphicVisibilityChanged(e){if(null==this.drapeSource.notifyGraphicVisibilityChanged)return;let r;for(const{graphicUid:t}of e)null!=t&&t!==r&&(this.drapeSource.notifyGraphicVisibilityChanged(t),r=t)}_validateRenderGeometries(e){for(const r of e)this._ensureValidRenderGeometry(r);return e}_ensureValidRenderGeometry(e){return null==e.localOrigin&&(e.localOrigin=this._localOriginFactory.getOrigin(h(e.boundingSphere))),e}get test(){}};e([o({constructOnly:!0})],y.prototype,"drapeSource",void 0),e([o({constructOnly:!0})],y.prototype,"rendererContext",void 0),e([o()],y.prototype,"updating",null),e([o()],y.prototype,"rctx",null),e([o()],y.prototype,"_localOriginFactory",null),e([o({readOnly:!0})],y.prototype,"isEmpty",null),e([o()],y.prototype,"_geometries",void 0),y=e([d("esri.views.3d.webgl-engine.lib.SortedRenderGeometryRenderer")],y);class _{constructor(){this.adds=new Set,this.removes=new Set,this.removed=new Set}get empty(){return 0===this.adds.size&&0===this.removes.size&&0===this.removed.size}has(e){return this.adds.has(e)||this.removes.has(e)||this.removed.has(e)}clear(){this.adds.clear(),this.removes.clear(),this.removed.clear()}}function f(e,r,t,s,i,n,o){const d=new c(n,o,r),a=r=>{r.set(3,d,e.distance,e.normal,e.transformation,t,s)};if((null==i.results.min.drapedLayerOrder||t>=i.results.min.drapedLayerOrder)&&(null==i.results.min.distance||i.results.ground.distance<=i.results.min.distance)&&a(i.results.min),0!==i.options.store&&(null==i.results.max.drapedLayerOrder||t<i.results.max.drapedLayerOrder)&&(null==i.results.max.distance||i.results.ground.distance>i.results.max.distance)&&a(i.results.max),2===i.options.store){const e=new u(i.ray);a(e),i.results.all.push(e)}}const R=a();export{y as SortedRenderGeometryRenderer};
5
+ import{__decorate as e}from"tslib";import{addMany as r,filterInPlace as t}from"../../../../core/arrayUtils.js";import"../../../../core/has.js";import{someMap as s,everyMap as i}from"../../../../core/MapUtils.js";import n from"../../../../core/PooledArray.js";import{property as o}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import{subclass as d}from"../../../../core/accessorSupport/decorators/subclass.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{a as h}from"../../../../chunks/sphere.js";import{OverlayTarget as c}from"../../terrain/Intersector.js";import{ChangeSet as l,RenderGeometryUpdate as p}from"./ChangeSet.js";import{IntersectorResult as u}from"./IntersectorResult.js";import{RendererBase as g}from"./RendererBase.js";import{noBudget as m}from"../../../support/Scheduler.js";let y=class extends g{constructor(e){super(e),this._pending=new _,this._changes=new l,this._sortedRenderers=new n,this._geometries=new Map,this._hasHighlights=!1,this._hasWater=!1}destroy(){this.destroyed||(this._changes.prune(),this._sortedRenderers.prune(),this._geometries.clear(),this._pending.clear())}get updating(){return!this._pending.empty||this._changes.updates.length>0}get rctx(){return this.rendererContext.rctx}get _localOriginFactory(){return this.rendererContext.localOriginFactory}get hasHighlights(){return this._hasHighlights}hasHighlight(e){return s(this.renderers,r=>r.hasHighlight(e))}get hasWater(){return this._hasWater}get hasOccluders(){return this.renderers&&s(this.renderers,e=>e.hasOnlyOccluders)}get hasOnlyOccluders(){return i(this.renderers,e=>e.hasOnlyOccluders)}get isEmpty(){return!this.updating&&0===this.renderers.size&&0===this._geometries.size}get sortedRenderers(){return this._sortedRenderers}commitChanges(){return!!this.updating&&(this._processAddsRemoves(),this.commit(this._changes,m,this.rendererContext.pluginContext)&&(this._updateSortedMaterialRenderers(),this._hasHighlights=s(this.renderers,e=>{const r=e.produces.get(17);return!!r&&r(8)}),this._hasWater=s(this.renderers,e=>{const r=e.produces.get(18);return!!r&&r(3)})),this.notifyChange("updating"),!0)}rendererAdded(){this._sortedRenderers.clear()}rendererRemoved(){this._sortedRenderers.clear()}addGeometries(e,r){if(0===e.length)return;const t=this._validateRenderGeometries(e);for(const i of t)this._geometries.set(i.id,i);const s=this._pending.empty;for(const i of t)this._pending.adds.add(i);switch(s&&this.notifyChange("updating"),r){case 0:this._notifyGraphicVisibilityChanged(e);break;case 1:this._notifyGraphicGeometryChanged(e)}}removeGeometries(e,r){if(this.destroyed)return;const t=this._pending.empty,s=this._pending.adds;for(const i of e)s.has(i)?(this._pending.removed.add(i),s.delete(i)):this._pending.removed.has(i)||this._pending.removes.add(i),this._geometries.delete(i.id);t&&!this._pending.empty&&this.notifyChange("updating"),1===r&&this._notifyGraphicGeometryChanged(e)}modifyGeometries(e,r){const t=0===this._changes.updates.length;for(const s of e){const e=new p;this._changes.updates.push(e),e.renderGeometry=this._ensureValidRenderGeometry(s),e.updateType=r}switch(t&&this._changes.updates.length>0&&this.notifyChange("updating"),r){case 4:case 2:return this._notifyGraphicGeometryChanged(e);case 1:return this._notifyGraphicVisibilityChanged(e)}}updateAnimation(e){let r=!1;return this._sortedRenderers.forAll(t=>r=!!t.updateAnimation&&t.updateAnimation(e)||r),r}precompile(e){return this._sortedRenderers.reduce((r,t)=>t.precompile(e)||r,!1)}render(e){this._sortedRenderers.forAll(r=>{const t=r.acquireTechniques(e);t&&r.render(e,t)})}intersect(e,r,t,s,i){for(const n of this._geometries.values()){if(!s(n))continue;this._intersectRenderGeometry(n,t,r,0,e,i);const o=this.rendererContext.longitudeCyclical;o&&(n.boundingSphere[0]-n.boundingSphere[3]<o.min&&this._intersectRenderGeometry(n,t,r,o.range,e,i),n.boundingSphere[0]+n.boundingSphere[3]>o.max&&this._intersectRenderGeometry(n,t,r,-o.range,e,i)),i++}return i}_updateSortedMaterialRenderers(){if(!(this._sortedRenderers.length>0)){for(const e of this.renderers.values())this._sortedRenderers.push(e);this._sortedRenderers.sort((e,r)=>r.material?.renderPriority===e.material?.renderPriority?e.drapedPriority-r.drapedPriority:(r.material?.renderPriority||0)-(e.material?.renderPriority||0))}}_processAddsRemoves(){this._changes.adds.length=0,this._changes.removes.length=0,r(this._changes.adds,Array.from(this._pending.adds)),r(this._changes.removes,Array.from(this._pending.removes)),t(this._changes.updates,({renderGeometry:e})=>!this._pending.has(e)),this._pending.clear()}_intersectRenderGeometry(e,r,t,s,i,n){if(!e.visible||!e.material.visible||!e.material.intersectDraped)return;let o=0;s+=e.transformation[12],o=e.transformation[13],G[0]=t[0]-s,G[1]=t[1]-o,e.screenToWorldRatio=this.rendererContext.screenToWorldRatio,e.material.intersectDraped(e,i,G,(t,s,o)=>{f(r,o,n,e.material.renderPriority,i,e.layerViewUid,e.graphicUid)},r)}_notifyGraphicGeometryChanged(e){if(null==this.drapeSource.notifyGraphicGeometryChanged)return;let r;for(const{graphicUid:t}of e)null!=t&&t!==r&&(this.drapeSource.notifyGraphicGeometryChanged(t),r=t)}_notifyGraphicVisibilityChanged(e){if(null==this.drapeSource.notifyGraphicVisibilityChanged)return;let r;for(const{graphicUid:t}of e)null!=t&&t!==r&&(this.drapeSource.notifyGraphicVisibilityChanged(t),r=t)}_validateRenderGeometries(e){for(const r of e)this._ensureValidRenderGeometry(r);return e}_ensureValidRenderGeometry(e){return null==e.localOrigin&&(e.localOrigin=this._localOriginFactory.getOrigin(h(e.boundingSphere))),e}get test(){}};e([o({constructOnly:!0})],y.prototype,"drapeSource",void 0),e([o({constructOnly:!0})],y.prototype,"rendererContext",void 0),e([o()],y.prototype,"updating",null),e([o()],y.prototype,"rctx",null),e([o()],y.prototype,"_localOriginFactory",null),e([o({readOnly:!0})],y.prototype,"isEmpty",null),e([o()],y.prototype,"_geometries",void 0),y=e([d("esri.views.3d.webgl-engine.lib.SortedRenderGeometryRenderer")],y);class _{constructor(){this.adds=new Set,this.removes=new Set,this.removed=new Set}get empty(){return 0===this.adds.size&&0===this.removes.size&&0===this.removed.size}has(e){return this.adds.has(e)||this.removes.has(e)||this.removed.has(e)}clear(){this.adds.clear(),this.removes.clear(),this.removed.clear()}}function f(e,r,t,s,i,n,o){const d=new c(n,o,r),a=r=>{r.set(3,d,e.distance,e.normal,e.transformation,t,s)};if((null==i.results.min.drapedLayerOrder||t>=i.results.min.drapedLayerOrder)&&(null==i.results.min.distance||i.results.ground.distance<=i.results.min.distance)&&a(i.results.min),0!==i.options.store&&(null==i.results.max.drapedLayerOrder||t<i.results.max.drapedLayerOrder)&&(null==i.results.max.distance||i.results.ground.distance>i.results.max.distance)&&a(i.results.max),2===i.options.store){const e=new u(i.ray);a(e),i.results.all.push(e)}}const G=a();export{y as SortedRenderGeometryRenderer};
@@ -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{a as e}from"../../../../chunks/TextureOnly.glsl.js";import{ReloadableShaderModule as r}from"../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as o}from"../core/shaderTechnique/ShaderTechnique.js";import{makePipelineState as i,defaultColorWrite as l,unpremultipliedAlphaToPremultipliedAlpha as s}from"../../../webgl/renderState.js";class t extends o{constructor(o,i){super(o,i,new r(e,()=>import("../core/shaderLibrary/util/TextureOnly.glsl.js")))}initializePipeline(e){return e.hasAlpha?i({blending:s,colorWrite:l}):i({colorWrite:l})}}export{t as TextureTechnique};
5
+ import{a as e}from"../../../../chunks/TextureOnly.glsl.js";import{ReloadableShaderModule as r}from"../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as o}from"../core/shaderTechnique/ShaderTechnique.js";import{Pos2Locations as t}from"./DefaultVertexBufferLayouts.js";import{makePipelineState as i,defaultColorWrite as s,unpremultipliedAlphaToPremultipliedAlpha as l}from"../../../webgl/renderState.js";class a extends o{constructor(o,i){super(o,i,new r(e,()=>import("../core/shaderLibrary/util/TextureOnly.glsl.js")),t)}initializePipeline(e){return e.hasAlpha?i({blending:l,colorWrite:s}):i({colorWrite:s})}}export{a as TextureTechnique};
@@ -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{removeUnordered as e}from"../../../../core/arrayUtils.js";import{toConst as t}from"../../../../core/compilerUtils.js";import{EventEmitter as s}from"../../../../core/Evented.js";import i from"../../../../core/Handles.js";import"../../../../core/has.js";import{destroyMaybe as o}from"../../../../core/maybe.js";import{generateUID as r}from"../../../../core/uid.js";import{DirtyEventNames as h}from"./DirtyEvents.js";import c from"./Octree.js";class d{constructor(e,t,o=""){this.stage=e,this.apiLayerViewUid=o,this.id=r(),this.events=new s,this.visible=!0,this.sliceable=!1,this._objectsAdded=new Array,this._handles=new i,this._objects=new Map,this._pickable=!0,this.visible=t?.visible??!0,this._pickable=t?.pickable??!0,this.updatePolicy=t?.updatePolicy??0,e.addLayer(this);for(const s of h)this._handles.add(this.events.on(s,t=>e.handleEvent(s,t)))}destroy(){this._handles.size&&(this._handles.destroy(),this.stage.removeLayer(this),this.invalidateSpatialQueryAccelerator())}get objects(){return this._objects}getObject(e){return t(this._objects.get(e))}set pickable(e){this._pickable=e}get pickable(){return this._pickable&&this.visible}add(e){this._objects.set(e.id,e),e.layer=this,this.events.emit("layerObjectAdded",e),null!=this._octree&&this._objectsAdded.push(e)}remove(t){this._objects.delete(t.id)&&(this.events.emit("layerObjectRemoved",t),t.layer=null,null!=this._octree&&(e(this._objectsAdded,t)||this._octree.remove([t])))}addMany(e){for(const t of e)this._objects.set(t.id,t),t.layer=this;this.events.emit("layerObjectsAdded",e),null!=this._octree&&this._objectsAdded.push(...e)}removeMany(t){const s=new Array;for(const e of t)this._objects.delete(e.id)&&s.push(e);if(0!==s.length&&(this.events.emit("layerObjectsRemoved",s),s.forEach(e=>e.layer=null),null!=this._octree)){for(let t=0;t<s.length;)e(this._objectsAdded,s[t])?(s[t]=s[s.length-1],s.length-=1):++t;this._octree.remove(s)}}sync(){1!==this.updatePolicy&&this.stage.syncLayer(this.id)}notifyObjectBBChanged(e,t){null==this._octree||this._objectsAdded.includes(e)||this._octree.update(e,t)}getSpatialQueryAccelerator(){return null==this._octree&&this._objects.size>50?(this._octree=new c(e=>e.boundingVolumeWorldSpace.bounds),this._octree.add(this._objects.values())):null!=this._octree&&this._objectsAdded.length>0&&(this._octree.add(this._objectsAdded),this._objectsAdded.length=0),this._octree}invalidateSpatialQueryAccelerator(){this._octree=o(this._octree),this._objectsAdded.length=0}get test(){}}export{d as WebGLLayer};
5
+ import{removeUnordered as e}from"../../../../core/arrayUtils.js";import{toConst as t}from"../../../../core/compilerUtils.js";import{EventEmitter as s}from"../../../../core/Evented.js";import i from"../../../../core/Handles.js";import"../../../../core/has.js";import{destroyMaybe as o}from"../../../../core/maybe.js";import{generateUID as r}from"../../../../core/uid.js";import{DirtyEventNames as h}from"./DirtyEvents.js";import{Octree as c}from"./Octree.js";class d{constructor(e,t,o=""){this.stage=e,this.apiLayerViewUid=o,this.id=r(),this.events=new s,this.visible=!0,this.sliceable=!1,this._objectsAdded=new Array,this._handles=new i,this._objects=new Map,this._pickable=!0,this.visible=t?.visible??!0,this._pickable=t?.pickable??!0,this.updatePolicy=t?.updatePolicy??0,e.addLayer(this);for(const s of h)this._handles.add(this.events.on(s,t=>e.handleEvent(s,t)))}destroy(){this._handles.size&&(this._handles.destroy(),this.stage.removeLayer(this),this.invalidateSpatialQueryAccelerator())}get objects(){return this._objects}getObject(e){return t(this._objects.get(e))}set pickable(e){this._pickable=e}get pickable(){return this._pickable&&this.visible}add(e){this._objects.set(e.id,e),e.layer=this,this.events.emit("layerObjectAdded",e),null!=this._octree&&this._objectsAdded.push(e)}remove(t){this._objects.delete(t.id)&&(this.events.emit("layerObjectRemoved",t),t.layer=null,null!=this._octree&&(e(this._objectsAdded,t)||this._octree.remove([t])))}addMany(e){for(const t of e)this._objects.set(t.id,t),t.layer=this;this.events.emit("layerObjectsAdded",e),null!=this._octree&&this._objectsAdded.push(...e)}removeMany(t){const s=new Array;for(const e of t)this._objects.delete(e.id)&&s.push(e);if(0!==s.length&&(this.events.emit("layerObjectsRemoved",s),s.forEach(e=>e.layer=null),null!=this._octree)){for(let t=0;t<s.length;)e(this._objectsAdded,s[t])?(s[t]=s[s.length-1],s.length-=1):++t;this._octree.remove(s)}}sync(){1!==this.updatePolicy&&this.stage.syncLayer(this.id)}notifyObjectBBChanged(e,t){null==this._octree||this._objectsAdded.includes(e)||this._octree.update(e,t)}getSpatialQueryAccelerator(){return null==this._octree&&this._objects.size>50?(this._octree=new c(e=>e.boundingVolumeWorldSpace.bounds),this._octree.add(this._objects.values())):null!=this._octree&&this._objectsAdded.length>0&&(this._octree.add(this._objectsAdded),this._objectsAdded.length=0),this._octree}invalidateSpatialQueryAccelerator(){this._octree=o(this._octree),this._objectsAdded.length=0}get test(){}}export{d as WebGLLayer};
@@ -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{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{vertexAttributeLocations as s}from"./bufferLayouts.js";import{E as o}from"../../../../../chunks/EdgeShader.glsl.js";import{makePipelineState as t,defaultColorWrite as d,separateBlendingParams as i}from"../../../../webgl/renderState.js";class n extends r{constructor(r,t){super(r,t,new e(o,()=>import("../../shaders/sources/edgeRenderer/EdgeShader.glsl.js")),s)}initializePipeline(){return t({blending:i(1,1,0,1,32774,32776),depthTest:{func:515},colorWrite:d})}}export{n as EdgeShaderTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{SilhouetteEdgeLocations as s,RegularEdgeLocations as o}from"./bufferLayouts.js";import{E as t}from"../../../../../chunks/EdgeShader.glsl.js";import{makePipelineState as i,defaultColorWrite as d,separateBlendingParams as n}from"../../../../webgl/renderState.js";class a extends r{constructor(r,i){super(r,i,new e(t,()=>import("../../shaders/sources/edgeRenderer/EdgeShader.glsl.js")),i.silhouette?s:o)}initializePipeline(){return i({blending:n(1,1,0,1,32774,32776),depthTest:{func:515},colorWrite:d})}}export{a as EdgeShaderTechnique};
@@ -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{equals as r,binaryIndexOf as s}from"../../../../../core/arrayUtils.js";import"../../../../../core/has.js";import n from"../../../../../core/Logger.js";import{clamp as i}from"../../../../../core/mathUtils.js";import{disposeMaybe as o,destroyMaybe as a}from"../../../../../core/maybe.js";import{isAbortError as c,onAbortOrThrow as l}from"../../../../../core/promiseUtils.js";import{property as d}from"../../../../../core/accessorSupport/decorators/property.js";import{subclass as h}from"../../../../../core/accessorSupport/decorators/subclass.js";import{fromMat4 as u,transpose as m,invert as g}from"../../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as p}from"../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{create as f}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{i as _,c as b,a as y,e as j}from"../../../../../chunks/vec32.js";import{create as w,clone as O}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as E}from"../../../../../core/support/UpdatingHandles.js";import{a as v,g as x}from"../../../../../chunks/sphere.js";import{c as M}from"../../../../../chunks/vec33.js";import{encodeElevationOffset as R}from"../../collections/Component/Material/shader/ComponentData.glsl.js";import{TwoVectorPosition as T}from"../../core/util/TwoVectorPosition.js";import{Attribute as C}from"../Attribute.js";import{GridLocalOriginFactory as D}from"../GridLocalOriginFactory.js";import{applyToModelMatrix as P}from"../localOriginHelper.js";import{LocalOriginManager as A}from"../LocalOriginManager.js";import{Object3D as k}from"../Object3D.js";import{VertexArrayObject as B}from"../VertexArrayObject.js";import{VertexLayout as L,EdgeInputBufferLayout as U,vertexAttributeLocations as q,glVertexLayout as V}from"./bufferLayouts.js";import{RegularEdgeBufferWriter as H,SilhouetteEdgeBufferWriter as S}from"./edgeBufferWriters.js";import{EdgeRenderer as I,lineWidthFractionFactor as N,extensionLengthOffset as z}from"./EdgeRenderer.js";import{EdgePassParameters as W}from"./EdgeShaderParameters.js";import{EdgeWorkerHandle as F}from"./EdgeWorkerHandle.js";import{generateStrokesTexture as G}from"./strokes.js";import{determineRendererType as K,determineEdgeTransparency as J,determineObjectTransparency as Q,fillComponentBufferIndices as X}from"./util.js";import{BufferManager as Y}from"../TextureBackedBuffer/BufferManager.js";import{BufferObject as Z}from"../../../../webgl/BufferObject.js";const $=128;let ee=class extends t{constructor(e){super(e),this._updatingHandles=new E,this._objectEntries=new Map,this._pendingDeletions=new Map,this._renderers=new Map,this._gpuMemoryUsage=0,this._workerAbort=new AbortController,this._tmpModelPosition=w(),this._localOrigins=new A(new D(e.renderSR));const t=L.createBuffer(4);for(let r=0;r<4;r++)t.sideness.set(r,0,0===r||3===r?0:1),t.sideness.set(r,1,0===r||1===r?0:1);this._verticesBufferObject=Z.createVertex(e.rctx,35044,t.buffer)}initialize(){this._worker=new F(this.schedule),this._componentColorManager=new Y(this.rctx,3)}destroy(){this.destroyed||(this._objectEntries.forEach(e=>this._discardObjectEntry(e)),this._objectEntries.clear(),this._pendingDeletions.forEach(e=>this._discardObjectEntry(e)),this._pendingDeletions.clear(),this._strokesTexture=o(this._strokesTexture),this._componentColorManager=a(this._componentColorManager),this._workerAbort.abort(),this._worker.destroy(),this._verticesBufferObject.dispose(),this._renderers.clear(),this._updatingHandles.destroy(),this._set("schedule",be))}get updating(){return this._updatingHandles.updating}get usedMemory(){return this._gpuMemoryUsage}shouldRender(){return this._renderers.size>0}async addComponentObject(e,t,r,s,n,i,o){if(this.hasObject(e))return this._getObjectMemoryUsage(e);let a;const c=new se(null,new Promise(e=>a=e),e.obb.center,e.obb.radius);this._objectEntries.set(e,c);const l=await this._updatingHandles.addPromise(this._addComponentGeometry(e.transform,c,t,r,s,n,i,o));return this.setNeedsRender(),a(),l}async addOrUpdateObject3D(e,t,r,s){if(this.destroyed)return void n.getLogger(this).warn("Attempt to add an object to a destroyed instance");const i=new AbortController;let o;const a=e.boundingVolumeWorldSpace.bounds,l=new se(i,new Promise(e=>o=e),v(a),x(a)),d=this._objectEntries.get(e);d&&(this._pendingDeletions.has(e)?this._discardObjectEntry(d):this._pendingDeletions.set(e,d)),this._objectEntries.set(e,l);try{const n=new Array;if(e.geometries.length>1&&re(e))n.push(this._addObjectMergedGeometries(e,l,t,r,s));else for(const i of e.geometries)i.material.supportsEdges&&n.push(this._addGeometry(e,l,i,t,r,s));await this._updatingHandles.addPromise(Promise.all(n)),this._removePendingDeletion(e)}catch(h){c(h)?this._discardObjectEntry(l):this._removePendingDeletion(e)}finally{this.setNeedsRender(),o()}}removeObject(e){const t=this._objectEntries.get(e);this._objectEntries.delete(e),this._discardObjectEntry(t),this._removePendingDeletion(e)}_removePendingDeletion(e){const t=this._pendingDeletions.get(e);this._pendingDeletions.delete(e),this._discardObjectEntry(t)}async _getObjectEntry(e){const t=this._objectEntries.get(e);if(!t)throw new Error("no object");return await t.loaded,null==t.loaded?null:t}fastUpdateObject3DEdgesTransform(e){if(this.destroyed)return!1;const t=this._objectEntries.get(e);if(!t)return!1;const{geometries:r}=e,{renderables:s}=t;if(0===r.length||0===s.length)return!0;if(s.length>1)return!1;const[n]=s,i=n.transform;if(!(i instanceof oe))return!1;const[o]=r;if(o.localOrigin!==i.origin.origin)return!1;const a=f(),c=this._computeModelTransformWithLocalOrigin(e,o,a);return n.transform=new oe(a,c),this.setNeedsRender(),!0}_discardObjectEntry(e){e&&(e.abort?.abort(),e.renderables.length&&(e.renderables.forEach(e=>this._removeRenderable(e)),this.setNeedsRender()),e.loaded=null)}hasObject(e){return this._objectEntries.has(e)}async updateAllComponentOpacities(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));if(null==r)return;const s=Array.isArray(t)?e=>t[e]:()=>t;r.renderables.forEach(e=>{const t=e.components.meta.length;for(let r=0;r<t;r++){const t=s(r),n=e.components.meta[r],i=n.index;n.material.opacity=t,e.components.buffer.textureBuffer.setDataElement(i,1,3,255*t)}this._updateTransparency(e)}),this.setNeedsRender()}async _getObjectMemoryUsage(e){const t=await this._getObjectEntry(e);return t?t.renderables.reduce((e,t)=>e+t.statistics.gpuMemoryUsage,0):0}async updateAllComponentMaterials(e,t,r,s){const n=e instanceof k,i=K(t),o=I.getKey(i,r,n),a=await this._updatingHandles.addPromise(this._getObjectEntry(e));null!=a&&(a.renderables.forEach(e=>{if(o!==e.rendererKey){const t=this._renderers.get(e.rendererKey),s=this._acquireRenderer(i,r,n);t.removeRenderable(e),--t.refCount,e.rendererKey=o,s.addRenderable(e)}if(Array.isArray(t))for(let r=0;r<t.length;r++)e.components.meta[r].material=t[r];else e.components.meta[0].material=t;s&&le(e.components),this._updateTransparency(e)}),this.setNeedsRender())}async updateAllVerticalOffsets(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));null!=r&&this._updateAllVerticalOffsets(r,t)}_updateAllVerticalOffsets(e,t){e.renderables.forEach(e=>{const r=e.components.meta;for(let s=0;s<r.length;s++)e.components.meta[s].verticalOffset=t?.[s]??0;le(e.components)}),this.setNeedsRender()}async updateObjectVisibility(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));r&&(r.renderables.forEach(e=>e.visible=t),this.setNeedsRender())}render(e,t){if(null==this._componentColorManager)return;this._localOrigins.updateViewMatrices(e.camera.viewMatrix);const r=e.camera.viewInverseTransposeMatrix,s=w(),n=new T;let i=0,o=0;if(this._renderers.forEach(r=>{0!==r.refCount?(++this.techniques.precompiling,r.forEachRenderable(t=>{t.visible&&(i+=t.statistics.averageEdgeLength,o++,t.regular&&r.acquireTechnique(e,!1),t.silhouette&&r.acquireTechnique(e,!0))},t),--this.techniques.precompiling):this._renderers.delete(r.key)}),this._componentColorManager.garbageCollect(),this._componentColorManager.updateTextures(),0===o)return;const a=new W(40*i/o,t);_(s,r[3],r[7],r[11]),n.set(s),b(a.transformWorldFromViewTH,n.high),b(a.transformWorldFromViewTL,n.low),u(a.transformViewFromCameraRelativeRS,e.camera.viewMatrix),m(_e,a.transformViewFromCameraRelativeRS),g(a.transformNormalViewFromGlobal,_e),a.transformProjFromView=e.camera.projectionMatrix,this._updateObjectCameraDistances(e),this._renderers.forEach(t=>{de(t,e,a),he(t,e,a)})}_updateTransparency(e){const t=J(e.components.meta),r=Q(e.components.meta);t===e.edgeTransparency&&r===e.objectTransparency||(e.edgeTransparency=t,e.objectTransparency=r,this._renderers.get(e.rendererKey).setRenderablesDirty())}_computeModelTransformWithLocalOrigin(e,t,r){e.getCombinedShaderTransformation(t,r);const s=null!=t.localOrigin?this._localOrigins.register(t.localOrigin):this._localOrigins.acquire(_(this._tmpModelPosition,r[12],r[13],r[14]));return t.localOrigin=s.origin,P(s.origin.vec3,r),s}_createComponentBuffers(e){if(null==this._componentColorManager)return null;const t=new Array,r=this._componentColorManager.getBuffer(e.length);for(let n=0;n<e.length;n++){const s=e[n],i=r.acquireIndex();t.push({index:i,verticalOffset:0,material:s})}const s=new ne(r,t);return le(s),s}_extractEdges(e,t,r,s,n,i,o=i.length){return o<$&&(n=!0),this._worker.process({data:r,indices:i,indicesLength:o,writerSettings:t,skipDeduplicate:s},e,n)}_createRenderable(e,t,r,s,n){const i=t=>new ie(new B(this.rctx,q,new Map([["vertices",V],["instances",0===t?H.glLayout:S.glLayout]]),new Map([["vertices",this._verticesBufferObject],["instances",Z.createVertex(this.rctx,35044,0===t?e.regular.instancesData.buffer:e.silhouette.instancesData.buffer)]])),0===t?e.regular.lodInfo:e.silhouette.lodInfo),o=e.regular.lodInfo.lengths.length>0?i(0):null,a=e.silhouette.lodInfo.lengths.length>0?i(1):null,c=(o?.vao.cachedMemory??0)+(a?.vao.cachedMemory??0);return new ae(o,a,{gpuMemoryUsage:c,externalMemoryUsage:n,averageEdgeLength:e.averageEdgeLength},r,J(t.meta),Q(t.meta),t,s)}async _addGeometry(e,t,r,s,n,i){if(r.edgeIndicesLength<=0)return;const o=r.attributes.get("position"),a=f(),c=this._computeModelTransformWithLocalOrigin(e,r,a),l=new fe(o,a,c);return this._addPositionData(t,l,r.edgeIndicesLength,s,n,i)}async _addPositionData(e,t,r,s,n,i=!1){if(null==e.loaded)return;const o=this._createComponentBuffers([s]);if(null==o)return;const a=this._acquireRenderer(s.type,n,!0),{modelTransform:c,origin:l}=t,d=t.position.indices,h=t.position,u=h.data.length/h.size,m=U.createBuffer(u);for(let f=0;f<u;f++)m.position.set(f,0,h.data[f*h.size]),m.position.set(f,1,h.data[f*h.size+1]),m.position.set(f,2,h.data[f*h.size+2]);X(o.meta,[0,m.componentIndex.count],m.componentIndex);const g=await this._updatingHandles.addPromise(this._extractEdges(e.abort?.signal||this._workerAbort.signal,a.writerSettings,m,!1,i,d,r));if(null==e.loaded)return;const p=this._createRenderable(g,o,new oe(c,l),a.key,!1);e.renderables.push(p),a.addRenderable(p),this._gpuMemoryUsage+=p.statistics.gpuMemoryUsage}async _addComponentGeometry(e,t,r,s,n,i,o,a){if(null==t.loaded)return 0;const c=this._createComponentBuffers(i);if(null==c)return 0;const l=K(i),d=this._acquireRenderer(l,o||!1,!1),h=U.createBuffer(r.length/3);M(h.position.typedBuffer,r,h.position.typedBufferStride,3),X(c.meta,n,h.componentIndex,s);const u=!0,m=d.writerSettings,g=await this._updatingHandles.addPromise(this._extractEdges(this._workerAbort.signal,m,h,u,!1,s));if(null==t.loaded)return 0;const p=this._createRenderable(g,c,e,d.key,!0);return t.renderables.push(p),d.addRenderable(p),this._updateAllVerticalOffsets(t,a),p.statistics.gpuMemoryUsage}async _addObjectMergedGeometries(e,t,r,s,n){const i=new Map;let o=0,a=0,c=null;const l=e.geometries.filter(e=>{if(e.edgeIndicesLength<=0||!e.material.supportsEdges)return!1;!c&&e.localOrigin&&(c=e);const t=e.attributes.get("position");return a+=t.data.length/t.size,o+=e.edgeIndicesLength,!0});if(0===l.length)return;const d=a>=65536?Uint32Array:Uint16Array,h=o?new d(o):null,u=[];let m=0;l.forEach(e=>{const t=e.attributes.get("position"),r=t.indices;let s=i.get(t.data);if(null==s){s=u.length/3;for(let e=0;e<t.data.length;e+=t.size)u.push(t.data[e]),u.push(t.data[e+1]),u.push(t.data[e+2]);i.set(t.data,s)}for(let n=0;n<e.edgeIndicesLength;n++)h[m++]=s+r[n]});const g=c||e.geometries[0],p=f(),_=this._computeModelTransformWithLocalOrigin(e,g,p);for(let f=0;f<e.geometries.length;f++)e.geometries[f].localOrigin=_.origin;const b=new fe(new C(u,h,3),p,_);await this._updatingHandles.addPromise(this._addPositionData(t,b,h.length,r,s,n))}_acquireRenderer(e,t,r){const s=I.getKey(e,t,r);let n=this._renderers.get(s);return null==this._strokesTexture&&(this._strokesTexture=G(this.rctx)),n||(n=new I(this.rctx,this.techniques,{type:e,hasSlicePlane:t,strokesTexture:this._strokesTexture,legacy:r,spherical:1===this.viewingMode}),this._renderers.set(s,n)),++n.refCount,n}_removeRenderable(e){te(e.regular),te(e.silhouette);const t=this._renderers.get(e.rendererKey);if(t){t.removeRenderable(e),--t.refCount,this._localOrigins.release(e.transform.origin),this._gpuMemoryUsage-=e.statistics.externalMemoryUsage?0:e.statistics.gpuMemoryUsage;for(const t of e.components.meta)e.components.buffer.releaseIndex(t.index)}}_updateObjectCameraDistances(e){const t=e.camera.eye,r=e.camera.viewForward,s=w(),n=e=>{y(s,e.center,t);const n=j(s,r),i=e.radius,o=n<-i?1/0:n<i?0:n-i;e.renderables.forEach(e=>e.distanceToCamera=o)};this._objectEntries.forEach(n),this._pendingDeletions.forEach(n)}get test(){}};function te(e){e?.vao&&(e.vao.vertexBuffers.get("instances")?.dispose(),e.vao.disposeVAOOnly(),e.vao=null)}function re(e){let t=null,s=null;for(const n of e.geometries){if(n.material.supportsEdges){if(t){if(!r(t,n.transformation))return!1}else t=n.transformation;if(s||null==n.localOrigin){if(null!=s?.localOrigin&&null!=n.localOrigin&&s.localOrigin.id!==n.localOrigin.id)return!1}else s=n}}return!0}e([d({constructOnly:!0})],ee.prototype,"rctx",void 0),e([d({constructOnly:!0})],ee.prototype,"renderSR",void 0),e([d({constructOnly:!0})],ee.prototype,"viewingMode",void 0),e([d({constructOnly:!0})],ee.prototype,"techniques",void 0),e([d({constructOnly:!0})],ee.prototype,"setNeedsRender",void 0),e([d({constructOnly:!0})],ee.prototype,"schedule",void 0),e([d({readOnly:!0})],ee.prototype,"_updatingHandles",void 0),e([d({readOnly:!0})],ee.prototype,"updating",null),ee=e([h("esri.views.3d.webgl-engine.lib.edgeRendering.EdgeView")],ee);class se{constructor(e,t,r,s){this.abort=e,this.radius=s,this.renderables=new Array;const n=e?l(e.signal,()=>e.abort()):null;this.loaded=t,this.loaded.then(()=>{null!=this.loaded&&(this.loaded=!0),this.abort=null,n?.remove()}),this.center=O(r)}}class ne{constructor(e,t){this.buffer=e,this.meta=t}}class ie{constructor(e,t){this.vao=e,this.lod=t}}class oe{constructor(e,t){this.modelMatrix=e,this.origin=t}}class ae{constructor(e,t,r,s,n,i,o,a){this.regular=e,this.silhouette=t,this.statistics=r,this.transform=s,this.edgeTransparency=n,this.objectTransparency=i,this.components=o,this.rendererKey=a,this.distanceToCamera=0,this.visible=!0}}class ce extends ae{}function le(e){const{meta:t,buffer:r}=e,s=new Uint8Array(4);for(let n=0;n<t.length;n++){const e=t[n].material,o=t[n].index,a=i(Math.round(e.size*N),0,255),c=i(e.extensionLength,-z,255-z)+z,l=255*e.opacity,d=e.color,h=255*d[0],u=255*d[1],m=255*d[2],g=255*d[3];r.textureBuffer.setData(o,0,h,u,m,g),r.textureBuffer.setData(o,1,a,c,e.type,l),R(t[n].verticalOffset,s),r.textureBuffer.setData(o,2,s[0],s[1],s[2],s[3])}}function de(e,t,r){let s,n;const i=r.transparency,o=t.camera.perScreenPixelRatio;e.forEachRenderable(i=>{if(!ue(i)||!i.visible)return;s??=e.acquireTechnique(t,!1),n??=e.rctx.bindTechnique(s,t,r);const a=pe(i.regular.lod.lengths,i.distanceToCamera,o);e.renderRegularEdges(n,i,r,t,a)},i)}function he(e,t,r){let s,n;const i=r.transparency,o=t.camera.perScreenPixelRatio;e.forEachRenderable(i=>{if(!ge(i)||!i.visible)return;s??=e.acquireTechnique(t,!0),n??=e.rctx.bindTechnique(s,t,r);const a=pe(i.silhouette.lod.lengths,i.distanceToCamera,o);e.renderSilhouetteEdges(n,i,r,t,a)},i)}function ue(e){return null!=e.regular}class me extends ae{}function ge(e){return null!=e.silhouette}function pe(e,t,r){const n=t*r,i=s(e,n,!0);return-1===i?n<e[0]?e.length:0:e.length-i}class fe{constructor(e,t,r){this.position=e,this.modelTransform=t,this.origin=r}}const _e=p(),be=()=>Promise.reject();export{ee as EdgeView,oe as LegacyTransform,ce as RegularRenderable,ae as Renderable,me as SilhouetteRenderable};
5
+ import{__decorate as e}from"tslib";import t from"../../../../../core/Accessor.js";import{equals as r,binaryIndexOf as s}from"../../../../../core/arrayUtils.js";import"../../../../../core/has.js";import n from"../../../../../core/Logger.js";import{clamp as i}from"../../../../../core/mathUtils.js";import{disposeMaybe as o,destroyMaybe as a}from"../../../../../core/maybe.js";import{isAbortError as c,onAbortOrThrow as l}from"../../../../../core/promiseUtils.js";import{property as d}from"../../../../../core/accessorSupport/decorators/property.js";import{subclass as h}from"../../../../../core/accessorSupport/decorators/subclass.js";import{fromMat4 as u,transpose as m,invert as g}from"../../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as f}from"../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{create as p}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{i as _,c as b,a as y,e as j}from"../../../../../chunks/vec32.js";import{create as w,clone as O}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as E}from"../../../../../core/support/UpdatingHandles.js";import{a as x,g as v}from"../../../../../chunks/sphere.js";import{c as M}from"../../../../../chunks/vec33.js";import{encodeElevationOffset as R}from"../../collections/Component/Material/shader/ComponentData.glsl.js";import{TwoVectorPosition as T}from"../../core/util/TwoVectorPosition.js";import{Attribute as C}from"../Attribute.js";import{GridLocalOriginFactory as D}from"../GridLocalOriginFactory.js";import{applyToModelMatrix as P}from"../localOriginHelper.js";import{LocalOriginManager as A}from"../LocalOriginManager.js";import{Object3D as k}from"../Object3D.js";import{VertexArrayObject as B}from"../VertexArrayObject.js";import{VertexLayout as L,EdgeInputBufferLayout as U,glVertexLayout as q}from"./bufferLayouts.js";import{RegularEdgeBufferWriter as V,SilhouetteEdgeBufferWriter as H}from"./edgeBufferWriters.js";import{EdgeRenderer as S,lineWidthFractionFactor as I,extensionLengthOffset as N}from"./EdgeRenderer.js";import{EdgePassParameters as z}from"./EdgeShaderParameters.js";import{EdgeWorkerHandle as W}from"./EdgeWorkerHandle.js";import{generateStrokesTexture as F}from"./strokes.js";import{determineRendererType as G,determineEdgeTransparency as K,determineObjectTransparency as J,fillComponentBufferIndices as Q}from"./util.js";import{BufferManager as X}from"../TextureBackedBuffer/BufferManager.js";import{BufferObject as Y}from"../../../../webgl/BufferObject.js";import{VertexBuffer as Z}from"../../../../webgl/VertexBuffer.js";const $=128;let ee=class extends t{constructor(e){super(e),this._updatingHandles=new E,this._objectEntries=new Map,this._pendingDeletions=new Map,this._renderers=new Map,this._gpuMemoryUsage=0,this._workerAbort=new AbortController,this._tmpModelPosition=w(),this._localOrigins=new A(new D(e.renderSR));const t=L.createBuffer(4);for(let r=0;r<4;r++)t.sideness.set(r,0,0===r||3===r?0:1),t.sideness.set(r,1,0===r||1===r?0:1);this._verticesBufferObject=Y.createVertex(e.rctx,35044,t.buffer)}initialize(){this._worker=new W(this.schedule),this._componentColorManager=new X(this.rctx,3)}destroy(){this.destroyed||(this._objectEntries.forEach(e=>this._discardObjectEntry(e)),this._objectEntries.clear(),this._pendingDeletions.forEach(e=>this._discardObjectEntry(e)),this._pendingDeletions.clear(),this._strokesTexture=o(this._strokesTexture),this._componentColorManager=a(this._componentColorManager),this._workerAbort.abort(),this._worker.destroy(),this._verticesBufferObject.dispose(),this._renderers.clear(),this._updatingHandles.destroy(),this._set("schedule",be))}get updating(){return this._updatingHandles.updating}get usedMemory(){return this._gpuMemoryUsage}shouldRender(){return this._renderers.size>0}async addComponentObject(e,t,r,s,n,i,o){if(this.hasObject(e))return this._getObjectMemoryUsage(e);let a;const c=new se(null,new Promise(e=>a=e),e.obb.center,e.obb.radius);this._objectEntries.set(e,c);const l=await this._updatingHandles.addPromise(this._addComponentGeometry(e.transform,c,t,r,s,n,i,o));return this.setNeedsRender(),a(),l}async addOrUpdateObject3D(e,t,r,s){if(this.destroyed)return void n.getLogger(this).warn("Attempt to add an object to a destroyed instance");const i=new AbortController;let o;const a=e.boundingVolumeWorldSpace.bounds,l=new se(i,new Promise(e=>o=e),x(a),v(a)),d=this._objectEntries.get(e);d&&(this._pendingDeletions.has(e)?this._discardObjectEntry(d):this._pendingDeletions.set(e,d)),this._objectEntries.set(e,l);try{const n=new Array;if(e.geometries.length>1&&re(e))n.push(this._addObjectMergedGeometries(e,l,t,r,s));else for(const i of e.geometries)i.material.supportsEdges&&n.push(this._addGeometry(e,l,i,t,r,s));await this._updatingHandles.addPromise(Promise.all(n)),this._removePendingDeletion(e)}catch(h){c(h)?this._discardObjectEntry(l):this._removePendingDeletion(e)}finally{this.setNeedsRender(),o()}}removeObject(e){const t=this._objectEntries.get(e);this._objectEntries.delete(e),this._discardObjectEntry(t),this._removePendingDeletion(e)}_removePendingDeletion(e){const t=this._pendingDeletions.get(e);this._pendingDeletions.delete(e),this._discardObjectEntry(t)}async _getObjectEntry(e){const t=this._objectEntries.get(e);if(!t)throw new Error("no object");return await t.loaded,null==t.loaded?null:t}fastUpdateObject3DEdgesTransform(e){if(this.destroyed)return!1;const t=this._objectEntries.get(e);if(!t)return!1;const{geometries:r}=e,{renderables:s}=t;if(0===r.length||0===s.length)return!0;if(s.length>1)return!1;const[n]=s,i=n.transform;if(!(i instanceof oe))return!1;const[o]=r;if(o.localOrigin!==i.origin.origin)return!1;const a=p(),c=this._computeModelTransformWithLocalOrigin(e,o,a);return n.transform=new oe(a,c),this.setNeedsRender(),!0}_discardObjectEntry(e){e&&(e.abort?.abort(),e.renderables.length&&(e.renderables.forEach(e=>this._removeRenderable(e)),this.setNeedsRender()),e.loaded=null)}hasObject(e){return this._objectEntries.has(e)}async updateAllComponentOpacities(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));if(null==r)return;const s=Array.isArray(t)?e=>t[e]:()=>t;r.renderables.forEach(e=>{const t=e.components.meta.length;for(let r=0;r<t;r++){const t=s(r),n=e.components.meta[r],i=n.index;n.material.opacity=t,e.components.buffer.textureBuffer.setDataElement(i,1,3,255*t)}this._updateTransparency(e)}),this.setNeedsRender()}async _getObjectMemoryUsage(e){const t=await this._getObjectEntry(e);return t?t.renderables.reduce((e,t)=>e+t.statistics.gpuMemoryUsage,0):0}async updateAllComponentMaterials(e,t,r,s){const n=e instanceof k,i=G(t),o=S.getKey(i,r,n),a=await this._updatingHandles.addPromise(this._getObjectEntry(e));null!=a&&(a.renderables.forEach(e=>{if(o!==e.rendererKey){const t=this._renderers.get(e.rendererKey),s=this._acquireRenderer(i,r,n);t.removeRenderable(e),--t.refCount,e.rendererKey=o,s.addRenderable(e)}if(Array.isArray(t))for(let r=0;r<t.length;r++)e.components.meta[r].material=t[r];else e.components.meta[0].material=t;s&&le(e.components),this._updateTransparency(e)}),this.setNeedsRender())}async updateAllVerticalOffsets(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));null!=r&&this._updateAllVerticalOffsets(r,t)}_updateAllVerticalOffsets(e,t){e.renderables.forEach(e=>{const r=e.components.meta;for(let s=0;s<r.length;s++)e.components.meta[s].verticalOffset=t?.[s]??0;le(e.components)}),this.setNeedsRender()}async updateObjectVisibility(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));r&&(r.renderables.forEach(e=>e.visible=t),this.setNeedsRender())}render(e,t){if(null==this._componentColorManager)return;this._localOrigins.updateViewMatrices(e.camera.viewMatrix);const r=e.camera.viewInverseTransposeMatrix,s=w(),n=new T;let i=0,o=0;if(this._renderers.forEach(r=>{0!==r.refCount?(++this.techniques.precompiling,r.forEachRenderable(t=>{t.visible&&(i+=t.statistics.averageEdgeLength,o++,t.regular&&r.acquireTechnique(e,!1),t.silhouette&&r.acquireTechnique(e,!0))},t),--this.techniques.precompiling):this._renderers.delete(r.key)}),this._componentColorManager.garbageCollect(),this._componentColorManager.updateTextures(),0===o)return;const a=new z(40*i/o,t);_(s,r[3],r[7],r[11]),n.set(s),b(a.transformWorldFromViewTH,n.high),b(a.transformWorldFromViewTL,n.low),u(a.transformViewFromCameraRelativeRS,e.camera.viewMatrix),m(_e,a.transformViewFromCameraRelativeRS),g(a.transformNormalViewFromGlobal,_e),a.transformProjFromView=e.camera.projectionMatrix,this._updateObjectCameraDistances(e),this._renderers.forEach(t=>{de(t,e,a),he(t,e,a)})}_updateTransparency(e){const t=K(e.components.meta),r=J(e.components.meta);t===e.edgeTransparency&&r===e.objectTransparency||(e.edgeTransparency=t,e.objectTransparency=r,this._renderers.get(e.rendererKey).setRenderablesDirty())}_computeModelTransformWithLocalOrigin(e,t,r){e.getCombinedShaderTransformation(t,r);const s=null!=t.localOrigin?this._localOrigins.register(t.localOrigin):this._localOrigins.acquire(_(this._tmpModelPosition,r[12],r[13],r[14]));return t.localOrigin=s.origin,P(s.origin.vec3,r),s}_createComponentBuffers(e){if(null==this._componentColorManager)return null;const t=new Array,r=this._componentColorManager.getBuffer(e.length);for(let n=0;n<e.length;n++){const s=e[n],i=r.acquireIndex();t.push({index:i,verticalOffset:0,material:s})}const s=new ne(r,t);return le(s),s}_extractEdges(e,t,r,s,n,i,o=i.length){return o<$&&(n=!0),this._worker.process({data:r,indices:i,indicesLength:o,writerSettings:t,skipDeduplicate:s},e,n)}_createRenderable(e,t,r,s,n){const i=t=>new ie(new B(this.rctx,new Map([["vertices",new Z(q,this._verticesBufferObject)],["instances",new Z(0===t?V.glLayout:H.glLayout,Y.createVertex(this.rctx,35044,0===t?e.regular.instancesData.buffer:e.silhouette.instancesData.buffer))]])),0===t?e.regular.lodInfo:e.silhouette.lodInfo),o=e.regular.lodInfo.lengths.length>0?i(0):null,a=e.silhouette.lodInfo.lengths.length>0?i(1):null,c=(o?.vao.cachedMemory??0)+(a?.vao.cachedMemory??0);return new ae(o,a,{gpuMemoryUsage:c,externalMemoryUsage:n,averageEdgeLength:e.averageEdgeLength},r,K(t.meta),J(t.meta),t,s)}async _addGeometry(e,t,r,s,n,i){if(r.edgeIndicesLength<=0)return;const o=r.attributes.get("position"),a=p(),c=this._computeModelTransformWithLocalOrigin(e,r,a),l=new pe(o,a,c);return this._addPositionData(t,l,r.edgeIndicesLength,s,n,i)}async _addPositionData(e,t,r,s,n,i=!1){if(null==e.loaded)return;const o=this._createComponentBuffers([s]);if(null==o)return;const a=this._acquireRenderer(s.type,n,!0),{modelTransform:c,origin:l}=t,d=t.position.indices,h=t.position,u=h.data.length/h.size,m=U.createBuffer(u);for(let p=0;p<u;p++)m.position.set(p,0,h.data[p*h.size]),m.position.set(p,1,h.data[p*h.size+1]),m.position.set(p,2,h.data[p*h.size+2]);Q(o.meta,[0,m.componentIndex.count],m.componentIndex);const g=await this._updatingHandles.addPromise(this._extractEdges(e.abort?.signal||this._workerAbort.signal,a.writerSettings,m,!1,i,d,r));if(null==e.loaded)return;const f=this._createRenderable(g,o,new oe(c,l),a.key,!1);e.renderables.push(f),a.addRenderable(f),this._gpuMemoryUsage+=f.statistics.gpuMemoryUsage}async _addComponentGeometry(e,t,r,s,n,i,o,a){if(null==t.loaded)return 0;const c=this._createComponentBuffers(i);if(null==c)return 0;const l=G(i),d=this._acquireRenderer(l,o||!1,!1),h=U.createBuffer(r.length/3);M(h.position.typedBuffer,r,h.position.typedBufferStride,3),Q(c.meta,n,h.componentIndex,s);const u=!0,m=d.writerSettings,g=await this._updatingHandles.addPromise(this._extractEdges(this._workerAbort.signal,m,h,u,!1,s));if(null==t.loaded)return 0;const f=this._createRenderable(g,c,e,d.key,!0);return t.renderables.push(f),d.addRenderable(f),this._updateAllVerticalOffsets(t,a),f.statistics.gpuMemoryUsage}async _addObjectMergedGeometries(e,t,r,s,n){const i=new Map;let o=0,a=0,c=null;const l=e.geometries.filter(e=>{if(e.edgeIndicesLength<=0||!e.material.supportsEdges)return!1;!c&&e.localOrigin&&(c=e);const t=e.attributes.get("position");return a+=t.data.length/t.size,o+=e.edgeIndicesLength,!0});if(0===l.length)return;const d=a>=65536?Uint32Array:Uint16Array,h=o?new d(o):null,u=[];let m=0;l.forEach(e=>{const t=e.attributes.get("position"),r=t.indices;let s=i.get(t.data);if(null==s){s=u.length/3;for(let e=0;e<t.data.length;e+=t.size)u.push(t.data[e]),u.push(t.data[e+1]),u.push(t.data[e+2]);i.set(t.data,s)}for(let n=0;n<e.edgeIndicesLength;n++)h[m++]=s+r[n]});const g=c||e.geometries[0],f=p(),_=this._computeModelTransformWithLocalOrigin(e,g,f);for(let p=0;p<e.geometries.length;p++)e.geometries[p].localOrigin=_.origin;const b=new pe(new C(u,h,3),f,_);await this._updatingHandles.addPromise(this._addPositionData(t,b,h.length,r,s,n))}_acquireRenderer(e,t,r){const s=S.getKey(e,t,r);let n=this._renderers.get(s);return null==this._strokesTexture&&(this._strokesTexture=F(this.rctx)),n||(n=new S(this.rctx,this.techniques,{type:e,hasSlicePlane:t,strokesTexture:this._strokesTexture,legacy:r,spherical:1===this.viewingMode}),this._renderers.set(s,n)),++n.refCount,n}_removeRenderable(e){te(e.regular),te(e.silhouette);const t=this._renderers.get(e.rendererKey);if(t){t.removeRenderable(e),--t.refCount,this._localOrigins.release(e.transform.origin),this._gpuMemoryUsage-=e.statistics.externalMemoryUsage?0:e.statistics.gpuMemoryUsage;for(const t of e.components.meta)e.components.buffer.releaseIndex(t.index)}}_updateObjectCameraDistances(e){const t=e.camera.eye,r=e.camera.viewForward,s=w(),n=e=>{y(s,e.center,t);const n=j(s,r),i=e.radius,o=n<-i?1/0:n<i?0:n-i;e.renderables.forEach(e=>e.distanceToCamera=o)};this._objectEntries.forEach(n),this._pendingDeletions.forEach(n)}get test(){}};function te(e){e?.vao&&(e.vao.buffer("instances")?.buffer.dispose(),e.vao.disposeVAOOnly(),e.vao=null)}function re(e){let t=null,s=null;for(const n of e.geometries){if(n.material.supportsEdges){if(t){if(!r(t,n.transformation))return!1}else t=n.transformation;if(s||null==n.localOrigin){if(null!=s?.localOrigin&&null!=n.localOrigin&&s.localOrigin.id!==n.localOrigin.id)return!1}else s=n}}return!0}e([d({constructOnly:!0})],ee.prototype,"rctx",void 0),e([d({constructOnly:!0})],ee.prototype,"renderSR",void 0),e([d({constructOnly:!0})],ee.prototype,"viewingMode",void 0),e([d({constructOnly:!0})],ee.prototype,"techniques",void 0),e([d({constructOnly:!0})],ee.prototype,"setNeedsRender",void 0),e([d({constructOnly:!0})],ee.prototype,"schedule",void 0),e([d({readOnly:!0})],ee.prototype,"_updatingHandles",void 0),e([d({readOnly:!0})],ee.prototype,"updating",null),ee=e([h("esri.views.3d.webgl-engine.lib.edgeRendering.EdgeView")],ee);class se{constructor(e,t,r,s){this.abort=e,this.radius=s,this.renderables=new Array;const n=e?l(e.signal,()=>e.abort()):null;this.loaded=t,this.loaded.then(()=>{null!=this.loaded&&(this.loaded=!0),this.abort=null,n?.remove()}),this.center=O(r)}}class ne{constructor(e,t){this.buffer=e,this.meta=t}}class ie{constructor(e,t){this.vao=e,this.lod=t}}class oe{constructor(e,t){this.modelMatrix=e,this.origin=t}}class ae{constructor(e,t,r,s,n,i,o,a){this.regular=e,this.silhouette=t,this.statistics=r,this.transform=s,this.edgeTransparency=n,this.objectTransparency=i,this.components=o,this.rendererKey=a,this.distanceToCamera=0,this.visible=!0}}class ce extends ae{}function le(e){const{meta:t,buffer:r}=e,s=new Uint8Array(4);for(let n=0;n<t.length;n++){const e=t[n].material,o=t[n].index,a=i(Math.round(e.size*I),0,255),c=i(e.extensionLength,-N,255-N)+N,l=255*e.opacity,d=e.color,h=255*d[0],u=255*d[1],m=255*d[2],g=255*d[3];r.textureBuffer.setData(o,0,h,u,m,g),r.textureBuffer.setData(o,1,a,c,e.type,l),R(t[n].verticalOffset,s),r.textureBuffer.setData(o,2,s[0],s[1],s[2],s[3])}}function de(e,t,r){let s,n;const i=r.transparency,o=t.camera.perScreenPixelRatio;e.forEachRenderable(i=>{if(!ue(i)||!i.visible)return;s??=e.acquireTechnique(t,!1),n??=e.rctx.bindTechnique(s,t,r);const a=fe(i.regular.lod.lengths,i.distanceToCamera,o);e.renderRegularEdges(n,i,r,t,a)},i)}function he(e,t,r){let s,n;const i=r.transparency,o=t.camera.perScreenPixelRatio;e.forEachRenderable(i=>{if(!ge(i)||!i.visible)return;s??=e.acquireTechnique(t,!0),n??=e.rctx.bindTechnique(s,t,r);const a=fe(i.silhouette.lod.lengths,i.distanceToCamera,o);e.renderSilhouetteEdges(n,i,r,t,a)},i)}function ue(e){return null!=e.regular}class me extends ae{}function ge(e){return null!=e.silhouette}function fe(e,t,r){const n=t*r,i=s(e,n,!0);return-1===i?n<e[0]?e.length:0:e.length-i}class pe{constructor(e,t,r){this.position=e,this.modelTransform=t,this.origin=r}}const _e=f(),be=()=>Promise.reject();export{ee as EdgeView,oe as LegacyTransform,ce as RegularRenderable,ae as Renderable,me as SilhouetteRenderable};
@@ -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{glLayout as e}from"../../../support/buffer/glUtil.js";import{newLayout as o}from"../../../support/buffer/InterleavedLayout.js";const n=o().vec3f("position").u16("componentIndex").freeze(),r=o().vec2u8("sideness").freeze(),i=e(r),t=o().vec3f("position0").vec3f("position1").vec2i16("normalCompressed").u16("componentIndex").u8("variantOffset",{glNormalized:!0}).u8("variantStroke").u8("variantExtension",{glNormalized:!0}).freeze(),s=o().vec3f("position0").vec3f("position1").vec2i16("normalCompressed").vec2i16("normal2Compressed").u16("componentIndex").u8("variantOffset",{glNormalized:!0}).u8("variantStroke").u8("variantExtension",{glNormalized:!0}).freeze(),a=new Map([["position0",0],["position1",1],["componentIndex",2],["variantOffset",3],["variantStroke",4],["variantExtension",5],["normalCompressed",6],["normal2Compressed",7],["sideness",8]]);export{n as EdgeInputBufferLayout,t as RegularEdgeInstancesLayout,s as SilhouetteEdgeInstancesLayout,r as VertexLayout,i as glVertexLayout,a as vertexAttributeLocations};
5
+ import{glLayout as e}from"../../../support/buffer/glUtil.js";import{newLayout as o}from"../../../support/buffer/InterleavedLayout.js";import{fromLayouts as r}from"../../../../webgl/VertexAttributeLocations.js";const t=o().vec3f("position").u16("componentIndex").freeze(),i=o().vec2u8("sideness").freeze(),n=e(i),s=o().vec3f("position0").vec3f("position1").vec2i16("normalCompressed").u16("componentIndex").u8("variantOffset",{glNormalized:!0}).u8("variantStroke").u8("variantExtension",{glNormalized:!0}).freeze(),a=o().vec3f("position0").vec3f("position1").vec2i16("normalCompressed").vec2i16("normal2Compressed").u16("componentIndex").u8("variantOffset",{glNormalized:!0}).u8("variantStroke").u8("variantExtension",{glNormalized:!0}).freeze(),f=r([n,e(s)]),m=r([n,e(a)]);export{t as EdgeInputBufferLayout,s as RegularEdgeInstancesLayout,f as RegularEdgeLocations,a as SilhouetteEdgeInstancesLayout,m as SilhouetteEdgeLocations,i as VertexLayout,n as glVertexLayout};
@@ -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{hasNativeFloat16Array as e,makeFloat16Array as r}from"../../../../geometry/support/float16.js";import{Default3D as t}from"./DefaultVertexAttributeLocations.js";import{Pos2TexF16 as o,Pos2TexF32 as n,Pos2 as f}from"./DefaultVertexBufferLayouts.js";import{VertexArrayObject as m}from"./VertexArrayObject.js";import{BufferObject as a}from"../../../webgl/BufferObject.js";import{Texture as s}from"../../../webgl/Texture.js";import{TextureDescriptor as u}from"../../../webgl/TextureDescriptor.js";function i(s,u=0,i=t,p=-1,c=1){const w=1===u,l=w?e?new Float32Array([p,p,0,c,p,0,p,c,0,c,c,0]):new Float32Array([p,p,0,0,c,p,1,0,p,c,0,1,c,c,1,1]):new Float32Array([p,p,c,p,p,c,c,c]);if(w&&e){const e=r(l.buffer);e[10]=e[17]=e[22]=e[23]=1}return new m(s,i,new Map([["geometry",w?e?o:n:f]]),new Map([["geometry",a.createVertex(s,35044,l)]]))}const p=4;function c(e){const r=new u(p);return r.samplingMode=9728,new s(e,r)}export{c as createEmptyTexture,i as createQuadVAO};
5
+ import{hasNativeFloat16Array as r,makeFloat16Array as e}from"../../../../geometry/support/float16.js";import{Pos2TexF16 as t,Pos2TexF32 as o,Pos2 as f}from"./DefaultVertexBufferLayouts.js";import{VertexArrayObject as n}from"./VertexArrayObject.js";import{BufferObject as m}from"../../../webgl/BufferObject.js";import{Texture as s}from"../../../webgl/Texture.js";import{TextureDescriptor as u}from"../../../webgl/TextureDescriptor.js";import{VertexBuffer as a}from"../../../webgl/VertexBuffer.js";function i(s,u=0,i=-1,p=1){const w=1===u,c=w?r?new Float32Array([i,i,0,p,i,0,i,p,0,p,p,0]):new Float32Array([i,i,0,0,p,i,1,0,i,p,0,1,p,p,1,1]):new Float32Array([i,i,p,i,i,p,p,p]);if(w&&r){const r=e(c.buffer);r[10]=r[17]=r[22]=r[23]=1}return new n(s,new a(w?r?t:o:f,m.createVertex(s,35044,c)))}const p=4;function w(r){const e=new u(p);return e.samplingMode=9728,new s(r,e)}export{w as createEmptyTexture,i as createQuadVAO};