@arcgis/core 4.23.0-next.20220123 → 4.23.0-next.20220128

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 (624) hide show
  1. package/Graphic.js +1 -1
  2. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  3. package/assets/esri/core/workers/RemoteClient.js +1 -1
  4. package/assets/esri/core/workers/chunks/02fbc76dfdc20e628c61.js +1 -0
  5. package/assets/esri/core/workers/chunks/0453fad5cb819797b4f6.js +1 -0
  6. package/assets/esri/core/workers/chunks/0463ba46df855a92b9c0.js +1 -0
  7. package/assets/esri/core/workers/chunks/0cd0a6eef51fc5b9ea61.js +1 -0
  8. package/assets/esri/core/workers/chunks/{d1454155ee1b8a421cbb.js → 0d02c6ad1f4688bfa374.js} +1 -1
  9. package/assets/esri/core/workers/chunks/0d684f16f37d5dc385dd.js +1 -0
  10. package/assets/esri/core/workers/chunks/0e17691520d890d34efb.js +1 -0
  11. package/assets/esri/core/workers/chunks/16b6d0f8378582c051c3.js +1 -0
  12. package/assets/esri/core/workers/chunks/{0ce1dc14280d6f188468.js → 17de7a324dfa7f57ad5d.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{b313ab14a643273e7d09.js → 1877ab1b6a115dbba1c5.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{c36f84daa7736878418d.js → 197ec52641aed20029c6.js} +1 -1
  15. package/assets/esri/core/workers/chunks/1b2a961f776a0b57e57a.js +1 -0
  16. package/assets/esri/core/workers/chunks/1b3fd66577b19aa5f2b6.js +1 -0
  17. package/assets/esri/core/workers/chunks/1c733b7db092a2a88ef3.js +1 -0
  18. package/assets/esri/core/workers/chunks/1f8c6a179e39fd4c5e6f.js +1 -0
  19. package/assets/esri/core/workers/chunks/2076fcbae63f1bfb7143.js +1 -0
  20. package/assets/esri/core/workers/chunks/{9387db408f496e7dd003.js → 214910032945dd2d86b0.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{b2ae5fc4f787ea568b88.js → 2460f3b6ada6ae900dec.js} +1 -1
  22. package/assets/esri/core/workers/chunks/27474b007988855bea9d.js +1 -0
  23. package/assets/esri/core/workers/chunks/281b89dbf5574fc642ae.js +1 -0
  24. package/assets/esri/core/workers/chunks/{4d539878bfbd7c549e60.js → 2c8fe9bc988c3c5760a5.js} +1 -1
  25. package/assets/esri/core/workers/chunks/2e899ef5881b4ec6fa55.js +1 -0
  26. package/assets/esri/core/workers/chunks/34b59d7099904dcb28b5.js +1 -0
  27. package/assets/esri/core/workers/chunks/357033117dfe61eb81ea.js +1 -0
  28. package/assets/esri/core/workers/chunks/37c03cfc19086ce631c6.js +1 -0
  29. package/assets/esri/core/workers/chunks/391e96192d1ec4e55ce2.js +1 -0
  30. package/assets/esri/core/workers/chunks/3c673495e5f507c4a9e5.js +1 -0
  31. package/assets/esri/core/workers/chunks/422537fc3df707bb62c9.js +1 -0
  32. package/assets/esri/core/workers/chunks/44f0c3663b293afbd172.js +1 -0
  33. package/assets/esri/core/workers/chunks/483d5d8593d96d0f0b15.js +1 -0
  34. package/assets/esri/core/workers/chunks/{c959e0d1cf7dce0421b9.js → 48fa8aed6c24877b44c4.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{44b01d42d4ec72913229.js → 4954fd86b48cc68b737c.js} +1 -1
  36. package/assets/esri/core/workers/chunks/49a1a633bb0d93764aae.js +1 -0
  37. package/assets/esri/core/workers/chunks/4ba6de8aa7e2960bad49.js +1 -0
  38. package/assets/esri/core/workers/chunks/4be35af7d6babbfe9d84.js +1 -0
  39. package/assets/esri/core/workers/chunks/5457962a70bd3c557a75.js +1 -0
  40. package/assets/esri/core/workers/chunks/57856b4a9b8784a69844.js +1 -0
  41. package/assets/esri/core/workers/chunks/{b9c177524b3e7de1ffd1.js → 5790d171072b3c7d108f.js} +1 -1
  42. package/assets/esri/core/workers/chunks/57b349d1dbc0bed75b79.js +1 -0
  43. package/assets/esri/core/workers/chunks/5bcb3240b3c005e5fe72.js +1 -0
  44. package/assets/esri/core/workers/chunks/5d11b97b667921d67ae7.js +1 -0
  45. package/assets/esri/core/workers/chunks/5dbe555a5a662ff3d9ce.js +1 -0
  46. package/assets/esri/core/workers/chunks/5ec98f4ddac707d0fbd1.js +1 -0
  47. package/assets/esri/core/workers/chunks/64b7e8d812ea8fcf269e.js +1 -0
  48. package/assets/esri/core/workers/chunks/{4c9084a04948b6924749.js → 655b55ac0cd533d7e9d7.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{b0b036ad3ad3cd956747.js → 69fd99b7c76e9992ccf3.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{9cdaba126ac7fa5f33f0.js → 6cd5e4380d29b9a3c344.js} +1 -1
  51. package/assets/esri/core/workers/chunks/75d812955a473d0e8960.js +1 -0
  52. package/assets/esri/core/workers/chunks/7903a3e2e0faff0f86c0.js +1 -0
  53. package/assets/esri/core/workers/chunks/{cc146c57bbdac8029fd8.js → 7a5f5acfbd4ca1a5c1f3.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{64276aacaafa4c8a15bd.js → 7dcf52d3db3903c8eb9f.js} +1 -1
  55. package/assets/esri/core/workers/chunks/83d00afae4406ec78bc9.js +1 -0
  56. package/assets/esri/core/workers/chunks/{625d2663daa8e0cf64b0.js → 85b1f36790df95b17659.js} +1 -1
  57. package/assets/esri/core/workers/chunks/89820b200ee44e678af5.js +1 -0
  58. package/assets/esri/core/workers/chunks/918bb7a7d901544a7367.js +1 -0
  59. package/assets/esri/core/workers/chunks/{94b8dbf859df71858d1c.js → 929c9b7cdab7c4ca3d87.js} +1 -1
  60. package/assets/esri/core/workers/chunks/94515fb3ef38067eeadd.js +1 -0
  61. package/assets/esri/core/workers/chunks/949b2269457302ffc64b.js +1 -0
  62. package/assets/esri/core/workers/chunks/952980635afc7ec81804.js +1 -0
  63. package/assets/esri/core/workers/chunks/9876a1bae350795fab36.js +1 -0
  64. package/assets/esri/core/workers/chunks/99619fcb772807c74f3b.js +1 -0
  65. package/assets/esri/core/workers/chunks/{010a71c2aa1b7681e191.js → 9d11f84e6c893b9d0019.js} +1 -1
  66. package/assets/esri/core/workers/chunks/a1930e4f035bc9aa1ae5.js +1 -0
  67. package/assets/esri/core/workers/chunks/a8692bffb76444c34760.js +1 -0
  68. package/assets/esri/core/workers/chunks/aa04b90b82bf70caaae4.js +1 -0
  69. package/assets/esri/core/workers/chunks/aeaa1667c2d9f1b3366b.js +1 -0
  70. package/assets/esri/core/workers/chunks/b2d2de935487257c568b.js +1 -0
  71. package/assets/esri/core/workers/chunks/b3f5e91116112b0b612a.js +1 -0
  72. package/assets/esri/core/workers/chunks/b97953694f42bfec1b3c.js +1 -0
  73. package/assets/esri/core/workers/chunks/b9e9cb354822c6d995a4.js +1 -0
  74. package/assets/esri/core/workers/chunks/ba762bcfd74af0bb8218.js +1 -0
  75. package/assets/esri/core/workers/chunks/bac9fc90e6756e211160.js +1 -0
  76. package/assets/esri/core/workers/chunks/be588873c16770ceb9ef.js +1 -0
  77. package/assets/esri/core/workers/chunks/bf97a933ea3b220115e1.js +1 -0
  78. package/assets/esri/core/workers/chunks/bfedd6ebff817c9b31c0.js +1 -0
  79. package/assets/esri/core/workers/chunks/c093dff4592832ac0973.js +1 -0
  80. package/assets/esri/core/workers/chunks/c1135cb02ec46c491459.js +1 -0
  81. package/assets/esri/core/workers/chunks/c2253a9f29c1aabb2b75.js +1 -0
  82. package/assets/esri/core/workers/chunks/{d39b7983b68d6e5b404d.js → cdbc005eebec1503b99d.js} +1 -1
  83. package/assets/esri/core/workers/chunks/d04fca5d46cca02500b7.js +1 -0
  84. package/assets/esri/core/workers/chunks/d08efbc349dd9f999497.js +1 -0
  85. package/assets/esri/core/workers/chunks/d1fe53b597351dc58305.js +1 -0
  86. package/assets/esri/core/workers/chunks/{a8b13fb804bb775e4967.js → db3c729ce0c0b2690dc9.js} +1 -1
  87. package/assets/esri/core/workers/chunks/dd13772a5e2eccc6a2bc.js +1 -0
  88. package/assets/esri/core/workers/chunks/dedc333a61081772ca7b.js +1 -0
  89. package/assets/esri/core/workers/chunks/{a7b1b75643ed31489495.js → e0c8d61c7a85ce15499a.js} +1 -1
  90. package/assets/esri/core/workers/chunks/{199670a3a564ebe3bd79.js → e218bde41ffbcc5194f5.js} +1 -1
  91. package/assets/esri/core/workers/chunks/e21b211913aefde47e30.js +1 -0
  92. package/assets/esri/core/workers/chunks/e287f49184d076af17e2.js +1 -0
  93. package/assets/esri/core/workers/chunks/{bde1d5b0a7717350986e.js → e4019b63a1fe74e2c842.js} +1 -1
  94. package/assets/esri/core/workers/chunks/e8e775758b79c5a084c8.js +1 -0
  95. package/assets/esri/core/workers/chunks/e93dfdede0532a89ffa5.js +1 -0
  96. package/assets/esri/core/workers/chunks/e9e5196b44b6923be1a3.js +1 -0
  97. package/assets/esri/core/workers/chunks/ea595b0df5050eda2a13.js +1 -0
  98. package/assets/esri/core/workers/chunks/eb82ff10cef2bde6e57f.js +1 -0
  99. package/assets/esri/core/workers/chunks/ebc6f4764b82d4104c65.js +1 -0
  100. package/assets/esri/core/workers/chunks/{1305ef8717da6e902a55.js → ec10151a2a95e95a0bb5.js} +1 -1
  101. package/assets/esri/core/workers/chunks/eccba071ced2d922bb85.js +1 -0
  102. package/assets/esri/core/workers/chunks/ee6e0db58dc64410e687.js +1 -0
  103. package/assets/esri/core/workers/chunks/f0a9f161805fc7a30fc5.js +1 -0
  104. package/assets/esri/core/workers/chunks/f2124f4d0f2b8a91f0ea.js +1 -0
  105. package/assets/esri/core/workers/chunks/ff6abdc72076f3994659.js +981 -0
  106. package/assets/esri/libs/vxl/vxlLayer.wasm +0 -0
  107. package/assets/esri/themes/base/_mixins.scss +4 -1
  108. package/assets/esri/themes/base/icons/style.scss +11 -2
  109. package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +13 -10
  110. package/assets/esri/themes/base/widgets/_CoordinateConversion.scss +4 -2
  111. package/assets/esri/themes/base/widgets/_Directions.scss +5 -3
  112. package/assets/esri/themes/base/widgets/_Editor.scss +5 -2
  113. package/assets/esri/themes/base/widgets/_ElevationProfile.scss +6 -4
  114. package/assets/esri/themes/base/widgets/_FeatureTable.scss +6 -0
  115. package/assets/esri/themes/base/widgets/_ItemList.scss +1 -1
  116. package/assets/esri/themes/base/widgets/_LayerList.scss +13 -9
  117. package/assets/esri/themes/base/widgets/_Popup.scss +4 -2
  118. package/assets/esri/themes/base/widgets/_Print.scss +24 -11
  119. package/assets/esri/themes/base/widgets/_Search.scss +4 -2
  120. package/assets/esri/themes/base/widgets/_TableList.scss +9 -7
  121. package/assets/esri/themes/base/widgets/_Weather.scss +12 -0
  122. package/assets/esri/themes/base/widgets/_Widget.scss +18 -9
  123. package/assets/esri/themes/dark/main.css +1 -1
  124. package/assets/esri/themes/dark-blue/main.css +1 -1
  125. package/assets/esri/themes/dark-green/main.css +1 -1
  126. package/assets/esri/themes/dark-purple/main.css +1 -1
  127. package/assets/esri/themes/dark-red/main.css +1 -1
  128. package/assets/esri/themes/light/main.css +1 -1
  129. package/assets/esri/themes/light/view.css +1 -1
  130. package/assets/esri/themes/light-blue/main.css +1 -1
  131. package/assets/esri/themes/light-green/main.css +1 -1
  132. package/assets/esri/themes/light-purple/main.css +1 -1
  133. package/assets/esri/themes/light-red/main.css +1 -1
  134. package/assets/esri/widgets/Weather/t9n/Weather.json +1 -1
  135. package/assets/esri/widgets/Weather/t9n/Weather_ar.json +1 -1
  136. package/assets/esri/widgets/Weather/t9n/Weather_bg.json +1 -1
  137. package/assets/esri/widgets/Weather/t9n/Weather_bs.json +1 -1
  138. package/assets/esri/widgets/Weather/t9n/Weather_ca.json +1 -1
  139. package/assets/esri/widgets/Weather/t9n/Weather_cs.json +1 -1
  140. package/assets/esri/widgets/Weather/t9n/Weather_da.json +1 -1
  141. package/assets/esri/widgets/Weather/t9n/Weather_de.json +1 -1
  142. package/assets/esri/widgets/Weather/t9n/Weather_el.json +1 -1
  143. package/assets/esri/widgets/Weather/t9n/Weather_en.json +1 -1
  144. package/assets/esri/widgets/Weather/t9n/Weather_es.json +1 -1
  145. package/assets/esri/widgets/Weather/t9n/Weather_et.json +1 -1
  146. package/assets/esri/widgets/Weather/t9n/Weather_fi.json +1 -1
  147. package/assets/esri/widgets/Weather/t9n/Weather_fr.json +1 -1
  148. package/assets/esri/widgets/Weather/t9n/Weather_he.json +1 -1
  149. package/assets/esri/widgets/Weather/t9n/Weather_hr.json +1 -1
  150. package/assets/esri/widgets/Weather/t9n/Weather_hu.json +1 -1
  151. package/assets/esri/widgets/Weather/t9n/Weather_id.json +1 -1
  152. package/assets/esri/widgets/Weather/t9n/Weather_it.json +1 -1
  153. package/assets/esri/widgets/Weather/t9n/Weather_ja.json +1 -1
  154. package/assets/esri/widgets/Weather/t9n/Weather_ko.json +1 -1
  155. package/assets/esri/widgets/Weather/t9n/Weather_lt.json +1 -1
  156. package/assets/esri/widgets/Weather/t9n/Weather_lv.json +1 -1
  157. package/assets/esri/widgets/Weather/t9n/Weather_nb.json +1 -1
  158. package/assets/esri/widgets/Weather/t9n/Weather_nl.json +1 -1
  159. package/assets/esri/widgets/Weather/t9n/Weather_pl.json +1 -1
  160. package/assets/esri/widgets/Weather/t9n/Weather_pt-BR.json +1 -1
  161. package/assets/esri/widgets/Weather/t9n/Weather_pt-PT.json +1 -1
  162. package/assets/esri/widgets/Weather/t9n/Weather_ro.json +1 -1
  163. package/assets/esri/widgets/Weather/t9n/Weather_ru.json +1 -1
  164. package/assets/esri/widgets/Weather/t9n/Weather_sk.json +1 -1
  165. package/assets/esri/widgets/Weather/t9n/Weather_sl.json +1 -1
  166. package/assets/esri/widgets/Weather/t9n/Weather_sr.json +1 -1
  167. package/assets/esri/widgets/Weather/t9n/Weather_sv.json +1 -1
  168. package/assets/esri/widgets/Weather/t9n/Weather_th.json +1 -1
  169. package/assets/esri/widgets/Weather/t9n/Weather_tr.json +1 -1
  170. package/assets/esri/widgets/Weather/t9n/Weather_uk.json +1 -1
  171. package/assets/esri/widgets/Weather/t9n/Weather_vi.json +1 -1
  172. package/assets/esri/widgets/Weather/t9n/Weather_zh-CN.json +1 -1
  173. package/assets/esri/widgets/Weather/t9n/Weather_zh-HK.json +1 -1
  174. package/assets/esri/widgets/Weather/t9n/Weather_zh-TW.json +1 -1
  175. package/chunks/BlendLayers.glsl.js +2 -2
  176. package/chunks/ChapmanAtmosphere.glsl.js +17 -17
  177. package/chunks/CheckerBoard.glsl.js +3 -3
  178. package/chunks/Clouds.glsl.js +2 -2
  179. package/chunks/CloudsComposition.glsl.js +1 -1
  180. package/chunks/ColorMaterial.glsl.js +12 -12
  181. package/chunks/ComponentShader.glsl.js +21 -21
  182. package/chunks/Compositing.glsl.js +1 -1
  183. package/chunks/DefaultMaterial.glsl.js +33 -33
  184. package/chunks/EdgeShaderProgram.glsl.js +7 -7
  185. package/chunks/Fog.glsl.js +10 -12
  186. package/chunks/HUDMaterial.glsl.js +2 -2
  187. package/chunks/HighlightComposition.glsl.js +5 -5
  188. package/chunks/ImageMaterial.glsl.js +6 -6
  189. package/chunks/LaserlinePath.glsl.js +8 -8
  190. package/chunks/LineCallout.glsl.js +6 -6
  191. package/chunks/MeasurementArrow.glsl.js +1 -1
  192. package/chunks/NativeLine.glsl.js +1 -1
  193. package/chunks/Path.glsl.js +5 -5
  194. package/chunks/Pattern.glsl.js +9 -9
  195. package/chunks/PointRenderer.glsl.js +14 -14
  196. package/chunks/Precipitation.glsl.js +91 -0
  197. package/chunks/RealisticTree.glsl.js +21 -21
  198. package/chunks/RibbonLine.glsl.js +11 -11
  199. package/chunks/SMAA.glsl.js +40 -40
  200. package/chunks/ShadedColorMaterial.glsl.js +12 -12
  201. package/chunks/ShadowCast.glsl.js +6 -6
  202. package/chunks/ShadowHighlight.glsl.js +4 -4
  203. package/chunks/SimpleAtmosphere.glsl.js +3 -3
  204. package/chunks/SlicePlaneMaterial.glsl.js +3 -3
  205. package/chunks/Stars.glsl.js +3 -3
  206. package/chunks/Terrain.glsl.js +3 -3
  207. package/chunks/TextureOnly.glsl.js +2 -2
  208. package/chunks/WaterSurface.glsl.js +22 -22
  209. package/chunks/boundedPlane.js +1 -1
  210. package/chunks/pe.js +1 -1
  211. package/chunks/vec3.js +1 -1
  212. package/chunks/vxlLayer.js +1 -1
  213. package/core/accessorSupport/ensureType.js +1 -1
  214. package/core/accessorSupport/get.js +1 -1
  215. package/core/accessorSupport/read.js +1 -1
  216. package/core/accessorSupport/set.js +1 -1
  217. package/core/accessorSupport/watch.js +1 -1
  218. package/core/accessorSupport/write.js +1 -1
  219. package/core/clock.js +1 -1
  220. package/core/jsonMap.js +1 -1
  221. package/core/libs/gl-matrix-2/math/vec3.js +1 -1
  222. package/core/loadAll.js +1 -1
  223. package/core/promiseUtils.js +1 -1
  224. package/core/reactiveUtils.js +1 -1
  225. package/form/ExpressionInfo.js +1 -1
  226. package/geometry/pe.js +1 -1
  227. package/geometry/support/axisAngleDegrees.js +1 -1
  228. package/geometry/support/frustum.js +1 -1
  229. package/geometry/support/plane.js +1 -1
  230. package/interfaces.d.ts +263 -35
  231. package/layers/VectorTileLayer.js +1 -1
  232. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  233. package/layers/graphics/featureConversionUtils.js +1 -1
  234. package/layers/support/LayerContingentValuesCache.js +1 -1
  235. package/layers/support/TileInfo.js +1 -1
  236. package/layers/support/rasterDatasets/BaseRaster.js +1 -1
  237. package/layers/support/rasterFunctions/rasterProjectionHelper.js +1 -1
  238. package/package.json +2 -2
  239. package/popup/content/AttachmentsContent.js +1 -1
  240. package/popup/content/support/mediaInfoTypes.js +1 -1
  241. package/rest/print.js +1 -1
  242. package/smartMapping/statistics/support/predominanceUtils.d.ts +4 -0
  243. package/support/arcadeOnDemand.js +1 -1
  244. package/support/featureFlags.js +1 -1
  245. package/support/revision.js +1 -1
  246. package/symbols/FillSymbol3DLayer.js +1 -1
  247. package/symbols/IconSymbol3DLayer.js +1 -1
  248. package/symbols/LabelSymbol3D.js +1 -1
  249. package/symbols/ObjectSymbol3DLayer.js +1 -1
  250. package/symbols/PointSymbol3D.js +1 -1
  251. package/symbols/Symbol3D.js +1 -1
  252. package/symbols/WebStyleSymbol.js +1 -1
  253. package/symbols/cim/CIMSymbolHelper.js +1 -1
  254. package/symbols/cim/CIMSymbolRasterizer.js +1 -1
  255. package/symbols/cim/cimAnalyzer.js +1 -1
  256. package/symbols/support/IconSymbol3DLayerResource.js +1 -1
  257. package/symbols/support/ObjectSymbol3DLayerResource.js +1 -1
  258. package/symbols/support/Symbol3DAnchorPosition2D.js +1 -1
  259. package/symbols/support/Symbol3DAnchorPosition3D.js +1 -1
  260. package/symbols/support/Symbol3DFillMaterial.js +1 -1
  261. package/symbols/support/Symbol3DIconOutline.js +1 -1
  262. package/symbols/support/Symbol3DOutline.js +1 -1
  263. package/symbols/support/Symbol3DVerticalOffset.js +1 -1
  264. package/symbols/support/Thumbnail.js +1 -1
  265. package/symbols/support/previewCIMSymbol.js +1 -1
  266. package/symbols/support/previewSymbol2D.js +1 -1
  267. package/symbols/support/previewSymbol3D.js +1 -1
  268. package/symbols/support/previewWebStyleSymbol.js +1 -1
  269. package/symbols/support/svgUtils.js +1 -1
  270. package/symbols/support/webStyleSymbolUtils.js +1 -1
  271. package/symbols.js +1 -1
  272. package/views/2d/MapViewConstraints.js +1 -1
  273. package/views/2d/engine/vectorTiles/SchemaHelper.js +1 -1
  274. package/views/2d/engine/webgl/brushes/raster/BrushRasterBitmap.js +1 -1
  275. package/views/2d/engine/webgl/mesh/templates/WGLFillTemplate.js +1 -1
  276. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  277. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  278. package/views/2d/viewpointUtils.js +1 -1
  279. package/views/3d/environment/ChapmanAtmosphere.glsl.js +1 -1
  280. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  281. package/views/3d/environment/CloudsComposition.glsl.js +1 -1
  282. package/views/3d/environment/CloudsComposition.js +1 -1
  283. package/views/3d/environment/CloudsGenerator.js +1 -1
  284. package/views/3d/environment/CloudsPresets.js +1 -1
  285. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  286. package/views/3d/environment/Fog.glsl.js +1 -1
  287. package/views/3d/environment/Fog.js +1 -1
  288. package/views/3d/environment/PanoramicAtmosphere.js +1 -1
  289. package/views/3d/environment/Precipitation.glsl.js +5 -0
  290. package/views/3d/environment/Precipitation.js +5 -0
  291. package/views/3d/environment/PrecipitationTechnique.js +5 -0
  292. package/views/3d/environment/RainyWeather.js +1 -1
  293. package/views/3d/environment/SceneViewEnvironmentManager.js +1 -1
  294. package/views/3d/environment/SimpleAtmosphere.glsl.js +1 -1
  295. package/views/3d/environment/SimpleAtmosphere.js +1 -1
  296. package/views/3d/environment/SnowyWeather.js +5 -0
  297. package/views/3d/environment/Stars.glsl.js +1 -1
  298. package/views/3d/environment/Stars.js +1 -1
  299. package/views/3d/environment/weather.js +1 -1
  300. package/views/3d/interactive/analysisTools/slice/SliceTool.js +1 -1
  301. package/views/3d/interactive/analysisTools/slice/sliceToolUtils.js +1 -1
  302. package/views/3d/interactive/editingTools/transformGraphic/ScaleRotateMeshAdapter.js +1 -1
  303. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  304. package/views/3d/interactive/visualElements/MeasurementAreaVisualElement.js +1 -1
  305. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  306. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  307. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  308. package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
  309. package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
  310. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  311. package/views/3d/layers/GraphicsLayerView3D.js +1 -1
  312. package/views/3d/layers/GraphicsView3D.js +1 -1
  313. package/views/3d/layers/I3SMeshView3D.js +1 -1
  314. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  315. package/views/3d/layers/VectorTileLayerView3D.js +1 -1
  316. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  317. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  318. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  319. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  320. package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
  321. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  322. package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
  323. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  324. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  325. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  326. package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
  327. package/views/3d/layers/graphics/Graphics3DWaterSymbolLayer.js +1 -1
  328. package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
  329. package/views/3d/layers/graphics/graphicUtils.js +1 -1
  330. package/views/3d/layers/graphics/lineUtils.js +1 -1
  331. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  332. package/views/3d/layers/graphics/polygonUtils.js +1 -1
  333. package/views/3d/layers/graphics/symbolComplexity.js +1 -1
  334. package/views/3d/layers/i3s/I3SBinaryReader.js +1 -1
  335. package/views/3d/layers/i3s/PointRenderer.js +1 -1
  336. package/views/3d/layers/support/HeatmapFeatureProcessor.js +5 -0
  337. package/views/3d/layers/support/overlayImageUtils.js +1 -1
  338. package/views/3d/layers/support/patternUtils.js +1 -1
  339. package/views/3d/state/controllers/local/PinchAndPanController.js +1 -1
  340. package/views/3d/support/FrustumExtentIntersection.js +1 -1
  341. package/views/3d/support/LaserLineRenderer.js +1 -1
  342. package/views/3d/support/LaserlinePathData.js +1 -1
  343. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  344. package/views/3d/support/sunUtils.js +1 -1
  345. package/views/3d/terrain/OverlayRenderer.js +1 -1
  346. package/views/3d/terrain/PatchGeometryFactory.js +1 -1
  347. package/views/3d/terrain/TerrainRenderer.js +1 -1
  348. package/views/3d/terrain/TerrainSurface.js +1 -1
  349. package/views/3d/terrain/Tile.js +1 -1
  350. package/views/3d/terrain/terrainUtils.js +1 -1
  351. package/views/3d/terrain/tileUtils.js +1 -1
  352. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  353. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  354. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  355. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js +10 -10
  356. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentShader.glsl.js +1 -1
  357. package/views/3d/webgl-engine/collections/Component/SourceGeometry.js +1 -1
  358. package/views/3d/webgl-engine/core/renderPasses/AllRenderPasses.js +1 -1
  359. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  360. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +2 -2
  361. package/views/3d/webgl-engine/core/shaderLibrary/ScreenSizeScaling.glsl.js +2 -2
  362. package/views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.js +2 -2
  363. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +2 -2
  364. package/views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js +4 -4
  365. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +1 -1
  366. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PositionAttribute.glsl.js +1 -1
  367. package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +1 -1
  368. package/views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js +1 -1
  369. package/views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js +3 -3
  370. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js +1 -1
  371. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +6 -6
  372. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +12 -12
  373. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTextureCoordinates.glsl.js +4 -4
  374. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js +1 -1
  375. package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +16 -16
  376. package/views/3d/webgl-engine/core/shaderLibrary/default/RealisticTree.glsl.js +1 -1
  377. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +5 -5
  378. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUDOcclusionPass.glsl.js +3 -3
  379. package/views/3d/webgl-engine/core/shaderLibrary/raster/BasicGrid.glsl.js +2 -2
  380. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js +6 -6
  381. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js +2 -2
  382. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeShadingNormal.glsl.js +10 -11
  383. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +2 -2
  384. package/views/3d/webgl-engine/core/shaderLibrary/shading/MultipassGeometryTest.glsl.js +2 -2
  385. package/views/3d/webgl-engine/core/shaderLibrary/shading/MultipassTerrainTest.glsl.js +2 -2
  386. package/views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js +6 -6
  387. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js +4 -4
  388. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +6 -6
  389. package/views/3d/webgl-engine/core/shaderLibrary/shading/Reprojection.glsl.js +4 -4
  390. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js +5 -5
  391. package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +1 -1
  392. package/views/3d/webgl-engine/core/shaderLibrary/shading/Water.glsl.js +22 -14
  393. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +2 -2
  394. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Terrain.glsl.js +1 -1
  395. package/views/3d/webgl-engine/core/shaderLibrary/util/BlendLayers.glsl.js +1 -1
  396. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +4 -4
  397. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  398. package/views/3d/webgl-engine/lib/Camera.js +1 -1
  399. package/views/3d/webgl-engine/lib/DefaultVertexAttributeLocations.js +1 -1
  400. package/views/3d/webgl-engine/lib/DefaultVertexBufferLayouts.js +1 -1
  401. package/views/3d/webgl-engine/lib/Geometry.js +1 -1
  402. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  403. package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
  404. package/views/3d/webgl-engine/lib/MagnifierHelper.js +1 -1
  405. package/views/3d/webgl-engine/lib/Material.js +1 -1
  406. package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
  407. package/views/3d/webgl-engine/lib/RenderPluginManager.js +1 -1
  408. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  409. package/views/3d/webgl-engine/lib/SSAOHelper.js +1 -1
  410. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  411. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  412. package/views/3d/webgl-engine/lib/SmaaRenderPass.js +1 -1
  413. package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
  414. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  415. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  416. package/views/3d/{layers/graphics/IGraphics3DFeatureProcessor.js → webgl-engine/lib/TextureUniformName.js} +0 -0
  417. package/views/3d/webgl-engine/lib/UniformName.js +4 -0
  418. package/views/3d/webgl-engine/lib/VertexAttribute.js +5 -0
  419. package/views/3d/webgl-engine/lib/basicInterfaces.js +1 -1
  420. package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
  421. package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
  422. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderTechnique.js +1 -1
  423. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  424. package/views/3d/webgl-engine/lib/edgeRendering/bufferLayouts.js +1 -1
  425. package/views/3d/webgl-engine/lib/lodRendering/InstanceData.js +1 -1
  426. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  427. package/views/3d/webgl-engine/lib/lodRendering/RenderInstanceData.js +1 -1
  428. package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
  429. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  430. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  431. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  432. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  433. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  434. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  435. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  436. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  437. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  438. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  439. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  440. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  441. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  442. package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
  443. package/views/3d/webgl-engine/materials/VisualVariableMaterialParameters.js +1 -1
  444. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  445. package/views/3d/webgl-engine/materials/internal/DefaultBufferWriter.js +1 -1
  446. package/views/3d/webgl-engine/materials/internal/MaterialUtil.js +1 -1
  447. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  448. package/views/3d/webgl-engine/materials/internal/waterMaterialUtils.js +1 -1
  449. package/views/3d/webgl-engine/parts/Model.js +1 -1
  450. package/views/3d/webgl-engine/shaders/CheckerBoard.glsl.js +1 -1
  451. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  452. package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
  453. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  454. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  455. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  456. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  457. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  458. package/views/3d/webgl-engine/shaders/HighlightComposition.glsl.js +1 -1
  459. package/views/3d/webgl-engine/shaders/HighlightTechnique.js +1 -1
  460. package/views/3d/webgl-engine/shaders/ImageMaterial.glsl.js +1 -1
  461. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  462. package/views/3d/webgl-engine/shaders/LaserlinePath.glsl.js +1 -1
  463. package/views/3d/webgl-engine/shaders/LaserlinePathTechnique.js +1 -1
  464. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  465. package/views/3d/webgl-engine/shaders/LineCalloutTechnique.js +1 -1
  466. package/views/3d/webgl-engine/shaders/Magnifier.glsl.js +1 -1
  467. package/views/3d/webgl-engine/shaders/MeasurementArrow.glsl.js +1 -1
  468. package/views/3d/webgl-engine/shaders/NativeLine.glsl.js +1 -1
  469. package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
  470. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  471. package/views/3d/webgl-engine/shaders/PointRenderer.glsl.js +1 -1
  472. package/views/3d/webgl-engine/shaders/RealisticTreeTechnique.js +1 -1
  473. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  474. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  475. package/views/3d/webgl-engine/shaders/SMAA.glsl.js +1 -1
  476. package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +1 -1
  477. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
  478. package/views/3d/webgl-engine/shaders/ShadowCastTechnique.js +1 -1
  479. package/views/3d/webgl-engine/shaders/ShadowHighlightTechnique.js +1 -1
  480. package/views/3d/webgl-engine/shaders/SlicePlaneMaterial.glsl.js +1 -1
  481. package/views/3d/webgl-engine/shaders/WaterSurface.glsl.js +1 -1
  482. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/AdjustProjectedPosition.glsl.js +10 -10
  483. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/DiscardShortEdges.glsl.js +1 -1
  484. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeShaderProgram.glsl.js +1 -1
  485. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +21 -21
  486. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineAmplitude.glsl.js +6 -6
  487. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineOffset.glsl.js +13 -13
  488. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/UnpackAttributes.glsl.js +6 -6
  489. package/views/MapView.js +1 -1
  490. package/views/SceneView.js +1 -1
  491. package/views/View.js +1 -1
  492. package/views/input/recognizers/DoubleTapDrag.js +1 -1
  493. package/views/input/recognizers/ImmediateDoubleClick.js +1 -1
  494. package/views/input/recognizers/PointerClickHoldAndDrag.js +1 -1
  495. package/views/input/recognizers/SingleAndDoubleClick.js +1 -1
  496. package/views/interactive/dragEventPipeline.js +1 -1
  497. package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
  498. package/views/support/DefaultsFromMap.js +1 -1
  499. package/views/support/WatchUpdatingTracking.js +1 -1
  500. package/views/support/projectionUtils.js +5 -0
  501. package/views/webgl/BufferObject.js +1 -1
  502. package/views/webgl/InstanceCounter.js +1 -1
  503. package/views/webgl/Program.js +1 -1
  504. package/views/webgl/rasterUtils.js +1 -1
  505. package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.js +1 -1
  506. package/widgets/Attachments.js +1 -1
  507. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  508. package/widgets/BasemapGallery/support/BasemapGalleryItem.js +1 -1
  509. package/widgets/BasemapGallery/support/basemapCompatibilityUtils.js +1 -1
  510. package/widgets/BasemapGallery.js +1 -1
  511. package/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js +1 -1
  512. package/widgets/FeatureForm/InputField.js +1 -1
  513. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  514. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  515. package/widgets/FeatureTable.js +1 -1
  516. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
  517. package/widgets/LineOfSight/LineOfSightViewModel.js +1 -1
  518. package/widgets/Popup/PopupViewModel.js +1 -1
  519. package/widgets/Popup/actionUtils.js +1 -1
  520. package/widgets/Search/support/locatorUtils.js +1 -1
  521. package/widgets/Search.js +1 -1
  522. package/widgets/Slice/SliceViewModel.js +1 -1
  523. package/widgets/Slider/SliderViewModel.js +1 -1
  524. package/widgets/Slider.js +1 -1
  525. package/widgets/Weather/WeatherViewModel.js +1 -1
  526. package/widgets/Weather/css.js +1 -1
  527. package/widgets/Weather/enums.js +5 -0
  528. package/widgets/Weather.js +1 -1
  529. package/widgets/support/InteractiveAnalysisViewModel.js +1 -1
  530. package/widgets/support/InteractiveToolViewModel.js +1 -1
  531. package/assets/components/assets/calcite-icon/checkSquareF16.json +0 -1
  532. package/assets/components/assets/calcite-icon/checkSquareF24.json +0 -1
  533. package/assets/components/assets/calcite-icon/checkSquareF32.json +0 -1
  534. package/assets/components/assets/calcite-icon/lineSolid4.json +0 -1
  535. package/assets/components/assets/calcite-icon/squareF16.json +0 -1
  536. package/assets/components/assets/calcite-icon/squareF24.json +0 -1
  537. package/assets/components/assets/calcite-icon/squareF32.json +0 -1
  538. package/assets/components/assets/calcite-icon/xHexagon16.json +0 -1
  539. package/assets/components/assets/calcite-icon/xHexagon24.json +0 -1
  540. package/assets/components/assets/calcite-icon/xHexagon32.json +0 -1
  541. package/assets/components/assets/calcite-icon/xHexagonF16.json +0 -1
  542. package/assets/components/assets/calcite-icon/xHexagonF24.json +0 -1
  543. package/assets/components/assets/calcite-icon/xHexagonF32.json +0 -1
  544. package/assets/components/assets/calcite-icon/xOctagonF16.json +0 -1
  545. package/assets/components/assets/calcite-icon/xOctagonF24.json +0 -1
  546. package/assets/components/assets/calcite-icon/xOctagonF32.json +0 -1
  547. package/assets/esri/core/workers/chunks/09da224052976e290828.js +0 -1
  548. package/assets/esri/core/workers/chunks/0bf079e752ab79468478.js +0 -1
  549. package/assets/esri/core/workers/chunks/0c3e3a5baf54bd5e210c.js +0 -1
  550. package/assets/esri/core/workers/chunks/14bef72154b3a19561a7.js +0 -1
  551. package/assets/esri/core/workers/chunks/18668dc45eb9e35530df.js +0 -1
  552. package/assets/esri/core/workers/chunks/1e4d37c2b9dc83d20a11.js +0 -1
  553. package/assets/esri/core/workers/chunks/20411bb8e04703962ce6.js +0 -1
  554. package/assets/esri/core/workers/chunks/208a7e24e19fc5633dd7.js +0 -1
  555. package/assets/esri/core/workers/chunks/22b09e276c9b9f22f0f8.js +0 -1
  556. package/assets/esri/core/workers/chunks/23745a5ab47c840dc452.js +0 -1
  557. package/assets/esri/core/workers/chunks/2416f8bf8bbd2ec786ab.js +0 -1
  558. package/assets/esri/core/workers/chunks/25a3e9bc0b4c7e0d3165.js +0 -1
  559. package/assets/esri/core/workers/chunks/2e445a8735ea2adb641a.js +0 -1
  560. package/assets/esri/core/workers/chunks/32f8c4af7e70ebdcb19e.js +0 -1
  561. package/assets/esri/core/workers/chunks/36a3f6fb4d1d18fcb642.js +0 -1
  562. package/assets/esri/core/workers/chunks/390d9021169e65c10eb8.js +0 -1
  563. package/assets/esri/core/workers/chunks/3a9740dccda6a733313c.js +0 -1
  564. package/assets/esri/core/workers/chunks/3aa4194dc5497c57647f.js +0 -1
  565. package/assets/esri/core/workers/chunks/40a1e713f63ec77110c0.js +0 -1
  566. package/assets/esri/core/workers/chunks/43cdff2418325e163420.js +0 -1
  567. package/assets/esri/core/workers/chunks/4bfbf5a34c9207fdcf44.js +0 -1
  568. package/assets/esri/core/workers/chunks/5383a8f3e4ec1a8a4fcd.js +0 -1
  569. package/assets/esri/core/workers/chunks/5538639a49c7cc2eca63.js +0 -1
  570. package/assets/esri/core/workers/chunks/5a4a5585ec8027079f32.js +0 -1
  571. package/assets/esri/core/workers/chunks/5d4863a92b03bebc1b54.js +0 -1
  572. package/assets/esri/core/workers/chunks/60371c0f750cde87656d.js +0 -1
  573. package/assets/esri/core/workers/chunks/634b5ccd7a3ac67f855d.js +0 -1
  574. package/assets/esri/core/workers/chunks/662d13f68cf3ec92439b.js +0 -1
  575. package/assets/esri/core/workers/chunks/663ad15b86936eb06b69.js +0 -1
  576. package/assets/esri/core/workers/chunks/67162b3e2cc1b5dc6818.js +0 -1
  577. package/assets/esri/core/workers/chunks/739e579150bf466d43ae.js +0 -1
  578. package/assets/esri/core/workers/chunks/74df1f3e1e2e524a89d2.js +0 -1
  579. package/assets/esri/core/workers/chunks/76eef4799f6c5fff7e2d.js +0 -1
  580. package/assets/esri/core/workers/chunks/7baf6b1f3f050aa67ae4.js +0 -1
  581. package/assets/esri/core/workers/chunks/7bc5cc5dbf1b7b70ddac.js +0 -1
  582. package/assets/esri/core/workers/chunks/85e27fd949475f9a6bbc.js +0 -1
  583. package/assets/esri/core/workers/chunks/8967288145f8fbd20e7d.js +0 -1
  584. package/assets/esri/core/workers/chunks/8b6ab6202a40fe622833.js +0 -1
  585. package/assets/esri/core/workers/chunks/96ab518eb6ba11333dee.js +0 -1
  586. package/assets/esri/core/workers/chunks/9796d54ff12b6429164a.js +0 -1
  587. package/assets/esri/core/workers/chunks/99a777693e4539f0b03b.js +0 -1
  588. package/assets/esri/core/workers/chunks/9cb2ae42a8e328b1d98d.js +0 -1
  589. package/assets/esri/core/workers/chunks/9d3c58a0ef634d95b7bd.js +0 -1
  590. package/assets/esri/core/workers/chunks/a6ff3db3493543df81bc.js +0 -1
  591. package/assets/esri/core/workers/chunks/a8c13529367c037cdd94.js +0 -1
  592. package/assets/esri/core/workers/chunks/a96afc176041f698c7a1.js +0 -1
  593. package/assets/esri/core/workers/chunks/aa861b8eae6c85f3dad4.js +0 -1
  594. package/assets/esri/core/workers/chunks/ac8dca61ade28c542ae2.js +0 -1
  595. package/assets/esri/core/workers/chunks/ad081d8e49e7f90c3c26.js +0 -1
  596. package/assets/esri/core/workers/chunks/afa6912454f2a5ffadce.js +0 -1
  597. package/assets/esri/core/workers/chunks/b2beb6e1fd2ee6503830.js +0 -1
  598. package/assets/esri/core/workers/chunks/ba615f118a3a8970ef25.js +0 -1
  599. package/assets/esri/core/workers/chunks/ba6654a885be4b7a43f0.js +0 -1
  600. package/assets/esri/core/workers/chunks/bab1cfd0a901181622af.js +0 -1
  601. package/assets/esri/core/workers/chunks/be2b7cce79fd41627931.js +0 -1
  602. package/assets/esri/core/workers/chunks/c080114a69fa95b88d22.js +0 -1
  603. package/assets/esri/core/workers/chunks/c11474b702dfb94e8e87.js +0 -1
  604. package/assets/esri/core/workers/chunks/c13dfdd548dcb1bdb294.js +0 -1
  605. package/assets/esri/core/workers/chunks/c6bd943fe8fd13bb4806.js +0 -1
  606. package/assets/esri/core/workers/chunks/c6f94b92e866b881d9b9.js +0 -1
  607. package/assets/esri/core/workers/chunks/ca2f5faa01d99c21ec14.js +0 -1
  608. package/assets/esri/core/workers/chunks/cd7d83d127e085d52584.js +0 -1
  609. package/assets/esri/core/workers/chunks/cef4af64860ebbfc1c47.js +0 -1
  610. package/assets/esri/core/workers/chunks/cfbffa429d88e7709c3f.js +0 -1
  611. package/assets/esri/core/workers/chunks/d24c4fbc567486b1188f.js +0 -1
  612. package/assets/esri/core/workers/chunks/d52108864136c5a8a618.js +0 -1
  613. package/assets/esri/core/workers/chunks/da1c2873bdbc0956dca0.js +0 -1
  614. package/assets/esri/core/workers/chunks/de03439ca2c9782bf325.js +0 -1
  615. package/assets/esri/core/workers/chunks/de6cff7b6cbbf99b20d1.js +0 -981
  616. package/assets/esri/core/workers/chunks/e079cb1d53aca15b7df2.js +0 -1
  617. package/assets/esri/core/workers/chunks/e59764ee8cf25d4f74e2.js +0 -1
  618. package/assets/esri/core/workers/chunks/e6df9839b551569fbc62.js +0 -1
  619. package/assets/esri/core/workers/chunks/e97e986120aaadad7d4c.js +0 -1
  620. package/assets/esri/core/workers/chunks/f467c8f1fce22f6f599c.js +0 -1
  621. package/assets/esri/core/workers/chunks/f678293de9a6d8f5b5db.js +0 -1
  622. package/assets/esri/core/workers/chunks/f8e7755240a94b499e1f.js +0 -1
  623. package/assets/esri/core/workers/chunks/fd3e5d823dc7917f4b8f.js +0 -1
  624. package/assets/esri/core/workers/chunks/ffaf091c6023225cf5aa.js +0 -1
@@ -2,8 +2,8 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{RgbaFloatEncoding as e}from"../util/RgbaFloatEncoding.glsl.js";import{glsl as t}from"../../shaderModules/interfaces.js";function i(e,t){e.constants.add("stippleAlphaColorDiscard","float",.001),e.constants.add("stippleAlphaHighlightDiscard","float",.5),t.stippleEnabled?r(e,t):o(e)}function r(i,r){const o=!(r.draped&&r.stipplePreferContinuous);i.fragment.include(e),i.vertex.uniforms.add("stipplePatternPixelSize","float"),i.vertex.uniforms.add("pixelRatio","float"),r.draped?i.vertex.uniforms.add("worldToScreenRatio","float"):(i.vertex.uniforms.add("worldToScreenPerDistanceRatio","float"),i.vertex.uniforms.add("camPos","vec3"),i.vertex.code.add(t`float computeWorldToScreenRatio(vec3 segmentCenter) {
6
- float segmentDistanceToCamera = length(segmentCenter - camPos);
5
+ import{RgbaFloatEncoding as e}from"../util/RgbaFloatEncoding.glsl.js";import{glsl as t}from"../../shaderModules/interfaces.js";function i(e,t){e.constants.add("stippleAlphaColorDiscard","float",.001),e.constants.add("stippleAlphaHighlightDiscard","float",.5),t.stippleEnabled?r(e,t):o(e)}function r(i,r){const o=!(r.draped&&r.stipplePreferContinuous);i.fragment.include(e),i.vertex.uniforms.add("stipplePatternPixelSize","float"),i.vertex.uniforms.add("pixelRatio","float"),r.draped?i.vertex.uniforms.add("worldToScreenRatio","float"):(i.vertex.uniforms.add("worldToScreenPerDistanceRatio","float"),i.vertex.uniforms.add("cameraPosition","vec3"),i.vertex.code.add(t`float computeWorldToScreenRatio(vec3 segmentCenter) {
6
+ float segmentDistanceToCamera = length(segmentCenter - cameraPosition);
7
7
  return worldToScreenPerDistanceRatio / segmentDistanceToCamera;
8
8
  }`)),i.varyings.add("vStippleDistance","float"),r.stippleRequiresClamp&&i.varyings.add("vStippleDistanceLimits","vec2"),r.stippleRequiresStretchMeasure&&i.varyings.add("vStipplePatternStretch","float"),i.vertex.code.add(t`
9
9
  float discretizeWorldToScreenRatio(float worldToScreenRatio) {
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{glsl as t}from"../../shaderModules/interfaces.js";function r(r){r.include(e),r.uniforms.add("geometryDepthTexture","sampler2D"),r.uniforms.add("cameraNearFar","vec2"),r.code.add(t`bool geometryDepthTest(vec2 pos, float elementDepth) {
6
- float geometryDepth = linearDepthFromTexture(geometryDepthTexture, pos, cameraNearFar);
5
+ import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{glsl as t}from"../../shaderModules/interfaces.js";function r(r){r.include(e),r.uniforms.add("geometryDepthTexture","sampler2D"),r.uniforms.add("nearFar","vec2"),r.code.add(t`bool geometryDepthTest(vec2 pos, float elementDepth) {
6
+ float geometryDepth = linearDepthFromTexture(geometryDepthTexture, pos, nearFar);
7
7
  return (elementDepth < (geometryDepth - 1.0));
8
8
  }`)}function o(e,t){t.multipassGeometryEnabled&&t.geometryLinearDepthTexture&&e.bindTexture(t.geometryLinearDepthTexture,"geometryDepthTexture")}export{o as bindMultipassGeometryTexture,r as multipassGeometryTest};
@@ -2,11 +2,11 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{glsl as e}from"../../shaderModules/interfaces.js";function r(r,t){r.fragment.uniforms.add("terrainDepthTexture","sampler2D"),r.fragment.uniforms.add("cameraNearFar","vec2"),r.fragment.uniforms.add("inverseViewport","vec2"),r.fragment.code.add(e`
5
+ import{glsl as e}from"../../shaderModules/interfaces.js";function r(r,t){r.fragment.uniforms.add("terrainDepthTexture","sampler2D"),r.fragment.uniforms.add("nearFar","vec2"),r.fragment.uniforms.add("inverseViewport","vec2"),r.fragment.code.add(e`
6
6
  // Compare the linearized depths of fragment and terrain. Discard fragments on the wrong side of the terrain.
7
7
  void terrainDepthTest(vec4 fragCoord, float fragmentDepth){
8
8
 
9
- float terrainDepth = linearDepthFromTexture(terrainDepthTexture, fragCoord.xy * inverseViewport, cameraNearFar);
9
+ float terrainDepth = linearDepthFromTexture(terrainDepthTexture, fragCoord.xy * inverseViewport, nearFar);
10
10
  if(fragmentDepth ${t.cullAboveGround?">":"<="} terrainDepth){
11
11
  discard;
12
12
  }
@@ -2,13 +2,13 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{glsl as e}from"../../shaderModules/interfaces.js";function a(r,d){const o=r.fragment;o.code.add(e`struct ShadingNormalParameters {
5
+ import{neverReached as a}from"../../../../../../core/compilerUtils.js";import{glsl as r}from"../../shaderModules/interfaces.js";function e(e,o){const n=e.fragment;switch(n.code.add(r`struct ShadingNormalParameters {
6
6
  vec3 normalView;
7
7
  vec3 viewDirection;
8
- } shadingParams;`),d.doubleSidedMode===a.DoubleSidedMode.View?o.code.add(e`vec3 shadingNormal(ShadingNormalParameters params) {
8
+ } shadingParams;`),o.doubleSidedMode){case i.None:n.code.add(r`vec3 shadingNormal(ShadingNormalParameters params) {
9
+ return normalize(params.normalView);
10
+ }`);break;case i.View:n.code.add(r`vec3 shadingNormal(ShadingNormalParameters params) {
9
11
  return dot(params.normalView, params.viewDirection) > 0.0 ? normalize(-params.normalView) : normalize(params.normalView);
10
- }`):d.doubleSidedMode===a.DoubleSidedMode.WindingOrder?o.code.add(e`vec3 shadingNormal(ShadingNormalParameters params) {
12
+ }`);break;case i.WindingOrder:n.code.add(r`vec3 shadingNormal(ShadingNormalParameters params) {
11
13
  return gl_FrontFacing ? normalize(params.normalView) : normalize(-params.normalView);
12
- }`):o.code.add(e`vec3 shadingNormal(ShadingNormalParameters params) {
13
- return normalize(params.normalView);
14
- }`)}!function(e){var a;(a=e.DoubleSidedMode||(e.DoubleSidedMode={}))[a.None=0]="None",a[a.View=1]="View",a[a.WindingOrder=2]="WindingOrder",a[a.COUNT=3]="COUNT"}(a||(a={}));export{a as Normals};
14
+ }`);break;default:a(o.doubleSidedMode);case i.COUNT:}}var i;!function(a){a[a.None=0]="None",a[a.View=1]="View",a[a.WindingOrder=2]="WindingOrder",a[a.COUNT=3]="COUNT"}(i||(i={}));export{e as Normals,i as NormalsDoubleSidedMode};
@@ -2,13 +2,13 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{TextureCoordinateAttribute as e}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexTextureCoordinates as r}from"../attributes/VertexTextureCoordinates.glsl.js";import{TextureAtlasLookup as t}from"../util/TextureAtlasLookup.glsl.js";import{glsl as o}from"../../shaderModules/interfaces.js";function u(u,a){const s=u.fragment;a.baseColorTexture?(u.include(r,a),s.uniforms.add("uBaseColorTexture","sampler2D"),s.uniforms.add("uBaseColorTextureSize","vec2"),a.attributeTextureCoordinates===e.AttributeType.Atlas?(u.include(t),s.code.add(o`vec4 readBaseColorTexture() {
5
+ import{TextureCoordinateAttributeType as e}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexTextureCoordinates as r}from"../attributes/VertexTextureCoordinates.glsl.js";import{TextureAtlasLookup as t}from"../util/TextureAtlasLookup.glsl.js";import{glsl as o}from"../../shaderModules/interfaces.js";function u(u,a){const s=u.fragment;a.baseColorTexture?(u.include(r,a),s.uniforms.add("baseColorTexture","sampler2D"),s.uniforms.add("baseColorTextureSize","vec2"),a.attributeTextureCoordinates===e.Atlas?(u.include(t),s.code.add(o`vec4 readBaseColorTexture() {
6
6
  return textureAtlasLookup(
7
- uBaseColorTexture,
8
- uBaseColorTextureSize,
7
+ baseColorTexture,
8
+ baseColorTextureSize,
9
9
  vuv0,
10
10
  vuvRegion
11
11
  );
12
12
  }`)):s.code.add(o`vec4 readBaseColorTexture() {
13
- return texture2D(uBaseColorTexture, vuv0);
13
+ return texture2D(baseColorTexture, vuv0);
14
14
  }`)):s.code.add(o`vec4 readBaseColorTexture() { return vec4(1.0); }`)}export{u as ReadBaseColorTexture};
@@ -2,11 +2,11 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{RgbaFloatEncoding as a}from"../util/RgbaFloatEncoding.glsl.js";import{glsl as e}from"../../shaderModules/interfaces.js";function t(t){t.fragment.include(a),t.fragment.uniforms.add("uShadowMapTex","sampler2D"),t.fragment.uniforms.add("uShadowMapNum","int"),t.fragment.uniforms.add("uShadowMapDistance","vec4"),t.fragment.uniforms.add("uShadowMapMatrix","mat4",4),t.fragment.uniforms.add("uDepthHalfPixelSz","float"),t.fragment.code.add(e`int chooseCascade(float _linearDepth, out mat4 mat) {
6
- vec4 distance = uShadowMapDistance;
5
+ import{RgbaFloatEncoding as e}from"../util/RgbaFloatEncoding.glsl.js";import{glsl as a}from"../../shaderModules/interfaces.js";function t(t){t.fragment.include(e),t.fragment.uniforms.add("shadowMapTex","sampler2D"),t.fragment.uniforms.add("numCascades","int"),t.fragment.uniforms.add("cascadeDistances","vec4"),t.fragment.uniforms.add("shadowMapMatrix","mat4",4),t.fragment.uniforms.add("depthHalfPixelSz","float"),t.fragment.code.add(a`int chooseCascade(float _linearDepth, out mat4 mat) {
6
+ vec4 distance = cascadeDistances;
7
7
  float depth = _linearDepth;
8
8
  int i = depth < distance[1] ? 0 : depth < distance[2] ? 1 : depth < distance[3] ? 2 : 3;
9
- mat = i == 0 ? uShadowMapMatrix[0] : i == 1 ? uShadowMapMatrix[1] : i == 2 ? uShadowMapMatrix[2] : uShadowMapMatrix[3];
9
+ mat = i == 0 ? shadowMapMatrix[0] : i == 1 ? shadowMapMatrix[1] : i == 2 ? shadowMapMatrix[2] : shadowMapMatrix[3];
10
10
  return i;
11
11
  }
12
12
  vec3 lightSpacePosition(vec3 _vpos, mat4 mat) {
@@ -35,10 +35,10 @@ return mix(mix(s00, s10, st.x), mix(s01, s11, st.x), st.y);
35
35
  float readShadowMap(const in vec3 _vpos, float _linearDepth) {
36
36
  mat4 mat;
37
37
  int i = chooseCascade(_linearDepth, mat);
38
- if (i >= uShadowMapNum) { return 0.0; }
38
+ if (i >= numCascades) { return 0.0; }
39
39
  vec3 lvpos = lightSpacePosition(_vpos, mat);
40
40
  if (lvpos.z >= 1.0) { return 0.0; }
41
41
  if (lvpos.x < 0.0 || lvpos.x > 1.0 || lvpos.y < 0.0 || lvpos.y > 1.0) { return 0.0; }
42
42
  vec2 uv = cascadeCoordinates(i, lvpos);
43
- return filterShadow(uv, lvpos, uDepthHalfPixelSz, uShadowMapTex);
44
- }`)}function o(a,e){e.shadowMappingEnabled&&(e.shadowMap.bind(a),e.shadowMap.bindView(a,e.origin))}function i(a,e,t){e.shadowMappingEnabled&&e.shadowMap.bindView(a,t)}function l(a,e){e.shadowMappingEnabled&&e.shadowMap.bindView(a,e.origin)}export{t as ReadShadowMap,o as bindReadShadowMapUniforms,l as bindReadShadowMapView,i as bindReadShadowMapViewCustomOrigin};
43
+ return filterShadow(uv, lvpos, depthHalfPixelSz, shadowMapTex);
44
+ }`)}function i(e,a){a.shadowMappingEnabled&&(a.shadowMap.bind(e),a.shadowMap.bindView(e,a.origin))}function o(e,a,t){a.shadowMappingEnabled&&a.shadowMap.bindView(e,t)}function s(e,a){a.shadowMappingEnabled&&a.shadowMap.bindView(e,a.origin)}export{t as ReadShadowMap,i as bindReadShadowMapUniforms,s as bindReadShadowMapView,o as bindReadShadowMapViewCustomOrigin};
@@ -2,10 +2,10 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{glsl as r}from"../../shaderModules/interfaces.js";function o(o){o.fragment.uniforms.add("lastFrameColorMap","sampler2D"),o.fragment.uniforms.add("reprojectionMat","mat4"),o.fragment.uniforms.add("rpProjectionMat","mat4"),o.fragment.code.add(r`vec2 reprojectionCoordinate(vec3 projectionCoordinate)
5
+ import{glsl as r}from"../../shaderModules/interfaces.js";function o(o){o.fragment.uniforms.add("lastFrameColorMap","sampler2D"),o.fragment.uniforms.add("reprojectionMatrix","mat4"),o.fragment.uniforms.add("proj","mat4"),o.fragment.code.add(r`vec2 reprojectionCoordinate(vec3 projectionCoordinate)
6
6
  {
7
- vec4 zw = rpProjectionMat * vec4(0.0, 0.0, -projectionCoordinate.z, 1.0);
8
- vec4 reprojectedCoord = reprojectionMat * vec4(zw.w * (projectionCoordinate.xy * 2.0 - 1.0), zw.z, zw.w);
7
+ vec4 zw = proj * vec4(0.0, 0.0, -projectionCoordinate.z, 1.0);
8
+ vec4 reprojectedCoord = reprojectionMatrix * vec4(zw.w * (projectionCoordinate.xy * 2.0 - 1.0), zw.z, zw.w);
9
9
  reprojectedCoord.xy /= reprojectedCoord.w;
10
10
  return reprojectedCoord.xy * 0.5 + 0.5;
11
- }`)}function e(r,o){r.bindTexture(o.lastFrameColorTexture,"lastFrameColorMap"),r.setUniformMatrix4fv("reprojectionMat",o.reprojectionMatrix),r.setUniformMatrix4fv("rpProjectionMat",o.camera.projectionMatrix)}export{o as Reprojection,e as bindReprojectionUniforms};
11
+ }`)}function e(r,o){r.bindTexture(o.lastFrameColorTexture,"lastFrameColorMap"),r.setUniformMatrix4fv("reprojectionMatrix",o.reprojectionMatrix),r.setUniformMatrix4fv("proj",o.camera.projectionMatrix)}export{o as Reprojection,e as bindReprojectionUniforms};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{Reprojection as t,bindReprojectionUniforms as o}from"./Reprojection.glsl.js";import{glsl as r}from"../../shaderModules/interfaces.js";function a(o,a){o.fragment.uniforms.add("nearFar","vec2"),o.fragment.uniforms.add("depthMapView","sampler2D"),o.fragment.uniforms.add("ssrViewMat","mat4"),o.fragment.uniforms.add("invResolutionHeight","float"),o.fragment.include(e),o.include(t),o.fragment.code.add(r`
5
+ import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{Reprojection as t,bindReprojectionUniforms as o}from"./Reprojection.glsl.js";import{glsl as r}from"../../shaderModules/interfaces.js";function a(o,a){o.fragment.uniforms.add("nearFar","vec2"),o.fragment.uniforms.add("depthMapView","sampler2D"),o.fragment.uniforms.add("view","mat4"),o.fragment.uniforms.add("invResolutionHeight","float"),o.fragment.include(e),o.include(t),o.fragment.code.add(r`
6
6
  const int maxSteps = ${a.highStepCount?"150;":"75;"}
7
7
 
8
8
  vec4 applyProjectionMat(mat4 projectionMat, vec3 x)
@@ -19,17 +19,17 @@ import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{Repro
19
19
  vec3 viewPosEnd = startPosition;
20
20
 
21
21
  // Project the start position to the screen
22
- vec4 projectedCoordStart = applyProjectionMat(rpProjectionMat, viewPos);
22
+ vec4 projectedCoordStart = applyProjectionMat(proj, viewPos);
23
23
  vec3 Q0 = viewPos / projectedCoordStart.w; // homogeneous camera space
24
24
  float k0 = 1.0/ projectedCoordStart.w;
25
25
 
26
26
  // advance the position in the direction of the reflection
27
27
  viewPos += dir;
28
28
 
29
- vec4 projectedCoordVanishingPoint = applyProjectionMat(rpProjectionMat, dir);
29
+ vec4 projectedCoordVanishingPoint = applyProjectionMat(proj, dir);
30
30
 
31
31
  // Project the advanced position to the screen
32
- vec4 projectedCoordEnd = applyProjectionMat(rpProjectionMat, viewPos);
32
+ vec4 projectedCoordEnd = applyProjectionMat(proj, viewPos);
33
33
  vec3 Q1 = viewPos / projectedCoordEnd.w; // homogeneous camera space
34
34
  float k1 = 1.0/ projectedCoordEnd.w;
35
35
 
@@ -101,4 +101,4 @@ import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{Repro
101
101
  }
102
102
  return vec3(P, 0.0);
103
103
  }
104
- `)}function i(e,t){t.ssrEnabled&&(e.bindTexture(t.linearDepthTexture,"depthMapView"),e.setUniform2fv("nearFar",t.camera.nearFar),e.setUniformMatrix4fv("ssrViewMat",t.camera.viewMatrix),e.setUniform1f("invResolutionHeight",1/t.camera.height),o(e,t))}export{a as ScreenSpaceReflections,i as bindSSRUniforms};
104
+ `)}function i(e,t){t.ssrEnabled&&(e.bindTexture(t.linearDepthTexture,"depthMapView"),e.setUniform2fv("nearFar",t.camera.nearFar),e.setUniformMatrix4fv("view",t.camera.viewMatrix),e.setUniform1f("invResolutionHeight",1/t.camera.height),o(e,t))}export{a as ScreenSpaceReflections,i as bindSSRUniforms};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{glsl as v}from"../../shaderModules/interfaces.js";import{VertexAttribute as e}from"../../../lib/basicInterfaces.js";function o(o,r){r.vvInstancingEnabled&&(r.vvSize||r.vvColor)&&o.attributes.add(e.INSTANCEFEATUREATTRIBUTE,"vec4"),r.vvSize?(o.vertex.uniforms.add("vvSizeMinSize","vec3"),o.vertex.uniforms.add("vvSizeMaxSize","vec3"),o.vertex.uniforms.add("vvSizeOffset","vec3"),o.vertex.uniforms.add("vvSizeFactor","vec3"),o.vertex.uniforms.add("vvSymbolRotationMatrix","mat3"),o.vertex.uniforms.add("vvSymbolAnchor","vec3"),o.vertex.code.add(v`vec3 vvScale(vec4 _featureAttribute) {
5
+ import{glsl as v}from"../../shaderModules/interfaces.js";import{VertexAttribute as e}from"../../../lib/VertexAttribute.js";function o(o,r){r.vvInstancingEnabled&&(r.vvSize||r.vvColor)&&o.attributes.add(e.INSTANCEFEATUREATTRIBUTE,"vec4"),r.vvSize?(o.vertex.uniforms.add("vvSizeMinSize","vec3"),o.vertex.uniforms.add("vvSizeMaxSize","vec3"),o.vertex.uniforms.add("vvSizeOffset","vec3"),o.vertex.uniforms.add("vvSizeFactor","vec3"),o.vertex.uniforms.add("vvSymbolRotationMatrix","mat3"),o.vertex.uniforms.add("vvSymbolAnchor","vec3"),o.vertex.code.add(v`vec3 vvScale(vec4 _featureAttribute) {
6
6
  return clamp(vvSizeOffset + _featureAttribute.x * vvSizeFactor, vvSizeMinSize, vvSizeMaxSize);
7
7
  }
8
8
  vec4 vvTransformPosition(vec3 position, vec4 _featureAttribute) {
@@ -2,12 +2,13 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{FoamColor as e}from"./FoamRendering.glsl.js";import{Gamma as o}from"./Gamma.glsl.js";import{PhysicallyBasedRendering as t}from"./PhysicallyBasedRendering.glsl.js";import{ScreenSpaceReflections as i}from"./ScreenSpaceReflections.glsl.js";import{glsl as r}from"../../shaderModules/interfaces.js";function a(a,n){a.include(t,n),a.include(o),a.include(e),n.ssrEnabled&&a.include(i,n),a.fragment.constants.add("fresnelSky","vec3",[.02,1,15]).add("fresnelMaterial","vec2",[.02,.1]).add("roughness","float",.015).add("foamIntensityExternal","float",1.7).add("ssrIntensity","float",.65).add("ssrHeightFadeStart","float",3e5).add("ssrHeightFadeEnd","float",5e5).add("waterDiffusion","float",.775).add("waterSeeColorMod","float",.8).add("correctionViewingPowerFactor","float",.4).add("skyZenitColor","vec3",[.52,.68,.9]).add("skyColor","vec3",[.67,.79,.9]),a.fragment.code.add(r`PBRShadingWater shadingInfo;
5
+ import{FoamColor as e}from"./FoamRendering.glsl.js";import{Gamma as o}from"./Gamma.glsl.js";import{PhysicallyBasedRendering as r}from"./PhysicallyBasedRendering.glsl.js";import{ScreenSpaceReflections as t}from"./ScreenSpaceReflections.glsl.js";import{CloudsParallaxShading as i}from"../util/CloudsParallaxShading.glsl.js";import{glsl as l}from"../../shaderModules/interfaces.js";function a(a,d){a.include(r,d),a.include(o),a.include(e),d.cloudsReflectionsEnabled&&a.include(i),d.ssrEnabled&&a.include(t,d),a.fragment.constants.add("fresnelSky","vec3",[.02,1,15]).add("fresnelMaterial","vec2",[.02,.1]).add("roughness","float",.015).add("foamIntensityExternal","float",1.7).add("ssrIntensity","float",.65).add("ssrHeightFadeStart","float",3e5).add("ssrHeightFadeEnd","float",5e5).add("waterDiffusion","float",.92).add("waterSeeColorMod","float",.8).add("correctionViewingPowerFactor","float",.4).add("skyZenitColor","vec3",[.52,.68,.9]).add("skyColor","vec3",[.67,.79,.9]).add("cloudFresnelModifier","vec2",[1.2,.01]),a.fragment.code.add(l`PBRShadingWater shadingInfo;
6
6
  vec3 getSkyGradientColor(in float cosTheta, in vec3 horizon, in vec3 zenit) {
7
7
  float exponent = pow((1.0 - cosTheta), fresnelSky[2]);
8
8
  return mix(zenit, horizon, exponent);
9
- }`),a.fragment.code.add(r`vec3 getSeaColor(in vec3 n, in vec3 v, in vec3 l, vec3 color, in vec3 lightIntensity, in vec3 localUp, in float shadow, float foamIntensity, vec3 positionView) {
10
- float reflectionHit = 0.;
9
+ }`),a.fragment.code.add(l`vec3 getSeaColor(in vec3 n, in vec3 v, in vec3 l, vec3 color, in vec3 lightIntensity, in vec3 localUp, in float shadow, float foamIntensity, vec3 positionView, vec3 position) {
10
+ float reflectionHit = 0.0;
11
+ float reflectionHitDiffused = 0.0;
11
12
  vec3 seaWaterColor = linearizeGamma(color);
12
13
  vec3 h = normalize(l + v);
13
14
  shadingInfo.NdotL = clamp(dot(n, l), 0.0, 1.0);
@@ -36,14 +37,19 @@ specular = shadingInfo.NdotL * incidentLight * specularSun;
36
37
  vec3 foam = vec3(0.0);
37
38
  if(upDotV > 0.0) {
38
39
  foam = foamIntensity2FoamColor(foamIntensityExternal, foamIntensity, skyZenitColor, daytimeMod);
39
- }`),n.ssrEnabled?a.fragment.code.add(r`vec4 viewPosition = vec4(positionView.xyz, 1.0);
40
+ }
41
+ float correctionViewingFactor = pow(max(dot(v, localUp), 0.0), correctionViewingPowerFactor);
42
+ vec3 normalCorrectedClouds = mix(localUp, n, correctionViewingFactor);
43
+ vec3 reflectedWorld = normalize(reflect(-v, normalCorrectedClouds));`),d.cloudsReflectionsEnabled&&a.fragment.code.add(l`vec4 cloudsColor = crossFade == 0 ? renderCloud(reflectedWorld, position) : renderCloudCrossFade(reflectedWorld, position);
44
+ cloudsColor.a = 1.0 - cloudsColor.a;
45
+ cloudsColor = pow(cloudsColor, vec4(GAMMA));
46
+ cloudsColor *= clamp(fresnelModifier.y*cloudFresnelModifier[0] - cloudFresnelModifier[1], 0.0, 1.0) * (1.0 - totalFadeInOut);`),d.ssrEnabled?a.fragment.code.add(l`vec4 viewPosition = vec4(positionView.xyz, 1.0);
40
47
  vec3 viewDir = normalize(viewPosition.xyz);
41
- vec4 viewNormalVectorCoordinate = ssrViewMat *vec4(n, 0.0);
48
+ vec4 viewNormalVectorCoordinate = view *vec4(n, 0.0);
42
49
  vec3 viewNormal = normalize(viewNormalVectorCoordinate.xyz);
43
- vec4 viewUp = ssrViewMat *vec4(localUp, 0.0);
44
- float correctionViewingFactor = pow(max(dot(-viewDir, viewUp.xyz), 0.0), correctionViewingPowerFactor);
45
- vec3 viewNormalCorrected = mix(viewUp.xyz, viewNormal, correctionViewingFactor);
46
- vec3 reflected = normalize(reflect(viewDir, viewNormalCorrected));
50
+ vec4 viewUp = view *vec4(localUp, 0.0);
51
+ vec3 viewNormalCorrectedSSR = mix(viewUp.xyz, viewNormal, correctionViewingFactor);
52
+ vec3 reflected = normalize(reflect(viewDir, viewNormalCorrectedSSR));
47
53
  vec3 hitCoordinate = screenSpaceIntersection( normalize(reflected), viewPosition.xyz, viewDir, viewUp.xyz);
48
54
  vec3 reflectedColor = vec3(0.0);
49
55
  if (hitCoordinate.z > 0.0)
@@ -51,10 +57,12 @@ if (hitCoordinate.z > 0.0)
51
57
  vec2 reprojectedCoordinate = reprojectionCoordinate(hitCoordinate);
52
58
  vec2 dCoords = smoothstep(0.3, 0.6, abs(vec2(0.5, 0.5) - hitCoordinate.xy));
53
59
  float heightMod = smoothstep(ssrHeightFadeEnd, ssrHeightFadeStart, -positionView.z);
54
- reflectionHit = waterDiffusion * clamp(1.0 - (1.3*dCoords.y), 0.0, 1.0) * heightMod;
55
- reflectedColor = linearizeGamma(texture2D(lastFrameColorMap, reprojectedCoordinate).xyz)* reflectionHit * fresnelModifier.y * ssrIntensity;
60
+ reflectionHit = clamp(1.0 - (1.3*dCoords.y), 0.0, 1.0) * heightMod;
61
+ reflectionHitDiffused = waterDiffusion * reflectionHit;
62
+ reflectedColor = linearizeGamma(texture2D(lastFrameColorMap, reprojectedCoordinate).xyz)* reflectionHitDiffused * fresnelModifier.y * ssrIntensity;
56
63
  }
57
- float seeColorMod = mix(waterSeeColorMod, waterSeeColorMod*0.5, reflectionHit);
58
- return tonemapACES((1. - reflectionHit) * reflSky + reflectedColor + reflSea * seeColorMod + specular + foam);
59
- }`):a.fragment.code.add(r`return tonemapACES(reflSky + reflSea * waterSeeColorMod + specular + foam);
64
+ float seeColorMod = mix(waterSeeColorMod, waterSeeColorMod*0.5, reflectionHitDiffused);
65
+ vec3 waterRenderedColor = tonemapACES((1.0 - reflectionHitDiffused) * reflSky + reflectedColor + reflSea * seeColorMod + specular + foam);`):a.fragment.code.add(l`vec3 waterRenderedColor = tonemapACES(reflSky + reflSea * waterSeeColorMod + specular + foam);`),d.cloudsReflectionsEnabled?d.ssrEnabled?a.fragment.code.add(l`return waterRenderedColor * (1.0 - (1.0 - reflectionHit) * cloudsColor.a) + (1.0 - reflectionHit) * cloudsColor.xyz;
66
+ }`):a.fragment.code.add(l`return waterRenderedColor * (1.0 - cloudsColor.a) + cloudsColor.xyz;
67
+ }`):a.fragment.code.add(l`return waterRenderedColor;
60
68
  }`)}export{a as Water};
@@ -16,9 +16,9 @@ return mix(color1 * float(isValid1), color0, float(isValid0));
16
16
  }`),t.fragment.code.add(a`vec4 getCombinedOverlayColor() {
17
17
  return overlayOpacity * getOverlayColor(ovColorTex, vtcOverlay);
18
18
  }`),d.pbrMode!==o.Water&&d.pbrMode!==o.WaterOnIntegratedMesh||(t.include(e),t.fragment.code.add(a`vec4 getOverlayWaterColor(vec4 maskInput, vec4 colorInput, vec3 vposEyeDir,
19
- float shadow, vec3 localUp, mat3 tbn, vec3 position) {
19
+ float shadow, vec3 localUp, mat3 tbn, vec3 position, vec3 positionWorld) {
20
20
  vec3 n = normalize(tbn * (2.0 * maskInput.rgb - vec3(1.0)));
21
21
  vec3 v = vposEyeDir;
22
- vec3 final = getSeaColor(n, v, lightingMainDirection, colorInput.rgb, lightingMainIntensity, localUp, 1.0 - shadow, maskInput.w, position);
22
+ vec3 final = getSeaColor(n, v, lightingMainDirection, colorInput.rgb, lightingMainIntensity, localUp, 1.0 - shadow, maskInput.w, position, positionWorld);
23
23
  return vec4(final, colorInput.w);
24
24
  }`))}!function(e){e[e.Disabled=0]="Disabled",e[e.Enabled=1]="Enabled",e[e.EnabledWithWater=2]="EnabledWithWater",e[e.COUNT=3]="COUNT"}(t||(t={}));export{d as Overlay,t as OverlayMode};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import"../ShaderOutputOptions.js";import"../Slice.glsl.js";import"../Transform.glsl.js";import"../attributes/VertexTangent.glsl.js";import"../output/OutputDepth.glsl.js";import"../output/OutputHighlight.glsl.js";import"../shading/EvaluateSceneLighting.glsl.js";import"../shading/NormalUtils.glsl.js";import"../shading/PhysicallyBasedRenderingParameters.glsl.js";import"./Overlay.glsl.js";import"./Skirts.glsl.js";import"./TerrainTexture.glsl.js";import"../util/HeaderComment.glsl.js";import"../../shaderModules/interfaces.js";import"../../shaderModules/ShaderBuilder.js";import"../../../lib/basicInterfaces.js";export{b as build}from"../../../../../../chunks/Terrain.glsl.js";
5
+ import"../ShaderOutputOptions.js";import"../Slice.glsl.js";import"../Transform.glsl.js";import"../attributes/VertexTangent.glsl.js";import"../output/OutputDepth.glsl.js";import"../output/OutputHighlight.glsl.js";import"../shading/EvaluateSceneLighting.glsl.js";import"../shading/NormalUtils.glsl.js";import"../shading/PhysicallyBasedRenderingParameters.glsl.js";import"./Overlay.glsl.js";import"./Skirts.glsl.js";import"./TerrainTexture.glsl.js";import"../util/HeaderComment.glsl.js";import"../../shaderModules/interfaces.js";import"../../shaderModules/ShaderBuilder.js";import"../../../lib/VertexAttribute.js";export{b as build}from"../../../../../../chunks/Terrain.glsl.js";
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import"../../shaderModules/interfaces.js";import"../../shaderModules/ShaderBuilder.js";import"../../../lib/basicInterfaces.js";export{b as build}from"../../../../../../chunks/BlendLayers.glsl.js";
5
+ import"../../shaderModules/interfaces.js";import"../../shaderModules/ShaderBuilder.js";import"../../../lib/VertexAttribute.js";export{b as build}from"../../../../../../chunks/BlendLayers.glsl.js";
@@ -2,16 +2,16 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{glsl as o}from"../../shaderModules/interfaces.js";function t(t){t.fragment.uniforms.add("anchorPosition","vec3").add("anchorPositionCrossFade","vec3").add("fadeInOutFactor","float").add("cloudsHeight","float").add("rotationMatrixClouds","mat4").add("rotationMatrixCloudsCrossFade","mat4").add("radiusCurvatureCorrectionFactor","float").add("radius","float").add("cameraPosition","vec3").add("totalFadeInOut","float").add("crossFade","int").add("crossFadeAnchorFactor","float").add("cloudVariables","vec2").add("cubeMap","samplerCube"),t.fragment.code.add(o`vec3 intersectWithCloudLayer(vec3 dir, vec3 camPos, vec3 spherePos, float radiusReduction)
5
+ import{glsl as o}from"../../shaderModules/interfaces.js";function t(t){t.fragment.uniforms.add("anchorPosition","vec3").add("anchorPositionCrossFade","vec3").add("fadeInOutFactor","float").add("cloudsHeight","float").add("rotationMatrixClouds","mat4").add("rotationMatrixCloudsCrossFade","mat4").add("radiusCurvatureCorrectionFactor","float").add("radius","float").add("cameraPosition","vec3").add("totalFadeInOut","float").add("crossFade","int").add("crossFadeAnchorFactor","float").add("cloudVariables","vec2").add("cubeMap","samplerCube"),t.fragment.code.add(o`vec3 intersectWithCloudLayer(vec3 dir, vec3 cameraPosition, vec3 spherePos, float radiusReduction)
6
6
  {
7
7
  vec3 dirAnchor = normalize(spherePos);
8
8
  vec3 sphereOriginOffset = dirAnchor * radiusReduction;
9
9
  float radiusClouds = radius + cloudsHeight - radiusReduction;
10
- float B = 2.0 * dot(camPos - sphereOriginOffset, dir);
11
- float C = dot(camPos - sphereOriginOffset, camPos - sphereOriginOffset) - radiusClouds * radiusClouds;
10
+ float B = 2.0 * dot(cameraPosition - sphereOriginOffset, dir);
11
+ float C = dot(cameraPosition - sphereOriginOffset, cameraPosition - sphereOriginOffset) - radiusClouds * radiusClouds;
12
12
  float det = B * B - 4.0 * C;
13
13
  float pointIntDist = max(0.0, 0.5 *(-B + sqrt(det)));
14
- vec3 intersectionPont = camPos + dir * pointIntDist;
14
+ vec3 intersectionPont = cameraPosition + dir * pointIntDist;
15
15
  intersectionPont = intersectionPont - spherePos;
16
16
  return intersectionPont;
17
17
  }`),t.fragment.code.add(o`vec3 correctForPlanetCurvature(vec3 dir)
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{j as i}from"../../../../../../chunks/mat4.js";import{c as n}from"../../../../../../chunks/mat4f32.js";function o(i,n,o){i.setUniform3f("camPos",o[3]-n[0],o[7]-n[1],o[11]-n[2])}function r(i,n){i.setUniformMatrix4fv("proj",n)}function t(i,n){i.setUniform2fv("nearFar",n)}function f(n,o,r){i(c,r,o),n.setUniform3fv("localOrigin",o),n.setUniformMatrix4fv("view",c)}function a(i,n){f(i,n.origin,n.camera.viewMatrix)}function m(i,n){i.setUniform4fv("viewport",n.camera.fullViewport)}const c=n();export{o as bindCameraPosition,t as bindNearFar,r as bindProjectionMatrix,a as bindView,f as bindViewCustomOrigin,m as bindViewport};
5
+ import{j as i}from"../../../../../../chunks/mat4.js";import{c as o}from"../../../../../../chunks/mat4f32.js";function t(i,o,t){i.setUniform3f("cameraPosition",t[3]-o[0],t[7]-o[1],t[11]-o[2])}function n(i,o){i.setUniformMatrix4fv("proj",o)}function r(o,t,n){i(m,n,t),o.setUniform3fv("localOrigin",t),o.setUniformMatrix4fv("view",m)}function f(i,o){r(i,o.origin,o.camera.viewMatrix)}function a(i,o){i.setUniform4fv("viewport",o.camera.fullViewport)}const m=o();export{t as bindCameraPosition,n as bindProjectionMatrix,f as bindView,r as bindViewCustomOrigin,a as bindViewport};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import t from"../../../../core/Logger.js";import{lerp as i}from"../../../../core/mathUtils.js";import{isSome as e}from"../../../../core/maybe.js";import{createScreenPointArray as r,createRenderScreenPointArray3 as s}from"../../../../core/screenUtils.js";import{c as h,m as o,l as n,a,t as _,n as p}from"../../../../chunks/mat4.js";import{c as u}from"../../../../chunks/mat4f64.js";import{c as v,e as c}from"../../../../chunks/vec2.js";import{f as w}from"../../../../chunks/vec2f64.js";import{g as d,f as l,i as g,k as y,v as m,d as f,w as x,x as D,a as M,l as T,s as j,c as R,n as F,r as P}from"../../../../chunks/vec3.js";import{c as O,a as V,f as I}from"../../../../chunks/vec3f64.js";import{c as S,g as E,i as L,t as b}from"../../../../chunks/vec4.js";import{f as H,c as k}from"../../../../chunks/vec4f64.js";import{create as B,copy as G,fromMatrix as U}from"../../../../geometry/support/frustum.js";import{create as A}from"../../../../geometry/support/ray.js";import{projectPointSignedLength as C}from"../../../../geometry/support/vector.js";import{ViewingMode as z}from"../../../ViewingMode.js";import{fovd2fovx as W,fovx2fovd as X,fovd2fovy as Y,fovy2fovd as q}from"./Util.js";const N=t.getLogger("esri.views.3d.webgl-engine.lib.Camera");class J{constructor(t=null,i=null,r=null){this._viewUp=O(),this._viewForward=O(),this._viewRight=O(),this._ray=A(),this._viewport=H(0,0,1,1),this._padding=H(0,0,0,0),this._fov=55/180*Math.PI,this._nearFar=w(1,1e3),this._viewDirty=!0,this._viewMatrix=u(),this._projectionDirty=!0,this._projectionMatrix=u(),this._viewProjectionDirty=!0,this._viewProjectionMatrix=u(),this._viewInverseTransposeMatrixDirty=!0,this._viewInverseTransposeMatrix=u(),this._frustumDirty=!0,this._frustum=B(),this._fullViewport=k(),this.pixelRatio=1,this.relativeElevation=0,e(t)&&d(this._ray.origin,t),this._center=e(i)?V(i):O(),this._up=e(r)?V(r):I(0,0,1)}get eye(){return this._ray.origin}set eye(t){this._compareAndSetView(t,this._ray.origin)}get center(){return this._center}set center(t){this._compareAndSetView(t,this._center)}get ray(){return l(this._ray.direction,this.center,this.eye),this._ray}get up(){return this._up}set up(t){this._compareAndSetView(t,this._up)}get viewMatrix(){return this._ensureViewClean(),this._viewMatrix}set viewMatrix(t){h(this._viewMatrix,t),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get viewForward(){return this._ensureViewClean(),this._viewForward}get viewUp(){return this._ensureViewClean(),this._viewUp}get viewRight(){return this._ensureViewClean(),this._viewRight}get nearFar(){return this._nearFar}get near(){return this._nearFar[0]}set near(t){this._nearFar[0]!==t&&(this._nearFar[0]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get far(){return this._nearFar[1]}set far(t){this._nearFar[1]!==t&&(this._nearFar[1]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get viewport(){return this._viewport}set viewport(t){this.x=t[0],this.y=t[1],this.width=t[2],this.height=t[3]}get x(){return this._viewport[0]}set x(t){t+=this._padding[it.LEFT],this._viewport[0]!==t&&(this._viewport[0]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get y(){return this._viewport[1]}set y(t){t+=this._padding[it.BOTTOM],this._viewport[1]!==t&&(this._viewport[1]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get width(){return this._viewport[2]}set width(t){this._viewport[2]!==t&&(this._viewport[2]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get height(){return this._viewport[3]}set height(t){this._viewport[3]!==t&&(this._viewport[3]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get fullWidth(){return this._viewport[2]+this._padding[it.RIGHT]+this._padding[it.LEFT]}set fullWidth(t){this.width=t-(this._padding[it.RIGHT]+this._padding[it.LEFT])}get fullHeight(){return this._viewport[3]+this._padding[it.TOP]+this._padding[it.BOTTOM]}set fullHeight(t){this.height=t-(this._padding[it.TOP]+this._padding[it.BOTTOM])}get fullViewport(){return this._fullViewport[0]=this._viewport[0]-this._padding[it.LEFT],this._fullViewport[1]=this._viewport[1]-this._padding[it.BOTTOM],this._fullViewport[2]=this.fullWidth,this._fullViewport[3]=this.fullHeight,this._fullViewport}get aspect(){return this.width/this.height}get padding(){return this._padding}set padding(t){this._padding[it.TOP]===t[it.TOP]&&this._padding[it.RIGHT]===t[it.RIGHT]&&this._padding[it.BOTTOM]===t[it.BOTTOM]&&this._padding[it.LEFT]===t[it.LEFT]||(this._viewport[0]+=t[it.LEFT]-this._padding[it.LEFT],this._viewport[1]+=t[it.BOTTOM]-this._padding[it.BOTTOM],this._viewport[2]-=t[it.RIGHT]+t[it.LEFT]-(this._padding[it.RIGHT]+this._padding[it.LEFT]),this._viewport[3]-=t[it.TOP]+t[it.BOTTOM]-(this._padding[it.TOP]+this._padding[it.BOTTOM]),S(this._padding,t),this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get viewProjectionMatrix(){return this._viewProjectionDirty&&(o(this._viewProjectionMatrix,this.projectionMatrix,this.viewMatrix),this._viewProjectionDirty=!1),this._viewProjectionMatrix}get projectionMatrix(){if(this._projectionDirty){const t=this.width,i=this.height,e=this.near*Math.tan(this.fovY/2),r=e*this.aspect;n(this._projectionMatrix,-r*(1+2*this._padding[it.LEFT]/t),r*(1+2*this._padding[it.RIGHT]/t),-e*(1+2*this._padding[it.BOTTOM]/i),e*(1+2*this._padding[it.TOP]/i),this.near,this.far),this._projectionDirty=!1}return this._projectionMatrix}set projectionMatrix(t){h(this._projectionMatrix,t),this._projectionDirty=!1,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fov(){return this._fov}set fov(t){this._fov=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovX(){return W(this._fov,this.width,this.height)}set fovX(t){this._fov=X(t,this.width,this.height),this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovY(){return Y(this._fov,this.width,this.height)}set fovY(t){this._fov=q(t,this.width,this.height),this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get distance(){return g(this._center,this.eye)}get frustum(){return this._recomputeFrustum(),this._frustum}get viewInverseTransposeMatrix(){return(this._viewInverseTransposeMatrixDirty||this._viewDirty)&&(a(this._viewInverseTransposeMatrix,this.viewMatrix),_(this._viewInverseTransposeMatrix,this._viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this._viewInverseTransposeMatrix}depthNDCToWorld(t){const i=2*t-1;return 2*this.near*this.far/(this.far+this.near-i*(this.far-this.near))}get perRenderPixelRatio(){return Math.tan(this.fovX/2)/(this.width/2)}get perScreenPixelRatio(){return this.perRenderPixelRatio*this.pixelRatio}get aboveGround(){return this.relativeElevation&&this.relativeElevation>=0}copyFrom(t){d(this._ray.origin,t.eye),d(this._center,t.center),d(this._up,t.up),S(this._viewport,t.viewport),S(this._padding,t.padding),v(this._nearFar,t.nearFar),this._fov=t.fov,this.relativeElevation=t.relativeElevation;const i=t;return this._viewDirty=i._viewDirty,this._viewDirty||(h(this._viewMatrix,t.viewMatrix),d(this._viewRight,t.viewRight),d(this._viewUp,t.viewUp),d(this._viewForward,t.viewForward)),i._projectionDirty?this._projectionDirty=!0:(h(this._projectionMatrix,t.projectionMatrix),this._projectionDirty=!1),this._viewProjectionDirty=!0,this._frustumDirty=i._frustumDirty,this._frustumDirty||(G(t.frustum,this._frustum),this._frustumDirty=!1),i._viewInverseTransposeMatrixDirty?this._viewInverseTransposeMatrixDirty=!0:(h(this._viewInverseTransposeMatrix,t.viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),S(this._fullViewport,t.fullViewport),this.pixelRatio=t.pixelRatio,this}copyViewFrom(t){this.eye=t.eye,this.center=t.center,this.up=t.up}clone(){return(new J).copyFrom(this)}equals(t){return y(this.eye,t.eye)&&y(this._center,t.center)&&y(this._up,t.up)&&E(this._viewport,t.viewport)&&E(this._padding,t.padding)&&c(this._nearFar,t.nearFar)&&this._fov===t.fov&&this.pixelRatio===t.pixelRatio&&this.relativeElevation===t.relativeElevation}almostEquals(t){if(this.pixelRatio!==t.pixelRatio||Math.abs(t.fov-this._fov)>=.001)return!1;const i=5e-4,e=1-1e-10;m(Z,t.eye,t.center),m($,this.eye,this._center);const r=f(Z,$),s=x(Z),h=x($);return r*r>=e*s*h&&D(t.eye,this.eye)<Math.max(s,h)*i*i&&L(t.padding,this._padding)<.5&&L(t.viewport,this._viewport)<.5}computeRenderPixelSizeAt(t){return this.computeRenderPixelSizeAtDist(this._viewDirectionDistance(t))}computeRenderPixelSizeAtDist(t){return t*this.perRenderPixelRatio}computeScreenPixelSizeAt(t){return this.computeScreenPixelSizeAtDist(this._viewDirectionDistance(t))}_viewDirectionDistance(t){return Math.abs(C(this.viewForward,l(Z,t,this.eye)))}computeScreenPixelSizeAtDist(t){return t*this.perScreenPixelRatio}computeDistanceFromRadius(t,i){return t/Math.tan(Math.min(this.fovX,this.fovY)/(2*(i||1)))}getScreenCenter(t=r()){return t[0]=(this.padding[it.LEFT]+this.width/2)/this.pixelRatio,t[1]=(this.padding[it.TOP]+this.height/2)/this.pixelRatio,t}getRenderCenter(t,i=.5,e=.5){return t[0]=this.padding[it.LEFT]+this.width*i,t[1]=this.padding[it.BOTTOM]+this.height*e,t[2]=.5,t}setGLViewport(t){const i=this.viewport,e=this.padding;t.setViewport(i[0]-e[3],i[1]-e[2],i[2]+e[1]+e[3],i[3]+e[0]+e[2])}applyProjection(t,e,r=!1){t!==K&&d(K,t),K[3]=1,r&&(e[2]=-K[2]),b(K,K,this.projectionMatrix),M(K,K,1/Math.abs(K[3]));const s=this.fullViewport;return e[0]=i(0,s[0]+s[2],.5+.5*K[0]),e[1]=i(0,s[1]+s[3],.5+.5*K[1]),r||(e[2]=.5*(K[2]+1)),e}projectToScreen(t,i){this.projectToRenderScreen(t,tt),this.renderToScreen(tt,i)}projectToRenderScreen(t,e){if(K[0]=t[0],K[1]=t[1],K[2]=t[2],K[3]=1,b(K,K,this.viewProjectionMatrix),0===K[3])return null;M(K,K,1/Math.abs(K[3]));const r=this.fullViewport;return"x"in e?(e.x=i(0,r[0]+r[2],.5+.5*K[0]),e.y=i(0,r[1]+r[3],.5+.5*K[1])):(e[0]=i(0,r[0]+r[2],.5+.5*K[0]),e[1]=i(0,r[1]+r[3],.5+.5*K[1]),e.length>2&&(e[2]=.5*(K[2]+1))),e}unprojectFromScreen(t,i){return this.unprojectFromRenderScreen(this.screenToRender(t,tt),i)}unprojectFromRenderScreen(t,i){if(o(Q,this.projectionMatrix,this.viewMatrix),!a(Q,Q))return null;const e=this.fullViewport;return K[0]=2*(t[0]-e[0])/e[2]-1,K[1]=2*(t[1]-e[1])/e[3]-1,K[2]=2*t[2]-1,K[3]=1,b(K,K,Q),0===K[3]?null:(i[0]=K[0]/K[3],i[1]=K[1]/K[3],i[2]=K[2]/K[3],i)}constrainWindowSize(t,i,e,r=e){const s=t*this.pixelRatio,h=i*this.pixelRatio,o=Math.max(s-e/2,0),n=Math.max(this.fullHeight-h-r/2,0),a=-Math.min(s-e/2,0),_=-Math.min(this.fullHeight-h-r/2,0);return[o,n,e-a- -Math.min(this.fullWidth-s-e/2,0),r-_- -Math.min(h-r/2,0)]}computeUp(t){t===z.Global?this._computeUpGlobal():this._computeUpLocal()}screenToRender(t,i){const e=t[0]*this.pixelRatio,r=this.fullHeight-t[1]*this.pixelRatio;return i[0]=e,i[1]=r,i}renderToScreen(t,i){const e=t[0]/this.pixelRatio,r=(this.fullHeight-t[1])/this.pixelRatio;i[0]=e,i[1]=r}_computeUpGlobal(){l(Z,this.center,this.eye);const t=T(this.center);t<1?(j(this._up,0,0,1),this._markViewDirty()):Math.abs(f(Z,this.center))>.9999*T(Z)*t||(R(this._up,Z,this.center),R(this._up,this._up,Z),F(this._up,this._up),this._markViewDirty())}_computeUpLocal(){P(Z,this.eye,this.center),Math.abs(Z[2])<=.9999&&(M(Z,Z,Z[2]),j(this._up,-Z[0],-Z[1],1-Z[2]),F(this._up,this._up),this._markViewDirty())}_compareAndSetView(t,i){"number"==typeof t[0]&&isFinite(t[0])&&"number"==typeof t[1]&&isFinite(t[1])&&"number"==typeof t[2]&&isFinite(t[2])?y(t,i)||(d(i,t),this._markViewDirty()):N.warn("Camera vector contains invalid number, ignoring value")}_markViewDirty(){this._viewDirty=!0,this._frustumDirty=!0,this._viewProjectionDirty=!0}_recomputeFrustum(){this._frustumDirty&&(U(this.viewMatrix,this.projectionMatrix,this._frustum),this._frustumDirty=!1)}_ensureViewClean(){this._viewDirty&&(p(this._viewMatrix,this.eye,this._center,this._up),j(this._viewForward,-this._viewMatrix[2],-this._viewMatrix[6],-this._viewMatrix[10]),j(this._viewUp,this._viewMatrix[1],this._viewMatrix[5],this._viewMatrix[9]),j(this._viewRight,this._viewMatrix[0],this._viewMatrix[4],this._viewMatrix[8]),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0)}}const K=k(),Q=u(),Z=O(),$=O(),tt=s();var it;!function(t){t[t.TOP=0]="TOP",t[t.RIGHT=1]="RIGHT",t[t.BOTTOM=2]="BOTTOM",t[t.LEFT=3]="LEFT"}(it||(it={}));export{it as PaddingSide,J as default};
5
+ import t from"../../../../core/Logger.js";import{lerp as i}from"../../../../core/mathUtils.js";import{isSome as e}from"../../../../core/maybe.js";import{createScreenPointArray as r,createRenderScreenPointArray3 as s}from"../../../../core/screenUtils.js";import{c as h,m as o,l as n,a,t as _,n as p}from"../../../../chunks/mat4.js";import{c as u}from"../../../../chunks/mat4f64.js";import{c as v,e as c}from"../../../../chunks/vec2.js";import{f as w}from"../../../../chunks/vec2f64.js";import{g as d,f as l,i as g,k as y,v as m,d as f,w as x,x as D,a as M,l as T,s as j,c as R,n as F,r as P}from"../../../../chunks/vec3.js";import{c as O,a as V,f as I}from"../../../../chunks/vec3f64.js";import{c as S,g as E,i as L,t as b}from"../../../../chunks/vec4.js";import{f as H,c as k}from"../../../../chunks/vec4f64.js";import{create as B,copy as G,fromMatrix as U}from"../../../../geometry/support/frustum.js";import{create as A}from"../../../../geometry/support/ray.js";import{projectPointSignedLength as C}from"../../../../geometry/support/vector.js";import{ViewingMode as z}from"../../../ViewingMode.js";import{fovd2fovx as W,fovx2fovd as X,fovd2fovy as Y,fovy2fovd as q}from"./Util.js";const N=t.getLogger("esri.views.3d.webgl-engine.lib.Camera");class J{constructor(t=null,i=null,r=null){this._viewUp=O(),this._viewForward=O(),this._viewRight=O(),this._ray=A(),this._viewport=H(0,0,1,1),this._padding=H(0,0,0,0),this._fov=55/180*Math.PI,this._nearFar=w(1,1e3),this._viewDirty=!0,this._viewMatrix=u(),this._projectionDirty=!0,this._projectionMatrix=u(),this._viewProjectionDirty=!0,this._viewProjectionMatrix=u(),this._viewInverseTransposeMatrixDirty=!0,this._viewInverseTransposeMatrix=u(),this._frustumDirty=!0,this._frustum=B(),this._fullViewport=k(),this.pixelRatio=1,this.relativeElevation=0,e(t)&&d(this._ray.origin,t),this._center=e(i)?V(i):O(),this._up=e(r)?V(r):I(0,0,1)}get eye(){return this._ray.origin}set eye(t){this._compareAndSetView(t,this._ray.origin)}get center(){return this._center}set center(t){this._compareAndSetView(t,this._center)}get ray(){return l(this._ray.direction,this.center,this.eye),this._ray}get up(){return this._up}set up(t){this._compareAndSetView(t,this._up)}get viewMatrix(){return this._ensureViewClean(),this._viewMatrix}set viewMatrix(t){h(this._viewMatrix,t),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get viewForward(){return this._ensureViewClean(),this._viewForward}get viewUp(){return this._ensureViewClean(),this._viewUp}get viewRight(){return this._ensureViewClean(),this._viewRight}get nearFar(){return this._nearFar}get near(){return this._nearFar[0]}set near(t){this._nearFar[0]!==t&&(this._nearFar[0]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get far(){return this._nearFar[1]}set far(t){this._nearFar[1]!==t&&(this._nearFar[1]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get viewport(){return this._viewport}set viewport(t){this.x=t[0],this.y=t[1],this.width=t[2],this.height=t[3]}get x(){return this._viewport[0]}set x(t){t+=this._padding[it.LEFT],this._viewport[0]!==t&&(this._viewport[0]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get y(){return this._viewport[1]}set y(t){t+=this._padding[it.BOTTOM],this._viewport[1]!==t&&(this._viewport[1]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get width(){return this._viewport[2]}set width(t){this._viewport[2]!==t&&(this._viewport[2]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get height(){return this._viewport[3]}set height(t){this._viewport[3]!==t&&(this._viewport[3]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get fullWidth(){return this._viewport[2]+this._padding[it.RIGHT]+this._padding[it.LEFT]}set fullWidth(t){this.width=t-(this._padding[it.RIGHT]+this._padding[it.LEFT])}get fullHeight(){return this._viewport[3]+this._padding[it.TOP]+this._padding[it.BOTTOM]}set fullHeight(t){this.height=t-(this._padding[it.TOP]+this._padding[it.BOTTOM])}get fullViewport(){return this._fullViewport[0]=this._viewport[0]-this._padding[it.LEFT],this._fullViewport[1]=this._viewport[1]-this._padding[it.BOTTOM],this._fullViewport[2]=this.fullWidth,this._fullViewport[3]=this.fullHeight,this._fullViewport}get aspect(){return this.width/this.height}get padding(){return this._padding}set padding(t){this._padding[it.TOP]===t[it.TOP]&&this._padding[it.RIGHT]===t[it.RIGHT]&&this._padding[it.BOTTOM]===t[it.BOTTOM]&&this._padding[it.LEFT]===t[it.LEFT]||(this._viewport[0]+=t[it.LEFT]-this._padding[it.LEFT],this._viewport[1]+=t[it.BOTTOM]-this._padding[it.BOTTOM],this._viewport[2]-=t[it.RIGHT]+t[it.LEFT]-(this._padding[it.RIGHT]+this._padding[it.LEFT]),this._viewport[3]-=t[it.TOP]+t[it.BOTTOM]-(this._padding[it.TOP]+this._padding[it.BOTTOM]),S(this._padding,t),this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get viewProjectionMatrix(){return this._viewProjectionDirty&&(o(this._viewProjectionMatrix,this.projectionMatrix,this.viewMatrix),this._viewProjectionDirty=!1),this._viewProjectionMatrix}get projectionMatrix(){if(this._projectionDirty){const t=this.width,i=this.height,e=this.near*Math.tan(this.fovY/2),r=e*this.aspect;n(this._projectionMatrix,-r*(1+2*this._padding[it.LEFT]/t),r*(1+2*this._padding[it.RIGHT]/t),-e*(1+2*this._padding[it.BOTTOM]/i),e*(1+2*this._padding[it.TOP]/i),this.near,this.far),this._projectionDirty=!1}return this._projectionMatrix}set projectionMatrix(t){h(this._projectionMatrix,t),this._projectionDirty=!1,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fov(){return this._fov}set fov(t){this._fov=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovX(){return W(this._fov,this.width,this.height)}set fovX(t){this._fov=X(t,this.width,this.height),this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovY(){return Y(this._fov,this.width,this.height)}set fovY(t){this._fov=q(t,this.width,this.height),this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get distance(){return g(this._center,this.eye)}get frustum(){return this._recomputeFrustum(),this._frustum}get viewInverseTransposeMatrix(){return(this._viewInverseTransposeMatrixDirty||this._viewDirty)&&(a(this._viewInverseTransposeMatrix,this.viewMatrix),_(this._viewInverseTransposeMatrix,this._viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this._viewInverseTransposeMatrix}depthNDCToWorld(t){const i=2*t-1;return 2*this.near*this.far/(this.far+this.near-i*(this.far-this.near))}get perRenderPixelRatio(){return Math.tan(this.fovX/2)/(this.width/2)}get perScreenPixelRatio(){return this.perRenderPixelRatio*this.pixelRatio}get aboveGround(){return this.relativeElevation&&this.relativeElevation>=0}copyFrom(t){d(this._ray.origin,t.eye),d(this._center,t.center),d(this._up,t.up),S(this._viewport,t.viewport),S(this._padding,t.padding),v(this._nearFar,t.nearFar),this._fov=t.fov,this.relativeElevation=t.relativeElevation;const i=t;return this._viewDirty=i._viewDirty,this._viewDirty||(h(this._viewMatrix,t.viewMatrix),d(this._viewRight,t.viewRight),d(this._viewUp,t.viewUp),d(this._viewForward,t.viewForward)),i._projectionDirty?this._projectionDirty=!0:(h(this._projectionMatrix,t.projectionMatrix),this._projectionDirty=!1),this._viewProjectionDirty=!0,this._frustumDirty=i._frustumDirty,this._frustumDirty||(G(this._frustum,t.frustum),this._frustumDirty=!1),i._viewInverseTransposeMatrixDirty?this._viewInverseTransposeMatrixDirty=!0:(h(this._viewInverseTransposeMatrix,t.viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),S(this._fullViewport,t.fullViewport),this.pixelRatio=t.pixelRatio,this}copyViewFrom(t){this.eye=t.eye,this.center=t.center,this.up=t.up}clone(){return(new J).copyFrom(this)}equals(t){return y(this.eye,t.eye)&&y(this._center,t.center)&&y(this._up,t.up)&&E(this._viewport,t.viewport)&&E(this._padding,t.padding)&&c(this._nearFar,t.nearFar)&&this._fov===t.fov&&this.pixelRatio===t.pixelRatio&&this.relativeElevation===t.relativeElevation}almostEquals(t){if(this.pixelRatio!==t.pixelRatio||Math.abs(t.fov-this._fov)>=.001)return!1;const i=5e-4,e=1-1e-10;m(Z,t.eye,t.center),m($,this.eye,this._center);const r=f(Z,$),s=x(Z),h=x($);return r*r>=e*s*h&&D(t.eye,this.eye)<Math.max(s,h)*i*i&&L(t.padding,this._padding)<.5&&L(t.viewport,this._viewport)<.5}computeRenderPixelSizeAt(t){return this.computeRenderPixelSizeAtDist(this._viewDirectionDistance(t))}computeRenderPixelSizeAtDist(t){return t*this.perRenderPixelRatio}computeScreenPixelSizeAt(t){return this.computeScreenPixelSizeAtDist(this._viewDirectionDistance(t))}_viewDirectionDistance(t){return Math.abs(C(this.viewForward,l(Z,t,this.eye)))}computeScreenPixelSizeAtDist(t){return t*this.perScreenPixelRatio}computeDistanceFromRadius(t,i){return t/Math.tan(Math.min(this.fovX,this.fovY)/(2*(i||1)))}getScreenCenter(t=r()){return t[0]=(this.padding[it.LEFT]+this.width/2)/this.pixelRatio,t[1]=(this.padding[it.TOP]+this.height/2)/this.pixelRatio,t}getRenderCenter(t,i=.5,e=.5){return t[0]=this.padding[it.LEFT]+this.width*i,t[1]=this.padding[it.BOTTOM]+this.height*e,t[2]=.5,t}setGLViewport(t){const i=this.viewport,e=this.padding;t.setViewport(i[0]-e[3],i[1]-e[2],i[2]+e[1]+e[3],i[3]+e[0]+e[2])}applyProjection(t,e,r=!1){t!==K&&d(K,t),K[3]=1,r&&(e[2]=-K[2]),b(K,K,this.projectionMatrix),M(K,K,1/Math.abs(K[3]));const s=this.fullViewport;return e[0]=i(0,s[0]+s[2],.5+.5*K[0]),e[1]=i(0,s[1]+s[3],.5+.5*K[1]),r||(e[2]=.5*(K[2]+1)),e}projectToScreen(t,i){this.projectToRenderScreen(t,tt),this.renderToScreen(tt,i)}projectToRenderScreen(t,e){if(K[0]=t[0],K[1]=t[1],K[2]=t[2],K[3]=1,b(K,K,this.viewProjectionMatrix),0===K[3])return null;M(K,K,1/Math.abs(K[3]));const r=this.fullViewport;return"x"in e?(e.x=i(0,r[0]+r[2],.5+.5*K[0]),e.y=i(0,r[1]+r[3],.5+.5*K[1])):(e[0]=i(0,r[0]+r[2],.5+.5*K[0]),e[1]=i(0,r[1]+r[3],.5+.5*K[1]),e.length>2&&(e[2]=.5*(K[2]+1))),e}unprojectFromScreen(t,i){return this.unprojectFromRenderScreen(this.screenToRender(t,tt),i)}unprojectFromRenderScreen(t,i){if(o(Q,this.projectionMatrix,this.viewMatrix),!a(Q,Q))return null;const e=this.fullViewport;return K[0]=2*(t[0]-e[0])/e[2]-1,K[1]=2*(t[1]-e[1])/e[3]-1,K[2]=2*t[2]-1,K[3]=1,b(K,K,Q),0===K[3]?null:(i[0]=K[0]/K[3],i[1]=K[1]/K[3],i[2]=K[2]/K[3],i)}constrainWindowSize(t,i,e,r=e){const s=t*this.pixelRatio,h=i*this.pixelRatio,o=Math.max(s-e/2,0),n=Math.max(this.fullHeight-h-r/2,0),a=-Math.min(s-e/2,0),_=-Math.min(this.fullHeight-h-r/2,0);return[o,n,e-a- -Math.min(this.fullWidth-s-e/2,0),r-_- -Math.min(h-r/2,0)]}computeUp(t){t===z.Global?this._computeUpGlobal():this._computeUpLocal()}screenToRender(t,i){const e=t[0]*this.pixelRatio,r=this.fullHeight-t[1]*this.pixelRatio;return i[0]=e,i[1]=r,i}renderToScreen(t,i){const e=t[0]/this.pixelRatio,r=(this.fullHeight-t[1])/this.pixelRatio;i[0]=e,i[1]=r}_computeUpGlobal(){l(Z,this.center,this.eye);const t=T(this.center);t<1?(j(this._up,0,0,1),this._markViewDirty()):Math.abs(f(Z,this.center))>.9999*T(Z)*t||(R(this._up,Z,this.center),R(this._up,this._up,Z),F(this._up,this._up),this._markViewDirty())}_computeUpLocal(){P(Z,this.eye,this.center),Math.abs(Z[2])<=.9999&&(M(Z,Z,Z[2]),j(this._up,-Z[0],-Z[1],1-Z[2]),F(this._up,this._up),this._markViewDirty())}_compareAndSetView(t,i){"number"==typeof t[0]&&isFinite(t[0])&&"number"==typeof t[1]&&isFinite(t[1])&&"number"==typeof t[2]&&isFinite(t[2])?y(t,i)||(d(i,t),this._markViewDirty()):N.warn("Camera vector contains invalid number, ignoring value")}_markViewDirty(){this._viewDirty=!0,this._frustumDirty=!0,this._viewProjectionDirty=!0}_recomputeFrustum(){this._frustumDirty&&(U(this.viewMatrix,this.projectionMatrix,this._frustum),this._frustumDirty=!1)}_ensureViewClean(){this._viewDirty&&(p(this._viewMatrix,this.eye,this._center,this._up),j(this._viewForward,-this._viewMatrix[2],-this._viewMatrix[6],-this._viewMatrix[10]),j(this._viewUp,this._viewMatrix[1],this._viewMatrix[5],this._viewMatrix[9]),j(this._viewRight,this._viewMatrix[0],this._viewMatrix[4],this._viewMatrix[8]),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0)}}const K=k(),Q=u(),Z=O(),$=O(),tt=s();var it;!function(t){t[t.TOP=0]="TOP",t[t.RIGHT=1]="RIGHT",t[t.BOTTOM=2]="BOTTOM",t[t.LEFT=3]="LEFT"}(it||(it={}));export{it as PaddingSide,J as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{VertexAttribute as O}from"./basicInterfaces.js";const E=new Map([[O.POSITION,0],[O.NORMAL,1],[O.UV0,2],[O.COLOR,3],[O.SIZE,4],[O.TANGENT,4],[O.AUXPOS1,5],[O.SYMBOLCOLOR,5],[O.AUXPOS2,6],[O.FEATUREATTRIBUTE,6],[O.INSTANCEFEATUREATTRIBUTE,6],[O.INSTANCECOLOR,7],[O.MODEL,8],[O.MODELNORMAL,12],[O.MODELORIGINHI,11],[O.MODELORIGINLO,15]]);export{E as Default3D};
5
+ import{VertexAttribute as O}from"./VertexAttribute.js";const E=new Map([[O.POSITION,0],[O.NORMAL,1],[O.UV0,2],[O.COLOR,3],[O.SIZE,4],[O.TANGENT,4],[O.AUXPOS1,5],[O.SYMBOLCOLOR,5],[O.AUXPOS2,6],[O.FEATUREATTRIBUTE,6],[O.INSTANCEFEATUREATTRIBUTE,6],[O.INSTANCECOLOR,7],[O.MODEL,8],[O.MODELNORMAL,12],[O.MODELORIGINHI,11],[O.MODELORIGINLO,15]]);export{E as Default3D};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{VertexAttribute as O}from"./basicInterfaces.js";import{DataType as e}from"../../../webgl/enums.js";import{VertexElementDescriptor as T}from"../../../webgl/VertexElementDescriptor.js";const n=[new T(O.POSITION,3,e.FLOAT,0,12)],I=[new T(O.POSITION,3,e.FLOAT,0,20),new T(O.UV0,2,e.FLOAT,12,20)],w=[new T(O.POSITION,3,e.FLOAT,0,32),new T(O.NORMAL,3,e.FLOAT,12,32),new T(O.UV0,2,e.FLOAT,24,32)],L=[new T(O.POSITION,3,e.FLOAT,0,16),new T(O.COLOR,4,e.UNSIGNED_BYTE,12,16)],r=[new T(O.POSITION,2,e.FLOAT,0,8)],A=[new T(O.POSITION,2,e.FLOAT,0,16),new T(O.UV0,2,e.FLOAT,8,16)];export{r as Pos2,A as Pos2Tex,n as Pos3,L as Pos3Col,w as Pos3NormalTex,I as Pos3Tex};
5
+ import{VertexAttribute as O}from"./VertexAttribute.js";import{DataType as e}from"../../../webgl/enums.js";import{VertexElementDescriptor as T}from"../../../webgl/VertexElementDescriptor.js";const n=[new T(O.POSITION,3,e.FLOAT,0,12)],w=[new T(O.POSITION,3,e.FLOAT,0,20),new T(O.UV0,2,e.FLOAT,12,20)],I=[new T(O.POSITION,3,e.FLOAT,0,32),new T(O.NORMAL,3,e.FLOAT,12,32),new T(O.UV0,2,e.FLOAT,24,32)],r=[new T(O.POSITION,3,e.FLOAT,0,16),new T(O.COLOR,4,e.UNSIGNED_BYTE,12,16)],t=[new T(O.POSITION,2,e.FLOAT,0,8)],A=[new T(O.POSITION,2,e.FLOAT,0,16),new T(O.UV0,2,e.FLOAT,8,16)];export{t as Pos2,A as Pos2Tex,n as Pos3,r as Pos3Col,I as Pos3NormalTex,w as Pos3Tex};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{isNone as t}from"../../../../core/maybe.js";import{PrimitiveType as e,VertexAttribute as i}from"./basicInterfaces.js";import{BoundingInfo as n}from"./BoundingInfo.js";import{ContentObject as s}from"./ContentObject.js";import{ContentObjectType as r}from"./ContentObjectType.js";import{generateDefaultIndexArray as o,computeAttachmentOriginTriangles as u,computeAttachmentOriginPoints as g}from"./geometryDataUtils.js";import{assert as h}from"./Util.js";class c extends s{constructor(t,n=[],s=e.Triangle,u=-1){super(),this._primitiveType=s,this.edgeIndicesLength=u,this.type=r.Geometry,this._vertexAttributes=new Map,this._indices=new Map,this._boundingInfo=null;for(const[e,i]of t)i&&this._vertexAttributes.set(e,{...i});if(null==n||0===n.length){const t=d(this._vertexAttributes),e=o(t);this.edgeIndicesLength=this.edgeIndicesLength<0?t:this.edgeIndicesLength;for(const i of this._vertexAttributes.keys())this._indices.set(i,e)}else for(const[e,r]of n)r&&(this._indices.set(e,l(r)),e===i.POSITION&&(this.edgeIndicesLength=this.edgeIndicesLength<0?this._indices.get(e).length:this.edgeIndicesLength))}get vertexAttributes(){return this._vertexAttributes}getMutableAttribute(t){const e=this._vertexAttributes.get(t);return e&&!e.exclusive&&(e.data=Array.from(e.data),e.exclusive=!0),e}get indices(){return this._indices}get indexCount(){const t=this._indices.values().next().value;return t?t.length:0}get primitiveType(){return this._primitiveType}get faceCount(){return this.indexCount/3}get boundingInfo(){return t(this._boundingInfo)&&(this._boundingInfo=this._calculateBoundingInfo()),this._boundingInfo}computeAttachmentOrigin(t){return this.primitiveType===e.Triangle?this._computeAttachmentOriginTriangles(t):this._computeAttachmentOriginPoints(t)}_computeAttachmentOriginTriangles(t){const e=this.indices.get(i.POSITION),n=this.vertexAttributes.get(i.POSITION);return u(n,e,t)}_computeAttachmentOriginPoints(t){const e=this.indices.get(i.POSITION),n=this.vertexAttributes.get(i.POSITION);return g(n,e,t)}invalidateBoundingInfo(){this._boundingInfo=null}_calculateBoundingInfo(){const t=this.indices.get(i.POSITION);if(0===t.length)return null;const s=this.primitiveType===e.Triangle?3:1;h(t.length%s==0,"Indexing error: "+t.length+" not divisible by "+s);const r=o(t.length/s),u=this.vertexAttributes.get(i.POSITION);return new n(r,s,t,u)}}function d(t){const e=t.values().next().value;return null==e?0:e.data.length/e.size}function l(t){if(t.BYTES_PER_ELEMENT===Uint16Array.BYTES_PER_ELEMENT)return t;for(const e of t)if(e>=65536)return t;return new Uint16Array(t)}export{c as Geometry};
5
+ import{isNone as t}from"../../../../core/maybe.js";import{PrimitiveType as e}from"./basicInterfaces.js";import{BoundingInfo as i}from"./BoundingInfo.js";import{ContentObject as n}from"./ContentObject.js";import{ContentObjectType as s}from"./ContentObjectType.js";import{generateDefaultIndexArray as r,computeAttachmentOriginTriangles as o,computeAttachmentOriginPoints as u}from"./geometryDataUtils.js";import{assert as g}from"./Util.js";import{VertexAttribute as h}from"./VertexAttribute.js";class c extends n{constructor(t,i=[],n=e.Triangle,o=-1){super(),this._primitiveType=n,this.edgeIndicesLength=o,this.type=s.Geometry,this._vertexAttributes=new Map,this._indices=new Map,this._boundingInfo=null;for(const[e,s]of t)s&&this._vertexAttributes.set(e,{...s});if(null==i||0===i.length){const t=d(this._vertexAttributes),e=r(t);this.edgeIndicesLength=this.edgeIndicesLength<0?t:this.edgeIndicesLength;for(const i of this._vertexAttributes.keys())this._indices.set(i,e)}else for(const[e,s]of i)s&&(this._indices.set(e,l(s)),e===h.POSITION&&(this.edgeIndicesLength=this.edgeIndicesLength<0?this._indices.get(e).length:this.edgeIndicesLength))}get vertexAttributes(){return this._vertexAttributes}getMutableAttribute(t){const e=this._vertexAttributes.get(t);return e&&!e.exclusive&&(e.data=Array.from(e.data),e.exclusive=!0),e}get indices(){return this._indices}get indexCount(){const t=this._indices.values().next().value;return t?t.length:0}get primitiveType(){return this._primitiveType}get faceCount(){return this.indexCount/3}get boundingInfo(){return t(this._boundingInfo)&&(this._boundingInfo=this._calculateBoundingInfo()),this._boundingInfo}computeAttachmentOrigin(t){return this.primitiveType===e.Triangle?this._computeAttachmentOriginTriangles(t):this._computeAttachmentOriginPoints(t)}_computeAttachmentOriginTriangles(t){const e=this.indices.get(h.POSITION),i=this.vertexAttributes.get(h.POSITION);return o(i,e,t)}_computeAttachmentOriginPoints(t){const e=this.indices.get(h.POSITION),i=this.vertexAttributes.get(h.POSITION);return u(i,e,t)}invalidateBoundingInfo(){this._boundingInfo=null}_calculateBoundingInfo(){const t=this.indices.get(h.POSITION);if(0===t.length)return null;const n=this.primitiveType===e.Triangle?3:1;g(t.length%n==0,"Indexing error: "+t.length+" not divisible by "+n);const s=r(t.length/n),o=this.vertexAttributes.get(h.POSITION);return new i(s,n,t,o)}}function d(t){const e=t.values().next().value;return null==e?0:e.data.length/e.size}function l(t){if(t.BYTES_PER_ELEMENT===Uint16Array.BYTES_PER_ELEMENT)return t;for(const e of t)if(e>=65536)return t;return new Uint16Array(t)}export{c as Geometry};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{f as t,c as e,n,a as r,b as a,d as o,s,g as l,m as i}from"../../../../chunks/vec3.js";import{f as c,c as u,a as h}from"../../../../chunks/vec3f32.js";import{c as f}from"../../../../chunks/vec3f64.js";import{create as O,fromPositionAndNormal as A,intersectRay as y}from"../../../../geometry/support/plane.js";import{wrap as I}from"../../../../geometry/support/ray.js";import{VertexAttribute as g,PrimitiveType as M}from"./basicInterfaces.js";import{Vec3Compact as d}from"./BufferVectorMath.js";import{Geometry as m}from"./Geometry.js";import{generateDefaultIndexArray as w}from"./geometryDataUtils.js";import{assert as N}from"./Util.js";const P=d;var U,S,p,z;!function(t){const e=.5,n=[[-e,-e,e],[e,-e,e],[e,e,e],[-e,e,e],[-e,-e,-e],[e,-e,-e],[e,e,-e],[-e,e,-e]],r=[0,0,1,-1,0,0,1,0,0,0,-1,0,0,1,0,0,0,-1],a=[0,0,1,0,1,1,0,1],o=new Uint16Array([0,1,2,2,3,0,4,0,3,3,7,4,1,5,6,6,2,1,1,0,4,4,5,1,3,2,6,6,7,3,5,4,7,7,6,5]),s=new Uint16Array(36);for(let c=0;c<6;c++)for(let t=0;t<6;t++)s[6*c+t]=c;const l=new Uint16Array(36);for(let c=0;c<6;c++)l[6*c+0]=0,l[6*c+1]=1,l[6*c+2]=2,l[6*c+3]=2,l[6*c+4]=3,l[6*c+5]=0;function i(t){Array.isArray(t)||(t=[t,t,t]);const e=new Array(24);for(let r=0;r<8;r++)e[3*r]=n[r][0]*t[0],e[3*r+1]=n[r][1]*t[1],e[3*r+2]=n[r][2]*t[2];return new m([[g.POSITION,{size:3,data:e,exclusive:!0}],[g.NORMAL,{size:3,data:r}],[g.UV0,{size:2,data:a}]],[[g.POSITION,o],[g.NORMAL,s],[g.UV0,l]])}t.createGeometry=i}(U||(U={})),function(t){const e=.5,n=[[-e,0,-e],[e,0,-e],[e,0,e],[-e,0,e],[0,-e,0],[0,e,0]],r=[0,1,-1,1,1,0,0,1,1,-1,1,0,0,-1,-1,1,-1,0,0,-1,1,-1,-1,0],a=new Uint16Array([5,1,0,5,2,1,5,3,2,5,0,3,4,0,1,4,1,2,4,2,3,4,3,0]),o=new Uint16Array([0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7]);function s(t){Array.isArray(t)||(t=[t,t,t]);const e=new Array(18);for(let r=0;r<6;r++)e[3*r]=n[r][0]*t[0],e[3*r+1]=n[r][1]*t[1],e[3*r+2]=n[r][2]*t[2];return new m([[g.POSITION,{size:3,data:e,exclusive:!0}],[g.NORMAL,{size:3,data:r}]],[[g.POSITION,a],[g.NORMAL,o]])}t.createGeometry=s}(S||(S={})),function(r){const a=.5,o=0,s=c(-a,o,-a),l=c(a,o,-a),i=c(0,o,a),h=c(0,o+a,0),f=u(),O=u(),A=u(),y=u(),I=u();t(f,s,h),t(O,s,l),e(A,f,O),n(A,A),t(f,l,h),t(O,l,i),e(y,f,O),n(y,y),t(f,i,h),t(O,i,s),e(I,f,O),n(I,I);const M=[s,l,i,h],d=[0,-1,0,A[0],A[1],A[2],y[0],y[1],y[2],I[0],I[1],I[2]],w=[0,1,2,3,1,0,3,2,1,3,0,2],N=[0,0,0,1,1,1,2,2,2,3,3,3];function P(t){Array.isArray(t)||(t=[t,t,t]);const e=new Array(12);for(let n=0;n<4;n++)e[3*n]=M[n][0]*t[0],e[3*n+1]=M[n][1]*t[1],e[3*n+2]=M[n][2]*t[2];return new m([[g.POSITION,{size:3,data:e,exclusive:!0}],[g.NORMAL,{size:3,data:d}]],[[g.POSITION,new Uint16Array(w)],[g.NORMAL,new Uint16Array(N)]])}r.createGeometry=P}(p||(p={})),function(d){function z(t,e,n,r={uv:!0}){const a=-Math.PI,o=2*Math.PI,s=-Math.PI/2,l=Math.PI,i=Math.max(3,Math.floor(e)),c=Math.max(2,Math.floor(n)),u=(i+1)*(c+1),h=new Float32Array(3*u),f=new Float32Array(3*u),O=new Float32Array(2*u),A=[];let y=0;for(let g=0;g<=c;g++){const e=[],n=g/c,r=s+n*l,u=Math.cos(r);for(let s=0;s<=i;s++){const l=s/i,c=a+l*o,A=Math.cos(c)*u,I=Math.sin(r),g=-Math.sin(c)*u;h[3*y]=A*t,h[3*y+1]=I*t,h[3*y+2]=g*t,f[3*y]=A,f[3*y+1]=I,f[3*y+2]=g,O[2*y]=l,O[2*y+1]=n,e.push(y),++y}A.push(e)}const I=new Uint32Array(2*i*(c-1)*3);y=0;for(let g=0;g<c;g++)for(let t=0;t<i;t++){const e=A[g][t],n=A[g][t+1],r=A[g+1][t+1],a=A[g+1][t];0===g?(I[y++]=e,I[y++]=r,I[y++]=a):g===c-1?(I[y++]=e,I[y++]=n,I[y++]=r):(I[y++]=e,I[y++]=n,I[y++]=r,I[y++]=r,I[y++]=a,I[y++]=e)}const M=[[g.POSITION,I],[g.NORMAL,I]],d=[[g.POSITION,{size:3,data:h,exclusive:!0}],[g.NORMAL,{size:3,data:f,exclusive:!0}]];return r.uv&&(d.push([g.UV0,{size:2,data:O,exclusive:!0}]),M.push([g.UV0,I])),r.offset&&(M[0][0]=g.OFFSET,d[0][0]=g.OFFSET,M.push([g.POSITION,new Uint32Array(I.length)]),d.push([g.POSITION,{size:3,data:Float64Array.from(r.offset),exclusive:!0}])),new m(d,M)}function T(t,e,n){const r=t;let a,o;if(n)a=[0,-1,0,1,0,0,0,0,1,-1,0,0,0,0,-1,0,1,0],o=new Uint32Array([0,1,2,0,2,3,0,3,4,0,4,1,1,5,2,2,5,3,3,5,4,4,5,1]);else{const t=r*(1+Math.sqrt(5))/2;a=[-r,t,0,r,t,0,-r,-t,0,r,-t,0,0,-r,t,0,r,t,0,-r,-t,0,r,-t,t,0,-r,t,0,r,-t,0,-r,-t,0,r],o=new Uint32Array([0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1])}for(let h=0;h<a.length;h+=3)P.scale(a,h,t/P.length(a,h));let s={};function l(e,n){e>n&&([e,n]=[n,e]);const r=e.toString()+"."+n.toString();if(s[r])return s[r];let o=a.length;return a.length+=3,P.add(a,3*e,a,3*n,a,o),P.scale(a,o,t/P.length(a,o)),o/=3,s[r]=o,o}for(let h=0;h<e;h++){const t=o.length,e=new Uint32Array(4*t);for(let n=0;n<t;n+=3){const t=o[n],r=o[n+1],a=o[n+2],s=l(t,r),i=l(r,a),c=l(a,t),u=4*n;e[u]=t,e[u+1]=s,e[u+2]=c,e[u+3]=r,e[u+4]=i,e[u+5]=s,e[u+6]=a,e[u+7]=c,e[u+8]=i,e[u+9]=s,e[u+10]=i,e[u+11]=c}o=e,s={}}const i=new Float32Array(a);for(let h=0;h<i.length;h+=3)P.normalize(i,h);const c=[[g.POSITION,o],[g.NORMAL,o]],u=[[g.POSITION,{size:3,data:new Float32Array(a),exclusive:!0}],[g.NORMAL,{size:3,data:i,exclusive:!0}]];return new m(u,c)}function L(t,e,n,r,a,o,s){const l=e?[e[0],e[1],e[2]]:[0,0,0],i=t?[t[0],t[1],t[2]]:[0,0,1];o=o||[0,0];const c=n?[255*n[0],255*n[1],255*n[2],n.length>3?255*n[3]:255]:[255,255,255,255],u=null!=r&&2===r.length?r:[1,1],h=[[g.POSITION,{size:3,data:l,exclusive:!0}],[g.NORMAL,{size:3,data:i,exclusive:!0}],[g.UV0,{size:o.length,data:o}],[g.COLOR,{size:4,data:c,exclusive:!0}],[g.SIZE,{size:2,data:u}]];if(null!=a){const t=new Float32Array([a[0],a[1],a[2],a[3]]);h.push([g.AUXPOS1,{size:4,data:t}])}if(null!=s){const t=new Float32Array([s[0],s[1],s[2],s[3]]);h.push([g.AUXPOS2,{size:4,data:t}])}return new m(h,null,M.Point)}function R(t,e,n,r,a,o,s,l){if(null!=t){const{data:e}=l.getMutableAttribute(g.NORMAL);e[0]=t[0],e[1]=t[1],e[2]=t[2]}if(null!=e){const{data:t}=l.getMutableAttribute(g.POSITION);t[0]=e[0],t[1]=e[1],t[2]=e[2]}if(null!=n){const{data:t}=l.getMutableAttribute(g.COLOR);t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3]}if(null!=r){const{data:t}=l.getMutableAttribute(g.SIZE);t[0]=r[0],t[1]=r[1]}if(null!=a){const{data:t}=l.getMutableAttribute(g.AUXPOS1);t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3]}if(null!=o){const{data:t}=l.getMutableAttribute(g.UV0);t[0]=o[0],t[1]=o[1]}if(null!=s){const{data:t}=l.getMutableAttribute(g.AUXPOS2);t[0]=s[0],t[1]=s[1],t[2]=s[2],t[3]=s[3]}}function b(t,e){const n=new Float32Array(3*t.length),r=new Float32Array(e?3*t.length:3),a=new Uint32Array(t.length),o=new Uint32Array(t.length);for(let c=0;c<t.length;c++)n[3*c]=t[c][0],n[3*c+1]=t[c][1],n[3*c+2]=t[c][2],e&&(r[3*c]=e[c][0],r[3*c+1]=e[c][1],r[3*c+2]=e[c][2]),a[c]=c,o[c]=0;e||(r[0]=0,r[1]=1,r[2]=0);const s=[0,0],l=[[g.POSITION,a],[g.NORMAL,e?a:o],[g.UV0,o]],i=[[g.POSITION,{size:3,data:n,exclusive:!0}],[g.NORMAL,{size:3,data:r,exclusive:!0}],[g.UV0,{size:2,data:s,exclusive:!0}]];return new m(i,l,M.Point)}function G(){const t=[0,0,0,0,0,100,100,0,0],e=new Uint16Array([0,1,2]),n=[0,1,0],r=new Uint16Array([0,0,0]),a=[0,0],o=new Uint16Array([0,0,0]),s=[[g.POSITION,e],[g.NORMAL,r],[g.UV0,o]],l=[[g.POSITION,{size:3,data:t,exclusive:!0}],[g.NORMAL,{size:3,data:n,exclusive:!0}],[g.UV0,{size:2,data:a,exclusive:!0}]];return new m(l,s)}d.createBoxGeometry=U.createGeometry,d.createDiamondGeometry=S.createGeometry,d.createTetrahedronGeometry=p.createGeometry,d.createSphereGeometry=z,d.createPolySphereGeometry=T,d.createPointGeometry=L,d.updatePointGeometry=R,d.createPointArrayGeometry=b,d.createTriangleGeometry=G;const F=[[-1,-1,0],[1,-1,0],[1,1,0],[-1,1,0]];function V(t=F){const e=new Array(12);for(let c=0;c<4;c++)for(let n=0;n<3;n++)e[3*c+n]=t[c][n];const n=new Uint32Array([0,1,2,2,3,0]),r=[0,0,1],a=new Uint32Array([0,0,0,0,0,0]),o=[0,0,1,0,1,1,0,1],s=[255,255,255,255],l=[[g.POSITION,n],[g.NORMAL,a],[g.UV0,n],[g.COLOR,a]],i=[[g.POSITION,{size:3,data:e,exclusive:!0}],[g.NORMAL,{size:3,data:r,exclusive:!0}],[g.UV0,{size:2,data:o,exclusive:!0}],[g.COLOR,{size:4,data:s,exclusive:!0}]];return new m(i,l)}function j(t,e,n,r,a=!0,o=!0){let s=0;const l=e,i=t;let u=c(0,s,0),h=c(0,s+i,0),f=c(0,-1,0),O=c(0,1,0);r&&(s=i,h=c(0,0,0),u=c(0,s,0),f=c(0,1,0),O=c(0,-1,0));const A=[h,u],y=[f,O],I=n+2,M=Math.sqrt(i*i+l*l);if(r)for(let g=n-1;g>=0;g--){const t=g*(2*Math.PI/n),e=c(Math.cos(t)*l,s,Math.sin(t)*l);A.push(e);const r=c(i*Math.cos(t)/M,-l/M,i*Math.sin(t)/M);y.push(r)}else for(let g=0;g<n;g++){const t=g*(2*Math.PI/n),e=c(Math.cos(t)*l,s,Math.sin(t)*l);A.push(e);const r=c(i*Math.cos(t)/M,l/M,i*Math.sin(t)/M);y.push(r)}const d=new Uint32Array(2*(n+2)*3),w=new Uint32Array(2*(n+2)*3);let N=0,P=0;if(a){for(let t=3;t<A.length;t++)d[N++]=1,d[N++]=t-1,d[N++]=t,w[P++]=0,w[P++]=0,w[P++]=0;d[N++]=A.length-1,d[N++]=2,d[N++]=1,w[P++]=0,w[P++]=0,w[P++]=0}if(o){for(let t=3;t<A.length;t++)d[N++]=t,d[N++]=t-1,d[N++]=0,w[P++]=t,w[P++]=t-1,w[P++]=1;d[N++]=0,d[N++]=2,d[N++]=A.length-1,w[P++]=1,w[P++]=2,w[P++]=y.length-1}const U=new Float32Array(3*I);for(let c=0;c<I;c++)U[3*c]=A[c][0],U[3*c+1]=A[c][1],U[3*c+2]=A[c][2];const S=new Float32Array(3*I);for(let c=0;c<I;c++)S[3*c]=y[c][0],S[3*c+1]=y[c][1],S[3*c+2]=y[c][2];const p=[[g.POSITION,d],[g.NORMAL,w]],z=[[g.POSITION,{size:3,data:U,exclusive:!0}],[g.NORMAL,{size:3,data:S,exclusive:!0}]];return new m(z,p)}function C(t,l,i,f,O,A){const y=f?h(f):c(1,0,0),I=O?h(O):c(0,0,0);A=null==A||A;const M=u();n(M,y);const d=u();r(d,M,Math.abs(t));const w=u();r(w,d,-.5),a(w,w,I);const N=c(0,1,0);Math.abs(1-o(M,N))<.2&&s(N,0,0,1);const P=u();e(P,M,N),n(P,P),e(N,P,M);const U=2*i+(A?2:0),S=i+(A?2:0),p=new Float32Array(3*U),z=new Float32Array(3*S),x=new Float32Array(2*U),v=new Uint32Array(3*i*(A?4:2)),T=new Uint32Array(3*i*(A?4:2));A&&(p[3*(U-2)+0]=w[0],p[3*(U-2)+1]=w[1],p[3*(U-2)+2]=w[2],x[2*(U-2)]=0,x[2*(U-2)+1]=0,p[3*(U-1)+0]=p[3*(U-2)+0]+d[0],p[3*(U-1)+1]=p[3*(U-2)+1]+d[1],p[3*(U-1)+2]=p[3*(U-2)+2]+d[2],x[2*(U-1)]=1,x[2*(U-1)+1]=1,z[3*(S-2)+0]=-M[0],z[3*(S-2)+1]=-M[1],z[3*(S-2)+2]=-M[2],z[3*(S-1)+0]=M[0],z[3*(S-1)+1]=M[1],z[3*(S-1)+2]=M[2]);const L=function(t,e,n){v[t]=e,T[t]=n};let R=0;const b=u(),G=u();for(let e=0;e<i;e++){const t=e*(2*Math.PI/i);r(b,N,Math.sin(t)),r(G,P,Math.cos(t)),a(b,b,G),z[3*e+0]=b[0],z[3*e+1]=b[1],z[3*e+2]=b[2],r(b,b,l),a(b,b,w),p[3*e+0]=b[0],p[3*e+1]=b[1],p[3*e+2]=b[2],x[2*e+0]=e/i,x[2*e+1]=0,p[3*(e+i)+0]=p[3*e+0]+d[0],p[3*(e+i)+1]=p[3*e+1]+d[1],p[3*(e+i)+2]=p[3*e+2]+d[2],x[2*(e+i)+0]=e/i,x[2*e+1]=1;const n=(e+1)%i;L(R++,e,e),L(R++,e+i,e),L(R++,n,n),L(R++,n,n),L(R++,e+i,e),L(R++,n+i,n)}if(A){for(let t=0;t<i;t++){const e=(t+1)%i;L(R++,U-2,S-2),L(R++,t,S-2),L(R++,e,S-2)}for(let t=0;t<i;t++){const e=(t+1)%i;L(R++,t+i,S-1),L(R++,U-1,S-1),L(R++,e+i,S-1)}}const F=[[g.POSITION,v],[g.NORMAL,T],[g.UV0,v]],V=[[g.POSITION,{size:3,data:p,exclusive:!0}],[g.NORMAL,{size:3,data:z,exclusive:!0}],[g.UV0,{size:2,data:x,exclusive:!0}]];return new m(V,F)}function E(t,e,n,r,a){n=n||10,r=null==r||r,N(t.length>1);const o=[[0,0,0]],s=[],l=[];for(let i=0;i<n;i++){s.push([0,-i-1,-(i+1)%n-1]);const t=i/n*2*Math.PI;l.push([Math.cos(t)*e,Math.sin(t)*e])}return d.createPathExtrusionGeometry(l,t,o,s,r,a)}function k(o,i,h,M,d,w=c(0,0,0)){const N=o.length,P=new Float32Array(i.length*N*3+(6*h.length||0)),U=new Float32Array(i.length*N*3+(h?6:0)),S=(i.length-1)*N*6+3*M.length*2,p=new Uint32Array(S),z=new Uint32Array(S);let v=0,T=0,L=0,R=0;const b=u(),G=u(),F=u(),V=u(),j=u(),C=u(),E=u(),k=f(),B=u(),D=u(),X=u(),q=u(),Z=u(),J=O();s(B,0,1,0),t(G,i[1],i[0]),n(G,G),d?(a(k,i[0],w),n(F,k)):s(F,0,0,1),H(G,F,B,B,j,F,x),l(V,F),l(q,j);for(let t=0;t<h.length;t++)r(C,j,h[t][0]),r(k,F,h[t][2]),a(C,C,k),a(C,C,i[0]),P[v++]=C[0],P[v++]=C[1],P[v++]=C[2];U[T++]=-G[0],U[T++]=-G[1],U[T++]=-G[2];for(let t=0;t<M.length;t++)p[L++]=M[t][0]>0?M[t][0]:-M[t][0]-1+h.length,p[L++]=M[t][1]>0?M[t][1]:-M[t][1]-1+h.length,p[L++]=M[t][2]>0?M[t][2]:-M[t][2]-1+h.length,z[R++]=0,z[R++]=0,z[R++]=0;let K=h.length;const Q=h.length-1;for(let s=0;s<i.length;s++){let c=!1;if(s>0){l(b,G),s<i.length-1?(t(G,i[s+1],i[s]),n(G,G)):c=!0,a(D,b,G),n(D,D),a(X,i[s-1],V),A(i[s],D,J);y(J,I(X,b),k)?(t(k,k,i[s]),n(F,k),e(j,D,F),n(j,j)):H(D,V,q,B,j,F,x),l(V,F),l(q,j)}d&&(a(k,i[s],w),n(Z,k));for(let t=0;t<N;t++)if(r(C,j,o[t][0]),r(k,F,o[t][1]),a(C,C,k),n(E,C),U[T++]=E[0],U[T++]=E[1],U[T++]=E[2],a(C,C,i[s]),P[v++]=C[0],P[v++]=C[1],P[v++]=C[2],!c){const e=(t+1)%N;p[L++]=K+t,p[L++]=K+N+t,p[L++]=K+e,p[L++]=K+e,p[L++]=K+N+t,p[L++]=K+N+e;for(let t=0;t<6;t++)z[R++]=p[L-6+t]-Q}K+=N}const W=i[i.length-1];for(let t=0;t<h.length;t++)r(C,j,h[t][0]),r(k,F,h[t][1]),a(C,C,k),a(C,C,W),P[v++]=C[0],P[v++]=C[1],P[v++]=C[2];const Y=T/3;U[T++]=G[0],U[T++]=G[1],U[T++]=G[2];const $=K-N;for(let t=0;t<M.length;t++)p[L++]=M[t][0]>=0?K+M[t][0]:-M[t][0]-1+$,p[L++]=M[t][2]>=0?K+M[t][2]:-M[t][2]-1+$,p[L++]=M[t][1]>=0?K+M[t][1]:-M[t][1]-1+$,z[R++]=Y,z[R++]=Y,z[R++]=Y;const _=[[g.POSITION,p],[g.NORMAL,z]],tt=[[g.POSITION,{size:3,data:P,exclusive:!0}],[g.NORMAL,{size:3,data:U,exclusive:!0}]];return new m(tt,_)}function B(t,e,n){N(t.length>1,"createPolylineGeometry(): polyline needs at least 2 points"),N(3===t[0].length,"createPolylineGeometry(): malformed vertex"),N(null==e||e.length===t.length,"createPolylineGeometry: need same number of points and normals"),N(null==e||3===e[0].length,"createPolylineGeometry(): malformed normal");const r=new Float64Array(3*t.length),a=new Uint32Array(2*(t.length-1));let o=0,s=0;for(let c=0;c<t.length;c++){for(let e=0;e<3;e++)r[o++]=t[c][e];c>0&&(a[s++]=c-1,a[s++]=c)}const l=[],i=[];if(l.push([g.POSITION,a]),i.push([g.POSITION,{size:3,data:r,exclusive:!0}]),e){const n=new Float32Array(3*e.length);let r=0;for(let a=0;a<t.length;a++)for(let t=0;t<3;t++)n[r++]=e[a][t];l.push([g.NORMAL,a]),i.push([g.NORMAL,{size:3,data:n,exclusive:!0}])}return n&&(i.push([g.COLOR,{size:4,data:n}]),l.push([g.COLOR,w(n.length/4)])),new m(i,l,M.Line)}function D(t,e,n,r,a=0){const o=new Array(18),s=[[-e,a,r/2],[n,a,r/2],[0,t+a,r/2],[-e,a,-r/2],[n,a,-r/2],[0,t+a,-r/2]],l=new Uint16Array([0,1,2,3,0,2,2,5,3,1,4,5,5,2,1,1,0,3,3,4,1,4,3,5]);for(let i=0;i<6;i++)o[3*i]=s[i][0],o[3*i+1]=s[i][1],o[3*i+2]=s[i][2];return new m([[g.POSITION,{size:3,data:o,exclusive:!0}]],[[g.POSITION,l]])}function X(t,e){const n=t.getMutableAttribute(g.POSITION).data;for(let r=0;r<n.length;r+=3){const t=n[r],a=n[r+1],o=n[r+2];s(v,t,a,o),i(v,v,e),n[r]=v[0],n[r+1]=v[1],n[r+2]=v[2]}}function q(t,e=t){const n=t.vertexAttributes,r=n.get(g.POSITION).data,a=n.get(g.NORMAL).data;if(a){const t=e.getMutableAttribute(g.NORMAL).data;for(let e=0;e<a.length;e+=3){const n=a[e+1];t[e+1]=-a[e+2],t[e+2]=n}}if(r){const t=e.getMutableAttribute(g.POSITION).data;for(let e=0;e<r.length;e+=3){const n=r[e+1];t[e+1]=-r[e+2],t[e+2]=n}}return e}function Z(t,r,a,s,l){return!(Math.abs(o(r,t))>l)&&(e(a,t,r),n(a,a),e(s,a,t),n(s,s),!0)}function H(t,e,n,r,a,o,s){return Z(t,e,a,o,s)||Z(t,n,a,o,s)||Z(t,r,a,o,s)}d.createSquareGeometry=V,d.createConeGeometry=j,d.createCylinderGeometry=C,d.createTubeGeometry=E,d.createPathExtrusionGeometry=k,d.createPolylineGeometry=B,d.createExtrudedTriangle=D,d.transformInPlace=X,d.cgToGIS=q,d.makeOrthoBasisDirUp=Z,d.makeOrthoBasisDirUpFallback=H}(z||(z={}));const x=.99619469809,v=u(),T=z;export{T as default};
5
+ import{f as t,c as e,n,a as r,b as a,d as o,s,g as l,m as i}from"../../../../chunks/vec3.js";import{f as c,c as u,a as f}from"../../../../chunks/vec3f32.js";import{c as h}from"../../../../chunks/vec3f64.js";import{create as O,fromPositionAndNormal as A,intersectRay as y}from"../../../../geometry/support/plane.js";import{wrap as I}from"../../../../geometry/support/ray.js";import{PrimitiveType as g}from"./basicInterfaces.js";import{Vec3Compact as M}from"./BufferVectorMath.js";import{Geometry as m}from"./Geometry.js";import{generateDefaultIndexArray as d}from"./geometryDataUtils.js";import{assert as w}from"./Util.js";import{VertexAttribute as N}from"./VertexAttribute.js";const P=M;var U,S,p,x;!function(t){const e=.5,n=[[-e,-e,e],[e,-e,e],[e,e,e],[-e,e,e],[-e,-e,-e],[e,-e,-e],[e,e,-e],[-e,e,-e]],r=[0,0,1,-1,0,0,1,0,0,0,-1,0,0,1,0,0,0,-1],a=[0,0,1,0,1,1,0,1],o=new Uint16Array([0,1,2,2,3,0,4,0,3,3,7,4,1,5,6,6,2,1,1,0,4,4,5,1,3,2,6,6,7,3,5,4,7,7,6,5]),s=new Uint16Array(36);for(let c=0;c<6;c++)for(let t=0;t<6;t++)s[6*c+t]=c;const l=new Uint16Array(36);for(let c=0;c<6;c++)l[6*c+0]=0,l[6*c+1]=1,l[6*c+2]=2,l[6*c+3]=2,l[6*c+4]=3,l[6*c+5]=0;function i(t){Array.isArray(t)||(t=[t,t,t]);const e=new Array(24);for(let r=0;r<8;r++)e[3*r]=n[r][0]*t[0],e[3*r+1]=n[r][1]*t[1],e[3*r+2]=n[r][2]*t[2];return new m([[N.POSITION,{size:3,data:e,exclusive:!0}],[N.NORMAL,{size:3,data:r}],[N.UV0,{size:2,data:a}]],[[N.POSITION,o],[N.NORMAL,s],[N.UV0,l]])}t.createGeometry=i}(U||(U={})),function(t){const e=.5,n=[[-e,0,-e],[e,0,-e],[e,0,e],[-e,0,e],[0,-e,0],[0,e,0]],r=[0,1,-1,1,1,0,0,1,1,-1,1,0,0,-1,-1,1,-1,0,0,-1,1,-1,-1,0],a=new Uint16Array([5,1,0,5,2,1,5,3,2,5,0,3,4,0,1,4,1,2,4,2,3,4,3,0]),o=new Uint16Array([0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7]);function s(t){Array.isArray(t)||(t=[t,t,t]);const e=new Array(18);for(let r=0;r<6;r++)e[3*r]=n[r][0]*t[0],e[3*r+1]=n[r][1]*t[1],e[3*r+2]=n[r][2]*t[2];return new m([[N.POSITION,{size:3,data:e,exclusive:!0}],[N.NORMAL,{size:3,data:r}]],[[N.POSITION,a],[N.NORMAL,o]])}t.createGeometry=s}(S||(S={})),function(r){const a=.5,o=0,s=c(-a,o,-a),l=c(a,o,-a),i=c(0,o,a),f=c(0,o+a,0),h=u(),O=u(),A=u(),y=u(),I=u();t(h,s,f),t(O,s,l),e(A,h,O),n(A,A),t(h,l,f),t(O,l,i),e(y,h,O),n(y,y),t(h,i,f),t(O,i,s),e(I,h,O),n(I,I);const g=[s,l,i,f],M=[0,-1,0,A[0],A[1],A[2],y[0],y[1],y[2],I[0],I[1],I[2]],d=[0,1,2,3,1,0,3,2,1,3,0,2],w=[0,0,0,1,1,1,2,2,2,3,3,3];function P(t){Array.isArray(t)||(t=[t,t,t]);const e=new Array(12);for(let n=0;n<4;n++)e[3*n]=g[n][0]*t[0],e[3*n+1]=g[n][1]*t[1],e[3*n+2]=g[n][2]*t[2];return new m([[N.POSITION,{size:3,data:e,exclusive:!0}],[N.NORMAL,{size:3,data:M}]],[[N.POSITION,new Uint16Array(d)],[N.NORMAL,new Uint16Array(w)]])}r.createGeometry=P}(p||(p={})),function(M){function x(t,e,n,r={uv:!0}){const a=-Math.PI,o=2*Math.PI,s=-Math.PI/2,l=Math.PI,i=Math.max(3,Math.floor(e)),c=Math.max(2,Math.floor(n)),u=(i+1)*(c+1),f=new Float32Array(3*u),h=new Float32Array(3*u),O=new Float32Array(2*u),A=[];let y=0;for(let m=0;m<=c;m++){const e=[],n=m/c,r=s+n*l,u=Math.cos(r);for(let s=0;s<=i;s++){const l=s/i,c=a+l*o,A=Math.cos(c)*u,I=Math.sin(r),g=-Math.sin(c)*u;f[3*y]=A*t,f[3*y+1]=I*t,f[3*y+2]=g*t,h[3*y]=A,h[3*y+1]=I,h[3*y+2]=g,O[2*y]=l,O[2*y+1]=n,e.push(y),++y}A.push(e)}const I=new Uint32Array(2*i*(c-1)*3);y=0;for(let m=0;m<c;m++)for(let t=0;t<i;t++){const e=A[m][t],n=A[m][t+1],r=A[m+1][t+1],a=A[m+1][t];0===m?(I[y++]=e,I[y++]=r,I[y++]=a):m===c-1?(I[y++]=e,I[y++]=n,I[y++]=r):(I[y++]=e,I[y++]=n,I[y++]=r,I[y++]=r,I[y++]=a,I[y++]=e)}const g=[[N.POSITION,I],[N.NORMAL,I]],M=[[N.POSITION,{size:3,data:f,exclusive:!0}],[N.NORMAL,{size:3,data:h,exclusive:!0}]];return r.uv&&(M.push([N.UV0,{size:2,data:O,exclusive:!0}]),g.push([N.UV0,I])),r.offset&&(g[0][0]=N.OFFSET,M[0][0]=N.OFFSET,g.push([N.POSITION,new Uint32Array(I.length)]),M.push([N.POSITION,{size:3,data:Float64Array.from(r.offset),exclusive:!0}])),new m(M,g)}function T(t,e,n){const r=t;let a,o;if(n)a=[0,-1,0,1,0,0,0,0,1,-1,0,0,0,0,-1,0,1,0],o=new Uint32Array([0,1,2,0,2,3,0,3,4,0,4,1,1,5,2,2,5,3,3,5,4,4,5,1]);else{const t=r*(1+Math.sqrt(5))/2;a=[-r,t,0,r,t,0,-r,-t,0,r,-t,0,0,-r,t,0,r,t,0,-r,-t,0,r,-t,t,0,-r,t,0,r,-t,0,-r,-t,0,r],o=new Uint32Array([0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1])}for(let f=0;f<a.length;f+=3)P.scale(a,f,t/P.length(a,f));let s={};function l(e,n){e>n&&([e,n]=[n,e]);const r=e.toString()+"."+n.toString();if(s[r])return s[r];let o=a.length;return a.length+=3,P.add(a,3*e,a,3*n,a,o),P.scale(a,o,t/P.length(a,o)),o/=3,s[r]=o,o}for(let f=0;f<e;f++){const t=o.length,e=new Uint32Array(4*t);for(let n=0;n<t;n+=3){const t=o[n],r=o[n+1],a=o[n+2],s=l(t,r),i=l(r,a),c=l(a,t),u=4*n;e[u]=t,e[u+1]=s,e[u+2]=c,e[u+3]=r,e[u+4]=i,e[u+5]=s,e[u+6]=a,e[u+7]=c,e[u+8]=i,e[u+9]=s,e[u+10]=i,e[u+11]=c}o=e,s={}}const i=new Float32Array(a);for(let f=0;f<i.length;f+=3)P.normalize(i,f);const c=[[N.POSITION,o],[N.NORMAL,o]],u=[[N.POSITION,{size:3,data:new Float32Array(a),exclusive:!0}],[N.NORMAL,{size:3,data:i,exclusive:!0}]];return new m(u,c)}function L(t,e,n,r,a,o,s){const l=e?[e[0],e[1],e[2]]:[0,0,0],i=t?[t[0],t[1],t[2]]:[0,0,1];o=o||[0,0];const c=n?[255*n[0],255*n[1],255*n[2],n.length>3?255*n[3]:255]:[255,255,255,255],u=null!=r&&2===r.length?r:[1,1],f=[[N.POSITION,{size:3,data:l,exclusive:!0}],[N.NORMAL,{size:3,data:i,exclusive:!0}],[N.UV0,{size:o.length,data:o}],[N.COLOR,{size:4,data:c,exclusive:!0}],[N.SIZE,{size:2,data:u}]];if(null!=a){const t=new Float32Array([a[0],a[1],a[2],a[3]]);f.push([N.AUXPOS1,{size:4,data:t}])}if(null!=s){const t=new Float32Array([s[0],s[1],s[2],s[3]]);f.push([N.AUXPOS2,{size:4,data:t}])}return new m(f,null,g.Point)}function R(t,e,n,r,a,o,s,l){if(null!=t){const{data:e}=l.getMutableAttribute(N.NORMAL);e[0]=t[0],e[1]=t[1],e[2]=t[2]}if(null!=e){const{data:t}=l.getMutableAttribute(N.POSITION);t[0]=e[0],t[1]=e[1],t[2]=e[2]}if(null!=n){const{data:t}=l.getMutableAttribute(N.COLOR);t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3]}if(null!=r){const{data:t}=l.getMutableAttribute(N.SIZE);t[0]=r[0],t[1]=r[1]}if(null!=a){const{data:t}=l.getMutableAttribute(N.AUXPOS1);t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3]}if(null!=o){const{data:t}=l.getMutableAttribute(N.UV0);t[0]=o[0],t[1]=o[1]}if(null!=s){const{data:t}=l.getMutableAttribute(N.AUXPOS2);t[0]=s[0],t[1]=s[1],t[2]=s[2],t[3]=s[3]}}function b(t,e){const n=new Float32Array(3*t.length),r=new Float32Array(e?3*t.length:3),a=new Uint32Array(t.length),o=new Uint32Array(t.length);for(let c=0;c<t.length;c++)n[3*c]=t[c][0],n[3*c+1]=t[c][1],n[3*c+2]=t[c][2],e&&(r[3*c]=e[c][0],r[3*c+1]=e[c][1],r[3*c+2]=e[c][2]),a[c]=c,o[c]=0;e||(r[0]=0,r[1]=1,r[2]=0);const s=[0,0],l=[[N.POSITION,a],[N.NORMAL,e?a:o],[N.UV0,o]],i=[[N.POSITION,{size:3,data:n,exclusive:!0}],[N.NORMAL,{size:3,data:r,exclusive:!0}],[N.UV0,{size:2,data:s,exclusive:!0}]];return new m(i,l,g.Point)}function G(){const t=[0,0,0,0,0,100,100,0,0],e=new Uint16Array([0,1,2]),n=[0,1,0],r=new Uint16Array([0,0,0]),a=[0,0],o=new Uint16Array([0,0,0]),s=[[N.POSITION,e],[N.NORMAL,r],[N.UV0,o]],l=[[N.POSITION,{size:3,data:t,exclusive:!0}],[N.NORMAL,{size:3,data:n,exclusive:!0}],[N.UV0,{size:2,data:a,exclusive:!0}]];return new m(l,s)}M.createBoxGeometry=U.createGeometry,M.createDiamondGeometry=S.createGeometry,M.createTetrahedronGeometry=p.createGeometry,M.createSphereGeometry=x,M.createPolySphereGeometry=T,M.createPointGeometry=L,M.updatePointGeometry=R,M.createPointArrayGeometry=b,M.createTriangleGeometry=G;const F=[[-1,-1,0],[1,-1,0],[1,1,0],[-1,1,0]];function V(t=F){const e=new Array(12);for(let c=0;c<4;c++)for(let n=0;n<3;n++)e[3*c+n]=t[c][n];const n=new Uint32Array([0,1,2,2,3,0]),r=[0,0,1],a=new Uint32Array([0,0,0,0,0,0]),o=[0,0,1,0,1,1,0,1],s=[255,255,255,255],l=[[N.POSITION,n],[N.NORMAL,a],[N.UV0,n],[N.COLOR,a]],i=[[N.POSITION,{size:3,data:e,exclusive:!0}],[N.NORMAL,{size:3,data:r,exclusive:!0}],[N.UV0,{size:2,data:o,exclusive:!0}],[N.COLOR,{size:4,data:s,exclusive:!0}]];return new m(i,l)}function j(t,e,n,r,a=!0,o=!0){let s=0;const l=e,i=t;let u=c(0,s,0),f=c(0,s+i,0),h=c(0,-1,0),O=c(0,1,0);r&&(s=i,f=c(0,0,0),u=c(0,s,0),h=c(0,1,0),O=c(0,-1,0));const A=[f,u],y=[h,O],I=n+2,g=Math.sqrt(i*i+l*l);if(r)for(let m=n-1;m>=0;m--){const t=m*(2*Math.PI/n),e=c(Math.cos(t)*l,s,Math.sin(t)*l);A.push(e);const r=c(i*Math.cos(t)/g,-l/g,i*Math.sin(t)/g);y.push(r)}else for(let m=0;m<n;m++){const t=m*(2*Math.PI/n),e=c(Math.cos(t)*l,s,Math.sin(t)*l);A.push(e);const r=c(i*Math.cos(t)/g,l/g,i*Math.sin(t)/g);y.push(r)}const M=new Uint32Array(2*(n+2)*3),d=new Uint32Array(2*(n+2)*3);let w=0,P=0;if(a){for(let t=3;t<A.length;t++)M[w++]=1,M[w++]=t-1,M[w++]=t,d[P++]=0,d[P++]=0,d[P++]=0;M[w++]=A.length-1,M[w++]=2,M[w++]=1,d[P++]=0,d[P++]=0,d[P++]=0}if(o){for(let t=3;t<A.length;t++)M[w++]=t,M[w++]=t-1,M[w++]=0,d[P++]=t,d[P++]=t-1,d[P++]=1;M[w++]=0,M[w++]=2,M[w++]=A.length-1,d[P++]=1,d[P++]=2,d[P++]=y.length-1}const U=new Float32Array(3*I);for(let c=0;c<I;c++)U[3*c]=A[c][0],U[3*c+1]=A[c][1],U[3*c+2]=A[c][2];const S=new Float32Array(3*I);for(let c=0;c<I;c++)S[3*c]=y[c][0],S[3*c+1]=y[c][1],S[3*c+2]=y[c][2];const p=[[N.POSITION,M],[N.NORMAL,d]],x=[[N.POSITION,{size:3,data:U,exclusive:!0}],[N.NORMAL,{size:3,data:S,exclusive:!0}]];return new m(x,p)}function C(t,l,i,h,O,A){const y=h?f(h):c(1,0,0),I=O?f(O):c(0,0,0);A=null==A||A;const g=u();n(g,y);const M=u();r(M,g,Math.abs(t));const d=u();r(d,M,-.5),a(d,d,I);const w=c(0,1,0);Math.abs(1-o(g,w))<.2&&s(w,0,0,1);const P=u();e(P,g,w),n(P,P),e(w,P,g);const U=2*i+(A?2:0),S=i+(A?2:0),p=new Float32Array(3*U),x=new Float32Array(3*S),z=new Float32Array(2*U),v=new Uint32Array(3*i*(A?4:2)),T=new Uint32Array(3*i*(A?4:2));A&&(p[3*(U-2)+0]=d[0],p[3*(U-2)+1]=d[1],p[3*(U-2)+2]=d[2],z[2*(U-2)]=0,z[2*(U-2)+1]=0,p[3*(U-1)+0]=p[3*(U-2)+0]+M[0],p[3*(U-1)+1]=p[3*(U-2)+1]+M[1],p[3*(U-1)+2]=p[3*(U-2)+2]+M[2],z[2*(U-1)]=1,z[2*(U-1)+1]=1,x[3*(S-2)+0]=-g[0],x[3*(S-2)+1]=-g[1],x[3*(S-2)+2]=-g[2],x[3*(S-1)+0]=g[0],x[3*(S-1)+1]=g[1],x[3*(S-1)+2]=g[2]);const L=function(t,e,n){v[t]=e,T[t]=n};let R=0;const b=u(),G=u();for(let e=0;e<i;e++){const t=e*(2*Math.PI/i);r(b,w,Math.sin(t)),r(G,P,Math.cos(t)),a(b,b,G),x[3*e+0]=b[0],x[3*e+1]=b[1],x[3*e+2]=b[2],r(b,b,l),a(b,b,d),p[3*e+0]=b[0],p[3*e+1]=b[1],p[3*e+2]=b[2],z[2*e+0]=e/i,z[2*e+1]=0,p[3*(e+i)+0]=p[3*e+0]+M[0],p[3*(e+i)+1]=p[3*e+1]+M[1],p[3*(e+i)+2]=p[3*e+2]+M[2],z[2*(e+i)+0]=e/i,z[2*e+1]=1;const n=(e+1)%i;L(R++,e,e),L(R++,e+i,e),L(R++,n,n),L(R++,n,n),L(R++,e+i,e),L(R++,n+i,n)}if(A){for(let t=0;t<i;t++){const e=(t+1)%i;L(R++,U-2,S-2),L(R++,t,S-2),L(R++,e,S-2)}for(let t=0;t<i;t++){const e=(t+1)%i;L(R++,t+i,S-1),L(R++,U-1,S-1),L(R++,e+i,S-1)}}const F=[[N.POSITION,v],[N.NORMAL,T],[N.UV0,v]],V=[[N.POSITION,{size:3,data:p,exclusive:!0}],[N.NORMAL,{size:3,data:x,exclusive:!0}],[N.UV0,{size:2,data:z,exclusive:!0}]];return new m(V,F)}function E(t,e,n,r,a){n=n||10,r=null==r||r,w(t.length>1);const o=[[0,0,0]],s=[],l=[];for(let i=0;i<n;i++){s.push([0,-i-1,-(i+1)%n-1]);const t=i/n*2*Math.PI;l.push([Math.cos(t)*e,Math.sin(t)*e])}return M.createPathExtrusionGeometry(l,t,o,s,r,a)}function k(o,i,f,g,M,d=c(0,0,0)){const w=o.length,P=new Float32Array(i.length*w*3+(6*f.length||0)),U=new Float32Array(i.length*w*3+(f?6:0)),S=(i.length-1)*w*6+3*g.length*2,p=new Uint32Array(S),x=new Uint32Array(S);let v=0,T=0,L=0,R=0;const b=u(),G=u(),F=u(),V=u(),j=u(),C=u(),E=u(),k=h(),B=u(),D=u(),X=u(),q=u(),Z=u(),J=O();s(B,0,1,0),t(G,i[1],i[0]),n(G,G),M?(a(k,i[0],d),n(F,k)):s(F,0,0,1),H(G,F,B,B,j,F,z),l(V,F),l(q,j);for(let t=0;t<f.length;t++)r(C,j,f[t][0]),r(k,F,f[t][2]),a(C,C,k),a(C,C,i[0]),P[v++]=C[0],P[v++]=C[1],P[v++]=C[2];U[T++]=-G[0],U[T++]=-G[1],U[T++]=-G[2];for(let t=0;t<g.length;t++)p[L++]=g[t][0]>0?g[t][0]:-g[t][0]-1+f.length,p[L++]=g[t][1]>0?g[t][1]:-g[t][1]-1+f.length,p[L++]=g[t][2]>0?g[t][2]:-g[t][2]-1+f.length,x[R++]=0,x[R++]=0,x[R++]=0;let K=f.length;const Q=f.length-1;for(let s=0;s<i.length;s++){let c=!1;if(s>0){l(b,G),s<i.length-1?(t(G,i[s+1],i[s]),n(G,G)):c=!0,a(D,b,G),n(D,D),a(X,i[s-1],V),A(i[s],D,J);y(J,I(X,b),k)?(t(k,k,i[s]),n(F,k),e(j,D,F),n(j,j)):H(D,V,q,B,j,F,z),l(V,F),l(q,j)}M&&(a(k,i[s],d),n(Z,k));for(let t=0;t<w;t++)if(r(C,j,o[t][0]),r(k,F,o[t][1]),a(C,C,k),n(E,C),U[T++]=E[0],U[T++]=E[1],U[T++]=E[2],a(C,C,i[s]),P[v++]=C[0],P[v++]=C[1],P[v++]=C[2],!c){const e=(t+1)%w;p[L++]=K+t,p[L++]=K+w+t,p[L++]=K+e,p[L++]=K+e,p[L++]=K+w+t,p[L++]=K+w+e;for(let t=0;t<6;t++)x[R++]=p[L-6+t]-Q}K+=w}const W=i[i.length-1];for(let t=0;t<f.length;t++)r(C,j,f[t][0]),r(k,F,f[t][1]),a(C,C,k),a(C,C,W),P[v++]=C[0],P[v++]=C[1],P[v++]=C[2];const Y=T/3;U[T++]=G[0],U[T++]=G[1],U[T++]=G[2];const $=K-w;for(let t=0;t<g.length;t++)p[L++]=g[t][0]>=0?K+g[t][0]:-g[t][0]-1+$,p[L++]=g[t][2]>=0?K+g[t][2]:-g[t][2]-1+$,p[L++]=g[t][1]>=0?K+g[t][1]:-g[t][1]-1+$,x[R++]=Y,x[R++]=Y,x[R++]=Y;const _=[[N.POSITION,p],[N.NORMAL,x]],tt=[[N.POSITION,{size:3,data:P,exclusive:!0}],[N.NORMAL,{size:3,data:U,exclusive:!0}]];return new m(tt,_)}function B(t,e,n){w(t.length>1,"createPolylineGeometry(): polyline needs at least 2 points"),w(3===t[0].length,"createPolylineGeometry(): malformed vertex"),w(null==e||e.length===t.length,"createPolylineGeometry: need same number of points and normals"),w(null==e||3===e[0].length,"createPolylineGeometry(): malformed normal");const r=new Float64Array(3*t.length),a=new Uint32Array(2*(t.length-1));let o=0,s=0;for(let c=0;c<t.length;c++){for(let e=0;e<3;e++)r[o++]=t[c][e];c>0&&(a[s++]=c-1,a[s++]=c)}const l=[],i=[];if(l.push([N.POSITION,a]),i.push([N.POSITION,{size:3,data:r,exclusive:!0}]),e){const n=new Float32Array(3*e.length);let r=0;for(let a=0;a<t.length;a++)for(let t=0;t<3;t++)n[r++]=e[a][t];l.push([N.NORMAL,a]),i.push([N.NORMAL,{size:3,data:n,exclusive:!0}])}return n&&(i.push([N.COLOR,{size:4,data:n}]),l.push([N.COLOR,d(n.length/4)])),new m(i,l,g.Line)}function D(t,e,n,r,a=0){const o=new Array(18),s=[[-e,a,r/2],[n,a,r/2],[0,t+a,r/2],[-e,a,-r/2],[n,a,-r/2],[0,t+a,-r/2]],l=new Uint16Array([0,1,2,3,0,2,2,5,3,1,4,5,5,2,1,1,0,3,3,4,1,4,3,5]);for(let i=0;i<6;i++)o[3*i]=s[i][0],o[3*i+1]=s[i][1],o[3*i+2]=s[i][2];return new m([[N.POSITION,{size:3,data:o,exclusive:!0}]],[[N.POSITION,l]])}function X(t,e){const n=t.getMutableAttribute(N.POSITION).data;for(let r=0;r<n.length;r+=3){const t=n[r],a=n[r+1],o=n[r+2];s(v,t,a,o),i(v,v,e),n[r]=v[0],n[r+1]=v[1],n[r+2]=v[2]}}function q(t,e=t){const n=t.vertexAttributes,r=n.get(N.POSITION).data,a=n.get(N.NORMAL).data;if(a){const t=e.getMutableAttribute(N.NORMAL).data;for(let e=0;e<a.length;e+=3){const n=a[e+1];t[e+1]=-a[e+2],t[e+2]=n}}if(r){const t=e.getMutableAttribute(N.POSITION).data;for(let e=0;e<r.length;e+=3){const n=r[e+1];t[e+1]=-r[e+2],t[e+2]=n}}return e}function Z(t,r,a,s,l){return!(Math.abs(o(r,t))>l)&&(e(a,t,r),n(a,a),e(s,a,t),n(s,s),!0)}function H(t,e,n,r,a,o,s){return Z(t,e,a,o,s)||Z(t,n,a,o,s)||Z(t,r,a,o,s)}M.createSquareGeometry=V,M.createConeGeometry=j,M.createCylinderGeometry=C,M.createTubeGeometry=E,M.createPathExtrusionGeometry=k,M.createPolylineGeometry=B,M.createExtrudedTriangle=D,M.transformInPlace=X,M.cgToGIS=q,M.makeOrthoBasisDirUp=Z,M.makeOrthoBasisDirUpFallback=H}(x||(x={}));const z=.99619469809,v=u(),T=x;export{T as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{isSome as t}from"../../../../core/maybe.js";import{generateUID as i}from"../../../../core/uid.js";import{I as r}from"../../../../chunks/mat4f64.js";import{f as o}from"../../../../chunks/vec3.js";import{c as s}from"../../../../chunks/vec3f64.js";import{projectBuffer as e}from"../../../../geometry/projection.js";import{VertexAttribute as a,PrimitiveType as n}from"./basicInterfaces.js";import{Geometry as h}from"./Geometry.js";import{fromValues as c}from"./LocalOriginFactory.js";import{Object3D as m}from"./Object3D.js";import{WebGLLayer as d}from"./WebGLLayer.js";import{RibbonLineMaterial as g}from"../materials/RibbonLineMaterial.js";class f{constructor(t,r=125e4){this._originSR=t,this._gridSize=r,this._origins=new Map,this._objects=new Map,this._rootOriginId="root/"+i()}getOrigin(i){const r=this._origins.get(this._rootOriginId);if(null==r){if(t(_))return this._origins.set(this._rootOriginId,c(_[0],_[1],_[2],this._rootOriginId)),this.getOrigin(i);const r=c(i[0]+Math.random()-.5,i[1]+Math.random()-.5,i[2]+Math.random()-.5,this._rootOriginId);return this._origins.set(this._rootOriginId,r),r}const s=this._gridSize,e=Math.round(i[0]/s),a=Math.round(i[1]/s),n=Math.round(i[2]/s),h=`${e}/${a}/${n}`;let m=this._origins.get(h);const d=.5*s;if(o(j,i,r.vec3),j[0]=Math.abs(j[0]),j[1]=Math.abs(j[1]),j[2]=Math.abs(j[2]),j[0]<d&&j[1]<d&&j[2]<d){if(m){const t=Math.max(...j);o(j,i,m.vec3),j[0]=Math.abs(j[0]),j[1]=Math.abs(j[1]),j[2]=Math.abs(j[2]);if(Math.max(...j)<t)return m}return r}return m||(m=c(e*s,a*s,n*s,h),this._origins.set(h,m)),m}_drawOriginBox(t,i=[1,1,0,1]){const o=window.view,s=o._stage,c=i.toString();if(!this._objects.has(c)){this._material=new g({width:2,color:i}),s.add(this._material);const t=new d({isPickable:!1}),r=new m({castShadow:!1});s.add(r),t.add(r),s.add(t),this._objects.set(c,r)}const f=this._objects.get(c),_=[0,1,5,4,0,2,1,7,6,2,0,1,3,7,5,4,6,2,0],l=_.length,j=new Array(3*l),u=new Uint16Array(2*(l-1)),b=.5*this._gridSize;for(let r=0;r<l;r++)j[3*r+0]=t[0]+(1&_[r]?b:-b),j[3*r+1]=t[1]+(2&_[r]?b:-b),j[3*r+2]=t[2]+(4&_[r]?b:-b),r>0&&(u[2*r+0]=r-1,u[2*r+1]=r);e(j,this._originSR,0,j,o.renderSpatialReference,0,l);const p=new h([[a.POSITION,{size:3,data:j,exclusive:!0}]],[[a.POSITION,u]],n.Line);s.add(p),f.addGeometry(p,this._material,r)}}let _=null;function l(t){_=t}const j=s();export{f as GridLocalOriginFactory,l as default,l as setTestRootOrigin};
5
+ import{isSome as t}from"../../../../core/maybe.js";import{generateUID as i}from"../../../../core/uid.js";import{I as r}from"../../../../chunks/mat4f64.js";import{f as o}from"../../../../chunks/vec3.js";import{c as s}from"../../../../chunks/vec3f64.js";import{projectBuffer as e}from"../../../../geometry/projection.js";import{PrimitiveType as a}from"./basicInterfaces.js";import{Geometry as n}from"./Geometry.js";import{fromValues as h}from"./LocalOriginFactory.js";import{Object3D as m}from"./Object3D.js";import{VertexAttribute as c}from"./VertexAttribute.js";import{WebGLLayer as d}from"./WebGLLayer.js";import{RibbonLineMaterial as g}from"../materials/RibbonLineMaterial.js";class f{constructor(t,r=125e4){this._originSR=t,this._gridSize=r,this._origins=new Map,this._objects=new Map,this._rootOriginId="root/"+i()}getOrigin(i){const r=this._origins.get(this._rootOriginId);if(null==r){if(t(_))return this._origins.set(this._rootOriginId,h(_[0],_[1],_[2],this._rootOriginId)),this.getOrigin(i);const r=h(i[0]+Math.random()-.5,i[1]+Math.random()-.5,i[2]+Math.random()-.5,this._rootOriginId);return this._origins.set(this._rootOriginId,r),r}const s=this._gridSize,e=Math.round(i[0]/s),a=Math.round(i[1]/s),n=Math.round(i[2]/s),m=`${e}/${a}/${n}`;let c=this._origins.get(m);const d=.5*s;if(o(j,i,r.vec3),j[0]=Math.abs(j[0]),j[1]=Math.abs(j[1]),j[2]=Math.abs(j[2]),j[0]<d&&j[1]<d&&j[2]<d){if(c){const t=Math.max(...j);o(j,i,c.vec3),j[0]=Math.abs(j[0]),j[1]=Math.abs(j[1]),j[2]=Math.abs(j[2]);if(Math.max(...j)<t)return c}return r}return c||(c=h(e*s,a*s,n*s,m),this._origins.set(m,c)),c}_drawOriginBox(t,i=[1,1,0,1]){const o=window.view,s=o._stage,h=i.toString();if(!this._objects.has(h)){this._material=new g({width:2,color:i}),s.add(this._material);const t=new d({isPickable:!1}),r=new m({castShadow:!1});s.add(r),t.add(r),s.add(t),this._objects.set(h,r)}const f=this._objects.get(h),_=[0,1,5,4,0,2,1,7,6,2,0,1,3,7,5,4,6,2,0],l=_.length,j=new Array(3*l),u=new Uint16Array(2*(l-1)),b=.5*this._gridSize;for(let r=0;r<l;r++)j[3*r+0]=t[0]+(1&_[r]?b:-b),j[3*r+1]=t[1]+(2&_[r]?b:-b),j[3*r+2]=t[2]+(4&_[r]?b:-b),r>0&&(u[2*r+0]=r-1,u[2*r+1]=r);e(j,this._originSR,0,j,o.renderSpatialReference,0,l);const p=new n([[c.POSITION,{size:3,data:j,exclusive:!0}]],[[c.POSITION,u]],a.Line);s.add(p),f.addGeometry(p,this._material,r)}}let _=null;function l(t){_=t}const j=s();export{f as GridLocalOriginFactory,l as default,l as setTestRootOrigin};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../chunks/tslib.es6.js";import s from"../../../../core/Accessor.js";import r from"../../../../core/Evented.js";import t from"../../../../core/Handles.js";import{clamp as i}from"../../../../core/mathUtils.js";import{isNone as o,isSome as a}from"../../../../core/maybe.js";import{createTask as n}from"../../../../core/promiseUtils.js";import{createScreenPointArray as m,createRenderScreenPointArray as u,screenPointObjectToArray as l}from"../../../../core/screenUtils.js";import{isSVG as c}from"../../../../core/urlUtils.js";import{property as h}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as p}from"../../../../core/accessorSupport/decorators/subclass.js";import{requestImage as d}from"../../../../support/requestImageUtils.js";import{VertexAttribute as _}from"./basicInterfaces.js";import{Pos2 as g}from"./DefaultVertexBufferLayouts.js";import{createQuadVAO as f}from"./glUtil3D.js";import{Program as T}from"./Program.js";import{build as v}from"../shaders/Magnifier.glsl.js";import{loadMagnifierResources as y}from"../../../magnifier/resources.js";import{PrimitiveType as k,BlendFactor as R,TextureType as L,PixelFormat as S,PixelType as x,TextureWrapMode as E,TextureSamplingMode as b}from"../../../webgl/enums.js";import{makePipelineState as j,simpleBlendingParams as A,defaultColorWriteParams as w}from"../../../webgl/renderState.js";import{Texture as M}from"../../../webgl/Texture.js";let U=class extends s{constructor(){super(...arguments),this._handles=new t,this._magnifier=null,this._imageSources=null,this._imageLoadTask=null,this._resources=null,this.events=new r,this.attributeLocations=new Map([[_.POSITION,0]]),this.tmpScreenPoint=m(),this.tmpRenderPoint=u()}get updating(){return o(this._imageSources)&&a(this._imageLoadTask)&&!this._imageLoadTask.task.finished}get magnifier(){return this._magnifier}set magnifier(e){if(e===this._magnifier)return;this._handles.removeAll(),this._magnifier=e;const s=()=>{this._updateResourceLoading(),this.events.emit("request-render")};a(this._magnifier)&&this._handles.add(this._magnifier.watch("version",s)),s()}get enabled(){return a(this._validMagnifier)}get _validMagnifier(){return a(this._magnifier)&&this._magnifier.visible&&a(this._magnifier.position)&&this._magnifier.size>0?this._magnifier:null}get factor(){return a(this._magnifier)&&this._magnifier.factor||1}dispose(){this._magnifier=null,this._handles.destroy(),a(this._imageLoadTask)&&(this._imageLoadTask.task.abort(),this._imageLoadTask=null),this._disposeResources()}render(e,s){const r=this._validMagnifier;if(o(r))return;const t=s.camera.pixelRatio,a=Math.ceil(t*r.size);if(this._updateResources(e,a),o(this._resources))return;const n=this._resources.program;e.useProgram(n);const m=this._resources.textures,u=Math.ceil(1/this.factor*a);m.input.resize(u,u);const c=s.camera.fullWidth,h=s.camera.fullHeight;l(r.position,this.tmpScreenPoint);const p=s.camera.screenToRender(this.tmpScreenPoint,this.tmpRenderPoint),d=.5*u,_=.5*u;p[0]=i(p[0],d,c-d-1),p[1]=i(p[1],_,h-_-1);const g=Math.floor(p[0]-d),f=Math.floor(p[1]-_);n.bindTexture(m.input,"textureInput"),e.gl.copyTexImage2D(m.input.descriptor.target,0,m.input.descriptor.pixelFormat,g,f,u,u,0);const T=r.offset.x*t,v=r.offset.y*t,y=(p[0]+T)/c*2-1,R=(p[1]-v)/h*2-1,L=a/c*2,S=a/h*2;e.bindVAO(this._resources.vao),n.bindTexture(m.overlay,"textureOverlay"),n.bindTexture(m.mask,"textureMask"),n.setUniform4f("drawPosition",y,R,L,S),n.setUniform1i("maskEnabled",r.maskEnabled?1:0),n.setUniform1i("overlayEnabled",r.overlayEnabled?1:0),e.setPipelineState(this._resources.pipelineState),e.drawArrays(k.TRIANGLE_STRIP,0,4)}_updateResourceLoading(){const e=this._validMagnifier;if(o(e))return;const s=e.maskUrl,r=e.overlayUrl;!a(this._imageLoadTask)||this._imageLoadTask.maskUrl===s&&this._imageLoadTask.overlayUrl===r||(this._imageLoadTask.task.abort(),this._imageLoadTask=null,this._imageSources=null),a(this._imageSources)||a(this._imageLoadTask)||(this._imageLoadTask={maskUrl:s,overlayUrl:r,task:n((async e=>{const t=o(s)||o(r)?y(e):null,i=a(s)?d(s,{signal:e}):t.then((e=>e.mask)),n=a(r)?d(r,{signal:e}):t.then((e=>e.overlay));this._imageSources={mask:await i,overlay:await n},this._disposeResources(),this.events.emit("request-render")}))},this._imageLoadTask.task.promise.then((()=>this.notifyChange("updating")),(()=>this.notifyChange("updating"))))}_updateResources(e,s){if(!this.enabled)return void this._disposeResources();if(a(this._resources)){if(this._resources.textures.size!==s){const r=this._createTextureResources(e,s);if(o(r))return void this._disposeResources();this._disposeTextureResources(this._resources.textures),this._resources.textures=r}return}const r=this._createTextureResources(e,s);o(r)||(this._resources={textures:r,program:this._createProgram(e),vao:f(e,g,this.attributeLocations,0,1),pipelineState:j({blending:A(R.ONE,R.ONE_MINUS_SRC_ALPHA),depthTest:null,depthWrite:null,colorWrite:w})})}_disposeResources(){o(this._resources)||(this._disposeTextureResources(this._resources.textures),this._resources.program.dispose(),this._resources.vao.dispose(),this._resources=null)}_disposeTextureResources(e){e.mask.dispose(),e.overlay.dispose(),e.input.dispose()}_createTextureResources(e,s){if(o(this._imageSources))return null;this._imageSources.overlay.width=s,this._imageSources.overlay.height=s,this._imageSources.mask.width=s,this._imageSources.mask.height=s;const r=new M(e,{target:L.TEXTURE_2D,pixelFormat:S.RGBA,internalFormat:S.RGBA,dataType:x.UNSIGNED_BYTE,wrapMode:E.CLAMP_TO_EDGE,samplingMode:b.LINEAR,flipped:!0,preMultiplyAlpha:!c(this._imageSources.overlay.src)||!e.driverTest.svgAlwaysPremultipliesAlpha},this._imageSources.overlay),t=new M(e,{target:L.TEXTURE_2D,pixelFormat:S.ALPHA,internalFormat:S.ALPHA,dataType:x.UNSIGNED_BYTE,wrapMode:E.CLAMP_TO_EDGE,samplingMode:b.LINEAR,flipped:!0},this._imageSources.mask);return{input:new M(e,{target:L.TEXTURE_2D,pixelFormat:S.RGBA,internalFormat:S.RGBA,dataType:x.UNSIGNED_BYTE,wrapMode:E.CLAMP_TO_EDGE,samplingMode:b.LINEAR,flipped:!1}),mask:t,overlay:r,size:s}}_createProgram(e){const s=v();return new T(e,s,this.attributeLocations)}};e([h()],U.prototype,"_imageSources",void 0),e([h()],U.prototype,"_imageLoadTask",void 0),e([h({readOnly:!0})],U.prototype,"updating",null),U=e([p("esri/views/3d/webgl-engine/lib/MagnifierHelper")],U);export{U as MagnifierHelper};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import s from"../../../../core/Accessor.js";import t from"../../../../core/Evented.js";import r from"../../../../core/Handles.js";import{clamp as i}from"../../../../core/mathUtils.js";import{isNone as o,isSome as a}from"../../../../core/maybe.js";import{createTask as n}from"../../../../core/promiseUtils.js";import{createScreenPointArray as m,createRenderScreenPointArray as u,screenPointObjectToArray as l}from"../../../../core/screenUtils.js";import{isSVG as h}from"../../../../core/urlUtils.js";import{property as p}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as c}from"../../../../core/accessorSupport/decorators/subclass.js";import{requestImage as d}from"../../../../support/requestImageUtils.js";import{Pos2 as _}from"./DefaultVertexBufferLayouts.js";import{createQuadVAO as g}from"./glUtil3D.js";import{Program as f}from"./Program.js";import{VertexAttribute as T}from"./VertexAttribute.js";import{build as v}from"../shaders/Magnifier.glsl.js";import{loadMagnifierResources as y}from"../../../magnifier/resources.js";import{PrimitiveType as k,BlendFactor as R,TextureType as L,PixelFormat as S,PixelType as x,TextureWrapMode as E,TextureSamplingMode as b}from"../../../webgl/enums.js";import{makePipelineState as A,simpleBlendingParams as j,defaultColorWriteParams as w}from"../../../webgl/renderState.js";import{Texture as M}from"../../../webgl/Texture.js";let U=class extends s{constructor(){super(...arguments),this._handles=new r,this._magnifier=null,this._imageSources=null,this._imageLoadTask=null,this._resources=null,this.events=new t,this.attributeLocations=new Map([[T.POSITION,0]]),this.tmpScreenPoint=m(),this.tmpRenderPoint=u()}get updating(){return o(this._imageSources)&&a(this._imageLoadTask)&&!this._imageLoadTask.task.finished}get magnifier(){return this._magnifier}set magnifier(e){if(e===this._magnifier)return;this._handles.removeAll(),this._magnifier=e;const s=()=>{this._updateResourceLoading(),this.events.emit("request-render")};a(this._magnifier)&&this._handles.add(this._magnifier.watch("version",s)),s()}get enabled(){return a(this._validMagnifier)}get _validMagnifier(){return a(this._magnifier)&&this._magnifier.visible&&a(this._magnifier.position)&&this._magnifier.size>0?this._magnifier:null}get factor(){return a(this._magnifier)&&this._magnifier.factor||1}dispose(){this._magnifier=null,this._handles.destroy(),a(this._imageLoadTask)&&(this._imageLoadTask.task.abort(),this._imageLoadTask=null),this._disposeResources()}render(e,s){const t=this._validMagnifier;if(o(t))return;const r=s.camera.pixelRatio,a=Math.ceil(r*t.size);if(this._updateResources(e,a),o(this._resources))return;const n=this._resources.program;e.useProgram(n);const m=this._resources.textures,u=Math.ceil(1/this.factor*a);m.input.resize(u,u);const h=s.camera.fullWidth,p=s.camera.fullHeight;l(t.position,this.tmpScreenPoint);const c=s.camera.screenToRender(this.tmpScreenPoint,this.tmpRenderPoint),d=.5*u,_=.5*u;c[0]=i(c[0],d,h-d-1),c[1]=i(c[1],_,p-_-1);const g=Math.floor(c[0]-d),f=Math.floor(c[1]-_);n.bindTexture(m.input,"textureInput"),e.gl.copyTexImage2D(m.input.descriptor.target,0,m.input.descriptor.pixelFormat,g,f,u,u,0);const T=t.offset.x*r,v=t.offset.y*r,y=(c[0]+T)/h*2-1,R=(c[1]-v)/p*2-1,L=a/h*2,S=a/p*2;e.bindVAO(this._resources.vao),n.bindTexture(m.overlay,"textureOverlay"),n.bindTexture(m.mask,"textureMask"),n.setUniform4f("drawPosition",y,R,L,S),n.setUniform1i("maskEnabled",t.maskEnabled?1:0),n.setUniform1i("overlayEnabled",t.overlayEnabled?1:0),e.setPipelineState(this._resources.pipelineState),e.drawArrays(k.TRIANGLE_STRIP,0,4)}_updateResourceLoading(){const e=this._validMagnifier;if(o(e))return;const s=e.maskUrl,t=e.overlayUrl;!a(this._imageLoadTask)||this._imageLoadTask.maskUrl===s&&this._imageLoadTask.overlayUrl===t||(this._imageLoadTask.task.abort(),this._imageLoadTask=null,this._imageSources=null),a(this._imageSources)||a(this._imageLoadTask)||(this._imageLoadTask={maskUrl:s,overlayUrl:t,task:n((async e=>{const r=o(s)||o(t)?y(e):null,i=a(s)?d(s,{signal:e}):r.then((e=>e.mask)),n=a(t)?d(t,{signal:e}):r.then((e=>e.overlay));this._imageSources={mask:await i,overlay:await n},this._disposeResources(),this.events.emit("request-render")}))},this._imageLoadTask.task.promise.then((()=>this.notifyChange("updating")),(()=>this.notifyChange("updating"))))}_updateResources(e,s){if(!this.enabled)return void this._disposeResources();if(a(this._resources)){if(this._resources.textures.size!==s){const t=this._createTextureResources(e,s);if(o(t))return void this._disposeResources();this._disposeTextureResources(this._resources.textures),this._resources.textures=t}return}const t=this._createTextureResources(e,s);o(t)||(this._resources={textures:t,program:this._createProgram(e),vao:g(e,_,this.attributeLocations,0,1),pipelineState:A({blending:j(R.ONE,R.ONE_MINUS_SRC_ALPHA),depthTest:null,depthWrite:null,colorWrite:w})})}_disposeResources(){o(this._resources)||(this._disposeTextureResources(this._resources.textures),this._resources.program.dispose(),this._resources.vao.dispose(),this._resources=null)}_disposeTextureResources(e){e.mask.dispose(),e.overlay.dispose(),e.input.dispose()}_createTextureResources(e,s){if(o(this._imageSources))return null;this._imageSources.overlay.width=s,this._imageSources.overlay.height=s,this._imageSources.mask.width=s,this._imageSources.mask.height=s;const t=new M(e,{target:L.TEXTURE_2D,pixelFormat:S.RGBA,internalFormat:S.RGBA,dataType:x.UNSIGNED_BYTE,wrapMode:E.CLAMP_TO_EDGE,samplingMode:b.LINEAR,flipped:!0,preMultiplyAlpha:!h(this._imageSources.overlay.src)||!e.driverTest.svgAlwaysPremultipliesAlpha},this._imageSources.overlay),r=new M(e,{target:L.TEXTURE_2D,pixelFormat:S.ALPHA,internalFormat:S.ALPHA,dataType:x.UNSIGNED_BYTE,wrapMode:E.CLAMP_TO_EDGE,samplingMode:b.LINEAR,flipped:!0},this._imageSources.mask);return{input:new M(e,{target:L.TEXTURE_2D,pixelFormat:S.RGBA,internalFormat:S.RGBA,dataType:x.UNSIGNED_BYTE,wrapMode:E.CLAMP_TO_EDGE,samplingMode:b.LINEAR,flipped:!1}),mask:r,overlay:t,size:s}}_createProgram(e){const s=v();return new f(e,s,this.attributeLocations)}};e([p()],U.prototype,"_imageSources",void 0),e([p()],U.prototype,"_imageLoadTask",void 0),e([p({readOnly:!0})],U.prototype,"updating",null),U=e([c("esri/views/3d/webgl-engine/lib/MagnifierHelper")],U);export{U as MagnifierHelper};