deeptwins-cesium-engine 0.0.3

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 (2085) hide show
  1. package/Build/ThirdParty/Workers/zip-web-worker.js +640 -0
  2. package/Build/Workers/chunk-2363JE27.js +163 -0
  3. package/Build/Workers/chunk-23T2IPHV.js +55 -0
  4. package/Build/Workers/chunk-27SAH2Q2.js +55 -0
  5. package/Build/Workers/chunk-2AM4E2WD.js +101 -0
  6. package/Build/Workers/chunk-2H4D4HBM.js +101 -0
  7. package/Build/Workers/chunk-2KBLMCYQ.js +198 -0
  8. package/Build/Workers/chunk-2MWF4IES.js +398 -0
  9. package/Build/Workers/chunk-2O7PRNCW.js +288 -0
  10. package/Build/Workers/chunk-2RCIRXNI.js +75 -0
  11. package/Build/Workers/chunk-3JIEAYRM.js +940 -0
  12. package/Build/Workers/chunk-3VNQVXD6.js +837 -0
  13. package/Build/Workers/chunk-3XR54LVR.js +75 -0
  14. package/Build/Workers/chunk-3YTMGEXW.js +1443 -0
  15. package/Build/Workers/chunk-3ZP3VA4L.js +171 -0
  16. package/Build/Workers/chunk-4AKOLNCZ.js +139 -0
  17. package/Build/Workers/chunk-4BHWJWS3.js +171 -0
  18. package/Build/Workers/chunk-4QSCEADX.js +1800 -0
  19. package/Build/Workers/chunk-4ZKQXB7T.js +1460 -0
  20. package/Build/Workers/chunk-4ZX6BO6C.js +476 -0
  21. package/Build/Workers/chunk-55NHNEI7.js +163 -0
  22. package/Build/Workers/chunk-5F3SUA6W.js +8366 -0
  23. package/Build/Workers/chunk-5FBLADWD.js +692 -0
  24. package/Build/Workers/chunk-5H7FXJTE.js +2719 -0
  25. package/Build/Workers/chunk-5JKH4AMT.js +58 -0
  26. package/Build/Workers/chunk-5MTUN2SE.js +642 -0
  27. package/Build/Workers/chunk-5PWCXSID.js +256 -0
  28. package/Build/Workers/chunk-5RL7XAZS.js +256 -0
  29. package/Build/Workers/chunk-5TZVQOFD.js +305 -0
  30. package/Build/Workers/chunk-67FTKXPJ.js +352 -0
  31. package/Build/Workers/chunk-6AIBN5NQ.js +1054 -0
  32. package/Build/Workers/chunk-6D6BOTSA.js +414 -0
  33. package/Build/Workers/chunk-6FGAWC5J.js +44 -0
  34. package/Build/Workers/chunk-6HKAPCSO.js +280 -0
  35. package/Build/Workers/chunk-6UJDVUJ4.js +8366 -0
  36. package/Build/Workers/chunk-73Q77JO7.js +138 -0
  37. package/Build/Workers/chunk-7A6QUBKY.js +58 -0
  38. package/Build/Workers/chunk-7APZZMCL.js +73 -0
  39. package/Build/Workers/chunk-7BHC3VOI.js +511 -0
  40. package/Build/Workers/chunk-7GQHESFY.js +368 -0
  41. package/Build/Workers/chunk-7MVC3OLP.js +58 -0
  42. package/Build/Workers/chunk-7UNMLR74.js +1800 -0
  43. package/Build/Workers/chunk-A2QTGP5S.js +55 -0
  44. package/Build/Workers/chunk-A3FZIBXG.js +55 -0
  45. package/Build/Workers/chunk-A53R2F2L.js +305 -0
  46. package/Build/Workers/chunk-A6LIUE7X.js +692 -0
  47. package/Build/Workers/chunk-A6YFUGJO.js +139 -0
  48. package/Build/Workers/chunk-AJYWXC6I.js +97 -0
  49. package/Build/Workers/chunk-ALTIGQTT.js +288 -0
  50. package/Build/Workers/chunk-AOIO5VUS.js +8366 -0
  51. package/Build/Workers/chunk-AT2CG6PG.js +3514 -0
  52. package/Build/Workers/chunk-ATX74V7S.js +55 -0
  53. package/Build/Workers/chunk-AZPXT6RB.js +1067 -0
  54. package/Build/Workers/chunk-B7JRBTT6.js +682 -0
  55. package/Build/Workers/chunk-BALMTCKJ.js +138 -0
  56. package/Build/Workers/chunk-BBYRID6W.js +352 -0
  57. package/Build/Workers/chunk-BDX4AYXL.js +162 -0
  58. package/Build/Workers/chunk-BG2DK4Q5.js +101 -0
  59. package/Build/Workers/chunk-BSNC3NBZ.js +139 -0
  60. package/Build/Workers/chunk-BZLYQCIC.js +958 -0
  61. package/Build/Workers/chunk-C4NX77B5.js +57 -0
  62. package/Build/Workers/chunk-CHNDJRYA.js +1054 -0
  63. package/Build/Workers/chunk-CJOV55CW.js +1067 -0
  64. package/Build/Workers/chunk-COGPE5Z2.js +241 -0
  65. package/Build/Workers/chunk-CRCK5VX6.js +497 -0
  66. package/Build/Workers/chunk-CTLQNSVP.js +455 -0
  67. package/Build/Workers/chunk-CW7W27IZ.js +299 -0
  68. package/Build/Workers/chunk-DICY26ID.js +2719 -0
  69. package/Build/Workers/chunk-DLAVWLZW.js +682 -0
  70. package/Build/Workers/chunk-DMEFNTUV.js +1317 -0
  71. package/Build/Workers/chunk-DQSJEOZY.js +55 -0
  72. package/Build/Workers/chunk-F6UXXCPK.js +3514 -0
  73. package/Build/Workers/chunk-FKIR6F3B.js +97 -0
  74. package/Build/Workers/chunk-FRBZJJVU.js +2719 -0
  75. package/Build/Workers/chunk-FRLH26PM.js +940 -0
  76. package/Build/Workers/chunk-FT6HYEKU.js +3514 -0
  77. package/Build/Workers/chunk-FYDCQ2VN.js +73 -0
  78. package/Build/Workers/chunk-G5OKIL5P.js +55 -0
  79. package/Build/Workers/chunk-G6VHLVWG.js +101 -0
  80. package/Build/Workers/chunk-GBGV4U6Z.js +219 -0
  81. package/Build/Workers/chunk-GDU4RZSZ.js +940 -0
  82. package/Build/Workers/chunk-GJRVCSXV.js +37 -0
  83. package/Build/Workers/chunk-GKWOUMYA.js +37 -0
  84. package/Build/Workers/chunk-GNDFFW5Z.js +1443 -0
  85. package/Build/Workers/chunk-GNQ5BH75.js +352 -0
  86. package/Build/Workers/chunk-GNQUZV4R.js +171 -0
  87. package/Build/Workers/chunk-GOCJHCLA.js +352 -0
  88. package/Build/Workers/chunk-GTY4K4IA.js +219 -0
  89. package/Build/Workers/chunk-GXBTJBHN.js +102 -0
  90. package/Build/Workers/chunk-H6Q7E4BQ.js +114 -0
  91. package/Build/Workers/chunk-HEGESGGY.js +219 -0
  92. package/Build/Workers/chunk-HG3HIMYL.js +241 -0
  93. package/Build/Workers/chunk-HGEYVFMI.js +1800 -0
  94. package/Build/Workers/chunk-HHGOFZVQ.js +124 -0
  95. package/Build/Workers/chunk-HXEVICMT.js +37 -0
  96. package/Build/Workers/chunk-HXKUEOOD.js +352 -0
  97. package/Build/Workers/chunk-I4REFVXB.js +256 -0
  98. package/Build/Workers/chunk-IL5F6WEE.js +497 -0
  99. package/Build/Workers/chunk-IOODZNYE.js +629 -0
  100. package/Build/Workers/chunk-IVLDVV5R.js +788 -0
  101. package/Build/Workers/chunk-IWP4XCPO.js +778 -0
  102. package/Build/Workers/chunk-JBTUZNI2.js +398 -0
  103. package/Build/Workers/chunk-JMSXZ6AI.js +414 -0
  104. package/Build/Workers/chunk-JTGVXCP2.js +2058 -0
  105. package/Build/Workers/chunk-JUK2ZSWT.js +198 -0
  106. package/Build/Workers/chunk-K6HQ5W6R.js +171 -0
  107. package/Build/Workers/chunk-KC3G7WHZ.js +57 -0
  108. package/Build/Workers/chunk-KGPKBCGY.js +97 -0
  109. package/Build/Workers/chunk-KKGD7HAW.js +414 -0
  110. package/Build/Workers/chunk-KQSN3QZM.js +368 -0
  111. package/Build/Workers/chunk-KROSQJUA.js +44 -0
  112. package/Build/Workers/chunk-L4JLDVCM.js +57 -0
  113. package/Build/Workers/chunk-LAOFDSKL.js +642 -0
  114. package/Build/Workers/chunk-LIYMRHGR.js +387 -0
  115. package/Build/Workers/chunk-LKCCQ3AW.js +198 -0
  116. package/Build/Workers/chunk-LLQFSX7U.js +139 -0
  117. package/Build/Workers/chunk-LSDXP6EX.js +75 -0
  118. package/Build/Workers/chunk-LTYK7VYQ.js +138 -0
  119. package/Build/Workers/chunk-LYMP3LWI.js +387 -0
  120. package/Build/Workers/chunk-M2WCZSU6.js +241 -0
  121. package/Build/Workers/chunk-M35VLUHY.js +352 -0
  122. package/Build/Workers/chunk-MAPGTIYK.js +2058 -0
  123. package/Build/Workers/chunk-MG6SYM3V.js +455 -0
  124. package/Build/Workers/chunk-MKMZHRB3.js +788 -0
  125. package/Build/Workers/chunk-MNR7L6SQ.js +1483 -0
  126. package/Build/Workers/chunk-MO25ZQ2I.js +958 -0
  127. package/Build/Workers/chunk-MOCL5YUJ.js +8366 -0
  128. package/Build/Workers/chunk-MRYY6ETH.js +280 -0
  129. package/Build/Workers/chunk-NAIA5L2S.js +682 -0
  130. package/Build/Workers/chunk-NMDV3OGH.js +958 -0
  131. package/Build/Workers/chunk-NYE77VTA.js +1054 -0
  132. package/Build/Workers/chunk-O6RZEKHZ.js +778 -0
  133. package/Build/Workers/chunk-OFOJ5HD6.js +1460 -0
  134. package/Build/Workers/chunk-OJNNQSZI.js +788 -0
  135. package/Build/Workers/chunk-OJXQBSG4.js +692 -0
  136. package/Build/Workers/chunk-OOCGX2OD.js +102 -0
  137. package/Build/Workers/chunk-OOY3DP7Z.js +788 -0
  138. package/Build/Workers/chunk-OSDDHXLU.js +1483 -0
  139. package/Build/Workers/chunk-OVZNLF46.js +241 -0
  140. package/Build/Workers/chunk-OXFU5HNU.js +162 -0
  141. package/Build/Workers/chunk-P5CGIJUY.js +73 -0
  142. package/Build/Workers/chunk-POLLOX2O.js +352 -0
  143. package/Build/Workers/chunk-POUR54ZW.js +37 -0
  144. package/Build/Workers/chunk-PR6F33M6.js +682 -0
  145. package/Build/Workers/chunk-Q6GCDF2J.js +44 -0
  146. package/Build/Workers/chunk-Q7HIBRGE.js +97 -0
  147. package/Build/Workers/chunk-QCJPQ5CQ.js +57 -0
  148. package/Build/Workers/chunk-QDKQNKG3.js +256 -0
  149. package/Build/Workers/chunk-QDTDTLQY.js +1067 -0
  150. package/Build/Workers/chunk-QEANVUGT.js +163 -0
  151. package/Build/Workers/chunk-QFBCIX7J.js +455 -0
  152. package/Build/Workers/chunk-QIKGPNLN.js +299 -0
  153. package/Build/Workers/chunk-QTKDUHWH.js +497 -0
  154. package/Build/Workers/chunk-QUAH3XOT.js +138 -0
  155. package/Build/Workers/chunk-R4MI537H.js +1443 -0
  156. package/Build/Workers/chunk-R5GL5C3T.js +1483 -0
  157. package/Build/Workers/chunk-RBAGNNPN.js +219 -0
  158. package/Build/Workers/chunk-RH6GMTSG.js +497 -0
  159. package/Build/Workers/chunk-RHJJWKSH.js +73 -0
  160. package/Build/Workers/chunk-RHV6AHJW.js +305 -0
  161. package/Build/Workers/chunk-RUZPDKUX.js +114 -0
  162. package/Build/Workers/chunk-RXZDTDIY.js +439 -0
  163. package/Build/Workers/chunk-SCSEVBY4.js +102 -0
  164. package/Build/Workers/chunk-SKMYTWWS.js +299 -0
  165. package/Build/Workers/chunk-SKVAQOZZ.js +1443 -0
  166. package/Build/Workers/chunk-SPA2KPH3.js +368 -0
  167. package/Build/Workers/chunk-STDNU6SV.js +1460 -0
  168. package/Build/Workers/chunk-SXOBEELD.js +55 -0
  169. package/Build/Workers/chunk-SYDXDJY5.js +2058 -0
  170. package/Build/Workers/chunk-SZ4ALZDU.js +305 -0
  171. package/Build/Workers/chunk-T2AGEECA.js +387 -0
  172. package/Build/Workers/chunk-T5ZG4SFF.js +1067 -0
  173. package/Build/Workers/chunk-TDSVSW5A.js +1460 -0
  174. package/Build/Workers/chunk-TJF36YYN.js +837 -0
  175. package/Build/Workers/chunk-TNZHNGKK.js +439 -0
  176. package/Build/Workers/chunk-TTWIV2BN.js +102 -0
  177. package/Build/Workers/chunk-TX3TQPIA.js +44 -0
  178. package/Build/Workers/chunk-TYPTCQPI.js +1317 -0
  179. package/Build/Workers/chunk-TZA4ZWFC.js +75 -0
  180. package/Build/Workers/chunk-UFDTAQBE.js +476 -0
  181. package/Build/Workers/chunk-UG2DPFOL.js +352 -0
  182. package/Build/Workers/chunk-UG3AH5C3.js +629 -0
  183. package/Build/Workers/chunk-UPPGWBJU.js +511 -0
  184. package/Build/Workers/chunk-URGEDZBS.js +476 -0
  185. package/Build/Workers/chunk-V35NQOJC.js +642 -0
  186. package/Build/Workers/chunk-VDNDTTCD.js +958 -0
  187. package/Build/Workers/chunk-VQIKTYAO.js +368 -0
  188. package/Build/Workers/chunk-VRXHACYU.js +476 -0
  189. package/Build/Workers/chunk-VTYZVS6I.js +455 -0
  190. package/Build/Workers/chunk-VVNCCJGH.js +398 -0
  191. package/Build/Workers/chunk-W4V3BNFU.js +114 -0
  192. package/Build/Workers/chunk-W4XUEDU5.js +2058 -0
  193. package/Build/Workers/chunk-W7UYJE5O.js +2719 -0
  194. package/Build/Workers/chunk-WB4TSSBQ.js +3514 -0
  195. package/Build/Workers/chunk-WGZVYW2C.js +124 -0
  196. package/Build/Workers/chunk-WNFIOIKE.js +414 -0
  197. package/Build/Workers/chunk-WNHOCO2K.js +280 -0
  198. package/Build/Workers/chunk-WQG2W2WD.js +837 -0
  199. package/Build/Workers/chunk-WTLYD4FE.js +1483 -0
  200. package/Build/Workers/chunk-WV2G6UNC.js +940 -0
  201. package/Build/Workers/chunk-WVC3OW5V.js +629 -0
  202. package/Build/Workers/chunk-WWQFFOV6.js +299 -0
  203. package/Build/Workers/chunk-XD7QHRAY.js +288 -0
  204. package/Build/Workers/chunk-XH6GW5M4.js +58 -0
  205. package/Build/Workers/chunk-XIX2VR7Z.js +778 -0
  206. package/Build/Workers/chunk-XJYSONL4.js +1054 -0
  207. package/Build/Workers/chunk-XP6ASNFM.js +1317 -0
  208. package/Build/Workers/chunk-XRDMBCX3.js +439 -0
  209. package/Build/Workers/chunk-XUA6BCV5.js +642 -0
  210. package/Build/Workers/chunk-XVBMYEYQ.js +124 -0
  211. package/Build/Workers/chunk-XWOAVRWZ.js +124 -0
  212. package/Build/Workers/chunk-Y4ALZ4SS.js +198 -0
  213. package/Build/Workers/chunk-Y4GOZA56.js +163 -0
  214. package/Build/Workers/chunk-YF2NVO5B.js +837 -0
  215. package/Build/Workers/chunk-YGVXG7IR.js +114 -0
  216. package/Build/Workers/chunk-YI7RTZGC.js +280 -0
  217. package/Build/Workers/chunk-YM4UTBTX.js +1800 -0
  218. package/Build/Workers/chunk-YP5ZF2MJ.js +162 -0
  219. package/Build/Workers/chunk-YSSL4KKM.js +387 -0
  220. package/Build/Workers/chunk-YSYSXSHF.js +629 -0
  221. package/Build/Workers/chunk-YX562XOB.js +692 -0
  222. package/Build/Workers/chunk-YZWA5B4R.js +511 -0
  223. package/Build/Workers/chunk-Z6DFT4D3.js +288 -0
  224. package/Build/Workers/chunk-Z6PVZUIE.js +398 -0
  225. package/Build/Workers/chunk-ZAI6LCSI.js +511 -0
  226. package/Build/Workers/chunk-ZBIINVUF.js +778 -0
  227. package/Build/Workers/chunk-ZG3TBDRX.js +1317 -0
  228. package/Build/Workers/chunk-ZGXHZJ75.js +439 -0
  229. package/Build/Workers/chunk-ZWDOE2JF.js +162 -0
  230. package/Build/Workers/combineGeometry.js +66 -0
  231. package/Build/Workers/createBoxGeometry.js +58 -0
  232. package/Build/Workers/createBoxOutlineGeometry.js +231 -0
  233. package/Build/Workers/createCircleGeometry.js +201 -0
  234. package/Build/Workers/createCircleOutlineGeometry.js +147 -0
  235. package/Build/Workers/createCoplanarPolygonGeometry.js +505 -0
  236. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +225 -0
  237. package/Build/Workers/createCorridorGeometry.js +1258 -0
  238. package/Build/Workers/createCorridorOutlineGeometry.js +563 -0
  239. package/Build/Workers/createCylinderGeometry.js +60 -0
  240. package/Build/Workers/createCylinderOutlineGeometry.js +231 -0
  241. package/Build/Workers/createEllipseGeometry.js +72 -0
  242. package/Build/Workers/createEllipseOutlineGeometry.js +65 -0
  243. package/Build/Workers/createEllipsoidGeometry.js +59 -0
  244. package/Build/Workers/createEllipsoidOutlineGeometry.js +61 -0
  245. package/Build/Workers/createFrustumGeometry.js +58 -0
  246. package/Build/Workers/createFrustumOutlineGeometry.js +234 -0
  247. package/Build/Workers/createGeometry.js +173 -0
  248. package/Build/Workers/createGroundPolylineGeometry.js +1602 -0
  249. package/Build/Workers/createPlaneGeometry.js +223 -0
  250. package/Build/Workers/createPlaneOutlineGeometry.js +124 -0
  251. package/Build/Workers/createPolygonGeometry.js +1404 -0
  252. package/Build/Workers/createPolygonOutlineGeometry.js +532 -0
  253. package/Build/Workers/createPolylineGeometry.js +491 -0
  254. package/Build/Workers/createPolylineVolumeGeometry.js +374 -0
  255. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +272 -0
  256. package/Build/Workers/createRectangleGeometry.js +1264 -0
  257. package/Build/Workers/createRectangleOutlineGeometry.js +476 -0
  258. package/Build/Workers/createSimplePolylineGeometry.js +397 -0
  259. package/Build/Workers/createSphereGeometry.js +116 -0
  260. package/Build/Workers/createSphereOutlineGeometry.js +116 -0
  261. package/Build/Workers/createTaskProcessorWorker.js +32 -0
  262. package/Build/Workers/createVectorTileClampedPolylines.js +492 -0
  263. package/Build/Workers/createVectorTileGeometries.js +387 -0
  264. package/Build/Workers/createVectorTilePoints.js +114 -0
  265. package/Build/Workers/createVectorTilePolygons.js +386 -0
  266. package/Build/Workers/createVectorTilePolylines.js +262 -0
  267. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +91 -0
  268. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +565 -0
  269. package/Build/Workers/createVerticesFromHeightmap.js +2254 -0
  270. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +499 -0
  271. package/Build/Workers/createWallGeometry.js +487 -0
  272. package/Build/Workers/createWallOutlineGeometry.js +335 -0
  273. package/Build/Workers/decodeDraco.js +369 -0
  274. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +2666 -0
  275. package/Build/Workers/decodeI3S.js +1339 -0
  276. package/Build/Workers/gaussianSplatSorter.js +62 -0
  277. package/Build/Workers/gaussianSplatTextureGenerator.js +68 -0
  278. package/Build/Workers/incrementallyBuildTerrainPicker.js +121 -0
  279. package/Build/Workers/transcodeKTX2.js +3463 -0
  280. package/Build/Workers/transferTypedArrayTest.js +41 -0
  281. package/Build/Workers/upsampleQuantizedTerrainMesh.js +820 -0
  282. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +95 -0
  283. package/LICENSE.md +928 -0
  284. package/README.md +3 -0
  285. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_0.json +1 -0
  286. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_1.json +1 -0
  287. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_10.json +1 -0
  288. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_11.json +1 -0
  289. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_12.json +1 -0
  290. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_13.json +1 -0
  291. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_14.json +1 -0
  292. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_15.json +1 -0
  293. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_16.json +1 -0
  294. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_17.json +1 -0
  295. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_18.json +1 -0
  296. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_19.json +1 -0
  297. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_2.json +1 -0
  298. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_20.json +1 -0
  299. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_21.json +1 -0
  300. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_22.json +1 -0
  301. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_23.json +1 -0
  302. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_24.json +1 -0
  303. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_25.json +1 -0
  304. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_26.json +1 -0
  305. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_27.json +1 -0
  306. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_3.json +1 -0
  307. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_4.json +1 -0
  308. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_5.json +1 -0
  309. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_6.json +1 -0
  310. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_7.json +1 -0
  311. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_8.json +1 -0
  312. package/Source/Assets/IAU2006_XYS/IAU2006_XYS_9.json +1 -0
  313. package/Source/Assets/Images/bing_maps_credit.png +0 -0
  314. package/Source/Assets/Images/cesium_credit.png +0 -0
  315. package/Source/Assets/Images/google_earth_credit.png +0 -0
  316. package/Source/Assets/Images/ion-credit.png +0 -0
  317. package/Source/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
  318. package/Source/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
  319. package/Source/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
  320. package/Source/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
  321. package/Source/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
  322. package/Source/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
  323. package/Source/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
  324. package/Source/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
  325. package/Source/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
  326. package/Source/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
  327. package/Source/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
  328. package/Source/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
  329. package/Source/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
  330. package/Source/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
  331. package/Source/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
  332. package/Source/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
  333. package/Source/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
  334. package/Source/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
  335. package/Source/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
  336. package/Source/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
  337. package/Source/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
  338. package/Source/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
  339. package/Source/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
  340. package/Source/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
  341. package/Source/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
  342. package/Source/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
  343. package/Source/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
  344. package/Source/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
  345. package/Source/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
  346. package/Source/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
  347. package/Source/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
  348. package/Source/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
  349. package/Source/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
  350. package/Source/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
  351. package/Source/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
  352. package/Source/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
  353. package/Source/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
  354. package/Source/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
  355. package/Source/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
  356. package/Source/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
  357. package/Source/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
  358. package/Source/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
  359. package/Source/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
  360. package/Source/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
  361. package/Source/Assets/Textures/NaturalEarthII/tilemapresource.xml +14 -0
  362. package/Source/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
  363. package/Source/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
  364. package/Source/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
  365. package/Source/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
  366. package/Source/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
  367. package/Source/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
  368. package/Source/Assets/Textures/maki/airfield.png +0 -0
  369. package/Source/Assets/Textures/maki/airport.png +0 -0
  370. package/Source/Assets/Textures/maki/alcohol-shop.png +0 -0
  371. package/Source/Assets/Textures/maki/america-football.png +0 -0
  372. package/Source/Assets/Textures/maki/art-gallery.png +0 -0
  373. package/Source/Assets/Textures/maki/bakery.png +0 -0
  374. package/Source/Assets/Textures/maki/bank.png +0 -0
  375. package/Source/Assets/Textures/maki/bar.png +0 -0
  376. package/Source/Assets/Textures/maki/baseball.png +0 -0
  377. package/Source/Assets/Textures/maki/basketball.png +0 -0
  378. package/Source/Assets/Textures/maki/beer.png +0 -0
  379. package/Source/Assets/Textures/maki/bicycle.png +0 -0
  380. package/Source/Assets/Textures/maki/building.png +0 -0
  381. package/Source/Assets/Textures/maki/bus.png +0 -0
  382. package/Source/Assets/Textures/maki/cafe.png +0 -0
  383. package/Source/Assets/Textures/maki/camera.png +0 -0
  384. package/Source/Assets/Textures/maki/campsite.png +0 -0
  385. package/Source/Assets/Textures/maki/car.png +0 -0
  386. package/Source/Assets/Textures/maki/cemetery.png +0 -0
  387. package/Source/Assets/Textures/maki/cesium.png +0 -0
  388. package/Source/Assets/Textures/maki/chemist.png +0 -0
  389. package/Source/Assets/Textures/maki/cinema.png +0 -0
  390. package/Source/Assets/Textures/maki/circle-stroked.png +0 -0
  391. package/Source/Assets/Textures/maki/circle.png +0 -0
  392. package/Source/Assets/Textures/maki/city.png +0 -0
  393. package/Source/Assets/Textures/maki/clothing-store.png +0 -0
  394. package/Source/Assets/Textures/maki/college.png +0 -0
  395. package/Source/Assets/Textures/maki/commercial.png +0 -0
  396. package/Source/Assets/Textures/maki/cricket.png +0 -0
  397. package/Source/Assets/Textures/maki/cross.png +0 -0
  398. package/Source/Assets/Textures/maki/dam.png +0 -0
  399. package/Source/Assets/Textures/maki/danger.png +0 -0
  400. package/Source/Assets/Textures/maki/disability.png +0 -0
  401. package/Source/Assets/Textures/maki/dog-park.png +0 -0
  402. package/Source/Assets/Textures/maki/embassy.png +0 -0
  403. package/Source/Assets/Textures/maki/emergency-telephone.png +0 -0
  404. package/Source/Assets/Textures/maki/entrance.png +0 -0
  405. package/Source/Assets/Textures/maki/farm.png +0 -0
  406. package/Source/Assets/Textures/maki/fast-food.png +0 -0
  407. package/Source/Assets/Textures/maki/ferry.png +0 -0
  408. package/Source/Assets/Textures/maki/fire-station.png +0 -0
  409. package/Source/Assets/Textures/maki/fuel.png +0 -0
  410. package/Source/Assets/Textures/maki/garden.png +0 -0
  411. package/Source/Assets/Textures/maki/gift.png +0 -0
  412. package/Source/Assets/Textures/maki/golf.png +0 -0
  413. package/Source/Assets/Textures/maki/grocery.png +0 -0
  414. package/Source/Assets/Textures/maki/hairdresser.png +0 -0
  415. package/Source/Assets/Textures/maki/harbor.png +0 -0
  416. package/Source/Assets/Textures/maki/heart.png +0 -0
  417. package/Source/Assets/Textures/maki/heliport.png +0 -0
  418. package/Source/Assets/Textures/maki/hospital.png +0 -0
  419. package/Source/Assets/Textures/maki/ice-cream.png +0 -0
  420. package/Source/Assets/Textures/maki/industrial.png +0 -0
  421. package/Source/Assets/Textures/maki/land-use.png +0 -0
  422. package/Source/Assets/Textures/maki/laundry.png +0 -0
  423. package/Source/Assets/Textures/maki/library.png +0 -0
  424. package/Source/Assets/Textures/maki/lighthouse.png +0 -0
  425. package/Source/Assets/Textures/maki/lodging.png +0 -0
  426. package/Source/Assets/Textures/maki/logging.png +0 -0
  427. package/Source/Assets/Textures/maki/london-underground.png +0 -0
  428. package/Source/Assets/Textures/maki/marker-stroked.png +0 -0
  429. package/Source/Assets/Textures/maki/marker.png +0 -0
  430. package/Source/Assets/Textures/maki/minefield.png +0 -0
  431. package/Source/Assets/Textures/maki/mobilephone.png +0 -0
  432. package/Source/Assets/Textures/maki/monument.png +0 -0
  433. package/Source/Assets/Textures/maki/museum.png +0 -0
  434. package/Source/Assets/Textures/maki/music.png +0 -0
  435. package/Source/Assets/Textures/maki/oil-well.png +0 -0
  436. package/Source/Assets/Textures/maki/park.png +0 -0
  437. package/Source/Assets/Textures/maki/park2.png +0 -0
  438. package/Source/Assets/Textures/maki/parking-garage.png +0 -0
  439. package/Source/Assets/Textures/maki/parking.png +0 -0
  440. package/Source/Assets/Textures/maki/pharmacy.png +0 -0
  441. package/Source/Assets/Textures/maki/pitch.png +0 -0
  442. package/Source/Assets/Textures/maki/place-of-worship.png +0 -0
  443. package/Source/Assets/Textures/maki/playground.png +0 -0
  444. package/Source/Assets/Textures/maki/police.png +0 -0
  445. package/Source/Assets/Textures/maki/polling-place.png +0 -0
  446. package/Source/Assets/Textures/maki/post.png +0 -0
  447. package/Source/Assets/Textures/maki/prison.png +0 -0
  448. package/Source/Assets/Textures/maki/rail-above.png +0 -0
  449. package/Source/Assets/Textures/maki/rail-light.png +0 -0
  450. package/Source/Assets/Textures/maki/rail-metro.png +0 -0
  451. package/Source/Assets/Textures/maki/rail-underground.png +0 -0
  452. package/Source/Assets/Textures/maki/rail.png +0 -0
  453. package/Source/Assets/Textures/maki/religious-christian.png +0 -0
  454. package/Source/Assets/Textures/maki/religious-jewish.png +0 -0
  455. package/Source/Assets/Textures/maki/religious-muslim.png +0 -0
  456. package/Source/Assets/Textures/maki/restaurant.png +0 -0
  457. package/Source/Assets/Textures/maki/roadblock.png +0 -0
  458. package/Source/Assets/Textures/maki/rocket.png +0 -0
  459. package/Source/Assets/Textures/maki/school.png +0 -0
  460. package/Source/Assets/Textures/maki/scooter.png +0 -0
  461. package/Source/Assets/Textures/maki/shop.png +0 -0
  462. package/Source/Assets/Textures/maki/skiing.png +0 -0
  463. package/Source/Assets/Textures/maki/slaughterhouse.png +0 -0
  464. package/Source/Assets/Textures/maki/soccer.png +0 -0
  465. package/Source/Assets/Textures/maki/square-stroked.png +0 -0
  466. package/Source/Assets/Textures/maki/square.png +0 -0
  467. package/Source/Assets/Textures/maki/star-stroked.png +0 -0
  468. package/Source/Assets/Textures/maki/star.png +0 -0
  469. package/Source/Assets/Textures/maki/suitcase.png +0 -0
  470. package/Source/Assets/Textures/maki/swimming.png +0 -0
  471. package/Source/Assets/Textures/maki/telephone.png +0 -0
  472. package/Source/Assets/Textures/maki/tennis.png +0 -0
  473. package/Source/Assets/Textures/maki/theatre.png +0 -0
  474. package/Source/Assets/Textures/maki/toilets.png +0 -0
  475. package/Source/Assets/Textures/maki/town-hall.png +0 -0
  476. package/Source/Assets/Textures/maki/town.png +0 -0
  477. package/Source/Assets/Textures/maki/triangle-stroked.png +0 -0
  478. package/Source/Assets/Textures/maki/triangle.png +0 -0
  479. package/Source/Assets/Textures/maki/village.png +0 -0
  480. package/Source/Assets/Textures/maki/warehouse.png +0 -0
  481. package/Source/Assets/Textures/maki/waste-basket.png +0 -0
  482. package/Source/Assets/Textures/maki/water.png +0 -0
  483. package/Source/Assets/Textures/maki/wetland.png +0 -0
  484. package/Source/Assets/Textures/maki/zoo.png +0 -0
  485. package/Source/Assets/Textures/moonSmall.jpg +0 -0
  486. package/Source/Assets/Textures/pin.svg +1 -0
  487. package/Source/Assets/Textures/waterNormals.jpg +0 -0
  488. package/Source/Assets/Textures/waterNormalsSmall.jpg +0 -0
  489. package/Source/Assets/approximateTerrainHeights.json +1 -0
  490. package/Source/Core/ApproximateTerrainHeights.js +255 -0
  491. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +755 -0
  492. package/Source/Core/ArcType.js +31 -0
  493. package/Source/Core/ArticulationStageType.js +23 -0
  494. package/Source/Core/AssociativeArray.js +127 -0
  495. package/Source/Core/AttributeCompression.js +527 -0
  496. package/Source/Core/AxisAlignedBoundingBox.js +294 -0
  497. package/Source/Core/BingMapsGeocoderService.js +127 -0
  498. package/Source/Core/BoundingRectangle.js +374 -0
  499. package/Source/Core/BoundingSphere.js +1506 -0
  500. package/Source/Core/BoxGeometry.js +893 -0
  501. package/Source/Core/BoxOutlineGeometry.js +312 -0
  502. package/Source/Core/Cartesian2.js +823 -0
  503. package/Source/Core/Cartesian3.js +1220 -0
  504. package/Source/Core/Cartesian4.js +979 -0
  505. package/Source/Core/Cartographic.js +304 -0
  506. package/Source/Core/CartographicGeocoderService.js +73 -0
  507. package/Source/Core/CatmullRomSpline.js +324 -0
  508. package/Source/Core/Cesium3DTilesTerrainData.js +932 -0
  509. package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +1868 -0
  510. package/Source/Core/Cesium3DTilesTerrainProvider.js +1052 -0
  511. package/Source/Core/CesiumTerrainProvider.js +1408 -0
  512. package/Source/Core/Check.d.ts +131 -0
  513. package/Source/Core/Check.js +212 -0
  514. package/Source/Core/CircleGeometry.js +207 -0
  515. package/Source/Core/CircleOutlineGeometry.js +149 -0
  516. package/Source/Core/Clock.js +316 -0
  517. package/Source/Core/ClockRange.js +39 -0
  518. package/Source/Core/ClockStep.js +38 -0
  519. package/Source/Core/Color.js +2283 -0
  520. package/Source/Core/ColorGeometryInstanceAttribute.js +181 -0
  521. package/Source/Core/ComponentDatatype.js +338 -0
  522. package/Source/Core/CompressedTextureBuffer.js +125 -0
  523. package/Source/Core/ConstantSpline.js +119 -0
  524. package/Source/Core/CoplanarPolygonGeometry.js +600 -0
  525. package/Source/Core/CoplanarPolygonGeometryLibrary.js +132 -0
  526. package/Source/Core/CoplanarPolygonOutlineGeometry.js +237 -0
  527. package/Source/Core/CornerType.js +37 -0
  528. package/Source/Core/CorridorGeometry.js +1411 -0
  529. package/Source/Core/CorridorGeometryLibrary.js +501 -0
  530. package/Source/Core/CorridorOutlineGeometry.js +599 -0
  531. package/Source/Core/Credit.js +172 -0
  532. package/Source/Core/CubicRealPolynomial.js +238 -0
  533. package/Source/Core/CullingVolume.js +216 -0
  534. package/Source/Core/CustomHeightmapTerrainProvider.js +287 -0
  535. package/Source/Core/CylinderGeometry.js +479 -0
  536. package/Source/Core/CylinderGeometryLibrary.js +59 -0
  537. package/Source/Core/CylinderOutlineGeometry.js +269 -0
  538. package/Source/Core/DefaultProxy.js +26 -0
  539. package/Source/Core/DeveloperError.js +75 -0
  540. package/Source/Core/DistanceDisplayCondition.js +171 -0
  541. package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +179 -0
  542. package/Source/Core/DoubleEndedPriorityQueue.js +405 -0
  543. package/Source/Core/DoublyLinkedList.js +112 -0
  544. package/Source/Core/EarthOrientationParameters.js +431 -0
  545. package/Source/Core/EarthOrientationParametersSample.js +52 -0
  546. package/Source/Core/EasingFunction.js +257 -0
  547. package/Source/Core/EllipseGeometry.js +1318 -0
  548. package/Source/Core/EllipseGeometryLibrary.js +365 -0
  549. package/Source/Core/EllipseOutlineGeometry.js +451 -0
  550. package/Source/Core/Ellipsoid.js +889 -0
  551. package/Source/Core/EllipsoidGeodesic.js +523 -0
  552. package/Source/Core/EllipsoidGeometry.js +650 -0
  553. package/Source/Core/EllipsoidOutlineGeometry.js +464 -0
  554. package/Source/Core/EllipsoidRhumbLine.js +751 -0
  555. package/Source/Core/EllipsoidTangentPlane.js +382 -0
  556. package/Source/Core/EllipsoidTerrainProvider.js +201 -0
  557. package/Source/Core/EllipsoidalOccluder.js +538 -0
  558. package/Source/Core/EncodedCartesian3.js +170 -0
  559. package/Source/Core/Event.js +205 -0
  560. package/Source/Core/EventHelper.js +74 -0
  561. package/Source/Core/ExtrapolationType.js +34 -0
  562. package/Source/Core/FeatureDetection.js +435 -0
  563. package/Source/Core/Frozen.js +24 -0
  564. package/Source/Core/FrustumGeometry.js +583 -0
  565. package/Source/Core/FrustumOutlineGeometry.js +253 -0
  566. package/Source/Core/Fullscreen.js +249 -0
  567. package/Source/Core/GeocodeType.js +24 -0
  568. package/Source/Core/GeocoderService.js +60 -0
  569. package/Source/Core/GeographicProjection.js +105 -0
  570. package/Source/Core/GeographicTilingScheme.js +245 -0
  571. package/Source/Core/Geometry.js +371 -0
  572. package/Source/Core/GeometryAttribute.js +133 -0
  573. package/Source/Core/GeometryAttributes.js +88 -0
  574. package/Source/Core/GeometryFactory.js +25 -0
  575. package/Source/Core/GeometryInstance.js +118 -0
  576. package/Source/Core/GeometryInstanceAttribute.js +133 -0
  577. package/Source/Core/GeometryOffsetAttribute.js +10 -0
  578. package/Source/Core/GeometryPipeline.js +3291 -0
  579. package/Source/Core/GeometryType.js +10 -0
  580. package/Source/Core/GoogleEarthEnterpriseMetadata.js +584 -0
  581. package/Source/Core/GoogleEarthEnterpriseTerrainData.js +606 -0
  582. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +574 -0
  583. package/Source/Core/GoogleEarthEnterpriseTileInformation.js +136 -0
  584. package/Source/Core/GoogleGeocoderService.js +110 -0
  585. package/Source/Core/GoogleMaps.js +40 -0
  586. package/Source/Core/GregorianDate.js +153 -0
  587. package/Source/Core/GroundPolylineGeometry.js +1659 -0
  588. package/Source/Core/HeadingPitchRange.js +59 -0
  589. package/Source/Core/HeadingPitchRoll.js +235 -0
  590. package/Source/Core/Heap.js +233 -0
  591. package/Source/Core/HeightmapEncoding.js +25 -0
  592. package/Source/Core/HeightmapTerrainData.js +903 -0
  593. package/Source/Core/HeightmapTessellator.js +518 -0
  594. package/Source/Core/HermitePolynomialApproximation.js +341 -0
  595. package/Source/Core/HermiteSpline.js +620 -0
  596. package/Source/Core/HilbertOrder.js +112 -0
  597. package/Source/Core/ITwinPlatform.js +388 -0
  598. package/Source/Core/Iau2000Orientation.js +167 -0
  599. package/Source/Core/Iau2006XysData.js +275 -0
  600. package/Source/Core/Iau2006XysSample.js +32 -0
  601. package/Source/Core/IauOrientationAxes.js +105 -0
  602. package/Source/Core/IauOrientationParameters.js +54 -0
  603. package/Source/Core/IndexDatatype.js +199 -0
  604. package/Source/Core/InterpolationAlgorithm.js +65 -0
  605. package/Source/Core/InterpolationType.js +14 -0
  606. package/Source/Core/Intersect.js +34 -0
  607. package/Source/Core/IntersectionTests.js +1087 -0
  608. package/Source/Core/Intersections2D.js +358 -0
  609. package/Source/Core/Interval.js +23 -0
  610. package/Source/Core/Ion.js +56 -0
  611. package/Source/Core/IonGeocodeProviderType.js +33 -0
  612. package/Source/Core/IonGeocoderService.js +147 -0
  613. package/Source/Core/IonResource.js +321 -0
  614. package/Source/Core/Iso8601.js +54 -0
  615. package/Source/Core/JulianDate.js +1229 -0
  616. package/Source/Core/KTX2Transcoder.js +92 -0
  617. package/Source/Core/KeyboardEventModifier.js +32 -0
  618. package/Source/Core/LagrangePolynomialApproximation.js +71 -0
  619. package/Source/Core/LeapSecond.js +24 -0
  620. package/Source/Core/LinearApproximation.js +83 -0
  621. package/Source/Core/LinearSpline.js +166 -0
  622. package/Source/Core/ManagedArray.js +162 -0
  623. package/Source/Core/MapProjection.js +62 -0
  624. package/Source/Core/Math.js +1125 -0
  625. package/Source/Core/Matrix2.js +1092 -0
  626. package/Source/Core/Matrix3.js +1838 -0
  627. package/Source/Core/Matrix4.js +3233 -0
  628. package/Source/Core/MorphWeightSpline.js +161 -0
  629. package/Source/Core/MortonOrder.js +214 -0
  630. package/Source/Core/NearFarScalar.js +173 -0
  631. package/Source/Core/Occluder.js +727 -0
  632. package/Source/Core/OffsetGeometryInstanceAttribute.js +125 -0
  633. package/Source/Core/OpenCageGeocoderService.js +134 -0
  634. package/Source/Core/OrientedBoundingBox.js +1272 -0
  635. package/Source/Core/OrthographicFrustum.js +351 -0
  636. package/Source/Core/OrthographicOffCenterFrustum.js +463 -0
  637. package/Source/Core/Packable.js +40 -0
  638. package/Source/Core/PackableForInterpolation.js +43 -0
  639. package/Source/Core/PeliasGeocoderService.js +106 -0
  640. package/Source/Core/PerspectiveFrustum.js +459 -0
  641. package/Source/Core/PerspectiveOffCenterFrustum.js +522 -0
  642. package/Source/Core/PinBuilder.js +234 -0
  643. package/Source/Core/PixelFormat.js +603 -0
  644. package/Source/Core/Plane.js +312 -0
  645. package/Source/Core/PlaneGeometry.js +250 -0
  646. package/Source/Core/PlaneOutlineGeometry.js +113 -0
  647. package/Source/Core/PolygonGeometry.js +1580 -0
  648. package/Source/Core/PolygonGeometryLibrary.js +1301 -0
  649. package/Source/Core/PolygonHierarchy.js +25 -0
  650. package/Source/Core/PolygonOutlineGeometry.js +687 -0
  651. package/Source/Core/PolygonPipeline.js +632 -0
  652. package/Source/Core/PolylineGeometry.js +573 -0
  653. package/Source/Core/PolylinePipeline.js +573 -0
  654. package/Source/Core/PolylineVolumeGeometry.js +412 -0
  655. package/Source/Core/PolylineVolumeGeometryLibrary.js +701 -0
  656. package/Source/Core/PolylineVolumeOutlineGeometry.js +294 -0
  657. package/Source/Core/PrimitiveType.js +107 -0
  658. package/Source/Core/Proxy.js +24 -0
  659. package/Source/Core/QuadraticRealPolynomial.js +147 -0
  660. package/Source/Core/QuantizedMeshTerrainData.js +735 -0
  661. package/Source/Core/QuarticRealPolynomial.js +342 -0
  662. package/Source/Core/Quaternion.js +1145 -0
  663. package/Source/Core/QuaternionSpline.js +155 -0
  664. package/Source/Core/Queue.js +126 -0
  665. package/Source/Core/Ray.js +79 -0
  666. package/Source/Core/Rectangle.js +1071 -0
  667. package/Source/Core/RectangleCollisionChecker.js +95 -0
  668. package/Source/Core/RectangleGeometry.js +1480 -0
  669. package/Source/Core/RectangleGeometryLibrary.js +286 -0
  670. package/Source/Core/RectangleOutlineGeometry.js +532 -0
  671. package/Source/Core/ReferenceFrame.js +23 -0
  672. package/Source/Core/Request.js +193 -0
  673. package/Source/Core/RequestErrorEvent.js +58 -0
  674. package/Source/Core/RequestScheduler.js +519 -0
  675. package/Source/Core/RequestState.js +55 -0
  676. package/Source/Core/RequestType.js +39 -0
  677. package/Source/Core/Resource.js +2280 -0
  678. package/Source/Core/RuntimeError.js +65 -0
  679. package/Source/Core/S2Cell.js +734 -0
  680. package/Source/Core/ScreenSpaceEventHandler.js +1140 -0
  681. package/Source/Core/ScreenSpaceEventType.js +127 -0
  682. package/Source/Core/ShowGeometryInstanceAttribute.js +122 -0
  683. package/Source/Core/Simon1994PlanetaryPositions.js +684 -0
  684. package/Source/Core/SimplePolylineGeometry.js +454 -0
  685. package/Source/Core/SphereGeometry.js +117 -0
  686. package/Source/Core/SphereOutlineGeometry.js +119 -0
  687. package/Source/Core/Spherical.js +183 -0
  688. package/Source/Core/Spline.js +188 -0
  689. package/Source/Core/SteppedSpline.js +160 -0
  690. package/Source/Core/Stereographic.js +247 -0
  691. package/Source/Core/TaskProcessor.js +403 -0
  692. package/Source/Core/TerrainData.js +126 -0
  693. package/Source/Core/TerrainEncoding.js +772 -0
  694. package/Source/Core/TerrainMesh.js +361 -0
  695. package/Source/Core/TerrainPicker.js +607 -0
  696. package/Source/Core/TerrainProvider.js +585 -0
  697. package/Source/Core/TerrainQuantization.js +25 -0
  698. package/Source/Core/TexturePacker.js +181 -0
  699. package/Source/Core/TileAvailability.js +564 -0
  700. package/Source/Core/TileEdge.js +14 -0
  701. package/Source/Core/TileProviderError.js +170 -0
  702. package/Source/Core/TilingScheme.js +132 -0
  703. package/Source/Core/TimeConstants.js +83 -0
  704. package/Source/Core/TimeInterval.js +438 -0
  705. package/Source/Core/TimeIntervalCollection.js +1137 -0
  706. package/Source/Core/TimeStandard.js +30 -0
  707. package/Source/Core/Tipsify.js +314 -0
  708. package/Source/Core/TrackingReferenceFrame.js +45 -0
  709. package/Source/Core/Transforms.js +1277 -0
  710. package/Source/Core/TranslationRotationScale.js +57 -0
  711. package/Source/Core/TridiagonalSystemSolver.js +113 -0
  712. package/Source/Core/TrustedServers.js +146 -0
  713. package/Source/Core/VRTheWorldTerrainProvider.js +462 -0
  714. package/Source/Core/VertexFormat.js +311 -0
  715. package/Source/Core/VerticalExaggeration.js +70 -0
  716. package/Source/Core/VideoSynchronizer.js +222 -0
  717. package/Source/Core/Visibility.js +34 -0
  718. package/Source/Core/VulkanConstants.js +286 -0
  719. package/Source/Core/WallGeometry.js +623 -0
  720. package/Source/Core/WallGeometryLibrary.js +212 -0
  721. package/Source/Core/WallOutlineGeometry.js +431 -0
  722. package/Source/Core/WebGLConstants.js +614 -0
  723. package/Source/Core/WebMercatorProjection.js +152 -0
  724. package/Source/Core/WebMercatorTilingScheme.js +291 -0
  725. package/Source/Core/WindingOrder.js +36 -0
  726. package/Source/Core/WireframeIndexGenerator.js +238 -0
  727. package/Source/Core/addAllToArray.js +40 -0
  728. package/Source/Core/appendForwardSlash.js +10 -0
  729. package/Source/Core/arrayRemoveDuplicates.js +129 -0
  730. package/Source/Core/barycentricCoordinates.js +109 -0
  731. package/Source/Core/binarySearch.js +67 -0
  732. package/Source/Core/buildModuleUrl.js +153 -0
  733. package/Source/Core/clone.js +30 -0
  734. package/Source/Core/combine.js +79 -0
  735. package/Source/Core/createGuid.js +22 -0
  736. package/Source/Core/createWorldBathymetryAsync.js +45 -0
  737. package/Source/Core/createWorldTerrainAsync.js +50 -0
  738. package/Source/Core/decodeGoogleEarthEnterpriseData.js +93 -0
  739. package/Source/Core/decodeVectorPolylinePositions.js +51 -0
  740. package/Source/Core/defaultValue.js +29 -0
  741. package/Source/Core/defer.js +44 -0
  742. package/Source/Core/defined.d.ts +11 -0
  743. package/Source/Core/defined.js +17 -0
  744. package/Source/Core/deprecationWarning.js +53 -0
  745. package/Source/Core/destroyObject.js +53 -0
  746. package/Source/Core/formatError.js +30 -0
  747. package/Source/Core/getAbsoluteUri.js +46 -0
  748. package/Source/Core/getBaseUri.js +47 -0
  749. package/Source/Core/getExtensionFromUri.js +38 -0
  750. package/Source/Core/getFilenameFromUri.js +32 -0
  751. package/Source/Core/getImageFromTypedArray.js +24 -0
  752. package/Source/Core/getImagePixels.js +44 -0
  753. package/Source/Core/getJsonFromTypedArray.js +21 -0
  754. package/Source/Core/getMagic.js +14 -0
  755. package/Source/Core/getStringFromTypedArray.js +165 -0
  756. package/Source/Core/getTimestamp.js +26 -0
  757. package/Source/Core/isBitSet.js +7 -0
  758. package/Source/Core/isBlobUri.js +22 -0
  759. package/Source/Core/isCrossOriginUrl.js +30 -0
  760. package/Source/Core/isDataUri.js +22 -0
  761. package/Source/Core/isLeapYear.js +23 -0
  762. package/Source/Core/loadAndExecuteScript.js +27 -0
  763. package/Source/Core/loadImageFromTypedArray.js +66 -0
  764. package/Source/Core/loadKTX2.js +104 -0
  765. package/Source/Core/mergeSort.js +111 -0
  766. package/Source/Core/objectToQuery.js +57 -0
  767. package/Source/Core/oneTimeWarning.js +51 -0
  768. package/Source/Core/parseResponseHeaders.js +37 -0
  769. package/Source/Core/pointInsideTriangle.js +39 -0
  770. package/Source/Core/queryToObject.js +60 -0
  771. package/Source/Core/resizeImageToNextPowerOfTwo.js +31 -0
  772. package/Source/Core/sampleTerrain.js +291 -0
  773. package/Source/Core/sampleTerrainMostDetailed.js +132 -0
  774. package/Source/Core/scaleToGeodeticSurface.js +147 -0
  775. package/Source/Core/srgbToLinear.js +32 -0
  776. package/Source/Core/subdivideArray.js +35 -0
  777. package/Source/Core/webGLConstantToGlslType.js +25 -0
  778. package/Source/Core/wrapFunction.js +26 -0
  779. package/Source/Core/writeTextToCanvas.js +219 -0
  780. package/Source/DataSources/BillboardGraphics.js +419 -0
  781. package/Source/DataSources/BillboardVisualizer.js +351 -0
  782. package/Source/DataSources/BoundingSphereState.js +26 -0
  783. package/Source/DataSources/BoxGeometryUpdater.js +326 -0
  784. package/Source/DataSources/BoxGraphics.js +208 -0
  785. package/Source/DataSources/CallbackPositionProperty.js +172 -0
  786. package/Source/DataSources/CallbackProperty.js +117 -0
  787. package/Source/DataSources/Cesium3DTilesetGraphics.js +111 -0
  788. package/Source/DataSources/Cesium3DTilesetVisualizer.js +261 -0
  789. package/Source/DataSources/CheckerboardMaterialProperty.js +157 -0
  790. package/Source/DataSources/ColorMaterialProperty.js +112 -0
  791. package/Source/DataSources/CompositeEntityCollection.js +591 -0
  792. package/Source/DataSources/CompositeMaterialProperty.js +128 -0
  793. package/Source/DataSources/CompositePositionProperty.js +153 -0
  794. package/Source/DataSources/CompositeProperty.js +154 -0
  795. package/Source/DataSources/ConstantPositionProperty.js +151 -0
  796. package/Source/DataSources/ConstantProperty.js +116 -0
  797. package/Source/DataSources/CorridorGeometryUpdater.js +409 -0
  798. package/Source/DataSources/CorridorGraphics.js +316 -0
  799. package/Source/DataSources/CustomDataSource.js +173 -0
  800. package/Source/DataSources/CylinderGeometryUpdater.js +375 -0
  801. package/Source/DataSources/CylinderGraphics.js +258 -0
  802. package/Source/DataSources/CzmlDataSource.js +5142 -0
  803. package/Source/DataSources/DataSource.js +121 -0
  804. package/Source/DataSources/DataSourceClock.js +164 -0
  805. package/Source/DataSources/DataSourceCollection.js +335 -0
  806. package/Source/DataSources/DataSourceDisplay.js +543 -0
  807. package/Source/DataSources/DynamicGeometryBatch.js +56 -0
  808. package/Source/DataSources/DynamicGeometryUpdater.js +270 -0
  809. package/Source/DataSources/EllipseGeometryUpdater.js +434 -0
  810. package/Source/DataSources/EllipseGraphics.js +343 -0
  811. package/Source/DataSources/EllipsoidGeometryUpdater.js +710 -0
  812. package/Source/DataSources/EllipsoidGraphics.js +312 -0
  813. package/Source/DataSources/Entity.js +789 -0
  814. package/Source/DataSources/EntityCluster.js +1022 -0
  815. package/Source/DataSources/EntityCollection.js +439 -0
  816. package/Source/DataSources/EntityView.js +476 -0
  817. package/Source/DataSources/GeoJsonDataSource.js +1064 -0
  818. package/Source/DataSources/GeometryUpdater.js +538 -0
  819. package/Source/DataSources/GeometryUpdaterSet.js +114 -0
  820. package/Source/DataSources/GeometryVisualizer.js +549 -0
  821. package/Source/DataSources/GpxDataSource.js +1018 -0
  822. package/Source/DataSources/GridMaterialProperty.js +204 -0
  823. package/Source/DataSources/GroundGeometryUpdater.js +234 -0
  824. package/Source/DataSources/ImageMaterialProperty.js +173 -0
  825. package/Source/DataSources/KmlCamera.js +13 -0
  826. package/Source/DataSources/KmlDataSource.js +4249 -0
  827. package/Source/DataSources/KmlLookAt.js +12 -0
  828. package/Source/DataSources/KmlTour.js +165 -0
  829. package/Source/DataSources/KmlTourFlyTo.js +109 -0
  830. package/Source/DataSources/KmlTourWait.js +52 -0
  831. package/Source/DataSources/LabelGraphics.js +401 -0
  832. package/Source/DataSources/LabelVisualizer.js +359 -0
  833. package/Source/DataSources/MaterialProperty.js +111 -0
  834. package/Source/DataSources/ModelGraphics.js +456 -0
  835. package/Source/DataSources/ModelVisualizer.js +560 -0
  836. package/Source/DataSources/NodeTransformationProperty.js +150 -0
  837. package/Source/DataSources/PathGraphics.js +161 -0
  838. package/Source/DataSources/PathVisualizer.js +823 -0
  839. package/Source/DataSources/PlaneGeometryUpdater.js +385 -0
  840. package/Source/DataSources/PlaneGraphics.js +208 -0
  841. package/Source/DataSources/PointGraphics.js +223 -0
  842. package/Source/DataSources/PointVisualizer.js +438 -0
  843. package/Source/DataSources/PolygonGeometryUpdater.js +591 -0
  844. package/Source/DataSources/PolygonGraphics.js +383 -0
  845. package/Source/DataSources/PolylineArrowMaterialProperty.js +110 -0
  846. package/Source/DataSources/PolylineDashMaterialProperty.js +174 -0
  847. package/Source/DataSources/PolylineGeometryUpdater.js +878 -0
  848. package/Source/DataSources/PolylineGlowMaterialProperty.js +152 -0
  849. package/Source/DataSources/PolylineGraphics.js +241 -0
  850. package/Source/DataSources/PolylineOutlineMaterialProperty.js +158 -0
  851. package/Source/DataSources/PolylineVisualizer.js +409 -0
  852. package/Source/DataSources/PolylineVolumeGeometryUpdater.js +306 -0
  853. package/Source/DataSources/PolylineVolumeGraphics.js +235 -0
  854. package/Source/DataSources/PositionProperty.js +131 -0
  855. package/Source/DataSources/PositionPropertyArray.js +192 -0
  856. package/Source/DataSources/Property.js +137 -0
  857. package/Source/DataSources/PropertyArray.js +147 -0
  858. package/Source/DataSources/PropertyBag.js +275 -0
  859. package/Source/DataSources/RectangleGeometryUpdater.js +427 -0
  860. package/Source/DataSources/RectangleGraphics.js +317 -0
  861. package/Source/DataSources/ReferenceProperty.js +371 -0
  862. package/Source/DataSources/Rotation.js +155 -0
  863. package/Source/DataSources/SampledPositionProperty.js +330 -0
  864. package/Source/DataSources/SampledProperty.js +855 -0
  865. package/Source/DataSources/ScaledPositionProperty.js +103 -0
  866. package/Source/DataSources/StaticGeometryColorBatch.js +570 -0
  867. package/Source/DataSources/StaticGeometryPerMaterialBatch.js +488 -0
  868. package/Source/DataSources/StaticGroundGeometryColorBatch.js +394 -0
  869. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +456 -0
  870. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +434 -0
  871. package/Source/DataSources/StaticOutlineGeometryBatch.js +465 -0
  872. package/Source/DataSources/StripeMaterialProperty.js +193 -0
  873. package/Source/DataSources/StripeOrientation.js +19 -0
  874. package/Source/DataSources/TerrainOffsetProperty.js +243 -0
  875. package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +155 -0
  876. package/Source/DataSources/TimeIntervalCollectionProperty.js +136 -0
  877. package/Source/DataSources/VelocityOrientationProperty.js +158 -0
  878. package/Source/DataSources/VelocityVectorProperty.js +213 -0
  879. package/Source/DataSources/Visualizer.js +61 -0
  880. package/Source/DataSources/WallGeometryUpdater.js +275 -0
  881. package/Source/DataSources/WallGraphics.js +236 -0
  882. package/Source/DataSources/createMaterialPropertyDescriptor.js +35 -0
  883. package/Source/DataSources/createPropertyDescriptor.js +71 -0
  884. package/Source/DataSources/createRawPropertyDescriptor.js +13 -0
  885. package/Source/DataSources/exportKml.js +1517 -0
  886. package/Source/DataSources/getElement.js +26 -0
  887. package/Source/DataSources/heightReferenceOnEntityPropertyChanged.js +47 -0
  888. package/Source/Renderer/AutomaticUniforms.js +1857 -0
  889. package/Source/Renderer/Buffer.js +452 -0
  890. package/Source/Renderer/BufferUsage.js +21 -0
  891. package/Source/Renderer/ClearCommand.js +102 -0
  892. package/Source/Renderer/ComputeCommand.js +119 -0
  893. package/Source/Renderer/ComputeEngine.js +135 -0
  894. package/Source/Renderer/Context.js +1752 -0
  895. package/Source/Renderer/ContextLimits.js +299 -0
  896. package/Source/Renderer/CubeMap.js +686 -0
  897. package/Source/Renderer/CubeMapFace.js +415 -0
  898. package/Source/Renderer/DrawCommand.js +644 -0
  899. package/Source/Renderer/Framebuffer.js +447 -0
  900. package/Source/Renderer/FramebufferManager.js +489 -0
  901. package/Source/Renderer/MipmapHint.js +19 -0
  902. package/Source/Renderer/MultisampleFramebuffer.js +136 -0
  903. package/Source/Renderer/Pass.js +29 -0
  904. package/Source/Renderer/PassState.js +57 -0
  905. package/Source/Renderer/PixelDatatype.js +121 -0
  906. package/Source/Renderer/RenderState.js +967 -0
  907. package/Source/Renderer/Renderbuffer.js +105 -0
  908. package/Source/Renderer/RenderbufferFormat.js +42 -0
  909. package/Source/Renderer/Sampler.js +116 -0
  910. package/Source/Renderer/ShaderBuilder.js +597 -0
  911. package/Source/Renderer/ShaderCache.js +287 -0
  912. package/Source/Renderer/ShaderDestination.js +51 -0
  913. package/Source/Renderer/ShaderFunction.js +66 -0
  914. package/Source/Renderer/ShaderProgram.js +619 -0
  915. package/Source/Renderer/ShaderSource.js +524 -0
  916. package/Source/Renderer/ShaderStruct.js +55 -0
  917. package/Source/Renderer/SharedContext.js +186 -0
  918. package/Source/Renderer/Sync.js +104 -0
  919. package/Source/Renderer/Texture.js +1126 -0
  920. package/Source/Renderer/Texture3D.js +578 -0
  921. package/Source/Renderer/TextureAtlas.js +833 -0
  922. package/Source/Renderer/TextureCache.js +81 -0
  923. package/Source/Renderer/TextureMagnificationFilter.js +41 -0
  924. package/Source/Renderer/TextureMinificationFilter.js +94 -0
  925. package/Source/Renderer/TextureWrap.js +19 -0
  926. package/Source/Renderer/UniformState.js +1948 -0
  927. package/Source/Renderer/VertexArray.js +869 -0
  928. package/Source/Renderer/VertexArrayFacade.js +509 -0
  929. package/Source/Renderer/createUniform.js +422 -0
  930. package/Source/Renderer/createUniformArray.js +638 -0
  931. package/Source/Renderer/demodernizeShader.js +84 -0
  932. package/Source/Renderer/freezeRenderState.js +30 -0
  933. package/Source/Renderer/loadCubeMap.js +88 -0
  934. package/Source/Scene/AlphaMode.js +33 -0
  935. package/Source/Scene/Appearance.js +204 -0
  936. package/Source/Scene/ArcGisBaseMapType.js +12 -0
  937. package/Source/Scene/ArcGisMapServerImageryProvider.js +875 -0
  938. package/Source/Scene/ArcGisMapService.js +80 -0
  939. package/Source/Scene/Atmosphere.js +149 -0
  940. package/Source/Scene/AttributeType.js +200 -0
  941. package/Source/Scene/AutoExposure.js +386 -0
  942. package/Source/Scene/Axis.js +116 -0
  943. package/Source/Scene/Azure2DImageryProvider.js +393 -0
  944. package/Source/Scene/B3dmParser.js +173 -0
  945. package/Source/Scene/BatchTable.js +636 -0
  946. package/Source/Scene/BatchTableHierarchy.js +504 -0
  947. package/Source/Scene/BatchTexture.js +574 -0
  948. package/Source/Scene/Billboard.js +1601 -0
  949. package/Source/Scene/BillboardCollection.js +2396 -0
  950. package/Source/Scene/BillboardLoadState.js +44 -0
  951. package/Source/Scene/BillboardTexture.js +397 -0
  952. package/Source/Scene/BingMapsImageryProvider.js +769 -0
  953. package/Source/Scene/BingMapsStyle.js +93 -0
  954. package/Source/Scene/BlendEquation.js +53 -0
  955. package/Source/Scene/BlendFunction.js +129 -0
  956. package/Source/Scene/BlendOption.js +28 -0
  957. package/Source/Scene/BlendingState.js +73 -0
  958. package/Source/Scene/BoundingVolumeSemantics.js +169 -0
  959. package/Source/Scene/BoxEmitter.js +74 -0
  960. package/Source/Scene/BrdfLutGenerator.js +75 -0
  961. package/Source/Scene/BufferLoader.js +141 -0
  962. package/Source/Scene/Camera.js +3978 -0
  963. package/Source/Scene/CameraEventAggregator.js +619 -0
  964. package/Source/Scene/CameraEventType.js +47 -0
  965. package/Source/Scene/CameraFlightPath.js +576 -0
  966. package/Source/Scene/Cesium3DContentGroup.js +44 -0
  967. package/Source/Scene/Cesium3DTile.js +2475 -0
  968. package/Source/Scene/Cesium3DTileBatchTable.js +1132 -0
  969. package/Source/Scene/Cesium3DTileColorBlendMode.js +52 -0
  970. package/Source/Scene/Cesium3DTileContent.js +411 -0
  971. package/Source/Scene/Cesium3DTileContentFactory.js +118 -0
  972. package/Source/Scene/Cesium3DTileContentState.js +12 -0
  973. package/Source/Scene/Cesium3DTileContentType.js +179 -0
  974. package/Source/Scene/Cesium3DTileFeature.js +444 -0
  975. package/Source/Scene/Cesium3DTileFeatureTable.js +131 -0
  976. package/Source/Scene/Cesium3DTileOptimizationHint.js +13 -0
  977. package/Source/Scene/Cesium3DTileOptimizations.js +115 -0
  978. package/Source/Scene/Cesium3DTilePass.js +79 -0
  979. package/Source/Scene/Cesium3DTilePassState.js +52 -0
  980. package/Source/Scene/Cesium3DTilePointFeature.js +856 -0
  981. package/Source/Scene/Cesium3DTileRefine.js +29 -0
  982. package/Source/Scene/Cesium3DTileStyle.js +1475 -0
  983. package/Source/Scene/Cesium3DTileStyleEngine.js +78 -0
  984. package/Source/Scene/Cesium3DTilesVoxelProvider.js +760 -0
  985. package/Source/Scene/Cesium3DTileset.js +3932 -0
  986. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +291 -0
  987. package/Source/Scene/Cesium3DTilesetCache.js +80 -0
  988. package/Source/Scene/Cesium3DTilesetHeatmap.js +165 -0
  989. package/Source/Scene/Cesium3DTilesetMetadata.js +199 -0
  990. package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +131 -0
  991. package/Source/Scene/Cesium3DTilesetSkipTraversal.js +420 -0
  992. package/Source/Scene/Cesium3DTilesetStatistics.js +195 -0
  993. package/Source/Scene/Cesium3DTilesetTraversal.js +323 -0
  994. package/Source/Scene/CircleEmitter.js +61 -0
  995. package/Source/Scene/ClassificationPrimitive.js +1387 -0
  996. package/Source/Scene/ClassificationType.js +35 -0
  997. package/Source/Scene/ClippingPlane.js +184 -0
  998. package/Source/Scene/ClippingPlaneCollection.js +764 -0
  999. package/Source/Scene/ClippingPolygon.js +300 -0
  1000. package/Source/Scene/ClippingPolygonCollection.js +965 -0
  1001. package/Source/Scene/CloudCollection.js +1041 -0
  1002. package/Source/Scene/CloudType.js +33 -0
  1003. package/Source/Scene/ColorBlendMode.js +33 -0
  1004. package/Source/Scene/Composite3DTileContent.js +403 -0
  1005. package/Source/Scene/ConditionsExpression.js +219 -0
  1006. package/Source/Scene/ConeEmitter.js +61 -0
  1007. package/Source/Scene/ContentMetadata.js +184 -0
  1008. package/Source/Scene/CreditDisplay.js +654 -0
  1009. package/Source/Scene/CullFace.js +33 -0
  1010. package/Source/Scene/CumulusCloud.js +347 -0
  1011. package/Source/Scene/DebugAppearance.js +266 -0
  1012. package/Source/Scene/DebugCameraPrimitive.js +257 -0
  1013. package/Source/Scene/DebugInspector.js +151 -0
  1014. package/Source/Scene/DebugModelMatrixPrimitive.js +220 -0
  1015. package/Source/Scene/DepthFunction.js +73 -0
  1016. package/Source/Scene/DepthPlane.js +238 -0
  1017. package/Source/Scene/DerivedCommand.js +708 -0
  1018. package/Source/Scene/DeviceOrientationCameraController.js +120 -0
  1019. package/Source/Scene/DirectionalLight.js +49 -0
  1020. package/Source/Scene/DiscardEmptyTileImagePolicy.js +54 -0
  1021. package/Source/Scene/DiscardMissingTileImagePolicy.js +148 -0
  1022. package/Source/Scene/DracoLoader.js +99 -0
  1023. package/Source/Scene/DynamicAtmosphereLightingType.js +56 -0
  1024. package/Source/Scene/DynamicEnvironmentMapManager.js +1022 -0
  1025. package/Source/Scene/EdgeFramebuffer.js +245 -0
  1026. package/Source/Scene/EllipsoidPrimitive.js +496 -0
  1027. package/Source/Scene/EllipsoidSurfaceAppearance.js +278 -0
  1028. package/Source/Scene/Empty3DTileContent.js +164 -0
  1029. package/Source/Scene/Expression.js +2233 -0
  1030. package/Source/Scene/ExpressionNodeType.js +25 -0
  1031. package/Source/Scene/Fog.js +166 -0
  1032. package/Source/Scene/FrameRateMonitor.js +375 -0
  1033. package/Source/Scene/FrameState.js +477 -0
  1034. package/Source/Scene/FrustumCommands.js +29 -0
  1035. package/Source/Scene/GaussianSplat3DTileContent.js +826 -0
  1036. package/Source/Scene/GaussianSplatPrimitive.js +1065 -0
  1037. package/Source/Scene/GaussianSplatRenderResources.js +81 -0
  1038. package/Source/Scene/GaussianSplatSorter.js +73 -0
  1039. package/Source/Scene/GaussianSplatTextureGenerator.js +64 -0
  1040. package/Source/Scene/Geometry3DTileContent.js +534 -0
  1041. package/Source/Scene/GetFeatureInfoFormat.js +396 -0
  1042. package/Source/Scene/Globe.js +1135 -0
  1043. package/Source/Scene/GlobeDepth.js +407 -0
  1044. package/Source/Scene/GlobeSurfaceShaderSet.js +485 -0
  1045. package/Source/Scene/GlobeSurfaceTile.js +967 -0
  1046. package/Source/Scene/GlobeSurfaceTileProvider.js +2910 -0
  1047. package/Source/Scene/GlobeTranslucency.js +239 -0
  1048. package/Source/Scene/GlobeTranslucencyFramebuffer.js +201 -0
  1049. package/Source/Scene/GlobeTranslucencyState.js +1102 -0
  1050. package/Source/Scene/GltfBufferViewLoader.js +242 -0
  1051. package/Source/Scene/GltfDracoLoader.js +293 -0
  1052. package/Source/Scene/GltfImageLoader.js +320 -0
  1053. package/Source/Scene/GltfIndexBufferLoader.js +421 -0
  1054. package/Source/Scene/GltfJsonLoader.js +314 -0
  1055. package/Source/Scene/GltfLoader.js +2989 -0
  1056. package/Source/Scene/GltfLoaderUtil.js +184 -0
  1057. package/Source/Scene/GltfPipeline/ForEach.js +424 -0
  1058. package/Source/Scene/GltfPipeline/addBuffer.js +30 -0
  1059. package/Source/Scene/GltfPipeline/addDefaults.js +208 -0
  1060. package/Source/Scene/GltfPipeline/addExtensionsRequired.js +24 -0
  1061. package/Source/Scene/GltfPipeline/addExtensionsUsed.js +22 -0
  1062. package/Source/Scene/GltfPipeline/addPipelineExtras.js +36 -0
  1063. package/Source/Scene/GltfPipeline/addToArray.js +25 -0
  1064. package/Source/Scene/GltfPipeline/findAccessorMinMax.js +71 -0
  1065. package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +155 -0
  1066. package/Source/Scene/GltfPipeline/getAccessorByteStride.js +29 -0
  1067. package/Source/Scene/GltfPipeline/getComponentReader.js +147 -0
  1068. package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +135 -0
  1069. package/Source/Scene/GltfPipeline/moveTechniquesToExtension.js +145 -0
  1070. package/Source/Scene/GltfPipeline/numberOfComponentsForType.js +29 -0
  1071. package/Source/Scene/GltfPipeline/parseGlb.js +118 -0
  1072. package/Source/Scene/GltfPipeline/readAccessorPacked.js +54 -0
  1073. package/Source/Scene/GltfPipeline/removeExtension.js +64 -0
  1074. package/Source/Scene/GltfPipeline/removeExtensionsRequired.js +24 -0
  1075. package/Source/Scene/GltfPipeline/removeExtensionsUsed.js +26 -0
  1076. package/Source/Scene/GltfPipeline/removePipelineExtras.js +42 -0
  1077. package/Source/Scene/GltfPipeline/removeUnusedElements.js +906 -0
  1078. package/Source/Scene/GltfPipeline/updateAccessorComponentTypes.js +53 -0
  1079. package/Source/Scene/GltfPipeline/updateVersion.js +1148 -0
  1080. package/Source/Scene/GltfPipeline/usesExtension.js +18 -0
  1081. package/Source/Scene/GltfSpzLoader.js +224 -0
  1082. package/Source/Scene/GltfStructuralMetadataLoader.js +505 -0
  1083. package/Source/Scene/GltfTextureLoader.js +399 -0
  1084. package/Source/Scene/GltfVertexBufferLoader.js +634 -0
  1085. package/Source/Scene/Google2DImageryProvider.js +621 -0
  1086. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +548 -0
  1087. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +589 -0
  1088. package/Source/Scene/GridImageryProvider.js +322 -0
  1089. package/Source/Scene/GroundPolylinePrimitive.js +890 -0
  1090. package/Source/Scene/GroundPrimitive.js +1000 -0
  1091. package/Source/Scene/GroupMetadata.js +203 -0
  1092. package/Source/Scene/HeightReference.js +85 -0
  1093. package/Source/Scene/HorizontalOrigin.js +41 -0
  1094. package/Source/Scene/I3SDataProvider.js +860 -0
  1095. package/Source/Scene/I3SDecoder.js +133 -0
  1096. package/Source/Scene/I3SFeature.js +61 -0
  1097. package/Source/Scene/I3SField.js +360 -0
  1098. package/Source/Scene/I3SGeometry.js +477 -0
  1099. package/Source/Scene/I3SLayer.js +460 -0
  1100. package/Source/Scene/I3SNode.js +927 -0
  1101. package/Source/Scene/I3SStatistics.js +94 -0
  1102. package/Source/Scene/I3SSublayer.js +175 -0
  1103. package/Source/Scene/I3SSymbology.js +336 -0
  1104. package/Source/Scene/I3dmParser.js +140 -0
  1105. package/Source/Scene/ITwinData.js +283 -0
  1106. package/Source/Scene/ImageBasedLighting.js +463 -0
  1107. package/Source/Scene/Imagery.js +120 -0
  1108. package/Source/Scene/ImageryLayer.js +1747 -0
  1109. package/Source/Scene/ImageryLayerCollection.js +645 -0
  1110. package/Source/Scene/ImageryLayerFeatureInfo.js +111 -0
  1111. package/Source/Scene/ImageryProvider.js +267 -0
  1112. package/Source/Scene/ImageryState.js +14 -0
  1113. package/Source/Scene/Implicit3DTileContent.js +1206 -0
  1114. package/Source/Scene/ImplicitAvailabilityBitstream.js +134 -0
  1115. package/Source/Scene/ImplicitMetadataView.js +178 -0
  1116. package/Source/Scene/ImplicitSubdivisionScheme.js +48 -0
  1117. package/Source/Scene/ImplicitSubtree.js +1161 -0
  1118. package/Source/Scene/ImplicitSubtreeCache.js +127 -0
  1119. package/Source/Scene/ImplicitSubtreeMetadata.js +191 -0
  1120. package/Source/Scene/ImplicitTileCoordinates.js +647 -0
  1121. package/Source/Scene/ImplicitTileset.js +269 -0
  1122. package/Source/Scene/InstanceAttributeSemantic.js +79 -0
  1123. package/Source/Scene/InvertClassification.js +381 -0
  1124. package/Source/Scene/IonImageryProvider.js +346 -0
  1125. package/Source/Scene/IonImageryProviderFactory.js +194 -0
  1126. package/Source/Scene/IonWorldImageryStyle.js +33 -0
  1127. package/Source/Scene/JobScheduler.js +199 -0
  1128. package/Source/Scene/JobType.js +10 -0
  1129. package/Source/Scene/JsonMetadataTable.js +114 -0
  1130. package/Source/Scene/KeyframeNode.js +61 -0
  1131. package/Source/Scene/Label.js +1618 -0
  1132. package/Source/Scene/LabelCollection.js +1032 -0
  1133. package/Source/Scene/LabelStyle.js +33 -0
  1134. package/Source/Scene/Light.js +34 -0
  1135. package/Source/Scene/MapMode2D.js +23 -0
  1136. package/Source/Scene/MapboxImageryProvider.js +332 -0
  1137. package/Source/Scene/MapboxStyleImageryProvider.js +342 -0
  1138. package/Source/Scene/Material.js +1929 -0
  1139. package/Source/Scene/MaterialAppearance.js +328 -0
  1140. package/Source/Scene/Megatexture.js +550 -0
  1141. package/Source/Scene/MetadataClass.js +202 -0
  1142. package/Source/Scene/MetadataClassProperty.js +1191 -0
  1143. package/Source/Scene/MetadataComponentType.js +469 -0
  1144. package/Source/Scene/MetadataEntity.js +425 -0
  1145. package/Source/Scene/MetadataEnum.js +219 -0
  1146. package/Source/Scene/MetadataEnumValue.js +131 -0
  1147. package/Source/Scene/MetadataPicking.js +396 -0
  1148. package/Source/Scene/MetadataSchema.js +202 -0
  1149. package/Source/Scene/MetadataSchemaLoader.js +135 -0
  1150. package/Source/Scene/MetadataSemantic.js +153 -0
  1151. package/Source/Scene/MetadataTable.js +357 -0
  1152. package/Source/Scene/MetadataTableProperty.js +840 -0
  1153. package/Source/Scene/MetadataType.js +220 -0
  1154. package/Source/Scene/Model/AlphaPipelineStage.js +51 -0
  1155. package/Source/Scene/Model/AtmospherePipelineStage.js +64 -0
  1156. package/Source/Scene/Model/B3dmLoader.js +368 -0
  1157. package/Source/Scene/Model/BatchTexturePipelineStage.js +71 -0
  1158. package/Source/Scene/Model/CPUStylingPipelineStage.js +77 -0
  1159. package/Source/Scene/Model/CartesianRectangle.js +108 -0
  1160. package/Source/Scene/Model/ClassificationModelDrawCommand.js +534 -0
  1161. package/Source/Scene/Model/ClassificationPipelineStage.js +132 -0
  1162. package/Source/Scene/Model/CustomShader.js +469 -0
  1163. package/Source/Scene/Model/CustomShaderMode.js +40 -0
  1164. package/Source/Scene/Model/CustomShaderPipelineStage.js +667 -0
  1165. package/Source/Scene/Model/CustomShaderTranslucencyMode.js +35 -0
  1166. package/Source/Scene/Model/DequantizationPipelineStage.js +178 -0
  1167. package/Source/Scene/Model/EdgeDetectionPipelineStage.js +42 -0
  1168. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +800 -0
  1169. package/Source/Scene/Model/Extensions/Gpm/AnchorPointDirect.js +61 -0
  1170. package/Source/Scene/Model/Extensions/Gpm/AnchorPointIndirect.js +77 -0
  1171. package/Source/Scene/Model/Extensions/Gpm/CorrelationGroup.js +81 -0
  1172. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +248 -0
  1173. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLocal.js +179 -0
  1174. package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +543 -0
  1175. package/Source/Scene/Model/Extensions/Gpm/MeshPrimitiveGpmLocal.js +28 -0
  1176. package/Source/Scene/Model/Extensions/Gpm/PpeMetadata.js +79 -0
  1177. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +75 -0
  1178. package/Source/Scene/Model/Extensions/Gpm/PpeTexture.js +127 -0
  1179. package/Source/Scene/Model/Extensions/Gpm/Spdcf.js +103 -0
  1180. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +30 -0
  1181. package/Source/Scene/Model/FeatureIdPipelineStage.js +523 -0
  1182. package/Source/Scene/Model/GeoJsonLoader.js +697 -0
  1183. package/Source/Scene/Model/GeometryPipelineStage.js +529 -0
  1184. package/Source/Scene/Model/I3dmLoader.js +883 -0
  1185. package/Source/Scene/Model/ImageBasedLightingPipelineStage.js +168 -0
  1186. package/Source/Scene/Model/ImageryConfiguration.js +26 -0
  1187. package/Source/Scene/Model/ImageryCoverage.js +488 -0
  1188. package/Source/Scene/Model/ImageryFlags.js +31 -0
  1189. package/Source/Scene/Model/ImageryInput.js +60 -0
  1190. package/Source/Scene/Model/ImageryPipelineStage.js +1046 -0
  1191. package/Source/Scene/Model/InstancingPipelineStage.js +1056 -0
  1192. package/Source/Scene/Model/LightingModel.js +30 -0
  1193. package/Source/Scene/Model/LightingPipelineStage.js +73 -0
  1194. package/Source/Scene/Model/MappedPositions.js +84 -0
  1195. package/Source/Scene/Model/MaterialPipelineStage.js +869 -0
  1196. package/Source/Scene/Model/MetadataPickingPipelineStage.js +96 -0
  1197. package/Source/Scene/Model/MetadataPipelineStage.js +657 -0
  1198. package/Source/Scene/Model/Model.js +3340 -0
  1199. package/Source/Scene/Model/Model3DTileContent.js +551 -0
  1200. package/Source/Scene/Model/ModelAlphaOptions.js +26 -0
  1201. package/Source/Scene/Model/ModelAnimation.js +421 -0
  1202. package/Source/Scene/Model/ModelAnimationChannel.js +294 -0
  1203. package/Source/Scene/Model/ModelAnimationCollection.js +553 -0
  1204. package/Source/Scene/Model/ModelArticulation.js +214 -0
  1205. package/Source/Scene/Model/ModelArticulationStage.js +261 -0
  1206. package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +126 -0
  1207. package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +98 -0
  1208. package/Source/Scene/Model/ModelColorPipelineStage.js +98 -0
  1209. package/Source/Scene/Model/ModelDrawCommand.js +922 -0
  1210. package/Source/Scene/Model/ModelDrawCommands.js +218 -0
  1211. package/Source/Scene/Model/ModelFeature.js +229 -0
  1212. package/Source/Scene/Model/ModelFeatureTable.js +316 -0
  1213. package/Source/Scene/Model/ModelImagery.js +410 -0
  1214. package/Source/Scene/Model/ModelImageryMapping.js +489 -0
  1215. package/Source/Scene/Model/ModelLightingOptions.js +29 -0
  1216. package/Source/Scene/Model/ModelMatrixUpdateStage.js +120 -0
  1217. package/Source/Scene/Model/ModelNode.js +125 -0
  1218. package/Source/Scene/Model/ModelPrimitiveImagery.js +972 -0
  1219. package/Source/Scene/Model/ModelReader.js +810 -0
  1220. package/Source/Scene/Model/ModelRenderResources.js +119 -0
  1221. package/Source/Scene/Model/ModelRuntimeNode.js +648 -0
  1222. package/Source/Scene/Model/ModelRuntimePrimitive.js +380 -0
  1223. package/Source/Scene/Model/ModelSceneGraph.js +1098 -0
  1224. package/Source/Scene/Model/ModelSilhouettePipelineStage.js +109 -0
  1225. package/Source/Scene/Model/ModelSkin.js +180 -0
  1226. package/Source/Scene/Model/ModelSplitterPipelineStage.js +65 -0
  1227. package/Source/Scene/Model/ModelStatistics.js +225 -0
  1228. package/Source/Scene/Model/ModelType.js +94 -0
  1229. package/Source/Scene/Model/ModelUtility.js +395 -0
  1230. package/Source/Scene/Model/MorphTargetsPipelineStage.js +249 -0
  1231. package/Source/Scene/Model/NodeRenderResources.js +170 -0
  1232. package/Source/Scene/Model/NodeStatisticsPipelineStage.js +75 -0
  1233. package/Source/Scene/Model/PickingPipelineStage.js +218 -0
  1234. package/Source/Scene/Model/PntsLoader.js +716 -0
  1235. package/Source/Scene/Model/PointCloudStylingPipelineStage.js +392 -0
  1236. package/Source/Scene/Model/PrimitiveOutlineGenerator.js +689 -0
  1237. package/Source/Scene/Model/PrimitiveOutlinePipelineStage.js +99 -0
  1238. package/Source/Scene/Model/PrimitiveRenderResources.js +297 -0
  1239. package/Source/Scene/Model/PrimitiveStatisticsPipelineStage.js +253 -0
  1240. package/Source/Scene/Model/SceneMode2DPipelineStage.js +301 -0
  1241. package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +180 -0
  1242. package/Source/Scene/Model/SkinningPipelineStage.js +118 -0
  1243. package/Source/Scene/Model/StyleCommandsNeeded.js +29 -0
  1244. package/Source/Scene/Model/TextureManager.js +244 -0
  1245. package/Source/Scene/Model/TextureUniform.js +71 -0
  1246. package/Source/Scene/Model/TilesetPipelineStage.js +73 -0
  1247. package/Source/Scene/Model/UniformType.js +124 -0
  1248. package/Source/Scene/Model/VaryingType.js +61 -0
  1249. package/Source/Scene/Model/VerticalExaggerationPipelineStage.js +58 -0
  1250. package/Source/Scene/Model/WireframePipelineStage.js +118 -0
  1251. package/Source/Scene/Model/pickModel.js +425 -0
  1252. package/Source/Scene/ModelAnimationLoop.js +33 -0
  1253. package/Source/Scene/ModelAnimationState.js +9 -0
  1254. package/Source/Scene/ModelComponents.js +1662 -0
  1255. package/Source/Scene/Moon.js +175 -0
  1256. package/Source/Scene/Multiple3DTileContent.js +722 -0
  1257. package/Source/Scene/NeverTileDiscardPolicy.js +28 -0
  1258. package/Source/Scene/OIT.js +946 -0
  1259. package/Source/Scene/OpenStreetMapImageryProvider.js +128 -0
  1260. package/Source/Scene/OrderedGroundPrimitiveCollection.js +218 -0
  1261. package/Source/Scene/Particle.js +149 -0
  1262. package/Source/Scene/ParticleBurst.js +51 -0
  1263. package/Source/Scene/ParticleEmitter.js +36 -0
  1264. package/Source/Scene/ParticleSystem.js +885 -0
  1265. package/Source/Scene/PerInstanceColorAppearance.js +296 -0
  1266. package/Source/Scene/PerformanceDisplay.js +120 -0
  1267. package/Source/Scene/PickDepth.js +125 -0
  1268. package/Source/Scene/PickDepthFramebuffer.js +79 -0
  1269. package/Source/Scene/PickFramebuffer.js +255 -0
  1270. package/Source/Scene/PickedMetadataInfo.js +57 -0
  1271. package/Source/Scene/Picking.js +1683 -0
  1272. package/Source/Scene/PntsParser.js +547 -0
  1273. package/Source/Scene/PointCloud.js +1412 -0
  1274. package/Source/Scene/PointCloudEyeDomeLighting.js +284 -0
  1275. package/Source/Scene/PointCloudShading.js +104 -0
  1276. package/Source/Scene/PointPrimitive.js +690 -0
  1277. package/Source/Scene/PointPrimitiveCollection.js +1223 -0
  1278. package/Source/Scene/Polyline.js +431 -0
  1279. package/Source/Scene/PolylineCollection.js +1950 -0
  1280. package/Source/Scene/PolylineColorAppearance.js +220 -0
  1281. package/Source/Scene/PolylineMaterialAppearance.js +231 -0
  1282. package/Source/Scene/PostProcessStage.js +1000 -0
  1283. package/Source/Scene/PostProcessStageCollection.js +900 -0
  1284. package/Source/Scene/PostProcessStageComposite.js +359 -0
  1285. package/Source/Scene/PostProcessStageLibrary.js +826 -0
  1286. package/Source/Scene/PostProcessStageSampleMode.js +22 -0
  1287. package/Source/Scene/PostProcessStageTextureCache.js +454 -0
  1288. package/Source/Scene/Primitive.js +2504 -0
  1289. package/Source/Scene/PrimitiveCollection.js +532 -0
  1290. package/Source/Scene/PrimitiveLoadPlan.js +303 -0
  1291. package/Source/Scene/PrimitivePipeline.js +854 -0
  1292. package/Source/Scene/PrimitiveState.js +136 -0
  1293. package/Source/Scene/PropertyAttribute.js +160 -0
  1294. package/Source/Scene/PropertyAttributeProperty.js +177 -0
  1295. package/Source/Scene/PropertyTable.js +536 -0
  1296. package/Source/Scene/PropertyTexture.js +162 -0
  1297. package/Source/Scene/PropertyTextureProperty.js +304 -0
  1298. package/Source/Scene/QuadtreeOccluders.js +30 -0
  1299. package/Source/Scene/QuadtreePrimitive.js +1575 -0
  1300. package/Source/Scene/QuadtreeTile.js +729 -0
  1301. package/Source/Scene/QuadtreeTileLoadState.js +39 -0
  1302. package/Source/Scene/QuadtreeTileProvider.js +212 -0
  1303. package/Source/Scene/ResourceCache.js +824 -0
  1304. package/Source/Scene/ResourceCacheKey.js +601 -0
  1305. package/Source/Scene/ResourceCacheStatistics.js +149 -0
  1306. package/Source/Scene/ResourceLoader.js +127 -0
  1307. package/Source/Scene/ResourceLoaderState.js +56 -0
  1308. package/Source/Scene/SDFSettings.js +39 -0
  1309. package/Source/Scene/Scene.js +5280 -0
  1310. package/Source/Scene/SceneFramebuffer.js +106 -0
  1311. package/Source/Scene/SceneMode.js +56 -0
  1312. package/Source/Scene/SceneTransforms.js +463 -0
  1313. package/Source/Scene/SceneTransitioner.js +1111 -0
  1314. package/Source/Scene/ScreenSpaceCameraController.js +3098 -0
  1315. package/Source/Scene/SensorVolumePortionToDisplay.js +69 -0
  1316. package/Source/Scene/ShadowMap.js +1957 -0
  1317. package/Source/Scene/ShadowMapShader.js +395 -0
  1318. package/Source/Scene/ShadowMode.js +78 -0
  1319. package/Source/Scene/ShadowVolumeAppearance.js +936 -0
  1320. package/Source/Scene/SingleTileImageryProvider.js +380 -0
  1321. package/Source/Scene/SkyAtmosphere.js +400 -0
  1322. package/Source/Scene/SkyBox.js +289 -0
  1323. package/Source/Scene/SpatialNode.js +377 -0
  1324. package/Source/Scene/SpecularEnvironmentCubeMap.js +240 -0
  1325. package/Source/Scene/SphereEmitter.js +65 -0
  1326. package/Source/Scene/SplitDirection.js +34 -0
  1327. package/Source/Scene/Splitter.js +49 -0
  1328. package/Source/Scene/StencilConstants.js +37 -0
  1329. package/Source/Scene/StencilFunction.js +73 -0
  1330. package/Source/Scene/StencilOperation.js +73 -0
  1331. package/Source/Scene/StructuralMetadata.js +243 -0
  1332. package/Source/Scene/StyleExpression.js +86 -0
  1333. package/Source/Scene/Sun.js +363 -0
  1334. package/Source/Scene/SunLight.js +31 -0
  1335. package/Source/Scene/SunPostProcess.js +288 -0
  1336. package/Source/Scene/SupportedImageFormats.js +18 -0
  1337. package/Source/Scene/Terrain.js +245 -0
  1338. package/Source/Scene/TerrainFillMesh.js +2222 -0
  1339. package/Source/Scene/TerrainState.js +13 -0
  1340. package/Source/Scene/TileBoundingRegion.js +489 -0
  1341. package/Source/Scene/TileBoundingS2Cell.js +699 -0
  1342. package/Source/Scene/TileBoundingSphere.js +167 -0
  1343. package/Source/Scene/TileBoundingVolume.js +68 -0
  1344. package/Source/Scene/TileCoordinatesImageryProvider.js +269 -0
  1345. package/Source/Scene/TileDiscardPolicy.js +34 -0
  1346. package/Source/Scene/TileImagery.js +126 -0
  1347. package/Source/Scene/TileMapServiceImageryProvider.js +442 -0
  1348. package/Source/Scene/TileMetadata.js +184 -0
  1349. package/Source/Scene/TileOrientedBoundingBox.js +219 -0
  1350. package/Source/Scene/TileReplacementQueue.js +119 -0
  1351. package/Source/Scene/TileSelectionResult.js +80 -0
  1352. package/Source/Scene/TileState.js +10 -0
  1353. package/Source/Scene/Tileset3DTileContent.js +182 -0
  1354. package/Source/Scene/TilesetMetadata.js +186 -0
  1355. package/Source/Scene/TimeDynamicImagery.js +308 -0
  1356. package/Source/Scene/TimeDynamicPointCloud.js +802 -0
  1357. package/Source/Scene/Tonemapper.js +64 -0
  1358. package/Source/Scene/TranslucentTileClassification.js +514 -0
  1359. package/Source/Scene/TweenCollection.js +585 -0
  1360. package/Source/Scene/UrlTemplateImageryProvider.js +989 -0
  1361. package/Source/Scene/Vector3DTileBatch.js +37 -0
  1362. package/Source/Scene/Vector3DTileClampedPolylines.js +783 -0
  1363. package/Source/Scene/Vector3DTileContent.js +770 -0
  1364. package/Source/Scene/Vector3DTileGeometry.js +497 -0
  1365. package/Source/Scene/Vector3DTilePoints.js +548 -0
  1366. package/Source/Scene/Vector3DTilePolygons.js +479 -0
  1367. package/Source/Scene/Vector3DTilePolylines.js +679 -0
  1368. package/Source/Scene/Vector3DTilePrimitive.js +1276 -0
  1369. package/Source/Scene/VertexAttributeSemantic.js +305 -0
  1370. package/Source/Scene/VerticalOrigin.js +49 -0
  1371. package/Source/Scene/View.js +465 -0
  1372. package/Source/Scene/ViewportQuad.js +182 -0
  1373. package/Source/Scene/ViewshedShadowMap.js +1953 -0
  1374. package/Source/Scene/VoxelBoundsCollection.js +494 -0
  1375. package/Source/Scene/VoxelBoxShape.js +595 -0
  1376. package/Source/Scene/VoxelCell.js +274 -0
  1377. package/Source/Scene/VoxelContent.js +231 -0
  1378. package/Source/Scene/VoxelCylinderShape.js +868 -0
  1379. package/Source/Scene/VoxelEllipsoidShape.js +1174 -0
  1380. package/Source/Scene/VoxelMetadataOrder.js +24 -0
  1381. package/Source/Scene/VoxelPrimitive.js +2169 -0
  1382. package/Source/Scene/VoxelProvider.js +234 -0
  1383. package/Source/Scene/VoxelRenderResources.js +259 -0
  1384. package/Source/Scene/VoxelShape.js +179 -0
  1385. package/Source/Scene/VoxelShapeType.js +105 -0
  1386. package/Source/Scene/VoxelTraversal.js +1264 -0
  1387. package/Source/Scene/WebMapServiceImageryProvider.js +649 -0
  1388. package/Source/Scene/WebMapTileServiceImageryProvider.js +575 -0
  1389. package/Source/Scene/buildVoxelDrawCommands.js +177 -0
  1390. package/Source/Scene/computeFlyToLocationForRectangle.js +74 -0
  1391. package/Source/Scene/createBillboardPointCallback.js +70 -0
  1392. package/Source/Scene/createElevationBandMaterial.js +580 -0
  1393. package/Source/Scene/createGooglePhotorealistic3DTileset.js +116 -0
  1394. package/Source/Scene/createOsmBuildingsAsync.js +79 -0
  1395. package/Source/Scene/createTangentSpaceDebugPrimitive.js +114 -0
  1396. package/Source/Scene/createWorldImageryAsync.js +39 -0
  1397. package/Source/Scene/findContentMetadata.js +51 -0
  1398. package/Source/Scene/findGroupMetadata.js +39 -0
  1399. package/Source/Scene/findTileMetadata.js +53 -0
  1400. package/Source/Scene/getBinaryAccessor.js +56 -0
  1401. package/Source/Scene/getClipAndStyleCode.js +34 -0
  1402. package/Source/Scene/getClippingFunction.js +154 -0
  1403. package/Source/Scene/getMeshPrimitives.js +72 -0
  1404. package/Source/Scene/getMetadataClassProperty.js +43 -0
  1405. package/Source/Scene/getMetadataProperty.js +48 -0
  1406. package/Source/Scene/hasExtension.js +19 -0
  1407. package/Source/Scene/parseBatchTable.js +448 -0
  1408. package/Source/Scene/parseFeatureMetadataLegacy.js +139 -0
  1409. package/Source/Scene/parseStructuralMetadata.js +102 -0
  1410. package/Source/Scene/preprocess3DTileContent.js +102 -0
  1411. package/Source/Scene/processVoxelProperties.js +398 -0
  1412. package/Source/Shaders/AdjustTranslucentFS.glsl +27 -0
  1413. package/Source/Shaders/AdjustTranslucentFS.js +29 -0
  1414. package/Source/Shaders/Appearances/AllMaterialAppearanceFS.glsl +29 -0
  1415. package/Source/Shaders/Appearances/AllMaterialAppearanceFS.js +31 -0
  1416. package/Source/Shaders/Appearances/AllMaterialAppearanceVS.glsl +26 -0
  1417. package/Source/Shaders/Appearances/AllMaterialAppearanceVS.js +28 -0
  1418. package/Source/Shaders/Appearances/BasicMaterialAppearanceFS.glsl +23 -0
  1419. package/Source/Shaders/Appearances/BasicMaterialAppearanceFS.js +25 -0
  1420. package/Source/Shaders/Appearances/BasicMaterialAppearanceVS.glsl +17 -0
  1421. package/Source/Shaders/Appearances/BasicMaterialAppearanceVS.js +19 -0
  1422. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.glsl +33 -0
  1423. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.js +35 -0
  1424. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.glsl +19 -0
  1425. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.js +21 -0
  1426. package/Source/Shaders/Appearances/PerInstanceColorAppearanceFS.glsl +24 -0
  1427. package/Source/Shaders/Appearances/PerInstanceColorAppearanceFS.js +26 -0
  1428. package/Source/Shaders/Appearances/PerInstanceColorAppearanceVS.glsl +20 -0
  1429. package/Source/Shaders/Appearances/PerInstanceColorAppearanceVS.js +22 -0
  1430. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.glsl +6 -0
  1431. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.js +8 -0
  1432. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.glsl +15 -0
  1433. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.js +17 -0
  1434. package/Source/Shaders/Appearances/PolylineColorAppearanceVS.glsl +28 -0
  1435. package/Source/Shaders/Appearances/PolylineColorAppearanceVS.js +30 -0
  1436. package/Source/Shaders/Appearances/PolylineMaterialAppearanceVS.glsl +33 -0
  1437. package/Source/Shaders/Appearances/PolylineMaterialAppearanceVS.js +35 -0
  1438. package/Source/Shaders/Appearances/TexturedMaterialAppearanceFS.glsl +25 -0
  1439. package/Source/Shaders/Appearances/TexturedMaterialAppearanceFS.js +27 -0
  1440. package/Source/Shaders/Appearances/TexturedMaterialAppearanceVS.glsl +20 -0
  1441. package/Source/Shaders/Appearances/TexturedMaterialAppearanceVS.js +22 -0
  1442. package/Source/Shaders/AtmosphereCommon.glsl +187 -0
  1443. package/Source/Shaders/AtmosphereCommon.js +189 -0
  1444. package/Source/Shaders/BillboardCollectionFS.glsl +261 -0
  1445. package/Source/Shaders/BillboardCollectionFS.js +262 -0
  1446. package/Source/Shaders/BillboardCollectionVS.glsl +445 -0
  1447. package/Source/Shaders/BillboardCollectionVS.js +447 -0
  1448. package/Source/Shaders/BrdfLutGeneratorFS.glsl +100 -0
  1449. package/Source/Shaders/BrdfLutGeneratorFS.js +102 -0
  1450. package/Source/Shaders/Builtin/Constants/degreesPerRadian.glsl +16 -0
  1451. package/Source/Shaders/Builtin/Constants/degreesPerRadian.js +18 -0
  1452. package/Source/Shaders/Builtin/Constants/depthRange.glsl +14 -0
  1453. package/Source/Shaders/Builtin/Constants/depthRange.js +16 -0
  1454. package/Source/Shaders/Builtin/Constants/epsilon1.glsl +7 -0
  1455. package/Source/Shaders/Builtin/Constants/epsilon1.js +9 -0
  1456. package/Source/Shaders/Builtin/Constants/epsilon2.glsl +7 -0
  1457. package/Source/Shaders/Builtin/Constants/epsilon2.js +9 -0
  1458. package/Source/Shaders/Builtin/Constants/epsilon3.glsl +7 -0
  1459. package/Source/Shaders/Builtin/Constants/epsilon3.js +9 -0
  1460. package/Source/Shaders/Builtin/Constants/epsilon4.glsl +7 -0
  1461. package/Source/Shaders/Builtin/Constants/epsilon4.js +9 -0
  1462. package/Source/Shaders/Builtin/Constants/epsilon5.glsl +7 -0
  1463. package/Source/Shaders/Builtin/Constants/epsilon5.js +9 -0
  1464. package/Source/Shaders/Builtin/Constants/epsilon6.glsl +7 -0
  1465. package/Source/Shaders/Builtin/Constants/epsilon6.js +9 -0
  1466. package/Source/Shaders/Builtin/Constants/epsilon7.glsl +7 -0
  1467. package/Source/Shaders/Builtin/Constants/epsilon7.js +9 -0
  1468. package/Source/Shaders/Builtin/Constants/infinity.glsl +7 -0
  1469. package/Source/Shaders/Builtin/Constants/infinity.js +9 -0
  1470. package/Source/Shaders/Builtin/Constants/oneOverPi.glsl +16 -0
  1471. package/Source/Shaders/Builtin/Constants/oneOverPi.js +18 -0
  1472. package/Source/Shaders/Builtin/Constants/oneOverTwoPi.glsl +16 -0
  1473. package/Source/Shaders/Builtin/Constants/oneOverTwoPi.js +18 -0
  1474. package/Source/Shaders/Builtin/Constants/passCesium3DTile.glsl +9 -0
  1475. package/Source/Shaders/Builtin/Constants/passCesium3DTile.js +11 -0
  1476. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.glsl +9 -0
  1477. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.js +11 -0
  1478. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.glsl +9 -0
  1479. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.js +11 -0
  1480. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdges.glsl +10 -0
  1481. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdges.js +12 -0
  1482. package/Source/Shaders/Builtin/Constants/passClassification.glsl +9 -0
  1483. package/Source/Shaders/Builtin/Constants/passClassification.js +11 -0
  1484. package/Source/Shaders/Builtin/Constants/passCompute.glsl +9 -0
  1485. package/Source/Shaders/Builtin/Constants/passCompute.js +11 -0
  1486. package/Source/Shaders/Builtin/Constants/passEnvironment.glsl +9 -0
  1487. package/Source/Shaders/Builtin/Constants/passEnvironment.js +11 -0
  1488. package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +9 -0
  1489. package/Source/Shaders/Builtin/Constants/passGaussianSplats.js +11 -0
  1490. package/Source/Shaders/Builtin/Constants/passGlobe.glsl +9 -0
  1491. package/Source/Shaders/Builtin/Constants/passGlobe.js +11 -0
  1492. package/Source/Shaders/Builtin/Constants/passOpaque.glsl +9 -0
  1493. package/Source/Shaders/Builtin/Constants/passOpaque.js +11 -0
  1494. package/Source/Shaders/Builtin/Constants/passOverlay.glsl +9 -0
  1495. package/Source/Shaders/Builtin/Constants/passOverlay.js +11 -0
  1496. package/Source/Shaders/Builtin/Constants/passTerrainClassification.glsl +9 -0
  1497. package/Source/Shaders/Builtin/Constants/passTerrainClassification.js +11 -0
  1498. package/Source/Shaders/Builtin/Constants/passTranslucent.glsl +9 -0
  1499. package/Source/Shaders/Builtin/Constants/passTranslucent.js +11 -0
  1500. package/Source/Shaders/Builtin/Constants/passVoxels.glsl +9 -0
  1501. package/Source/Shaders/Builtin/Constants/passVoxels.js +11 -0
  1502. package/Source/Shaders/Builtin/Constants/pi.glsl +16 -0
  1503. package/Source/Shaders/Builtin/Constants/pi.js +18 -0
  1504. package/Source/Shaders/Builtin/Constants/piOverFour.glsl +16 -0
  1505. package/Source/Shaders/Builtin/Constants/piOverFour.js +18 -0
  1506. package/Source/Shaders/Builtin/Constants/piOverSix.glsl +16 -0
  1507. package/Source/Shaders/Builtin/Constants/piOverSix.js +18 -0
  1508. package/Source/Shaders/Builtin/Constants/piOverThree.glsl +16 -0
  1509. package/Source/Shaders/Builtin/Constants/piOverThree.js +18 -0
  1510. package/Source/Shaders/Builtin/Constants/piOverTwo.glsl +16 -0
  1511. package/Source/Shaders/Builtin/Constants/piOverTwo.js +18 -0
  1512. package/Source/Shaders/Builtin/Constants/radiansPerDegree.glsl +16 -0
  1513. package/Source/Shaders/Builtin/Constants/radiansPerDegree.js +18 -0
  1514. package/Source/Shaders/Builtin/Constants/sceneMode2D.glsl +11 -0
  1515. package/Source/Shaders/Builtin/Constants/sceneMode2D.js +13 -0
  1516. package/Source/Shaders/Builtin/Constants/sceneMode3D.glsl +11 -0
  1517. package/Source/Shaders/Builtin/Constants/sceneMode3D.js +13 -0
  1518. package/Source/Shaders/Builtin/Constants/sceneModeColumbusView.glsl +11 -0
  1519. package/Source/Shaders/Builtin/Constants/sceneModeColumbusView.js +13 -0
  1520. package/Source/Shaders/Builtin/Constants/sceneModeMorphing.glsl +11 -0
  1521. package/Source/Shaders/Builtin/Constants/sceneModeMorphing.js +13 -0
  1522. package/Source/Shaders/Builtin/Constants/solarRadius.glsl +13 -0
  1523. package/Source/Shaders/Builtin/Constants/solarRadius.js +15 -0
  1524. package/Source/Shaders/Builtin/Constants/threePiOver2.glsl +16 -0
  1525. package/Source/Shaders/Builtin/Constants/threePiOver2.js +18 -0
  1526. package/Source/Shaders/Builtin/Constants/twoPi.glsl +16 -0
  1527. package/Source/Shaders/Builtin/Constants/twoPi.js +18 -0
  1528. package/Source/Shaders/Builtin/Constants/webMercatorMaxLatitude.glsl +16 -0
  1529. package/Source/Shaders/Builtin/Constants/webMercatorMaxLatitude.js +18 -0
  1530. package/Source/Shaders/Builtin/CzmBuiltins.js +280 -0
  1531. package/Source/Shaders/Builtin/Functions/HSBToRGB.glsl +24 -0
  1532. package/Source/Shaders/Builtin/Functions/HSBToRGB.js +26 -0
  1533. package/Source/Shaders/Builtin/Functions/HSLToRGB.glsl +31 -0
  1534. package/Source/Shaders/Builtin/Functions/HSLToRGB.js +33 -0
  1535. package/Source/Shaders/Builtin/Functions/RGBToHSB.glsl +27 -0
  1536. package/Source/Shaders/Builtin/Functions/RGBToHSB.js +29 -0
  1537. package/Source/Shaders/Builtin/Functions/RGBToHSL.glsl +34 -0
  1538. package/Source/Shaders/Builtin/Functions/RGBToHSL.js +36 -0
  1539. package/Source/Shaders/Builtin/Functions/RGBToXYZ.glsl +30 -0
  1540. package/Source/Shaders/Builtin/Functions/RGBToXYZ.js +32 -0
  1541. package/Source/Shaders/Builtin/Functions/XYZToRGB.glsl +30 -0
  1542. package/Source/Shaders/Builtin/Functions/XYZToRGB.js +32 -0
  1543. package/Source/Shaders/Builtin/Functions/acesTonemapping.glsl +16 -0
  1544. package/Source/Shaders/Builtin/Functions/acesTonemapping.js +18 -0
  1545. package/Source/Shaders/Builtin/Functions/alphaWeight.glsl +11 -0
  1546. package/Source/Shaders/Builtin/Functions/alphaWeight.js +13 -0
  1547. package/Source/Shaders/Builtin/Functions/antialias.glsl +39 -0
  1548. package/Source/Shaders/Builtin/Functions/antialias.js +41 -0
  1549. package/Source/Shaders/Builtin/Functions/applyHSBShift.glsl +32 -0
  1550. package/Source/Shaders/Builtin/Functions/applyHSBShift.js +34 -0
  1551. package/Source/Shaders/Builtin/Functions/approximateSphericalCoordinates.glsl +18 -0
  1552. package/Source/Shaders/Builtin/Functions/approximateSphericalCoordinates.js +20 -0
  1553. package/Source/Shaders/Builtin/Functions/approximateTanh.glsl +10 -0
  1554. package/Source/Shaders/Builtin/Functions/approximateTanh.js +12 -0
  1555. package/Source/Shaders/Builtin/Functions/backFacing.glsl +13 -0
  1556. package/Source/Shaders/Builtin/Functions/backFacing.js +15 -0
  1557. package/Source/Shaders/Builtin/Functions/branchFreeTernary.glsl +71 -0
  1558. package/Source/Shaders/Builtin/Functions/branchFreeTernary.js +73 -0
  1559. package/Source/Shaders/Builtin/Functions/cascadeColor.glsl +8 -0
  1560. package/Source/Shaders/Builtin/Functions/cascadeColor.js +10 -0
  1561. package/Source/Shaders/Builtin/Functions/cascadeDistance.glsl +7 -0
  1562. package/Source/Shaders/Builtin/Functions/cascadeDistance.js +9 -0
  1563. package/Source/Shaders/Builtin/Functions/cascadeMatrix.glsl +10 -0
  1564. package/Source/Shaders/Builtin/Functions/cascadeMatrix.js +12 -0
  1565. package/Source/Shaders/Builtin/Functions/cascadeWeights.glsl +10 -0
  1566. package/Source/Shaders/Builtin/Functions/cascadeWeights.js +12 -0
  1567. package/Source/Shaders/Builtin/Functions/clipPolygons.glsl +37 -0
  1568. package/Source/Shaders/Builtin/Functions/clipPolygons.js +39 -0
  1569. package/Source/Shaders/Builtin/Functions/columbusViewMorph.glsl +12 -0
  1570. package/Source/Shaders/Builtin/Functions/columbusViewMorph.js +14 -0
  1571. package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.glsl +88 -0
  1572. package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.js +90 -0
  1573. package/Source/Shaders/Builtin/Functions/computeGroundAtmosphereScattering.glsl +30 -0
  1574. package/Source/Shaders/Builtin/Functions/computeGroundAtmosphereScattering.js +32 -0
  1575. package/Source/Shaders/Builtin/Functions/computePosition.glsl +22 -0
  1576. package/Source/Shaders/Builtin/Functions/computePosition.js +24 -0
  1577. package/Source/Shaders/Builtin/Functions/computeScattering.glsl +149 -0
  1578. package/Source/Shaders/Builtin/Functions/computeScattering.js +151 -0
  1579. package/Source/Shaders/Builtin/Functions/cosineAndSine.glsl +211 -0
  1580. package/Source/Shaders/Builtin/Functions/cosineAndSine.js +213 -0
  1581. package/Source/Shaders/Builtin/Functions/decompressTextureCoordinates.glsl +17 -0
  1582. package/Source/Shaders/Builtin/Functions/decompressTextureCoordinates.js +19 -0
  1583. package/Source/Shaders/Builtin/Functions/depthClamp.glsl +47 -0
  1584. package/Source/Shaders/Builtin/Functions/depthClamp.js +49 -0
  1585. package/Source/Shaders/Builtin/Functions/eastNorthUpToEyeCoordinates.glsl +33 -0
  1586. package/Source/Shaders/Builtin/Functions/eastNorthUpToEyeCoordinates.js +35 -0
  1587. package/Source/Shaders/Builtin/Functions/ellipsoidContainsPoint.glsl +12 -0
  1588. package/Source/Shaders/Builtin/Functions/ellipsoidContainsPoint.js +14 -0
  1589. package/Source/Shaders/Builtin/Functions/ellipsoidTextureCoordinates.glsl +10 -0
  1590. package/Source/Shaders/Builtin/Functions/ellipsoidTextureCoordinates.js +12 -0
  1591. package/Source/Shaders/Builtin/Functions/equalsEpsilon.glsl +36 -0
  1592. package/Source/Shaders/Builtin/Functions/equalsEpsilon.js +38 -0
  1593. package/Source/Shaders/Builtin/Functions/eyeOffset.glsl +20 -0
  1594. package/Source/Shaders/Builtin/Functions/eyeOffset.js +22 -0
  1595. package/Source/Shaders/Builtin/Functions/eyeToWindowCoordinates.glsl +32 -0
  1596. package/Source/Shaders/Builtin/Functions/eyeToWindowCoordinates.js +34 -0
  1597. package/Source/Shaders/Builtin/Functions/fastApproximateAtan.glsl +55 -0
  1598. package/Source/Shaders/Builtin/Functions/fastApproximateAtan.js +57 -0
  1599. package/Source/Shaders/Builtin/Functions/fog.glsl +38 -0
  1600. package/Source/Shaders/Builtin/Functions/fog.js +40 -0
  1601. package/Source/Shaders/Builtin/Functions/gammaCorrect.glsl +22 -0
  1602. package/Source/Shaders/Builtin/Functions/gammaCorrect.js +24 -0
  1603. package/Source/Shaders/Builtin/Functions/geodeticSurfaceNormal.glsl +16 -0
  1604. package/Source/Shaders/Builtin/Functions/geodeticSurfaceNormal.js +18 -0
  1605. package/Source/Shaders/Builtin/Functions/getDefaultMaterial.glsl +27 -0
  1606. package/Source/Shaders/Builtin/Functions/getDefaultMaterial.js +29 -0
  1607. package/Source/Shaders/Builtin/Functions/getDynamicAtmosphereLightDirection.glsl +22 -0
  1608. package/Source/Shaders/Builtin/Functions/getDynamicAtmosphereLightDirection.js +24 -0
  1609. package/Source/Shaders/Builtin/Functions/getLambertDiffuse.glsl +22 -0
  1610. package/Source/Shaders/Builtin/Functions/getLambertDiffuse.js +24 -0
  1611. package/Source/Shaders/Builtin/Functions/getSpecular.glsl +29 -0
  1612. package/Source/Shaders/Builtin/Functions/getSpecular.js +31 -0
  1613. package/Source/Shaders/Builtin/Functions/getWaterNoise.glsl +37 -0
  1614. package/Source/Shaders/Builtin/Functions/getWaterNoise.js +39 -0
  1615. package/Source/Shaders/Builtin/Functions/hue.glsl +30 -0
  1616. package/Source/Shaders/Builtin/Functions/hue.js +32 -0
  1617. package/Source/Shaders/Builtin/Functions/inverseGamma.glsl +12 -0
  1618. package/Source/Shaders/Builtin/Functions/inverseGamma.js +14 -0
  1619. package/Source/Shaders/Builtin/Functions/isEmpty.glsl +19 -0
  1620. package/Source/Shaders/Builtin/Functions/isEmpty.js +21 -0
  1621. package/Source/Shaders/Builtin/Functions/isFull.glsl +19 -0
  1622. package/Source/Shaders/Builtin/Functions/isFull.js +21 -0
  1623. package/Source/Shaders/Builtin/Functions/latitudeToWebMercatorFraction.glsl +21 -0
  1624. package/Source/Shaders/Builtin/Functions/latitudeToWebMercatorFraction.js +23 -0
  1625. package/Source/Shaders/Builtin/Functions/lineDistance.glsl +14 -0
  1626. package/Source/Shaders/Builtin/Functions/lineDistance.js +16 -0
  1627. package/Source/Shaders/Builtin/Functions/linearToSrgb.glsl +16 -0
  1628. package/Source/Shaders/Builtin/Functions/linearToSrgb.js +18 -0
  1629. package/Source/Shaders/Builtin/Functions/luminance.glsl +20 -0
  1630. package/Source/Shaders/Builtin/Functions/luminance.js +22 -0
  1631. package/Source/Shaders/Builtin/Functions/maximumComponent.glsl +21 -0
  1632. package/Source/Shaders/Builtin/Functions/maximumComponent.js +23 -0
  1633. package/Source/Shaders/Builtin/Functions/metersPerPixel.glsl +61 -0
  1634. package/Source/Shaders/Builtin/Functions/metersPerPixel.js +63 -0
  1635. package/Source/Shaders/Builtin/Functions/modelToWindowCoordinates.glsl +38 -0
  1636. package/Source/Shaders/Builtin/Functions/modelToWindowCoordinates.js +40 -0
  1637. package/Source/Shaders/Builtin/Functions/multiplyWithColorBalance.glsl +18 -0
  1638. package/Source/Shaders/Builtin/Functions/multiplyWithColorBalance.js +20 -0
  1639. package/Source/Shaders/Builtin/Functions/nearFarScalar.glsl +26 -0
  1640. package/Source/Shaders/Builtin/Functions/nearFarScalar.js +28 -0
  1641. package/Source/Shaders/Builtin/Functions/octDecode.glsl +83 -0
  1642. package/Source/Shaders/Builtin/Functions/octDecode.js +85 -0
  1643. package/Source/Shaders/Builtin/Functions/packDepth.glsl +18 -0
  1644. package/Source/Shaders/Builtin/Functions/packDepth.js +20 -0
  1645. package/Source/Shaders/Builtin/Functions/pbrLighting.glsl +164 -0
  1646. package/Source/Shaders/Builtin/Functions/pbrLighting.js +166 -0
  1647. package/Source/Shaders/Builtin/Functions/pbrNeutralTonemapping.glsl +23 -0
  1648. package/Source/Shaders/Builtin/Functions/pbrNeutralTonemapping.js +25 -0
  1649. package/Source/Shaders/Builtin/Functions/phong.glsl +63 -0
  1650. package/Source/Shaders/Builtin/Functions/phong.js +65 -0
  1651. package/Source/Shaders/Builtin/Functions/planeDistance.glsl +28 -0
  1652. package/Source/Shaders/Builtin/Functions/planeDistance.js +30 -0
  1653. package/Source/Shaders/Builtin/Functions/pointAlongRay.glsl +19 -0
  1654. package/Source/Shaders/Builtin/Functions/pointAlongRay.js +21 -0
  1655. package/Source/Shaders/Builtin/Functions/rayEllipsoidIntersectionInterval.glsl +83 -0
  1656. package/Source/Shaders/Builtin/Functions/rayEllipsoidIntersectionInterval.js +85 -0
  1657. package/Source/Shaders/Builtin/Functions/raySphereIntersectionInterval.glsl +36 -0
  1658. package/Source/Shaders/Builtin/Functions/raySphereIntersectionInterval.js +38 -0
  1659. package/Source/Shaders/Builtin/Functions/readDepth.glsl +4 -0
  1660. package/Source/Shaders/Builtin/Functions/readDepth.js +6 -0
  1661. package/Source/Shaders/Builtin/Functions/readNonPerspective.glsl +31 -0
  1662. package/Source/Shaders/Builtin/Functions/readNonPerspective.js +33 -0
  1663. package/Source/Shaders/Builtin/Functions/reverseLogDepth.glsl +11 -0
  1664. package/Source/Shaders/Builtin/Functions/reverseLogDepth.js +13 -0
  1665. package/Source/Shaders/Builtin/Functions/round.glsl +22 -0
  1666. package/Source/Shaders/Builtin/Functions/round.js +24 -0
  1667. package/Source/Shaders/Builtin/Functions/saturation.glsl +22 -0
  1668. package/Source/Shaders/Builtin/Functions/saturation.js +24 -0
  1669. package/Source/Shaders/Builtin/Functions/shadowDepthCompare.glsl +24 -0
  1670. package/Source/Shaders/Builtin/Functions/shadowDepthCompare.js +26 -0
  1671. package/Source/Shaders/Builtin/Functions/shadowVisibility.glsl +66 -0
  1672. package/Source/Shaders/Builtin/Functions/shadowVisibility.js +68 -0
  1673. package/Source/Shaders/Builtin/Functions/signNotZero.glsl +29 -0
  1674. package/Source/Shaders/Builtin/Functions/signNotZero.js +31 -0
  1675. package/Source/Shaders/Builtin/Functions/sphericalHarmonics.glsl +44 -0
  1676. package/Source/Shaders/Builtin/Functions/sphericalHarmonics.js +46 -0
  1677. package/Source/Shaders/Builtin/Functions/srgbToLinear.glsl +16 -0
  1678. package/Source/Shaders/Builtin/Functions/srgbToLinear.js +18 -0
  1679. package/Source/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.glsl +25 -0
  1680. package/Source/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.js +27 -0
  1681. package/Source/Shaders/Builtin/Functions/textureCube.glsl +36 -0
  1682. package/Source/Shaders/Builtin/Functions/textureCube.js +37 -0
  1683. package/Source/Shaders/Builtin/Functions/transformPlane.glsl +15 -0
  1684. package/Source/Shaders/Builtin/Functions/transformPlane.js +17 -0
  1685. package/Source/Shaders/Builtin/Functions/translateRelativeToEye.glsl +45 -0
  1686. package/Source/Shaders/Builtin/Functions/translateRelativeToEye.js +47 -0
  1687. package/Source/Shaders/Builtin/Functions/translucentPhong.glsl +27 -0
  1688. package/Source/Shaders/Builtin/Functions/translucentPhong.js +29 -0
  1689. package/Source/Shaders/Builtin/Functions/transpose.glsl +45 -0
  1690. package/Source/Shaders/Builtin/Functions/transpose.js +47 -0
  1691. package/Source/Shaders/Builtin/Functions/unpackClippingExtents.glsl +14 -0
  1692. package/Source/Shaders/Builtin/Functions/unpackClippingExtents.js +15 -0
  1693. package/Source/Shaders/Builtin/Functions/unpackDepth.glsl +16 -0
  1694. package/Source/Shaders/Builtin/Functions/unpackDepth.js +18 -0
  1695. package/Source/Shaders/Builtin/Functions/unpackFloat.glsl +24 -0
  1696. package/Source/Shaders/Builtin/Functions/unpackFloat.js +26 -0
  1697. package/Source/Shaders/Builtin/Functions/unpackUint.glsl +31 -0
  1698. package/Source/Shaders/Builtin/Functions/unpackUint.js +33 -0
  1699. package/Source/Shaders/Builtin/Functions/valueTransform.glsl +38 -0
  1700. package/Source/Shaders/Builtin/Functions/valueTransform.js +40 -0
  1701. package/Source/Shaders/Builtin/Functions/vertexLogDepth.glsl +64 -0
  1702. package/Source/Shaders/Builtin/Functions/vertexLogDepth.js +66 -0
  1703. package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl +110 -0
  1704. package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.js +112 -0
  1705. package/Source/Shaders/Builtin/Functions/writeDepthClamp.glsl +24 -0
  1706. package/Source/Shaders/Builtin/Functions/writeDepthClamp.js +26 -0
  1707. package/Source/Shaders/Builtin/Functions/writeLogDepth.glsl +79 -0
  1708. package/Source/Shaders/Builtin/Functions/writeLogDepth.js +81 -0
  1709. package/Source/Shaders/Builtin/Functions/writeNonPerspective.glsl +32 -0
  1710. package/Source/Shaders/Builtin/Functions/writeNonPerspective.js +34 -0
  1711. package/Source/Shaders/Builtin/Structs/depthRangeStruct.glsl +9 -0
  1712. package/Source/Shaders/Builtin/Structs/depthRangeStruct.js +11 -0
  1713. package/Source/Shaders/Builtin/Structs/material.glsl +22 -0
  1714. package/Source/Shaders/Builtin/Structs/material.js +24 -0
  1715. package/Source/Shaders/Builtin/Structs/materialInput.glsl +30 -0
  1716. package/Source/Shaders/Builtin/Structs/materialInput.js +32 -0
  1717. package/Source/Shaders/Builtin/Structs/modelMaterial.glsl +45 -0
  1718. package/Source/Shaders/Builtin/Structs/modelMaterial.js +47 -0
  1719. package/Source/Shaders/Builtin/Structs/modelVertexOutput.glsl +16 -0
  1720. package/Source/Shaders/Builtin/Structs/modelVertexOutput.js +18 -0
  1721. package/Source/Shaders/Builtin/Structs/ray.glsl +11 -0
  1722. package/Source/Shaders/Builtin/Structs/ray.js +13 -0
  1723. package/Source/Shaders/Builtin/Structs/raySegment.glsl +27 -0
  1724. package/Source/Shaders/Builtin/Structs/raySegment.js +29 -0
  1725. package/Source/Shaders/Builtin/Structs/shadowParameters.glsl +15 -0
  1726. package/Source/Shaders/Builtin/Structs/shadowParameters.js +17 -0
  1727. package/Source/Shaders/CloudCollectionFS.glsl +263 -0
  1728. package/Source/Shaders/CloudCollectionFS.js +265 -0
  1729. package/Source/Shaders/CloudCollectionVS.glsl +48 -0
  1730. package/Source/Shaders/CloudCollectionVS.js +50 -0
  1731. package/Source/Shaders/CloudNoiseFS.glsl +92 -0
  1732. package/Source/Shaders/CloudNoiseFS.js +94 -0
  1733. package/Source/Shaders/CloudNoiseVS.glsl +18 -0
  1734. package/Source/Shaders/CloudNoiseVS.js +20 -0
  1735. package/Source/Shaders/CompareAndPackTranslucentDepth.glsl +12 -0
  1736. package/Source/Shaders/CompareAndPackTranslucentDepth.js +14 -0
  1737. package/Source/Shaders/CompositeOITFS.glsl +31 -0
  1738. package/Source/Shaders/CompositeOITFS.js +33 -0
  1739. package/Source/Shaders/ComputeIrradianceFS.glsl +103 -0
  1740. package/Source/Shaders/ComputeIrradianceFS.js +105 -0
  1741. package/Source/Shaders/ComputeRadianceMapFS.glsl +107 -0
  1742. package/Source/Shaders/ComputeRadianceMapFS.js +109 -0
  1743. package/Source/Shaders/ConvolveSpecularMapFS.glsl +70 -0
  1744. package/Source/Shaders/ConvolveSpecularMapFS.js +72 -0
  1745. package/Source/Shaders/ConvolveSpecularMapVS.glsl +24 -0
  1746. package/Source/Shaders/ConvolveSpecularMapVS.js +26 -0
  1747. package/Source/Shaders/DepthPlaneFS.glsl +36 -0
  1748. package/Source/Shaders/DepthPlaneFS.js +38 -0
  1749. package/Source/Shaders/DepthPlaneVS.glsl +11 -0
  1750. package/Source/Shaders/DepthPlaneVS.js +13 -0
  1751. package/Source/Shaders/EllipsoidFS.glsl +104 -0
  1752. package/Source/Shaders/EllipsoidFS.js +106 -0
  1753. package/Source/Shaders/EllipsoidVS.glsl +28 -0
  1754. package/Source/Shaders/EllipsoidVS.js +30 -0
  1755. package/Source/Shaders/FXAA3_11.glsl +650 -0
  1756. package/Source/Shaders/FXAA3_11.js +680 -0
  1757. package/Source/Shaders/GlobeFS.glsl +692 -0
  1758. package/Source/Shaders/GlobeFS.js +694 -0
  1759. package/Source/Shaders/GlobeVS.glsl +286 -0
  1760. package/Source/Shaders/GlobeVS.js +288 -0
  1761. package/Source/Shaders/GroundAtmosphere.glsl +18 -0
  1762. package/Source/Shaders/GroundAtmosphere.js +20 -0
  1763. package/Source/Shaders/Materials/AspectRampMaterial.glsl +11 -0
  1764. package/Source/Shaders/Materials/AspectRampMaterial.js +13 -0
  1765. package/Source/Shaders/Materials/BumpMapMaterial.glsl +29 -0
  1766. package/Source/Shaders/Materials/BumpMapMaterial.js +31 -0
  1767. package/Source/Shaders/Materials/CheckerboardMaterial.glsl +29 -0
  1768. package/Source/Shaders/Materials/CheckerboardMaterial.js +31 -0
  1769. package/Source/Shaders/Materials/DotMaterial.glsl +18 -0
  1770. package/Source/Shaders/Materials/DotMaterial.js +20 -0
  1771. package/Source/Shaders/Materials/ElevationBandMaterial.glsl +74 -0
  1772. package/Source/Shaders/Materials/ElevationBandMaterial.js +76 -0
  1773. package/Source/Shaders/Materials/ElevationContourMaterial.glsl +26 -0
  1774. package/Source/Shaders/Materials/ElevationContourMaterial.js +28 -0
  1775. package/Source/Shaders/Materials/ElevationRampMaterial.glsl +14 -0
  1776. package/Source/Shaders/Materials/ElevationRampMaterial.js +16 -0
  1777. package/Source/Shaders/Materials/FadeMaterial.glsl +37 -0
  1778. package/Source/Shaders/Materials/FadeMaterial.js +39 -0
  1779. package/Source/Shaders/Materials/GridMaterial.glsl +57 -0
  1780. package/Source/Shaders/Materials/GridMaterial.js +59 -0
  1781. package/Source/Shaders/Materials/NormalMapMaterial.glsl +19 -0
  1782. package/Source/Shaders/Materials/NormalMapMaterial.js +21 -0
  1783. package/Source/Shaders/Materials/PolylineArrowMaterial.glsl +63 -0
  1784. package/Source/Shaders/Materials/PolylineArrowMaterial.js +65 -0
  1785. package/Source/Shaders/Materials/PolylineDashMaterial.glsl +39 -0
  1786. package/Source/Shaders/Materials/PolylineDashMaterial.js +41 -0
  1787. package/Source/Shaders/Materials/PolylineGlowMaterial.glsl +25 -0
  1788. package/Source/Shaders/Materials/PolylineGlowMaterial.js +27 -0
  1789. package/Source/Shaders/Materials/PolylineOutlineMaterial.glsl +29 -0
  1790. package/Source/Shaders/Materials/PolylineOutlineMaterial.js +31 -0
  1791. package/Source/Shaders/Materials/RimLightingMaterial.glsl +21 -0
  1792. package/Source/Shaders/Materials/RimLightingMaterial.js +23 -0
  1793. package/Source/Shaders/Materials/SlopeRampMaterial.glsl +11 -0
  1794. package/Source/Shaders/Materials/SlopeRampMaterial.js +13 -0
  1795. package/Source/Shaders/Materials/StripeMaterial.glsl +24 -0
  1796. package/Source/Shaders/Materials/StripeMaterial.js +26 -0
  1797. package/Source/Shaders/Materials/Water.glsl +58 -0
  1798. package/Source/Shaders/Materials/Water.js +60 -0
  1799. package/Source/Shaders/Materials/WaterMaskMaterial.glsl +15 -0
  1800. package/Source/Shaders/Materials/WaterMaskMaterial.js +17 -0
  1801. package/Source/Shaders/Model/AtmosphereStageFS.glsl +108 -0
  1802. package/Source/Shaders/Model/AtmosphereStageFS.js +110 -0
  1803. package/Source/Shaders/Model/AtmosphereStageVS.glsl +12 -0
  1804. package/Source/Shaders/Model/AtmosphereStageVS.js +14 -0
  1805. package/Source/Shaders/Model/CPUStylingStageFS.glsl +49 -0
  1806. package/Source/Shaders/Model/CPUStylingStageFS.js +51 -0
  1807. package/Source/Shaders/Model/CPUStylingStageVS.glsl +30 -0
  1808. package/Source/Shaders/Model/CPUStylingStageVS.js +32 -0
  1809. package/Source/Shaders/Model/CustomShaderStageFS.glsl +18 -0
  1810. package/Source/Shaders/Model/CustomShaderStageFS.js +20 -0
  1811. package/Source/Shaders/Model/CustomShaderStageVS.glsl +19 -0
  1812. package/Source/Shaders/Model/CustomShaderStageVS.js +21 -0
  1813. package/Source/Shaders/Model/EdgeDetectionStageFS.glsl +58 -0
  1814. package/Source/Shaders/Model/EdgeDetectionStageFS.js +60 -0
  1815. package/Source/Shaders/Model/EdgeVisibilityStageFS.glsl +83 -0
  1816. package/Source/Shaders/Model/EdgeVisibilityStageFS.js +85 -0
  1817. package/Source/Shaders/Model/FeatureIdStageFS.glsl +4 -0
  1818. package/Source/Shaders/Model/FeatureIdStageFS.js +6 -0
  1819. package/Source/Shaders/Model/FeatureIdStageVS.glsl +6 -0
  1820. package/Source/Shaders/Model/FeatureIdStageVS.js +8 -0
  1821. package/Source/Shaders/Model/GeometryStageFS.glsl +25 -0
  1822. package/Source/Shaders/Model/GeometryStageFS.js +27 -0
  1823. package/Source/Shaders/Model/GeometryStageVS.glsl +42 -0
  1824. package/Source/Shaders/Model/GeometryStageVS.js +44 -0
  1825. package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +101 -0
  1826. package/Source/Shaders/Model/ImageBasedLightingStageFS.js +103 -0
  1827. package/Source/Shaders/Model/InstancingStageCommon.glsl +67 -0
  1828. package/Source/Shaders/Model/InstancingStageCommon.js +69 -0
  1829. package/Source/Shaders/Model/InstancingStageVS.glsl +18 -0
  1830. package/Source/Shaders/Model/InstancingStageVS.js +20 -0
  1831. package/Source/Shaders/Model/LegacyInstancingStageVS.glsl +20 -0
  1832. package/Source/Shaders/Model/LegacyInstancingStageVS.js +22 -0
  1833. package/Source/Shaders/Model/LightingStageFS.glsl +120 -0
  1834. package/Source/Shaders/Model/LightingStageFS.js +122 -0
  1835. package/Source/Shaders/Model/MaterialStageFS.glsl +497 -0
  1836. package/Source/Shaders/Model/MaterialStageFS.js +499 -0
  1837. package/Source/Shaders/Model/MetadataStageFS.glsl +9 -0
  1838. package/Source/Shaders/Model/MetadataStageFS.js +11 -0
  1839. package/Source/Shaders/Model/MetadataStageVS.glsl +10 -0
  1840. package/Source/Shaders/Model/MetadataStageVS.js +12 -0
  1841. package/Source/Shaders/Model/ModelClippingPlanesStageFS.glsl +88 -0
  1842. package/Source/Shaders/Model/ModelClippingPlanesStageFS.js +90 -0
  1843. package/Source/Shaders/Model/ModelClippingPolygonsStageFS.glsl +6 -0
  1844. package/Source/Shaders/Model/ModelClippingPolygonsStageFS.js +8 -0
  1845. package/Source/Shaders/Model/ModelClippingPolygonsStageVS.glsl +27 -0
  1846. package/Source/Shaders/Model/ModelClippingPolygonsStageVS.js +29 -0
  1847. package/Source/Shaders/Model/ModelColorStageFS.glsl +7 -0
  1848. package/Source/Shaders/Model/ModelColorStageFS.js +9 -0
  1849. package/Source/Shaders/Model/ModelFS.glsl +133 -0
  1850. package/Source/Shaders/Model/ModelFS.js +135 -0
  1851. package/Source/Shaders/Model/ModelSilhouetteStageFS.glsl +5 -0
  1852. package/Source/Shaders/Model/ModelSilhouetteStageFS.js +6 -0
  1853. package/Source/Shaders/Model/ModelSilhouetteStageVS.glsl +10 -0
  1854. package/Source/Shaders/Model/ModelSilhouetteStageVS.js +12 -0
  1855. package/Source/Shaders/Model/ModelSplitterStageFS.glsl +9 -0
  1856. package/Source/Shaders/Model/ModelSplitterStageFS.js +11 -0
  1857. package/Source/Shaders/Model/ModelVS.glsl +161 -0
  1858. package/Source/Shaders/Model/ModelVS.js +163 -0
  1859. package/Source/Shaders/Model/MorphTargetsStageVS.glsl +15 -0
  1860. package/Source/Shaders/Model/MorphTargetsStageVS.js +16 -0
  1861. package/Source/Shaders/Model/PointCloudStylingStageVS.glsl +45 -0
  1862. package/Source/Shaders/Model/PointCloudStylingStageVS.js +47 -0
  1863. package/Source/Shaders/Model/PrimitiveOutlineStageFS.glsl +15 -0
  1864. package/Source/Shaders/Model/PrimitiveOutlineStageFS.js +17 -0
  1865. package/Source/Shaders/Model/PrimitiveOutlineStageVS.glsl +3 -0
  1866. package/Source/Shaders/Model/PrimitiveOutlineStageVS.js +5 -0
  1867. package/Source/Shaders/Model/SelectedFeatureIdStageCommon.glsl +51 -0
  1868. package/Source/Shaders/Model/SelectedFeatureIdStageCommon.js +53 -0
  1869. package/Source/Shaders/Model/SkinningStageVS.glsl +18 -0
  1870. package/Source/Shaders/Model/SkinningStageVS.js +19 -0
  1871. package/Source/Shaders/Model/VerticalExaggerationStageVS.glsl +39 -0
  1872. package/Source/Shaders/Model/VerticalExaggerationStageVS.js +41 -0
  1873. package/Source/Shaders/PointPrimitiveCollectionFS.glsl +47 -0
  1874. package/Source/Shaders/PointPrimitiveCollectionFS.js +49 -0
  1875. package/Source/Shaders/PointPrimitiveCollectionVS.glsl +185 -0
  1876. package/Source/Shaders/PointPrimitiveCollectionVS.js +187 -0
  1877. package/Source/Shaders/PolygonSignedDistanceFS.glsl +100 -0
  1878. package/Source/Shaders/PolygonSignedDistanceFS.js +101 -0
  1879. package/Source/Shaders/PolylineCommon.glsl +176 -0
  1880. package/Source/Shaders/PolylineCommon.js +178 -0
  1881. package/Source/Shaders/PolylineFS.glsl +25 -0
  1882. package/Source/Shaders/PolylineFS.js +27 -0
  1883. package/Source/Shaders/PolylineShadowVolumeFS.glsl +86 -0
  1884. package/Source/Shaders/PolylineShadowVolumeFS.js +88 -0
  1885. package/Source/Shaders/PolylineShadowVolumeMorphFS.glsl +45 -0
  1886. package/Source/Shaders/PolylineShadowVolumeMorphFS.js +47 -0
  1887. package/Source/Shaders/PolylineShadowVolumeMorphVS.glsl +177 -0
  1888. package/Source/Shaders/PolylineShadowVolumeMorphVS.js +179 -0
  1889. package/Source/Shaders/PolylineShadowVolumeVS.glsl +168 -0
  1890. package/Source/Shaders/PolylineShadowVolumeVS.js +170 -0
  1891. package/Source/Shaders/PolylineVS.glsl +103 -0
  1892. package/Source/Shaders/PolylineVS.js +105 -0
  1893. package/Source/Shaders/PostProcessStages/AcesTonemappingStage.glsl +25 -0
  1894. package/Source/Shaders/PostProcessStages/AcesTonemappingStage.js +27 -0
  1895. package/Source/Shaders/PostProcessStages/AdditiveBlend.glsl +17 -0
  1896. package/Source/Shaders/PostProcessStages/AdditiveBlend.js +19 -0
  1897. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +144 -0
  1898. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +146 -0
  1899. package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.glsl +11 -0
  1900. package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.js +13 -0
  1901. package/Source/Shaders/PostProcessStages/BlackAndWhite.glsl +19 -0
  1902. package/Source/Shaders/PostProcessStages/BlackAndWhite.js +21 -0
  1903. package/Source/Shaders/PostProcessStages/BloomComposite.glsl +20 -0
  1904. package/Source/Shaders/PostProcessStages/BloomComposite.js +22 -0
  1905. package/Source/Shaders/PostProcessStages/BrightPass.glsl +30 -0
  1906. package/Source/Shaders/PostProcessStages/BrightPass.js +32 -0
  1907. package/Source/Shaders/PostProcessStages/Brightness.glsl +11 -0
  1908. package/Source/Shaders/PostProcessStages/Brightness.js +13 -0
  1909. package/Source/Shaders/PostProcessStages/CompositeTranslucentClassification.glsl +31 -0
  1910. package/Source/Shaders/PostProcessStages/CompositeTranslucentClassification.js +33 -0
  1911. package/Source/Shaders/PostProcessStages/ContrastBias.glsl +17 -0
  1912. package/Source/Shaders/PostProcessStages/ContrastBias.js +19 -0
  1913. package/Source/Shaders/PostProcessStages/DepthOfField.glsl +39 -0
  1914. package/Source/Shaders/PostProcessStages/DepthOfField.js +41 -0
  1915. package/Source/Shaders/PostProcessStages/DepthView.glsl +9 -0
  1916. package/Source/Shaders/PostProcessStages/DepthView.js +11 -0
  1917. package/Source/Shaders/PostProcessStages/DepthViewPacked.glsl +14 -0
  1918. package/Source/Shaders/PostProcessStages/DepthViewPacked.js +16 -0
  1919. package/Source/Shaders/PostProcessStages/EdgeDetection.glsl +60 -0
  1920. package/Source/Shaders/PostProcessStages/EdgeDetection.js +62 -0
  1921. package/Source/Shaders/PostProcessStages/FXAA.glsl +21 -0
  1922. package/Source/Shaders/PostProcessStages/FXAA.js +23 -0
  1923. package/Source/Shaders/PostProcessStages/FilmicTonemapping.glsl +40 -0
  1924. package/Source/Shaders/PostProcessStages/FilmicTonemapping.js +42 -0
  1925. package/Source/Shaders/PostProcessStages/GaussianBlur1D.glsl +47 -0
  1926. package/Source/Shaders/PostProcessStages/GaussianBlur1D.js +49 -0
  1927. package/Source/Shaders/PostProcessStages/LensFlare.glsl +153 -0
  1928. package/Source/Shaders/PostProcessStages/LensFlare.js +155 -0
  1929. package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.glsl +28 -0
  1930. package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.js +30 -0
  1931. package/Source/Shaders/PostProcessStages/NightVision.glsl +16 -0
  1932. package/Source/Shaders/PostProcessStages/NightVision.js +18 -0
  1933. package/Source/Shaders/PostProcessStages/PassThrough.glsl +8 -0
  1934. package/Source/Shaders/PostProcessStages/PassThrough.js +10 -0
  1935. package/Source/Shaders/PostProcessStages/PassThroughDepth.glsl +8 -0
  1936. package/Source/Shaders/PostProcessStages/PassThroughDepth.js +10 -0
  1937. package/Source/Shaders/PostProcessStages/PbrNeutralTonemapping.glsl +25 -0
  1938. package/Source/Shaders/PostProcessStages/PbrNeutralTonemapping.js +27 -0
  1939. package/Source/Shaders/PostProcessStages/PointCloudEyeDomeLighting.glsl +61 -0
  1940. package/Source/Shaders/PostProcessStages/PointCloudEyeDomeLighting.js +63 -0
  1941. package/Source/Shaders/PostProcessStages/ReinhardTonemapping.glsl +27 -0
  1942. package/Source/Shaders/PostProcessStages/ReinhardTonemapping.js +29 -0
  1943. package/Source/Shaders/PostProcessStages/Silhouette.glsl +11 -0
  1944. package/Source/Shaders/PostProcessStages/Silhouette.js +13 -0
  1945. package/Source/Shaders/PrimitiveGaussianSplatFS.glsl +18 -0
  1946. package/Source/Shaders/PrimitiveGaussianSplatFS.js +20 -0
  1947. package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +189 -0
  1948. package/Source/Shaders/PrimitiveGaussianSplatVS.js +190 -0
  1949. package/Source/Shaders/ReprojectWebMercatorFS.glsl +8 -0
  1950. package/Source/Shaders/ReprojectWebMercatorFS.js +10 -0
  1951. package/Source/Shaders/ReprojectWebMercatorVS.glsl +12 -0
  1952. package/Source/Shaders/ReprojectWebMercatorVS.js +14 -0
  1953. package/Source/Shaders/ShadowVolumeAppearanceFS.glsl +153 -0
  1954. package/Source/Shaders/ShadowVolumeAppearanceFS.js +155 -0
  1955. package/Source/Shaders/ShadowVolumeAppearanceVS.glsl +101 -0
  1956. package/Source/Shaders/ShadowVolumeAppearanceVS.js +103 -0
  1957. package/Source/Shaders/ShadowVolumeFS.glsl +13 -0
  1958. package/Source/Shaders/ShadowVolumeFS.js +15 -0
  1959. package/Source/Shaders/SkyAtmosphereCommon.glsl +81 -0
  1960. package/Source/Shaders/SkyAtmosphereCommon.js +83 -0
  1961. package/Source/Shaders/SkyAtmosphereFS.glsl +59 -0
  1962. package/Source/Shaders/SkyAtmosphereFS.js +61 -0
  1963. package/Source/Shaders/SkyAtmosphereVS.glsl +32 -0
  1964. package/Source/Shaders/SkyAtmosphereVS.js +34 -0
  1965. package/Source/Shaders/SkyBoxFS.glsl +9 -0
  1966. package/Source/Shaders/SkyBoxFS.js +11 -0
  1967. package/Source/Shaders/SkyBoxVS.glsl +9 -0
  1968. package/Source/Shaders/SkyBoxVS.js +11 -0
  1969. package/Source/Shaders/SunFS.glsl +9 -0
  1970. package/Source/Shaders/SunFS.js +11 -0
  1971. package/Source/Shaders/SunTextureFS.glsl +55 -0
  1972. package/Source/Shaders/SunTextureFS.js +57 -0
  1973. package/Source/Shaders/SunVS.glsl +28 -0
  1974. package/Source/Shaders/SunVS.js +30 -0
  1975. package/Source/Shaders/Vector3DTileClampedPolylinesFS.glsl +48 -0
  1976. package/Source/Shaders/Vector3DTileClampedPolylinesFS.js +50 -0
  1977. package/Source/Shaders/Vector3DTileClampedPolylinesVS.glsl +85 -0
  1978. package/Source/Shaders/Vector3DTileClampedPolylinesVS.js +87 -0
  1979. package/Source/Shaders/Vector3DTilePolylinesVS.glsl +22 -0
  1980. package/Source/Shaders/Vector3DTilePolylinesVS.js +24 -0
  1981. package/Source/Shaders/VectorTileVS.glsl +9 -0
  1982. package/Source/Shaders/VectorTileVS.js +11 -0
  1983. package/Source/Shaders/ViewportQuadFS.glsl +16 -0
  1984. package/Source/Shaders/ViewportQuadFS.js +18 -0
  1985. package/Source/Shaders/ViewportQuadVS.glsl +10 -0
  1986. package/Source/Shaders/ViewportQuadVS.js +12 -0
  1987. package/Source/Shaders/Voxels/IntersectBox.glsl +34 -0
  1988. package/Source/Shaders/Voxels/IntersectBox.js +36 -0
  1989. package/Source/Shaders/Voxels/IntersectCylinder.glsl +142 -0
  1990. package/Source/Shaders/Voxels/IntersectCylinder.js +144 -0
  1991. package/Source/Shaders/Voxels/IntersectDepth.glsl +27 -0
  1992. package/Source/Shaders/Voxels/IntersectDepth.js +29 -0
  1993. package/Source/Shaders/Voxels/IntersectEllipsoid.glsl +330 -0
  1994. package/Source/Shaders/Voxels/IntersectEllipsoid.js +332 -0
  1995. package/Source/Shaders/Voxels/IntersectLongitude.glsl +114 -0
  1996. package/Source/Shaders/Voxels/IntersectLongitude.js +116 -0
  1997. package/Source/Shaders/Voxels/IntersectPlane.glsl +80 -0
  1998. package/Source/Shaders/Voxels/IntersectPlane.js +82 -0
  1999. package/Source/Shaders/Voxels/Intersection.glsl +50 -0
  2000. package/Source/Shaders/Voxels/Intersection.js +52 -0
  2001. package/Source/Shaders/Voxels/IntersectionUtils.glsl +167 -0
  2002. package/Source/Shaders/Voxels/IntersectionUtils.js +169 -0
  2003. package/Source/Shaders/Voxels/Megatexture.glsl +123 -0
  2004. package/Source/Shaders/Voxels/Megatexture.js +125 -0
  2005. package/Source/Shaders/Voxels/Octree.glsl +257 -0
  2006. package/Source/Shaders/Voxels/Octree.js +259 -0
  2007. package/Source/Shaders/Voxels/VoxelFS.glsl +267 -0
  2008. package/Source/Shaders/Voxels/VoxelFS.js +269 -0
  2009. package/Source/Shaders/Voxels/VoxelUtils.glsl +12 -0
  2010. package/Source/Shaders/Voxels/VoxelUtils.js +14 -0
  2011. package/Source/Shaders/Voxels/VoxelVS.glsl +11 -0
  2012. package/Source/Shaders/Voxels/VoxelVS.js +13 -0
  2013. package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +30 -0
  2014. package/Source/Shaders/Voxels/convertLocalToBoxUv.js +32 -0
  2015. package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +97 -0
  2016. package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +99 -0
  2017. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +193 -0
  2018. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +195 -0
  2019. package/Source/ThirdParty/Workers/basis_transcoder.js +21 -0
  2020. package/Source/ThirdParty/Workers/package.json +1 -0
  2021. package/Source/ThirdParty/Workers/zip-web-worker.js +1 -0
  2022. package/Source/ThirdParty/basis_transcoder.wasm +0 -0
  2023. package/Source/ThirdParty/draco_decoder.wasm +0 -0
  2024. package/Source/ThirdParty/google-earth-dbroot-parser.js +8337 -0
  2025. package/Source/ThirdParty/wasm_splats_bg.wasm +0 -0
  2026. package/Source/ThirdParty/zip-module.wasm +0 -0
  2027. package/Source/Widget/CesiumWidget.css +119 -0
  2028. package/Source/Widget/CesiumWidget.js +1606 -0
  2029. package/Source/Widget/lighter.css +14 -0
  2030. package/Source/Workers/combineGeometry.js +13 -0
  2031. package/Source/Workers/createBoxGeometry.js +10 -0
  2032. package/Source/Workers/createBoxOutlineGeometry.js +10 -0
  2033. package/Source/Workers/createCircleGeometry.js +18 -0
  2034. package/Source/Workers/createCircleOutlineGeometry.js +18 -0
  2035. package/Source/Workers/createCoplanarPolygonGeometry.js +10 -0
  2036. package/Source/Workers/createCoplanarPolygonOutlineGeometry.js +15 -0
  2037. package/Source/Workers/createCorridorGeometry.js +12 -0
  2038. package/Source/Workers/createCorridorOutlineGeometry.js +17 -0
  2039. package/Source/Workers/createCylinderGeometry.js +10 -0
  2040. package/Source/Workers/createCylinderOutlineGeometry.js +10 -0
  2041. package/Source/Workers/createEllipseGeometry.js +14 -0
  2042. package/Source/Workers/createEllipseOutlineGeometry.js +14 -0
  2043. package/Source/Workers/createEllipsoidGeometry.js +10 -0
  2044. package/Source/Workers/createEllipsoidOutlineGeometry.js +13 -0
  2045. package/Source/Workers/createFrustumGeometry.js +10 -0
  2046. package/Source/Workers/createFrustumOutlineGeometry.js +10 -0
  2047. package/Source/Workers/createGeometry.js +78 -0
  2048. package/Source/Workers/createGroundPolylineGeometry.js +16 -0
  2049. package/Source/Workers/createPlaneGeometry.js +10 -0
  2050. package/Source/Workers/createPlaneOutlineGeometry.js +10 -0
  2051. package/Source/Workers/createPolygonGeometry.js +12 -0
  2052. package/Source/Workers/createPolygonOutlineGeometry.js +12 -0
  2053. package/Source/Workers/createPolylineGeometry.js +12 -0
  2054. package/Source/Workers/createPolylineVolumeGeometry.js +17 -0
  2055. package/Source/Workers/createPolylineVolumeOutlineGeometry.js +22 -0
  2056. package/Source/Workers/createRectangleGeometry.js +14 -0
  2057. package/Source/Workers/createRectangleOutlineGeometry.js +17 -0
  2058. package/Source/Workers/createSimplePolylineGeometry.js +17 -0
  2059. package/Source/Workers/createSphereGeometry.js +10 -0
  2060. package/Source/Workers/createSphereOutlineGeometry.js +10 -0
  2061. package/Source/Workers/createTaskProcessorWorker.js +113 -0
  2062. package/Source/Workers/createVectorTileClampedPolylines.js +541 -0
  2063. package/Source/Workers/createVectorTileGeometries.js +414 -0
  2064. package/Source/Workers/createVectorTilePoints.js +81 -0
  2065. package/Source/Workers/createVectorTilePolygons.js +412 -0
  2066. package/Source/Workers/createVectorTilePolylines.js +210 -0
  2067. package/Source/Workers/createVerticesFromCesium3DTilesTerrain.js +46 -0
  2068. package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +651 -0
  2069. package/Source/Workers/createVerticesFromHeightmap.js +53 -0
  2070. package/Source/Workers/createVerticesFromQuantizedTerrainMesh.js +549 -0
  2071. package/Source/Workers/createWallGeometry.js +12 -0
  2072. package/Source/Workers/createWallOutlineGeometry.js +12 -0
  2073. package/Source/Workers/decodeDraco.js +383 -0
  2074. package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +268 -0
  2075. package/Source/Workers/decodeI3S.js +1652 -0
  2076. package/Source/Workers/gaussianSplatSorter.js +34 -0
  2077. package/Source/Workers/gaussianSplatTextureGenerator.js +39 -0
  2078. package/Source/Workers/incrementallyBuildTerrainPicker.js +108 -0
  2079. package/Source/Workers/transcodeKTX2.js +308 -0
  2080. package/Source/Workers/transferTypedArrayTest.js +16 -0
  2081. package/Source/Workers/upsampleQuantizedTerrainMesh.js +681 -0
  2082. package/Source/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +55 -0
  2083. package/index.d.ts +46026 -0
  2084. package/index.js +1227 -0
  2085. package/package.json +79 -0
@@ -0,0 +1,2989 @@
1
+ import ArticulationStageType from "../Core/ArticulationStageType.js";
2
+ import Cartesian2 from "../Core/Cartesian2.js";
3
+ import Cartesian3 from "../Core/Cartesian3.js";
4
+ import Cartesian4 from "../Core/Cartesian4.js";
5
+ import Check from "../Core/Check.js";
6
+ import ComponentDatatype from "../Core/ComponentDatatype.js";
7
+ import Credit from "../Core/Credit.js";
8
+ import Frozen from "../Core/Frozen.js";
9
+ import defined from "../Core/defined.js";
10
+ import FeatureDetection from "../Core/FeatureDetection.js";
11
+ import InterpolationType from "../Core/InterpolationType.js";
12
+ import Matrix4 from "../Core/Matrix4.js";
13
+ import PrimitiveType from "../Core/PrimitiveType.js";
14
+ import Quaternion from "../Core/Quaternion.js";
15
+ import RuntimeError from "../Core/RuntimeError.js";
16
+ import Sampler from "../Renderer/Sampler.js";
17
+ import getAccessorByteStride from "./GltfPipeline/getAccessorByteStride.js";
18
+ import getComponentReader from "./GltfPipeline/getComponentReader.js";
19
+ import numberOfComponentsForType from "./GltfPipeline/numberOfComponentsForType.js";
20
+ import GltfStructuralMetadataLoader from "./GltfStructuralMetadataLoader.js";
21
+ import AttributeType from "./AttributeType.js";
22
+ import Axis from "./Axis.js";
23
+ import GltfLoaderUtil from "./GltfLoaderUtil.js";
24
+ import hasExtension from "./hasExtension.js";
25
+ import InstanceAttributeSemantic from "./InstanceAttributeSemantic.js";
26
+ import ModelComponents from "./ModelComponents.js";
27
+ import PrimitiveLoadPlan from "./PrimitiveLoadPlan.js";
28
+ import ResourceCache from "./ResourceCache.js";
29
+ import ResourceLoader from "./ResourceLoader.js";
30
+ import SupportedImageFormats from "./SupportedImageFormats.js";
31
+ import VertexAttributeSemantic from "./VertexAttributeSemantic.js";
32
+ import GltfGpmLoader from "./Model/Extensions/Gpm/GltfGpmLoader.js";
33
+ import GltfMeshPrimitiveGpmLoader from "./Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js";
34
+ import oneTimeWarning from "../Core/oneTimeWarning.js";
35
+ import addAllToArray from "../Core/addAllToArray.js";
36
+ import getMeshPrimitives from "./getMeshPrimitives.js";
37
+
38
+ const {
39
+ Attribute,
40
+ Indices,
41
+ FeatureIdAttribute,
42
+ FeatureIdTexture,
43
+ FeatureIdImplicitRange,
44
+ MorphTarget,
45
+ Primitive,
46
+ Instances,
47
+ Skin,
48
+ Node,
49
+ AnimatedPropertyType,
50
+ AnimationSampler,
51
+ AnimationTarget,
52
+ AnimationChannel,
53
+ Animation,
54
+ ArticulationStage,
55
+ Articulation,
56
+ Asset,
57
+ Scene,
58
+ Components,
59
+ MetallicRoughness,
60
+ SpecularGlossiness,
61
+ Specular,
62
+ Anisotropy,
63
+ Clearcoat,
64
+ Material,
65
+ } = ModelComponents;
66
+
67
+ /**
68
+ * States of the glTF loading process. These states also apply to
69
+ * asynchronous texture loading unless otherwise noted
70
+ *
71
+ * @enum {number}
72
+ *
73
+ * @private
74
+ */
75
+ const GltfLoaderState = {
76
+ /**
77
+ * The initial state of the glTF loader before load() is called.
78
+ *
79
+ * @type {number}
80
+ * @constant
81
+ *
82
+ * @private
83
+ */
84
+ NOT_LOADED: 0,
85
+ /**
86
+ * The state of the loader while waiting for the glTF JSON loader promise
87
+ * to resolve.
88
+ *
89
+ * @type {number}
90
+ * @constant
91
+ *
92
+ * @private
93
+ */
94
+ LOADING: 1,
95
+ /**
96
+ * The state of the loader once the glTF JSON is loaded but before
97
+ * process() is called.
98
+ *
99
+ * @type {number}
100
+ * @constant
101
+ *
102
+ * @private
103
+ */
104
+ LOADED: 2,
105
+ /**
106
+ * The state of the loader while parsing the glTF and creating GPU resources
107
+ * as needed.
108
+ *
109
+ * @type {number}
110
+ * @constant
111
+ *
112
+ * @private
113
+ */
114
+ PROCESSING: 3,
115
+ /**
116
+ * For some features like handling CESIUM_primitive_outlines, the geometry
117
+ * must be modified after it is loaded. The post-processing state handles
118
+ * any geometry modification (if needed).
119
+ * <p>
120
+ * This state is not used for asynchronous texture loading.
121
+ * </p>
122
+ *
123
+ * @type {number}
124
+ * @constant
125
+ *
126
+ * @private
127
+ */
128
+ POST_PROCESSING: 4,
129
+ /**
130
+ * Once the processing/post-processing states are finished, the loader
131
+ * enters the processed state (sometimes from a promise chain). The next
132
+ * call to process() will advance to the ready state.
133
+ *
134
+ * @type {number}
135
+ * @constant
136
+ *
137
+ * @private
138
+ */
139
+ PROCESSED: 5,
140
+ /**
141
+ * When the loader reaches the ready state, the loaders' promise will be
142
+ * resolved.
143
+ *
144
+ * @type {number}
145
+ * @constant
146
+ *
147
+ * @private
148
+ */
149
+ READY: 6,
150
+ /**
151
+ * If an error occurs at any point, the loader switches to the failed state.
152
+ *
153
+ * @type {number}
154
+ * @constant
155
+ *
156
+ * @private
157
+ */
158
+ FAILED: 7,
159
+ /**
160
+ * If unload() is called, the loader switches to the unloaded state.
161
+ *
162
+ * @type {number}
163
+ * @constant
164
+ *
165
+ * @private
166
+ */
167
+ UNLOADED: 8,
168
+ };
169
+
170
+ /**
171
+ * Loads a glTF model.
172
+ * <p>
173
+ * Implements the {@link ResourceLoader} interface.
174
+ * </p>
175
+ *
176
+ * @alias GltfLoader
177
+ * @constructor
178
+ * @augments ResourceLoader
179
+ *
180
+ * @param {object} options Object with the following properties:
181
+ * @param {Resource} options.gltfResource The {@link Resource} containing the glTF. This is often the path of the .gltf or .glb file, but may also be the path of the .b3dm, .i3dm, or .cmpt file containing the embedded glb. .cmpt resources should have a URI fragment indicating the index of the inner content to which the glb belongs in order to individually identify the glb in the cache, e.g. http://example.com/tile.cmpt#index=2.
182
+ * @param {Resource} [options.baseResource] The {@link Resource} that paths in the glTF JSON are relative to.
183
+ * @param {Uint8Array} [options.typedArray] The typed array containing the glTF contents, e.g. from a .b3dm, .i3dm, or .cmpt file.
184
+ * @param {object} [options.gltfJson] A parsed glTF JSON file instead of passing it in as a typed array.
185
+ * @param {boolean} [options.releaseGltfJson=false] When true, the glTF JSON is released once the glTF is loaded. This is especially useful for cases like 3D Tiles, where each .gltf model is unique and caching the glTF JSON is not effective.
186
+ * @param {boolean} [options.asynchronous=true] Determines if WebGL resource creation will be spread out over several frames or block until all WebGL resources are created.
187
+ * @param {boolean} [options.incrementallyLoadTextures=true] Determine if textures may continue to stream in after the glTF is loaded.
188
+ * @param {Axis} [options.upAxis=Axis.Y] The up-axis of the glTF model.
189
+ * @param {Axis} [options.forwardAxis=Axis.Z] The forward-axis of the glTF model.
190
+ * @param {boolean} [options.loadAttributesAsTypedArray=false] Load all attributes and indices as typed arrays instead of GPU buffers. If the attributes are interleaved in the glTF they will be de-interleaved in the typed array.
191
+ * @param {boolean} [options.loadAttributesFor2D=false] If <code>true</code>, load the positions buffer and any instanced attribute buffers as typed arrays for accurately projecting models to 2D.
192
+ * @param {boolean} [options.enablePick=false] If <code>true</code>, load the positions buffer, any instanced attribute buffers, and index buffer as typed arrays for CPU-enabled picking in WebGL1.
193
+ * @param {boolean} [options.loadIndicesForWireframe=false] If <code>true</code>, load the index buffer as both a buffer and typed array. The latter is useful for creating wireframe indices in WebGL1.
194
+ * @param {boolean} [options.loadPrimitiveOutline=true] If <code>true</code>, load outlines from the {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension. This can be set false to avoid post-processing geometry at load time.
195
+ * @param {boolean} [options.loadForClassification=false] If <code>true</code> and if the model has feature IDs, load the feature IDs and indices as typed arrays. This is useful for batching features for classification.
196
+ * @param {boolean} [options.renameBatchIdSemantic=false] If <code>true</code>, rename _BATCHID or BATCHID to _FEATURE_ID_0. This is used for .b3dm models
197
+ * @private
198
+ */
199
+ function GltfLoader(options) {
200
+ options = options ?? Frozen.EMPTY_OBJECT;
201
+ const {
202
+ gltfResource,
203
+ typedArray,
204
+ releaseGltfJson = false,
205
+ asynchronous = true,
206
+ incrementallyLoadTextures = true,
207
+ upAxis = Axis.Y,
208
+ forwardAxis = Axis.Z,
209
+ loadAttributesAsTypedArray = false,
210
+ loadAttributesFor2D = false,
211
+ enablePick = false,
212
+ loadIndicesForWireframe = false,
213
+ loadPrimitiveOutline = true,
214
+ loadForClassification = false,
215
+ renameBatchIdSemantic = false,
216
+ } = options;
217
+
218
+ //>>includeStart('debug', pragmas.debug);
219
+ Check.typeOf.object("options.gltfResource", gltfResource);
220
+ //>>includeEnd('debug');
221
+
222
+ const { baseResource = gltfResource.clone() } = options;
223
+
224
+ this._gltfJson = options.gltfJson;
225
+ this._gltfResource = gltfResource;
226
+ this._baseResource = baseResource;
227
+ this._typedArray = typedArray;
228
+ this._releaseGltfJson = releaseGltfJson;
229
+ this._asynchronous = asynchronous;
230
+ this._incrementallyLoadTextures = incrementallyLoadTextures;
231
+ this._upAxis = upAxis;
232
+ this._forwardAxis = forwardAxis;
233
+ this._loadAttributesAsTypedArray = loadAttributesAsTypedArray;
234
+ this._loadAttributesFor2D = loadAttributesFor2D;
235
+ this._enablePick = enablePick;
236
+ this._loadIndicesForWireframe = loadIndicesForWireframe;
237
+ this._loadPrimitiveOutline = loadPrimitiveOutline;
238
+ this._loadForClassification = loadForClassification;
239
+ this._renameBatchIdSemantic = renameBatchIdSemantic;
240
+
241
+ // When loading EXT_feature_metadata, the feature tables and textures
242
+ // are now stored as arrays like the newer EXT_structural_metadata extension.
243
+ // This requires sorting the dictionary keys for a consistent ordering.
244
+ this._sortedPropertyTableIds = undefined;
245
+ this._sortedFeatureTextureIds = undefined;
246
+
247
+ this._gltfJsonLoader = undefined;
248
+ this._state = GltfLoaderState.NOT_LOADED;
249
+ this._textureState = GltfLoaderState.NOT_LOADED;
250
+ this._promise = undefined;
251
+ this._processError = undefined;
252
+ this._textureErrors = [];
253
+
254
+ // Information about whether to load primitives as typed arrays or buffers,
255
+ // and whether post-processing is needed after loading (e.g. for
256
+ // generating outlines)
257
+ this._primitiveLoadPlans = [];
258
+
259
+ // Loaders that need to be processed before the glTF becomes ready
260
+ this._loaderPromises = [];
261
+ this._textureLoaders = [];
262
+ this._texturesPromises = [];
263
+ this._textureCallbacks = [];
264
+ this._bufferViewLoaders = [];
265
+ this._geometryLoaders = [];
266
+ this._geometryCallbacks = [];
267
+ this._structuralMetadataLoader = undefined;
268
+ this._meshPrimitiveGpmLoader = undefined;
269
+ this._loadResourcesPromise = undefined;
270
+ this._resourcesLoaded = false;
271
+ this._texturesLoaded = false;
272
+
273
+ this._supportedImageFormats = undefined;
274
+
275
+ // In some cases where geometry post-processing is needed (like generating
276
+ // outlines) new attributes are added that may have GPU resources attached.
277
+ // The GltfLoader will own the resources and store them here.
278
+ this._postProcessBuffers = [];
279
+
280
+ // Loaded results
281
+ this._components = undefined;
282
+ }
283
+
284
+ if (defined(Object.create)) {
285
+ GltfLoader.prototype = Object.create(ResourceLoader.prototype);
286
+ GltfLoader.prototype.constructor = GltfLoader;
287
+ }
288
+
289
+ Object.defineProperties(GltfLoader.prototype, {
290
+ /**
291
+ * The cache key of the resource.
292
+ *
293
+ * @memberof GltfLoader.prototype
294
+ *
295
+ * @type {string}
296
+ * @readonly
297
+ * @private
298
+ */
299
+ cacheKey: {
300
+ get: function () {
301
+ return undefined;
302
+ },
303
+ },
304
+ /**
305
+ * The loaded components.
306
+ *
307
+ * @memberof GltfLoader.prototype
308
+ *
309
+ * @type {ModelComponents.Components}
310
+ * @readonly
311
+ * @private
312
+ */
313
+ components: {
314
+ get: function () {
315
+ return this._components;
316
+ },
317
+ },
318
+ /**
319
+ * The loaded glTF json.
320
+ *
321
+ * @memberof GltfLoader.prototype
322
+ *
323
+ * @type {object}
324
+ * @readonly
325
+ * @private
326
+ */
327
+ gltfJson: {
328
+ get: function () {
329
+ if (defined(this._gltfJsonLoader)) {
330
+ return this._gltfJsonLoader.gltf;
331
+ }
332
+ return this._gltfJson;
333
+ },
334
+ },
335
+ /**
336
+ * Returns true if textures are loaded separately from the other glTF resources.
337
+ *
338
+ * @memberof GltfLoader.prototype
339
+ *
340
+ * @type {boolean}
341
+ * @readonly
342
+ * @private
343
+ */
344
+ incrementallyLoadTextures: {
345
+ get: function () {
346
+ return this._incrementallyLoadTextures;
347
+ },
348
+ },
349
+ /**
350
+ * true if textures are loaded, useful when incrementallyLoadTextures is true
351
+ *
352
+ * @memberof GltfLoader.prototype
353
+ *
354
+ * @type {boolean}
355
+ * @readonly
356
+ * @private
357
+ */
358
+ texturesLoaded: {
359
+ get: function () {
360
+ return this._texturesLoaded;
361
+ },
362
+ },
363
+ });
364
+
365
+ /**
366
+ * Loads the gltf object
367
+ */
368
+ async function loadGltfJson(loader) {
369
+ loader._state = GltfLoaderState.LOADING;
370
+ loader._textureState = GltfLoaderState.LOADING;
371
+
372
+ try {
373
+ const gltfJsonLoader = ResourceCache.getGltfJsonLoader({
374
+ gltfResource: loader._gltfResource,
375
+ baseResource: loader._baseResource,
376
+ typedArray: loader._typedArray,
377
+ gltfJson: loader._gltfJson,
378
+ });
379
+ loader._gltfJsonLoader = gltfJsonLoader;
380
+ await gltfJsonLoader.load();
381
+
382
+ if (
383
+ loader.isDestroyed() ||
384
+ loader.isUnloaded() ||
385
+ gltfJsonLoader.isDestroyed()
386
+ ) {
387
+ return;
388
+ }
389
+
390
+ loader._state = GltfLoaderState.LOADED;
391
+ loader._textureState = GltfLoaderState.LOADED;
392
+
393
+ return loader;
394
+ } catch (error) {
395
+ if (loader.isDestroyed()) {
396
+ return;
397
+ }
398
+
399
+ loader._state = GltfLoaderState.FAILED;
400
+ loader._textureState = GltfLoaderState.FAILED;
401
+ handleError(loader, error);
402
+ }
403
+ }
404
+
405
+ async function loadResources(loader, frameState) {
406
+ if (!FeatureDetection.supportsWebP.initialized) {
407
+ await FeatureDetection.supportsWebP.initialize();
408
+ }
409
+
410
+ loader._supportedImageFormats = new SupportedImageFormats({
411
+ webp: FeatureDetection.supportsWebP(),
412
+ basis: frameState.context.supportsBasis,
413
+ });
414
+
415
+ // Loaders that create GPU resources need to be processed every frame until they become
416
+ // ready since the JobScheduler is not able to execute all jobs in a single
417
+ // frame. Any promise failures are collected, and will be handled synchronously in process().
418
+ // Also note that it's fine to call process before a loader is ready to process or
419
+ // after it has failed; nothing will happen.
420
+ const promise = parse(loader, frameState);
421
+
422
+ // All resource loaders have been created, so we can begin processing
423
+ loader._state = GltfLoaderState.PROCESSING;
424
+ loader._textureState = GltfLoaderState.PROCESSING;
425
+
426
+ if (defined(loader._gltfJsonLoader) && loader._releaseGltfJson) {
427
+ // Check that the glTF JSON loader is still defined before trying to unload it.
428
+ // It can be unloaded if the glTF loader is destroyed.
429
+ ResourceCache.unload(loader._gltfJsonLoader);
430
+ loader._gltfJsonLoader = undefined;
431
+ }
432
+
433
+ return promise;
434
+ }
435
+
436
+ /**
437
+ * Loads the resource.
438
+ * @returns {Promise.<GltfLoader>} A promise which resolves to the loader when the resource loading is completed.
439
+ * @exception {RuntimeError} Unsupported glTF version
440
+ * @exception {RuntimeError} Unsupported glTF Extension
441
+ * @private
442
+ */
443
+ GltfLoader.prototype.load = async function () {
444
+ if (defined(this._promise)) {
445
+ return this._promise;
446
+ }
447
+
448
+ this._promise = loadGltfJson(this);
449
+ return this._promise;
450
+ };
451
+
452
+ function handleError(gltfLoader, error) {
453
+ gltfLoader.unload();
454
+ const errorMessage = "Failed to load glTF";
455
+ throw gltfLoader.getError(errorMessage, error);
456
+ }
457
+
458
+ function processLoaders(loader, frameState) {
459
+ let ready = true;
460
+ const geometryLoaders = loader._geometryLoaders;
461
+ for (let i = 0; i < geometryLoaders.length; ++i) {
462
+ const geometryReady = geometryLoaders[i].process(frameState);
463
+ if (geometryReady && defined(loader._geometryCallbacks[i])) {
464
+ loader._geometryCallbacks[i]();
465
+ loader._geometryCallbacks[i] = undefined;
466
+ }
467
+ ready = ready && geometryReady;
468
+ }
469
+
470
+ const structuralMetadataLoader = loader._structuralMetadataLoader;
471
+ if (defined(structuralMetadataLoader)) {
472
+ const metadataReady = structuralMetadataLoader.process(frameState);
473
+ if (metadataReady) {
474
+ loader._components.structuralMetadata =
475
+ structuralMetadataLoader.structuralMetadata;
476
+ }
477
+ ready = ready && metadataReady;
478
+ }
479
+
480
+ const meshPrimitiveGpmLoader = loader._meshPrimitiveGpmLoader;
481
+ if (defined(meshPrimitiveGpmLoader)) {
482
+ const metadataReady = meshPrimitiveGpmLoader.process(frameState);
483
+ if (metadataReady) {
484
+ if (defined(loader._components.structuralMetadata)) {
485
+ oneTimeWarning(
486
+ "structural-metadata-gpm",
487
+ "The model defines both the 'EXT_structural_metadata' extension and the " +
488
+ "'NGA_gpm_local' extension. The data from the 'EXT_structural_metadata' " +
489
+ "extension will be replaced with the data from the 'NGA_gpm_local' extension, " +
490
+ "and will no longer be available for styling and picking.",
491
+ );
492
+ }
493
+ loader._components.structuralMetadata =
494
+ meshPrimitiveGpmLoader.structuralMetadata;
495
+ }
496
+ ready = ready && metadataReady;
497
+ }
498
+
499
+ if (ready) {
500
+ // Geometry requires further processing
501
+ loader._state = GltfLoaderState.POST_PROCESSING;
502
+ }
503
+ }
504
+
505
+ function postProcessGeometry(loader, context) {
506
+ // Apply post-processing steps on geometry such as
507
+ // updating attributes for rendering outlines.
508
+ const loadPlans = loader._primitiveLoadPlans;
509
+ for (let i = 0; i < loadPlans.length; i++) {
510
+ const loadPlan = loadPlans[i];
511
+ loadPlan.postProcess(context);
512
+ if (loadPlan.needsOutlines || loadPlan.needsGaussianSplats) {
513
+ // The glTF loader takes ownership of any buffers generated in the
514
+ // post-process stage since they were created after the geometry loaders
515
+ // finished. This way they can be destroyed when the loader is destroyed.
516
+ gatherPostProcessBuffers(loader, loadPlan);
517
+ }
518
+ }
519
+ }
520
+
521
+ function gatherPostProcessBuffers(loader, primitiveLoadPlan) {
522
+ const buffers = loader._postProcessBuffers;
523
+ const primitive = primitiveLoadPlan.primitive;
524
+
525
+ const outlineCoordinates = primitive.outlineCoordinates;
526
+ if (defined(outlineCoordinates)) {
527
+ // outline coordinates are always loaded as a buffer.
528
+ buffers.push(outlineCoordinates.buffer);
529
+ }
530
+
531
+ // to do post-processing, all the attributes are loaded as typed arrays
532
+ // so if a buffer exists, it was newly generated
533
+ const attributes = primitive.attributes;
534
+ for (let i = 0; i < attributes.length; i++) {
535
+ const attribute = attributes[i];
536
+ if (defined(attribute.buffer)) {
537
+ buffers.push(attribute.buffer);
538
+ }
539
+ }
540
+
541
+ // Similarly for the indices.
542
+ const indices = primitive.indices;
543
+ if (defined(indices) && defined(indices.buffer)) {
544
+ buffers.push(indices.buffer);
545
+ }
546
+ }
547
+
548
+ /**
549
+ * Process loaders other than textures
550
+ * @private
551
+ */
552
+ GltfLoader.prototype._process = function (frameState) {
553
+ if (this._state === GltfLoaderState.READY) {
554
+ return true;
555
+ }
556
+
557
+ if (this._state === GltfLoaderState.PROCESSING) {
558
+ processLoaders(this, frameState);
559
+ }
560
+
561
+ if (
562
+ this._resourcesLoaded &&
563
+ this._state === GltfLoaderState.POST_PROCESSING
564
+ ) {
565
+ postProcessGeometry(this, frameState.context);
566
+ this._state = GltfLoaderState.PROCESSED;
567
+ }
568
+
569
+ if (this._resourcesLoaded && this._state === GltfLoaderState.PROCESSED) {
570
+ // The buffer views can be unloaded once the data is copied.
571
+ unloadBufferViewLoaders(this);
572
+
573
+ // Similarly, if the glTF was loaded from a typed array, release the memory
574
+ this._typedArray = undefined;
575
+
576
+ this._state = GltfLoaderState.READY;
577
+ return true;
578
+ }
579
+
580
+ return false;
581
+ };
582
+
583
+ /**
584
+ * Process textures other than textures
585
+ * @private
586
+ */
587
+ GltfLoader.prototype._processTextures = function (frameState) {
588
+ if (this._textureState === GltfLoaderState.READY) {
589
+ return true;
590
+ }
591
+
592
+ if (this._textureState !== GltfLoaderState.PROCESSING) {
593
+ return false;
594
+ }
595
+
596
+ let ready = true;
597
+ const textureLoaders = this._textureLoaders;
598
+ for (let i = 0; i < textureLoaders.length; ++i) {
599
+ const textureReady = textureLoaders[i].process(frameState);
600
+ if (textureReady && defined(this._textureCallbacks[i])) {
601
+ this._textureCallbacks[i]();
602
+ this._textureCallbacks[i] = undefined;
603
+ }
604
+
605
+ ready = ready && textureReady;
606
+ }
607
+
608
+ if (!ready) {
609
+ return false;
610
+ }
611
+
612
+ this._textureState = GltfLoaderState.READY;
613
+ this._texturesLoaded = true;
614
+ return true;
615
+ };
616
+
617
+ /**
618
+ * Processes the resource until it becomes ready.
619
+ *
620
+ * @param {FrameState} frameState The frame state.
621
+ * @private
622
+ */
623
+ GltfLoader.prototype.process = function (frameState) {
624
+ //>>includeStart('debug', pragmas.debug);
625
+ Check.typeOf.object("frameState", frameState);
626
+ //>>includeEnd('debug');
627
+
628
+ if (
629
+ this._state === GltfLoaderState.LOADED &&
630
+ !defined(this._loadResourcesPromise)
631
+ ) {
632
+ this._loadResourcesPromise = loadResources(this, frameState)
633
+ .then(() => {
634
+ this._resourcesLoaded = true;
635
+ })
636
+ .catch((error) => {
637
+ this._processError = error;
638
+ });
639
+ }
640
+
641
+ if (defined(this._processError)) {
642
+ this._state = GltfLoaderState.FAILED;
643
+ const error = this._processError;
644
+ this._processError = undefined;
645
+ handleError(this, error);
646
+ }
647
+
648
+ // Pop the next error of the list in case there are multiple
649
+ const textureError = this._textureErrors.pop();
650
+ if (defined(textureError)) {
651
+ // There shouldn't be the need to completely unload in this case. Just throw the error.
652
+ const error = this.getError("Failed to load glTF texture", textureError);
653
+ error.name = "TextureError";
654
+ throw error;
655
+ }
656
+
657
+ if (this._state === GltfLoaderState.FAILED) {
658
+ return false;
659
+ }
660
+
661
+ let ready = false;
662
+ try {
663
+ ready = this._process(frameState);
664
+ } catch (error) {
665
+ this._state = GltfLoaderState.FAILED;
666
+ handleError(this, error);
667
+ }
668
+
669
+ // Since textures can be loaded independently and are handled through a separate promise, they are processed in their own function
670
+ let texturesReady = false;
671
+ try {
672
+ texturesReady = this._processTextures(frameState);
673
+ } catch (error) {
674
+ this._textureState = GltfLoaderState.FAILED;
675
+ handleError(this, error);
676
+ }
677
+
678
+ if (this._incrementallyLoadTextures) {
679
+ return ready;
680
+ }
681
+
682
+ return ready && texturesReady;
683
+ };
684
+
685
+ function getVertexBufferLoader(
686
+ loader,
687
+ accessorId,
688
+ semantic,
689
+ primitive,
690
+ draco,
691
+ spzExtension,
692
+ loadBuffer,
693
+ loadTypedArray,
694
+ frameState,
695
+ ) {
696
+ const gltf = loader.gltfJson;
697
+ const accessor = gltf.accessors[accessorId];
698
+ const bufferViewId = accessor.bufferView;
699
+
700
+ const vertexBufferLoader = ResourceCache.getVertexBufferLoader({
701
+ gltf: gltf,
702
+ gltfResource: loader._gltfResource,
703
+ baseResource: loader._baseResource,
704
+ frameState: frameState,
705
+ bufferViewId: bufferViewId,
706
+ primitive: primitive,
707
+ draco: draco,
708
+ spz: spzExtension,
709
+ attributeSemantic: semantic,
710
+ accessorId: accessorId,
711
+ asynchronous: loader._asynchronous,
712
+ loadBuffer: loadBuffer,
713
+ loadTypedArray: loadTypedArray,
714
+ });
715
+
716
+ return vertexBufferLoader;
717
+ }
718
+
719
+ function getIndexBufferLoader(
720
+ loader,
721
+ accessorId,
722
+ primitive,
723
+ draco,
724
+ loadBuffer,
725
+ loadTypedArray,
726
+ frameState,
727
+ ) {
728
+ const indexBufferLoader = ResourceCache.getIndexBufferLoader({
729
+ gltf: loader.gltfJson,
730
+ accessorId: accessorId,
731
+ gltfResource: loader._gltfResource,
732
+ baseResource: loader._baseResource,
733
+ frameState: frameState,
734
+ primitive: primitive,
735
+ draco: draco,
736
+ asynchronous: loader._asynchronous,
737
+ loadBuffer: loadBuffer,
738
+ loadTypedArray: loadTypedArray,
739
+ });
740
+
741
+ return indexBufferLoader;
742
+ }
743
+
744
+ function getBufferViewLoader(loader, bufferViewId) {
745
+ const bufferViewLoader = ResourceCache.getBufferViewLoader({
746
+ gltf: loader.gltfJson,
747
+ bufferViewId: bufferViewId,
748
+ gltfResource: loader._gltfResource,
749
+ baseResource: loader._baseResource,
750
+ });
751
+
752
+ loader._bufferViewLoaders.push(bufferViewLoader);
753
+
754
+ return bufferViewLoader;
755
+ }
756
+
757
+ function getPackedTypedArray(gltf, accessor, bufferViewTypedArray) {
758
+ let byteOffset = accessor.byteOffset;
759
+ const byteStride = getAccessorByteStride(gltf, accessor);
760
+ const count = accessor.count;
761
+ const componentCount = numberOfComponentsForType(accessor.type);
762
+ const componentType = accessor.componentType;
763
+ const componentByteLength = ComponentDatatype.getSizeInBytes(componentType);
764
+ const defaultByteStride = componentByteLength * componentCount;
765
+ const componentsLength = count * componentCount;
766
+
767
+ if (byteStride === defaultByteStride) {
768
+ // Copy the typed array and let the underlying ArrayBuffer be freed
769
+ bufferViewTypedArray = new Uint8Array(bufferViewTypedArray);
770
+ return ComponentDatatype.createArrayBufferView(
771
+ componentType,
772
+ bufferViewTypedArray.buffer,
773
+ bufferViewTypedArray.byteOffset + byteOffset,
774
+ componentsLength,
775
+ );
776
+ }
777
+
778
+ const accessorTypedArray = ComponentDatatype.createTypedArray(
779
+ componentType,
780
+ componentsLength,
781
+ );
782
+
783
+ const dataView = new DataView(bufferViewTypedArray.buffer);
784
+ const components = new Array(componentCount);
785
+ const componentReader = getComponentReader(accessor.componentType);
786
+ byteOffset = bufferViewTypedArray.byteOffset + byteOffset;
787
+
788
+ for (let i = 0; i < count; ++i) {
789
+ componentReader(
790
+ dataView,
791
+ byteOffset,
792
+ componentCount,
793
+ componentByteLength,
794
+ components,
795
+ );
796
+ for (let j = 0; j < componentCount; ++j) {
797
+ accessorTypedArray[i * componentCount + j] = components[j];
798
+ }
799
+ byteOffset += byteStride;
800
+ }
801
+
802
+ return accessorTypedArray;
803
+ }
804
+
805
+ function loadDefaultAccessorValues(accessor, values) {
806
+ const accessorType = accessor.type;
807
+ if (accessorType === AttributeType.SCALAR) {
808
+ return values.fill(0);
809
+ }
810
+
811
+ const MathType = AttributeType.getMathType(accessorType);
812
+ return values.fill(MathType.clone(MathType.ZERO));
813
+ }
814
+
815
+ function loadAccessorValues(accessor, typedArray, values, useQuaternion) {
816
+ const accessorType = accessor.type;
817
+ const accessorCount = accessor.count;
818
+
819
+ if (accessorType === AttributeType.SCALAR) {
820
+ for (let i = 0; i < accessorCount; i++) {
821
+ values[i] = typedArray[i];
822
+ }
823
+ } else if (accessorType === AttributeType.VEC4 && useQuaternion) {
824
+ for (let i = 0; i < accessorCount; i++) {
825
+ values[i] = Quaternion.unpack(typedArray, i * 4);
826
+ }
827
+ } else {
828
+ const MathType = AttributeType.getMathType(accessorType);
829
+ const numberOfComponents =
830
+ AttributeType.getNumberOfComponents(accessorType);
831
+
832
+ for (let i = 0; i < accessorCount; i++) {
833
+ values[i] = MathType.unpack(typedArray, i * numberOfComponents);
834
+ }
835
+ }
836
+
837
+ return values;
838
+ }
839
+
840
+ async function loadAccessorBufferView(
841
+ loader,
842
+ bufferViewLoader,
843
+ accessor,
844
+ useQuaternion,
845
+ values,
846
+ ) {
847
+ // Save a link to the gltfJson, which is removed after bufferViewLoader.load()
848
+ const { gltfJson } = loader;
849
+
850
+ await bufferViewLoader.load();
851
+ if (loader.isDestroyed()) {
852
+ return;
853
+ }
854
+
855
+ const typedArray = getPackedTypedArray(
856
+ gltfJson,
857
+ accessor,
858
+ bufferViewLoader.typedArray,
859
+ );
860
+
861
+ useQuaternion = useQuaternion ?? false;
862
+ loadAccessorValues(accessor, typedArray, values, useQuaternion);
863
+ }
864
+
865
+ function loadAccessor(loader, accessor, useQuaternion) {
866
+ const values = new Array(accessor.count);
867
+
868
+ const bufferViewId = accessor.bufferView;
869
+ if (defined(bufferViewId)) {
870
+ const bufferViewLoader = getBufferViewLoader(loader, bufferViewId);
871
+ const promise = loadAccessorBufferView(
872
+ loader,
873
+ bufferViewLoader,
874
+ accessor,
875
+ useQuaternion,
876
+ values,
877
+ );
878
+ loader._loaderPromises.push(promise);
879
+
880
+ return values;
881
+ }
882
+
883
+ return loadDefaultAccessorValues(accessor, values);
884
+ }
885
+
886
+ function fromArray(MathType, values) {
887
+ if (!defined(values)) {
888
+ return undefined;
889
+ }
890
+
891
+ if (MathType === Number) {
892
+ return values[0];
893
+ }
894
+
895
+ return MathType.unpack(values);
896
+ }
897
+
898
+ function getDefault(MathType) {
899
+ if (MathType === Number) {
900
+ return 0.0;
901
+ }
902
+
903
+ return new MathType(); // defaults to 0.0 for all types
904
+ }
905
+
906
+ function getQuantizationDivisor(componentDatatype) {
907
+ switch (componentDatatype) {
908
+ case ComponentDatatype.BYTE:
909
+ return 127;
910
+ case ComponentDatatype.UNSIGNED_BYTE:
911
+ return 255;
912
+ case ComponentDatatype.SHORT:
913
+ return 32767;
914
+ case ComponentDatatype.UNSIGNED_SHORT:
915
+ return 65535;
916
+ default:
917
+ return 1.0;
918
+ }
919
+ }
920
+
921
+ const minimumBoundsByType = {
922
+ VEC2: new Cartesian2(-1.0, -1.0),
923
+ VEC3: new Cartesian3(-1.0, -1.0, -1.0),
924
+ VEC4: new Cartesian4(-1.0, -1.0, -1.0, -1.0),
925
+ };
926
+
927
+ function dequantizeMinMax(attribute, VectorType) {
928
+ const divisor = getQuantizationDivisor(attribute.componentDatatype);
929
+ const minimumBound = minimumBoundsByType[attribute.type];
930
+
931
+ // dequantized = max(quantized / divisor, -1.0)
932
+ let min = attribute.min;
933
+ if (defined(min)) {
934
+ min = VectorType.divideByScalar(min, divisor, min);
935
+ min = VectorType.maximumByComponent(min, minimumBound, min);
936
+ }
937
+
938
+ let max = attribute.max;
939
+ if (defined(max)) {
940
+ max = VectorType.divideByScalar(max, divisor, max);
941
+ max = VectorType.maximumByComponent(max, minimumBound, max);
942
+ }
943
+
944
+ attribute.min = min;
945
+ attribute.max = max;
946
+ }
947
+
948
+ function setQuantizationFromWeb3dQuantizedAttributes(
949
+ extension,
950
+ attribute,
951
+ MathType,
952
+ ) {
953
+ const decodeMatrix = extension.decodeMatrix;
954
+ const decodedMin = fromArray(MathType, extension.decodedMin);
955
+ const decodedMax = fromArray(MathType, extension.decodedMax);
956
+
957
+ if (defined(decodedMin) && defined(decodedMax)) {
958
+ attribute.min = decodedMin;
959
+ attribute.max = decodedMax;
960
+ }
961
+
962
+ const quantization = new ModelComponents.Quantization();
963
+ quantization.componentDatatype = attribute.componentDatatype;
964
+ quantization.type = attribute.type;
965
+
966
+ if (decodeMatrix.length === 4) {
967
+ quantization.quantizedVolumeOffset = decodeMatrix[2];
968
+ quantization.quantizedVolumeStepSize = decodeMatrix[0];
969
+ } else if (decodeMatrix.length === 9) {
970
+ quantization.quantizedVolumeOffset = new Cartesian2(
971
+ decodeMatrix[6],
972
+ decodeMatrix[7],
973
+ );
974
+ quantization.quantizedVolumeStepSize = new Cartesian2(
975
+ decodeMatrix[0],
976
+ decodeMatrix[4],
977
+ );
978
+ } else if (decodeMatrix.length === 16) {
979
+ quantization.quantizedVolumeOffset = new Cartesian3(
980
+ decodeMatrix[12],
981
+ decodeMatrix[13],
982
+ decodeMatrix[14],
983
+ );
984
+ quantization.quantizedVolumeStepSize = new Cartesian3(
985
+ decodeMatrix[0],
986
+ decodeMatrix[5],
987
+ decodeMatrix[10],
988
+ );
989
+ } else if (decodeMatrix.length === 25) {
990
+ quantization.quantizedVolumeOffset = new Cartesian4(
991
+ decodeMatrix[20],
992
+ decodeMatrix[21],
993
+ decodeMatrix[22],
994
+ decodeMatrix[23],
995
+ );
996
+ quantization.quantizedVolumeStepSize = new Cartesian4(
997
+ decodeMatrix[0],
998
+ decodeMatrix[6],
999
+ decodeMatrix[12],
1000
+ decodeMatrix[18],
1001
+ );
1002
+ }
1003
+
1004
+ attribute.quantization = quantization;
1005
+ }
1006
+
1007
+ function createAttribute(gltf, accessorId, name, semantic, setIndex) {
1008
+ const accessor = gltf.accessors[accessorId];
1009
+ const MathType = AttributeType.getMathType(accessor.type);
1010
+ const normalized = accessor.normalized ?? false;
1011
+
1012
+ const attribute = new Attribute();
1013
+ attribute.name = name;
1014
+ attribute.semantic = semantic;
1015
+ attribute.setIndex = setIndex;
1016
+ attribute.constant = getDefault(MathType);
1017
+ attribute.componentDatatype = accessor.componentType;
1018
+ attribute.normalized = normalized;
1019
+ attribute.count = accessor.count;
1020
+ attribute.type = accessor.type;
1021
+ attribute.min = fromArray(MathType, accessor.min);
1022
+ attribute.max = fromArray(MathType, accessor.max);
1023
+ attribute.byteOffset = accessor.byteOffset;
1024
+ attribute.byteStride = getAccessorByteStride(gltf, accessor);
1025
+
1026
+ if (hasExtension(accessor, "WEB3D_quantized_attributes")) {
1027
+ setQuantizationFromWeb3dQuantizedAttributes(
1028
+ accessor.extensions.WEB3D_quantized_attributes,
1029
+ attribute,
1030
+ MathType,
1031
+ );
1032
+ }
1033
+
1034
+ const isQuantizable =
1035
+ attribute.semantic === VertexAttributeSemantic.POSITION ||
1036
+ attribute.semantic === VertexAttributeSemantic.NORMAL ||
1037
+ attribute.semantic === VertexAttributeSemantic.TANGENT ||
1038
+ attribute.semantic === VertexAttributeSemantic.TEXCOORD ||
1039
+ attribute.semantic === VertexAttributeSemantic.FEATURE_ID ||
1040
+ attribute.semantic === VertexAttributeSemantic.SCALE ||
1041
+ attribute.semantic === VertexAttributeSemantic.ROTATION;
1042
+
1043
+ // In the glTF 2.0 spec, min and max are not affected by the normalized flag.
1044
+ // However, for KHR_mesh_quantization, min and max must be dequantized for
1045
+ // normalized values, else the bounding sphere will be computed incorrectly.
1046
+ const hasKhrMeshQuantization = gltf.extensionsRequired?.includes(
1047
+ "KHR_mesh_quantization",
1048
+ );
1049
+
1050
+ if (hasKhrMeshQuantization && normalized && isQuantizable) {
1051
+ dequantizeMinMax(attribute, MathType);
1052
+ }
1053
+
1054
+ return attribute;
1055
+ }
1056
+
1057
+ function getSetIndex(gltfSemantic) {
1058
+ const setIndexRegex = /^\w+_(\d+)$/;
1059
+ const setIndexMatch = setIndexRegex.exec(gltfSemantic);
1060
+ if (setIndexMatch !== null) {
1061
+ return parseInt(setIndexMatch[1]);
1062
+ }
1063
+ return undefined;
1064
+ }
1065
+
1066
+ const scratchSemanticInfo = {
1067
+ gltfSemantic: undefined,
1068
+ renamedSemantic: undefined,
1069
+ modelSemantic: undefined,
1070
+ };
1071
+
1072
+ function getSemanticInfo(loader, semanticType, gltfSemantic) {
1073
+ // For .b3dm, rename _BATCHID (or the legacy BATCHID) to _FEATURE_ID_0
1074
+ // in the generated model components for compatibility with EXT_mesh_features
1075
+ let renamedSemantic = gltfSemantic;
1076
+ if (
1077
+ loader._renameBatchIdSemantic &&
1078
+ (gltfSemantic === "_BATCHID" || gltfSemantic === "BATCHID")
1079
+ ) {
1080
+ renamedSemantic = "_FEATURE_ID_0";
1081
+ }
1082
+
1083
+ const modelSemantic = semanticType.fromGltfSemantic(renamedSemantic);
1084
+
1085
+ const semanticInfo = scratchSemanticInfo;
1086
+ semanticInfo.gltfSemantic = gltfSemantic;
1087
+ semanticInfo.renamedSemantic = renamedSemantic;
1088
+ semanticInfo.modelSemantic = modelSemantic;
1089
+
1090
+ return semanticInfo;
1091
+ }
1092
+
1093
+ function isClassificationAttribute(attributeSemantic) {
1094
+ // Classification models only use the position, texcoord, and feature ID attributes.
1095
+ const isPositionAttribute =
1096
+ attributeSemantic === VertexAttributeSemantic.POSITION;
1097
+ const isFeatureIdAttribute =
1098
+ attributeSemantic === VertexAttributeSemantic.FEATURE_ID;
1099
+ const isTexcoordAttribute =
1100
+ attributeSemantic === VertexAttributeSemantic.TEXCOORD;
1101
+
1102
+ return isPositionAttribute || isFeatureIdAttribute || isTexcoordAttribute;
1103
+ }
1104
+
1105
+ function finalizeDracoAttribute(
1106
+ attribute,
1107
+ vertexBufferLoader,
1108
+ loadBuffer,
1109
+ loadTypedArray,
1110
+ ) {
1111
+ // The accessor's byteOffset and byteStride should be ignored for draco.
1112
+ // Each attribute is tightly packed in its own buffer after decode.
1113
+ attribute.byteOffset = 0;
1114
+ attribute.byteStride = undefined;
1115
+ attribute.quantization = vertexBufferLoader.quantization;
1116
+
1117
+ if (loadBuffer) {
1118
+ attribute.buffer = vertexBufferLoader.buffer;
1119
+ }
1120
+
1121
+ if (loadTypedArray) {
1122
+ const componentDatatype = defined(vertexBufferLoader.quantization)
1123
+ ? vertexBufferLoader.quantization.componentDatatype
1124
+ : attribute.componentDatatype;
1125
+
1126
+ attribute.typedArray = ComponentDatatype.createArrayBufferView(
1127
+ componentDatatype,
1128
+ vertexBufferLoader.typedArray.buffer,
1129
+ );
1130
+ }
1131
+ }
1132
+
1133
+ function finalizeSpzAttribute(
1134
+ attribute,
1135
+ vertexBufferLoader,
1136
+ loadBuffer,
1137
+ loadTypedArray,
1138
+ ) {
1139
+ attribute.byteOffset = 0;
1140
+ attribute.byteStride = undefined;
1141
+
1142
+ if (loadBuffer) {
1143
+ attribute.buffer = vertexBufferLoader.buffer;
1144
+ }
1145
+
1146
+ if (loadTypedArray && defined(vertexBufferLoader.typedArray)) {
1147
+ attribute.typedArray = ComponentDatatype.createArrayBufferView(
1148
+ attribute.componentDatatype,
1149
+ vertexBufferLoader.typedArray.buffer,
1150
+ );
1151
+ }
1152
+
1153
+ if (attribute.semantic === VertexAttributeSemantic.POSITION) {
1154
+ const findMinMaxXY = (flatArray) => {
1155
+ let minX = Infinity;
1156
+ let maxX = -Infinity;
1157
+ let minY = Infinity;
1158
+ let maxY = -Infinity;
1159
+ let minZ = Infinity;
1160
+ let maxZ = -Infinity;
1161
+
1162
+ for (let i = 0; i < flatArray.length; i += 3) {
1163
+ const x = flatArray[i];
1164
+ const y = flatArray[i + 1];
1165
+ const z = flatArray[i + 2];
1166
+
1167
+ minX = Math.min(minX, x);
1168
+ maxX = Math.max(maxX, x);
1169
+ minY = Math.min(minY, y);
1170
+ maxY = Math.max(maxY, y);
1171
+ minZ = Math.min(minZ, z);
1172
+ maxZ = Math.max(maxZ, z);
1173
+ }
1174
+
1175
+ return [
1176
+ new Cartesian3(minX, minY, minZ),
1177
+ new Cartesian3(maxX, maxY, maxZ),
1178
+ ];
1179
+ };
1180
+ const buffer = attribute.typedArray;
1181
+ [attribute.min, attribute.max] = findMinMaxXY(buffer);
1182
+ }
1183
+ }
1184
+
1185
+ function finalizeAttribute(
1186
+ gltf,
1187
+ accessor,
1188
+ attribute,
1189
+ vertexBufferLoader,
1190
+ loadBuffer,
1191
+ loadTypedArray,
1192
+ ) {
1193
+ if (loadBuffer) {
1194
+ attribute.buffer = vertexBufferLoader.buffer;
1195
+ }
1196
+
1197
+ if (loadTypedArray) {
1198
+ const bufferViewTypedArray = vertexBufferLoader.typedArray;
1199
+ attribute.typedArray = getPackedTypedArray(
1200
+ gltf,
1201
+ accessor,
1202
+ bufferViewTypedArray,
1203
+ );
1204
+
1205
+ if (!loadBuffer) {
1206
+ // If the buffer isn't loaded, then the accessor's byteOffset and
1207
+ // byteStride should be ignored, since values are only available in a
1208
+ // tightly packed typed array
1209
+ attribute.byteOffset = 0;
1210
+ attribute.byteStride = undefined;
1211
+ }
1212
+ }
1213
+ }
1214
+
1215
+ function loadAttribute(
1216
+ loader,
1217
+ accessorId,
1218
+ semanticInfo,
1219
+ primitive,
1220
+ draco,
1221
+ spz,
1222
+ loadBuffer,
1223
+ loadTypedArray,
1224
+ frameState,
1225
+ ) {
1226
+ const gltf = loader.gltfJson;
1227
+ const accessor = gltf.accessors[accessorId];
1228
+ const bufferViewId = accessor.bufferView;
1229
+
1230
+ const gltfSemantic = semanticInfo.gltfSemantic;
1231
+ const renamedSemantic = semanticInfo.renamedSemantic;
1232
+ const modelSemantic = semanticInfo.modelSemantic;
1233
+
1234
+ const setIndex = defined(modelSemantic)
1235
+ ? getSetIndex(renamedSemantic)
1236
+ : undefined;
1237
+
1238
+ const name = gltfSemantic;
1239
+ const attribute = createAttribute(
1240
+ gltf,
1241
+ accessorId,
1242
+ name,
1243
+ modelSemantic,
1244
+ setIndex,
1245
+ );
1246
+
1247
+ if (!defined(draco) && !defined(bufferViewId) && !defined(spz)) {
1248
+ return attribute;
1249
+ }
1250
+
1251
+ const vertexBufferLoader = getVertexBufferLoader(
1252
+ loader,
1253
+ accessorId,
1254
+ gltfSemantic,
1255
+ primitive,
1256
+ draco,
1257
+ spz,
1258
+ loadBuffer,
1259
+ loadTypedArray,
1260
+ frameState,
1261
+ );
1262
+
1263
+ const index = loader._geometryLoaders.length;
1264
+ loader._geometryLoaders.push(vertexBufferLoader);
1265
+ const promise = vertexBufferLoader.load();
1266
+ loader._loaderPromises.push(promise);
1267
+
1268
+ // This can only execute once vertexBufferLoader.process() has run and returns true
1269
+ // Save this finish callback by the loader index so it can be called
1270
+ // in process().
1271
+ loader._geometryCallbacks[index] = () => {
1272
+ if (
1273
+ defined(draco) &&
1274
+ defined(draco.attributes) &&
1275
+ defined(draco.attributes[gltfSemantic])
1276
+ ) {
1277
+ finalizeDracoAttribute(
1278
+ attribute,
1279
+ vertexBufferLoader,
1280
+ loadBuffer,
1281
+ loadTypedArray,
1282
+ );
1283
+ } else if (defined(spz)) {
1284
+ finalizeSpzAttribute(
1285
+ attribute,
1286
+ vertexBufferLoader,
1287
+ loadBuffer,
1288
+ loadTypedArray,
1289
+ );
1290
+ } else {
1291
+ finalizeAttribute(
1292
+ gltf,
1293
+ accessor,
1294
+ attribute,
1295
+ vertexBufferLoader,
1296
+ loadBuffer,
1297
+ loadTypedArray,
1298
+ );
1299
+ }
1300
+ };
1301
+
1302
+ return attribute;
1303
+ }
1304
+
1305
+ function loadVertexAttribute(
1306
+ loader,
1307
+ accessorId,
1308
+ semanticInfo,
1309
+ primitive,
1310
+ draco,
1311
+ spz,
1312
+ hasInstances,
1313
+ needsPostProcessing,
1314
+ frameState,
1315
+ ) {
1316
+ const modelSemantic = semanticInfo.modelSemantic;
1317
+
1318
+ const isPositionAttribute =
1319
+ modelSemantic === VertexAttributeSemantic.POSITION;
1320
+ const isFeatureIdAttribute =
1321
+ modelSemantic === VertexAttributeSemantic.FEATURE_ID;
1322
+
1323
+ const loadTypedArrayFor2D =
1324
+ isPositionAttribute &&
1325
+ !hasInstances &&
1326
+ loader._loadAttributesFor2D &&
1327
+ !frameState.scene3DOnly;
1328
+ const loadTypedArrayForPicking =
1329
+ isPositionAttribute && loader._enablePick && !frameState.context.webgl2;
1330
+
1331
+ const loadTypedArrayForClassification =
1332
+ loader._loadForClassification && isFeatureIdAttribute;
1333
+
1334
+ // Whether the final output should be a buffer or typed array
1335
+ // after loading and post-processing.
1336
+ const outputTypedArrayOnly = loader._loadAttributesAsTypedArray;
1337
+ const outputBuffer = !outputTypedArrayOnly;
1338
+ const outputTypedArray =
1339
+ outputTypedArrayOnly ||
1340
+ loadTypedArrayFor2D ||
1341
+ loadTypedArrayForPicking ||
1342
+ loadTypedArrayForClassification;
1343
+
1344
+ // Determine what to load right now:
1345
+ //
1346
+ // - If post-processing is needed, load a packed typed array for
1347
+ // further processing, and defer the buffer loading until later.
1348
+ // - On the other hand, if post-processing is not needed,
1349
+ // set the load flags directly
1350
+ const loadBuffer = needsPostProcessing ? false : outputBuffer;
1351
+ const loadTypedArray = needsPostProcessing ? true : outputTypedArray;
1352
+
1353
+ const attribute = loadAttribute(
1354
+ loader,
1355
+ accessorId,
1356
+ semanticInfo,
1357
+ primitive,
1358
+ draco,
1359
+ spz,
1360
+ loadBuffer,
1361
+ loadTypedArray,
1362
+ frameState,
1363
+ );
1364
+
1365
+ const attributePlan = new PrimitiveLoadPlan.AttributeLoadPlan(attribute);
1366
+ attributePlan.loadBuffer = outputBuffer;
1367
+ attributePlan.loadTypedArray = outputTypedArray;
1368
+
1369
+ return attributePlan;
1370
+ }
1371
+
1372
+ function loadInstancedAttribute(
1373
+ loader,
1374
+ accessorId,
1375
+ attributes,
1376
+ gltfSemantic,
1377
+ frameState,
1378
+ ) {
1379
+ const accessors = loader.gltfJson.accessors;
1380
+ const hasRotation = defined(attributes.ROTATION);
1381
+ const hasTranslationMinMax =
1382
+ defined(attributes.TRANSLATION) &&
1383
+ defined(accessors[attributes.TRANSLATION].min) &&
1384
+ defined(accessors[attributes.TRANSLATION].max);
1385
+
1386
+ const semanticInfo = getSemanticInfo(
1387
+ loader,
1388
+ InstanceAttributeSemantic,
1389
+ gltfSemantic,
1390
+ );
1391
+ const modelSemantic = semanticInfo.modelSemantic;
1392
+
1393
+ const isTransformAttribute =
1394
+ modelSemantic === InstanceAttributeSemantic.TRANSLATION ||
1395
+ modelSemantic === InstanceAttributeSemantic.ROTATION ||
1396
+ modelSemantic === InstanceAttributeSemantic.SCALE;
1397
+ const isTranslationAttribute =
1398
+ modelSemantic === InstanceAttributeSemantic.TRANSLATION;
1399
+
1400
+ // Load the attributes as typed arrays only if:
1401
+ // - loadAttributesAsTypedArray is true
1402
+ // - the instances have rotations. This only applies to the transform attributes,
1403
+ // since The instance matrices are computed on the CPU. This avoids the
1404
+ // expensive quaternion -> rotation matrix conversion in the shader.
1405
+ // - GPU instancing is not supported.
1406
+ const loadAsTypedArrayOnly =
1407
+ loader._loadAttributesAsTypedArray ||
1408
+ (hasRotation && isTransformAttribute) ||
1409
+ !frameState.context.instancedArrays;
1410
+ const loadTypedArrayForPicking =
1411
+ loader._enablePick && !frameState.context.webgl2;
1412
+
1413
+ const loadBuffer = !loadAsTypedArrayOnly;
1414
+
1415
+ // Load the translations as a typed array in addition to the buffer if
1416
+ // - the accessor does not have a min and max. The values will be used
1417
+ // for computing an accurate bounding volume.
1418
+ // - the model will be projected to 2D.
1419
+ const loadFor2D = loader._loadAttributesFor2D && !frameState.scene3DOnly;
1420
+ const loadTranslationAsTypedArray =
1421
+ isTranslationAttribute &&
1422
+ (!hasTranslationMinMax || loadFor2D || loadTypedArrayForPicking);
1423
+
1424
+ const loadTypedArray = loadAsTypedArrayOnly || loadTranslationAsTypedArray;
1425
+
1426
+ // Don't pass in primitive or draco object since instanced attributes can't be draco compressed
1427
+ return loadAttribute(
1428
+ loader,
1429
+ accessorId,
1430
+ semanticInfo,
1431
+ undefined,
1432
+ undefined,
1433
+ undefined,
1434
+ loadBuffer,
1435
+ loadTypedArray,
1436
+ frameState,
1437
+ );
1438
+ }
1439
+
1440
+ function loadIndices(
1441
+ loader,
1442
+ accessorId,
1443
+ primitive,
1444
+ hasFeatureIds,
1445
+ needsPostProcessing,
1446
+ frameState,
1447
+ ) {
1448
+ const accessor = loader.gltfJson.accessors[accessorId];
1449
+ const bufferViewId = accessor.bufferView;
1450
+ // Infer compression / extensions directly from the glTF primitive instead of passing in flags
1451
+ const extensions = primitive.extensions ?? Frozen.EMPTY_OBJECT;
1452
+ const draco = extensions.KHR_draco_mesh_compression;
1453
+ const hasEdgeVisibility = defined(
1454
+ extensions.EXT_mesh_primitive_edge_visibility,
1455
+ );
1456
+
1457
+ if (!defined(draco) && !defined(bufferViewId)) {
1458
+ return undefined;
1459
+ }
1460
+
1461
+ const indices = new Indices();
1462
+ indices.count = accessor.count;
1463
+
1464
+ const loadAttributesAsTypedArray = loader._loadAttributesAsTypedArray;
1465
+ // Load the index buffer as a typed array to generate wireframes or pick in WebGL1.
1466
+ const loadForCpuOperations =
1467
+ (loader._loadIndicesForWireframe || loader._enablePick) &&
1468
+ !frameState.context.webgl2;
1469
+
1470
+ // Load the index buffer as a typed array to batch features together for classification.
1471
+ const loadForClassification = loader._loadForClassification && hasFeatureIds;
1472
+
1473
+ // Whether the final output should be a buffer or typed array
1474
+ // after loading and post-processing.
1475
+ const outputTypedArrayOnly = loadAttributesAsTypedArray;
1476
+ const outputBuffer = !outputTypedArrayOnly;
1477
+ const outputTypedArray =
1478
+ loadAttributesAsTypedArray ||
1479
+ loadForCpuOperations ||
1480
+ loadForClassification ||
1481
+ hasEdgeVisibility;
1482
+
1483
+ // Determine what to load right now:
1484
+ //
1485
+ // - If post-processing is needed, load a packed typed array for
1486
+ // further processing, and defer the buffer loading until later.
1487
+ // - On the other hand, if post-processing is not needed, set the load
1488
+ // flags directly
1489
+ const loadBuffer = needsPostProcessing ? false : outputBuffer;
1490
+ const loadTypedArray = needsPostProcessing ? true : outputTypedArray;
1491
+
1492
+ const indexBufferLoader = getIndexBufferLoader(
1493
+ loader,
1494
+ accessorId,
1495
+ primitive,
1496
+ draco,
1497
+ loadBuffer,
1498
+ loadTypedArray,
1499
+ frameState,
1500
+ );
1501
+
1502
+ const index = loader._geometryLoaders.length;
1503
+ loader._geometryLoaders.push(indexBufferLoader);
1504
+ const promise = indexBufferLoader.load();
1505
+ loader._loaderPromises.push(promise);
1506
+ // This can only execute once indexBufferLoader.process() has run and returns true
1507
+ // Save this finish callback by the loader index so it can be called
1508
+ // in process().
1509
+ loader._geometryCallbacks[index] = () => {
1510
+ indices.indexDatatype = indexBufferLoader.indexDatatype;
1511
+ indices.buffer = indexBufferLoader.buffer;
1512
+ indices.typedArray = indexBufferLoader.typedArray;
1513
+ };
1514
+
1515
+ const indicesPlan = new PrimitiveLoadPlan.IndicesLoadPlan(indices);
1516
+ indicesPlan.loadBuffer = outputBuffer;
1517
+ indicesPlan.loadTypedArray = outputTypedArray;
1518
+
1519
+ return indicesPlan;
1520
+ }
1521
+
1522
+ function loadTexture(loader, textureInfo, frameState, samplerOverride) {
1523
+ const gltf = loader.gltfJson;
1524
+ const imageId = GltfLoaderUtil.getImageIdFromTexture({
1525
+ gltf: gltf,
1526
+ textureId: textureInfo.index,
1527
+ supportedImageFormats: loader._supportedImageFormats,
1528
+ });
1529
+
1530
+ if (!defined(imageId)) {
1531
+ return undefined;
1532
+ }
1533
+
1534
+ const textureLoader = ResourceCache.getTextureLoader({
1535
+ gltf: gltf,
1536
+ textureInfo: textureInfo,
1537
+ gltfResource: loader._gltfResource,
1538
+ baseResource: loader._baseResource,
1539
+ supportedImageFormats: loader._supportedImageFormats,
1540
+ frameState: frameState,
1541
+ asynchronous: loader._asynchronous,
1542
+ });
1543
+
1544
+ const textureReader = GltfLoaderUtil.createModelTextureReader({
1545
+ textureInfo: textureInfo,
1546
+ });
1547
+
1548
+ const index = loader._textureLoaders.length;
1549
+ loader._textureLoaders.push(textureLoader);
1550
+ const promise = textureLoader.load().catch((error) => {
1551
+ if (loader.isDestroyed()) {
1552
+ return;
1553
+ }
1554
+
1555
+ if (!loader._incrementallyLoadTextures) {
1556
+ // If incrementallyLoadTextures is false, throw the error to ensure the loader state
1557
+ // immediately is set to have failed
1558
+ throw error;
1559
+ }
1560
+
1561
+ // Otherwise, save the error so it can be thrown next
1562
+ loader._textureState = GltfLoaderState.FAILED;
1563
+ loader._textureErrors.push(error);
1564
+ });
1565
+ loader._texturesPromises.push(promise);
1566
+ // This can only execute once textureLoader.process() has run and returns true
1567
+ // Save this finish callback by the loader index so it can be called
1568
+ // in process().
1569
+ loader._textureCallbacks[index] = () => {
1570
+ textureReader.texture = textureLoader.texture;
1571
+ if (defined(samplerOverride)) {
1572
+ textureReader.texture.sampler = samplerOverride;
1573
+ }
1574
+ };
1575
+
1576
+ return textureReader;
1577
+ }
1578
+
1579
+ /**
1580
+ * Load textures and parse factors for the KHR_materials_pbrSpecularGlossiness extension
1581
+ * @param {GltfLoader} loader
1582
+ * @param {object} specularGlossinessInfo The contents of the KHR_materials_pbrSpecularGlossiness extension in the parsed glTF JSON
1583
+ * @param {FrameState} frameState
1584
+ * @returns {ModelComponents.SpecularGlossiness}
1585
+ * @private
1586
+ */
1587
+ function loadSpecularGlossiness(loader, specularGlossinessInfo, frameState) {
1588
+ const {
1589
+ diffuseTexture,
1590
+ specularGlossinessTexture,
1591
+ diffuseFactor,
1592
+ specularFactor,
1593
+ glossinessFactor,
1594
+ } = specularGlossinessInfo;
1595
+
1596
+ const specularGlossiness = new SpecularGlossiness();
1597
+ if (defined(diffuseTexture)) {
1598
+ specularGlossiness.diffuseTexture = loadTexture(
1599
+ loader,
1600
+ diffuseTexture,
1601
+ frameState,
1602
+ );
1603
+ }
1604
+ if (defined(specularGlossinessTexture)) {
1605
+ specularGlossiness.specularGlossinessTexture = loadTexture(
1606
+ loader,
1607
+ specularGlossinessTexture,
1608
+ frameState,
1609
+ );
1610
+ }
1611
+ specularGlossiness.diffuseFactor = fromArray(Cartesian4, diffuseFactor);
1612
+ specularGlossiness.specularFactor = fromArray(Cartesian3, specularFactor);
1613
+ specularGlossiness.glossinessFactor = glossinessFactor;
1614
+
1615
+ return specularGlossiness;
1616
+ }
1617
+
1618
+ /**
1619
+ * Load textures and parse factors for a metallic-roughness PBR model in a glTF material
1620
+ * @param {GltfLoader} loader
1621
+ * @param {object} metallicRoughnessInfo The contents of a pbrMetallicRoughness property in the parsed glTF JSON
1622
+ * @param {FrameState} frameState
1623
+ * @returns {ModelComponents.MetallicRoughness}
1624
+ * @private
1625
+ */
1626
+ function loadMetallicRoughness(loader, metallicRoughnessInfo, frameState) {
1627
+ const {
1628
+ baseColorTexture,
1629
+ metallicRoughnessTexture,
1630
+ baseColorFactor,
1631
+ metallicFactor,
1632
+ roughnessFactor,
1633
+ } = metallicRoughnessInfo;
1634
+
1635
+ const metallicRoughness = new MetallicRoughness();
1636
+ if (defined(baseColorTexture)) {
1637
+ metallicRoughness.baseColorTexture = loadTexture(
1638
+ loader,
1639
+ baseColorTexture,
1640
+ frameState,
1641
+ );
1642
+ }
1643
+ if (defined(metallicRoughnessTexture)) {
1644
+ metallicRoughness.metallicRoughnessTexture = loadTexture(
1645
+ loader,
1646
+ metallicRoughnessTexture,
1647
+ frameState,
1648
+ );
1649
+ }
1650
+ metallicRoughness.baseColorFactor = fromArray(Cartesian4, baseColorFactor);
1651
+ metallicRoughness.metallicFactor = metallicFactor;
1652
+ metallicRoughness.roughnessFactor = roughnessFactor;
1653
+
1654
+ return metallicRoughness;
1655
+ }
1656
+
1657
+ function loadSpecular(loader, specularInfo, frameState) {
1658
+ const {
1659
+ specularFactor,
1660
+ specularTexture,
1661
+ specularColorFactor,
1662
+ specularColorTexture,
1663
+ } = specularInfo;
1664
+
1665
+ const specular = new Specular();
1666
+ if (defined(specularTexture)) {
1667
+ specular.specularTexture = loadTexture(loader, specularTexture, frameState);
1668
+ }
1669
+ if (defined(specularColorTexture)) {
1670
+ specular.specularColorTexture = loadTexture(
1671
+ loader,
1672
+ specularColorTexture,
1673
+ frameState,
1674
+ );
1675
+ }
1676
+ specular.specularFactor = specularFactor;
1677
+ specular.specularColorFactor = fromArray(Cartesian3, specularColorFactor);
1678
+
1679
+ return specular;
1680
+ }
1681
+
1682
+ function loadAnisotropy(loader, anisotropyInfo, frameState) {
1683
+ const {
1684
+ anisotropyStrength = Anisotropy.DEFAULT_ANISOTROPY_STRENGTH,
1685
+ anisotropyRotation = Anisotropy.DEFAULT_ANISOTROPY_ROTATION,
1686
+ anisotropyTexture,
1687
+ } = anisotropyInfo;
1688
+
1689
+ const anisotropy = new Anisotropy();
1690
+ if (defined(anisotropyTexture)) {
1691
+ anisotropy.anisotropyTexture = loadTexture(
1692
+ loader,
1693
+ anisotropyTexture,
1694
+ frameState,
1695
+ );
1696
+ }
1697
+ anisotropy.anisotropyStrength = anisotropyStrength;
1698
+ anisotropy.anisotropyRotation = anisotropyRotation;
1699
+
1700
+ return anisotropy;
1701
+ }
1702
+
1703
+ function loadClearcoat(loader, clearcoatInfo, frameState) {
1704
+ const {
1705
+ clearcoatFactor = Clearcoat.DEFAULT_CLEARCOAT_FACTOR,
1706
+ clearcoatTexture,
1707
+ clearcoatRoughnessFactor = Clearcoat.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR,
1708
+ clearcoatRoughnessTexture,
1709
+ clearcoatNormalTexture,
1710
+ } = clearcoatInfo;
1711
+
1712
+ const clearcoat = new Clearcoat();
1713
+ if (defined(clearcoatTexture)) {
1714
+ clearcoat.clearcoatTexture = loadTexture(
1715
+ loader,
1716
+ clearcoatTexture,
1717
+ frameState,
1718
+ );
1719
+ }
1720
+ if (defined(clearcoatRoughnessTexture)) {
1721
+ clearcoat.clearcoatRoughnessTexture = loadTexture(
1722
+ loader,
1723
+ clearcoatRoughnessTexture,
1724
+ frameState,
1725
+ );
1726
+ }
1727
+ if (defined(clearcoatNormalTexture)) {
1728
+ clearcoat.clearcoatNormalTexture = loadTexture(
1729
+ loader,
1730
+ clearcoatNormalTexture,
1731
+ frameState,
1732
+ );
1733
+ }
1734
+ clearcoat.clearcoatFactor = clearcoatFactor;
1735
+ clearcoat.clearcoatRoughnessFactor = clearcoatRoughnessFactor;
1736
+
1737
+ return clearcoat;
1738
+ }
1739
+
1740
+ /**
1741
+ * Load textures and parse factors and flags for a glTF material
1742
+ *
1743
+ * @param {GltfLoader} loader
1744
+ * @param {object} gltfMaterial An entry from the <code>.materials</code> array in the glTF JSON
1745
+ * @param {FrameState} frameState
1746
+ * @returns {ModelComponents.Material}
1747
+ * @private
1748
+ */
1749
+ function loadMaterial(loader, gltfMaterial, frameState) {
1750
+ const material = new Material();
1751
+
1752
+ const extensions = gltfMaterial.extensions ?? Frozen.EMPTY_OBJECT;
1753
+ const pbrSpecularGlossiness = extensions.KHR_materials_pbrSpecularGlossiness;
1754
+ const pbrSpecular = extensions.KHR_materials_specular;
1755
+ const pbrAnisotropy = extensions.KHR_materials_anisotropy;
1756
+ const pbrClearcoat = extensions.KHR_materials_clearcoat;
1757
+ const pbrMetallicRoughness = gltfMaterial.pbrMetallicRoughness;
1758
+
1759
+ material.unlit = defined(extensions.KHR_materials_unlit);
1760
+
1761
+ if (defined(pbrSpecularGlossiness)) {
1762
+ material.specularGlossiness = loadSpecularGlossiness(
1763
+ loader,
1764
+ pbrSpecularGlossiness,
1765
+ frameState,
1766
+ );
1767
+ } else {
1768
+ if (defined(pbrMetallicRoughness)) {
1769
+ material.metallicRoughness = loadMetallicRoughness(
1770
+ loader,
1771
+ pbrMetallicRoughness,
1772
+ frameState,
1773
+ );
1774
+ }
1775
+ if (defined(pbrSpecular) && !material.unlit) {
1776
+ material.specular = loadSpecular(loader, pbrSpecular, frameState);
1777
+ }
1778
+ if (defined(pbrAnisotropy) && !material.unlit) {
1779
+ material.anisotropy = loadAnisotropy(loader, pbrAnisotropy, frameState);
1780
+ }
1781
+ if (defined(pbrClearcoat) && !material.unlit) {
1782
+ material.clearcoat = loadClearcoat(loader, pbrClearcoat, frameState);
1783
+ }
1784
+ }
1785
+
1786
+ // Top level textures
1787
+ if (defined(gltfMaterial.emissiveTexture)) {
1788
+ material.emissiveTexture = loadTexture(
1789
+ loader,
1790
+ gltfMaterial.emissiveTexture,
1791
+ frameState,
1792
+ );
1793
+ }
1794
+ // Normals aren't used for classification, so don't load the normal texture.
1795
+ if (defined(gltfMaterial.normalTexture) && !loader._loadForClassification) {
1796
+ material.normalTexture = loadTexture(
1797
+ loader,
1798
+ gltfMaterial.normalTexture,
1799
+ frameState,
1800
+ );
1801
+ }
1802
+ if (defined(gltfMaterial.occlusionTexture)) {
1803
+ material.occlusionTexture = loadTexture(
1804
+ loader,
1805
+ gltfMaterial.occlusionTexture,
1806
+ frameState,
1807
+ );
1808
+ }
1809
+ material.emissiveFactor = fromArray(Cartesian3, gltfMaterial.emissiveFactor);
1810
+ material.alphaMode = gltfMaterial.alphaMode;
1811
+ material.alphaCutoff = gltfMaterial.alphaCutoff;
1812
+ material.doubleSided = gltfMaterial.doubleSided;
1813
+
1814
+ return material;
1815
+ }
1816
+
1817
+ // for EXT_mesh_features
1818
+ function loadFeatureIdAttribute(featureIds, positionalLabel) {
1819
+ const featureIdAttribute = new FeatureIdAttribute();
1820
+ featureIdAttribute.featureCount = featureIds.featureCount;
1821
+ featureIdAttribute.nullFeatureId = featureIds.nullFeatureId;
1822
+ featureIdAttribute.propertyTableId = featureIds.propertyTable;
1823
+ featureIdAttribute.setIndex = featureIds.attribute;
1824
+ featureIdAttribute.label = featureIds.label;
1825
+ featureIdAttribute.positionalLabel = positionalLabel;
1826
+ return featureIdAttribute;
1827
+ }
1828
+
1829
+ // for backwards compatibility with EXT_feature_metadata
1830
+ function loadFeatureIdAttributeLegacy(
1831
+ gltfFeatureIdAttribute,
1832
+ featureTableId,
1833
+ featureCount,
1834
+ positionalLabel,
1835
+ ) {
1836
+ const featureIdAttribute = new FeatureIdAttribute();
1837
+ const featureIds = gltfFeatureIdAttribute.featureIds;
1838
+ featureIdAttribute.featureCount = featureCount;
1839
+ featureIdAttribute.propertyTableId = featureTableId;
1840
+ featureIdAttribute.setIndex = getSetIndex(featureIds.attribute);
1841
+ featureIdAttribute.positionalLabel = positionalLabel;
1842
+ return featureIdAttribute;
1843
+ }
1844
+
1845
+ // implicit ranges do not exist in EXT_mesh_features and EXT_instance_features,
1846
+ // but both default to the vertex/instance ID which is like
1847
+ // an implicit range of {offset: 0, repeat: 1}
1848
+ function loadDefaultFeatureIds(featureIds, positionalLabel) {
1849
+ const featureIdRange = new FeatureIdImplicitRange();
1850
+ featureIdRange.propertyTableId = featureIds.propertyTable;
1851
+ featureIdRange.featureCount = featureIds.featureCount;
1852
+ featureIdRange.nullFeatureId = featureIds.nullFeatureId;
1853
+ featureIdRange.label = featureIds.label;
1854
+ featureIdRange.positionalLabel = positionalLabel;
1855
+ featureIdRange.offset = 0;
1856
+ featureIdRange.repeat = 1;
1857
+ return featureIdRange;
1858
+ }
1859
+
1860
+ // for backwards compatibility with EXT_feature_metadata
1861
+ function loadFeatureIdImplicitRangeLegacy(
1862
+ gltfFeatureIdAttribute,
1863
+ featureTableId,
1864
+ featureCount,
1865
+ positionalLabel,
1866
+ ) {
1867
+ const featureIdRange = new FeatureIdImplicitRange();
1868
+ const featureIds = gltfFeatureIdAttribute.featureIds;
1869
+ featureIdRange.propertyTableId = featureTableId;
1870
+ featureIdRange.featureCount = featureCount;
1871
+
1872
+ // constant/divisor was renamed to offset/repeat
1873
+ featureIdRange.offset = featureIds.constant ?? 0;
1874
+ // The default is now undefined
1875
+ const divisor = featureIds.divisor ?? 0;
1876
+ featureIdRange.repeat = divisor === 0 ? undefined : divisor;
1877
+
1878
+ featureIdRange.positionalLabel = positionalLabel;
1879
+ return featureIdRange;
1880
+ }
1881
+
1882
+ // for EXT_mesh_features
1883
+ function loadFeatureIdTexture(
1884
+ loader,
1885
+ gltfFeatureIdTexture,
1886
+ frameState,
1887
+ positionalLabel,
1888
+ ) {
1889
+ const featureIdTexture = new FeatureIdTexture();
1890
+
1891
+ featureIdTexture.featureCount = gltfFeatureIdTexture.featureCount;
1892
+ featureIdTexture.nullFeatureId = gltfFeatureIdTexture.nullFeatureId;
1893
+ featureIdTexture.propertyTableId = gltfFeatureIdTexture.propertyTable;
1894
+ featureIdTexture.label = gltfFeatureIdTexture.label;
1895
+ featureIdTexture.positionalLabel = positionalLabel;
1896
+
1897
+ const textureInfo = gltfFeatureIdTexture.texture;
1898
+ featureIdTexture.textureReader = loadTexture(
1899
+ loader,
1900
+ textureInfo,
1901
+ frameState,
1902
+ Sampler.NEAREST, // Feature ID textures require nearest sampling
1903
+ );
1904
+
1905
+ // Though the new channel index is more future-proof, this implementation
1906
+ // only supports RGBA textures. At least for now, the string representation
1907
+ // is more useful for generating shader code.
1908
+ const channels = defined(textureInfo.channels) ? textureInfo.channels : [0];
1909
+ const channelString = channels
1910
+ .map(function (channelIndex) {
1911
+ return "rgba".charAt(channelIndex);
1912
+ })
1913
+ .join("");
1914
+ featureIdTexture.textureReader.channels = channelString;
1915
+
1916
+ return featureIdTexture;
1917
+ }
1918
+
1919
+ // for backwards compatibility with EXT_feature_metadata
1920
+ function loadFeatureIdTextureLegacy(
1921
+ loader,
1922
+ gltfFeatureIdTexture,
1923
+ featureTableId,
1924
+ frameState,
1925
+ featureCount,
1926
+ positionalLabel,
1927
+ ) {
1928
+ const featureIdTexture = new FeatureIdTexture();
1929
+ const featureIds = gltfFeatureIdTexture.featureIds;
1930
+ const textureInfo = featureIds.texture;
1931
+ featureIdTexture.featureCount = featureCount;
1932
+ featureIdTexture.propertyTableId = featureTableId;
1933
+ featureIdTexture.textureReader = loadTexture(
1934
+ loader,
1935
+ textureInfo,
1936
+ frameState,
1937
+ Sampler.NEAREST, // Feature ID textures require nearest sampling
1938
+ );
1939
+
1940
+ featureIdTexture.textureReader.channels = featureIds.channels;
1941
+ featureIdTexture.positionalLabel = positionalLabel;
1942
+
1943
+ return featureIdTexture;
1944
+ }
1945
+
1946
+ function loadMorphTarget(
1947
+ loader,
1948
+ target,
1949
+ needsPostProcessing,
1950
+ primitiveLoadPlan,
1951
+ frameState,
1952
+ ) {
1953
+ const morphTarget = new MorphTarget();
1954
+
1955
+ // Don't pass in primitive or draco object since morph targets can't be draco compressed
1956
+ const primitive = undefined;
1957
+ const draco = undefined;
1958
+ const spz = undefined;
1959
+ const hasInstances = false;
1960
+
1961
+ for (const semantic in target) {
1962
+ if (!target.hasOwnProperty(semantic)) {
1963
+ continue;
1964
+ }
1965
+ const accessorId = target[semantic];
1966
+
1967
+ const semanticInfo = getSemanticInfo(
1968
+ loader,
1969
+ VertexAttributeSemantic,
1970
+ semantic,
1971
+ );
1972
+
1973
+ const attributePlan = loadVertexAttribute(
1974
+ loader,
1975
+ accessorId,
1976
+ semanticInfo,
1977
+ primitive,
1978
+ draco,
1979
+ spz,
1980
+ hasInstances,
1981
+ needsPostProcessing,
1982
+ frameState,
1983
+ );
1984
+ morphTarget.attributes.push(attributePlan.attribute);
1985
+
1986
+ // The load plan doesn't need to distinguish morph target attributes from
1987
+ // regular attributes
1988
+ primitiveLoadPlan.attributePlans.push(attributePlan);
1989
+ }
1990
+
1991
+ return morphTarget;
1992
+ }
1993
+
1994
+ function fetchSpzExtensionFrom(extensions) {
1995
+ const gaussianSplatting = extensions?.KHR_gaussian_splatting;
1996
+ const gsExtensions = gaussianSplatting?.extensions;
1997
+ const spz = gsExtensions?.KHR_gaussian_splatting_compression_spz_2;
1998
+ if (defined(spz)) {
1999
+ return spz;
2000
+ }
2001
+
2002
+ return undefined;
2003
+ }
2004
+
2005
+ /**
2006
+ * Load resources associated with a mesh primitive for a glTF node
2007
+ * @param {GltfLoader} loader
2008
+ * @param {object} gltfPrimitive One of the primitives in a mesh
2009
+ * @param {boolean} hasInstances True if the node using this mesh has instances
2010
+ * @param {FrameState} frameState
2011
+ * @returns {ModelComponents.Primitive}
2012
+ * @private
2013
+ */
2014
+ function loadPrimitive(loader, gltfPrimitive, hasInstances, frameState) {
2015
+ const primitive = new Primitive();
2016
+ const primitivePlan = new PrimitiveLoadPlan(primitive);
2017
+ loader._primitiveLoadPlans.push(primitivePlan);
2018
+
2019
+ const materialId = gltfPrimitive.material;
2020
+ if (defined(materialId)) {
2021
+ primitive.material = loadMaterial(
2022
+ loader,
2023
+ loader.gltfJson.materials[materialId],
2024
+ frameState,
2025
+ );
2026
+ }
2027
+
2028
+ const extensions = gltfPrimitive.extensions ?? Frozen.EMPTY_OBJECT;
2029
+
2030
+ let needsPostProcessing = false;
2031
+ const outlineExtension = extensions.CESIUM_primitive_outline;
2032
+ if (loader._loadPrimitiveOutline && defined(outlineExtension)) {
2033
+ needsPostProcessing = true;
2034
+ primitivePlan.needsOutlines = true;
2035
+ primitivePlan.outlineIndices = loadPrimitiveOutline(
2036
+ loader,
2037
+ outlineExtension,
2038
+ primitivePlan,
2039
+ );
2040
+ }
2041
+
2042
+ // Edge Visibility
2043
+ const edgeVisibilityExtension = extensions.EXT_mesh_primitive_edge_visibility;
2044
+ const hasEdgeVisibility = defined(edgeVisibilityExtension);
2045
+ if (hasEdgeVisibility) {
2046
+ const visibilityAccessor =
2047
+ loader.gltfJson.accessors[edgeVisibilityExtension.visibility];
2048
+ if (!defined(visibilityAccessor)) {
2049
+ throw new RuntimeError("Edge visibility accessor not found!");
2050
+ }
2051
+ const visibilityValues = loadAccessor(loader, visibilityAccessor);
2052
+ primitive.edgeVisibility = {
2053
+ visibility: visibilityValues,
2054
+ material: edgeVisibilityExtension.material,
2055
+ };
2056
+
2057
+ // Load silhouette normals
2058
+ if (defined(edgeVisibilityExtension.silhouetteNormals)) {
2059
+ const silhouetteNormalsAccessor =
2060
+ loader.gltfJson.accessors[edgeVisibilityExtension.silhouetteNormals];
2061
+ if (defined(silhouetteNormalsAccessor)) {
2062
+ const silhouetteNormalsValues = loadAccessor(
2063
+ loader,
2064
+ silhouetteNormalsAccessor,
2065
+ );
2066
+ primitive.edgeVisibility.silhouetteNormals = silhouetteNormalsValues;
2067
+ }
2068
+ }
2069
+
2070
+ // Load line strings
2071
+ if (defined(edgeVisibilityExtension.lineStrings)) {
2072
+ primitivePlan.edgeVisibility.lineStrings =
2073
+ edgeVisibilityExtension.lineStrings;
2074
+ }
2075
+ }
2076
+
2077
+ //support the latest glTF spec and the legacy extension
2078
+ const spzExtension = fetchSpzExtensionFrom(extensions);
2079
+
2080
+ if (defined(spzExtension)) {
2081
+ needsPostProcessing = true;
2082
+ primitivePlan.needsGaussianSplats = true;
2083
+ }
2084
+
2085
+ const loadForClassification = loader._loadForClassification;
2086
+ const draco = extensions.KHR_draco_mesh_compression;
2087
+
2088
+ let hasFeatureIds = false;
2089
+ const attributes = gltfPrimitive.attributes;
2090
+ if (defined(attributes)) {
2091
+ for (const semantic in attributes) {
2092
+ if (!attributes.hasOwnProperty(semantic)) {
2093
+ continue;
2094
+ }
2095
+ const accessorId = attributes[semantic];
2096
+ const semanticInfo = getSemanticInfo(
2097
+ loader,
2098
+ VertexAttributeSemantic,
2099
+ semantic,
2100
+ );
2101
+
2102
+ const modelSemantic = semanticInfo.modelSemantic;
2103
+ if (loadForClassification && !isClassificationAttribute(modelSemantic)) {
2104
+ continue;
2105
+ }
2106
+
2107
+ if (modelSemantic === VertexAttributeSemantic.FEATURE_ID) {
2108
+ hasFeatureIds = true;
2109
+ }
2110
+
2111
+ const attributePlan = loadVertexAttribute(
2112
+ loader,
2113
+ accessorId,
2114
+ semanticInfo,
2115
+ gltfPrimitive,
2116
+ draco,
2117
+ spzExtension,
2118
+ hasInstances,
2119
+ needsPostProcessing,
2120
+ frameState,
2121
+ );
2122
+
2123
+ primitivePlan.attributePlans.push(attributePlan);
2124
+ primitive.attributes.push(attributePlan.attribute);
2125
+ }
2126
+ }
2127
+
2128
+ const targets = gltfPrimitive.targets;
2129
+ // Morph targets are disabled for classification models.
2130
+ if (defined(targets) && !loadForClassification) {
2131
+ for (let i = 0; i < targets.length; ++i) {
2132
+ primitive.morphTargets.push(
2133
+ loadMorphTarget(
2134
+ loader,
2135
+ targets[i],
2136
+ needsPostProcessing,
2137
+ primitivePlan,
2138
+ frameState,
2139
+ ),
2140
+ );
2141
+ }
2142
+ }
2143
+
2144
+ const indices = gltfPrimitive.indices;
2145
+ if (defined(indices)) {
2146
+ const indicesPlan = loadIndices(
2147
+ loader,
2148
+ indices,
2149
+ gltfPrimitive,
2150
+ hasFeatureIds,
2151
+ needsPostProcessing,
2152
+ frameState,
2153
+ );
2154
+
2155
+ if (defined(indicesPlan)) {
2156
+ primitivePlan.indicesPlan = indicesPlan;
2157
+ primitive.indices = indicesPlan.indices;
2158
+ }
2159
+ }
2160
+
2161
+ // With the latest revision, feature IDs are defined in EXT_mesh_features
2162
+ // while EXT_structural_metadata is for defining property textures and
2163
+ // property mappings. In the legacy EXT_feature_metadata, these concepts
2164
+ // were all in one extension.
2165
+ const structuralMetadata = extensions.EXT_structural_metadata;
2166
+ const meshFeatures = extensions.EXT_mesh_features;
2167
+ const featureMetadataLegacy = extensions.EXT_feature_metadata;
2168
+ const hasFeatureMetadataLegacy = defined(featureMetadataLegacy);
2169
+
2170
+ // Load feature Ids
2171
+ if (defined(meshFeatures)) {
2172
+ loadPrimitiveFeatures(loader, primitive, meshFeatures, frameState);
2173
+ } else if (hasFeatureMetadataLegacy) {
2174
+ loadPrimitiveFeaturesLegacy(
2175
+ loader,
2176
+ primitive,
2177
+ featureMetadataLegacy,
2178
+ frameState,
2179
+ );
2180
+ }
2181
+
2182
+ // Load structural metadata
2183
+ if (defined(structuralMetadata)) {
2184
+ loadPrimitiveMetadata(primitive, structuralMetadata);
2185
+ } else if (hasFeatureMetadataLegacy) {
2186
+ loadPrimitiveMetadataLegacy(loader, primitive, featureMetadataLegacy);
2187
+ }
2188
+
2189
+ const primitiveType = gltfPrimitive.mode;
2190
+ if (loadForClassification && primitiveType !== PrimitiveType.TRIANGLES) {
2191
+ throw new RuntimeError(
2192
+ "Only triangle meshes can be used for classification.",
2193
+ );
2194
+ }
2195
+ primitive.primitiveType = primitiveType;
2196
+
2197
+ return primitive;
2198
+ }
2199
+
2200
+ function loadPrimitiveOutline(loader, outlineExtension) {
2201
+ const accessorId = outlineExtension.indices;
2202
+ const accessor = loader.gltfJson.accessors[accessorId];
2203
+ const useQuaternion = false;
2204
+ return loadAccessor(loader, accessor, useQuaternion);
2205
+ }
2206
+
2207
+ // For EXT_mesh_features
2208
+ function loadPrimitiveFeatures(
2209
+ loader,
2210
+ primitive,
2211
+ meshFeaturesExtension,
2212
+ frameState,
2213
+ ) {
2214
+ let featureIdsArray;
2215
+ if (
2216
+ defined(meshFeaturesExtension) &&
2217
+ defined(meshFeaturesExtension.featureIds)
2218
+ ) {
2219
+ featureIdsArray = meshFeaturesExtension.featureIds;
2220
+ } else {
2221
+ featureIdsArray = [];
2222
+ }
2223
+
2224
+ for (let i = 0; i < featureIdsArray.length; i++) {
2225
+ const featureIds = featureIdsArray[i];
2226
+ const label = `featureId_${i}`;
2227
+
2228
+ let featureIdComponent;
2229
+ if (defined(featureIds.texture)) {
2230
+ featureIdComponent = loadFeatureIdTexture(
2231
+ loader,
2232
+ featureIds,
2233
+ frameState,
2234
+ label,
2235
+ );
2236
+ } else if (defined(featureIds.attribute)) {
2237
+ featureIdComponent = loadFeatureIdAttribute(featureIds, label);
2238
+ } else {
2239
+ // default to vertex ID, in other words an implicit range with
2240
+ // offset: 0, repeat: 1
2241
+ featureIdComponent = loadDefaultFeatureIds(featureIds, label);
2242
+ }
2243
+
2244
+ primitive.featureIds.push(featureIdComponent);
2245
+ }
2246
+ }
2247
+
2248
+ // For EXT_feature_metadata
2249
+ function loadPrimitiveFeaturesLegacy(
2250
+ loader,
2251
+ primitive,
2252
+ metadataExtension,
2253
+ frameState,
2254
+ ) {
2255
+ // For looking up the featureCount for each set of feature IDs
2256
+ const { featureTables } = loader.gltfJson.extensions.EXT_feature_metadata;
2257
+
2258
+ let nextFeatureIdIndex = 0;
2259
+
2260
+ // Feature ID Attributes
2261
+ const featureIdAttributes = metadataExtension.featureIdAttributes;
2262
+ if (defined(featureIdAttributes)) {
2263
+ for (let i = 0; i < featureIdAttributes.length; ++i) {
2264
+ const featureIdAttribute = featureIdAttributes[i];
2265
+ const featureTableId = featureIdAttribute.featureTable;
2266
+ const propertyTableId =
2267
+ loader._sortedPropertyTableIds.indexOf(featureTableId);
2268
+ const featureCount = featureTables[featureTableId].count;
2269
+ const label = `featureId_${nextFeatureIdIndex}`;
2270
+ nextFeatureIdIndex++;
2271
+
2272
+ let featureIdComponent;
2273
+ if (defined(featureIdAttribute.featureIds.attribute)) {
2274
+ featureIdComponent = loadFeatureIdAttributeLegacy(
2275
+ featureIdAttribute,
2276
+ propertyTableId,
2277
+ featureCount,
2278
+ label,
2279
+ );
2280
+ } else {
2281
+ featureIdComponent = loadFeatureIdImplicitRangeLegacy(
2282
+ featureIdAttribute,
2283
+ propertyTableId,
2284
+ featureCount,
2285
+ label,
2286
+ );
2287
+ }
2288
+ primitive.featureIds.push(featureIdComponent);
2289
+ }
2290
+ }
2291
+
2292
+ // Feature ID Textures
2293
+ const featureIdTextures = metadataExtension.featureIdTextures;
2294
+ if (defined(featureIdTextures)) {
2295
+ for (let i = 0; i < featureIdTextures.length; ++i) {
2296
+ const featureIdTexture = featureIdTextures[i];
2297
+ const featureTableId = featureIdTexture.featureTable;
2298
+ const propertyTableId =
2299
+ loader._sortedPropertyTableIds.indexOf(featureTableId);
2300
+ const featureCount = featureTables[featureTableId].count;
2301
+ const featureIdLabel = `featureId_${nextFeatureIdIndex}`;
2302
+ nextFeatureIdIndex++;
2303
+
2304
+ const featureIdComponent = loadFeatureIdTextureLegacy(
2305
+ loader,
2306
+ featureIdTexture,
2307
+ propertyTableId,
2308
+ frameState,
2309
+ featureCount,
2310
+ featureIdLabel,
2311
+ );
2312
+ // Feature ID textures are added after feature ID attributes in the list
2313
+ primitive.featureIds.push(featureIdComponent);
2314
+ }
2315
+ }
2316
+ }
2317
+
2318
+ // For primitive-level EXT_structural_metadata
2319
+ function loadPrimitiveMetadata(primitive, structuralMetadataExtension) {
2320
+ if (!defined(structuralMetadataExtension)) {
2321
+ return;
2322
+ }
2323
+ const { propertyTextures, propertyAttributes } = structuralMetadataExtension;
2324
+
2325
+ if (defined(propertyTextures)) {
2326
+ primitive.propertyTextureIds = propertyTextures;
2327
+ }
2328
+
2329
+ if (defined(propertyAttributes)) {
2330
+ primitive.propertyAttributeIds = propertyAttributes;
2331
+ }
2332
+ }
2333
+
2334
+ // For EXT_feature_metadata
2335
+ function loadPrimitiveMetadataLegacy(loader, primitive, metadataExtension) {
2336
+ // Feature Textures
2337
+ if (defined(metadataExtension.featureTextures)) {
2338
+ // feature textures are now identified by an integer index. To convert the
2339
+ // string IDs to integers, find their place in the sorted list of feature
2340
+ // table names
2341
+ primitive.propertyTextureIds = metadataExtension.featureTextures.map(
2342
+ function (id) {
2343
+ return loader._sortedFeatureTextureIds.indexOf(id);
2344
+ },
2345
+ );
2346
+ }
2347
+ }
2348
+
2349
+ function loadInstances(loader, nodeExtensions, frameState) {
2350
+ const instancingExtension = nodeExtensions.EXT_mesh_gpu_instancing;
2351
+
2352
+ const instances = new Instances();
2353
+ const attributes = instancingExtension.attributes;
2354
+ if (defined(attributes)) {
2355
+ for (const semantic in attributes) {
2356
+ if (!attributes.hasOwnProperty(semantic)) {
2357
+ continue;
2358
+ }
2359
+ const accessorId = attributes[semantic];
2360
+ instances.attributes.push(
2361
+ loadInstancedAttribute(
2362
+ loader,
2363
+ accessorId,
2364
+ attributes,
2365
+ semantic,
2366
+ frameState,
2367
+ ),
2368
+ );
2369
+ }
2370
+ }
2371
+
2372
+ const instancingExtExtensions =
2373
+ instancingExtension.extensions ?? Frozen.EMPTY_OBJECT;
2374
+ const instanceFeatures = nodeExtensions.EXT_instance_features;
2375
+ const featureMetadataLegacy = instancingExtExtensions.EXT_feature_metadata;
2376
+
2377
+ if (defined(instanceFeatures)) {
2378
+ loadInstanceFeatures(instances, instanceFeatures);
2379
+ } else if (defined(featureMetadataLegacy)) {
2380
+ loadInstanceFeaturesLegacy(
2381
+ loader.gltfJson,
2382
+ instances,
2383
+ featureMetadataLegacy,
2384
+ loader._sortedPropertyTableIds,
2385
+ );
2386
+ }
2387
+
2388
+ return instances;
2389
+ }
2390
+
2391
+ // For EXT_mesh_features
2392
+ function loadInstanceFeatures(instances, instanceFeaturesExtension) {
2393
+ // feature IDs are required in EXT_instance_features
2394
+ const featureIdsArray = instanceFeaturesExtension.featureIds;
2395
+
2396
+ for (let i = 0; i < featureIdsArray.length; i++) {
2397
+ const featureIds = featureIdsArray[i];
2398
+ const label = `instanceFeatureId_${i}`;
2399
+
2400
+ let featureIdComponent;
2401
+ if (defined(featureIds.attribute)) {
2402
+ featureIdComponent = loadFeatureIdAttribute(featureIds, label);
2403
+ } else {
2404
+ // in EXT_instance_features, the default is to assign IDs by instance
2405
+ // ID. This can be expressed with offset: 0, repeat: 1
2406
+ featureIdComponent = loadDefaultFeatureIds(featureIds, label);
2407
+ }
2408
+
2409
+ instances.featureIds.push(featureIdComponent);
2410
+ }
2411
+ }
2412
+
2413
+ // For backwards-compatibility with EXT_feature_metadata
2414
+ function loadInstanceFeaturesLegacy(
2415
+ gltf,
2416
+ instances,
2417
+ metadataExtension,
2418
+ sortedPropertyTableIds,
2419
+ ) {
2420
+ // For looking up the featureCount for each set of feature IDs
2421
+ const featureTables = gltf.extensions.EXT_feature_metadata.featureTables;
2422
+
2423
+ const featureIdAttributes = metadataExtension.featureIdAttributes;
2424
+ if (defined(featureIdAttributes)) {
2425
+ for (let i = 0; i < featureIdAttributes.length; ++i) {
2426
+ const featureIdAttribute = featureIdAttributes[i];
2427
+ const featureTableId = featureIdAttribute.featureTable;
2428
+ const propertyTableId = sortedPropertyTableIds.indexOf(featureTableId);
2429
+ const featureCount = featureTables[featureTableId].count;
2430
+ const label = `instanceFeatureId_${i}`;
2431
+
2432
+ let featureIdComponent;
2433
+ if (defined(featureIdAttribute.featureIds.attribute)) {
2434
+ featureIdComponent = loadFeatureIdAttributeLegacy(
2435
+ featureIdAttribute,
2436
+ propertyTableId,
2437
+ featureCount,
2438
+ label,
2439
+ );
2440
+ } else {
2441
+ featureIdComponent = loadFeatureIdImplicitRangeLegacy(
2442
+ featureIdAttribute,
2443
+ propertyTableId,
2444
+ featureCount,
2445
+ label,
2446
+ );
2447
+ }
2448
+ instances.featureIds.push(featureIdComponent);
2449
+ }
2450
+ }
2451
+ }
2452
+
2453
+ /**
2454
+ * Load resources associated with one node from a glTF JSON
2455
+ * @param {GltfLoader} loader
2456
+ * @param {object} gltfNode An entry from the <code>.nodes</code> array in the glTF JSON
2457
+ * @param {FrameState} frameState
2458
+ * @returns {ModelComponents.Node}
2459
+ * @private
2460
+ */
2461
+ function loadNode(loader, gltfNode, frameState) {
2462
+ const node = new Node();
2463
+
2464
+ node.name = gltfNode.name;
2465
+
2466
+ node.matrix = fromArray(Matrix4, gltfNode.matrix);
2467
+ node.translation = fromArray(Cartesian3, gltfNode.translation);
2468
+ node.rotation = fromArray(Quaternion, gltfNode.rotation);
2469
+ node.scale = fromArray(Cartesian3, gltfNode.scale);
2470
+
2471
+ const nodeExtensions = gltfNode.extensions ?? Frozen.EMPTY_OBJECT;
2472
+ const instancingExtension = nodeExtensions.EXT_mesh_gpu_instancing;
2473
+ const articulationsExtension = nodeExtensions.AGI_articulations;
2474
+
2475
+ if (defined(instancingExtension)) {
2476
+ if (loader._loadForClassification) {
2477
+ throw new RuntimeError(
2478
+ "Models with the EXT_mesh_gpu_instancing extension cannot be used for classification.",
2479
+ );
2480
+ }
2481
+ node.instances = loadInstances(loader, nodeExtensions, frameState);
2482
+ }
2483
+
2484
+ if (defined(articulationsExtension)) {
2485
+ node.articulationName = articulationsExtension.articulationName;
2486
+ }
2487
+
2488
+ const meshId = gltfNode.mesh;
2489
+ if (defined(meshId)) {
2490
+ const mesh = loader.gltfJson.meshes[meshId];
2491
+ const primitives = getMeshPrimitives(mesh);
2492
+ for (let i = 0; i < primitives.length; ++i) {
2493
+ node.primitives.push(
2494
+ loadPrimitive(
2495
+ loader,
2496
+ primitives[i],
2497
+ defined(node.instances),
2498
+ frameState,
2499
+ ),
2500
+ );
2501
+ }
2502
+
2503
+ // If the node has no weights array, it will look for the weights array provided
2504
+ // by the mesh. If both are undefined, it will default to an array of zero weights.
2505
+ const morphWeights = gltfNode.weights ?? mesh.weights;
2506
+ const targets = node.primitives[0].morphTargets;
2507
+
2508
+ // Since meshes are not stored as separate components, the mesh weights will still
2509
+ // be stored at the node level.
2510
+ node.morphWeights = defined(morphWeights)
2511
+ ? morphWeights.slice()
2512
+ : new Array(targets.length).fill(0.0);
2513
+ }
2514
+
2515
+ return node;
2516
+ }
2517
+
2518
+ /**
2519
+ * Load resources associated with the nodes in a glTF JSON
2520
+ * @param {GltfLoader} loader
2521
+ * @param {FrameState} frameState
2522
+ * @returns {ModelComponents.Node[]}
2523
+ * @private
2524
+ */
2525
+ function loadNodes(loader, frameState) {
2526
+ const nodeJsons = loader.gltfJson.nodes;
2527
+ if (!defined(nodeJsons)) {
2528
+ return [];
2529
+ }
2530
+
2531
+ const loadedNodes = nodeJsons.map(function (nodeJson, i) {
2532
+ const node = loadNode(loader, nodeJson, frameState);
2533
+ node.index = i;
2534
+ return node;
2535
+ });
2536
+
2537
+ for (let i = 0; i < loadedNodes.length; ++i) {
2538
+ const childrenNodeIds = nodeJsons[i].children;
2539
+ if (defined(childrenNodeIds)) {
2540
+ for (let j = 0; j < childrenNodeIds.length; ++j) {
2541
+ loadedNodes[i].children.push(loadedNodes[childrenNodeIds[j]]);
2542
+ }
2543
+ }
2544
+ }
2545
+
2546
+ return loadedNodes;
2547
+ }
2548
+
2549
+ function loadSkin(loader, gltfSkin, nodes) {
2550
+ const skin = new Skin();
2551
+
2552
+ const jointIds = gltfSkin.joints;
2553
+ skin.joints = jointIds.map((jointId) => nodes[jointId]);
2554
+
2555
+ const inverseBindMatricesAccessorId = gltfSkin.inverseBindMatrices;
2556
+ if (defined(inverseBindMatricesAccessorId)) {
2557
+ const accessor = loader.gltfJson.accessors[inverseBindMatricesAccessorId];
2558
+ skin.inverseBindMatrices = loadAccessor(loader, accessor);
2559
+ } else {
2560
+ skin.inverseBindMatrices = new Array(jointIds.length).fill(
2561
+ Matrix4.IDENTITY,
2562
+ );
2563
+ }
2564
+
2565
+ return skin;
2566
+ }
2567
+
2568
+ function loadSkins(loader, nodes) {
2569
+ const skinJsons = loader.gltfJson.skins;
2570
+
2571
+ // Skins are disabled for classification models.
2572
+ if (loader._loadForClassification || !defined(skinJsons)) {
2573
+ return [];
2574
+ }
2575
+
2576
+ const loadedSkins = skinJsons.map(function (skinJson, i) {
2577
+ const skin = loadSkin(loader, skinJson, nodes);
2578
+ skin.index = i;
2579
+ return skin;
2580
+ });
2581
+
2582
+ const nodeJsons = loader.gltfJson.nodes;
2583
+ for (let i = 0; i < nodes.length; ++i) {
2584
+ const skinId = nodeJsons[i].skin;
2585
+ if (defined(skinId)) {
2586
+ nodes[i].skin = loadedSkins[skinId];
2587
+ }
2588
+ }
2589
+
2590
+ return loadedSkins;
2591
+ }
2592
+
2593
+ async function loadStructuralMetadata(
2594
+ loader,
2595
+ extension,
2596
+ extensionLegacy,
2597
+ frameState,
2598
+ ) {
2599
+ const structuralMetadataLoader = new GltfStructuralMetadataLoader({
2600
+ gltf: loader.gltfJson,
2601
+ extension: extension,
2602
+ extensionLegacy: extensionLegacy,
2603
+ gltfResource: loader._gltfResource,
2604
+ baseResource: loader._baseResource,
2605
+ supportedImageFormats: loader._supportedImageFormats,
2606
+ frameState: frameState,
2607
+ asynchronous: loader._asynchronous,
2608
+ });
2609
+ loader._structuralMetadataLoader = structuralMetadataLoader;
2610
+ return structuralMetadataLoader.load();
2611
+ }
2612
+
2613
+ async function loadMeshPrimitiveGpm(loader, gltf, extension, frameState) {
2614
+ const meshPrimitiveGpmLoader = new GltfMeshPrimitiveGpmLoader({
2615
+ gltf: gltf,
2616
+ extension: extension,
2617
+ gltfResource: loader._gltfResource,
2618
+ baseResource: loader._baseResource,
2619
+ supportedImageFormats: loader._supportedImageFormats,
2620
+ frameState: frameState,
2621
+ asynchronous: loader._asynchronous,
2622
+ });
2623
+ loader._meshPrimitiveGpmLoader = meshPrimitiveGpmLoader;
2624
+ return meshPrimitiveGpmLoader.load();
2625
+ }
2626
+
2627
+ function loadAnimationSampler(loader, gltfSampler) {
2628
+ const animationSampler = new AnimationSampler();
2629
+ const accessors = loader.gltfJson.accessors;
2630
+
2631
+ const inputAccessor = accessors[gltfSampler.input];
2632
+ animationSampler.input = loadAccessor(loader, inputAccessor);
2633
+
2634
+ const gltfInterpolation = gltfSampler.interpolation;
2635
+ animationSampler.interpolation =
2636
+ InterpolationType[gltfInterpolation] ?? InterpolationType.LINEAR;
2637
+
2638
+ const outputAccessor = accessors[gltfSampler.output];
2639
+ animationSampler.output = loadAccessor(loader, outputAccessor, true);
2640
+
2641
+ return animationSampler;
2642
+ }
2643
+
2644
+ function loadAnimationTarget(gltfTarget, nodes) {
2645
+ const animationTarget = new AnimationTarget();
2646
+
2647
+ const nodeIndex = gltfTarget.node;
2648
+ // If the node isn't defined, the animation channel should be ignored.
2649
+ // It's easiest to signal this by returning undefined.
2650
+ if (!defined(nodeIndex)) {
2651
+ return undefined;
2652
+ }
2653
+
2654
+ animationTarget.node = nodes[nodeIndex];
2655
+
2656
+ const path = gltfTarget.path.toUpperCase();
2657
+ animationTarget.path = AnimatedPropertyType[path];
2658
+
2659
+ return animationTarget;
2660
+ }
2661
+
2662
+ function loadAnimationChannel(gltfChannel, samplers, nodes) {
2663
+ const animationChannel = new AnimationChannel();
2664
+
2665
+ const samplerIndex = gltfChannel.sampler;
2666
+ animationChannel.sampler = samplers[samplerIndex];
2667
+ animationChannel.target = loadAnimationTarget(gltfChannel.target, nodes);
2668
+
2669
+ return animationChannel;
2670
+ }
2671
+
2672
+ function loadAnimation(loader, animationJson, nodes) {
2673
+ const animation = new Animation();
2674
+ animation.name = animationJson.name;
2675
+
2676
+ const samplers = animationJson.samplers.map(function (samplerJson, i) {
2677
+ const sampler = loadAnimationSampler(loader, samplerJson);
2678
+ sampler.index = i;
2679
+ return sampler;
2680
+ });
2681
+
2682
+ const channels = animationJson.channels.map(function (channelJson) {
2683
+ return loadAnimationChannel(channelJson, samplers, nodes);
2684
+ });
2685
+
2686
+ animation.samplers = samplers;
2687
+ animation.channels = channels;
2688
+
2689
+ return animation;
2690
+ }
2691
+
2692
+ function loadAnimations(loader, nodes) {
2693
+ const animationJsons = loader.gltfJson.animations;
2694
+
2695
+ // Animations are disabled for classification models.
2696
+ if (loader._loadForClassification || !defined(animationJsons)) {
2697
+ return [];
2698
+ }
2699
+
2700
+ const animations = animationJsons.map(function (animationJson, i) {
2701
+ const animation = loadAnimation(loader, animationJson, nodes);
2702
+ animation.index = i;
2703
+ return animation;
2704
+ });
2705
+
2706
+ return animations;
2707
+ }
2708
+
2709
+ function loadArticulationStage(gltfStage) {
2710
+ const stage = new ArticulationStage();
2711
+ stage.name = gltfStage.name;
2712
+
2713
+ const type = gltfStage.type.toUpperCase();
2714
+ stage.type = ArticulationStageType[type];
2715
+
2716
+ stage.minimumValue = gltfStage.minimumValue;
2717
+ stage.maximumValue = gltfStage.maximumValue;
2718
+ stage.initialValue = gltfStage.initialValue;
2719
+
2720
+ return stage;
2721
+ }
2722
+
2723
+ function loadArticulation(articulationJson) {
2724
+ const articulation = new Articulation();
2725
+ articulation.name = articulationJson.name;
2726
+ articulation.stages = articulationJson.stages.map(loadArticulationStage);
2727
+ return articulation;
2728
+ }
2729
+
2730
+ function loadArticulations(gltf) {
2731
+ const extensions = gltf.extensions ?? Frozen.EMPTY_OBJECT;
2732
+ const articulationJsons = extensions.AGI_articulations?.articulations;
2733
+ if (!defined(articulationJsons)) {
2734
+ return [];
2735
+ }
2736
+ return articulationJsons.map(loadArticulation);
2737
+ }
2738
+
2739
+ function getSceneNodeIds(gltf) {
2740
+ let nodesIds;
2741
+ if (defined(gltf.scenes) && defined(gltf.scene)) {
2742
+ nodesIds = gltf.scenes[gltf.scene].nodes;
2743
+ }
2744
+ nodesIds = nodesIds ?? gltf.nodes;
2745
+ nodesIds = defined(nodesIds) ? nodesIds : [];
2746
+ return nodesIds;
2747
+ }
2748
+
2749
+ function loadScene(gltf, nodes) {
2750
+ const scene = new Scene();
2751
+ const sceneNodeIds = getSceneNodeIds(gltf);
2752
+ scene.nodes = sceneNodeIds.map(function (sceneNodeId) {
2753
+ return nodes[sceneNodeId];
2754
+ });
2755
+ return scene;
2756
+ }
2757
+
2758
+ const scratchCenter = new Cartesian3();
2759
+
2760
+ /**
2761
+ * Parse the glTF which populates the loaders arrays. Loading promises will be created, and will
2762
+ * resolve once the loaders are ready (i.e. all external resources
2763
+ * have been fetched and all GPU resources have been created). Loaders that
2764
+ * create GPU resources need to be processed every frame until they become
2765
+ * ready since the JobScheduler is not able to execute all jobs in a single
2766
+ * frame. Any promise failures are collected, and will be handled synchronously in process().
2767
+ * Also note that it's fine to call process before a loader is ready to process or
2768
+ * after it has failed; nothing will happen.
2769
+ *
2770
+ * @param {GltfLoader} loader
2771
+ * @param {FrameState} frameState
2772
+ * @returns {Promise} A Promise that resolves when all loaders are ready
2773
+ * @private
2774
+ */
2775
+ function parse(loader, frameState) {
2776
+ const gltf = loader.gltfJson;
2777
+ const extensions = gltf.extensions ?? Frozen.EMPTY_OBJECT;
2778
+ const structuralMetadataExtension = extensions.EXT_structural_metadata;
2779
+ const featureMetadataExtensionLegacy = extensions.EXT_feature_metadata;
2780
+ const cesiumRtcExtension = extensions.CESIUM_RTC;
2781
+
2782
+ if (defined(featureMetadataExtensionLegacy)) {
2783
+ // If the old EXT_feature_metadata extension is present, sort the IDs of the
2784
+ // feature tables and feature textures so we don't have to do this once
2785
+ // per primitive.
2786
+ //
2787
+ // This must run before loadNodes so these IDs are available when
2788
+ // attributes are processed.
2789
+ const featureTables = featureMetadataExtensionLegacy.featureTables;
2790
+ const featureTextures = featureMetadataExtensionLegacy.featureTextures;
2791
+ const allPropertyTableIds = defined(featureTables) ? featureTables : [];
2792
+ const allFeatureTextureIds = defined(featureTextures)
2793
+ ? featureTextures
2794
+ : [];
2795
+ loader._sortedPropertyTableIds = Object.keys(allPropertyTableIds).sort();
2796
+ loader._sortedFeatureTextureIds = Object.keys(allFeatureTextureIds).sort();
2797
+ }
2798
+
2799
+ const nodes = loadNodes(loader, frameState);
2800
+ const skins = loadSkins(loader, nodes);
2801
+ const animations = loadAnimations(loader, nodes);
2802
+ const articulations = loadArticulations(gltf);
2803
+ const scene = loadScene(gltf, nodes);
2804
+
2805
+ const components = new Components();
2806
+ const asset = new Asset();
2807
+ const copyright = gltf.asset.copyright;
2808
+ if (defined(copyright)) {
2809
+ const credits = copyright.split(";").map(function (string) {
2810
+ return new Credit(string.trim());
2811
+ });
2812
+ asset.credits = credits;
2813
+ }
2814
+
2815
+ components.asset = asset;
2816
+ components.scene = scene;
2817
+ components.nodes = nodes;
2818
+ components.skins = skins;
2819
+ components.animations = animations;
2820
+ components.articulations = articulations;
2821
+ components.upAxis = loader._upAxis;
2822
+ components.forwardAxis = loader._forwardAxis;
2823
+
2824
+ if (defined(cesiumRtcExtension)) {
2825
+ // CESIUM_RTC is almost always WGS84 coordinates so no axis conversion needed
2826
+ const center = Cartesian3.fromArray(
2827
+ cesiumRtcExtension.center,
2828
+ 0,
2829
+ scratchCenter,
2830
+ );
2831
+ components.transform = Matrix4.fromTranslation(
2832
+ center,
2833
+ components.transform,
2834
+ );
2835
+ }
2836
+
2837
+ loader._components = components;
2838
+
2839
+ // Load structural metadata (property tables and property textures)
2840
+ if (
2841
+ defined(structuralMetadataExtension) ||
2842
+ defined(featureMetadataExtensionLegacy)
2843
+ ) {
2844
+ const promise = loadStructuralMetadata(
2845
+ loader,
2846
+ structuralMetadataExtension,
2847
+ featureMetadataExtensionLegacy,
2848
+ frameState,
2849
+ );
2850
+ loader._loaderPromises.push(promise);
2851
+ }
2852
+
2853
+ // Load NGA_gpm_local from root object
2854
+ const gpmExtension = extensions.NGA_gpm_local;
2855
+ if (defined(gpmExtension)) {
2856
+ const gltfGpmLocal = GltfGpmLoader.load(gpmExtension);
2857
+ loader._components.extensions["NGA_gpm_local"] = gltfGpmLocal;
2858
+ }
2859
+
2860
+ // Load NGA_gpm_local from mesh primitives
2861
+ const meshes = gltf.meshes;
2862
+ if (defined(meshes)) {
2863
+ for (const mesh of meshes) {
2864
+ const primitives = mesh.primitives;
2865
+ if (defined(primitives)) {
2866
+ for (const primitive of primitives) {
2867
+ const primitiveExtensions = primitive.extensions;
2868
+ if (defined(primitiveExtensions)) {
2869
+ const meshPrimitiveGpmExtension = primitiveExtensions.NGA_gpm_local;
2870
+ if (defined(meshPrimitiveGpmExtension)) {
2871
+ const promise = loadMeshPrimitiveGpm(
2872
+ loader,
2873
+ gltf,
2874
+ meshPrimitiveGpmExtension,
2875
+ frameState,
2876
+ );
2877
+ loader._loaderPromises.push(promise);
2878
+ }
2879
+ }
2880
+ }
2881
+ }
2882
+ }
2883
+ }
2884
+
2885
+ // Gather promises and handle any errors
2886
+ const readyPromises = [];
2887
+ addAllToArray(readyPromises, loader._loaderPromises);
2888
+
2889
+ // When incrementallyLoadTextures is true, the errors are caught and thrown individually
2890
+ // since it doesn't affect the overall loader state
2891
+ if (!loader._incrementallyLoadTextures) {
2892
+ addAllToArray(readyPromises, loader._texturesPromises);
2893
+ }
2894
+
2895
+ return Promise.all(readyPromises);
2896
+ }
2897
+
2898
+ function unloadTextures(loader) {
2899
+ const textureLoaders = loader._textureLoaders;
2900
+ for (let i = 0; i < textureLoaders.length; ++i) {
2901
+ textureLoaders[i] =
2902
+ !textureLoaders[i].isDestroyed() &&
2903
+ ResourceCache.unload(textureLoaders[i]);
2904
+ }
2905
+ loader._textureLoaders.length = 0;
2906
+ }
2907
+
2908
+ function unloadBufferViewLoaders(loader) {
2909
+ const bufferViewLoaders = loader._bufferViewLoaders;
2910
+ for (let i = 0; i < bufferViewLoaders.length; ++i) {
2911
+ bufferViewLoaders[i] =
2912
+ !bufferViewLoaders[i].isDestroyed() &&
2913
+ ResourceCache.unload(bufferViewLoaders[i]);
2914
+ }
2915
+ loader._bufferViewLoaders.length = 0;
2916
+ }
2917
+
2918
+ function unloadGeometry(loader) {
2919
+ const geometryLoaders = loader._geometryLoaders;
2920
+ for (let i = 0; i < geometryLoaders.length; ++i) {
2921
+ geometryLoaders[i] =
2922
+ !geometryLoaders[i].isDestroyed() &&
2923
+ ResourceCache.unload(geometryLoaders[i]);
2924
+ }
2925
+ loader._geometryLoaders.length = 0;
2926
+ }
2927
+
2928
+ function unloadGeneratedAttributes(loader) {
2929
+ const buffers = loader._postProcessBuffers;
2930
+ for (let i = 0; i < buffers.length; i++) {
2931
+ const buffer = buffers[i];
2932
+ if (!buffer.isDestroyed()) {
2933
+ buffer.destroy();
2934
+ }
2935
+ }
2936
+ buffers.length = 0;
2937
+ }
2938
+
2939
+ function unloadStructuralMetadata(loader) {
2940
+ if (
2941
+ defined(loader._structuralMetadataLoader) &&
2942
+ !loader._structuralMetadataLoader.isDestroyed()
2943
+ ) {
2944
+ loader._structuralMetadataLoader.destroy();
2945
+ loader._structuralMetadataLoader = undefined;
2946
+ }
2947
+ }
2948
+
2949
+ function unloadMeshPrimitiveGpm(loader) {
2950
+ if (
2951
+ defined(loader._meshPrimitiveGpmLoader) &&
2952
+ !loader._meshPrimitiveGpmLoader.isDestroyed()
2953
+ ) {
2954
+ loader._meshPrimitiveGpmLoader.destroy();
2955
+ loader._meshPrimitiveGpmLoader = undefined;
2956
+ }
2957
+ }
2958
+
2959
+ /**
2960
+ * Returns whether the resource has been unloaded.
2961
+ * @private
2962
+ */
2963
+ GltfLoader.prototype.isUnloaded = function () {
2964
+ return this._state === GltfLoaderState.UNLOADED;
2965
+ };
2966
+
2967
+ /**
2968
+ * Unloads the resource.
2969
+ * @private
2970
+ */
2971
+ GltfLoader.prototype.unload = function () {
2972
+ if (defined(this._gltfJsonLoader) && !this._gltfJsonLoader.isDestroyed()) {
2973
+ ResourceCache.unload(this._gltfJsonLoader);
2974
+ }
2975
+ this._gltfJsonLoader = undefined;
2976
+
2977
+ unloadTextures(this);
2978
+ unloadBufferViewLoaders(this);
2979
+ unloadGeometry(this);
2980
+ unloadGeneratedAttributes(this);
2981
+ unloadStructuralMetadata(this);
2982
+ unloadMeshPrimitiveGpm(this);
2983
+
2984
+ this._components = undefined;
2985
+ this._typedArray = undefined;
2986
+ this._state = GltfLoaderState.UNLOADED;
2987
+ };
2988
+
2989
+ export default GltfLoader;