@cesium/engine 0.1.0

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