@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,3158 @@
1
+ import ApproximateTerrainHeights from "../Core/ApproximateTerrainHeights.js";
2
+ import Cartesian2 from "../Core/Cartesian2.js";
3
+ import Cartesian3 from "../Core/Cartesian3.js";
4
+ import Cartographic from "../Core/Cartographic.js";
5
+ import Check from "../Core/Check.js";
6
+ import clone from "../Core/clone.js";
7
+ import Color from "../Core/Color.js";
8
+ import Credit from "../Core/Credit.js";
9
+ import defaultValue from "../Core/defaultValue.js";
10
+ import defined from "../Core/defined.js";
11
+ import deprecationWarning from "../Core/deprecationWarning.js";
12
+ import destroyObject from "../Core/destroyObject.js";
13
+ import DeveloperError from "../Core/DeveloperError.js";
14
+ import Ellipsoid from "../Core/Ellipsoid.js";
15
+ import Event from "../Core/Event.js";
16
+ import ImageBasedLighting from "./ImageBasedLighting.js";
17
+ import JulianDate from "../Core/JulianDate.js";
18
+ import ManagedArray from "../Core/ManagedArray.js";
19
+ import CesiumMath from "../Core/Math.js";
20
+ import Matrix4 from "../Core/Matrix4.js";
21
+ import Resource from "../Core/Resource.js";
22
+ import RuntimeError from "../Core/RuntimeError.js";
23
+ import Transforms from "../Core/Transforms.js";
24
+ import ClearCommand from "../Renderer/ClearCommand.js";
25
+ import Pass from "../Renderer/Pass.js";
26
+ import RenderState from "../Renderer/RenderState.js";
27
+ import Axis from "./Axis.js";
28
+ import Cesium3DTile from "./Cesium3DTile.js";
29
+ import Cesium3DTileColorBlendMode from "./Cesium3DTileColorBlendMode.js";
30
+ import Cesium3DTileContentState from "./Cesium3DTileContentState.js";
31
+ import Cesium3DTilesetMetadata from "./Cesium3DTilesetMetadata.js";
32
+ import Cesium3DTileOptimizations from "./Cesium3DTileOptimizations.js";
33
+ import Cesium3DTilePass from "./Cesium3DTilePass.js";
34
+ import Cesium3DTileRefine from "./Cesium3DTileRefine.js";
35
+ import Cesium3DTilesetCache from "./Cesium3DTilesetCache.js";
36
+ import Cesium3DTilesetHeatmap from "./Cesium3DTilesetHeatmap.js";
37
+ import Cesium3DTilesetStatistics from "./Cesium3DTilesetStatistics.js";
38
+ import Cesium3DTileStyleEngine from "./Cesium3DTileStyleEngine.js";
39
+ import ClippingPlaneCollection from "./ClippingPlaneCollection.js";
40
+ import hasExtension from "./hasExtension.js";
41
+ import ImplicitTileset from "./ImplicitTileset.js";
42
+ import ImplicitTileCoordinates from "./ImplicitTileCoordinates.js";
43
+ import LabelCollection from "./LabelCollection.js";
44
+ import oneTimeWarning from "../Core/oneTimeWarning.js";
45
+ import PointCloudEyeDomeLighting from "./PointCloudEyeDomeLighting.js";
46
+ import PointCloudShading from "./PointCloudShading.js";
47
+ import ResourceCache from "./ResourceCache.js";
48
+ import SceneMode from "./SceneMode.js";
49
+ import ShadowMode from "./ShadowMode.js";
50
+ import SplitDirection from "./SplitDirection.js";
51
+ import StencilConstants from "./StencilConstants.js";
52
+ import TileBoundingRegion from "./TileBoundingRegion.js";
53
+ import TileBoundingSphere from "./TileBoundingSphere.js";
54
+ import TileOrientedBoundingBox from "./TileOrientedBoundingBox.js";
55
+
56
+ /**
57
+ * A {@link https://github.com/CesiumGS/3d-tiles/tree/main/specification|3D Tiles tileset},
58
+ * used for streaming massive heterogeneous 3D geospatial datasets.
59
+ *
60
+ * @alias Cesium3DTileset
61
+ * @constructor
62
+ *
63
+ * @param {Object} options Object with the following properties:
64
+ * @param {Resource|String|Promise<Resource>|Promise<String>} options.url The url to a tileset JSON file.
65
+ * @param {Boolean} [options.show=true] Determines if the tileset will be shown.
66
+ * @param {Matrix4} [options.modelMatrix=Matrix4.IDENTITY] A 4x4 transformation matrix that transforms the tileset's root tile.
67
+ * @param {Axis} [options.modelUpAxis=Axis.Y] Which axis is considered up when loading models for tile contents.
68
+ * @param {Axis} [options.modelForwardAxis=Axis.X] Which axis is considered forward when loading models for tile contents.
69
+ * @param {ShadowMode} [options.shadows=ShadowMode.ENABLED] Determines whether the tileset casts or receives shadows from light sources.
70
+ * @param {Number} [options.maximumScreenSpaceError=16] The maximum screen space error used to drive level of detail refinement.
71
+ * @param {Number} [options.maximumMemoryUsage=512] The maximum amount of memory in MB that can be used by the tileset.
72
+ * @param {Boolean} [options.cullWithChildrenBounds=true] Optimization option. Whether to cull tiles using the union of their children bounding volumes.
73
+ * @param {Boolean} [options.cullRequestsWhileMoving=true] Optimization option. Don't request tiles that will likely be unused when they come back because of the camera's movement. This optimization only applies to stationary tilesets.
74
+ * @param {Number} [options.cullRequestsWhileMovingMultiplier=60.0] Optimization option. Multiplier used in culling requests while moving. Larger is more aggressive culling, smaller less aggressive culling.
75
+ * @param {Boolean} [options.preloadWhenHidden=false] Preload tiles when <code>tileset.show</code> is <code>false</code>. Loads tiles as if the tileset is visible but does not render them.
76
+ * @param {Boolean} [options.preloadFlightDestinations=true] Optimization option. Preload tiles at the camera's flight destination while the camera is in flight.
77
+ * @param {Boolean} [options.preferLeaves=false] Optimization option. Prefer loading of leaves first.
78
+ * @param {Boolean} [options.dynamicScreenSpaceError=false] Optimization option. Reduce the screen space error for tiles that are further away from the camera.
79
+ * @param {Number} [options.dynamicScreenSpaceErrorDensity=0.00278] Density used to adjust the dynamic screen space error, similar to fog density.
80
+ * @param {Number} [options.dynamicScreenSpaceErrorFactor=4.0] A factor used to increase the computed dynamic screen space error.
81
+ * @param {Number} [options.dynamicScreenSpaceErrorHeightFalloff=0.25] A ratio of the tileset's height at which the density starts to falloff.
82
+ * @param {Number} [options.progressiveResolutionHeightFraction=0.3] Optimization option. If between (0.0, 0.5], tiles at or above the screen space error for the reduced screen resolution of <code>progressiveResolutionHeightFraction*screenHeight</code> will be prioritized first. This can help get a quick layer of tiles down while full resolution tiles continue to load.
83
+ * @param {Boolean} [options.foveatedScreenSpaceError=true] Optimization option. Prioritize loading tiles in the center of the screen by temporarily raising the screen space error for tiles around the edge of the screen. Screen space error returns to normal once all the tiles in the center of the screen as determined by the {@link Cesium3DTileset#foveatedConeSize} are loaded.
84
+ * @param {Number} [options.foveatedConeSize=0.1] Optimization option. Used when {@link Cesium3DTileset#foveatedScreenSpaceError} is true to control the cone size that determines which tiles are deferred. Tiles that are inside this cone are loaded immediately. Tiles outside the cone are potentially deferred based on how far outside the cone they are and their screen space error. This is controlled by {@link Cesium3DTileset#foveatedInterpolationCallback} and {@link Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation}. Setting this to 0.0 means the cone will be the line formed by the camera position and its view direction. Setting this to 1.0 means the cone encompasses the entire field of view of the camera, disabling the effect.
85
+ * @param {Number} [options.foveatedMinimumScreenSpaceErrorRelaxation=0.0] Optimization option. Used when {@link Cesium3DTileset#foveatedScreenSpaceError} is true to control the starting screen space error relaxation for tiles outside the foveated cone. The screen space error will be raised starting with tileset value up to {@link Cesium3DTileset#maximumScreenSpaceError} based on the provided {@link Cesium3DTileset#foveatedInterpolationCallback}.
86
+ * @param {Cesium3DTileset.foveatedInterpolationCallback} [options.foveatedInterpolationCallback=Math.lerp] Optimization option. Used when {@link Cesium3DTileset#foveatedScreenSpaceError} is true to control how much to raise the screen space error for tiles outside the foveated cone, interpolating between {@link Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation} and {@link Cesium3DTileset#maximumScreenSpaceError}
87
+ * @param {Number} [options.foveatedTimeDelay=0.2] Optimization option. Used when {@link Cesium3DTileset#foveatedScreenSpaceError} is true to control how long in seconds to wait after the camera stops moving before deferred tiles start loading in. This time delay prevents requesting tiles around the edges of the screen when the camera is moving. Setting this to 0.0 will immediately request all tiles in any given view.
88
+ * @param {Boolean} [options.skipLevelOfDetail=false] Optimization option. Determines if level of detail skipping should be applied during the traversal.
89
+ * @param {Number} [options.baseScreenSpaceError=1024] When <code>skipLevelOfDetail</code> is <code>true</code>, the screen space error that must be reached before skipping levels of detail.
90
+ * @param {Number} [options.skipScreenSpaceErrorFactor=16] When <code>skipLevelOfDetail</code> is <code>true</code>, a multiplier defining the minimum screen space error to skip. Used in conjunction with <code>skipLevels</code> to determine which tiles to load.
91
+ * @param {Number} [options.skipLevels=1] When <code>skipLevelOfDetail</code> is <code>true</code>, a constant defining the minimum number of levels to skip when loading tiles. When it is 0, no levels are skipped. Used in conjunction with <code>skipScreenSpaceErrorFactor</code> to determine which tiles to load.
92
+ * @param {Boolean} [options.immediatelyLoadDesiredLevelOfDetail=false] When <code>skipLevelOfDetail</code> is <code>true</code>, only tiles that meet the maximum screen space error will ever be downloaded. Skipping factors are ignored and just the desired tiles are loaded.
93
+ * @param {Boolean} [options.loadSiblings=false] When <code>skipLevelOfDetail</code> is <code>true</code>, determines whether siblings of visible tiles are always downloaded during traversal.
94
+ * @param {ClippingPlaneCollection} [options.clippingPlanes] The {@link ClippingPlaneCollection} used to selectively disable rendering the tileset.
95
+ * @param {ClassificationType} [options.classificationType] Determines whether terrain, 3D Tiles or both will be classified by this tileset. See {@link Cesium3DTileset#classificationType} for details about restrictions and limitations.
96
+ * @param {Ellipsoid} [options.ellipsoid=Ellipsoid.WGS84] The ellipsoid determining the size and shape of the globe.
97
+ * @param {Object} [options.pointCloudShading] Options for constructing a {@link PointCloudShading} object to control point attenuation based on geometric error and lighting.
98
+ * @param {Cartesian3} [options.lightColor] The light color when shading models. When <code>undefined</code> the scene's light color is used instead.
99
+ * @param {ImageBasedLighting} [options.imageBasedLighting] The properties for managing image-based lighting for this tileset.
100
+ * @param {Boolean} [options.backFaceCulling=true] Whether to cull back-facing geometry. When true, back face culling is determined by the glTF material's doubleSided property; when false, back face culling is disabled.
101
+ * @param {Boolean} [options.enableShowOutline=true] Whether to enable outlines for models using the {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension. This can be set to false to avoid the additional processing of geometry at load time. When false, the showOutlines and outlineColor options are ignored.
102
+ * @param {Boolean} [options.showOutline=true] Whether to display the outline for models using the {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension. When true, outlines are displayed. When false, outlines are not displayed.
103
+ * @param {Color} [options.outlineColor=Color.BLACK] The color to use when rendering outlines.
104
+ * @param {Boolean} [options.vectorClassificationOnly=false] Indicates that only the tileset's vector tiles should be used for classification.
105
+ * @param {Boolean} [options.vectorKeepDecodedPositions=false] Whether vector tiles should keep decoded positions in memory. This is used with {@link Cesium3DTileFeature.getPolylinePositions}.
106
+ * @param {String|Number} [options.featureIdLabel="featureId_0"] Label of the feature ID set to use for picking and styling. For EXT_mesh_features, this is the feature ID's label property, or "featureId_N" (where N is the index in the featureIds array) when not specified. EXT_feature_metadata did not have a label field, so such feature ID sets are always labeled "featureId_N" where N is the index in the list of all feature Ids, where feature ID attributes are listed before feature ID textures. If featureIdLabel is an integer N, it is converted to the string "featureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.
107
+ * @param {String|Number} [options.instanceFeatureIdLabel="instanceFeatureId_0"] Label of the instance feature ID set used for picking and styling. If instanceFeatureIdLabel is set to an integer N, it is converted to the string "instanceFeatureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.
108
+ * @param {Boolean} [options.showCreditsOnScreen=false] Whether to display the credits of this tileset on screen.
109
+ * @param {SplitDirection} [options.splitDirection=SplitDirection.NONE] The {@link SplitDirection} split to apply to this tileset.
110
+ * @param {Boolean} [options.projectTo2D=false] Whether to accurately project the tileset to 2D. If this is true, the tileset will be projected accurately to 2D, but it will use more memory to do so. If this is false, the tileset will use less memory and will still render in 2D / CV mode, but its projected positions may be inaccurate. This cannot be set after the tileset has loaded.
111
+ * @param {String} [options.debugHeatmapTilePropertyName] The tile variable to colorize as a heatmap. All rendered tiles will be colorized relative to each other's specified variable value.
112
+ * @param {Boolean} [options.debugFreezeFrame=false] For debugging only. Determines if only the tiles from last frame should be used for rendering.
113
+ * @param {Boolean} [options.debugColorizeTiles=false] For debugging only. When true, assigns a random color to each tile.
114
+ * @param {Boolean} [options.enableDebugWireframe] For debugging only. This must be true for debugWireframe to work in WebGL1. This cannot be set after the tileset has loaded.
115
+ * @param {Boolean} [options.debugWireframe=false] For debugging only. When true, render's each tile's content as a wireframe.
116
+ * @param {Boolean} [options.debugShowBoundingVolume=false] For debugging only. When true, renders the bounding volume for each tile.
117
+ * @param {Boolean} [options.debugShowContentBoundingVolume=false] For debugging only. When true, renders the bounding volume for each tile's content.
118
+ * @param {Boolean} [options.debugShowViewerRequestVolume=false] For debugging only. When true, renders the viewer request volume for each tile.
119
+ * @param {Boolean} [options.debugShowGeometricError=false] For debugging only. When true, draws labels to indicate the geometric error of each tile.
120
+ * @param {Boolean} [options.debugShowRenderingStatistics=false] For debugging only. When true, draws labels to indicate the number of commands, points, triangles and features for each tile.
121
+ * @param {Boolean} [options.debugShowMemoryUsage=false] For debugging only. When true, draws labels to indicate the texture and geometry memory in megabytes used by each tile.
122
+ * @param {Boolean} [options.debugShowUrl=false] For debugging only. When true, draws labels to indicate the url of each tile.
123
+ *
124
+ * @exception {DeveloperError} The tileset must be 3D Tiles version 0.0 or 1.0.
125
+ *
126
+ * @example
127
+ * const tileset = scene.primitives.add(new Cesium.Cesium3DTileset({
128
+ * url : 'http://localhost:8002/tilesets/Seattle/tileset.json'
129
+ * }));
130
+ *
131
+ * @example
132
+ * // Common setting for the skipLevelOfDetail optimization
133
+ * const tileset = scene.primitives.add(new Cesium.Cesium3DTileset({
134
+ * url : 'http://localhost:8002/tilesets/Seattle/tileset.json',
135
+ * skipLevelOfDetail : true,
136
+ * baseScreenSpaceError : 1024,
137
+ * skipScreenSpaceErrorFactor : 16,
138
+ * skipLevels : 1,
139
+ * immediatelyLoadDesiredLevelOfDetail : false,
140
+ * loadSiblings : false,
141
+ * cullWithChildrenBounds : true
142
+ * }));
143
+ *
144
+ * @example
145
+ * // Common settings for the dynamicScreenSpaceError optimization
146
+ * const tileset = scene.primitives.add(new Cesium.Cesium3DTileset({
147
+ * url : 'http://localhost:8002/tilesets/Seattle/tileset.json',
148
+ * dynamicScreenSpaceError : true,
149
+ * dynamicScreenSpaceErrorDensity : 0.00278,
150
+ * dynamicScreenSpaceErrorFactor : 4.0,
151
+ * dynamicScreenSpaceErrorHeightFalloff : 0.25
152
+ * }));
153
+ *
154
+ * @see {@link https://github.com/CesiumGS/3d-tiles/tree/main/specification|3D Tiles specification}
155
+ */
156
+ function Cesium3DTileset(options) {
157
+ options = defaultValue(options, defaultValue.EMPTY_OBJECT);
158
+
159
+ //>>includeStart('debug', pragmas.debug);
160
+ Check.defined("options.url", options.url);
161
+ //>>includeEnd('debug');
162
+
163
+ this._url = undefined;
164
+ this._basePath = undefined;
165
+ this._root = undefined;
166
+ this._resource = undefined;
167
+ this._asset = undefined; // Metadata for the entire tileset
168
+ this._properties = undefined; // Metadata for per-model/point/etc properties
169
+ this._geometricError = undefined; // Geometric error when the tree is not rendered at all
170
+ this._extensionsUsed = undefined;
171
+ this._extensions = undefined;
172
+ this._modelUpAxis = undefined;
173
+ this._modelForwardAxis = undefined;
174
+ this._cache = new Cesium3DTilesetCache();
175
+ this._processingQueue = [];
176
+ this._selectedTiles = [];
177
+ this._emptyTiles = [];
178
+ this._requestedTiles = [];
179
+ this._selectedTilesToStyle = [];
180
+ this._loadTimestamp = undefined;
181
+ this._timeSinceLoad = 0.0;
182
+ this._updatedVisibilityFrame = 0;
183
+ this._updatedModelMatrixFrame = 0;
184
+ this._modelMatrixChanged = false;
185
+ this._previousModelMatrix = undefined;
186
+ this._extras = undefined;
187
+ this._credits = undefined;
188
+
189
+ this._showCreditsOnScreen = defaultValue(options.showCreditsOnScreen, false);
190
+
191
+ this._cullWithChildrenBounds = defaultValue(
192
+ options.cullWithChildrenBounds,
193
+ true
194
+ );
195
+ this._allTilesAdditive = true;
196
+
197
+ this._hasMixedContent = false;
198
+
199
+ this._stencilClearCommand = undefined;
200
+ this._backfaceCommands = new ManagedArray();
201
+
202
+ this._maximumScreenSpaceError = defaultValue(
203
+ options.maximumScreenSpaceError,
204
+ 16
205
+ );
206
+ this._maximumMemoryUsage = defaultValue(options.maximumMemoryUsage, 512);
207
+
208
+ this._styleEngine = new Cesium3DTileStyleEngine();
209
+ this._styleApplied = false;
210
+
211
+ this._modelMatrix = defined(options.modelMatrix)
212
+ ? Matrix4.clone(options.modelMatrix)
213
+ : Matrix4.clone(Matrix4.IDENTITY);
214
+
215
+ this._statistics = new Cesium3DTilesetStatistics();
216
+ this._statisticsLast = new Cesium3DTilesetStatistics();
217
+ this._statisticsPerPass = new Array(Cesium3DTilePass.NUMBER_OF_PASSES);
218
+
219
+ for (let i = 0; i < Cesium3DTilePass.NUMBER_OF_PASSES; ++i) {
220
+ this._statisticsPerPass[i] = new Cesium3DTilesetStatistics();
221
+ }
222
+
223
+ this._requestedTilesInFlight = [];
224
+
225
+ this._maximumPriority = {
226
+ foveatedFactor: -Number.MAX_VALUE,
227
+ depth: -Number.MAX_VALUE,
228
+ distance: -Number.MAX_VALUE,
229
+ reverseScreenSpaceError: -Number.MAX_VALUE,
230
+ };
231
+ this._minimumPriority = {
232
+ foveatedFactor: Number.MAX_VALUE,
233
+ depth: Number.MAX_VALUE,
234
+ distance: Number.MAX_VALUE,
235
+ reverseScreenSpaceError: Number.MAX_VALUE,
236
+ };
237
+ this._heatmap = new Cesium3DTilesetHeatmap(
238
+ options.debugHeatmapTilePropertyName
239
+ );
240
+
241
+ /**
242
+ * Optimization option. Don't request tiles that will likely be unused when they come back because of the camera's movement. This optimization only applies to stationary tilesets.
243
+ *
244
+ * @type {Boolean}
245
+ * @default true
246
+ */
247
+ this.cullRequestsWhileMoving = defaultValue(
248
+ options.cullRequestsWhileMoving,
249
+ true
250
+ );
251
+ this._cullRequestsWhileMoving = false;
252
+
253
+ /**
254
+ * Optimization option. Multiplier used in culling requests while moving. Larger is more aggressive culling, smaller less aggressive culling.
255
+ *
256
+ * @type {Number}
257
+ * @default 60.0
258
+ */
259
+ this.cullRequestsWhileMovingMultiplier = defaultValue(
260
+ options.cullRequestsWhileMovingMultiplier,
261
+ 60.0
262
+ );
263
+
264
+ /**
265
+ * Optimization option. If between (0.0, 0.5], tiles at or above the screen space error for the reduced screen resolution of <code>progressiveResolutionHeightFraction*screenHeight</code> will be prioritized first. This can help get a quick layer of tiles down while full resolution tiles continue to load.
266
+ *
267
+ * @type {Number}
268
+ * @default 0.3
269
+ */
270
+ this.progressiveResolutionHeightFraction = CesiumMath.clamp(
271
+ defaultValue(options.progressiveResolutionHeightFraction, 0.3),
272
+ 0.0,
273
+ 0.5
274
+ );
275
+
276
+ /**
277
+ * Optimization option. Prefer loading of leaves first.
278
+ *
279
+ * @type {Boolean}
280
+ * @default false
281
+ */
282
+ this.preferLeaves = defaultValue(options.preferLeaves, false);
283
+
284
+ this._tilesLoaded = false;
285
+ this._initialTilesLoaded = false;
286
+
287
+ this._tileDebugLabels = undefined;
288
+
289
+ this._classificationType = options.classificationType;
290
+
291
+ this._ellipsoid = defaultValue(options.ellipsoid, Ellipsoid.WGS84);
292
+
293
+ this._initialClippingPlanesOriginMatrix = Matrix4.IDENTITY; // Computed from the tileset JSON.
294
+ this._clippingPlanesOriginMatrix = undefined; // Combines the above with any run-time transforms.
295
+ this._clippingPlanesOriginMatrixDirty = true;
296
+
297
+ this._vectorClassificationOnly = defaultValue(
298
+ options.vectorClassificationOnly,
299
+ false
300
+ );
301
+
302
+ this._vectorKeepDecodedPositions = defaultValue(
303
+ options.vectorKeepDecodedPositions,
304
+ false
305
+ );
306
+
307
+ /**
308
+ * Preload tiles when <code>tileset.show</code> is <code>false</code>. Loads tiles as if the tileset is visible but does not render them.
309
+ *
310
+ * @type {Boolean}
311
+ * @default false
312
+ */
313
+ this.preloadWhenHidden = defaultValue(options.preloadWhenHidden, false);
314
+
315
+ /**
316
+ * Optimization option. Fetch tiles at the camera's flight destination while the camera is in flight.
317
+ *
318
+ * @type {Boolean}
319
+ * @default true
320
+ */
321
+ this.preloadFlightDestinations = defaultValue(
322
+ options.preloadFlightDestinations,
323
+ true
324
+ );
325
+ this._pass = undefined; // Cesium3DTilePass
326
+
327
+ /**
328
+ * Optimization option. Whether the tileset should refine based on a dynamic screen space error. Tiles that are further
329
+ * away will be rendered with lower detail than closer tiles. This improves performance by rendering fewer
330
+ * tiles and making less requests, but may result in a slight drop in visual quality for tiles in the distance.
331
+ * The algorithm is biased towards "street views" where the camera is close to the ground plane of the tileset and looking
332
+ * at the horizon. In addition results are more accurate for tightly fitting bounding volumes like box and region.
333
+ *
334
+ * @type {Boolean}
335
+ * @default false
336
+ */
337
+ this.dynamicScreenSpaceError = defaultValue(
338
+ options.dynamicScreenSpaceError,
339
+ false
340
+ );
341
+
342
+ /**
343
+ * Optimization option. Prioritize loading tiles in the center of the screen by temporarily raising the
344
+ * screen space error for tiles around the edge of the screen. Screen space error returns to normal once all
345
+ * the tiles in the center of the screen as determined by the {@link Cesium3DTileset#foveatedConeSize} are loaded.
346
+ *
347
+ * @type {Boolean}
348
+ * @default true
349
+ */
350
+ this.foveatedScreenSpaceError = defaultValue(
351
+ options.foveatedScreenSpaceError,
352
+ true
353
+ );
354
+ this._foveatedConeSize = defaultValue(options.foveatedConeSize, 0.1);
355
+ this._foveatedMinimumScreenSpaceErrorRelaxation = defaultValue(
356
+ options.foveatedMinimumScreenSpaceErrorRelaxation,
357
+ 0.0
358
+ );
359
+
360
+ /**
361
+ * Gets or sets a callback to control how much to raise the screen space error for tiles outside the foveated cone,
362
+ * interpolating between {@link Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation} and {@link Cesium3DTileset#maximumScreenSpaceError}.
363
+ *
364
+ * @type {Cesium3DTileset.foveatedInterpolationCallback}
365
+ */
366
+ this.foveatedInterpolationCallback = defaultValue(
367
+ options.foveatedInterpolationCallback,
368
+ CesiumMath.lerp
369
+ );
370
+
371
+ /**
372
+ * Optimization option. Used when {@link Cesium3DTileset#foveatedScreenSpaceError} is true to control
373
+ * how long in seconds to wait after the camera stops moving before deferred tiles start loading in.
374
+ * This time delay prevents requesting tiles around the edges of the screen when the camera is moving.
375
+ * Setting this to 0.0 will immediately request all tiles in any given view.
376
+ *
377
+ * @type {Number}
378
+ * @default 0.2
379
+ */
380
+ this.foveatedTimeDelay = defaultValue(options.foveatedTimeDelay, 0.2);
381
+
382
+ /**
383
+ * A scalar that determines the density used to adjust the dynamic screen space error, similar to {@link Fog}. Increasing this
384
+ * value has the effect of increasing the maximum screen space error for all tiles, but in a non-linear fashion.
385
+ * The error starts at 0.0 and increases exponentially until a midpoint is reached, and then approaches 1.0 asymptotically.
386
+ * This has the effect of keeping high detail in the closer tiles and lower detail in the further tiles, with all tiles
387
+ * beyond a certain distance all roughly having an error of 1.0.
388
+ * <p>
389
+ * The dynamic error is in the range [0.0, 1.0) and is multiplied by <code>dynamicScreenSpaceErrorFactor</code> to produce the
390
+ * final dynamic error. This dynamic error is then subtracted from the tile's actual screen space error.
391
+ * </p>
392
+ * <p>
393
+ * Increasing <code>dynamicScreenSpaceErrorDensity</code> has the effect of moving the error midpoint closer to the camera.
394
+ * It is analogous to moving fog closer to the camera.
395
+ * </p>
396
+ *
397
+ * @type {Number}
398
+ * @default 0.00278
399
+ */
400
+ this.dynamicScreenSpaceErrorDensity = 0.00278;
401
+
402
+ /**
403
+ * A factor used to increase the screen space error of tiles for dynamic screen space error. As this value increases less tiles
404
+ * are requested for rendering and tiles in the distance will have lower detail. If set to zero, the feature will be disabled.
405
+ *
406
+ * @type {Number}
407
+ * @default 4.0
408
+ */
409
+ this.dynamicScreenSpaceErrorFactor = 4.0;
410
+
411
+ /**
412
+ * A ratio of the tileset's height at which the density starts to falloff. If the camera is below this height the
413
+ * full computed density is applied, otherwise the density falls off. This has the effect of higher density at
414
+ * street level views.
415
+ * <p>
416
+ * Valid values are between 0.0 and 1.0.
417
+ * </p>
418
+ *
419
+ * @type {Number}
420
+ * @default 0.25
421
+ */
422
+ this.dynamicScreenSpaceErrorHeightFalloff = 0.25;
423
+
424
+ this._dynamicScreenSpaceErrorComputedDensity = 0.0; // Updated based on the camera position and direction
425
+
426
+ /**
427
+ * Determines whether the tileset casts or receives shadows from light sources.
428
+ * <p>
429
+ * Enabling shadows has a performance impact. A tileset that casts shadows must be rendered twice, once from the camera and again from the light's point of view.
430
+ * </p>
431
+ * <p>
432
+ * Shadows are rendered only when {@link Viewer#shadows} is <code>true</code>.
433
+ * </p>
434
+ *
435
+ * @type {ShadowMode}
436
+ * @default ShadowMode.ENABLED
437
+ */
438
+ this.shadows = defaultValue(options.shadows, ShadowMode.ENABLED);
439
+
440
+ /**
441
+ * Determines if the tileset will be shown.
442
+ *
443
+ * @type {Boolean}
444
+ * @default true
445
+ */
446
+ this.show = defaultValue(options.show, true);
447
+
448
+ /**
449
+ * Defines how per-feature colors set from the Cesium API or declarative styling blend with the source colors from
450
+ * the original feature, e.g. glTF material or per-point color in the tile.
451
+ *
452
+ * @type {Cesium3DTileColorBlendMode}
453
+ * @default Cesium3DTileColorBlendMode.HIGHLIGHT
454
+ */
455
+ this.colorBlendMode = Cesium3DTileColorBlendMode.HIGHLIGHT;
456
+
457
+ /**
458
+ * Defines the value used to linearly interpolate between the source color and feature color when the {@link Cesium3DTileset#colorBlendMode} is <code>MIX</code>.
459
+ * A value of 0.0 results in the source color while a value of 1.0 results in the feature color, with any value in-between
460
+ * resulting in a mix of the source color and feature color.
461
+ *
462
+ * @type {Number}
463
+ * @default 0.5
464
+ */
465
+ this.colorBlendAmount = 0.5;
466
+
467
+ this._pointCloudShading = new PointCloudShading(options.pointCloudShading);
468
+ this._pointCloudEyeDomeLighting = new PointCloudEyeDomeLighting();
469
+
470
+ /**
471
+ * The event fired to indicate progress of loading new tiles. This event is fired when a new tile
472
+ * is requested, when a requested tile is finished downloading, and when a downloaded tile has been
473
+ * processed and is ready to render.
474
+ * <p>
475
+ * The number of pending tile requests, <code>numberOfPendingRequests</code>, and number of tiles
476
+ * processing, <code>numberOfTilesProcessing</code> are passed to the event listener.
477
+ * </p>
478
+ * <p>
479
+ * This event is fired at the end of the frame after the scene is rendered.
480
+ * </p>
481
+ *
482
+ * @type {Event}
483
+ * @default new Event()
484
+ *
485
+ * @example
486
+ * tileset.loadProgress.addEventListener(function(numberOfPendingRequests, numberOfTilesProcessing) {
487
+ * if ((numberOfPendingRequests === 0) && (numberOfTilesProcessing === 0)) {
488
+ * console.log('Stopped loading');
489
+ * return;
490
+ * }
491
+ *
492
+ * console.log(`Loading: requests: ${numberOfPendingRequests}, processing: ${numberOfTilesProcessing}`);
493
+ * });
494
+ */
495
+ this.loadProgress = new Event();
496
+
497
+ /**
498
+ * The event fired to indicate that all tiles that meet the screen space error this frame are loaded. The tileset
499
+ * is completely loaded for this view.
500
+ * <p>
501
+ * This event is fired at the end of the frame after the scene is rendered.
502
+ * </p>
503
+ *
504
+ * @type {Event}
505
+ * @default new Event()
506
+ *
507
+ * @example
508
+ * tileset.allTilesLoaded.addEventListener(function() {
509
+ * console.log('All tiles are loaded');
510
+ * });
511
+ *
512
+ * @see Cesium3DTileset#tilesLoaded
513
+ */
514
+ this.allTilesLoaded = new Event();
515
+
516
+ /**
517
+ * The event fired to indicate that all tiles that meet the screen space error this frame are loaded. This event
518
+ * is fired once when all tiles in the initial view are loaded.
519
+ * <p>
520
+ * This event is fired at the end of the frame after the scene is rendered.
521
+ * </p>
522
+ *
523
+ * @type {Event}
524
+ * @default new Event()
525
+ *
526
+ * @example
527
+ * tileset.initialTilesLoaded.addEventListener(function() {
528
+ * console.log('Initial tiles are loaded');
529
+ * });
530
+ *
531
+ * @see Cesium3DTileset#allTilesLoaded
532
+ */
533
+ this.initialTilesLoaded = new Event();
534
+
535
+ /**
536
+ * The event fired to indicate that a tile's content was loaded.
537
+ * <p>
538
+ * The loaded {@link Cesium3DTile} is passed to the event listener.
539
+ * </p>
540
+ * <p>
541
+ * This event is fired during the tileset traversal while the frame is being rendered
542
+ * so that updates to the tile take effect in the same frame. Do not create or modify
543
+ * Cesium entities or primitives during the event listener.
544
+ * </p>
545
+ *
546
+ * @type {Event}
547
+ * @default new Event()
548
+ *
549
+ * @example
550
+ * tileset.tileLoad.addEventListener(function(tile) {
551
+ * console.log('A tile was loaded.');
552
+ * });
553
+ */
554
+ this.tileLoad = new Event();
555
+
556
+ /**
557
+ * The event fired to indicate that a tile's content was unloaded.
558
+ * <p>
559
+ * The unloaded {@link Cesium3DTile} is passed to the event listener.
560
+ * </p>
561
+ * <p>
562
+ * This event is fired immediately before the tile's content is unloaded while the frame is being
563
+ * rendered so that the event listener has access to the tile's content. Do not create
564
+ * or modify Cesium entities or primitives during the event listener.
565
+ * </p>
566
+ *
567
+ * @type {Event}
568
+ * @default new Event()
569
+ *
570
+ * @example
571
+ * tileset.tileUnload.addEventListener(function(tile) {
572
+ * console.log('A tile was unloaded from the cache.');
573
+ * });
574
+ *
575
+ * @see Cesium3DTileset#maximumMemoryUsage
576
+ * @see Cesium3DTileset#trimLoadedTiles
577
+ */
578
+ this.tileUnload = new Event();
579
+
580
+ /**
581
+ * The event fired to indicate that a tile's content failed to load.
582
+ * <p>
583
+ * If there are no event listeners, error messages will be logged to the console.
584
+ * </p>
585
+ * <p>
586
+ * The error object passed to the listener contains two properties:
587
+ * <ul>
588
+ * <li><code>url</code>: the url of the failed tile.</li>
589
+ * <li><code>message</code>: the error message.</li>
590
+ * </ul>
591
+ * <p>
592
+ * If multiple contents are present, this event is raised once per inner content with errors.
593
+ * </p>
594
+ *
595
+ * @type {Event}
596
+ * @default new Event()
597
+ *
598
+ * @example
599
+ * tileset.tileFailed.addEventListener(function(error) {
600
+ * console.log(`An error occurred loading tile: ${error.url}`);
601
+ * console.log(`Error: ${error.message}`);
602
+ * });
603
+ */
604
+ this.tileFailed = new Event();
605
+
606
+ /**
607
+ * This event fires once for each visible tile in a frame. This can be used to manually
608
+ * style a tileset.
609
+ * <p>
610
+ * The visible {@link Cesium3DTile} is passed to the event listener.
611
+ * </p>
612
+ * <p>
613
+ * This event is fired during the tileset traversal while the frame is being rendered
614
+ * so that updates to the tile take effect in the same frame. Do not create or modify
615
+ * Cesium entities or primitives during the event listener.
616
+ * </p>
617
+ *
618
+ * @type {Event}
619
+ * @default new Event()
620
+ *
621
+ * @example
622
+ * tileset.tileVisible.addEventListener(function(tile) {
623
+ * if (tile.content instanceof Cesium.Model3DTileContent) {
624
+ * console.log('A 3D model tile is visible.');
625
+ * }
626
+ * });
627
+ *
628
+ * @example
629
+ * // Apply a red style and then manually set random colors for every other feature when the tile becomes visible.
630
+ * tileset.style = new Cesium.Cesium3DTileStyle({
631
+ * color : 'color("red")'
632
+ * });
633
+ * tileset.tileVisible.addEventListener(function(tile) {
634
+ * const content = tile.content;
635
+ * const featuresLength = content.featuresLength;
636
+ * for (let i = 0; i < featuresLength; i+=2) {
637
+ * content.getFeature(i).color = Cesium.Color.fromRandom();
638
+ * }
639
+ * });
640
+ */
641
+ this.tileVisible = new Event();
642
+
643
+ /**
644
+ * Optimization option. Determines if level of detail skipping should be applied during the traversal.
645
+ * <p>
646
+ * The common strategy for replacement-refinement traversal is to store all levels of the tree in memory and require
647
+ * all children to be loaded before the parent can refine. With this optimization levels of the tree can be skipped
648
+ * entirely and children can be rendered alongside their parents. The tileset requires significantly less memory when
649
+ * using this optimization.
650
+ * </p>
651
+ *
652
+ * @type {Boolean}
653
+ * @default false
654
+ */
655
+ this.skipLevelOfDetail = defaultValue(options.skipLevelOfDetail, false);
656
+ this._skipLevelOfDetail = this.skipLevelOfDetail;
657
+ this._disableSkipLevelOfDetail = false;
658
+
659
+ /**
660
+ * The screen space error that must be reached before skipping levels of detail.
661
+ * <p>
662
+ * Only used when {@link Cesium3DTileset#skipLevelOfDetail} is <code>true</code>.
663
+ * </p>
664
+ *
665
+ * @type {Number}
666
+ * @default 1024
667
+ */
668
+ this.baseScreenSpaceError = defaultValue(options.baseScreenSpaceError, 1024);
669
+
670
+ /**
671
+ * Multiplier defining the minimum screen space error to skip.
672
+ * For example, if a tile has screen space error of 100, no tiles will be loaded unless they
673
+ * are leaves or have a screen space error <code><= 100 / skipScreenSpaceErrorFactor</code>.
674
+ * <p>
675
+ * Only used when {@link Cesium3DTileset#skipLevelOfDetail} is <code>true</code>.
676
+ * </p>
677
+ *
678
+ * @type {Number}
679
+ * @default 16
680
+ */
681
+ this.skipScreenSpaceErrorFactor = defaultValue(
682
+ options.skipScreenSpaceErrorFactor,
683
+ 16
684
+ );
685
+
686
+ /**
687
+ * Constant defining the minimum number of levels to skip when loading tiles. When it is 0, no levels are skipped.
688
+ * For example, if a tile is level 1, no tiles will be loaded unless they are at level greater than 2.
689
+ * <p>
690
+ * Only used when {@link Cesium3DTileset#skipLevelOfDetail} is <code>true</code>.
691
+ * </p>
692
+ *
693
+ * @type {Number}
694
+ * @default 1
695
+ */
696
+ this.skipLevels = defaultValue(options.skipLevels, 1);
697
+
698
+ /**
699
+ * When true, only tiles that meet the maximum screen space error will ever be downloaded.
700
+ * Skipping factors are ignored and just the desired tiles are loaded.
701
+ * <p>
702
+ * Only used when {@link Cesium3DTileset#skipLevelOfDetail} is <code>true</code>.
703
+ * </p>
704
+ *
705
+ * @type {Boolean}
706
+ * @default false
707
+ */
708
+ this.immediatelyLoadDesiredLevelOfDetail = defaultValue(
709
+ options.immediatelyLoadDesiredLevelOfDetail,
710
+ false
711
+ );
712
+
713
+ /**
714
+ * Determines whether siblings of visible tiles are always downloaded during traversal.
715
+ * This may be useful for ensuring that tiles are already available when the viewer turns left/right.
716
+ * <p>
717
+ * Only used when {@link Cesium3DTileset#skipLevelOfDetail} is <code>true</code>.
718
+ * </p>
719
+ *
720
+ * @type {Boolean}
721
+ * @default false
722
+ */
723
+ this.loadSiblings = defaultValue(options.loadSiblings, false);
724
+
725
+ this._clippingPlanes = undefined;
726
+ this.clippingPlanes = options.clippingPlanes;
727
+
728
+ if (defined(options.imageBasedLighting)) {
729
+ this._imageBasedLighting = options.imageBasedLighting;
730
+ this._shouldDestroyImageBasedLighting = false;
731
+ } else {
732
+ this._imageBasedLighting = new ImageBasedLighting();
733
+ this._shouldDestroyImageBasedLighting = true;
734
+ }
735
+
736
+ /**
737
+ * The light color when shading models. When <code>undefined</code> the scene's light color is used instead.
738
+ * <p>
739
+ * For example, disabling additional light sources by setting
740
+ * <code>tileset.imageBasedLighting.imageBasedLightingFactor = new Cartesian2(0.0, 0.0)</code>
741
+ * will make the tileset much darker. Here, increasing the intensity of the light source will make the tileset brighter.
742
+ * </p>
743
+ *
744
+ * @type {Cartesian3}
745
+ * @default undefined
746
+ */
747
+ this.lightColor = options.lightColor;
748
+
749
+ /**
750
+ * Whether to cull back-facing geometry. When true, back face culling is determined
751
+ * by the glTF material's doubleSided property; when false, back face culling is disabled.
752
+ *
753
+ * @type {Boolean}
754
+ * @default true
755
+ */
756
+ this.backFaceCulling = defaultValue(options.backFaceCulling, true);
757
+
758
+ this._enableShowOutline = defaultValue(options.enableShowOutline, true);
759
+
760
+ /**
761
+ * Whether to display the outline for models using the
762
+ * {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/CESIUM_primitive_outline|CESIUM_primitive_outline} extension.
763
+ * When true, outlines are displayed. When false, outlines are not displayed.
764
+ *
765
+ * @type {Boolean}
766
+ * @default true
767
+ */
768
+ this.showOutline = defaultValue(options.showOutline, true);
769
+
770
+ /**
771
+ * The color to use when rendering outlines.
772
+ *
773
+ * @type {Color}
774
+ * @default Color.BLACK
775
+ */
776
+ this.outlineColor = defaultValue(options.outlineColor, Color.BLACK);
777
+
778
+ /**
779
+ * The {@link SplitDirection} to apply to this tileset.
780
+ *
781
+ * @type {SplitDirection}
782
+ * @default {@link SplitDirection.NONE}
783
+ */
784
+ this.splitDirection = defaultValue(
785
+ options.splitDirection,
786
+ SplitDirection.NONE
787
+ );
788
+
789
+ this._projectTo2D = defaultValue(options.projectTo2D, false);
790
+
791
+ /**
792
+ * This property is for debugging only; it is not optimized for production use.
793
+ * <p>
794
+ * Determines if only the tiles from last frame should be used for rendering. This
795
+ * effectively "freezes" the tileset to the previous frame so it is possible to zoom
796
+ * out and see what was rendered.
797
+ * </p>
798
+ *
799
+ * @type {Boolean}
800
+ * @default false
801
+ */
802
+ this.debugFreezeFrame = defaultValue(options.debugFreezeFrame, false);
803
+
804
+ /**
805
+ * This property is for debugging only; it is not optimized for production use.
806
+ * <p>
807
+ * When true, assigns a random color to each tile. This is useful for visualizing
808
+ * what features belong to what tiles, especially with additive refinement where features
809
+ * from parent tiles may be interleaved with features from child tiles.
810
+ * </p>
811
+ *
812
+ * @type {Boolean}
813
+ * @default false
814
+ */
815
+ this.debugColorizeTiles = defaultValue(options.debugColorizeTiles, false);
816
+
817
+ this._enableDebugWireframe = defaultValue(
818
+ options.enableDebugWireframe,
819
+ false
820
+ );
821
+
822
+ /**
823
+ * This property is for debugging only; it is not optimized for production use.
824
+ * <p>
825
+ * When true, renders each tile's content as a wireframe.
826
+ * </p>
827
+ *
828
+ * @type {Boolean}
829
+ * @default false
830
+ */
831
+ this.debugWireframe = defaultValue(options.debugWireframe, false);
832
+
833
+ // Warning for improper setup of debug wireframe
834
+ if (this.debugWireframe === true && this._enableDebugWireframe === false) {
835
+ oneTimeWarning(
836
+ "tileset-debug-wireframe-ignored",
837
+ "enableDebugWireframe must be set to true in the Cesium3DTileset constructor, otherwise debugWireframe will be ignored."
838
+ );
839
+ }
840
+
841
+ /**
842
+ * This property is for debugging only; it is not optimized for production use.
843
+ * <p>
844
+ * When true, renders the bounding volume for each visible tile. The bounding volume is
845
+ * white if the tile has a content bounding volume or is empty; otherwise, it is red. Tiles that don't meet the
846
+ * screen space error and are still refining to their descendants are yellow.
847
+ * </p>
848
+ *
849
+ * @type {Boolean}
850
+ * @default false
851
+ */
852
+ this.debugShowBoundingVolume = defaultValue(
853
+ options.debugShowBoundingVolume,
854
+ false
855
+ );
856
+
857
+ /**
858
+ * This property is for debugging only; it is not optimized for production use.
859
+ * <p>
860
+ * When true, renders the bounding volume for each visible tile's content. The bounding volume is
861
+ * blue if the tile has a content bounding volume; otherwise it is red.
862
+ * </p>
863
+ *
864
+ * @type {Boolean}
865
+ * @default false
866
+ */
867
+ this.debugShowContentBoundingVolume = defaultValue(
868
+ options.debugShowContentBoundingVolume,
869
+ false
870
+ );
871
+
872
+ /**
873
+ * This property is for debugging only; it is not optimized for production use.
874
+ * <p>
875
+ * When true, renders the viewer request volume for each tile.
876
+ * </p>
877
+ *
878
+ * @type {Boolean}
879
+ * @default false
880
+ */
881
+ this.debugShowViewerRequestVolume = defaultValue(
882
+ options.debugShowViewerRequestVolume,
883
+ false
884
+ );
885
+
886
+ this._tileDebugLabels = undefined;
887
+ this.debugPickedTileLabelOnly = false;
888
+ this.debugPickedTile = undefined;
889
+ this.debugPickPosition = undefined;
890
+
891
+ /**
892
+ * This property is for debugging only; it is not optimized for production use.
893
+ * <p>
894
+ * When true, draws labels to indicate the geometric error of each tile.
895
+ * </p>
896
+ *
897
+ * @type {Boolean}
898
+ * @default false
899
+ */
900
+ this.debugShowGeometricError = defaultValue(
901
+ options.debugShowGeometricError,
902
+ false
903
+ );
904
+
905
+ /**
906
+ * This property is for debugging only; it is not optimized for production use.
907
+ * <p>
908
+ * When true, draws labels to indicate the number of commands, points, triangles and features of each tile.
909
+ * </p>
910
+ *
911
+ * @type {Boolean}
912
+ * @default false
913
+ */
914
+ this.debugShowRenderingStatistics = defaultValue(
915
+ options.debugShowRenderingStatistics,
916
+ false
917
+ );
918
+
919
+ /**
920
+ * This property is for debugging only; it is not optimized for production use.
921
+ * <p>
922
+ * When true, draws labels to indicate the geometry and texture memory usage of each tile.
923
+ * </p>
924
+ *
925
+ * @type {Boolean}
926
+ * @default false
927
+ */
928
+ this.debugShowMemoryUsage = defaultValue(options.debugShowMemoryUsage, false);
929
+
930
+ /**
931
+ * This property is for debugging only; it is not optimized for production use.
932
+ * <p>
933
+ * When true, draws labels to indicate the url of each tile.
934
+ * </p>
935
+ *
936
+ * @type {Boolean}
937
+ * @default false
938
+ */
939
+ this.debugShowUrl = defaultValue(options.debugShowUrl, false);
940
+
941
+ /**
942
+ * Function for examining vector lines as they are being streamed.
943
+ *
944
+ * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
945
+ *
946
+ * @type {Function}
947
+ */
948
+ this.examineVectorLinesFunction = undefined;
949
+
950
+ // this is the underlying Cesium3DTileMetadata object, whether it came from
951
+ // the 3DTILES_metadata extension or a 3D Tiles 1.1 tileset JSON. Getters
952
+ // like tileset.metadata and tileset.schema will delegate to this object.
953
+ this._metadataExtension = undefined;
954
+
955
+ this._customShader = options.customShader;
956
+
957
+ let featureIdLabel = defaultValue(options.featureIdLabel, "featureId_0");
958
+ if (typeof featureIdLabel === "number") {
959
+ featureIdLabel = `featureId_${featureIdLabel}`;
960
+ }
961
+ this._featureIdLabel = featureIdLabel;
962
+
963
+ let instanceFeatureIdLabel = defaultValue(
964
+ options.instanceFeatureIdLabel,
965
+ "instanceFeatureId_0"
966
+ );
967
+ if (typeof instanceFeatureIdLabel === "number") {
968
+ instanceFeatureIdLabel = `instanceFeatureId_${instanceFeatureIdLabel}`;
969
+ }
970
+ this._instanceFeatureIdLabel = instanceFeatureIdLabel;
971
+
972
+ this._schemaLoader = undefined;
973
+
974
+ const that = this;
975
+ let resource;
976
+ this._readyPromise = Promise.resolve(options.url)
977
+ .then(function (url) {
978
+ let basePath;
979
+ resource = Resource.createIfNeeded(url);
980
+ that._resource = resource;
981
+
982
+ // ion resources have a credits property we can use for additional attribution.
983
+ that._credits = resource.credits;
984
+
985
+ if (resource.extension === "json") {
986
+ basePath = resource.getBaseUri(true);
987
+ } else if (resource.isDataUri) {
988
+ basePath = "";
989
+ }
990
+
991
+ that._url = resource.url;
992
+ that._basePath = basePath;
993
+
994
+ return Cesium3DTileset.loadJson(resource);
995
+ })
996
+ .then(function (tilesetJson) {
997
+ if (that.isDestroyed()) {
998
+ return;
999
+ }
1000
+
1001
+ // This needs to be called before loadTileset() so tile metadata
1002
+ // can be initialized synchronously in the Cesium3DTile constructor
1003
+ return processMetadataExtension(that, tilesetJson);
1004
+ })
1005
+ .then(function (tilesetJson) {
1006
+ if (that.isDestroyed()) {
1007
+ return;
1008
+ }
1009
+
1010
+ that._root = that.loadTileset(resource, tilesetJson);
1011
+
1012
+ // Handle legacy gltfUpAxis option
1013
+ const gltfUpAxis = defined(tilesetJson.asset.gltfUpAxis)
1014
+ ? Axis.fromName(tilesetJson.asset.gltfUpAxis)
1015
+ : Axis.Y;
1016
+ const modelUpAxis = defaultValue(options.modelUpAxis, gltfUpAxis);
1017
+ const modelForwardAxis = defaultValue(options.modelForwardAxis, Axis.X);
1018
+
1019
+ const asset = tilesetJson.asset;
1020
+ that._asset = asset;
1021
+ that._properties = tilesetJson.properties;
1022
+ that._geometricError = tilesetJson.geometricError;
1023
+ that._extensionsUsed = tilesetJson.extensionsUsed;
1024
+ that._extensions = tilesetJson.extensions;
1025
+ that._modelUpAxis = modelUpAxis;
1026
+ that._modelForwardAxis = modelForwardAxis;
1027
+ that._extras = tilesetJson.extras;
1028
+
1029
+ const extras = asset.extras;
1030
+ if (
1031
+ defined(extras) &&
1032
+ defined(extras.cesium) &&
1033
+ defined(extras.cesium.credits)
1034
+ ) {
1035
+ const extraCredits = extras.cesium.credits;
1036
+ let credits = that._credits;
1037
+ if (!defined(credits)) {
1038
+ credits = [];
1039
+ that._credits = credits;
1040
+ }
1041
+ for (let i = 0; i < extraCredits.length; ++i) {
1042
+ const credit = extraCredits[i];
1043
+ credits.push(new Credit(credit.html, that._showCreditsOnScreen));
1044
+ }
1045
+ }
1046
+
1047
+ // Save the original, untransformed bounding volume position so we can apply
1048
+ // the tile transform and model matrix at run time
1049
+ const boundingVolume = that._root.createBoundingVolume(
1050
+ tilesetJson.root.boundingVolume,
1051
+ Matrix4.IDENTITY
1052
+ );
1053
+ const clippingPlanesOrigin = boundingVolume.boundingSphere.center;
1054
+ // If this origin is above the surface of the earth
1055
+ // we want to apply an ENU orientation as our best guess of orientation.
1056
+ // Otherwise, we assume it gets its position/orientation completely from the
1057
+ // root tile transform and the tileset's model matrix
1058
+ const originCartographic = that._ellipsoid.cartesianToCartographic(
1059
+ clippingPlanesOrigin
1060
+ );
1061
+ if (
1062
+ defined(originCartographic) &&
1063
+ originCartographic.height >
1064
+ ApproximateTerrainHeights._defaultMinTerrainHeight
1065
+ ) {
1066
+ that._initialClippingPlanesOriginMatrix = Transforms.eastNorthUpToFixedFrame(
1067
+ clippingPlanesOrigin
1068
+ );
1069
+ }
1070
+ that._clippingPlanesOriginMatrix = Matrix4.clone(
1071
+ that._initialClippingPlanesOriginMatrix
1072
+ );
1073
+
1074
+ return that;
1075
+ });
1076
+ }
1077
+
1078
+ Object.defineProperties(Cesium3DTileset.prototype, {
1079
+ /**
1080
+ * NOTE: This getter exists so that `Picking.js` can differentiate between
1081
+ * PrimitiveCollection and Cesium3DTileset objects without inflating
1082
+ * the size of the module via `instanceof Cesium3DTileset`
1083
+ * @private
1084
+ */
1085
+ isCesium3DTileset: {
1086
+ get: function () {
1087
+ return true;
1088
+ },
1089
+ },
1090
+
1091
+ /**
1092
+ * Gets the tileset's asset object property, which contains metadata about the tileset.
1093
+ * <p>
1094
+ * See the {@link https://github.com/CesiumGS/3d-tiles/tree/main/specification#reference-asset|asset schema reference}
1095
+ * in the 3D Tiles spec for the full set of properties.
1096
+ * </p>
1097
+ *
1098
+ * @memberof Cesium3DTileset.prototype
1099
+ *
1100
+ * @type {Object}
1101
+ * @readonly
1102
+ *
1103
+ * @exception {DeveloperError} The tileset is not loaded. Use Cesium3DTileset.readyPromise or wait for Cesium3DTileset.ready to be true.
1104
+ */
1105
+ asset: {
1106
+ get: function () {
1107
+ //>>includeStart('debug', pragmas.debug);
1108
+ if (!this.ready) {
1109
+ throw new DeveloperError(
1110
+ "The tileset is not loaded. Use Cesium3DTileset.readyPromise or wait for Cesium3DTileset.ready to be true."
1111
+ );
1112
+ }
1113
+ //>>includeEnd('debug');
1114
+
1115
+ return this._asset;
1116
+ },
1117
+ },
1118
+
1119
+ /**
1120
+ * Gets the tileset's extensions object property.
1121
+ *
1122
+ * @memberof Cesium3DTileset.prototype
1123
+ *
1124
+ * @type {Object}
1125
+ * @readonly
1126
+ *
1127
+ * @exception {DeveloperError} The tileset is not loaded. Use Cesium3DTileset.readyPromise or wait for Cesium3DTileset.ready to be true.
1128
+ */
1129
+ extensions: {
1130
+ get: function () {
1131
+ //>>includeStart('debug', pragmas.debug);
1132
+ if (!this.ready) {
1133
+ throw new DeveloperError(
1134
+ "The tileset is not loaded. Use Cesium3DTileset.readyPromise or wait for Cesium3DTileset.ready to be true."
1135
+ );
1136
+ }
1137
+ //>>includeEnd('debug');
1138
+
1139
+ return this._extensions;
1140
+ },
1141
+ },
1142
+
1143
+ /**
1144
+ * The {@link ClippingPlaneCollection} used to selectively disable rendering the tileset.
1145
+ *
1146
+ * @memberof Cesium3DTileset.prototype
1147
+ *
1148
+ * @type {ClippingPlaneCollection}
1149
+ */
1150
+ clippingPlanes: {
1151
+ get: function () {
1152
+ return this._clippingPlanes;
1153
+ },
1154
+ set: function (value) {
1155
+ ClippingPlaneCollection.setOwner(value, this, "_clippingPlanes");
1156
+ },
1157
+ },
1158
+
1159
+ /**
1160
+ * Gets the tileset's properties dictionary object, which contains metadata about per-feature properties.
1161
+ * <p>
1162
+ * See the {@link https://github.com/CesiumGS/3d-tiles/tree/main/specification#reference-properties|properties schema reference}
1163
+ * in the 3D Tiles spec for the full set of properties.
1164
+ * </p>
1165
+ *
1166
+ * @memberof Cesium3DTileset.prototype
1167
+ *
1168
+ * @type {Object}
1169
+ * @readonly
1170
+ *
1171
+ * @exception {DeveloperError} The tileset is not loaded. Use Cesium3DTileset.readyPromise or wait for Cesium3DTileset.ready to be true.
1172
+ *
1173
+ * @example
1174
+ * console.log(`Maximum building height: ${tileset.properties.height.maximum}`);
1175
+ * console.log(`Minimum building height: ${tileset.properties.height.minimum}`);
1176
+ *
1177
+ * @see Cesium3DTileFeature#getProperty
1178
+ * @see Cesium3DTileFeature#setProperty
1179
+ */
1180
+ properties: {
1181
+ get: function () {
1182
+ //>>includeStart('debug', pragmas.debug);
1183
+ if (!this.ready) {
1184
+ throw new DeveloperError(
1185
+ "The tileset is not loaded. Use Cesium3DTileset.readyPromise or wait for Cesium3DTileset.ready to be true."
1186
+ );
1187
+ }
1188
+ //>>includeEnd('debug');
1189
+
1190
+ return this._properties;
1191
+ },
1192
+ },
1193
+
1194
+ /**
1195
+ * When <code>true</code>, the tileset's root tile is loaded and the tileset is ready to render.
1196
+ * This is set to <code>true</code> right before {@link Cesium3DTileset#readyPromise} is resolved.
1197
+ *
1198
+ * @memberof Cesium3DTileset.prototype
1199
+ *
1200
+ * @type {Boolean}
1201
+ * @readonly
1202
+ *
1203
+ * @default false
1204
+ */
1205
+ ready: {
1206
+ get: function () {
1207
+ return defined(this._root);
1208
+ },
1209
+ },
1210
+
1211
+ /**
1212
+ * Gets the promise that will be resolved when the tileset's root tile is loaded and the tileset is ready to render.
1213
+ * <p>
1214
+ * This promise is resolved at the end of the frame before the first frame the tileset is rendered in.
1215
+ * </p>
1216
+ *
1217
+ * @memberof Cesium3DTileset.prototype
1218
+ *
1219
+ * @type {Promise.<Cesium3DTileset>}
1220
+ * @readonly
1221
+ *
1222
+ * @example
1223
+ * tileset.readyPromise.then(function(tileset) {
1224
+ * // tile.properties is not defined until readyPromise resolves.
1225
+ * const properties = tileset.properties;
1226
+ * if (Cesium.defined(properties)) {
1227
+ * for (const name in properties) {
1228
+ * console.log(properties[name]);
1229
+ * }
1230
+ * }
1231
+ * });
1232
+ */
1233
+ readyPromise: {
1234
+ get: function () {
1235
+ return this._readyPromise;
1236
+ },
1237
+ },
1238
+
1239
+ /**
1240
+ * When <code>true</code>, all tiles that meet the screen space error this frame are loaded. The tileset is
1241
+ * completely loaded for this view.
1242
+ *
1243
+ * @memberof Cesium3DTileset.prototype
1244
+ *
1245
+ * @type {Boolean}
1246
+ * @readonly
1247
+ *
1248
+ * @default false
1249
+ *
1250
+ * @see Cesium3DTileset#allTilesLoaded
1251
+ */
1252
+ tilesLoaded: {
1253
+ get: function () {
1254
+ return this._tilesLoaded;
1255
+ },
1256
+ },
1257
+
1258
+ /**
1259
+ * The resource used to fetch the tileset JSON file
1260
+ *
1261
+ * @memberof Cesium3DTileset.prototype
1262
+ *
1263
+ * @type {Resource}
1264
+ * @readonly
1265
+ */
1266
+ resource: {
1267
+ get: function () {
1268
+ return this._resource;
1269
+ },
1270
+ },
1271
+
1272
+ /**
1273
+ * The base path that non-absolute paths in tileset JSON file are relative to.
1274
+ *
1275
+ * @memberof Cesium3DTileset.prototype
1276
+ *
1277
+ * @type {String}
1278
+ * @readonly
1279
+ * @deprecated
1280
+ */
1281
+ basePath: {
1282
+ get: function () {
1283
+ deprecationWarning(
1284
+ "Cesium3DTileset.basePath",
1285
+ "Cesium3DTileset.basePath has been deprecated. All tiles are relative to the url of the tileset JSON file that contains them. Use the url property instead."
1286
+ );
1287
+ return this._basePath;
1288
+ },
1289
+ },
1290
+
1291
+ /**
1292
+ * The style, defined using the
1293
+ * {@link https://github.com/CesiumGS/3d-tiles/tree/main/specification/Styling|3D Tiles Styling language},
1294
+ * applied to each feature in the tileset.
1295
+ * <p>
1296
+ * Assign <code>undefined</code> to remove the style, which will restore the visual
1297
+ * appearance of the tileset to its default when no style was applied.
1298
+ * </p>
1299
+ * <p>
1300
+ * The style is applied to a tile before the {@link Cesium3DTileset#tileVisible}
1301
+ * event is raised, so code in <code>tileVisible</code> can manually set a feature's
1302
+ * properties (e.g. color and show) after the style is applied. When
1303
+ * a new style is assigned any manually set properties are overwritten.
1304
+ * </p>
1305
+ * <p>
1306
+ * Use an always "true" condition to specify the Color for all objects that are not
1307
+ * overridden by pre-existing conditions. Otherwise, the default color Cesium.Color.White
1308
+ * will be used. Similarly, use an always "true" condition to specify the show property
1309
+ * for all objects that are not overridden by pre-existing conditions. Otherwise, the
1310
+ * default show value true will be used.
1311
+ * </p>
1312
+ *
1313
+ * @memberof Cesium3DTileset.prototype
1314
+ *
1315
+ * @type {Cesium3DTileStyle|undefined}
1316
+ *
1317
+ * @default undefined
1318
+ *
1319
+ * @example
1320
+ * tileset.style = new Cesium.Cesium3DTileStyle({
1321
+ * color : {
1322
+ * conditions : [
1323
+ * ['${Height} >= 100', 'color("purple", 0.5)'],
1324
+ * ['${Height} >= 50', 'color("red")'],
1325
+ * ['true', 'color("blue")']
1326
+ * ]
1327
+ * },
1328
+ * show : '${Height} > 0',
1329
+ * meta : {
1330
+ * description : '"Building id ${id} has height ${Height}."'
1331
+ * }
1332
+ * });
1333
+ *
1334
+ * @see {@link https://github.com/CesiumGS/3d-tiles/tree/main/specification/Styling|3D Tiles Styling language}
1335
+ */
1336
+ style: {
1337
+ get: function () {
1338
+ return this._styleEngine.style;
1339
+ },
1340
+ set: function (value) {
1341
+ this._styleEngine.style = value;
1342
+ },
1343
+ },
1344
+
1345
+ /**
1346
+ * A custom shader to apply to all tiles in the tileset. Only used for
1347
+ * contents that use {@link Model}. Using custom shaders with a
1348
+ * {@link Cesium3DTileStyle} may lead to undefined behavior.
1349
+ *
1350
+ * @memberof Cesium3DTileset.prototype
1351
+ *
1352
+ * @type {CustomShader|undefined}
1353
+ *
1354
+ * @default undefined
1355
+ *
1356
+ * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
1357
+ */
1358
+ customShader: {
1359
+ get: function () {
1360
+ return this._customShader;
1361
+ },
1362
+ set: function (value) {
1363
+ this._customShader = value;
1364
+ },
1365
+ },
1366
+
1367
+ /**
1368
+ * The tileset's schema, groups, tileset metadata and other details from the
1369
+ * 3DTILES_metadata extension or a 3D Tiles 1.1 tileset JSON. This getter is
1370
+ * for internal use by other classes.
1371
+ *
1372
+ * @memberof Cesium3DTileset.prototype
1373
+ * @type {Cesium3DTilesetMetadata}
1374
+ * @private
1375
+ * @readonly
1376
+ *
1377
+ * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
1378
+ */
1379
+ metadataExtension: {
1380
+ get: function () {
1381
+ return this._metadataExtension;
1382
+ },
1383
+ },
1384
+
1385
+ /**
1386
+ * The metadata properties attached to the tileset as a whole.
1387
+ *
1388
+ * @memberof Cesium3DTileset.prototype
1389
+ *
1390
+ * @type {TilesetMetadata}
1391
+ * @private
1392
+ * @readonly
1393
+ *
1394
+ * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
1395
+ */
1396
+ metadata: {
1397
+ get: function () {
1398
+ if (defined(this._metadataExtension)) {
1399
+ return this._metadataExtension.tileset;
1400
+ }
1401
+
1402
+ return undefined;
1403
+ },
1404
+ },
1405
+
1406
+ /**
1407
+ * The metadata schema used in this tileset. Shorthand for
1408
+ * <code>tileset.metadataExtension.schema</code>
1409
+ *
1410
+ * @memberof Cesium3DTileset.prototype
1411
+ *
1412
+ * @type {MetadataSchema}
1413
+ * @private
1414
+ * @readonly
1415
+ *
1416
+ * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
1417
+ */
1418
+ schema: {
1419
+ get: function () {
1420
+ if (defined(this._metadataExtension)) {
1421
+ return this._metadataExtension.schema;
1422
+ }
1423
+
1424
+ return undefined;
1425
+ },
1426
+ },
1427
+
1428
+ /**
1429
+ * The maximum screen space error used to drive level of detail refinement. This value helps determine when a tile
1430
+ * refines to its descendants, and therefore plays a major role in balancing performance with visual quality.
1431
+ * <p>
1432
+ * A tile's screen space error is roughly equivalent to the number of pixels wide that would be drawn if a sphere with a
1433
+ * radius equal to the tile's <b>geometric error</b> were rendered at the tile's position. If this value exceeds
1434
+ * <code>maximumScreenSpaceError</code> the tile refines to its descendants.
1435
+ * </p>
1436
+ * <p>
1437
+ * Depending on the tileset, <code>maximumScreenSpaceError</code> may need to be tweaked to achieve the right balance.
1438
+ * Higher values provide better performance but lower visual quality.
1439
+ * </p>
1440
+ *
1441
+ * @memberof Cesium3DTileset.prototype
1442
+ *
1443
+ * @type {Number}
1444
+ * @default 16
1445
+ *
1446
+ * @exception {DeveloperError} <code>maximumScreenSpaceError</code> must be greater than or equal to zero.
1447
+ */
1448
+ maximumScreenSpaceError: {
1449
+ get: function () {
1450
+ return this._maximumScreenSpaceError;
1451
+ },
1452
+ set: function (value) {
1453
+ //>>includeStart('debug', pragmas.debug);
1454
+ Check.typeOf.number.greaterThanOrEquals(
1455
+ "maximumScreenSpaceError",
1456
+ value,
1457
+ 0
1458
+ );
1459
+ //>>includeEnd('debug');
1460
+
1461
+ this._maximumScreenSpaceError = value;
1462
+ },
1463
+ },
1464
+
1465
+ /**
1466
+ * The maximum amount of GPU memory (in MB) that may be used to cache tiles. This value is estimated from
1467
+ * geometry, textures, and batch table textures of loaded tiles. For point clouds, this value also
1468
+ * includes per-point metadata.
1469
+ * <p>
1470
+ * Tiles not in view are unloaded to enforce this.
1471
+ * </p>
1472
+ * <p>
1473
+ * If decreasing this value results in unloading tiles, the tiles are unloaded the next frame.
1474
+ * </p>
1475
+ * <p>
1476
+ * If tiles sized more than <code>maximumMemoryUsage</code> are needed
1477
+ * to meet the desired screen space error, determined by {@link Cesium3DTileset#maximumScreenSpaceError},
1478
+ * for the current view, then the memory usage of the tiles loaded will exceed
1479
+ * <code>maximumMemoryUsage</code>. For example, if the maximum is 256 MB, but
1480
+ * 300 MB of tiles are needed to meet the screen space error, then 300 MB of tiles may be loaded. When
1481
+ * these tiles go out of view, they will be unloaded.
1482
+ * </p>
1483
+ *
1484
+ * @memberof Cesium3DTileset.prototype
1485
+ *
1486
+ * @type {Number}
1487
+ * @default 512
1488
+ *
1489
+ * @exception {DeveloperError} <code>maximumMemoryUsage</code> must be greater than or equal to zero.
1490
+ * @see Cesium3DTileset#totalMemoryUsageInBytes
1491
+ */
1492
+ maximumMemoryUsage: {
1493
+ get: function () {
1494
+ return this._maximumMemoryUsage;
1495
+ },
1496
+ set: function (value) {
1497
+ //>>includeStart('debug', pragmas.debug);
1498
+ Check.typeOf.number.greaterThanOrEquals("value", value, 0);
1499
+ //>>includeEnd('debug');
1500
+
1501
+ this._maximumMemoryUsage = value;
1502
+ },
1503
+ },
1504
+
1505
+ /**
1506
+ * Options for controlling point size based on geometric error and eye dome lighting.
1507
+ *
1508
+ * @memberof Cesium3DTileset.prototype
1509
+ *
1510
+ * @type {PointCloudShading}
1511
+ */
1512
+ pointCloudShading: {
1513
+ get: function () {
1514
+ return this._pointCloudShading;
1515
+ },
1516
+ set: function (value) {
1517
+ //>>includeStart('debug', pragmas.debug);
1518
+ Check.defined("pointCloudShading", value);
1519
+ //>>includeEnd('debug');
1520
+ this._pointCloudShading = value;
1521
+ },
1522
+ },
1523
+
1524
+ /**
1525
+ * The root tile.
1526
+ *
1527
+ * @memberOf Cesium3DTileset.prototype
1528
+ *
1529
+ * @type {Cesium3DTile}
1530
+ * @readonly
1531
+ *
1532
+ * @exception {DeveloperError} The tileset is not loaded. Use Cesium3DTileset.readyPromise or wait for Cesium3DTileset.ready to be true.
1533
+ */
1534
+ root: {
1535
+ get: function () {
1536
+ //>>includeStart('debug', pragmas.debug);
1537
+ if (!this.ready) {
1538
+ throw new DeveloperError(
1539
+ "The tileset is not loaded. Use Cesium3DTileset.readyPromise or wait for Cesium3DTileset.ready to be true."
1540
+ );
1541
+ }
1542
+ //>>includeEnd('debug');
1543
+
1544
+ return this._root;
1545
+ },
1546
+ },
1547
+
1548
+ /**
1549
+ * The tileset's bounding sphere.
1550
+ *
1551
+ * @memberof Cesium3DTileset.prototype
1552
+ *
1553
+ * @type {BoundingSphere}
1554
+ * @readonly
1555
+ *
1556
+ * @exception {DeveloperError} The tileset is not loaded. Use Cesium3DTileset.readyPromise or wait for Cesium3DTileset.ready to be true.
1557
+ *
1558
+ * @example
1559
+ * const tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
1560
+ * url : 'http://localhost:8002/tilesets/Seattle/tileset.json'
1561
+ * }));
1562
+ *
1563
+ * tileset.readyPromise.then(function(tileset) {
1564
+ * // Set the camera to view the newly added tileset
1565
+ * viewer.camera.viewBoundingSphere(tileset.boundingSphere, new Cesium.HeadingPitchRange(0, -0.5, 0));
1566
+ * });
1567
+ */
1568
+ boundingSphere: {
1569
+ get: function () {
1570
+ //>>includeStart('debug', pragmas.debug);
1571
+ if (!this.ready) {
1572
+ throw new DeveloperError(
1573
+ "The tileset is not loaded. Use Cesium3DTileset.readyPromise or wait for Cesium3DTileset.ready to be true."
1574
+ );
1575
+ }
1576
+ //>>includeEnd('debug');
1577
+
1578
+ this._root.updateTransform(this._modelMatrix);
1579
+ return this._root.boundingSphere;
1580
+ },
1581
+ },
1582
+
1583
+ /**
1584
+ * A 4x4 transformation matrix that transforms the entire tileset.
1585
+ *
1586
+ * @memberof Cesium3DTileset.prototype
1587
+ *
1588
+ * @type {Matrix4}
1589
+ * @default Matrix4.IDENTITY
1590
+ *
1591
+ * @example
1592
+ * // Adjust a tileset's height from the globe's surface.
1593
+ * const heightOffset = 20.0;
1594
+ * const boundingSphere = tileset.boundingSphere;
1595
+ * const cartographic = Cesium.Cartographic.fromCartesian(boundingSphere.center);
1596
+ * const surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 0.0);
1597
+ * const offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, heightOffset);
1598
+ * const translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3());
1599
+ * tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
1600
+ */
1601
+ modelMatrix: {
1602
+ get: function () {
1603
+ return this._modelMatrix;
1604
+ },
1605
+ set: function (value) {
1606
+ this._modelMatrix = Matrix4.clone(value, this._modelMatrix);
1607
+ },
1608
+ },
1609
+
1610
+ /**
1611
+ * Returns the time, in milliseconds, since the tileset was loaded and first updated.
1612
+ *
1613
+ * @memberof Cesium3DTileset.prototype
1614
+ *
1615
+ * @type {Number}
1616
+ * @readonly
1617
+ */
1618
+ timeSinceLoad: {
1619
+ get: function () {
1620
+ return this._timeSinceLoad;
1621
+ },
1622
+ },
1623
+
1624
+ /**
1625
+ * The total amount of GPU memory in bytes used by the tileset. This value is estimated from
1626
+ * geometry, texture, batch table textures, and binary metadata of loaded tiles.
1627
+ *
1628
+ * @memberof Cesium3DTileset.prototype
1629
+ *
1630
+ * @type {Number}
1631
+ * @readonly
1632
+ *
1633
+ * @see Cesium3DTileset#maximumMemoryUsage
1634
+ */
1635
+ totalMemoryUsageInBytes: {
1636
+ get: function () {
1637
+ const statistics = this._statistics;
1638
+ return (
1639
+ statistics.texturesByteLength +
1640
+ statistics.geometryByteLength +
1641
+ statistics.batchTableByteLength
1642
+ );
1643
+ },
1644
+ },
1645
+
1646
+ /**
1647
+ * @private
1648
+ */
1649
+ clippingPlanesOriginMatrix: {
1650
+ get: function () {
1651
+ if (!defined(this._clippingPlanesOriginMatrix)) {
1652
+ return Matrix4.IDENTITY;
1653
+ }
1654
+
1655
+ if (this._clippingPlanesOriginMatrixDirty) {
1656
+ Matrix4.multiply(
1657
+ this.root.computedTransform,
1658
+ this._initialClippingPlanesOriginMatrix,
1659
+ this._clippingPlanesOriginMatrix
1660
+ );
1661
+ this._clippingPlanesOriginMatrixDirty = false;
1662
+ }
1663
+
1664
+ return this._clippingPlanesOriginMatrix;
1665
+ },
1666
+ },
1667
+
1668
+ /**
1669
+ * @private
1670
+ */
1671
+ styleEngine: {
1672
+ get: function () {
1673
+ return this._styleEngine;
1674
+ },
1675
+ },
1676
+
1677
+ /**
1678
+ * @private
1679
+ */
1680
+ statistics: {
1681
+ get: function () {
1682
+ return this._statistics;
1683
+ },
1684
+ },
1685
+
1686
+ /**
1687
+ * Determines whether terrain, 3D Tiles, or both will be classified by this tileset.
1688
+ * <p>
1689
+ * This option is only applied to tilesets containing batched 3D models,
1690
+ * glTF content, geometry data, or vector data. Even when undefined, vector
1691
+ * and geometry data must render as classifications and will default to
1692
+ * rendering on both terrain and other 3D Tiles tilesets.
1693
+ * </p>
1694
+ * <p>
1695
+ * When enabled for batched 3D model and glTF tilesets, there are a few
1696
+ * requirements/limitations on the glTF:
1697
+ * <ul>
1698
+ * <li>The glTF cannot contain morph targets, skins, or animations.</li>
1699
+ * <li>The glTF cannot contain the <code>EXT_mesh_gpu_instancing</code> extension.</li>
1700
+ * <li>Only meshes with TRIANGLES can be used to classify other assets.</li>
1701
+ * <li>The <code>POSITION</code> semantic is required.</li>
1702
+ * <li>If <code>_BATCHID</code>s and an index buffer are both present, all indices with the same batch id must occupy contiguous sections of the index buffer.</li>
1703
+ * <li>If <code>_BATCHID</code>s are present with no index buffer, all positions with the same batch id must occupy contiguous sections of the position buffer.</li>
1704
+ * </ul>
1705
+ * </p>
1706
+ * <p>
1707
+ * Additionally, classification is not supported for points or instanced 3D
1708
+ * models.
1709
+ * </p>
1710
+ *
1711
+ * @memberof Cesium3DTileset.prototype
1712
+ *
1713
+ * @type {ClassificationType}
1714
+ * @default undefined
1715
+ *
1716
+ * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
1717
+ * @readonly
1718
+ */
1719
+ classificationType: {
1720
+ get: function () {
1721
+ return this._classificationType;
1722
+ },
1723
+ },
1724
+
1725
+ /**
1726
+ * Gets an ellipsoid describing the shape of the globe.
1727
+ *
1728
+ * @memberof Cesium3DTileset.prototype
1729
+ *
1730
+ * @type {Ellipsoid}
1731
+ * @readonly
1732
+ */
1733
+ ellipsoid: {
1734
+ get: function () {
1735
+ return this._ellipsoid;
1736
+ },
1737
+ },
1738
+
1739
+ /**
1740
+ * Optimization option. Used when {@link Cesium3DTileset#foveatedScreenSpaceError} is true to control the cone size that determines which tiles are deferred.
1741
+ * Tiles that are inside this cone are loaded immediately. Tiles outside the cone are potentially deferred based on how far outside the cone they are and {@link Cesium3DTileset#foveatedInterpolationCallback} and {@link Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation}.
1742
+ * Setting this to 0.0 means the cone will be the line formed by the camera position and its view direction. Setting this to 1.0 means the cone encompasses the entire field of view of the camera, essentially disabling the effect.
1743
+ *
1744
+ * @memberof Cesium3DTileset.prototype
1745
+ *
1746
+ * @type {Number}
1747
+ * @default 0.3
1748
+ */
1749
+ foveatedConeSize: {
1750
+ get: function () {
1751
+ return this._foveatedConeSize;
1752
+ },
1753
+ set: function (value) {
1754
+ //>>includeStart('debug', pragmas.debug);
1755
+ Check.typeOf.number.greaterThanOrEquals("foveatedConeSize", value, 0.0);
1756
+ Check.typeOf.number.lessThanOrEquals("foveatedConeSize", value, 1.0);
1757
+ //>>includeEnd('debug');
1758
+
1759
+ this._foveatedConeSize = value;
1760
+ },
1761
+ },
1762
+
1763
+ /**
1764
+ * Optimization option. Used when {@link Cesium3DTileset#foveatedScreenSpaceError} is true to control the starting screen space error relaxation for tiles outside the foveated cone.
1765
+ * The screen space error will be raised starting with this value up to {@link Cesium3DTileset#maximumScreenSpaceError} based on the provided {@link Cesium3DTileset#foveatedInterpolationCallback}.
1766
+ *
1767
+ * @memberof Cesium3DTileset.prototype
1768
+ *
1769
+ * @type {Number}
1770
+ * @default 0.0
1771
+ */
1772
+ foveatedMinimumScreenSpaceErrorRelaxation: {
1773
+ get: function () {
1774
+ return this._foveatedMinimumScreenSpaceErrorRelaxation;
1775
+ },
1776
+ set: function (value) {
1777
+ //>>includeStart('debug', pragmas.debug);
1778
+ Check.typeOf.number.greaterThanOrEquals(
1779
+ "foveatedMinimumScreenSpaceErrorRelaxation",
1780
+ value,
1781
+ 0.0
1782
+ );
1783
+ Check.typeOf.number.lessThanOrEquals(
1784
+ "foveatedMinimumScreenSpaceErrorRelaxation",
1785
+ value,
1786
+ this.maximumScreenSpaceError
1787
+ );
1788
+ //>>includeEnd('debug');
1789
+
1790
+ this._foveatedMinimumScreenSpaceErrorRelaxation = value;
1791
+ },
1792
+ },
1793
+
1794
+ /**
1795
+ * Returns the <code>extras</code> property at the top-level of the tileset JSON, which contains application specific metadata.
1796
+ * Returns <code>undefined</code> if <code>extras</code> does not exist.
1797
+ *
1798
+ * @memberof Cesium3DTileset.prototype
1799
+ *
1800
+ * @exception {DeveloperError} The tileset is not loaded. Use Cesium3DTileset.readyPromise or wait for Cesium3DTileset.ready to be true.
1801
+ *
1802
+ * @type {*}
1803
+ * @readonly
1804
+ *
1805
+ * @see {@link https://github.com/CesiumGS/3d-tiles/tree/main/specification#specifying-extensions-and-application-specific-extras|Extras in the 3D Tiles specification.}
1806
+ */
1807
+ extras: {
1808
+ get: function () {
1809
+ //>>includeStart('debug', pragmas.debug);
1810
+ if (!this.ready) {
1811
+ throw new DeveloperError(
1812
+ "The tileset is not loaded. Use Cesium3DTileset.readyPromise or wait for Cesium3DTileset.ready to be true."
1813
+ );
1814
+ }
1815
+ //>>includeEnd('debug');
1816
+
1817
+ return this._extras;
1818
+ },
1819
+ },
1820
+
1821
+ /**
1822
+ * The properties for managing image-based lighting on this tileset.
1823
+ *
1824
+ * @memberof Cesium3DTileset.prototype
1825
+ *
1826
+ * @type {ImageBasedLighting}
1827
+ */
1828
+ imageBasedLighting: {
1829
+ get: function () {
1830
+ return this._imageBasedLighting;
1831
+ },
1832
+ set: function (value) {
1833
+ //>>includeStart('debug', pragmas.debug);
1834
+ Check.typeOf.object("imageBasedLighting", this._imageBasedLighting);
1835
+ //>>includeEnd('debug');
1836
+ if (value !== this._imageBasedLighting) {
1837
+ if (
1838
+ this._shouldDestroyImageBasedLighting &&
1839
+ !this._imageBasedLighting.isDestroyed()
1840
+ ) {
1841
+ this._imageBasedLighting.destroy();
1842
+ }
1843
+ this._imageBasedLighting = value;
1844
+ this._shouldDestroyImageBasedLighting = false;
1845
+ }
1846
+ },
1847
+ },
1848
+
1849
+ /**
1850
+ * Indicates that only the tileset's vector tiles should be used for classification.
1851
+ *
1852
+ * @memberof Cesium3DTileset.prototype
1853
+ *
1854
+ * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
1855
+ *
1856
+ * @type {Boolean}
1857
+ * @default false
1858
+ */
1859
+ vectorClassificationOnly: {
1860
+ get: function () {
1861
+ return this._vectorClassificationOnly;
1862
+ },
1863
+ },
1864
+
1865
+ /**
1866
+ * Whether vector tiles should keep decoded positions in memory.
1867
+ * This is used with {@link Cesium3DTileFeature.getPolylinePositions}.
1868
+ *
1869
+ * @memberof Cesium3DTileset.prototype
1870
+ *
1871
+ * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
1872
+ *
1873
+ * @type {Boolean}
1874
+ * @default false
1875
+ */
1876
+ vectorKeepDecodedPositions: {
1877
+ get: function () {
1878
+ return this._vectorKeepDecodedPositions;
1879
+ },
1880
+ },
1881
+
1882
+ /**
1883
+ * Determines whether the credits of the tileset will be displayed on the screen
1884
+ *
1885
+ * @memberof Cesium3DTileset.prototype
1886
+ *
1887
+ * @type {Boolean}
1888
+ * @default false
1889
+ */
1890
+ showCreditsOnScreen: {
1891
+ get: function () {
1892
+ return this._showCreditsOnScreen;
1893
+ },
1894
+ set: function (value) {
1895
+ this._showCreditsOnScreen = value;
1896
+ },
1897
+ },
1898
+
1899
+ /**
1900
+ * Label of the feature ID set to use for picking and styling.
1901
+ * <p>
1902
+ * For EXT_mesh_features, this is the feature ID's label property, or
1903
+ * "featureId_N" (where N is the index in the featureIds array) when not
1904
+ * specified. EXT_feature_metadata did not have a label field, so such
1905
+ * feature ID sets are always labeled "featureId_N" where N is the index in
1906
+ * the list of all feature Ids, where feature ID attributes are listed before
1907
+ * feature ID textures.
1908
+ * </p>
1909
+ * <p>
1910
+ * If featureIdLabel is set to an integer N, it is converted to
1911
+ * the string "featureId_N" automatically. If both per-primitive and
1912
+ * per-instance feature IDs are present, the instance feature IDs take
1913
+ * priority.
1914
+ * </p>
1915
+ *
1916
+ * @memberof Cesium3DTileset.prototype
1917
+ *
1918
+ * @type {String}
1919
+ * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
1920
+ */
1921
+ featureIdLabel: {
1922
+ get: function () {
1923
+ return this._featureIdLabel;
1924
+ },
1925
+ set: function (value) {
1926
+ // indices get converted into featureId_N
1927
+ if (typeof value === "number") {
1928
+ value = `featureId_${value}`;
1929
+ }
1930
+
1931
+ //>>includeStart('debug', pragmas.debug);
1932
+ Check.typeOf.string("value", value);
1933
+ //>>includeEnd('debug');
1934
+
1935
+ this._featureIdLabel = value;
1936
+ },
1937
+ },
1938
+
1939
+ /**
1940
+ * Label of the instance feature ID set used for picking and styling.
1941
+ * <p>
1942
+ * If instanceFeatureIdLabel is set to an integer N, it is converted to
1943
+ * the string "instanceFeatureId_N" automatically.
1944
+ * If both per-primitive and per-instance feature IDs are present, the
1945
+ * instance feature IDs take priority.
1946
+ * </p>
1947
+ *
1948
+ * @memberof Cesium3DTileset.prototype
1949
+ *
1950
+ * @type {String}
1951
+ * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
1952
+ */
1953
+ instanceFeatureIdLabel: {
1954
+ get: function () {
1955
+ return this._instanceFeatureIdLabel;
1956
+ },
1957
+ set: function (value) {
1958
+ // indices get converted into instanceFeatureId_N
1959
+ if (typeof value === "number") {
1960
+ value = `instanceFeatureId_${value}`;
1961
+ }
1962
+
1963
+ //>>includeStart('debug', pragmas.debug);
1964
+ Check.typeOf.string("value", value);
1965
+ //>>includeEnd('debug');
1966
+
1967
+ this._instanceFeatureIdLabel = value;
1968
+ },
1969
+ },
1970
+ });
1971
+
1972
+ /**
1973
+ * Provides a hook to override the method used to request the tileset json
1974
+ * useful when fetching tilesets from remote servers
1975
+ * @param {Resource|String} tilesetUrl The url of the json file to be fetched
1976
+ * @returns {Promise.<Object>} A promise that resolves with the fetched json data
1977
+ */
1978
+ Cesium3DTileset.loadJson = function (tilesetUrl) {
1979
+ const resource = Resource.createIfNeeded(tilesetUrl);
1980
+ return resource.fetchJson();
1981
+ };
1982
+
1983
+ /**
1984
+ * Marks the tileset's {@link Cesium3DTileset#style} as dirty, which forces all
1985
+ * features to re-evaluate the style in the next frame each is visible.
1986
+ */
1987
+ Cesium3DTileset.prototype.makeStyleDirty = function () {
1988
+ this._styleEngine.makeDirty();
1989
+ };
1990
+
1991
+ /**
1992
+ * Loads the main tileset JSON file or a tileset JSON file referenced from a tile.
1993
+ *
1994
+ * @private
1995
+ */
1996
+ Cesium3DTileset.prototype.loadTileset = function (
1997
+ resource,
1998
+ tilesetJson,
1999
+ parentTile
2000
+ ) {
2001
+ const asset = tilesetJson.asset;
2002
+ if (!defined(asset)) {
2003
+ throw new RuntimeError("Tileset must have an asset property.");
2004
+ }
2005
+ if (
2006
+ asset.version !== "0.0" &&
2007
+ asset.version !== "1.0" &&
2008
+ asset.version !== "1.1"
2009
+ ) {
2010
+ throw new RuntimeError(
2011
+ "The tileset must be 3D Tiles version 0.0, 1.0, or 1.1"
2012
+ );
2013
+ }
2014
+
2015
+ if (defined(tilesetJson.extensionsRequired)) {
2016
+ Cesium3DTileset.checkSupportedExtensions(tilesetJson.extensionsRequired);
2017
+ }
2018
+
2019
+ const statistics = this._statistics;
2020
+
2021
+ const tilesetVersion = asset.tilesetVersion;
2022
+ if (defined(tilesetVersion)) {
2023
+ // Append the tileset version to the resource
2024
+ this._basePath += `?v=${tilesetVersion}`;
2025
+ resource = resource.clone();
2026
+ resource.setQueryParameters({ v: tilesetVersion });
2027
+ }
2028
+
2029
+ // A tileset JSON file referenced from a tile may exist in a different directory than the root tileset.
2030
+ // Get the basePath relative to the external tileset.
2031
+ const rootTile = makeTile(this, resource, tilesetJson.root, parentTile);
2032
+
2033
+ // If there is a parentTile, add the root of the currently loading tileset
2034
+ // to parentTile's children, and update its _depth.
2035
+ if (defined(parentTile)) {
2036
+ parentTile.children.push(rootTile);
2037
+ rootTile._depth = parentTile._depth + 1;
2038
+ }
2039
+
2040
+ const stack = [];
2041
+ stack.push(rootTile);
2042
+
2043
+ while (stack.length > 0) {
2044
+ const tile = stack.pop();
2045
+ ++statistics.numberOfTilesTotal;
2046
+ this._allTilesAdditive =
2047
+ this._allTilesAdditive && tile.refine === Cesium3DTileRefine.ADD;
2048
+ const children = tile._header.children;
2049
+ if (defined(children)) {
2050
+ const length = children.length;
2051
+ for (let i = 0; i < length; ++i) {
2052
+ const childHeader = children[i];
2053
+ const childTile = makeTile(this, resource, childHeader, tile);
2054
+ tile.children.push(childTile);
2055
+ childTile._depth = tile._depth + 1;
2056
+ stack.push(childTile);
2057
+ }
2058
+ }
2059
+
2060
+ if (this._cullWithChildrenBounds) {
2061
+ Cesium3DTileOptimizations.checkChildrenWithinParent(tile);
2062
+ }
2063
+ }
2064
+
2065
+ return rootTile;
2066
+ };
2067
+
2068
+ /**
2069
+ * Make a {@link Cesium3DTile} for a specific tile. If the tile's header has implicit
2070
+ * tiling (3D Tiles 1.1) or uses the <code>3DTILES_implicit_tiling</code> extension,
2071
+ * it creates a placeholder tile instead for lazy evaluation of the implicit tileset.
2072
+ *
2073
+ * @param {Cesium3DTileset} tileset The tileset
2074
+ * @param {Resource} baseResource The base resource for the tileset
2075
+ * @param {Object} tileHeader The JSON header for the tile
2076
+ * @param {Cesium3DTile} [parentTile] The parent tile of the new tile
2077
+ * @returns {Cesium3DTile} The newly created tile
2078
+ *
2079
+ * @private
2080
+ */
2081
+ function makeTile(tileset, baseResource, tileHeader, parentTile) {
2082
+ const hasImplicitTiling =
2083
+ defined(tileHeader.implicitTiling) ||
2084
+ hasExtension(tileHeader, "3DTILES_implicit_tiling");
2085
+
2086
+ if (hasImplicitTiling) {
2087
+ const metadataSchema = tileset.schema;
2088
+
2089
+ const implicitTileset = new ImplicitTileset(
2090
+ baseResource,
2091
+ tileHeader,
2092
+ metadataSchema
2093
+ );
2094
+ const rootCoordinates = new ImplicitTileCoordinates({
2095
+ subdivisionScheme: implicitTileset.subdivisionScheme,
2096
+ subtreeLevels: implicitTileset.subtreeLevels,
2097
+ level: 0,
2098
+ x: 0,
2099
+ y: 0,
2100
+ // The constructor will only use this for octrees.
2101
+ z: 0,
2102
+ });
2103
+
2104
+ // Create a placeholder Cesium3DTile that has an ImplicitTileset
2105
+ // object and whose content will resolve to an Implicit3DTileContent
2106
+ const contentUri = implicitTileset.subtreeUriTemplate.getDerivedResource({
2107
+ templateValues: rootCoordinates.getTemplateValues(),
2108
+ }).url;
2109
+
2110
+ const deepCopy = true;
2111
+ const tileJson = clone(tileHeader, deepCopy);
2112
+ // Replace contents with the subtree
2113
+ tileJson.contents = [
2114
+ {
2115
+ uri: contentUri,
2116
+ },
2117
+ ];
2118
+
2119
+ delete tileJson.content;
2120
+
2121
+ // The placeholder tile does not have any extensions. If there are any
2122
+ // extensions beyond 3DTILES_implicit_tiling, Implicit3DTileContent will
2123
+ // copy them to the transcoded tiles.
2124
+ delete tileJson.extensions;
2125
+
2126
+ const tile = new Cesium3DTile(tileset, baseResource, tileJson, parentTile);
2127
+ tile.implicitTileset = implicitTileset;
2128
+ tile.implicitCoordinates = rootCoordinates;
2129
+ return tile;
2130
+ }
2131
+
2132
+ return new Cesium3DTile(tileset, baseResource, tileHeader, parentTile);
2133
+ }
2134
+
2135
+ /**
2136
+ * If tileset metadata is present, initialize the {@link Cesium3DTilesetMetadata}
2137
+ * instance. This is asynchronous since metadata schemas may be external.
2138
+ *
2139
+ * @param {Cesium3DTileset} tileset The tileset
2140
+ * @param {Object} tilesetJson The tileset JSON
2141
+ * @return {Promise<Object>} A promise that resolves to tilesetJson for chaining.
2142
+ * @private
2143
+ */
2144
+ function processMetadataExtension(tileset, tilesetJson) {
2145
+ const metadataJson = hasExtension(tilesetJson, "3DTILES_metadata")
2146
+ ? tilesetJson.extensions["3DTILES_metadata"]
2147
+ : tilesetJson;
2148
+
2149
+ let schemaLoader;
2150
+ if (defined(metadataJson.schemaUri)) {
2151
+ const resource = tileset._resource.getDerivedResource({
2152
+ url: metadataJson.schemaUri,
2153
+ });
2154
+ schemaLoader = ResourceCache.loadSchema({
2155
+ resource: resource,
2156
+ });
2157
+ } else if (defined(metadataJson.schema)) {
2158
+ schemaLoader = ResourceCache.loadSchema({
2159
+ schema: metadataJson.schema,
2160
+ });
2161
+ } else {
2162
+ return Promise.resolve(tilesetJson);
2163
+ }
2164
+
2165
+ tileset._schemaLoader = schemaLoader;
2166
+
2167
+ return schemaLoader.promise.then(function (schemaLoader) {
2168
+ tileset._metadataExtension = new Cesium3DTilesetMetadata({
2169
+ schema: schemaLoader.schema,
2170
+ metadataJson: metadataJson,
2171
+ });
2172
+
2173
+ return tilesetJson;
2174
+ });
2175
+ }
2176
+
2177
+ const scratchPositionNormal = new Cartesian3();
2178
+ const scratchCartographic = new Cartographic();
2179
+ const scratchMatrix = new Matrix4();
2180
+ const scratchCenter = new Cartesian3();
2181
+ const scratchPosition = new Cartesian3();
2182
+ const scratchDirection = new Cartesian3();
2183
+
2184
+ function updateDynamicScreenSpaceError(tileset, frameState) {
2185
+ let up;
2186
+ let direction;
2187
+ let height;
2188
+ let minimumHeight;
2189
+ let maximumHeight;
2190
+
2191
+ const camera = frameState.camera;
2192
+ const root = tileset._root;
2193
+ const tileBoundingVolume = root.contentBoundingVolume;
2194
+
2195
+ if (tileBoundingVolume instanceof TileBoundingRegion) {
2196
+ up = Cartesian3.normalize(camera.positionWC, scratchPositionNormal);
2197
+ direction = camera.directionWC;
2198
+ height = camera.positionCartographic.height;
2199
+ minimumHeight = tileBoundingVolume.minimumHeight;
2200
+ maximumHeight = tileBoundingVolume.maximumHeight;
2201
+ } else {
2202
+ // Transform camera position and direction into the local coordinate system of the tileset
2203
+ const transformLocal = Matrix4.inverseTransformation(
2204
+ root.computedTransform,
2205
+ scratchMatrix
2206
+ );
2207
+ const ellipsoid = frameState.mapProjection.ellipsoid;
2208
+ const boundingVolume = tileBoundingVolume.boundingVolume;
2209
+ const centerLocal = Matrix4.multiplyByPoint(
2210
+ transformLocal,
2211
+ boundingVolume.center,
2212
+ scratchCenter
2213
+ );
2214
+ if (Cartesian3.magnitude(centerLocal) > ellipsoid.minimumRadius) {
2215
+ // The tileset is defined in WGS84. Approximate the minimum and maximum height.
2216
+ const centerCartographic = Cartographic.fromCartesian(
2217
+ centerLocal,
2218
+ ellipsoid,
2219
+ scratchCartographic
2220
+ );
2221
+ up = Cartesian3.normalize(camera.positionWC, scratchPositionNormal);
2222
+ direction = camera.directionWC;
2223
+ height = camera.positionCartographic.height;
2224
+ minimumHeight = 0.0;
2225
+ maximumHeight = centerCartographic.height * 2.0;
2226
+ } else {
2227
+ // The tileset is defined in local coordinates (z-up)
2228
+ const positionLocal = Matrix4.multiplyByPoint(
2229
+ transformLocal,
2230
+ camera.positionWC,
2231
+ scratchPosition
2232
+ );
2233
+ up = Cartesian3.UNIT_Z;
2234
+ direction = Matrix4.multiplyByPointAsVector(
2235
+ transformLocal,
2236
+ camera.directionWC,
2237
+ scratchDirection
2238
+ );
2239
+ direction = Cartesian3.normalize(direction, direction);
2240
+ height = positionLocal.z;
2241
+ if (tileBoundingVolume instanceof TileOrientedBoundingBox) {
2242
+ // Assuming z-up, the last component stores the half-height of the box
2243
+ const boxHeight = root._header.boundingVolume.box[11];
2244
+ minimumHeight = centerLocal.z - boxHeight;
2245
+ maximumHeight = centerLocal.z + boxHeight;
2246
+ } else if (tileBoundingVolume instanceof TileBoundingSphere) {
2247
+ const radius = boundingVolume.radius;
2248
+ minimumHeight = centerLocal.z - radius;
2249
+ maximumHeight = centerLocal.z + radius;
2250
+ }
2251
+ }
2252
+ }
2253
+
2254
+ // The range where the density starts to lessen. Start at the quarter height of the tileset.
2255
+ const heightFalloff = tileset.dynamicScreenSpaceErrorHeightFalloff;
2256
+ const heightClose =
2257
+ minimumHeight + (maximumHeight - minimumHeight) * heightFalloff;
2258
+ const heightFar = maximumHeight;
2259
+
2260
+ const t = CesiumMath.clamp(
2261
+ (height - heightClose) / (heightFar - heightClose),
2262
+ 0.0,
2263
+ 1.0
2264
+ );
2265
+
2266
+ // Increase density as the camera tilts towards the horizon
2267
+ const dot = Math.abs(Cartesian3.dot(direction, up));
2268
+ let horizonFactor = 1.0 - dot;
2269
+
2270
+ // Weaken the horizon factor as the camera height increases, implying the camera is further away from the tileset.
2271
+ // The goal is to increase density for the "street view", not when viewing the tileset from a distance.
2272
+ horizonFactor = horizonFactor * (1.0 - t);
2273
+
2274
+ let density = tileset.dynamicScreenSpaceErrorDensity;
2275
+ density *= horizonFactor;
2276
+
2277
+ tileset._dynamicScreenSpaceErrorComputedDensity = density;
2278
+ }
2279
+
2280
+ ///////////////////////////////////////////////////////////////////////////
2281
+
2282
+ function requestContent(tileset, tile) {
2283
+ if (tile.hasEmptyContent) {
2284
+ return;
2285
+ }
2286
+
2287
+ const statistics = tileset._statistics;
2288
+ const expired = tile.contentExpired;
2289
+ const attemptedRequests = tile.requestContent();
2290
+
2291
+ if (attemptedRequests > 0) {
2292
+ statistics.numberOfAttemptedRequests += attemptedRequests;
2293
+ return;
2294
+ }
2295
+
2296
+ if (expired) {
2297
+ if (tile.hasTilesetContent || tile.hasImplicitContent) {
2298
+ destroySubtree(tileset, tile);
2299
+ } else {
2300
+ statistics.decrementLoadCounts(tile.content);
2301
+ --statistics.numberOfTilesWithContentReady;
2302
+ }
2303
+ }
2304
+
2305
+ tileset._requestedTilesInFlight.push(tile);
2306
+
2307
+ tile.contentReadyToProcessPromise
2308
+ .then(addToProcessingQueue(tileset, tile))
2309
+ .catch(function (e) {
2310
+ // Any error will propagate through contentReadyPromise and will be handled below
2311
+ });
2312
+ tile.contentReadyPromise
2313
+ .then(handleTileSuccess(tileset, tile))
2314
+ .catch(handleTileFailure(tileset, tile));
2315
+ }
2316
+
2317
+ function sortRequestByPriority(a, b) {
2318
+ return a._priority - b._priority;
2319
+ }
2320
+
2321
+ /**
2322
+ * Perform any pass invariant tasks here. Called after the render pass.
2323
+ * @private
2324
+ */
2325
+ Cesium3DTileset.prototype.postPassesUpdate = function (frameState) {
2326
+ if (!this.ready) {
2327
+ return;
2328
+ }
2329
+
2330
+ cancelOutOfViewRequests(this, frameState);
2331
+ raiseLoadProgressEvent(this, frameState);
2332
+ this._cache.unloadTiles(this, unloadTile);
2333
+
2334
+ // If the style wasn't able to be applied this frame (for example,
2335
+ // the tileset was hidden), keep it dirty so the engine can try
2336
+ // to apply the style next frame.
2337
+ if (this._styleApplied) {
2338
+ this._styleEngine.resetDirty();
2339
+ }
2340
+ this._styleApplied = false;
2341
+ };
2342
+
2343
+ /**
2344
+ * Perform any pass invariant tasks here. Called before any passes are executed.
2345
+ * @private
2346
+ */
2347
+ Cesium3DTileset.prototype.prePassesUpdate = function (frameState) {
2348
+ if (!this.ready) {
2349
+ return;
2350
+ }
2351
+
2352
+ processTiles(this, frameState);
2353
+
2354
+ // Update clipping planes
2355
+ const clippingPlanes = this._clippingPlanes;
2356
+ this._clippingPlanesOriginMatrixDirty = true;
2357
+ if (defined(clippingPlanes) && clippingPlanes.enabled) {
2358
+ clippingPlanes.update(frameState);
2359
+ }
2360
+
2361
+ if (!defined(this._loadTimestamp)) {
2362
+ this._loadTimestamp = JulianDate.clone(frameState.time);
2363
+ }
2364
+ this._timeSinceLoad = Math.max(
2365
+ JulianDate.secondsDifference(frameState.time, this._loadTimestamp) * 1000,
2366
+ 0.0
2367
+ );
2368
+
2369
+ this._skipLevelOfDetail =
2370
+ this.skipLevelOfDetail &&
2371
+ !defined(this._classificationType) &&
2372
+ !this._disableSkipLevelOfDetail &&
2373
+ !this._allTilesAdditive;
2374
+
2375
+ if (this.dynamicScreenSpaceError) {
2376
+ updateDynamicScreenSpaceError(this, frameState);
2377
+ }
2378
+
2379
+ if (frameState.newFrame) {
2380
+ this._cache.reset();
2381
+ }
2382
+ };
2383
+
2384
+ function cancelOutOfViewRequests(tileset, frameState) {
2385
+ const requestedTilesInFlight = tileset._requestedTilesInFlight;
2386
+ let removeCount = 0;
2387
+ const length = requestedTilesInFlight.length;
2388
+ for (let i = 0; i < length; ++i) {
2389
+ const tile = requestedTilesInFlight[i];
2390
+
2391
+ // NOTE: This is framerate dependant so make sure the threshold check is small
2392
+ const outOfView = frameState.frameNumber - tile._touchedFrame >= 1;
2393
+ if (tile._contentState !== Cesium3DTileContentState.LOADING) {
2394
+ // No longer fetching from host, don't need to track it anymore. Gets marked as LOADING in Cesium3DTile::requestContent().
2395
+ ++removeCount;
2396
+ continue;
2397
+ } else if (outOfView) {
2398
+ // RequestScheduler will take care of cancelling it
2399
+ tile.cancelRequests();
2400
+ ++removeCount;
2401
+ continue;
2402
+ }
2403
+
2404
+ if (removeCount > 0) {
2405
+ requestedTilesInFlight[i - removeCount] = tile;
2406
+ }
2407
+ }
2408
+
2409
+ requestedTilesInFlight.length -= removeCount;
2410
+ }
2411
+
2412
+ function requestTiles(tileset, isAsync) {
2413
+ // Sort requests by priority before making any requests.
2414
+ // This makes it less likely that requests will be cancelled after being issued.
2415
+ const requestedTiles = tileset._requestedTiles;
2416
+ const length = requestedTiles.length;
2417
+ requestedTiles.sort(sortRequestByPriority);
2418
+ for (let i = 0; i < length; ++i) {
2419
+ requestContent(tileset, requestedTiles[i]);
2420
+ }
2421
+ }
2422
+
2423
+ function addToProcessingQueue(tileset, tile) {
2424
+ return function () {
2425
+ tileset._processingQueue.push(tile);
2426
+
2427
+ ++tileset._statistics.numberOfTilesProcessing;
2428
+ };
2429
+ }
2430
+
2431
+ function handleTileFailure(tileset, tile) {
2432
+ return function (error) {
2433
+ if (tile._contentState !== Cesium3DTileContentState.FAILED) {
2434
+ // If the tile has not failed, the request has been rejected this frame, but will be retried. Do not bubble up the error.
2435
+ return;
2436
+ }
2437
+
2438
+ const url = tile._contentResource.url;
2439
+ const message = defined(error.message) ? error.message : error.toString();
2440
+ if (tileset.tileFailed.numberOfListeners > 0) {
2441
+ tileset.tileFailed.raiseEvent({
2442
+ url: url,
2443
+ message: message,
2444
+ });
2445
+ } else {
2446
+ console.log(`A 3D tile failed to load: ${url}`);
2447
+ console.log(`Error: ${message}`);
2448
+ }
2449
+ };
2450
+ }
2451
+
2452
+ function handleTileSuccess(tileset, tile) {
2453
+ return function (content) {
2454
+ --tileset._statistics.numberOfTilesProcessing;
2455
+
2456
+ if (!defined(content)) {
2457
+ // A request was cancelled. Do not update successful statistics. The request will be retried.
2458
+ return;
2459
+ }
2460
+
2461
+ if (!tile.hasTilesetContent && !tile.hasImplicitContent) {
2462
+ // RESEARCH_IDEA: ability to unload tiles (without content) for an
2463
+ // external tileset when all the tiles are unloaded.
2464
+ tileset._statistics.incrementLoadCounts(tile.content);
2465
+ ++tileset._statistics.numberOfTilesWithContentReady;
2466
+ ++tileset._statistics.numberOfLoadedTilesTotal;
2467
+
2468
+ // Add to the tile cache. Previously expired tiles are already in the cache and won't get re-added.
2469
+ tileset._cache.add(tile);
2470
+ }
2471
+
2472
+ tileset.tileLoad.raiseEvent(tile);
2473
+ };
2474
+ }
2475
+
2476
+ function filterProcessingQueue(tileset) {
2477
+ const tiles = tileset._processingQueue;
2478
+ const length = tiles.length;
2479
+
2480
+ let removeCount = 0;
2481
+ for (let i = 0; i < length; ++i) {
2482
+ const tile = tiles[i];
2483
+ if (tile._contentState !== Cesium3DTileContentState.PROCESSING) {
2484
+ ++removeCount;
2485
+ continue;
2486
+ }
2487
+ if (removeCount > 0) {
2488
+ tiles[i - removeCount] = tile;
2489
+ }
2490
+ }
2491
+ tiles.length -= removeCount;
2492
+ }
2493
+
2494
+ function processTiles(tileset, frameState) {
2495
+ filterProcessingQueue(tileset);
2496
+ const tiles = tileset._processingQueue;
2497
+ const length = tiles.length;
2498
+ // Process tiles in the PROCESSING state so they will eventually move to the READY state.
2499
+ for (let i = 0; i < length; ++i) {
2500
+ tiles[i].process(tileset, frameState);
2501
+ }
2502
+ }
2503
+
2504
+ ///////////////////////////////////////////////////////////////////////////
2505
+
2506
+ const scratchCartesian = new Cartesian3();
2507
+
2508
+ const stringOptions = {
2509
+ maximumFractionDigits: 3,
2510
+ };
2511
+
2512
+ function formatMemoryString(memorySizeInBytes) {
2513
+ const memoryInMegabytes = memorySizeInBytes / 1048576;
2514
+ if (memoryInMegabytes < 1.0) {
2515
+ return memoryInMegabytes.toLocaleString(undefined, stringOptions);
2516
+ }
2517
+ return Math.round(memoryInMegabytes).toLocaleString();
2518
+ }
2519
+
2520
+ function computeTileLabelPosition(tile) {
2521
+ const boundingVolume = tile.boundingVolume.boundingVolume;
2522
+ const halfAxes = boundingVolume.halfAxes;
2523
+ const radius = boundingVolume.radius;
2524
+
2525
+ let position = Cartesian3.clone(boundingVolume.center, scratchCartesian);
2526
+ if (defined(halfAxes)) {
2527
+ position.x += 0.75 * (halfAxes[0] + halfAxes[3] + halfAxes[6]);
2528
+ position.y += 0.75 * (halfAxes[1] + halfAxes[4] + halfAxes[7]);
2529
+ position.z += 0.75 * (halfAxes[2] + halfAxes[5] + halfAxes[8]);
2530
+ } else if (defined(radius)) {
2531
+ let normal = Cartesian3.normalize(boundingVolume.center, scratchCartesian);
2532
+ normal = Cartesian3.multiplyByScalar(
2533
+ normal,
2534
+ 0.75 * radius,
2535
+ scratchCartesian
2536
+ );
2537
+ position = Cartesian3.add(normal, boundingVolume.center, scratchCartesian);
2538
+ }
2539
+ return position;
2540
+ }
2541
+
2542
+ function addTileDebugLabel(tile, tileset, position) {
2543
+ let labelString = "";
2544
+ let attributes = 0;
2545
+
2546
+ if (tileset.debugShowGeometricError) {
2547
+ labelString += `\nGeometric error: ${tile.geometricError}`;
2548
+ attributes++;
2549
+ }
2550
+
2551
+ if (tileset.debugShowRenderingStatistics) {
2552
+ labelString += `\nCommands: ${tile.commandsLength}`;
2553
+ attributes++;
2554
+
2555
+ // Don't display number of points or triangles if 0.
2556
+ const numberOfPoints = tile.content.pointsLength;
2557
+ if (numberOfPoints > 0) {
2558
+ labelString += `\nPoints: ${tile.content.pointsLength}`;
2559
+ attributes++;
2560
+ }
2561
+
2562
+ const numberOfTriangles = tile.content.trianglesLength;
2563
+ if (numberOfTriangles > 0) {
2564
+ labelString += `\nTriangles: ${tile.content.trianglesLength}`;
2565
+ attributes++;
2566
+ }
2567
+
2568
+ labelString += `\nFeatures: ${tile.content.featuresLength}`;
2569
+ attributes++;
2570
+ }
2571
+
2572
+ if (tileset.debugShowMemoryUsage) {
2573
+ labelString += `\nTexture Memory: ${formatMemoryString(
2574
+ tile.content.texturesByteLength
2575
+ )}`;
2576
+ labelString += `\nGeometry Memory: ${formatMemoryString(
2577
+ tile.content.geometryByteLength
2578
+ )}`;
2579
+ attributes += 2;
2580
+ }
2581
+
2582
+ if (tileset.debugShowUrl) {
2583
+ if (tile.hasMultipleContents) {
2584
+ labelString += "\nUrls:";
2585
+ const urls = tile.content.innerContentUrls;
2586
+ for (let i = 0; i < urls.length; i++) {
2587
+ labelString += `\n- ${urls[i]}`;
2588
+ }
2589
+ attributes += urls.length;
2590
+ } else {
2591
+ labelString += `\nUrl: ${tile._contentHeader.uri}`;
2592
+ attributes++;
2593
+ }
2594
+ }
2595
+
2596
+ const newLabel = {
2597
+ text: labelString.substring(1),
2598
+ position: position,
2599
+ font: `${19 - attributes}px sans-serif`,
2600
+ showBackground: true,
2601
+ disableDepthTestDistance: Number.POSITIVE_INFINITY,
2602
+ };
2603
+
2604
+ return tileset._tileDebugLabels.add(newLabel);
2605
+ }
2606
+
2607
+ function updateTileDebugLabels(tileset, frameState) {
2608
+ let i;
2609
+ let tile;
2610
+ const selectedTiles = tileset._selectedTiles;
2611
+ const selectedLength = selectedTiles.length;
2612
+ const emptyTiles = tileset._emptyTiles;
2613
+ const emptyLength = emptyTiles.length;
2614
+ tileset._tileDebugLabels.removeAll();
2615
+
2616
+ if (tileset.debugPickedTileLabelOnly) {
2617
+ if (defined(tileset.debugPickedTile)) {
2618
+ const position = defined(tileset.debugPickPosition)
2619
+ ? tileset.debugPickPosition
2620
+ : computeTileLabelPosition(tileset.debugPickedTile);
2621
+ const label = addTileDebugLabel(
2622
+ tileset.debugPickedTile,
2623
+ tileset,
2624
+ position
2625
+ );
2626
+ label.pixelOffset = new Cartesian2(15, -15); // Offset to avoid picking the label.
2627
+ }
2628
+ } else {
2629
+ for (i = 0; i < selectedLength; ++i) {
2630
+ tile = selectedTiles[i];
2631
+ addTileDebugLabel(tile, tileset, computeTileLabelPosition(tile));
2632
+ }
2633
+ for (i = 0; i < emptyLength; ++i) {
2634
+ tile = emptyTiles[i];
2635
+ if (tile.hasTilesetContent || tile.hasImplicitContent) {
2636
+ addTileDebugLabel(tile, tileset, computeTileLabelPosition(tile));
2637
+ }
2638
+ }
2639
+ }
2640
+ tileset._tileDebugLabels.update(frameState);
2641
+ }
2642
+
2643
+ function updateTiles(tileset, frameState, passOptions) {
2644
+ tileset._styleEngine.applyStyle(tileset);
2645
+ tileset._styleApplied = true;
2646
+
2647
+ const isRender = passOptions.isRender;
2648
+ const statistics = tileset._statistics;
2649
+ const commandList = frameState.commandList;
2650
+ const numberOfInitialCommands = commandList.length;
2651
+ const selectedTiles = tileset._selectedTiles;
2652
+ const selectedLength = selectedTiles.length;
2653
+ const emptyTiles = tileset._emptyTiles;
2654
+ const emptyLength = emptyTiles.length;
2655
+ const tileVisible = tileset.tileVisible;
2656
+ let i;
2657
+ let tile;
2658
+
2659
+ const bivariateVisibilityTest =
2660
+ tileset._skipLevelOfDetail &&
2661
+ tileset._hasMixedContent &&
2662
+ frameState.context.stencilBuffer &&
2663
+ selectedLength > 0;
2664
+
2665
+ tileset._backfaceCommands.length = 0;
2666
+
2667
+ if (bivariateVisibilityTest) {
2668
+ if (!defined(tileset._stencilClearCommand)) {
2669
+ tileset._stencilClearCommand = new ClearCommand({
2670
+ stencil: 0,
2671
+ pass: Pass.CESIUM_3D_TILE,
2672
+ renderState: RenderState.fromCache({
2673
+ stencilMask: StencilConstants.SKIP_LOD_MASK,
2674
+ }),
2675
+ });
2676
+ }
2677
+ commandList.push(tileset._stencilClearCommand);
2678
+ }
2679
+
2680
+ const lengthBeforeUpdate = commandList.length;
2681
+ for (i = 0; i < selectedLength; ++i) {
2682
+ tile = selectedTiles[i];
2683
+ // Raise the tileVisible event before update in case the tileVisible event
2684
+ // handler makes changes that update needs to apply to WebGL resources
2685
+ if (isRender) {
2686
+ tileVisible.raiseEvent(tile);
2687
+ }
2688
+ tile.update(tileset, frameState, passOptions);
2689
+ statistics.incrementSelectionCounts(tile.content);
2690
+ ++statistics.selected;
2691
+ }
2692
+ for (i = 0; i < emptyLength; ++i) {
2693
+ tile = emptyTiles[i];
2694
+ tile.update(tileset, frameState, passOptions);
2695
+ }
2696
+
2697
+ let addedCommandsLength = commandList.length - lengthBeforeUpdate;
2698
+
2699
+ tileset._backfaceCommands.trim();
2700
+
2701
+ if (bivariateVisibilityTest) {
2702
+ /*
2703
+ * Consider 'effective leaf' tiles as selected tiles that have no selected descendants. They may have children,
2704
+ * but they are currently our effective leaves because they do not have selected descendants. These tiles
2705
+ * are those where with tile._finalResolution === true.
2706
+ * Let 'unresolved' tiles be those with tile._finalResolution === false.
2707
+ *
2708
+ * 1. Render just the backfaces of unresolved tiles in order to lay down z
2709
+ * 2. Render all frontfaces wherever tile._selectionDepth > stencilBuffer.
2710
+ * Replace stencilBuffer with tile._selectionDepth, when passing the z test.
2711
+ * Because children are always drawn before ancestors {@link Cesium3DTilesetTraversal#traverseAndSelect},
2712
+ * this effectively draws children first and does not draw ancestors if a descendant has already
2713
+ * been drawn at that pixel.
2714
+ * Step 1 prevents child tiles from appearing on top when they are truly behind ancestor content.
2715
+ * If they are behind the backfaces of the ancestor, then they will not be drawn.
2716
+ *
2717
+ * NOTE: Step 2 sometimes causes visual artifacts when backfacing child content has some faces that
2718
+ * partially face the camera and are inside of the ancestor content. Because they are inside, they will
2719
+ * not be culled by the depth writes in Step 1, and because they partially face the camera, the stencil tests
2720
+ * will draw them on top of the ancestor content.
2721
+ *
2722
+ * NOTE: Because we always render backfaces of unresolved tiles, if the camera is looking at the backfaces
2723
+ * of an object, they will always be drawn while loading, even if backface culling is enabled.
2724
+ */
2725
+
2726
+ const backfaceCommands = tileset._backfaceCommands.values;
2727
+ const backfaceCommandsLength = backfaceCommands.length;
2728
+
2729
+ commandList.length += backfaceCommandsLength;
2730
+
2731
+ // copy commands to the back of the commandList
2732
+ for (i = addedCommandsLength - 1; i >= 0; --i) {
2733
+ commandList[lengthBeforeUpdate + backfaceCommandsLength + i] =
2734
+ commandList[lengthBeforeUpdate + i];
2735
+ }
2736
+
2737
+ // move backface commands to the front of the commandList
2738
+ for (i = 0; i < backfaceCommandsLength; ++i) {
2739
+ commandList[lengthBeforeUpdate + i] = backfaceCommands[i];
2740
+ }
2741
+ }
2742
+
2743
+ // Number of commands added by each update above
2744
+ addedCommandsLength = commandList.length - numberOfInitialCommands;
2745
+ statistics.numberOfCommands = addedCommandsLength;
2746
+
2747
+ // Only run EDL if simple attenuation is on
2748
+ if (
2749
+ isRender &&
2750
+ tileset.pointCloudShading.attenuation &&
2751
+ tileset.pointCloudShading.eyeDomeLighting &&
2752
+ addedCommandsLength > 0
2753
+ ) {
2754
+ tileset._pointCloudEyeDomeLighting.update(
2755
+ frameState,
2756
+ numberOfInitialCommands,
2757
+ tileset.pointCloudShading,
2758
+ tileset.boundingSphere
2759
+ );
2760
+ }
2761
+
2762
+ if (isRender) {
2763
+ if (
2764
+ tileset.debugShowGeometricError ||
2765
+ tileset.debugShowRenderingStatistics ||
2766
+ tileset.debugShowMemoryUsage ||
2767
+ tileset.debugShowUrl
2768
+ ) {
2769
+ if (!defined(tileset._tileDebugLabels)) {
2770
+ tileset._tileDebugLabels = new LabelCollection();
2771
+ }
2772
+ updateTileDebugLabels(tileset, frameState);
2773
+ } else {
2774
+ tileset._tileDebugLabels =
2775
+ tileset._tileDebugLabels && tileset._tileDebugLabels.destroy();
2776
+ }
2777
+ }
2778
+ }
2779
+
2780
+ const scratchStack = [];
2781
+
2782
+ function destroySubtree(tileset, tile) {
2783
+ const root = tile;
2784
+ const stack = scratchStack;
2785
+ stack.push(tile);
2786
+ while (stack.length > 0) {
2787
+ tile = stack.pop();
2788
+ const children = tile.children;
2789
+ const length = children.length;
2790
+ for (let i = 0; i < length; ++i) {
2791
+ stack.push(children[i]);
2792
+ }
2793
+ if (tile !== root) {
2794
+ destroyTile(tileset, tile);
2795
+ --tileset._statistics.numberOfTilesTotal;
2796
+ }
2797
+ }
2798
+ root.children = [];
2799
+ }
2800
+
2801
+ function unloadTile(tileset, tile) {
2802
+ tileset.tileUnload.raiseEvent(tile);
2803
+ tileset._statistics.decrementLoadCounts(tile.content);
2804
+ --tileset._statistics.numberOfTilesWithContentReady;
2805
+ tile.unloadContent();
2806
+ }
2807
+
2808
+ function destroyTile(tileset, tile) {
2809
+ tileset._cache.unloadTile(tileset, tile, unloadTile);
2810
+ tile.destroy();
2811
+ }
2812
+
2813
+ /**
2814
+ * Unloads all tiles that weren't selected the previous frame. This can be used to
2815
+ * explicitly manage the tile cache and reduce the total number of tiles loaded below
2816
+ * {@link Cesium3DTileset#maximumMemoryUsage}.
2817
+ * <p>
2818
+ * Tile unloads occur at the next frame to keep all the WebGL delete calls
2819
+ * within the render loop.
2820
+ * </p>
2821
+ */
2822
+ Cesium3DTileset.prototype.trimLoadedTiles = function () {
2823
+ this._cache.trim();
2824
+ };
2825
+
2826
+ ///////////////////////////////////////////////////////////////////////////
2827
+
2828
+ function raiseLoadProgressEvent(tileset, frameState) {
2829
+ const statistics = tileset._statistics;
2830
+ const statisticsLast = tileset._statisticsLast;
2831
+
2832
+ const numberOfPendingRequests = statistics.numberOfPendingRequests;
2833
+ const numberOfTilesProcessing = statistics.numberOfTilesProcessing;
2834
+ const lastNumberOfPendingRequest = statisticsLast.numberOfPendingRequests;
2835
+ const lastNumberOfTilesProcessing = statisticsLast.numberOfTilesProcessing;
2836
+
2837
+ Cesium3DTilesetStatistics.clone(statistics, statisticsLast);
2838
+
2839
+ const progressChanged =
2840
+ numberOfPendingRequests !== lastNumberOfPendingRequest ||
2841
+ numberOfTilesProcessing !== lastNumberOfTilesProcessing;
2842
+
2843
+ if (progressChanged) {
2844
+ frameState.afterRender.push(function () {
2845
+ tileset.loadProgress.raiseEvent(
2846
+ numberOfPendingRequests,
2847
+ numberOfTilesProcessing
2848
+ );
2849
+
2850
+ return true;
2851
+ });
2852
+ }
2853
+
2854
+ tileset._tilesLoaded =
2855
+ statistics.numberOfPendingRequests === 0 &&
2856
+ statistics.numberOfTilesProcessing === 0 &&
2857
+ statistics.numberOfAttemptedRequests === 0;
2858
+
2859
+ // Events are raised (added to the afterRender queue) here since promises
2860
+ // may resolve outside of the update loop that then raise events, e.g.,
2861
+ // model's readyPromise.
2862
+ if (progressChanged && tileset._tilesLoaded) {
2863
+ frameState.afterRender.push(function () {
2864
+ tileset.allTilesLoaded.raiseEvent();
2865
+ return true;
2866
+ });
2867
+ if (!tileset._initialTilesLoaded) {
2868
+ tileset._initialTilesLoaded = true;
2869
+ frameState.afterRender.push(function () {
2870
+ tileset.initialTilesLoaded.raiseEvent();
2871
+ return true;
2872
+ });
2873
+ }
2874
+ }
2875
+ }
2876
+
2877
+ function resetMinimumMaximum(tileset) {
2878
+ tileset._heatmap.resetMinimumMaximum();
2879
+ tileset._minimumPriority.depth = Number.MAX_VALUE;
2880
+ tileset._maximumPriority.depth = -Number.MAX_VALUE;
2881
+ tileset._minimumPriority.foveatedFactor = Number.MAX_VALUE;
2882
+ tileset._maximumPriority.foveatedFactor = -Number.MAX_VALUE;
2883
+ tileset._minimumPriority.distance = Number.MAX_VALUE;
2884
+ tileset._maximumPriority.distance = -Number.MAX_VALUE;
2885
+ tileset._minimumPriority.reverseScreenSpaceError = Number.MAX_VALUE;
2886
+ tileset._maximumPriority.reverseScreenSpaceError = -Number.MAX_VALUE;
2887
+ }
2888
+
2889
+ function detectModelMatrixChanged(tileset, frameState) {
2890
+ if (
2891
+ frameState.frameNumber !== tileset._updatedModelMatrixFrame ||
2892
+ !defined(tileset._previousModelMatrix)
2893
+ ) {
2894
+ tileset._updatedModelMatrixFrame = frameState.frameNumber;
2895
+ tileset._modelMatrixChanged = !Matrix4.equals(
2896
+ tileset.modelMatrix,
2897
+ tileset._previousModelMatrix
2898
+ );
2899
+ if (tileset._modelMatrixChanged) {
2900
+ tileset._previousModelMatrix = Matrix4.clone(
2901
+ tileset.modelMatrix,
2902
+ tileset._previousModelMatrix
2903
+ );
2904
+ }
2905
+ }
2906
+ }
2907
+
2908
+ ///////////////////////////////////////////////////////////////////////////
2909
+
2910
+ function update(tileset, frameState, passStatistics, passOptions) {
2911
+ if (frameState.mode === SceneMode.MORPHING) {
2912
+ return false;
2913
+ }
2914
+
2915
+ if (!tileset.ready) {
2916
+ return false;
2917
+ }
2918
+
2919
+ const statistics = tileset._statistics;
2920
+ statistics.clear();
2921
+
2922
+ const isRender = passOptions.isRender;
2923
+
2924
+ // Resets the visibility check for each pass
2925
+ ++tileset._updatedVisibilityFrame;
2926
+
2927
+ // Update any tracked min max values
2928
+ resetMinimumMaximum(tileset);
2929
+
2930
+ detectModelMatrixChanged(tileset, frameState);
2931
+ tileset._cullRequestsWhileMoving =
2932
+ tileset.cullRequestsWhileMoving && !tileset._modelMatrixChanged;
2933
+
2934
+ const ready = passOptions.traversal.selectTiles(tileset, frameState);
2935
+
2936
+ if (passOptions.requestTiles) {
2937
+ requestTiles(tileset);
2938
+ }
2939
+
2940
+ updateTiles(tileset, frameState, passOptions);
2941
+
2942
+ // Update pass statistics
2943
+ Cesium3DTilesetStatistics.clone(statistics, passStatistics);
2944
+
2945
+ if (isRender) {
2946
+ const credits = tileset._credits;
2947
+ if (defined(credits) && statistics.selected !== 0) {
2948
+ const length = credits.length;
2949
+ for (let i = 0; i < length; ++i) {
2950
+ const credit = credits[i];
2951
+ credit.showOnScreen = tileset._showCreditsOnScreen;
2952
+ frameState.creditDisplay.addCredit(credit);
2953
+ }
2954
+ }
2955
+ }
2956
+
2957
+ return ready;
2958
+ }
2959
+
2960
+ /**
2961
+ * @private
2962
+ */
2963
+ Cesium3DTileset.prototype.update = function (frameState) {
2964
+ this.updateForPass(frameState, frameState.tilesetPassState);
2965
+ };
2966
+
2967
+ /**
2968
+ * @private
2969
+ */
2970
+ Cesium3DTileset.prototype.updateForPass = function (
2971
+ frameState,
2972
+ tilesetPassState
2973
+ ) {
2974
+ //>>includeStart('debug', pragmas.debug);
2975
+ Check.typeOf.object("frameState", frameState);
2976
+ Check.typeOf.object("tilesetPassState", tilesetPassState);
2977
+ //>>includeEnd('debug');
2978
+
2979
+ const pass = tilesetPassState.pass;
2980
+ if (
2981
+ (pass === Cesium3DTilePass.PRELOAD &&
2982
+ (!this.preloadWhenHidden || this.show)) ||
2983
+ (pass === Cesium3DTilePass.PRELOAD_FLIGHT &&
2984
+ (!this.preloadFlightDestinations ||
2985
+ (!this.show && !this.preloadWhenHidden))) ||
2986
+ (pass === Cesium3DTilePass.REQUEST_RENDER_MODE_DEFER_CHECK &&
2987
+ ((!this._cullRequestsWhileMoving && this.foveatedTimeDelay <= 0) ||
2988
+ !this.show))
2989
+ ) {
2990
+ return;
2991
+ }
2992
+
2993
+ const originalCommandList = frameState.commandList;
2994
+ const originalCamera = frameState.camera;
2995
+ const originalCullingVolume = frameState.cullingVolume;
2996
+
2997
+ tilesetPassState.ready = false;
2998
+
2999
+ const passOptions = Cesium3DTilePass.getPassOptions(pass);
3000
+ const ignoreCommands = passOptions.ignoreCommands;
3001
+
3002
+ const commandList = defaultValue(
3003
+ tilesetPassState.commandList,
3004
+ originalCommandList
3005
+ );
3006
+ const commandStart = commandList.length;
3007
+
3008
+ frameState.commandList = commandList;
3009
+ frameState.camera = defaultValue(tilesetPassState.camera, originalCamera);
3010
+ frameState.cullingVolume = defaultValue(
3011
+ tilesetPassState.cullingVolume,
3012
+ originalCullingVolume
3013
+ );
3014
+
3015
+ const passStatistics = this._statisticsPerPass[pass];
3016
+
3017
+ if (this.show || ignoreCommands) {
3018
+ this._pass = pass;
3019
+ tilesetPassState.ready = update(
3020
+ this,
3021
+ frameState,
3022
+ passStatistics,
3023
+ passOptions
3024
+ );
3025
+ }
3026
+
3027
+ if (ignoreCommands) {
3028
+ commandList.length = commandStart;
3029
+ }
3030
+
3031
+ frameState.commandList = originalCommandList;
3032
+ frameState.camera = originalCamera;
3033
+ frameState.cullingVolume = originalCullingVolume;
3034
+ };
3035
+
3036
+ /**
3037
+ * <code>true</code> if the tileset JSON file lists the extension in extensionsUsed; otherwise, <code>false</code>.
3038
+ * @param {String} extensionName The name of the extension to check.
3039
+ *
3040
+ * @returns {Boolean} <code>true</code> if the tileset JSON file lists the extension in extensionsUsed; otherwise, <code>false</code>.
3041
+ */
3042
+ Cesium3DTileset.prototype.hasExtension = function (extensionName) {
3043
+ if (!defined(this._extensionsUsed)) {
3044
+ return false;
3045
+ }
3046
+
3047
+ return this._extensionsUsed.indexOf(extensionName) > -1;
3048
+ };
3049
+
3050
+ /**
3051
+ * Returns true if this object was destroyed; otherwise, false.
3052
+ * <br /><br />
3053
+ * If this object was destroyed, it should not be used; calling any function other than
3054
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
3055
+ *
3056
+ * @returns {Boolean} <code>true</code> if this object was destroyed; otherwise, <code>false</code>.
3057
+ *
3058
+ * @see Cesium3DTileset#destroy
3059
+ */
3060
+ Cesium3DTileset.prototype.isDestroyed = function () {
3061
+ return false;
3062
+ };
3063
+
3064
+ /**
3065
+ * Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
3066
+ * release of WebGL resources, instead of relying on the garbage collector to destroy this object.
3067
+ * <br /><br />
3068
+ * Once an object is destroyed, it should not be used; calling any function other than
3069
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
3070
+ * assign the return value (<code>undefined</code>) to the object as done in the example.
3071
+ *
3072
+ * @exception {DeveloperError} This object was destroyed, i.e., destroy() was called.
3073
+ *
3074
+ * @example
3075
+ * tileset = tileset && tileset.destroy();
3076
+ *
3077
+ * @see Cesium3DTileset#isDestroyed
3078
+ */
3079
+ Cesium3DTileset.prototype.destroy = function () {
3080
+ this._tileDebugLabels =
3081
+ this._tileDebugLabels && this._tileDebugLabels.destroy();
3082
+ this._clippingPlanes = this._clippingPlanes && this._clippingPlanes.destroy();
3083
+
3084
+ if (defined(this._schemaLoader)) {
3085
+ ResourceCache.unload(this._schemaLoader);
3086
+ }
3087
+
3088
+ // Traverse the tree and destroy all tiles
3089
+ if (defined(this._root)) {
3090
+ const stack = scratchStack;
3091
+ stack.push(this._root);
3092
+
3093
+ while (stack.length > 0) {
3094
+ const tile = stack.pop();
3095
+ tile.destroy();
3096
+
3097
+ const children = tile.children;
3098
+ const length = children.length;
3099
+ for (let i = 0; i < length; ++i) {
3100
+ stack.push(children[i]);
3101
+ }
3102
+ }
3103
+ }
3104
+ this._root = undefined;
3105
+
3106
+ if (
3107
+ this._shouldDestroyImageBasedLighting &&
3108
+ !this._imageBasedLighting.isDestroyed()
3109
+ ) {
3110
+ this._imageBasedLighting.destroy();
3111
+ }
3112
+ this._imageBasedLighting = undefined;
3113
+
3114
+ return destroyObject(this);
3115
+ };
3116
+
3117
+ Cesium3DTileset.supportedExtensions = {
3118
+ "3DTILES_metadata": true,
3119
+ "3DTILES_implicit_tiling": true,
3120
+ "3DTILES_content_gltf": true,
3121
+ "3DTILES_multiple_contents": true,
3122
+ "3DTILES_bounding_volume_S2": true,
3123
+ "3DTILES_batch_table_hierarchy": true,
3124
+ "3DTILES_draco_point_compression": true,
3125
+ MAXAR_content_geojson: true,
3126
+ };
3127
+
3128
+ /**
3129
+ * Checks to see if a given extension is supported by Cesium3DTileset. If
3130
+ * the extension is not supported by Cesium3DTileset, it throws a RuntimeError.
3131
+ *
3132
+ * @param {Object} extensionsRequired The extensions we wish to check
3133
+ *
3134
+ * @private
3135
+ */
3136
+ Cesium3DTileset.checkSupportedExtensions = function (extensionsRequired) {
3137
+ for (let i = 0; i < extensionsRequired.length; i++) {
3138
+ if (!Cesium3DTileset.supportedExtensions[extensionsRequired[i]]) {
3139
+ throw new RuntimeError(
3140
+ `Unsupported 3D Tiles Extension: ${extensionsRequired[i]}`
3141
+ );
3142
+ }
3143
+ }
3144
+ };
3145
+
3146
+ /**
3147
+ * Optimization option. Used as a callback when {@link Cesium3DTileset#foveatedScreenSpaceError} is true to control how much to raise the screen space error for tiles outside the foveated cone,
3148
+ * interpolating between {@link Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation} and {@link Cesium3DTileset#maximumScreenSpaceError}.
3149
+ *
3150
+ * @callback Cesium3DTileset.foveatedInterpolationCallback
3151
+ * @default Math.lerp
3152
+ *
3153
+ * @param {Number} p The start value to interpolate.
3154
+ * @param {Number} q The end value to interpolate.
3155
+ * @param {Number} time The time of interpolation generally in the range <code>[0.0, 1.0]</code>.
3156
+ * @returns {Number} The interpolated value.
3157
+ */
3158
+ export default Cesium3DTileset;