@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,5141 @@
1
+ import ArcType from "../Core/ArcType.js";
2
+ import BoundingRectangle from "../Core/BoundingRectangle.js";
3
+ import Cartesian2 from "../Core/Cartesian2.js";
4
+ import Cartesian3 from "../Core/Cartesian3.js";
5
+ import Cartographic from "../Core/Cartographic.js";
6
+ import ClockRange from "../Core/ClockRange.js";
7
+ import ClockStep from "../Core/ClockStep.js";
8
+ import Color from "../Core/Color.js";
9
+ import CornerType from "../Core/CornerType.js";
10
+ import Credit from "../Core/Credit.js";
11
+ import createGuid from "../Core/createGuid.js";
12
+ import defaultValue from "../Core/defaultValue.js";
13
+ import defined from "../Core/defined.js";
14
+ import DeveloperError from "../Core/DeveloperError.js";
15
+ import DistanceDisplayCondition from "../Core/DistanceDisplayCondition.js";
16
+ import Ellipsoid from "../Core/Ellipsoid.js";
17
+ import Event from "../Core/Event.js";
18
+ import ExtrapolationType from "../Core/ExtrapolationType.js";
19
+ import getFilenameFromUri from "../Core/getFilenameFromUri.js";
20
+ import HermitePolynomialApproximation from "../Core/HermitePolynomialApproximation.js";
21
+ import Iso8601 from "../Core/Iso8601.js";
22
+ import JulianDate from "../Core/JulianDate.js";
23
+ import LagrangePolynomialApproximation from "../Core/LagrangePolynomialApproximation.js";
24
+ import LinearApproximation from "../Core/LinearApproximation.js";
25
+ import CesiumMath from "../Core/Math.js";
26
+ import NearFarScalar from "../Core/NearFarScalar.js";
27
+ import PolygonHierarchy from "../Core/PolygonHierarchy.js";
28
+ import Quaternion from "../Core/Quaternion.js";
29
+ import Rectangle from "../Core/Rectangle.js";
30
+ import ReferenceFrame from "../Core/ReferenceFrame.js";
31
+ import Resource from "../Core/Resource.js";
32
+ import RuntimeError from "../Core/RuntimeError.js";
33
+ import Spherical from "../Core/Spherical.js";
34
+ import TimeInterval from "../Core/TimeInterval.js";
35
+ import TimeIntervalCollection from "../Core/TimeIntervalCollection.js";
36
+ import ClassificationType from "../Scene/ClassificationType.js";
37
+ import ColorBlendMode from "../Scene/ColorBlendMode.js";
38
+ import HeightReference from "../Scene/HeightReference.js";
39
+ import HorizontalOrigin from "../Scene/HorizontalOrigin.js";
40
+ import LabelStyle from "../Scene/LabelStyle.js";
41
+ import ShadowMode from "../Scene/ShadowMode.js";
42
+ import VerticalOrigin from "../Scene/VerticalOrigin.js";
43
+ import Uri from "urijs";
44
+ import BillboardGraphics from "./BillboardGraphics.js";
45
+ import BoxGraphics from "./BoxGraphics.js";
46
+ import CallbackProperty from "./CallbackProperty.js";
47
+ import CheckerboardMaterialProperty from "./CheckerboardMaterialProperty.js";
48
+ import ColorMaterialProperty from "./ColorMaterialProperty.js";
49
+ import CompositeMaterialProperty from "./CompositeMaterialProperty.js";
50
+ import CompositePositionProperty from "./CompositePositionProperty.js";
51
+ import CompositeProperty from "./CompositeProperty.js";
52
+ import ConstantPositionProperty from "./ConstantPositionProperty.js";
53
+ import ConstantProperty from "./ConstantProperty.js";
54
+ import CorridorGraphics from "./CorridorGraphics.js";
55
+ import CylinderGraphics from "./CylinderGraphics.js";
56
+ import DataSource from "./DataSource.js";
57
+ import DataSourceClock from "./DataSourceClock.js";
58
+ import EllipseGraphics from "./EllipseGraphics.js";
59
+ import EllipsoidGraphics from "./EllipsoidGraphics.js";
60
+ import EntityCluster from "./EntityCluster.js";
61
+ import EntityCollection from "./EntityCollection.js";
62
+ import GridMaterialProperty from "./GridMaterialProperty.js";
63
+ import ImageMaterialProperty from "./ImageMaterialProperty.js";
64
+ import LabelGraphics from "./LabelGraphics.js";
65
+ import ModelGraphics from "./ModelGraphics.js";
66
+ import NodeTransformationProperty from "./NodeTransformationProperty.js";
67
+ import PathGraphics from "./PathGraphics.js";
68
+ import PointGraphics from "./PointGraphics.js";
69
+ import PolygonGraphics from "./PolygonGraphics.js";
70
+ import PolylineArrowMaterialProperty from "./PolylineArrowMaterialProperty.js";
71
+ import PolylineDashMaterialProperty from "./PolylineDashMaterialProperty.js";
72
+ import PolylineGlowMaterialProperty from "./PolylineGlowMaterialProperty.js";
73
+ import PolylineGraphics from "./PolylineGraphics.js";
74
+ import PolylineOutlineMaterialProperty from "./PolylineOutlineMaterialProperty.js";
75
+ import PolylineVolumeGraphics from "./PolylineVolumeGraphics.js";
76
+ import PositionPropertyArray from "./PositionPropertyArray.js";
77
+ import Property from "./Property.js";
78
+ import PropertyArray from "./PropertyArray.js";
79
+ import PropertyBag from "./PropertyBag.js";
80
+ import RectangleGraphics from "./RectangleGraphics.js";
81
+ import ReferenceProperty from "./ReferenceProperty.js";
82
+ import Rotation from "./Rotation.js";
83
+ import SampledPositionProperty from "./SampledPositionProperty.js";
84
+ import SampledProperty from "./SampledProperty.js";
85
+ import StripeMaterialProperty from "./StripeMaterialProperty.js";
86
+ import StripeOrientation from "./StripeOrientation.js";
87
+ import TimeIntervalCollectionPositionProperty from "./TimeIntervalCollectionPositionProperty.js";
88
+ import TimeIntervalCollectionProperty from "./TimeIntervalCollectionProperty.js";
89
+ import VelocityOrientationProperty from "./VelocityOrientationProperty.js";
90
+ import VelocityVectorProperty from "./VelocityVectorProperty.js";
91
+ import WallGraphics from "./WallGraphics.js";
92
+ import Cesium3DTilesetGraphics from "./Cesium3DTilesetGraphics.js";
93
+
94
+ // A marker type to distinguish CZML properties where we need to end up with a unit vector.
95
+ // The data is still loaded into Cartesian3 objects but they are normalized.
96
+ function UnitCartesian3() {}
97
+ UnitCartesian3.packedLength = Cartesian3.packedLength;
98
+ UnitCartesian3.unpack = Cartesian3.unpack;
99
+ UnitCartesian3.pack = Cartesian3.pack;
100
+
101
+ // As a side note, for the purposes of CZML, Quaternion always indicates a unit quaternion.
102
+
103
+ let currentId;
104
+
105
+ function createReferenceProperty(entityCollection, referenceString) {
106
+ if (referenceString[0] === "#") {
107
+ referenceString = currentId + referenceString;
108
+ }
109
+ return ReferenceProperty.fromString(entityCollection, referenceString);
110
+ }
111
+
112
+ function createSpecializedProperty(type, entityCollection, packetData) {
113
+ if (defined(packetData.reference)) {
114
+ return createReferenceProperty(entityCollection, packetData.reference);
115
+ }
116
+
117
+ if (defined(packetData.velocityReference)) {
118
+ const referenceProperty = createReferenceProperty(
119
+ entityCollection,
120
+ packetData.velocityReference
121
+ );
122
+ switch (type) {
123
+ case Cartesian3:
124
+ case UnitCartesian3:
125
+ return new VelocityVectorProperty(
126
+ referenceProperty,
127
+ type === UnitCartesian3
128
+ );
129
+ case Quaternion:
130
+ return new VelocityOrientationProperty(referenceProperty);
131
+ }
132
+ }
133
+
134
+ throw new RuntimeError(`${JSON.stringify(packetData)} is not valid CZML.`);
135
+ }
136
+
137
+ function createAdapterProperty(property, adapterFunction) {
138
+ return new CallbackProperty(function (time, result) {
139
+ return adapterFunction(property.getValue(time, result));
140
+ }, property.isConstant);
141
+ }
142
+
143
+ const scratchCartesian = new Cartesian3();
144
+ const scratchSpherical = new Spherical();
145
+ const scratchCartographic = new Cartographic();
146
+ const scratchTimeInterval = new TimeInterval();
147
+ const scratchQuaternion = new Quaternion();
148
+
149
+ function unwrapColorInterval(czmlInterval) {
150
+ let rgbaf = czmlInterval.rgbaf;
151
+ if (defined(rgbaf)) {
152
+ return rgbaf;
153
+ }
154
+
155
+ const rgba = czmlInterval.rgba;
156
+ if (!defined(rgba)) {
157
+ return undefined;
158
+ }
159
+
160
+ const length = rgba.length;
161
+ if (length === Color.packedLength) {
162
+ return [
163
+ Color.byteToFloat(rgba[0]),
164
+ Color.byteToFloat(rgba[1]),
165
+ Color.byteToFloat(rgba[2]),
166
+ Color.byteToFloat(rgba[3]),
167
+ ];
168
+ }
169
+
170
+ rgbaf = new Array(length);
171
+ for (let i = 0; i < length; i += 5) {
172
+ rgbaf[i] = rgba[i];
173
+ rgbaf[i + 1] = Color.byteToFloat(rgba[i + 1]);
174
+ rgbaf[i + 2] = Color.byteToFloat(rgba[i + 2]);
175
+ rgbaf[i + 3] = Color.byteToFloat(rgba[i + 3]);
176
+ rgbaf[i + 4] = Color.byteToFloat(rgba[i + 4]);
177
+ }
178
+ return rgbaf;
179
+ }
180
+
181
+ function unwrapUriInterval(czmlInterval, sourceUri) {
182
+ const uri = defaultValue(czmlInterval.uri, czmlInterval);
183
+ if (defined(sourceUri)) {
184
+ return sourceUri.getDerivedResource({
185
+ url: uri,
186
+ });
187
+ }
188
+
189
+ return Resource.createIfNeeded(uri);
190
+ }
191
+
192
+ function unwrapRectangleInterval(czmlInterval) {
193
+ let wsen = czmlInterval.wsen;
194
+ if (defined(wsen)) {
195
+ return wsen;
196
+ }
197
+
198
+ const wsenDegrees = czmlInterval.wsenDegrees;
199
+ if (!defined(wsenDegrees)) {
200
+ return undefined;
201
+ }
202
+
203
+ const length = wsenDegrees.length;
204
+ if (length === Rectangle.packedLength) {
205
+ return [
206
+ CesiumMath.toRadians(wsenDegrees[0]),
207
+ CesiumMath.toRadians(wsenDegrees[1]),
208
+ CesiumMath.toRadians(wsenDegrees[2]),
209
+ CesiumMath.toRadians(wsenDegrees[3]),
210
+ ];
211
+ }
212
+
213
+ wsen = new Array(length);
214
+ for (let i = 0; i < length; i += 5) {
215
+ wsen[i] = wsenDegrees[i];
216
+ wsen[i + 1] = CesiumMath.toRadians(wsenDegrees[i + 1]);
217
+ wsen[i + 2] = CesiumMath.toRadians(wsenDegrees[i + 2]);
218
+ wsen[i + 3] = CesiumMath.toRadians(wsenDegrees[i + 3]);
219
+ wsen[i + 4] = CesiumMath.toRadians(wsenDegrees[i + 4]);
220
+ }
221
+ return wsen;
222
+ }
223
+
224
+ function convertUnitSphericalToCartesian(unitSpherical) {
225
+ const length = unitSpherical.length;
226
+ scratchSpherical.magnitude = 1.0;
227
+ if (length === 2) {
228
+ scratchSpherical.clock = unitSpherical[0];
229
+ scratchSpherical.cone = unitSpherical[1];
230
+ Cartesian3.fromSpherical(scratchSpherical, scratchCartesian);
231
+ return [scratchCartesian.x, scratchCartesian.y, scratchCartesian.z];
232
+ }
233
+
234
+ const result = new Array((length / 3) * 4);
235
+ for (let i = 0, j = 0; i < length; i += 3, j += 4) {
236
+ result[j] = unitSpherical[i];
237
+
238
+ scratchSpherical.clock = unitSpherical[i + 1];
239
+ scratchSpherical.cone = unitSpherical[i + 2];
240
+ Cartesian3.fromSpherical(scratchSpherical, scratchCartesian);
241
+
242
+ result[j + 1] = scratchCartesian.x;
243
+ result[j + 2] = scratchCartesian.y;
244
+ result[j + 3] = scratchCartesian.z;
245
+ }
246
+ return result;
247
+ }
248
+
249
+ function convertSphericalToCartesian(spherical) {
250
+ const length = spherical.length;
251
+ if (length === 3) {
252
+ scratchSpherical.clock = spherical[0];
253
+ scratchSpherical.cone = spherical[1];
254
+ scratchSpherical.magnitude = spherical[2];
255
+ Cartesian3.fromSpherical(scratchSpherical, scratchCartesian);
256
+ return [scratchCartesian.x, scratchCartesian.y, scratchCartesian.z];
257
+ }
258
+
259
+ const result = new Array(length);
260
+ for (let i = 0; i < length; i += 4) {
261
+ result[i] = spherical[i];
262
+
263
+ scratchSpherical.clock = spherical[i + 1];
264
+ scratchSpherical.cone = spherical[i + 2];
265
+ scratchSpherical.magnitude = spherical[i + 3];
266
+ Cartesian3.fromSpherical(scratchSpherical, scratchCartesian);
267
+
268
+ result[i + 1] = scratchCartesian.x;
269
+ result[i + 2] = scratchCartesian.y;
270
+ result[i + 3] = scratchCartesian.z;
271
+ }
272
+ return result;
273
+ }
274
+
275
+ function convertCartographicRadiansToCartesian(cartographicRadians) {
276
+ const length = cartographicRadians.length;
277
+ if (length === 3) {
278
+ scratchCartographic.longitude = cartographicRadians[0];
279
+ scratchCartographic.latitude = cartographicRadians[1];
280
+ scratchCartographic.height = cartographicRadians[2];
281
+ Ellipsoid.WGS84.cartographicToCartesian(
282
+ scratchCartographic,
283
+ scratchCartesian
284
+ );
285
+ return [scratchCartesian.x, scratchCartesian.y, scratchCartesian.z];
286
+ }
287
+
288
+ const result = new Array(length);
289
+ for (let i = 0; i < length; i += 4) {
290
+ result[i] = cartographicRadians[i];
291
+
292
+ scratchCartographic.longitude = cartographicRadians[i + 1];
293
+ scratchCartographic.latitude = cartographicRadians[i + 2];
294
+ scratchCartographic.height = cartographicRadians[i + 3];
295
+ Ellipsoid.WGS84.cartographicToCartesian(
296
+ scratchCartographic,
297
+ scratchCartesian
298
+ );
299
+
300
+ result[i + 1] = scratchCartesian.x;
301
+ result[i + 2] = scratchCartesian.y;
302
+ result[i + 3] = scratchCartesian.z;
303
+ }
304
+ return result;
305
+ }
306
+
307
+ function convertCartographicDegreesToCartesian(cartographicDegrees) {
308
+ const length = cartographicDegrees.length;
309
+ if (length === 3) {
310
+ scratchCartographic.longitude = CesiumMath.toRadians(
311
+ cartographicDegrees[0]
312
+ );
313
+ scratchCartographic.latitude = CesiumMath.toRadians(cartographicDegrees[1]);
314
+ scratchCartographic.height = cartographicDegrees[2];
315
+ Ellipsoid.WGS84.cartographicToCartesian(
316
+ scratchCartographic,
317
+ scratchCartesian
318
+ );
319
+ return [scratchCartesian.x, scratchCartesian.y, scratchCartesian.z];
320
+ }
321
+
322
+ const result = new Array(length);
323
+ for (let i = 0; i < length; i += 4) {
324
+ result[i] = cartographicDegrees[i];
325
+
326
+ scratchCartographic.longitude = CesiumMath.toRadians(
327
+ cartographicDegrees[i + 1]
328
+ );
329
+ scratchCartographic.latitude = CesiumMath.toRadians(
330
+ cartographicDegrees[i + 2]
331
+ );
332
+ scratchCartographic.height = cartographicDegrees[i + 3];
333
+ Ellipsoid.WGS84.cartographicToCartesian(
334
+ scratchCartographic,
335
+ scratchCartesian
336
+ );
337
+
338
+ result[i + 1] = scratchCartesian.x;
339
+ result[i + 2] = scratchCartesian.y;
340
+ result[i + 3] = scratchCartesian.z;
341
+ }
342
+ return result;
343
+ }
344
+
345
+ function unwrapCartesianInterval(czmlInterval) {
346
+ const cartesian = czmlInterval.cartesian;
347
+ if (defined(cartesian)) {
348
+ return cartesian;
349
+ }
350
+
351
+ const cartesianVelocity = czmlInterval.cartesianVelocity;
352
+ if (defined(cartesianVelocity)) {
353
+ return cartesianVelocity;
354
+ }
355
+
356
+ const unitCartesian = czmlInterval.unitCartesian;
357
+ if (defined(unitCartesian)) {
358
+ return unitCartesian;
359
+ }
360
+
361
+ const unitSpherical = czmlInterval.unitSpherical;
362
+ if (defined(unitSpherical)) {
363
+ return convertUnitSphericalToCartesian(unitSpherical);
364
+ }
365
+
366
+ const spherical = czmlInterval.spherical;
367
+ if (defined(spherical)) {
368
+ return convertSphericalToCartesian(spherical);
369
+ }
370
+
371
+ const cartographicRadians = czmlInterval.cartographicRadians;
372
+ if (defined(cartographicRadians)) {
373
+ return convertCartographicRadiansToCartesian(cartographicRadians);
374
+ }
375
+
376
+ const cartographicDegrees = czmlInterval.cartographicDegrees;
377
+ if (defined(cartographicDegrees)) {
378
+ return convertCartographicDegreesToCartesian(cartographicDegrees);
379
+ }
380
+
381
+ throw new RuntimeError(
382
+ `${JSON.stringify(czmlInterval)} is not a valid CZML interval.`
383
+ );
384
+ }
385
+
386
+ function normalizePackedCartesianArray(array, startingIndex) {
387
+ Cartesian3.unpack(array, startingIndex, scratchCartesian);
388
+ Cartesian3.normalize(scratchCartesian, scratchCartesian);
389
+ Cartesian3.pack(scratchCartesian, array, startingIndex);
390
+ }
391
+
392
+ function unwrapUnitCartesianInterval(czmlInterval) {
393
+ const cartesian = unwrapCartesianInterval(czmlInterval);
394
+ if (cartesian.length === 3) {
395
+ normalizePackedCartesianArray(cartesian, 0);
396
+ return cartesian;
397
+ }
398
+
399
+ for (let i = 1; i < cartesian.length; i += 4) {
400
+ normalizePackedCartesianArray(cartesian, i);
401
+ }
402
+
403
+ return cartesian;
404
+ }
405
+
406
+ function normalizePackedQuaternionArray(array, startingIndex) {
407
+ Quaternion.unpack(array, startingIndex, scratchQuaternion);
408
+ Quaternion.normalize(scratchQuaternion, scratchQuaternion);
409
+ Quaternion.pack(scratchQuaternion, array, startingIndex);
410
+ }
411
+
412
+ function unwrapQuaternionInterval(czmlInterval) {
413
+ const unitQuaternion = czmlInterval.unitQuaternion;
414
+ if (defined(unitQuaternion)) {
415
+ if (unitQuaternion.length === 4) {
416
+ normalizePackedQuaternionArray(unitQuaternion, 0);
417
+ return unitQuaternion;
418
+ }
419
+
420
+ for (let i = 1; i < unitQuaternion.length; i += 5) {
421
+ normalizePackedQuaternionArray(unitQuaternion, i);
422
+ }
423
+ }
424
+ return unitQuaternion;
425
+ }
426
+
427
+ function getPropertyType(czmlInterval) {
428
+ // The associations in this function need to be kept in sync with the
429
+ // associations in unwrapInterval.
430
+
431
+ // Intentionally omitted due to conficts in CZML property names:
432
+ // * Image (conflicts with Uri)
433
+ // * Rotation (conflicts with Number)
434
+ //
435
+ // cartesianVelocity is also omitted due to incomplete support for
436
+ // derivative information in CZML properties.
437
+ // (Currently cartesianVelocity is hacked directly into the position processing code)
438
+ if (typeof czmlInterval === "boolean") {
439
+ return Boolean;
440
+ } else if (typeof czmlInterval === "number") {
441
+ return Number;
442
+ } else if (typeof czmlInterval === "string") {
443
+ return String;
444
+ } else if (czmlInterval.hasOwnProperty("array")) {
445
+ return Array;
446
+ } else if (czmlInterval.hasOwnProperty("boolean")) {
447
+ return Boolean;
448
+ } else if (czmlInterval.hasOwnProperty("boundingRectangle")) {
449
+ return BoundingRectangle;
450
+ } else if (czmlInterval.hasOwnProperty("cartesian2")) {
451
+ return Cartesian2;
452
+ } else if (
453
+ czmlInterval.hasOwnProperty("cartesian") ||
454
+ czmlInterval.hasOwnProperty("spherical") ||
455
+ czmlInterval.hasOwnProperty("cartographicRadians") ||
456
+ czmlInterval.hasOwnProperty("cartographicDegrees")
457
+ ) {
458
+ return Cartesian3;
459
+ } else if (
460
+ czmlInterval.hasOwnProperty("unitCartesian") ||
461
+ czmlInterval.hasOwnProperty("unitSpherical")
462
+ ) {
463
+ return UnitCartesian3;
464
+ } else if (
465
+ czmlInterval.hasOwnProperty("rgba") ||
466
+ czmlInterval.hasOwnProperty("rgbaf")
467
+ ) {
468
+ return Color;
469
+ } else if (czmlInterval.hasOwnProperty("arcType")) {
470
+ return ArcType;
471
+ } else if (czmlInterval.hasOwnProperty("classificationType")) {
472
+ return ClassificationType;
473
+ } else if (czmlInterval.hasOwnProperty("colorBlendMode")) {
474
+ return ColorBlendMode;
475
+ } else if (czmlInterval.hasOwnProperty("cornerType")) {
476
+ return CornerType;
477
+ } else if (czmlInterval.hasOwnProperty("heightReference")) {
478
+ return HeightReference;
479
+ } else if (czmlInterval.hasOwnProperty("horizontalOrigin")) {
480
+ return HorizontalOrigin;
481
+ } else if (czmlInterval.hasOwnProperty("date")) {
482
+ return JulianDate;
483
+ } else if (czmlInterval.hasOwnProperty("labelStyle")) {
484
+ return LabelStyle;
485
+ } else if (czmlInterval.hasOwnProperty("number")) {
486
+ return Number;
487
+ } else if (czmlInterval.hasOwnProperty("nearFarScalar")) {
488
+ return NearFarScalar;
489
+ } else if (czmlInterval.hasOwnProperty("distanceDisplayCondition")) {
490
+ return DistanceDisplayCondition;
491
+ } else if (
492
+ czmlInterval.hasOwnProperty("object") ||
493
+ czmlInterval.hasOwnProperty("value")
494
+ ) {
495
+ return Object;
496
+ } else if (czmlInterval.hasOwnProperty("unitQuaternion")) {
497
+ return Quaternion;
498
+ } else if (czmlInterval.hasOwnProperty("shadowMode")) {
499
+ return ShadowMode;
500
+ } else if (czmlInterval.hasOwnProperty("string")) {
501
+ return String;
502
+ } else if (czmlInterval.hasOwnProperty("stripeOrientation")) {
503
+ return StripeOrientation;
504
+ } else if (
505
+ czmlInterval.hasOwnProperty("wsen") ||
506
+ czmlInterval.hasOwnProperty("wsenDegrees")
507
+ ) {
508
+ return Rectangle;
509
+ } else if (czmlInterval.hasOwnProperty("uri")) {
510
+ return Uri;
511
+ } else if (czmlInterval.hasOwnProperty("verticalOrigin")) {
512
+ return VerticalOrigin;
513
+ }
514
+ // fallback case
515
+ return Object;
516
+ }
517
+
518
+ function unwrapInterval(type, czmlInterval, sourceUri) {
519
+ // The associations in this function need to be kept in sync with the
520
+ // associations in getPropertyType
521
+ switch (type) {
522
+ case ArcType:
523
+ return ArcType[defaultValue(czmlInterval.arcType, czmlInterval)];
524
+ case Array:
525
+ return czmlInterval.array;
526
+ case Boolean:
527
+ return defaultValue(czmlInterval["boolean"], czmlInterval);
528
+ case BoundingRectangle:
529
+ return czmlInterval.boundingRectangle;
530
+ case Cartesian2:
531
+ return czmlInterval.cartesian2;
532
+ case Cartesian3:
533
+ return unwrapCartesianInterval(czmlInterval);
534
+ case UnitCartesian3:
535
+ return unwrapUnitCartesianInterval(czmlInterval);
536
+ case Color:
537
+ return unwrapColorInterval(czmlInterval);
538
+ case ClassificationType:
539
+ return ClassificationType[
540
+ defaultValue(czmlInterval.classificationType, czmlInterval)
541
+ ];
542
+ case ColorBlendMode:
543
+ return ColorBlendMode[
544
+ defaultValue(czmlInterval.colorBlendMode, czmlInterval)
545
+ ];
546
+ case CornerType:
547
+ return CornerType[defaultValue(czmlInterval.cornerType, czmlInterval)];
548
+ case HeightReference:
549
+ return HeightReference[
550
+ defaultValue(czmlInterval.heightReference, czmlInterval)
551
+ ];
552
+ case HorizontalOrigin:
553
+ return HorizontalOrigin[
554
+ defaultValue(czmlInterval.horizontalOrigin, czmlInterval)
555
+ ];
556
+ case Image:
557
+ return unwrapUriInterval(czmlInterval, sourceUri);
558
+ case JulianDate:
559
+ return JulianDate.fromIso8601(
560
+ defaultValue(czmlInterval.date, czmlInterval)
561
+ );
562
+ case LabelStyle:
563
+ return LabelStyle[defaultValue(czmlInterval.labelStyle, czmlInterval)];
564
+ case Number:
565
+ return defaultValue(czmlInterval.number, czmlInterval);
566
+ case NearFarScalar:
567
+ return czmlInterval.nearFarScalar;
568
+ case DistanceDisplayCondition:
569
+ return czmlInterval.distanceDisplayCondition;
570
+ case Object:
571
+ return defaultValue(
572
+ defaultValue(czmlInterval.object, czmlInterval.value),
573
+ czmlInterval
574
+ );
575
+ case Quaternion:
576
+ return unwrapQuaternionInterval(czmlInterval);
577
+ case Rotation:
578
+ return defaultValue(czmlInterval.number, czmlInterval);
579
+ case ShadowMode:
580
+ return ShadowMode[
581
+ defaultValue(
582
+ defaultValue(czmlInterval.shadowMode, czmlInterval.shadows),
583
+ czmlInterval
584
+ )
585
+ ];
586
+ case String:
587
+ return defaultValue(czmlInterval.string, czmlInterval);
588
+ case StripeOrientation:
589
+ return StripeOrientation[
590
+ defaultValue(czmlInterval.stripeOrientation, czmlInterval)
591
+ ];
592
+ case Rectangle:
593
+ return unwrapRectangleInterval(czmlInterval);
594
+ case Uri:
595
+ return unwrapUriInterval(czmlInterval, sourceUri);
596
+ case VerticalOrigin:
597
+ return VerticalOrigin[
598
+ defaultValue(czmlInterval.verticalOrigin, czmlInterval)
599
+ ];
600
+ default:
601
+ throw new RuntimeError(type);
602
+ }
603
+ }
604
+
605
+ const interpolators = {
606
+ HERMITE: HermitePolynomialApproximation,
607
+ LAGRANGE: LagrangePolynomialApproximation,
608
+ LINEAR: LinearApproximation,
609
+ };
610
+
611
+ function updateInterpolationSettings(packetData, property) {
612
+ const interpolationAlgorithm = packetData.interpolationAlgorithm;
613
+ const interpolationDegree = packetData.interpolationDegree;
614
+ if (defined(interpolationAlgorithm) || defined(interpolationDegree)) {
615
+ property.setInterpolationOptions({
616
+ interpolationAlgorithm: interpolators[interpolationAlgorithm],
617
+ interpolationDegree: interpolationDegree,
618
+ });
619
+ }
620
+
621
+ const forwardExtrapolationType = packetData.forwardExtrapolationType;
622
+ if (defined(forwardExtrapolationType)) {
623
+ property.forwardExtrapolationType =
624
+ ExtrapolationType[forwardExtrapolationType];
625
+ }
626
+
627
+ const forwardExtrapolationDuration = packetData.forwardExtrapolationDuration;
628
+ if (defined(forwardExtrapolationDuration)) {
629
+ property.forwardExtrapolationDuration = forwardExtrapolationDuration;
630
+ }
631
+
632
+ const backwardExtrapolationType = packetData.backwardExtrapolationType;
633
+ if (defined(backwardExtrapolationType)) {
634
+ property.backwardExtrapolationType =
635
+ ExtrapolationType[backwardExtrapolationType];
636
+ }
637
+
638
+ const backwardExtrapolationDuration =
639
+ packetData.backwardExtrapolationDuration;
640
+ if (defined(backwardExtrapolationDuration)) {
641
+ property.backwardExtrapolationDuration = backwardExtrapolationDuration;
642
+ }
643
+ }
644
+
645
+ const iso8601Scratch = {
646
+ iso8601: undefined,
647
+ };
648
+
649
+ function intervalFromString(intervalString) {
650
+ if (!defined(intervalString)) {
651
+ return undefined;
652
+ }
653
+ iso8601Scratch.iso8601 = intervalString;
654
+ return TimeInterval.fromIso8601(iso8601Scratch);
655
+ }
656
+
657
+ function wrapPropertyInInfiniteInterval(property) {
658
+ const interval = Iso8601.MAXIMUM_INTERVAL.clone();
659
+ interval.data = property;
660
+ return interval;
661
+ }
662
+
663
+ function convertPropertyToComposite(property) {
664
+ // Create the composite and add the old property, wrapped in an infinite interval.
665
+ const composite = new CompositeProperty();
666
+ composite.intervals.addInterval(wrapPropertyInInfiniteInterval(property));
667
+ return composite;
668
+ }
669
+
670
+ function convertPositionPropertyToComposite(property) {
671
+ // Create the composite and add the old property, wrapped in an infinite interval.
672
+ const composite = new CompositePositionProperty(property.referenceFrame);
673
+ composite.intervals.addInterval(wrapPropertyInInfiniteInterval(property));
674
+ return composite;
675
+ }
676
+
677
+ function processProperty(
678
+ type,
679
+ object,
680
+ propertyName,
681
+ packetData,
682
+ constrainedInterval,
683
+ sourceUri,
684
+ entityCollection
685
+ ) {
686
+ let combinedInterval = intervalFromString(packetData.interval);
687
+ if (defined(constrainedInterval)) {
688
+ if (defined(combinedInterval)) {
689
+ combinedInterval = TimeInterval.intersect(
690
+ combinedInterval,
691
+ constrainedInterval,
692
+ scratchTimeInterval
693
+ );
694
+ } else {
695
+ combinedInterval = constrainedInterval;
696
+ }
697
+ }
698
+
699
+ let packedLength;
700
+ let unwrappedInterval;
701
+ let unwrappedIntervalLength;
702
+
703
+ // CZML properties can be defined in many ways. Most ways represent a structure for
704
+ // encoding a single value (number, string, cartesian, etc.) Regardless of the value type,
705
+ // if it encodes a single value it will get loaded into a ConstantProperty eventually.
706
+ // Alternatively, there are ways of defining a property that require specialized
707
+ // client-side representation. Currently, these are ReferenceProperty,
708
+ // and client-side velocity computation properties such as VelocityVectorProperty.
709
+ const isValue =
710
+ !defined(packetData.reference) && !defined(packetData.velocityReference);
711
+ const hasInterval =
712
+ defined(combinedInterval) &&
713
+ !combinedInterval.equals(Iso8601.MAXIMUM_INTERVAL);
714
+
715
+ if (packetData.delete === true) {
716
+ // If deleting this property for all time, we can simply set to undefined and return.
717
+ if (!hasInterval) {
718
+ object[propertyName] = undefined;
719
+ return;
720
+ }
721
+
722
+ // Deleting depends on the type of property we have.
723
+ return removePropertyData(object[propertyName], combinedInterval);
724
+ }
725
+
726
+ let isSampled = false;
727
+
728
+ if (isValue) {
729
+ unwrappedInterval = unwrapInterval(type, packetData, sourceUri);
730
+ if (!defined(unwrappedInterval)) {
731
+ // not a known value type, bail
732
+ return;
733
+ }
734
+ packedLength = defaultValue(type.packedLength, 1);
735
+ unwrappedIntervalLength = defaultValue(unwrappedInterval.length, 1);
736
+ isSampled =
737
+ !defined(packetData.array) &&
738
+ typeof unwrappedInterval !== "string" &&
739
+ unwrappedIntervalLength > packedLength &&
740
+ type !== Object;
741
+ }
742
+
743
+ // Rotation is a special case because it represents a native type (Number)
744
+ // and therefore does not need to be unpacked when loaded as a constant value.
745
+ const needsUnpacking = typeof type.unpack === "function" && type !== Rotation;
746
+
747
+ // Any time a constant value is assigned, it completely blows away anything else.
748
+ if (!isSampled && !hasInterval) {
749
+ if (isValue) {
750
+ object[propertyName] = new ConstantProperty(
751
+ needsUnpacking ? type.unpack(unwrappedInterval, 0) : unwrappedInterval
752
+ );
753
+ } else {
754
+ object[propertyName] = createSpecializedProperty(
755
+ type,
756
+ entityCollection,
757
+ packetData
758
+ );
759
+ }
760
+ return;
761
+ }
762
+
763
+ let property = object[propertyName];
764
+
765
+ let epoch;
766
+ const packetEpoch = packetData.epoch;
767
+ if (defined(packetEpoch)) {
768
+ epoch = JulianDate.fromIso8601(packetEpoch);
769
+ }
770
+
771
+ // Without an interval, any sampled value is infinite, meaning it completely
772
+ // replaces any non-sampled property that may exist.
773
+ if (isSampled && !hasInterval) {
774
+ if (!(property instanceof SampledProperty)) {
775
+ object[propertyName] = property = new SampledProperty(type);
776
+ }
777
+ property.addSamplesPackedArray(unwrappedInterval, epoch);
778
+ updateInterpolationSettings(packetData, property);
779
+ return;
780
+ }
781
+
782
+ let interval;
783
+
784
+ // A constant value with an interval is normally part of a TimeIntervalCollection,
785
+ // However, if the current property is not a time-interval collection, we need
786
+ // to turn it into a Composite, preserving the old data with the new interval.
787
+ if (!isSampled && hasInterval) {
788
+ // Create a new interval for the constant value.
789
+ combinedInterval = combinedInterval.clone();
790
+ if (isValue) {
791
+ combinedInterval.data = needsUnpacking
792
+ ? type.unpack(unwrappedInterval, 0)
793
+ : unwrappedInterval;
794
+ } else {
795
+ combinedInterval.data = createSpecializedProperty(
796
+ type,
797
+ entityCollection,
798
+ packetData
799
+ );
800
+ }
801
+
802
+ // If no property exists, simply use a new interval collection
803
+ if (!defined(property)) {
804
+ object[propertyName] = property = isValue
805
+ ? new TimeIntervalCollectionProperty()
806
+ : new CompositeProperty();
807
+ }
808
+
809
+ if (isValue && property instanceof TimeIntervalCollectionProperty) {
810
+ // If we created a collection, or it already was one, use it.
811
+ property.intervals.addInterval(combinedInterval);
812
+ } else if (property instanceof CompositeProperty) {
813
+ // If the collection was already a CompositeProperty, use it.
814
+ if (isValue) {
815
+ combinedInterval.data = new ConstantProperty(combinedInterval.data);
816
+ }
817
+ property.intervals.addInterval(combinedInterval);
818
+ } else {
819
+ // Otherwise, create a CompositeProperty but preserve the existing data.
820
+ object[propertyName] = property = convertPropertyToComposite(property);
821
+
822
+ // Change the new data to a ConstantProperty and add it.
823
+ if (isValue) {
824
+ combinedInterval.data = new ConstantProperty(combinedInterval.data);
825
+ }
826
+ property.intervals.addInterval(combinedInterval);
827
+ }
828
+
829
+ return;
830
+ }
831
+
832
+ // isSampled && hasInterval
833
+ if (!defined(property)) {
834
+ object[propertyName] = property = new CompositeProperty();
835
+ }
836
+
837
+ // Create a CompositeProperty but preserve the existing data.
838
+ if (!(property instanceof CompositeProperty)) {
839
+ object[propertyName] = property = convertPropertyToComposite(property);
840
+ }
841
+
842
+ // Check if the interval already exists in the composite.
843
+ const intervals = property.intervals;
844
+ interval = intervals.findInterval(combinedInterval);
845
+ if (!defined(interval) || !(interval.data instanceof SampledProperty)) {
846
+ // If not, create a SampledProperty for it.
847
+ interval = combinedInterval.clone();
848
+ interval.data = new SampledProperty(type);
849
+ intervals.addInterval(interval);
850
+ }
851
+ interval.data.addSamplesPackedArray(unwrappedInterval, epoch);
852
+ updateInterpolationSettings(packetData, interval.data);
853
+ }
854
+
855
+ function removePropertyData(property, interval) {
856
+ if (property instanceof SampledProperty) {
857
+ property.removeSamples(interval);
858
+ return;
859
+ } else if (property instanceof TimeIntervalCollectionProperty) {
860
+ property.intervals.removeInterval(interval);
861
+ return;
862
+ } else if (property instanceof CompositeProperty) {
863
+ const intervals = property.intervals;
864
+ for (let i = 0; i < intervals.length; ++i) {
865
+ const intersection = TimeInterval.intersect(
866
+ intervals.get(i),
867
+ interval,
868
+ scratchTimeInterval
869
+ );
870
+ if (!intersection.isEmpty) {
871
+ // remove data from the contained properties
872
+ removePropertyData(intersection.data, interval);
873
+ }
874
+ }
875
+ // remove the intervals from the composite
876
+ intervals.removeInterval(interval);
877
+ return;
878
+ }
879
+ }
880
+
881
+ function processPacketData(
882
+ type,
883
+ object,
884
+ propertyName,
885
+ packetData,
886
+ interval,
887
+ sourceUri,
888
+ entityCollection
889
+ ) {
890
+ if (!defined(packetData)) {
891
+ return;
892
+ }
893
+
894
+ if (Array.isArray(packetData)) {
895
+ for (let i = 0, len = packetData.length; i < len; ++i) {
896
+ processProperty(
897
+ type,
898
+ object,
899
+ propertyName,
900
+ packetData[i],
901
+ interval,
902
+ sourceUri,
903
+ entityCollection
904
+ );
905
+ }
906
+ } else {
907
+ processProperty(
908
+ type,
909
+ object,
910
+ propertyName,
911
+ packetData,
912
+ interval,
913
+ sourceUri,
914
+ entityCollection
915
+ );
916
+ }
917
+ }
918
+
919
+ function processPositionProperty(
920
+ object,
921
+ propertyName,
922
+ packetData,
923
+ constrainedInterval,
924
+ sourceUri,
925
+ entityCollection
926
+ ) {
927
+ let combinedInterval = intervalFromString(packetData.interval);
928
+ if (defined(constrainedInterval)) {
929
+ if (defined(combinedInterval)) {
930
+ combinedInterval = TimeInterval.intersect(
931
+ combinedInterval,
932
+ constrainedInterval,
933
+ scratchTimeInterval
934
+ );
935
+ } else {
936
+ combinedInterval = constrainedInterval;
937
+ }
938
+ }
939
+
940
+ const numberOfDerivatives = defined(packetData.cartesianVelocity) ? 1 : 0;
941
+ const packedLength = Cartesian3.packedLength * (numberOfDerivatives + 1);
942
+ let unwrappedInterval;
943
+ let unwrappedIntervalLength;
944
+ const isValue = !defined(packetData.reference);
945
+ const hasInterval =
946
+ defined(combinedInterval) &&
947
+ !combinedInterval.equals(Iso8601.MAXIMUM_INTERVAL);
948
+
949
+ if (packetData.delete === true) {
950
+ // If deleting this property for all time, we can simply set to undefined and return.
951
+ if (!hasInterval) {
952
+ object[propertyName] = undefined;
953
+ return;
954
+ }
955
+
956
+ // Deleting depends on the type of property we have.
957
+ return removePositionPropertyData(object[propertyName], combinedInterval);
958
+ }
959
+
960
+ let referenceFrame;
961
+ let isSampled = false;
962
+
963
+ if (isValue) {
964
+ if (defined(packetData.referenceFrame)) {
965
+ referenceFrame = ReferenceFrame[packetData.referenceFrame];
966
+ }
967
+ referenceFrame = defaultValue(referenceFrame, ReferenceFrame.FIXED);
968
+ unwrappedInterval = unwrapCartesianInterval(packetData);
969
+ unwrappedIntervalLength = defaultValue(unwrappedInterval.length, 1);
970
+ isSampled = unwrappedIntervalLength > packedLength;
971
+ }
972
+
973
+ // Any time a constant value is assigned, it completely blows away anything else.
974
+ if (!isSampled && !hasInterval) {
975
+ if (isValue) {
976
+ object[propertyName] = new ConstantPositionProperty(
977
+ Cartesian3.unpack(unwrappedInterval),
978
+ referenceFrame
979
+ );
980
+ } else {
981
+ object[propertyName] = createReferenceProperty(
982
+ entityCollection,
983
+ packetData.reference
984
+ );
985
+ }
986
+ return;
987
+ }
988
+
989
+ let property = object[propertyName];
990
+
991
+ let epoch;
992
+ const packetEpoch = packetData.epoch;
993
+ if (defined(packetEpoch)) {
994
+ epoch = JulianDate.fromIso8601(packetEpoch);
995
+ }
996
+
997
+ // Without an interval, any sampled value is infinite, meaning it completely
998
+ // replaces any non-sampled property that may exist.
999
+ if (isSampled && !hasInterval) {
1000
+ if (
1001
+ !(property instanceof SampledPositionProperty) ||
1002
+ (defined(referenceFrame) && property.referenceFrame !== referenceFrame)
1003
+ ) {
1004
+ object[propertyName] = property = new SampledPositionProperty(
1005
+ referenceFrame,
1006
+ numberOfDerivatives
1007
+ );
1008
+ }
1009
+ property.addSamplesPackedArray(unwrappedInterval, epoch);
1010
+ updateInterpolationSettings(packetData, property);
1011
+ return;
1012
+ }
1013
+
1014
+ let interval;
1015
+
1016
+ // A constant value with an interval is normally part of a TimeIntervalCollection,
1017
+ // However, if the current property is not a time-interval collection, we need
1018
+ // to turn it into a Composite, preserving the old data with the new interval.
1019
+ if (!isSampled && hasInterval) {
1020
+ // Create a new interval for the constant value.
1021
+ combinedInterval = combinedInterval.clone();
1022
+ if (isValue) {
1023
+ combinedInterval.data = Cartesian3.unpack(unwrappedInterval);
1024
+ } else {
1025
+ combinedInterval.data = createReferenceProperty(
1026
+ entityCollection,
1027
+ packetData.reference
1028
+ );
1029
+ }
1030
+
1031
+ // If no property exists, simply use a new interval collection
1032
+ if (!defined(property)) {
1033
+ if (isValue) {
1034
+ property = new TimeIntervalCollectionPositionProperty(referenceFrame);
1035
+ } else {
1036
+ property = new CompositePositionProperty(referenceFrame);
1037
+ }
1038
+ object[propertyName] = property;
1039
+ }
1040
+
1041
+ if (
1042
+ isValue &&
1043
+ property instanceof TimeIntervalCollectionPositionProperty &&
1044
+ defined(referenceFrame) &&
1045
+ property.referenceFrame === referenceFrame
1046
+ ) {
1047
+ // If we create a collection, or it already existed, use it.
1048
+ property.intervals.addInterval(combinedInterval);
1049
+ } else if (property instanceof CompositePositionProperty) {
1050
+ // If the collection was already a CompositePositionProperty, use it.
1051
+ if (isValue) {
1052
+ combinedInterval.data = new ConstantPositionProperty(
1053
+ combinedInterval.data,
1054
+ referenceFrame
1055
+ );
1056
+ }
1057
+ property.intervals.addInterval(combinedInterval);
1058
+ } else {
1059
+ // Otherwise, create a CompositePositionProperty but preserve the existing data.
1060
+ object[propertyName] = property = convertPositionPropertyToComposite(
1061
+ property
1062
+ );
1063
+
1064
+ // Change the new data to a ConstantPositionProperty and add it.
1065
+ if (isValue) {
1066
+ combinedInterval.data = new ConstantPositionProperty(
1067
+ combinedInterval.data,
1068
+ referenceFrame
1069
+ );
1070
+ }
1071
+ property.intervals.addInterval(combinedInterval);
1072
+ }
1073
+
1074
+ return;
1075
+ }
1076
+
1077
+ // isSampled && hasInterval
1078
+ if (!defined(property)) {
1079
+ object[propertyName] = property = new CompositePositionProperty(
1080
+ referenceFrame
1081
+ );
1082
+ } else if (!(property instanceof CompositePositionProperty)) {
1083
+ // Create a CompositeProperty but preserve the existing data.
1084
+ object[propertyName] = property = convertPositionPropertyToComposite(
1085
+ property
1086
+ );
1087
+ }
1088
+
1089
+ // Check if the interval already exists in the composite.
1090
+ const intervals = property.intervals;
1091
+ interval = intervals.findInterval(combinedInterval);
1092
+ if (
1093
+ !defined(interval) ||
1094
+ !(interval.data instanceof SampledPositionProperty) ||
1095
+ (defined(referenceFrame) && interval.data.referenceFrame !== referenceFrame)
1096
+ ) {
1097
+ // If not, create a SampledPositionProperty for it.
1098
+ interval = combinedInterval.clone();
1099
+ interval.data = new SampledPositionProperty(
1100
+ referenceFrame,
1101
+ numberOfDerivatives
1102
+ );
1103
+ intervals.addInterval(interval);
1104
+ }
1105
+ interval.data.addSamplesPackedArray(unwrappedInterval, epoch);
1106
+ updateInterpolationSettings(packetData, interval.data);
1107
+ }
1108
+
1109
+ function removePositionPropertyData(property, interval) {
1110
+ if (property instanceof SampledPositionProperty) {
1111
+ property.removeSamples(interval);
1112
+ return;
1113
+ } else if (property instanceof TimeIntervalCollectionPositionProperty) {
1114
+ property.intervals.removeInterval(interval);
1115
+ return;
1116
+ } else if (property instanceof CompositePositionProperty) {
1117
+ const intervals = property.intervals;
1118
+ for (let i = 0; i < intervals.length; ++i) {
1119
+ const intersection = TimeInterval.intersect(
1120
+ intervals.get(i),
1121
+ interval,
1122
+ scratchTimeInterval
1123
+ );
1124
+ if (!intersection.isEmpty) {
1125
+ // remove data from the contained properties
1126
+ removePositionPropertyData(intersection.data, interval);
1127
+ }
1128
+ }
1129
+ // remove the intervals from the composite
1130
+ intervals.removeInterval(interval);
1131
+ return;
1132
+ }
1133
+ }
1134
+
1135
+ function processPositionPacketData(
1136
+ object,
1137
+ propertyName,
1138
+ packetData,
1139
+ interval,
1140
+ sourceUri,
1141
+ entityCollection
1142
+ ) {
1143
+ if (!defined(packetData)) {
1144
+ return;
1145
+ }
1146
+
1147
+ if (Array.isArray(packetData)) {
1148
+ for (let i = 0, len = packetData.length; i < len; ++i) {
1149
+ processPositionProperty(
1150
+ object,
1151
+ propertyName,
1152
+ packetData[i],
1153
+ interval,
1154
+ sourceUri,
1155
+ entityCollection
1156
+ );
1157
+ }
1158
+ } else {
1159
+ processPositionProperty(
1160
+ object,
1161
+ propertyName,
1162
+ packetData,
1163
+ interval,
1164
+ sourceUri,
1165
+ entityCollection
1166
+ );
1167
+ }
1168
+ }
1169
+
1170
+ function processShapePacketData(
1171
+ object,
1172
+ propertyName,
1173
+ packetData,
1174
+ entityCollection
1175
+ ) {
1176
+ if (defined(packetData.references)) {
1177
+ processReferencesArrayPacketData(
1178
+ object,
1179
+ propertyName,
1180
+ packetData.references,
1181
+ packetData.interval,
1182
+ entityCollection,
1183
+ PropertyArray,
1184
+ CompositeProperty
1185
+ );
1186
+ } else {
1187
+ if (defined(packetData.cartesian2)) {
1188
+ packetData.array = Cartesian2.unpackArray(packetData.cartesian2);
1189
+ } else if (defined(packetData.cartesian)) {
1190
+ // for backwards compatibility, also accept `cartesian`
1191
+ packetData.array = Cartesian2.unpackArray(packetData.cartesian);
1192
+ }
1193
+
1194
+ if (defined(packetData.array)) {
1195
+ processPacketData(
1196
+ Array,
1197
+ object,
1198
+ propertyName,
1199
+ packetData,
1200
+ undefined,
1201
+ undefined,
1202
+ entityCollection
1203
+ );
1204
+ }
1205
+ }
1206
+ }
1207
+
1208
+ function processMaterialProperty(
1209
+ object,
1210
+ propertyName,
1211
+ packetData,
1212
+ constrainedInterval,
1213
+ sourceUri,
1214
+ entityCollection
1215
+ ) {
1216
+ let combinedInterval = intervalFromString(packetData.interval);
1217
+ if (defined(constrainedInterval)) {
1218
+ if (defined(combinedInterval)) {
1219
+ combinedInterval = TimeInterval.intersect(
1220
+ combinedInterval,
1221
+ constrainedInterval,
1222
+ scratchTimeInterval
1223
+ );
1224
+ } else {
1225
+ combinedInterval = constrainedInterval;
1226
+ }
1227
+ }
1228
+
1229
+ let property = object[propertyName];
1230
+ let existingMaterial;
1231
+ let existingInterval;
1232
+
1233
+ if (defined(combinedInterval)) {
1234
+ if (!(property instanceof CompositeMaterialProperty)) {
1235
+ property = new CompositeMaterialProperty();
1236
+ object[propertyName] = property;
1237
+ }
1238
+ //See if we already have data at that interval.
1239
+ const thisIntervals = property.intervals;
1240
+ existingInterval = thisIntervals.findInterval({
1241
+ start: combinedInterval.start,
1242
+ stop: combinedInterval.stop,
1243
+ });
1244
+ if (defined(existingInterval)) {
1245
+ //We have an interval, but we need to make sure the
1246
+ //new data is the same type of material as the old data.
1247
+ existingMaterial = existingInterval.data;
1248
+ } else {
1249
+ //If not, create it.
1250
+ existingInterval = combinedInterval.clone();
1251
+ thisIntervals.addInterval(existingInterval);
1252
+ }
1253
+ } else {
1254
+ existingMaterial = property;
1255
+ }
1256
+
1257
+ let materialData;
1258
+ if (defined(packetData.solidColor)) {
1259
+ if (!(existingMaterial instanceof ColorMaterialProperty)) {
1260
+ existingMaterial = new ColorMaterialProperty();
1261
+ }
1262
+ materialData = packetData.solidColor;
1263
+ processPacketData(
1264
+ Color,
1265
+ existingMaterial,
1266
+ "color",
1267
+ materialData.color,
1268
+ undefined,
1269
+ undefined,
1270
+ entityCollection
1271
+ );
1272
+ } else if (defined(packetData.grid)) {
1273
+ if (!(existingMaterial instanceof GridMaterialProperty)) {
1274
+ existingMaterial = new GridMaterialProperty();
1275
+ }
1276
+ materialData = packetData.grid;
1277
+ processPacketData(
1278
+ Color,
1279
+ existingMaterial,
1280
+ "color",
1281
+ materialData.color,
1282
+ undefined,
1283
+ sourceUri,
1284
+ entityCollection
1285
+ );
1286
+ processPacketData(
1287
+ Number,
1288
+ existingMaterial,
1289
+ "cellAlpha",
1290
+ materialData.cellAlpha,
1291
+ undefined,
1292
+ sourceUri,
1293
+ entityCollection
1294
+ );
1295
+ processPacketData(
1296
+ Cartesian2,
1297
+ existingMaterial,
1298
+ "lineCount",
1299
+ materialData.lineCount,
1300
+ undefined,
1301
+ sourceUri,
1302
+ entityCollection
1303
+ );
1304
+ processPacketData(
1305
+ Cartesian2,
1306
+ existingMaterial,
1307
+ "lineThickness",
1308
+ materialData.lineThickness,
1309
+ undefined,
1310
+ sourceUri,
1311
+ entityCollection
1312
+ );
1313
+ processPacketData(
1314
+ Cartesian2,
1315
+ existingMaterial,
1316
+ "lineOffset",
1317
+ materialData.lineOffset,
1318
+ undefined,
1319
+ sourceUri,
1320
+ entityCollection
1321
+ );
1322
+ } else if (defined(packetData.image)) {
1323
+ if (!(existingMaterial instanceof ImageMaterialProperty)) {
1324
+ existingMaterial = new ImageMaterialProperty();
1325
+ }
1326
+ materialData = packetData.image;
1327
+ processPacketData(
1328
+ Image,
1329
+ existingMaterial,
1330
+ "image",
1331
+ materialData.image,
1332
+ undefined,
1333
+ sourceUri,
1334
+ entityCollection
1335
+ );
1336
+ processPacketData(
1337
+ Cartesian2,
1338
+ existingMaterial,
1339
+ "repeat",
1340
+ materialData.repeat,
1341
+ undefined,
1342
+ sourceUri,
1343
+ entityCollection
1344
+ );
1345
+ processPacketData(
1346
+ Color,
1347
+ existingMaterial,
1348
+ "color",
1349
+ materialData.color,
1350
+ undefined,
1351
+ sourceUri,
1352
+ entityCollection
1353
+ );
1354
+ processPacketData(
1355
+ Boolean,
1356
+ existingMaterial,
1357
+ "transparent",
1358
+ materialData.transparent,
1359
+ undefined,
1360
+ sourceUri,
1361
+ entityCollection
1362
+ );
1363
+ } else if (defined(packetData.stripe)) {
1364
+ if (!(existingMaterial instanceof StripeMaterialProperty)) {
1365
+ existingMaterial = new StripeMaterialProperty();
1366
+ }
1367
+ materialData = packetData.stripe;
1368
+ processPacketData(
1369
+ StripeOrientation,
1370
+ existingMaterial,
1371
+ "orientation",
1372
+ materialData.orientation,
1373
+ undefined,
1374
+ sourceUri,
1375
+ entityCollection
1376
+ );
1377
+ processPacketData(
1378
+ Color,
1379
+ existingMaterial,
1380
+ "evenColor",
1381
+ materialData.evenColor,
1382
+ undefined,
1383
+ sourceUri,
1384
+ entityCollection
1385
+ );
1386
+ processPacketData(
1387
+ Color,
1388
+ existingMaterial,
1389
+ "oddColor",
1390
+ materialData.oddColor,
1391
+ undefined,
1392
+ sourceUri,
1393
+ entityCollection
1394
+ );
1395
+ processPacketData(
1396
+ Number,
1397
+ existingMaterial,
1398
+ "offset",
1399
+ materialData.offset,
1400
+ undefined,
1401
+ sourceUri,
1402
+ entityCollection
1403
+ );
1404
+ processPacketData(
1405
+ Number,
1406
+ existingMaterial,
1407
+ "repeat",
1408
+ materialData.repeat,
1409
+ undefined,
1410
+ sourceUri,
1411
+ entityCollection
1412
+ );
1413
+ } else if (defined(packetData.polylineOutline)) {
1414
+ if (!(existingMaterial instanceof PolylineOutlineMaterialProperty)) {
1415
+ existingMaterial = new PolylineOutlineMaterialProperty();
1416
+ }
1417
+ materialData = packetData.polylineOutline;
1418
+ processPacketData(
1419
+ Color,
1420
+ existingMaterial,
1421
+ "color",
1422
+ materialData.color,
1423
+ undefined,
1424
+ sourceUri,
1425
+ entityCollection
1426
+ );
1427
+ processPacketData(
1428
+ Color,
1429
+ existingMaterial,
1430
+ "outlineColor",
1431
+ materialData.outlineColor,
1432
+ undefined,
1433
+ sourceUri,
1434
+ entityCollection
1435
+ );
1436
+ processPacketData(
1437
+ Number,
1438
+ existingMaterial,
1439
+ "outlineWidth",
1440
+ materialData.outlineWidth,
1441
+ undefined,
1442
+ sourceUri,
1443
+ entityCollection
1444
+ );
1445
+ } else if (defined(packetData.polylineGlow)) {
1446
+ if (!(existingMaterial instanceof PolylineGlowMaterialProperty)) {
1447
+ existingMaterial = new PolylineGlowMaterialProperty();
1448
+ }
1449
+ materialData = packetData.polylineGlow;
1450
+ processPacketData(
1451
+ Color,
1452
+ existingMaterial,
1453
+ "color",
1454
+ materialData.color,
1455
+ undefined,
1456
+ sourceUri,
1457
+ entityCollection
1458
+ );
1459
+ processPacketData(
1460
+ Number,
1461
+ existingMaterial,
1462
+ "glowPower",
1463
+ materialData.glowPower,
1464
+ undefined,
1465
+ sourceUri,
1466
+ entityCollection
1467
+ );
1468
+ processPacketData(
1469
+ Number,
1470
+ existingMaterial,
1471
+ "taperPower",
1472
+ materialData.taperPower,
1473
+ undefined,
1474
+ sourceUri,
1475
+ entityCollection
1476
+ );
1477
+ } else if (defined(packetData.polylineArrow)) {
1478
+ if (!(existingMaterial instanceof PolylineArrowMaterialProperty)) {
1479
+ existingMaterial = new PolylineArrowMaterialProperty();
1480
+ }
1481
+ materialData = packetData.polylineArrow;
1482
+ processPacketData(
1483
+ Color,
1484
+ existingMaterial,
1485
+ "color",
1486
+ materialData.color,
1487
+ undefined,
1488
+ undefined,
1489
+ entityCollection
1490
+ );
1491
+ } else if (defined(packetData.polylineDash)) {
1492
+ if (!(existingMaterial instanceof PolylineDashMaterialProperty)) {
1493
+ existingMaterial = new PolylineDashMaterialProperty();
1494
+ }
1495
+ materialData = packetData.polylineDash;
1496
+ processPacketData(
1497
+ Color,
1498
+ existingMaterial,
1499
+ "color",
1500
+ materialData.color,
1501
+ undefined,
1502
+ undefined,
1503
+ entityCollection
1504
+ );
1505
+ processPacketData(
1506
+ Color,
1507
+ existingMaterial,
1508
+ "gapColor",
1509
+ materialData.gapColor,
1510
+ undefined,
1511
+ undefined,
1512
+ entityCollection
1513
+ );
1514
+ processPacketData(
1515
+ Number,
1516
+ existingMaterial,
1517
+ "dashLength",
1518
+ materialData.dashLength,
1519
+ undefined,
1520
+ sourceUri,
1521
+ entityCollection
1522
+ );
1523
+ processPacketData(
1524
+ Number,
1525
+ existingMaterial,
1526
+ "dashPattern",
1527
+ materialData.dashPattern,
1528
+ undefined,
1529
+ sourceUri,
1530
+ entityCollection
1531
+ );
1532
+ } else if (defined(packetData.checkerboard)) {
1533
+ if (!(existingMaterial instanceof CheckerboardMaterialProperty)) {
1534
+ existingMaterial = new CheckerboardMaterialProperty();
1535
+ }
1536
+ materialData = packetData.checkerboard;
1537
+ processPacketData(
1538
+ Color,
1539
+ existingMaterial,
1540
+ "evenColor",
1541
+ materialData.evenColor,
1542
+ undefined,
1543
+ sourceUri,
1544
+ entityCollection
1545
+ );
1546
+ processPacketData(
1547
+ Color,
1548
+ existingMaterial,
1549
+ "oddColor",
1550
+ materialData.oddColor,
1551
+ undefined,
1552
+ sourceUri,
1553
+ entityCollection
1554
+ );
1555
+ processPacketData(
1556
+ Cartesian2,
1557
+ existingMaterial,
1558
+ "repeat",
1559
+ materialData.repeat,
1560
+ undefined,
1561
+ sourceUri,
1562
+ entityCollection
1563
+ );
1564
+ }
1565
+
1566
+ if (defined(existingInterval)) {
1567
+ existingInterval.data = existingMaterial;
1568
+ } else {
1569
+ object[propertyName] = existingMaterial;
1570
+ }
1571
+ }
1572
+
1573
+ function processMaterialPacketData(
1574
+ object,
1575
+ propertyName,
1576
+ packetData,
1577
+ interval,
1578
+ sourceUri,
1579
+ entityCollection
1580
+ ) {
1581
+ if (!defined(packetData)) {
1582
+ return;
1583
+ }
1584
+
1585
+ if (Array.isArray(packetData)) {
1586
+ for (let i = 0, len = packetData.length; i < len; ++i) {
1587
+ processMaterialProperty(
1588
+ object,
1589
+ propertyName,
1590
+ packetData[i],
1591
+ interval,
1592
+ sourceUri,
1593
+ entityCollection
1594
+ );
1595
+ }
1596
+ } else {
1597
+ processMaterialProperty(
1598
+ object,
1599
+ propertyName,
1600
+ packetData,
1601
+ interval,
1602
+ sourceUri,
1603
+ entityCollection
1604
+ );
1605
+ }
1606
+ }
1607
+
1608
+ function processName(entity, packet, entityCollection, sourceUri) {
1609
+ const nameData = packet.name;
1610
+ if (defined(nameData)) {
1611
+ entity.name = packet.name;
1612
+ }
1613
+ }
1614
+
1615
+ function processDescription(entity, packet, entityCollection, sourceUri) {
1616
+ const descriptionData = packet.description;
1617
+ if (defined(descriptionData)) {
1618
+ processPacketData(
1619
+ String,
1620
+ entity,
1621
+ "description",
1622
+ descriptionData,
1623
+ undefined,
1624
+ sourceUri,
1625
+ entityCollection
1626
+ );
1627
+ }
1628
+ }
1629
+
1630
+ function processPosition(entity, packet, entityCollection, sourceUri) {
1631
+ const positionData = packet.position;
1632
+ if (defined(positionData)) {
1633
+ processPositionPacketData(
1634
+ entity,
1635
+ "position",
1636
+ positionData,
1637
+ undefined,
1638
+ sourceUri,
1639
+ entityCollection
1640
+ );
1641
+ }
1642
+ }
1643
+
1644
+ function processViewFrom(entity, packet, entityCollection, sourceUri) {
1645
+ const viewFromData = packet.viewFrom;
1646
+ if (defined(viewFromData)) {
1647
+ processPacketData(
1648
+ Cartesian3,
1649
+ entity,
1650
+ "viewFrom",
1651
+ viewFromData,
1652
+ undefined,
1653
+ sourceUri,
1654
+ entityCollection
1655
+ );
1656
+ }
1657
+ }
1658
+
1659
+ function processOrientation(entity, packet, entityCollection, sourceUri) {
1660
+ const orientationData = packet.orientation;
1661
+ if (defined(orientationData)) {
1662
+ processPacketData(
1663
+ Quaternion,
1664
+ entity,
1665
+ "orientation",
1666
+ orientationData,
1667
+ undefined,
1668
+ sourceUri,
1669
+ entityCollection
1670
+ );
1671
+ }
1672
+ }
1673
+
1674
+ function processProperties(entity, packet, entityCollection, sourceUri) {
1675
+ const propertiesData = packet.properties;
1676
+ if (defined(propertiesData)) {
1677
+ if (!defined(entity.properties)) {
1678
+ entity.properties = new PropertyBag();
1679
+ }
1680
+
1681
+ // We cannot simply call processPacketData(entity, 'properties', propertyData, undefined, sourceUri, entityCollection)
1682
+ // because each property of "properties" may vary separately.
1683
+ // The properties will be accessible as entity.properties.myprop.getValue(time).
1684
+
1685
+ for (const key in propertiesData) {
1686
+ if (propertiesData.hasOwnProperty(key)) {
1687
+ if (!entity.properties.hasProperty(key)) {
1688
+ entity.properties.addProperty(key);
1689
+ }
1690
+
1691
+ const propertyData = propertiesData[key];
1692
+ if (Array.isArray(propertyData)) {
1693
+ for (let i = 0, len = propertyData.length; i < len; ++i) {
1694
+ processProperty(
1695
+ getPropertyType(propertyData[i]),
1696
+ entity.properties,
1697
+ key,
1698
+ propertyData[i],
1699
+ undefined,
1700
+ sourceUri,
1701
+ entityCollection
1702
+ );
1703
+ }
1704
+ } else {
1705
+ processProperty(
1706
+ getPropertyType(propertyData),
1707
+ entity.properties,
1708
+ key,
1709
+ propertyData,
1710
+ undefined,
1711
+ sourceUri,
1712
+ entityCollection
1713
+ );
1714
+ }
1715
+ }
1716
+ }
1717
+ }
1718
+ }
1719
+
1720
+ function processReferencesArrayPacketData(
1721
+ object,
1722
+ propertyName,
1723
+ references,
1724
+ interval,
1725
+ entityCollection,
1726
+ PropertyArrayType,
1727
+ CompositePropertyArrayType
1728
+ ) {
1729
+ const properties = references.map(function (reference) {
1730
+ return createReferenceProperty(entityCollection, reference);
1731
+ });
1732
+
1733
+ if (defined(interval)) {
1734
+ interval = intervalFromString(interval);
1735
+ let property = object[propertyName];
1736
+ if (!(property instanceof CompositePropertyArrayType)) {
1737
+ // If the property was not already a CompositeProperty,
1738
+ // create a CompositeProperty but preserve the existing data.
1739
+
1740
+ // Create the composite and add the old property, wrapped in an infinite interval.
1741
+ const composite = new CompositePropertyArrayType();
1742
+ composite.intervals.addInterval(wrapPropertyInInfiniteInterval(property));
1743
+
1744
+ object[propertyName] = property = composite;
1745
+ }
1746
+
1747
+ interval.data = new PropertyArrayType(properties);
1748
+ property.intervals.addInterval(interval);
1749
+ } else {
1750
+ object[propertyName] = new PropertyArrayType(properties);
1751
+ }
1752
+ }
1753
+
1754
+ function processArrayPacketData(
1755
+ object,
1756
+ propertyName,
1757
+ packetData,
1758
+ entityCollection
1759
+ ) {
1760
+ const references = packetData.references;
1761
+ if (defined(references)) {
1762
+ processReferencesArrayPacketData(
1763
+ object,
1764
+ propertyName,
1765
+ references,
1766
+ packetData.interval,
1767
+ entityCollection,
1768
+ PropertyArray,
1769
+ CompositeProperty
1770
+ );
1771
+ } else {
1772
+ processPacketData(
1773
+ Array,
1774
+ object,
1775
+ propertyName,
1776
+ packetData,
1777
+ undefined,
1778
+ undefined,
1779
+ entityCollection
1780
+ );
1781
+ }
1782
+ }
1783
+
1784
+ function processArray(object, propertyName, packetData, entityCollection) {
1785
+ if (!defined(packetData)) {
1786
+ return;
1787
+ }
1788
+
1789
+ if (Array.isArray(packetData)) {
1790
+ for (let i = 0, length = packetData.length; i < length; ++i) {
1791
+ processArrayPacketData(
1792
+ object,
1793
+ propertyName,
1794
+ packetData[i],
1795
+ entityCollection
1796
+ );
1797
+ }
1798
+ } else {
1799
+ processArrayPacketData(object, propertyName, packetData, entityCollection);
1800
+ }
1801
+ }
1802
+
1803
+ function processPositionArrayPacketData(
1804
+ object,
1805
+ propertyName,
1806
+ packetData,
1807
+ entityCollection
1808
+ ) {
1809
+ const references = packetData.references;
1810
+ if (defined(references)) {
1811
+ processReferencesArrayPacketData(
1812
+ object,
1813
+ propertyName,
1814
+ references,
1815
+ packetData.interval,
1816
+ entityCollection,
1817
+ PositionPropertyArray,
1818
+ CompositePositionProperty
1819
+ );
1820
+ } else {
1821
+ if (defined(packetData.cartesian)) {
1822
+ packetData.array = Cartesian3.unpackArray(packetData.cartesian);
1823
+ } else if (defined(packetData.cartographicRadians)) {
1824
+ packetData.array = Cartesian3.fromRadiansArrayHeights(
1825
+ packetData.cartographicRadians
1826
+ );
1827
+ } else if (defined(packetData.cartographicDegrees)) {
1828
+ packetData.array = Cartesian3.fromDegreesArrayHeights(
1829
+ packetData.cartographicDegrees
1830
+ );
1831
+ }
1832
+
1833
+ if (defined(packetData.array)) {
1834
+ processPacketData(
1835
+ Array,
1836
+ object,
1837
+ propertyName,
1838
+ packetData,
1839
+ undefined,
1840
+ undefined,
1841
+ entityCollection
1842
+ );
1843
+ }
1844
+ }
1845
+ }
1846
+
1847
+ function processPositionArray(
1848
+ object,
1849
+ propertyName,
1850
+ packetData,
1851
+ entityCollection
1852
+ ) {
1853
+ if (!defined(packetData)) {
1854
+ return;
1855
+ }
1856
+
1857
+ if (Array.isArray(packetData)) {
1858
+ for (let i = 0, length = packetData.length; i < length; ++i) {
1859
+ processPositionArrayPacketData(
1860
+ object,
1861
+ propertyName,
1862
+ packetData[i],
1863
+ entityCollection
1864
+ );
1865
+ }
1866
+ } else {
1867
+ processPositionArrayPacketData(
1868
+ object,
1869
+ propertyName,
1870
+ packetData,
1871
+ entityCollection
1872
+ );
1873
+ }
1874
+ }
1875
+
1876
+ function unpackCartesianArray(array) {
1877
+ return Cartesian3.unpackArray(array);
1878
+ }
1879
+
1880
+ function unpackCartographicRadiansArray(array) {
1881
+ return Cartesian3.fromRadiansArrayHeights(array);
1882
+ }
1883
+
1884
+ function unpackCartographicDegreesArray(array) {
1885
+ return Cartesian3.fromDegreesArrayHeights(array);
1886
+ }
1887
+
1888
+ function processPositionArrayOfArraysPacketData(
1889
+ object,
1890
+ propertyName,
1891
+ packetData,
1892
+ entityCollection
1893
+ ) {
1894
+ const references = packetData.references;
1895
+ if (defined(references)) {
1896
+ const properties = references.map(function (referenceArray) {
1897
+ const tempObj = {};
1898
+ processReferencesArrayPacketData(
1899
+ tempObj,
1900
+ "positions",
1901
+ referenceArray,
1902
+ packetData.interval,
1903
+ entityCollection,
1904
+ PositionPropertyArray,
1905
+ CompositePositionProperty
1906
+ );
1907
+ return tempObj.positions;
1908
+ });
1909
+ object[propertyName] = new PositionPropertyArray(properties);
1910
+ } else {
1911
+ if (defined(packetData.cartesian)) {
1912
+ packetData.array = packetData.cartesian.map(unpackCartesianArray);
1913
+ } else if (defined(packetData.cartographicRadians)) {
1914
+ packetData.array = packetData.cartographicRadians.map(
1915
+ unpackCartographicRadiansArray
1916
+ );
1917
+ } else if (defined(packetData.cartographicDegrees)) {
1918
+ packetData.array = packetData.cartographicDegrees.map(
1919
+ unpackCartographicDegreesArray
1920
+ );
1921
+ }
1922
+
1923
+ if (defined(packetData.array)) {
1924
+ processPacketData(
1925
+ Array,
1926
+ object,
1927
+ propertyName,
1928
+ packetData,
1929
+ undefined,
1930
+ undefined,
1931
+ entityCollection
1932
+ );
1933
+ }
1934
+ }
1935
+ }
1936
+
1937
+ function processPositionArrayOfArrays(
1938
+ object,
1939
+ propertyName,
1940
+ packetData,
1941
+ entityCollection
1942
+ ) {
1943
+ if (!defined(packetData)) {
1944
+ return;
1945
+ }
1946
+
1947
+ if (Array.isArray(packetData)) {
1948
+ for (let i = 0, length = packetData.length; i < length; ++i) {
1949
+ processPositionArrayOfArraysPacketData(
1950
+ object,
1951
+ propertyName,
1952
+ packetData[i],
1953
+ entityCollection
1954
+ );
1955
+ }
1956
+ } else {
1957
+ processPositionArrayOfArraysPacketData(
1958
+ object,
1959
+ propertyName,
1960
+ packetData,
1961
+ entityCollection
1962
+ );
1963
+ }
1964
+ }
1965
+
1966
+ function processShape(object, propertyName, packetData, entityCollection) {
1967
+ if (!defined(packetData)) {
1968
+ return;
1969
+ }
1970
+
1971
+ if (Array.isArray(packetData)) {
1972
+ for (let i = 0, length = packetData.length; i < length; i++) {
1973
+ processShapePacketData(
1974
+ object,
1975
+ propertyName,
1976
+ packetData[i],
1977
+ entityCollection
1978
+ );
1979
+ }
1980
+ } else {
1981
+ processShapePacketData(object, propertyName, packetData, entityCollection);
1982
+ }
1983
+ }
1984
+
1985
+ function processAvailability(entity, packet, entityCollection, sourceUri) {
1986
+ const packetData = packet.availability;
1987
+ if (!defined(packetData)) {
1988
+ return;
1989
+ }
1990
+
1991
+ let intervals;
1992
+ if (Array.isArray(packetData)) {
1993
+ for (let i = 0, len = packetData.length; i < len; ++i) {
1994
+ if (!defined(intervals)) {
1995
+ intervals = new TimeIntervalCollection();
1996
+ }
1997
+ intervals.addInterval(intervalFromString(packetData[i]));
1998
+ }
1999
+ } else {
2000
+ intervals = new TimeIntervalCollection();
2001
+ intervals.addInterval(intervalFromString(packetData));
2002
+ }
2003
+ entity.availability = intervals;
2004
+ }
2005
+
2006
+ function processAlignedAxis(
2007
+ billboard,
2008
+ packetData,
2009
+ interval,
2010
+ sourceUri,
2011
+ entityCollection
2012
+ ) {
2013
+ if (!defined(packetData)) {
2014
+ return;
2015
+ }
2016
+
2017
+ processPacketData(
2018
+ UnitCartesian3,
2019
+ billboard,
2020
+ "alignedAxis",
2021
+ packetData,
2022
+ interval,
2023
+ sourceUri,
2024
+ entityCollection
2025
+ );
2026
+ }
2027
+
2028
+ function processBillboard(entity, packet, entityCollection, sourceUri) {
2029
+ const billboardData = packet.billboard;
2030
+ if (!defined(billboardData)) {
2031
+ return;
2032
+ }
2033
+
2034
+ const interval = intervalFromString(billboardData.interval);
2035
+ let billboard = entity.billboard;
2036
+ if (!defined(billboard)) {
2037
+ entity.billboard = billboard = new BillboardGraphics();
2038
+ }
2039
+
2040
+ processPacketData(
2041
+ Boolean,
2042
+ billboard,
2043
+ "show",
2044
+ billboardData.show,
2045
+ interval,
2046
+ sourceUri,
2047
+ entityCollection
2048
+ );
2049
+ processPacketData(
2050
+ Image,
2051
+ billboard,
2052
+ "image",
2053
+ billboardData.image,
2054
+ interval,
2055
+ sourceUri,
2056
+ entityCollection
2057
+ );
2058
+ processPacketData(
2059
+ Number,
2060
+ billboard,
2061
+ "scale",
2062
+ billboardData.scale,
2063
+ interval,
2064
+ sourceUri,
2065
+ entityCollection
2066
+ );
2067
+ processPacketData(
2068
+ Cartesian2,
2069
+ billboard,
2070
+ "pixelOffset",
2071
+ billboardData.pixelOffset,
2072
+ interval,
2073
+ sourceUri,
2074
+ entityCollection
2075
+ );
2076
+ processPacketData(
2077
+ Cartesian3,
2078
+ billboard,
2079
+ "eyeOffset",
2080
+ billboardData.eyeOffset,
2081
+ interval,
2082
+ sourceUri,
2083
+ entityCollection
2084
+ );
2085
+ processPacketData(
2086
+ HorizontalOrigin,
2087
+ billboard,
2088
+ "horizontalOrigin",
2089
+ billboardData.horizontalOrigin,
2090
+ interval,
2091
+ sourceUri,
2092
+ entityCollection
2093
+ );
2094
+ processPacketData(
2095
+ VerticalOrigin,
2096
+ billboard,
2097
+ "verticalOrigin",
2098
+ billboardData.verticalOrigin,
2099
+ interval,
2100
+ sourceUri,
2101
+ entityCollection
2102
+ );
2103
+ processPacketData(
2104
+ HeightReference,
2105
+ billboard,
2106
+ "heightReference",
2107
+ billboardData.heightReference,
2108
+ interval,
2109
+ sourceUri,
2110
+ entityCollection
2111
+ );
2112
+ processPacketData(
2113
+ Color,
2114
+ billboard,
2115
+ "color",
2116
+ billboardData.color,
2117
+ interval,
2118
+ sourceUri,
2119
+ entityCollection
2120
+ );
2121
+ processPacketData(
2122
+ Rotation,
2123
+ billboard,
2124
+ "rotation",
2125
+ billboardData.rotation,
2126
+ interval,
2127
+ sourceUri,
2128
+ entityCollection
2129
+ );
2130
+ processAlignedAxis(
2131
+ billboard,
2132
+ billboardData.alignedAxis,
2133
+ interval,
2134
+ sourceUri,
2135
+ entityCollection
2136
+ );
2137
+ processPacketData(
2138
+ Boolean,
2139
+ billboard,
2140
+ "sizeInMeters",
2141
+ billboardData.sizeInMeters,
2142
+ interval,
2143
+ sourceUri,
2144
+ entityCollection
2145
+ );
2146
+ processPacketData(
2147
+ Number,
2148
+ billboard,
2149
+ "width",
2150
+ billboardData.width,
2151
+ interval,
2152
+ sourceUri,
2153
+ entityCollection
2154
+ );
2155
+ processPacketData(
2156
+ Number,
2157
+ billboard,
2158
+ "height",
2159
+ billboardData.height,
2160
+ interval,
2161
+ sourceUri,
2162
+ entityCollection
2163
+ );
2164
+ processPacketData(
2165
+ NearFarScalar,
2166
+ billboard,
2167
+ "scaleByDistance",
2168
+ billboardData.scaleByDistance,
2169
+ interval,
2170
+ sourceUri,
2171
+ entityCollection
2172
+ );
2173
+ processPacketData(
2174
+ NearFarScalar,
2175
+ billboard,
2176
+ "translucencyByDistance",
2177
+ billboardData.translucencyByDistance,
2178
+ interval,
2179
+ sourceUri,
2180
+ entityCollection
2181
+ );
2182
+ processPacketData(
2183
+ NearFarScalar,
2184
+ billboard,
2185
+ "pixelOffsetScaleByDistance",
2186
+ billboardData.pixelOffsetScaleByDistance,
2187
+ interval,
2188
+ sourceUri,
2189
+ entityCollection
2190
+ );
2191
+ processPacketData(
2192
+ BoundingRectangle,
2193
+ billboard,
2194
+ "imageSubRegion",
2195
+ billboardData.imageSubRegion,
2196
+ interval,
2197
+ sourceUri,
2198
+ entityCollection
2199
+ );
2200
+ processPacketData(
2201
+ DistanceDisplayCondition,
2202
+ billboard,
2203
+ "distanceDisplayCondition",
2204
+ billboardData.distanceDisplayCondition,
2205
+ interval,
2206
+ sourceUri,
2207
+ entityCollection
2208
+ );
2209
+ processPacketData(
2210
+ Number,
2211
+ billboard,
2212
+ "disableDepthTestDistance",
2213
+ billboardData.disableDepthTestDistance,
2214
+ interval,
2215
+ sourceUri,
2216
+ entityCollection
2217
+ );
2218
+ }
2219
+
2220
+ function processBox(entity, packet, entityCollection, sourceUri) {
2221
+ const boxData = packet.box;
2222
+ if (!defined(boxData)) {
2223
+ return;
2224
+ }
2225
+
2226
+ const interval = intervalFromString(boxData.interval);
2227
+ let box = entity.box;
2228
+ if (!defined(box)) {
2229
+ entity.box = box = new BoxGraphics();
2230
+ }
2231
+
2232
+ processPacketData(
2233
+ Boolean,
2234
+ box,
2235
+ "show",
2236
+ boxData.show,
2237
+ interval,
2238
+ sourceUri,
2239
+ entityCollection
2240
+ );
2241
+ processPacketData(
2242
+ Cartesian3,
2243
+ box,
2244
+ "dimensions",
2245
+ boxData.dimensions,
2246
+ interval,
2247
+ sourceUri,
2248
+ entityCollection
2249
+ );
2250
+ processPacketData(
2251
+ HeightReference,
2252
+ box,
2253
+ "heightReference",
2254
+ boxData.heightReference,
2255
+ interval,
2256
+ sourceUri,
2257
+ entityCollection
2258
+ );
2259
+ processPacketData(
2260
+ Boolean,
2261
+ box,
2262
+ "fill",
2263
+ boxData.fill,
2264
+ interval,
2265
+ sourceUri,
2266
+ entityCollection
2267
+ );
2268
+ processMaterialPacketData(
2269
+ box,
2270
+ "material",
2271
+ boxData.material,
2272
+ interval,
2273
+ sourceUri,
2274
+ entityCollection
2275
+ );
2276
+ processPacketData(
2277
+ Boolean,
2278
+ box,
2279
+ "outline",
2280
+ boxData.outline,
2281
+ interval,
2282
+ sourceUri,
2283
+ entityCollection
2284
+ );
2285
+ processPacketData(
2286
+ Color,
2287
+ box,
2288
+ "outlineColor",
2289
+ boxData.outlineColor,
2290
+ interval,
2291
+ sourceUri,
2292
+ entityCollection
2293
+ );
2294
+ processPacketData(
2295
+ Number,
2296
+ box,
2297
+ "outlineWidth",
2298
+ boxData.outlineWidth,
2299
+ interval,
2300
+ sourceUri,
2301
+ entityCollection
2302
+ );
2303
+ processPacketData(
2304
+ ShadowMode,
2305
+ box,
2306
+ "shadows",
2307
+ boxData.shadows,
2308
+ interval,
2309
+ sourceUri,
2310
+ entityCollection
2311
+ );
2312
+ processPacketData(
2313
+ DistanceDisplayCondition,
2314
+ box,
2315
+ "distanceDisplayCondition",
2316
+ boxData.distanceDisplayCondition,
2317
+ interval,
2318
+ sourceUri,
2319
+ entityCollection
2320
+ );
2321
+ }
2322
+
2323
+ function processCorridor(entity, packet, entityCollection, sourceUri) {
2324
+ const corridorData = packet.corridor;
2325
+ if (!defined(corridorData)) {
2326
+ return;
2327
+ }
2328
+
2329
+ const interval = intervalFromString(corridorData.interval);
2330
+ let corridor = entity.corridor;
2331
+ if (!defined(corridor)) {
2332
+ entity.corridor = corridor = new CorridorGraphics();
2333
+ }
2334
+
2335
+ processPacketData(
2336
+ Boolean,
2337
+ corridor,
2338
+ "show",
2339
+ corridorData.show,
2340
+ interval,
2341
+ sourceUri,
2342
+ entityCollection
2343
+ );
2344
+ processPositionArray(
2345
+ corridor,
2346
+ "positions",
2347
+ corridorData.positions,
2348
+ entityCollection
2349
+ );
2350
+ processPacketData(
2351
+ Number,
2352
+ corridor,
2353
+ "width",
2354
+ corridorData.width,
2355
+ interval,
2356
+ sourceUri,
2357
+ entityCollection
2358
+ );
2359
+ processPacketData(
2360
+ Number,
2361
+ corridor,
2362
+ "height",
2363
+ corridorData.height,
2364
+ interval,
2365
+ sourceUri,
2366
+ entityCollection
2367
+ );
2368
+ processPacketData(
2369
+ HeightReference,
2370
+ corridor,
2371
+ "heightReference",
2372
+ corridorData.heightReference,
2373
+ interval,
2374
+ sourceUri,
2375
+ entityCollection
2376
+ );
2377
+ processPacketData(
2378
+ Number,
2379
+ corridor,
2380
+ "extrudedHeight",
2381
+ corridorData.extrudedHeight,
2382
+ interval,
2383
+ sourceUri,
2384
+ entityCollection
2385
+ );
2386
+ processPacketData(
2387
+ HeightReference,
2388
+ corridor,
2389
+ "extrudedHeightReference",
2390
+ corridorData.extrudedHeightReference,
2391
+ interval,
2392
+ sourceUri,
2393
+ entityCollection
2394
+ );
2395
+ processPacketData(
2396
+ CornerType,
2397
+ corridor,
2398
+ "cornerType",
2399
+ corridorData.cornerType,
2400
+ interval,
2401
+ sourceUri,
2402
+ entityCollection
2403
+ );
2404
+ processPacketData(
2405
+ Number,
2406
+ corridor,
2407
+ "granularity",
2408
+ corridorData.granularity,
2409
+ interval,
2410
+ sourceUri,
2411
+ entityCollection
2412
+ );
2413
+ processPacketData(
2414
+ Boolean,
2415
+ corridor,
2416
+ "fill",
2417
+ corridorData.fill,
2418
+ interval,
2419
+ sourceUri,
2420
+ entityCollection
2421
+ );
2422
+ processMaterialPacketData(
2423
+ corridor,
2424
+ "material",
2425
+ corridorData.material,
2426
+ interval,
2427
+ sourceUri,
2428
+ entityCollection
2429
+ );
2430
+ processPacketData(
2431
+ Boolean,
2432
+ corridor,
2433
+ "outline",
2434
+ corridorData.outline,
2435
+ interval,
2436
+ sourceUri,
2437
+ entityCollection
2438
+ );
2439
+ processPacketData(
2440
+ Color,
2441
+ corridor,
2442
+ "outlineColor",
2443
+ corridorData.outlineColor,
2444
+ interval,
2445
+ sourceUri,
2446
+ entityCollection
2447
+ );
2448
+ processPacketData(
2449
+ Number,
2450
+ corridor,
2451
+ "outlineWidth",
2452
+ corridorData.outlineWidth,
2453
+ interval,
2454
+ sourceUri,
2455
+ entityCollection
2456
+ );
2457
+ processPacketData(
2458
+ ShadowMode,
2459
+ corridor,
2460
+ "shadows",
2461
+ corridorData.shadows,
2462
+ interval,
2463
+ sourceUri,
2464
+ entityCollection
2465
+ );
2466
+ processPacketData(
2467
+ DistanceDisplayCondition,
2468
+ corridor,
2469
+ "distanceDisplayCondition",
2470
+ corridorData.distanceDisplayCondition,
2471
+ interval,
2472
+ sourceUri,
2473
+ entityCollection
2474
+ );
2475
+ processPacketData(
2476
+ ClassificationType,
2477
+ corridor,
2478
+ "classificationType",
2479
+ corridorData.classificationType,
2480
+ interval,
2481
+ sourceUri,
2482
+ entityCollection
2483
+ );
2484
+ processPacketData(
2485
+ Number,
2486
+ corridor,
2487
+ "zIndex",
2488
+ corridorData.zIndex,
2489
+ interval,
2490
+ sourceUri,
2491
+ entityCollection
2492
+ );
2493
+ }
2494
+
2495
+ function processCylinder(entity, packet, entityCollection, sourceUri) {
2496
+ const cylinderData = packet.cylinder;
2497
+ if (!defined(cylinderData)) {
2498
+ return;
2499
+ }
2500
+
2501
+ const interval = intervalFromString(cylinderData.interval);
2502
+ let cylinder = entity.cylinder;
2503
+ if (!defined(cylinder)) {
2504
+ entity.cylinder = cylinder = new CylinderGraphics();
2505
+ }
2506
+
2507
+ processPacketData(
2508
+ Boolean,
2509
+ cylinder,
2510
+ "show",
2511
+ cylinderData.show,
2512
+ interval,
2513
+ sourceUri,
2514
+ entityCollection
2515
+ );
2516
+ processPacketData(
2517
+ Number,
2518
+ cylinder,
2519
+ "length",
2520
+ cylinderData.length,
2521
+ interval,
2522
+ sourceUri,
2523
+ entityCollection
2524
+ );
2525
+ processPacketData(
2526
+ Number,
2527
+ cylinder,
2528
+ "topRadius",
2529
+ cylinderData.topRadius,
2530
+ interval,
2531
+ sourceUri,
2532
+ entityCollection
2533
+ );
2534
+ processPacketData(
2535
+ Number,
2536
+ cylinder,
2537
+ "bottomRadius",
2538
+ cylinderData.bottomRadius,
2539
+ interval,
2540
+ sourceUri,
2541
+ entityCollection
2542
+ );
2543
+ processPacketData(
2544
+ HeightReference,
2545
+ cylinder,
2546
+ "heightReference",
2547
+ cylinderData.heightReference,
2548
+ interval,
2549
+ sourceUri,
2550
+ entityCollection
2551
+ );
2552
+ processPacketData(
2553
+ Boolean,
2554
+ cylinder,
2555
+ "fill",
2556
+ cylinderData.fill,
2557
+ interval,
2558
+ sourceUri,
2559
+ entityCollection
2560
+ );
2561
+ processMaterialPacketData(
2562
+ cylinder,
2563
+ "material",
2564
+ cylinderData.material,
2565
+ interval,
2566
+ sourceUri,
2567
+ entityCollection
2568
+ );
2569
+ processPacketData(
2570
+ Boolean,
2571
+ cylinder,
2572
+ "outline",
2573
+ cylinderData.outline,
2574
+ interval,
2575
+ sourceUri,
2576
+ entityCollection
2577
+ );
2578
+ processPacketData(
2579
+ Color,
2580
+ cylinder,
2581
+ "outlineColor",
2582
+ cylinderData.outlineColor,
2583
+ interval,
2584
+ sourceUri,
2585
+ entityCollection
2586
+ );
2587
+ processPacketData(
2588
+ Number,
2589
+ cylinder,
2590
+ "outlineWidth",
2591
+ cylinderData.outlineWidth,
2592
+ interval,
2593
+ sourceUri,
2594
+ entityCollection
2595
+ );
2596
+ processPacketData(
2597
+ Number,
2598
+ cylinder,
2599
+ "numberOfVerticalLines",
2600
+ cylinderData.numberOfVerticalLines,
2601
+ interval,
2602
+ sourceUri,
2603
+ entityCollection
2604
+ );
2605
+ processPacketData(
2606
+ Number,
2607
+ cylinder,
2608
+ "slices",
2609
+ cylinderData.slices,
2610
+ interval,
2611
+ sourceUri,
2612
+ entityCollection
2613
+ );
2614
+ processPacketData(
2615
+ ShadowMode,
2616
+ cylinder,
2617
+ "shadows",
2618
+ cylinderData.shadows,
2619
+ interval,
2620
+ sourceUri,
2621
+ entityCollection
2622
+ );
2623
+ processPacketData(
2624
+ DistanceDisplayCondition,
2625
+ cylinder,
2626
+ "distanceDisplayCondition",
2627
+ cylinderData.distanceDisplayCondition,
2628
+ interval,
2629
+ sourceUri,
2630
+ entityCollection
2631
+ );
2632
+ }
2633
+
2634
+ function processDocument(packet, dataSource) {
2635
+ const version = packet.version;
2636
+ if (defined(version)) {
2637
+ if (typeof version === "string") {
2638
+ const tokens = version.split(".");
2639
+ if (tokens.length === 2) {
2640
+ if (tokens[0] !== "1") {
2641
+ throw new RuntimeError("Cesium only supports CZML version 1.");
2642
+ }
2643
+ dataSource._version = version;
2644
+ }
2645
+ }
2646
+ }
2647
+
2648
+ if (!defined(dataSource._version)) {
2649
+ throw new RuntimeError(
2650
+ "CZML version information invalid. It is expected to be a property on the document object in the <Major>.<Minor> version format."
2651
+ );
2652
+ }
2653
+
2654
+ const documentPacket = dataSource._documentPacket;
2655
+
2656
+ if (defined(packet.name)) {
2657
+ documentPacket.name = packet.name;
2658
+ }
2659
+
2660
+ const clockPacket = packet.clock;
2661
+ if (defined(clockPacket)) {
2662
+ const clock = documentPacket.clock;
2663
+ if (!defined(clock)) {
2664
+ documentPacket.clock = {
2665
+ interval: clockPacket.interval,
2666
+ currentTime: clockPacket.currentTime,
2667
+ range: clockPacket.range,
2668
+ step: clockPacket.step,
2669
+ multiplier: clockPacket.multiplier,
2670
+ };
2671
+ } else {
2672
+ clock.interval = defaultValue(clockPacket.interval, clock.interval);
2673
+ clock.currentTime = defaultValue(
2674
+ clockPacket.currentTime,
2675
+ clock.currentTime
2676
+ );
2677
+ clock.range = defaultValue(clockPacket.range, clock.range);
2678
+ clock.step = defaultValue(clockPacket.step, clock.step);
2679
+ clock.multiplier = defaultValue(clockPacket.multiplier, clock.multiplier);
2680
+ }
2681
+ }
2682
+ }
2683
+
2684
+ function processEllipse(entity, packet, entityCollection, sourceUri) {
2685
+ const ellipseData = packet.ellipse;
2686
+ if (!defined(ellipseData)) {
2687
+ return;
2688
+ }
2689
+
2690
+ const interval = intervalFromString(ellipseData.interval);
2691
+ let ellipse = entity.ellipse;
2692
+ if (!defined(ellipse)) {
2693
+ entity.ellipse = ellipse = new EllipseGraphics();
2694
+ }
2695
+
2696
+ processPacketData(
2697
+ Boolean,
2698
+ ellipse,
2699
+ "show",
2700
+ ellipseData.show,
2701
+ interval,
2702
+ sourceUri,
2703
+ entityCollection
2704
+ );
2705
+ processPacketData(
2706
+ Number,
2707
+ ellipse,
2708
+ "semiMajorAxis",
2709
+ ellipseData.semiMajorAxis,
2710
+ interval,
2711
+ sourceUri,
2712
+ entityCollection
2713
+ );
2714
+ processPacketData(
2715
+ Number,
2716
+ ellipse,
2717
+ "semiMinorAxis",
2718
+ ellipseData.semiMinorAxis,
2719
+ interval,
2720
+ sourceUri,
2721
+ entityCollection
2722
+ );
2723
+ processPacketData(
2724
+ Number,
2725
+ ellipse,
2726
+ "height",
2727
+ ellipseData.height,
2728
+ interval,
2729
+ sourceUri,
2730
+ entityCollection
2731
+ );
2732
+ processPacketData(
2733
+ HeightReference,
2734
+ ellipse,
2735
+ "heightReference",
2736
+ ellipseData.heightReference,
2737
+ interval,
2738
+ sourceUri,
2739
+ entityCollection
2740
+ );
2741
+ processPacketData(
2742
+ Number,
2743
+ ellipse,
2744
+ "extrudedHeight",
2745
+ ellipseData.extrudedHeight,
2746
+ interval,
2747
+ sourceUri,
2748
+ entityCollection
2749
+ );
2750
+ processPacketData(
2751
+ HeightReference,
2752
+ ellipse,
2753
+ "extrudedHeightReference",
2754
+ ellipseData.extrudedHeightReference,
2755
+ interval,
2756
+ sourceUri,
2757
+ entityCollection
2758
+ );
2759
+ processPacketData(
2760
+ Rotation,
2761
+ ellipse,
2762
+ "rotation",
2763
+ ellipseData.rotation,
2764
+ interval,
2765
+ sourceUri,
2766
+ entityCollection
2767
+ );
2768
+ processPacketData(
2769
+ Rotation,
2770
+ ellipse,
2771
+ "stRotation",
2772
+ ellipseData.stRotation,
2773
+ interval,
2774
+ sourceUri,
2775
+ entityCollection
2776
+ );
2777
+ processPacketData(
2778
+ Number,
2779
+ ellipse,
2780
+ "granularity",
2781
+ ellipseData.granularity,
2782
+ interval,
2783
+ sourceUri,
2784
+ entityCollection
2785
+ );
2786
+ processPacketData(
2787
+ Boolean,
2788
+ ellipse,
2789
+ "fill",
2790
+ ellipseData.fill,
2791
+ interval,
2792
+ sourceUri,
2793
+ entityCollection
2794
+ );
2795
+ processMaterialPacketData(
2796
+ ellipse,
2797
+ "material",
2798
+ ellipseData.material,
2799
+ interval,
2800
+ sourceUri,
2801
+ entityCollection
2802
+ );
2803
+ processPacketData(
2804
+ Boolean,
2805
+ ellipse,
2806
+ "outline",
2807
+ ellipseData.outline,
2808
+ interval,
2809
+ sourceUri,
2810
+ entityCollection
2811
+ );
2812
+ processPacketData(
2813
+ Color,
2814
+ ellipse,
2815
+ "outlineColor",
2816
+ ellipseData.outlineColor,
2817
+ interval,
2818
+ sourceUri,
2819
+ entityCollection
2820
+ );
2821
+ processPacketData(
2822
+ Number,
2823
+ ellipse,
2824
+ "outlineWidth",
2825
+ ellipseData.outlineWidth,
2826
+ interval,
2827
+ sourceUri,
2828
+ entityCollection
2829
+ );
2830
+ processPacketData(
2831
+ Number,
2832
+ ellipse,
2833
+ "numberOfVerticalLines",
2834
+ ellipseData.numberOfVerticalLines,
2835
+ interval,
2836
+ sourceUri,
2837
+ entityCollection
2838
+ );
2839
+ processPacketData(
2840
+ ShadowMode,
2841
+ ellipse,
2842
+ "shadows",
2843
+ ellipseData.shadows,
2844
+ interval,
2845
+ sourceUri,
2846
+ entityCollection
2847
+ );
2848
+ processPacketData(
2849
+ DistanceDisplayCondition,
2850
+ ellipse,
2851
+ "distanceDisplayCondition",
2852
+ ellipseData.distanceDisplayCondition,
2853
+ interval,
2854
+ sourceUri,
2855
+ entityCollection
2856
+ );
2857
+ processPacketData(
2858
+ ClassificationType,
2859
+ ellipse,
2860
+ "classificationType",
2861
+ ellipseData.classificationType,
2862
+ interval,
2863
+ sourceUri,
2864
+ entityCollection
2865
+ );
2866
+ processPacketData(
2867
+ Number,
2868
+ ellipse,
2869
+ "zIndex",
2870
+ ellipseData.zIndex,
2871
+ interval,
2872
+ sourceUri,
2873
+ entityCollection
2874
+ );
2875
+ }
2876
+
2877
+ function processEllipsoid(entity, packet, entityCollection, sourceUri) {
2878
+ const ellipsoidData = packet.ellipsoid;
2879
+ if (!defined(ellipsoidData)) {
2880
+ return;
2881
+ }
2882
+
2883
+ const interval = intervalFromString(ellipsoidData.interval);
2884
+ let ellipsoid = entity.ellipsoid;
2885
+ if (!defined(ellipsoid)) {
2886
+ entity.ellipsoid = ellipsoid = new EllipsoidGraphics();
2887
+ }
2888
+
2889
+ processPacketData(
2890
+ Boolean,
2891
+ ellipsoid,
2892
+ "show",
2893
+ ellipsoidData.show,
2894
+ interval,
2895
+ sourceUri,
2896
+ entityCollection
2897
+ );
2898
+ processPacketData(
2899
+ Cartesian3,
2900
+ ellipsoid,
2901
+ "radii",
2902
+ ellipsoidData.radii,
2903
+ interval,
2904
+ sourceUri,
2905
+ entityCollection
2906
+ );
2907
+ processPacketData(
2908
+ Cartesian3,
2909
+ ellipsoid,
2910
+ "innerRadii",
2911
+ ellipsoidData.innerRadii,
2912
+ interval,
2913
+ sourceUri,
2914
+ entityCollection
2915
+ );
2916
+ processPacketData(
2917
+ Number,
2918
+ ellipsoid,
2919
+ "minimumClock",
2920
+ ellipsoidData.minimumClock,
2921
+ interval,
2922
+ sourceUri,
2923
+ entityCollection
2924
+ );
2925
+ processPacketData(
2926
+ Number,
2927
+ ellipsoid,
2928
+ "maximumClock",
2929
+ ellipsoidData.maximumClock,
2930
+ interval,
2931
+ sourceUri,
2932
+ entityCollection
2933
+ );
2934
+ processPacketData(
2935
+ Number,
2936
+ ellipsoid,
2937
+ "minimumCone",
2938
+ ellipsoidData.minimumCone,
2939
+ interval,
2940
+ sourceUri,
2941
+ entityCollection
2942
+ );
2943
+ processPacketData(
2944
+ Number,
2945
+ ellipsoid,
2946
+ "maximumCone",
2947
+ ellipsoidData.maximumCone,
2948
+ interval,
2949
+ sourceUri,
2950
+ entityCollection
2951
+ );
2952
+ processPacketData(
2953
+ HeightReference,
2954
+ ellipsoid,
2955
+ "heightReference",
2956
+ ellipsoidData.heightReference,
2957
+ interval,
2958
+ sourceUri,
2959
+ entityCollection
2960
+ );
2961
+ processPacketData(
2962
+ Boolean,
2963
+ ellipsoid,
2964
+ "fill",
2965
+ ellipsoidData.fill,
2966
+ interval,
2967
+ sourceUri,
2968
+ entityCollection
2969
+ );
2970
+ processMaterialPacketData(
2971
+ ellipsoid,
2972
+ "material",
2973
+ ellipsoidData.material,
2974
+ interval,
2975
+ sourceUri,
2976
+ entityCollection
2977
+ );
2978
+ processPacketData(
2979
+ Boolean,
2980
+ ellipsoid,
2981
+ "outline",
2982
+ ellipsoidData.outline,
2983
+ interval,
2984
+ sourceUri,
2985
+ entityCollection
2986
+ );
2987
+ processPacketData(
2988
+ Color,
2989
+ ellipsoid,
2990
+ "outlineColor",
2991
+ ellipsoidData.outlineColor,
2992
+ interval,
2993
+ sourceUri,
2994
+ entityCollection
2995
+ );
2996
+ processPacketData(
2997
+ Number,
2998
+ ellipsoid,
2999
+ "outlineWidth",
3000
+ ellipsoidData.outlineWidth,
3001
+ interval,
3002
+ sourceUri,
3003
+ entityCollection
3004
+ );
3005
+ processPacketData(
3006
+ Number,
3007
+ ellipsoid,
3008
+ "stackPartitions",
3009
+ ellipsoidData.stackPartitions,
3010
+ interval,
3011
+ sourceUri,
3012
+ entityCollection
3013
+ );
3014
+ processPacketData(
3015
+ Number,
3016
+ ellipsoid,
3017
+ "slicePartitions",
3018
+ ellipsoidData.slicePartitions,
3019
+ interval,
3020
+ sourceUri,
3021
+ entityCollection
3022
+ );
3023
+ processPacketData(
3024
+ Number,
3025
+ ellipsoid,
3026
+ "subdivisions",
3027
+ ellipsoidData.subdivisions,
3028
+ interval,
3029
+ sourceUri,
3030
+ entityCollection
3031
+ );
3032
+ processPacketData(
3033
+ ShadowMode,
3034
+ ellipsoid,
3035
+ "shadows",
3036
+ ellipsoidData.shadows,
3037
+ interval,
3038
+ sourceUri,
3039
+ entityCollection
3040
+ );
3041
+ processPacketData(
3042
+ DistanceDisplayCondition,
3043
+ ellipsoid,
3044
+ "distanceDisplayCondition",
3045
+ ellipsoidData.distanceDisplayCondition,
3046
+ interval,
3047
+ sourceUri,
3048
+ entityCollection
3049
+ );
3050
+ }
3051
+
3052
+ function processLabel(entity, packet, entityCollection, sourceUri) {
3053
+ const labelData = packet.label;
3054
+ if (!defined(labelData)) {
3055
+ return;
3056
+ }
3057
+
3058
+ const interval = intervalFromString(labelData.interval);
3059
+ let label = entity.label;
3060
+ if (!defined(label)) {
3061
+ entity.label = label = new LabelGraphics();
3062
+ }
3063
+
3064
+ processPacketData(
3065
+ Boolean,
3066
+ label,
3067
+ "show",
3068
+ labelData.show,
3069
+ interval,
3070
+ sourceUri,
3071
+ entityCollection
3072
+ );
3073
+ processPacketData(
3074
+ String,
3075
+ label,
3076
+ "text",
3077
+ labelData.text,
3078
+ interval,
3079
+ sourceUri,
3080
+ entityCollection
3081
+ );
3082
+ processPacketData(
3083
+ String,
3084
+ label,
3085
+ "font",
3086
+ labelData.font,
3087
+ interval,
3088
+ sourceUri,
3089
+ entityCollection
3090
+ );
3091
+ processPacketData(
3092
+ LabelStyle,
3093
+ label,
3094
+ "style",
3095
+ labelData.style,
3096
+ interval,
3097
+ sourceUri,
3098
+ entityCollection
3099
+ );
3100
+ processPacketData(
3101
+ Number,
3102
+ label,
3103
+ "scale",
3104
+ labelData.scale,
3105
+ interval,
3106
+ sourceUri,
3107
+ entityCollection
3108
+ );
3109
+ processPacketData(
3110
+ Boolean,
3111
+ label,
3112
+ "showBackground",
3113
+ labelData.showBackground,
3114
+ interval,
3115
+ sourceUri,
3116
+ entityCollection
3117
+ );
3118
+ processPacketData(
3119
+ Color,
3120
+ label,
3121
+ "backgroundColor",
3122
+ labelData.backgroundColor,
3123
+ interval,
3124
+ sourceUri,
3125
+ entityCollection
3126
+ );
3127
+ processPacketData(
3128
+ Cartesian2,
3129
+ label,
3130
+ "backgroundPadding",
3131
+ labelData.backgroundPadding,
3132
+ interval,
3133
+ sourceUri,
3134
+ entityCollection
3135
+ );
3136
+ processPacketData(
3137
+ Cartesian2,
3138
+ label,
3139
+ "pixelOffset",
3140
+ labelData.pixelOffset,
3141
+ interval,
3142
+ sourceUri,
3143
+ entityCollection
3144
+ );
3145
+ processPacketData(
3146
+ Cartesian3,
3147
+ label,
3148
+ "eyeOffset",
3149
+ labelData.eyeOffset,
3150
+ interval,
3151
+ sourceUri,
3152
+ entityCollection
3153
+ );
3154
+ processPacketData(
3155
+ HorizontalOrigin,
3156
+ label,
3157
+ "horizontalOrigin",
3158
+ labelData.horizontalOrigin,
3159
+ interval,
3160
+ sourceUri,
3161
+ entityCollection
3162
+ );
3163
+ processPacketData(
3164
+ VerticalOrigin,
3165
+ label,
3166
+ "verticalOrigin",
3167
+ labelData.verticalOrigin,
3168
+ interval,
3169
+ sourceUri,
3170
+ entityCollection
3171
+ );
3172
+ processPacketData(
3173
+ HeightReference,
3174
+ label,
3175
+ "heightReference",
3176
+ labelData.heightReference,
3177
+ interval,
3178
+ sourceUri,
3179
+ entityCollection
3180
+ );
3181
+ processPacketData(
3182
+ Color,
3183
+ label,
3184
+ "fillColor",
3185
+ labelData.fillColor,
3186
+ interval,
3187
+ sourceUri,
3188
+ entityCollection
3189
+ );
3190
+ processPacketData(
3191
+ Color,
3192
+ label,
3193
+ "outlineColor",
3194
+ labelData.outlineColor,
3195
+ interval,
3196
+ sourceUri,
3197
+ entityCollection
3198
+ );
3199
+ processPacketData(
3200
+ Number,
3201
+ label,
3202
+ "outlineWidth",
3203
+ labelData.outlineWidth,
3204
+ interval,
3205
+ sourceUri,
3206
+ entityCollection
3207
+ );
3208
+ processPacketData(
3209
+ NearFarScalar,
3210
+ label,
3211
+ "translucencyByDistance",
3212
+ labelData.translucencyByDistance,
3213
+ interval,
3214
+ sourceUri,
3215
+ entityCollection
3216
+ );
3217
+ processPacketData(
3218
+ NearFarScalar,
3219
+ label,
3220
+ "pixelOffsetScaleByDistance",
3221
+ labelData.pixelOffsetScaleByDistance,
3222
+ interval,
3223
+ sourceUri,
3224
+ entityCollection
3225
+ );
3226
+ processPacketData(
3227
+ NearFarScalar,
3228
+ label,
3229
+ "scaleByDistance",
3230
+ labelData.scaleByDistance,
3231
+ interval,
3232
+ sourceUri,
3233
+ entityCollection
3234
+ );
3235
+ processPacketData(
3236
+ DistanceDisplayCondition,
3237
+ label,
3238
+ "distanceDisplayCondition",
3239
+ labelData.distanceDisplayCondition,
3240
+ interval,
3241
+ sourceUri,
3242
+ entityCollection
3243
+ );
3244
+ processPacketData(
3245
+ Number,
3246
+ label,
3247
+ "disableDepthTestDistance",
3248
+ labelData.disableDepthTestDistance,
3249
+ interval,
3250
+ sourceUri,
3251
+ entityCollection
3252
+ );
3253
+ }
3254
+
3255
+ function processModel(entity, packet, entityCollection, sourceUri) {
3256
+ const modelData = packet.model;
3257
+ if (!defined(modelData)) {
3258
+ return;
3259
+ }
3260
+
3261
+ const interval = intervalFromString(modelData.interval);
3262
+ let model = entity.model;
3263
+ if (!defined(model)) {
3264
+ entity.model = model = new ModelGraphics();
3265
+ }
3266
+
3267
+ processPacketData(
3268
+ Boolean,
3269
+ model,
3270
+ "show",
3271
+ modelData.show,
3272
+ interval,
3273
+ sourceUri,
3274
+ entityCollection
3275
+ );
3276
+ processPacketData(
3277
+ Uri,
3278
+ model,
3279
+ "uri",
3280
+ modelData.gltf,
3281
+ interval,
3282
+ sourceUri,
3283
+ entityCollection
3284
+ );
3285
+ processPacketData(
3286
+ Number,
3287
+ model,
3288
+ "scale",
3289
+ modelData.scale,
3290
+ interval,
3291
+ sourceUri,
3292
+ entityCollection
3293
+ );
3294
+ processPacketData(
3295
+ Number,
3296
+ model,
3297
+ "minimumPixelSize",
3298
+ modelData.minimumPixelSize,
3299
+ interval,
3300
+ sourceUri,
3301
+ entityCollection
3302
+ );
3303
+ processPacketData(
3304
+ Number,
3305
+ model,
3306
+ "maximumScale",
3307
+ modelData.maximumScale,
3308
+ interval,
3309
+ sourceUri,
3310
+ entityCollection
3311
+ );
3312
+ processPacketData(
3313
+ Boolean,
3314
+ model,
3315
+ "incrementallyLoadTextures",
3316
+ modelData.incrementallyLoadTextures,
3317
+ interval,
3318
+ sourceUri,
3319
+ entityCollection
3320
+ );
3321
+ processPacketData(
3322
+ Boolean,
3323
+ model,
3324
+ "runAnimations",
3325
+ modelData.runAnimations,
3326
+ interval,
3327
+ sourceUri,
3328
+ entityCollection
3329
+ );
3330
+ processPacketData(
3331
+ Boolean,
3332
+ model,
3333
+ "clampAnimations",
3334
+ modelData.clampAnimations,
3335
+ interval,
3336
+ sourceUri,
3337
+ entityCollection
3338
+ );
3339
+ processPacketData(
3340
+ ShadowMode,
3341
+ model,
3342
+ "shadows",
3343
+ modelData.shadows,
3344
+ interval,
3345
+ sourceUri,
3346
+ entityCollection
3347
+ );
3348
+ processPacketData(
3349
+ HeightReference,
3350
+ model,
3351
+ "heightReference",
3352
+ modelData.heightReference,
3353
+ interval,
3354
+ sourceUri,
3355
+ entityCollection
3356
+ );
3357
+ processPacketData(
3358
+ Color,
3359
+ model,
3360
+ "silhouetteColor",
3361
+ modelData.silhouetteColor,
3362
+ interval,
3363
+ sourceUri,
3364
+ entityCollection
3365
+ );
3366
+ processPacketData(
3367
+ Number,
3368
+ model,
3369
+ "silhouetteSize",
3370
+ modelData.silhouetteSize,
3371
+ interval,
3372
+ sourceUri,
3373
+ entityCollection
3374
+ );
3375
+ processPacketData(
3376
+ Color,
3377
+ model,
3378
+ "color",
3379
+ modelData.color,
3380
+ interval,
3381
+ sourceUri,
3382
+ entityCollection
3383
+ );
3384
+ processPacketData(
3385
+ ColorBlendMode,
3386
+ model,
3387
+ "colorBlendMode",
3388
+ modelData.colorBlendMode,
3389
+ interval,
3390
+ sourceUri,
3391
+ entityCollection
3392
+ );
3393
+ processPacketData(
3394
+ Number,
3395
+ model,
3396
+ "colorBlendAmount",
3397
+ modelData.colorBlendAmount,
3398
+ interval,
3399
+ sourceUri,
3400
+ entityCollection
3401
+ );
3402
+ processPacketData(
3403
+ DistanceDisplayCondition,
3404
+ model,
3405
+ "distanceDisplayCondition",
3406
+ modelData.distanceDisplayCondition,
3407
+ interval,
3408
+ sourceUri,
3409
+ entityCollection
3410
+ );
3411
+
3412
+ let i, len;
3413
+ const nodeTransformationsData = modelData.nodeTransformations;
3414
+ if (defined(nodeTransformationsData)) {
3415
+ if (Array.isArray(nodeTransformationsData)) {
3416
+ for (i = 0, len = nodeTransformationsData.length; i < len; ++i) {
3417
+ processNodeTransformations(
3418
+ model,
3419
+ nodeTransformationsData[i],
3420
+ interval,
3421
+ sourceUri,
3422
+ entityCollection
3423
+ );
3424
+ }
3425
+ } else {
3426
+ processNodeTransformations(
3427
+ model,
3428
+ nodeTransformationsData,
3429
+ interval,
3430
+ sourceUri,
3431
+ entityCollection
3432
+ );
3433
+ }
3434
+ }
3435
+
3436
+ const articulationsData = modelData.articulations;
3437
+ if (defined(articulationsData)) {
3438
+ if (Array.isArray(articulationsData)) {
3439
+ for (i = 0, len = articulationsData.length; i < len; ++i) {
3440
+ processArticulations(
3441
+ model,
3442
+ articulationsData[i],
3443
+ interval,
3444
+ sourceUri,
3445
+ entityCollection
3446
+ );
3447
+ }
3448
+ } else {
3449
+ processArticulations(
3450
+ model,
3451
+ articulationsData,
3452
+ interval,
3453
+ sourceUri,
3454
+ entityCollection
3455
+ );
3456
+ }
3457
+ }
3458
+ }
3459
+
3460
+ function processNodeTransformations(
3461
+ model,
3462
+ nodeTransformationsData,
3463
+ constrainedInterval,
3464
+ sourceUri,
3465
+ entityCollection
3466
+ ) {
3467
+ let combinedInterval = intervalFromString(nodeTransformationsData.interval);
3468
+ if (defined(constrainedInterval)) {
3469
+ if (defined(combinedInterval)) {
3470
+ combinedInterval = TimeInterval.intersect(
3471
+ combinedInterval,
3472
+ constrainedInterval,
3473
+ scratchTimeInterval
3474
+ );
3475
+ } else {
3476
+ combinedInterval = constrainedInterval;
3477
+ }
3478
+ }
3479
+
3480
+ let nodeTransformations = model.nodeTransformations;
3481
+ const nodeNames = Object.keys(nodeTransformationsData);
3482
+ for (let i = 0, len = nodeNames.length; i < len; ++i) {
3483
+ const nodeName = nodeNames[i];
3484
+ if (nodeName === "interval") {
3485
+ continue;
3486
+ }
3487
+
3488
+ const nodeTransformationData = nodeTransformationsData[nodeName];
3489
+ if (!defined(nodeTransformationData)) {
3490
+ continue;
3491
+ }
3492
+
3493
+ if (!defined(nodeTransformations)) {
3494
+ model.nodeTransformations = nodeTransformations = new PropertyBag();
3495
+ }
3496
+
3497
+ if (!nodeTransformations.hasProperty(nodeName)) {
3498
+ nodeTransformations.addProperty(nodeName);
3499
+ }
3500
+
3501
+ let nodeTransformation = nodeTransformations[nodeName];
3502
+ if (!defined(nodeTransformation)) {
3503
+ nodeTransformations[
3504
+ nodeName
3505
+ ] = nodeTransformation = new NodeTransformationProperty();
3506
+ }
3507
+
3508
+ processPacketData(
3509
+ Cartesian3,
3510
+ nodeTransformation,
3511
+ "translation",
3512
+ nodeTransformationData.translation,
3513
+ combinedInterval,
3514
+ sourceUri,
3515
+ entityCollection
3516
+ );
3517
+ processPacketData(
3518
+ Quaternion,
3519
+ nodeTransformation,
3520
+ "rotation",
3521
+ nodeTransformationData.rotation,
3522
+ combinedInterval,
3523
+ sourceUri,
3524
+ entityCollection
3525
+ );
3526
+ processPacketData(
3527
+ Cartesian3,
3528
+ nodeTransformation,
3529
+ "scale",
3530
+ nodeTransformationData.scale,
3531
+ combinedInterval,
3532
+ sourceUri,
3533
+ entityCollection
3534
+ );
3535
+ }
3536
+ }
3537
+
3538
+ function processArticulations(
3539
+ model,
3540
+ articulationsData,
3541
+ constrainedInterval,
3542
+ sourceUri,
3543
+ entityCollection
3544
+ ) {
3545
+ let combinedInterval = intervalFromString(articulationsData.interval);
3546
+ if (defined(constrainedInterval)) {
3547
+ if (defined(combinedInterval)) {
3548
+ combinedInterval = TimeInterval.intersect(
3549
+ combinedInterval,
3550
+ constrainedInterval,
3551
+ scratchTimeInterval
3552
+ );
3553
+ } else {
3554
+ combinedInterval = constrainedInterval;
3555
+ }
3556
+ }
3557
+
3558
+ let articulations = model.articulations;
3559
+ const keys = Object.keys(articulationsData);
3560
+ for (let i = 0, len = keys.length; i < len; ++i) {
3561
+ const key = keys[i];
3562
+ if (key === "interval") {
3563
+ continue;
3564
+ }
3565
+
3566
+ const articulationStageData = articulationsData[key];
3567
+ if (!defined(articulationStageData)) {
3568
+ continue;
3569
+ }
3570
+
3571
+ if (!defined(articulations)) {
3572
+ model.articulations = articulations = new PropertyBag();
3573
+ }
3574
+
3575
+ if (!articulations.hasProperty(key)) {
3576
+ articulations.addProperty(key);
3577
+ }
3578
+
3579
+ processPacketData(
3580
+ Number,
3581
+ articulations,
3582
+ key,
3583
+ articulationStageData,
3584
+ combinedInterval,
3585
+ sourceUri,
3586
+ entityCollection
3587
+ );
3588
+ }
3589
+ }
3590
+
3591
+ function processPath(entity, packet, entityCollection, sourceUri) {
3592
+ const pathData = packet.path;
3593
+ if (!defined(pathData)) {
3594
+ return;
3595
+ }
3596
+
3597
+ const interval = intervalFromString(pathData.interval);
3598
+ let path = entity.path;
3599
+ if (!defined(path)) {
3600
+ entity.path = path = new PathGraphics();
3601
+ }
3602
+
3603
+ processPacketData(
3604
+ Boolean,
3605
+ path,
3606
+ "show",
3607
+ pathData.show,
3608
+ interval,
3609
+ sourceUri,
3610
+ entityCollection
3611
+ );
3612
+ processPacketData(
3613
+ Number,
3614
+ path,
3615
+ "leadTime",
3616
+ pathData.leadTime,
3617
+ interval,
3618
+ sourceUri,
3619
+ entityCollection
3620
+ );
3621
+ processPacketData(
3622
+ Number,
3623
+ path,
3624
+ "trailTime",
3625
+ pathData.trailTime,
3626
+ interval,
3627
+ sourceUri,
3628
+ entityCollection
3629
+ );
3630
+ processPacketData(
3631
+ Number,
3632
+ path,
3633
+ "width",
3634
+ pathData.width,
3635
+ interval,
3636
+ sourceUri,
3637
+ entityCollection
3638
+ );
3639
+ processPacketData(
3640
+ Number,
3641
+ path,
3642
+ "resolution",
3643
+ pathData.resolution,
3644
+ interval,
3645
+ sourceUri,
3646
+ entityCollection
3647
+ );
3648
+ processMaterialPacketData(
3649
+ path,
3650
+ "material",
3651
+ pathData.material,
3652
+ interval,
3653
+ sourceUri,
3654
+ entityCollection
3655
+ );
3656
+ processPacketData(
3657
+ DistanceDisplayCondition,
3658
+ path,
3659
+ "distanceDisplayCondition",
3660
+ pathData.distanceDisplayCondition,
3661
+ interval,
3662
+ sourceUri,
3663
+ entityCollection
3664
+ );
3665
+ }
3666
+
3667
+ function processPoint(entity, packet, entityCollection, sourceUri) {
3668
+ const pointData = packet.point;
3669
+ if (!defined(pointData)) {
3670
+ return;
3671
+ }
3672
+
3673
+ const interval = intervalFromString(pointData.interval);
3674
+ let point = entity.point;
3675
+ if (!defined(point)) {
3676
+ entity.point = point = new PointGraphics();
3677
+ }
3678
+
3679
+ processPacketData(
3680
+ Boolean,
3681
+ point,
3682
+ "show",
3683
+ pointData.show,
3684
+ interval,
3685
+ sourceUri,
3686
+ entityCollection
3687
+ );
3688
+ processPacketData(
3689
+ Number,
3690
+ point,
3691
+ "pixelSize",
3692
+ pointData.pixelSize,
3693
+ interval,
3694
+ sourceUri,
3695
+ entityCollection
3696
+ );
3697
+ processPacketData(
3698
+ HeightReference,
3699
+ point,
3700
+ "heightReference",
3701
+ pointData.heightReference,
3702
+ interval,
3703
+ sourceUri,
3704
+ entityCollection
3705
+ );
3706
+ processPacketData(
3707
+ Color,
3708
+ point,
3709
+ "color",
3710
+ pointData.color,
3711
+ interval,
3712
+ sourceUri,
3713
+ entityCollection
3714
+ );
3715
+ processPacketData(
3716
+ Color,
3717
+ point,
3718
+ "outlineColor",
3719
+ pointData.outlineColor,
3720
+ interval,
3721
+ sourceUri,
3722
+ entityCollection
3723
+ );
3724
+ processPacketData(
3725
+ Number,
3726
+ point,
3727
+ "outlineWidth",
3728
+ pointData.outlineWidth,
3729
+ interval,
3730
+ sourceUri,
3731
+ entityCollection
3732
+ );
3733
+ processPacketData(
3734
+ NearFarScalar,
3735
+ point,
3736
+ "scaleByDistance",
3737
+ pointData.scaleByDistance,
3738
+ interval,
3739
+ sourceUri,
3740
+ entityCollection
3741
+ );
3742
+ processPacketData(
3743
+ NearFarScalar,
3744
+ point,
3745
+ "translucencyByDistance",
3746
+ pointData.translucencyByDistance,
3747
+ interval,
3748
+ sourceUri,
3749
+ entityCollection
3750
+ );
3751
+ processPacketData(
3752
+ DistanceDisplayCondition,
3753
+ point,
3754
+ "distanceDisplayCondition",
3755
+ pointData.distanceDisplayCondition,
3756
+ interval,
3757
+ sourceUri,
3758
+ entityCollection
3759
+ );
3760
+ processPacketData(
3761
+ Number,
3762
+ point,
3763
+ "disableDepthTestDistance",
3764
+ pointData.disableDepthTestDistance,
3765
+ interval,
3766
+ sourceUri,
3767
+ entityCollection
3768
+ );
3769
+ }
3770
+
3771
+ function PolygonHierarchyProperty(polygon) {
3772
+ this.polygon = polygon;
3773
+ this._definitionChanged = new Event();
3774
+ }
3775
+
3776
+ Object.defineProperties(PolygonHierarchyProperty.prototype, {
3777
+ isConstant: {
3778
+ get: function () {
3779
+ const positions = this.polygon._positions;
3780
+ const holes = this.polygon._holes;
3781
+ return (
3782
+ (!defined(positions) || positions.isConstant) &&
3783
+ (!defined(holes) || holes.isConstant)
3784
+ );
3785
+ },
3786
+ },
3787
+ definitionChanged: {
3788
+ get: function () {
3789
+ return this._definitionChanged;
3790
+ },
3791
+ },
3792
+ });
3793
+
3794
+ PolygonHierarchyProperty.prototype.getValue = function (time, result) {
3795
+ let positions;
3796
+ if (defined(this.polygon._positions)) {
3797
+ positions = this.polygon._positions.getValue(time);
3798
+ }
3799
+
3800
+ let holes;
3801
+ if (defined(this.polygon._holes)) {
3802
+ holes = this.polygon._holes.getValue(time);
3803
+ if (defined(holes)) {
3804
+ holes = holes.map(function (holePositions) {
3805
+ return new PolygonHierarchy(holePositions);
3806
+ });
3807
+ }
3808
+ }
3809
+
3810
+ if (!defined(result)) {
3811
+ return new PolygonHierarchy(positions, holes);
3812
+ }
3813
+
3814
+ result.positions = positions;
3815
+ result.holes = holes;
3816
+ return result;
3817
+ };
3818
+
3819
+ PolygonHierarchyProperty.prototype.equals = function (other) {
3820
+ return (
3821
+ this === other ||
3822
+ (other instanceof PolygonHierarchyProperty &&
3823
+ Property.equals(this.polygon._positions, other.polygon._positions) &&
3824
+ Property.equals(this.polygon._holes, other.polygon._holes))
3825
+ );
3826
+ };
3827
+
3828
+ function processPolygon(entity, packet, entityCollection, sourceUri) {
3829
+ const polygonData = packet.polygon;
3830
+ if (!defined(polygonData)) {
3831
+ return;
3832
+ }
3833
+
3834
+ const interval = intervalFromString(polygonData.interval);
3835
+ let polygon = entity.polygon;
3836
+ if (!defined(polygon)) {
3837
+ entity.polygon = polygon = new PolygonGraphics();
3838
+ }
3839
+
3840
+ processPacketData(
3841
+ Boolean,
3842
+ polygon,
3843
+ "show",
3844
+ polygonData.show,
3845
+ interval,
3846
+ sourceUri,
3847
+ entityCollection
3848
+ );
3849
+
3850
+ // adapt 'position' property producing Cartesian[]
3851
+ // and 'holes' property producing Cartesian[][]
3852
+ // to a single property producing PolygonHierarchy
3853
+ processPositionArray(
3854
+ polygon,
3855
+ "_positions",
3856
+ polygonData.positions,
3857
+ entityCollection
3858
+ );
3859
+ processPositionArrayOfArrays(
3860
+ polygon,
3861
+ "_holes",
3862
+ polygonData.holes,
3863
+ entityCollection
3864
+ );
3865
+ if (defined(polygon._positions) || defined(polygon._holes)) {
3866
+ polygon.hierarchy = new PolygonHierarchyProperty(polygon);
3867
+ }
3868
+
3869
+ processPacketData(
3870
+ Number,
3871
+ polygon,
3872
+ "height",
3873
+ polygonData.height,
3874
+ interval,
3875
+ sourceUri,
3876
+ entityCollection
3877
+ );
3878
+ processPacketData(
3879
+ HeightReference,
3880
+ polygon,
3881
+ "heightReference",
3882
+ polygonData.heightReference,
3883
+ interval,
3884
+ sourceUri,
3885
+ entityCollection
3886
+ );
3887
+ processPacketData(
3888
+ Number,
3889
+ polygon,
3890
+ "extrudedHeight",
3891
+ polygonData.extrudedHeight,
3892
+ interval,
3893
+ sourceUri,
3894
+ entityCollection
3895
+ );
3896
+ processPacketData(
3897
+ HeightReference,
3898
+ polygon,
3899
+ "extrudedHeightReference",
3900
+ polygonData.extrudedHeightReference,
3901
+ interval,
3902
+ sourceUri,
3903
+ entityCollection
3904
+ );
3905
+ processPacketData(
3906
+ Rotation,
3907
+ polygon,
3908
+ "stRotation",
3909
+ polygonData.stRotation,
3910
+ interval,
3911
+ sourceUri,
3912
+ entityCollection
3913
+ );
3914
+ processPacketData(
3915
+ Number,
3916
+ polygon,
3917
+ "granularity",
3918
+ polygonData.granularity,
3919
+ interval,
3920
+ sourceUri,
3921
+ entityCollection
3922
+ );
3923
+ processPacketData(
3924
+ Boolean,
3925
+ polygon,
3926
+ "fill",
3927
+ polygonData.fill,
3928
+ interval,
3929
+ sourceUri,
3930
+ entityCollection
3931
+ );
3932
+ processMaterialPacketData(
3933
+ polygon,
3934
+ "material",
3935
+ polygonData.material,
3936
+ interval,
3937
+ sourceUri,
3938
+ entityCollection
3939
+ );
3940
+ processPacketData(
3941
+ Boolean,
3942
+ polygon,
3943
+ "outline",
3944
+ polygonData.outline,
3945
+ interval,
3946
+ sourceUri,
3947
+ entityCollection
3948
+ );
3949
+ processPacketData(
3950
+ Color,
3951
+ polygon,
3952
+ "outlineColor",
3953
+ polygonData.outlineColor,
3954
+ interval,
3955
+ sourceUri,
3956
+ entityCollection
3957
+ );
3958
+ processPacketData(
3959
+ Number,
3960
+ polygon,
3961
+ "outlineWidth",
3962
+ polygonData.outlineWidth,
3963
+ interval,
3964
+ sourceUri,
3965
+ entityCollection
3966
+ );
3967
+ processPacketData(
3968
+ Boolean,
3969
+ polygon,
3970
+ "perPositionHeight",
3971
+ polygonData.perPositionHeight,
3972
+ interval,
3973
+ sourceUri,
3974
+ entityCollection
3975
+ );
3976
+ processPacketData(
3977
+ Boolean,
3978
+ polygon,
3979
+ "closeTop",
3980
+ polygonData.closeTop,
3981
+ interval,
3982
+ sourceUri,
3983
+ entityCollection
3984
+ );
3985
+ processPacketData(
3986
+ Boolean,
3987
+ polygon,
3988
+ "closeBottom",
3989
+ polygonData.closeBottom,
3990
+ interval,
3991
+ sourceUri,
3992
+ entityCollection
3993
+ );
3994
+ processPacketData(
3995
+ ArcType,
3996
+ polygon,
3997
+ "arcType",
3998
+ polygonData.arcType,
3999
+ interval,
4000
+ sourceUri,
4001
+ entityCollection
4002
+ );
4003
+ processPacketData(
4004
+ ShadowMode,
4005
+ polygon,
4006
+ "shadows",
4007
+ polygonData.shadows,
4008
+ interval,
4009
+ sourceUri,
4010
+ entityCollection
4011
+ );
4012
+ processPacketData(
4013
+ DistanceDisplayCondition,
4014
+ polygon,
4015
+ "distanceDisplayCondition",
4016
+ polygonData.distanceDisplayCondition,
4017
+ interval,
4018
+ sourceUri,
4019
+ entityCollection
4020
+ );
4021
+ processPacketData(
4022
+ ClassificationType,
4023
+ polygon,
4024
+ "classificationType",
4025
+ polygonData.classificationType,
4026
+ interval,
4027
+ sourceUri,
4028
+ entityCollection
4029
+ );
4030
+ processPacketData(
4031
+ Number,
4032
+ polygon,
4033
+ "zIndex",
4034
+ polygonData.zIndex,
4035
+ interval,
4036
+ sourceUri,
4037
+ entityCollection
4038
+ );
4039
+ }
4040
+
4041
+ function adaptFollowSurfaceToArcType(followSurface) {
4042
+ return followSurface ? ArcType.GEODESIC : ArcType.NONE;
4043
+ }
4044
+
4045
+ function processPolyline(entity, packet, entityCollection, sourceUri) {
4046
+ const polylineData = packet.polyline;
4047
+ if (!defined(polylineData)) {
4048
+ return;
4049
+ }
4050
+
4051
+ const interval = intervalFromString(polylineData.interval);
4052
+ let polyline = entity.polyline;
4053
+ if (!defined(polyline)) {
4054
+ entity.polyline = polyline = new PolylineGraphics();
4055
+ }
4056
+
4057
+ processPacketData(
4058
+ Boolean,
4059
+ polyline,
4060
+ "show",
4061
+ polylineData.show,
4062
+ interval,
4063
+ sourceUri,
4064
+ entityCollection
4065
+ );
4066
+ processPositionArray(
4067
+ polyline,
4068
+ "positions",
4069
+ polylineData.positions,
4070
+ entityCollection
4071
+ );
4072
+ processPacketData(
4073
+ Number,
4074
+ polyline,
4075
+ "width",
4076
+ polylineData.width,
4077
+ interval,
4078
+ sourceUri,
4079
+ entityCollection
4080
+ );
4081
+ processPacketData(
4082
+ Number,
4083
+ polyline,
4084
+ "granularity",
4085
+ polylineData.granularity,
4086
+ interval,
4087
+ sourceUri,
4088
+ entityCollection
4089
+ );
4090
+ processMaterialPacketData(
4091
+ polyline,
4092
+ "material",
4093
+ polylineData.material,
4094
+ interval,
4095
+ sourceUri,
4096
+ entityCollection
4097
+ );
4098
+ processMaterialPacketData(
4099
+ polyline,
4100
+ "depthFailMaterial",
4101
+ polylineData.depthFailMaterial,
4102
+ interval,
4103
+ sourceUri,
4104
+ entityCollection
4105
+ );
4106
+ processPacketData(
4107
+ ArcType,
4108
+ polyline,
4109
+ "arcType",
4110
+ polylineData.arcType,
4111
+ interval,
4112
+ sourceUri,
4113
+ entityCollection
4114
+ );
4115
+ processPacketData(
4116
+ Boolean,
4117
+ polyline,
4118
+ "clampToGround",
4119
+ polylineData.clampToGround,
4120
+ interval,
4121
+ sourceUri,
4122
+ entityCollection
4123
+ );
4124
+ processPacketData(
4125
+ ShadowMode,
4126
+ polyline,
4127
+ "shadows",
4128
+ polylineData.shadows,
4129
+ interval,
4130
+ sourceUri,
4131
+ entityCollection
4132
+ );
4133
+ processPacketData(
4134
+ DistanceDisplayCondition,
4135
+ polyline,
4136
+ "distanceDisplayCondition",
4137
+ polylineData.distanceDisplayCondition,
4138
+ interval,
4139
+ sourceUri,
4140
+ entityCollection
4141
+ );
4142
+ processPacketData(
4143
+ ClassificationType,
4144
+ polyline,
4145
+ "classificationType",
4146
+ polylineData.classificationType,
4147
+ interval,
4148
+ sourceUri,
4149
+ entityCollection
4150
+ );
4151
+ processPacketData(
4152
+ Number,
4153
+ polyline,
4154
+ "zIndex",
4155
+ polylineData.zIndex,
4156
+ interval,
4157
+ sourceUri,
4158
+ entityCollection
4159
+ );
4160
+
4161
+ // for backwards compatibility, adapt CZML followSurface to arcType.
4162
+ if (defined(polylineData.followSurface) && !defined(polylineData.arcType)) {
4163
+ const tempObj = {};
4164
+ processPacketData(
4165
+ Boolean,
4166
+ tempObj,
4167
+ "followSurface",
4168
+ polylineData.followSurface,
4169
+ interval,
4170
+ sourceUri,
4171
+ entityCollection
4172
+ );
4173
+ polyline.arcType = createAdapterProperty(
4174
+ tempObj.followSurface,
4175
+ adaptFollowSurfaceToArcType
4176
+ );
4177
+ }
4178
+ }
4179
+
4180
+ function processPolylineVolume(entity, packet, entityCollection, sourceUri) {
4181
+ const polylineVolumeData = packet.polylineVolume;
4182
+ if (!defined(polylineVolumeData)) {
4183
+ return;
4184
+ }
4185
+
4186
+ const interval = intervalFromString(polylineVolumeData.interval);
4187
+ let polylineVolume = entity.polylineVolume;
4188
+ if (!defined(polylineVolume)) {
4189
+ entity.polylineVolume = polylineVolume = new PolylineVolumeGraphics();
4190
+ }
4191
+
4192
+ processPositionArray(
4193
+ polylineVolume,
4194
+ "positions",
4195
+ polylineVolumeData.positions,
4196
+ entityCollection
4197
+ );
4198
+ processShape(
4199
+ polylineVolume,
4200
+ "shape",
4201
+ polylineVolumeData.shape,
4202
+ entityCollection
4203
+ );
4204
+ processPacketData(
4205
+ Boolean,
4206
+ polylineVolume,
4207
+ "show",
4208
+ polylineVolumeData.show,
4209
+ interval,
4210
+ sourceUri,
4211
+ entityCollection
4212
+ );
4213
+ processPacketData(
4214
+ CornerType,
4215
+ polylineVolume,
4216
+ "cornerType",
4217
+ polylineVolumeData.cornerType,
4218
+ interval,
4219
+ sourceUri,
4220
+ entityCollection
4221
+ );
4222
+ processPacketData(
4223
+ Boolean,
4224
+ polylineVolume,
4225
+ "fill",
4226
+ polylineVolumeData.fill,
4227
+ interval,
4228
+ sourceUri,
4229
+ entityCollection
4230
+ );
4231
+ processMaterialPacketData(
4232
+ polylineVolume,
4233
+ "material",
4234
+ polylineVolumeData.material,
4235
+ interval,
4236
+ sourceUri,
4237
+ entityCollection
4238
+ );
4239
+ processPacketData(
4240
+ Boolean,
4241
+ polylineVolume,
4242
+ "outline",
4243
+ polylineVolumeData.outline,
4244
+ interval,
4245
+ sourceUri,
4246
+ entityCollection
4247
+ );
4248
+ processPacketData(
4249
+ Color,
4250
+ polylineVolume,
4251
+ "outlineColor",
4252
+ polylineVolumeData.outlineColor,
4253
+ interval,
4254
+ sourceUri,
4255
+ entityCollection
4256
+ );
4257
+ processPacketData(
4258
+ Number,
4259
+ polylineVolume,
4260
+ "outlineWidth",
4261
+ polylineVolumeData.outlineWidth,
4262
+ interval,
4263
+ sourceUri,
4264
+ entityCollection
4265
+ );
4266
+ processPacketData(
4267
+ Number,
4268
+ polylineVolume,
4269
+ "granularity",
4270
+ polylineVolumeData.granularity,
4271
+ interval,
4272
+ sourceUri,
4273
+ entityCollection
4274
+ );
4275
+ processPacketData(
4276
+ ShadowMode,
4277
+ polylineVolume,
4278
+ "shadows",
4279
+ polylineVolumeData.shadows,
4280
+ interval,
4281
+ sourceUri,
4282
+ entityCollection
4283
+ );
4284
+ processPacketData(
4285
+ DistanceDisplayCondition,
4286
+ polylineVolume,
4287
+ "distanceDisplayCondition",
4288
+ polylineVolumeData.distanceDisplayCondition,
4289
+ interval,
4290
+ sourceUri,
4291
+ entityCollection
4292
+ );
4293
+ }
4294
+
4295
+ function processRectangle(entity, packet, entityCollection, sourceUri) {
4296
+ const rectangleData = packet.rectangle;
4297
+ if (!defined(rectangleData)) {
4298
+ return;
4299
+ }
4300
+
4301
+ const interval = intervalFromString(rectangleData.interval);
4302
+ let rectangle = entity.rectangle;
4303
+ if (!defined(rectangle)) {
4304
+ entity.rectangle = rectangle = new RectangleGraphics();
4305
+ }
4306
+
4307
+ processPacketData(
4308
+ Boolean,
4309
+ rectangle,
4310
+ "show",
4311
+ rectangleData.show,
4312
+ interval,
4313
+ sourceUri,
4314
+ entityCollection
4315
+ );
4316
+ processPacketData(
4317
+ Rectangle,
4318
+ rectangle,
4319
+ "coordinates",
4320
+ rectangleData.coordinates,
4321
+ interval,
4322
+ sourceUri,
4323
+ entityCollection
4324
+ );
4325
+ processPacketData(
4326
+ Number,
4327
+ rectangle,
4328
+ "height",
4329
+ rectangleData.height,
4330
+ interval,
4331
+ sourceUri,
4332
+ entityCollection
4333
+ );
4334
+ processPacketData(
4335
+ HeightReference,
4336
+ rectangle,
4337
+ "heightReference",
4338
+ rectangleData.heightReference,
4339
+ interval,
4340
+ sourceUri,
4341
+ entityCollection
4342
+ );
4343
+ processPacketData(
4344
+ Number,
4345
+ rectangle,
4346
+ "extrudedHeight",
4347
+ rectangleData.extrudedHeight,
4348
+ interval,
4349
+ sourceUri,
4350
+ entityCollection
4351
+ );
4352
+ processPacketData(
4353
+ HeightReference,
4354
+ rectangle,
4355
+ "extrudedHeightReference",
4356
+ rectangleData.extrudedHeightReference,
4357
+ interval,
4358
+ sourceUri,
4359
+ entityCollection
4360
+ );
4361
+ processPacketData(
4362
+ Rotation,
4363
+ rectangle,
4364
+ "rotation",
4365
+ rectangleData.rotation,
4366
+ interval,
4367
+ sourceUri,
4368
+ entityCollection
4369
+ );
4370
+ processPacketData(
4371
+ Rotation,
4372
+ rectangle,
4373
+ "stRotation",
4374
+ rectangleData.stRotation,
4375
+ interval,
4376
+ sourceUri,
4377
+ entityCollection
4378
+ );
4379
+ processPacketData(
4380
+ Number,
4381
+ rectangle,
4382
+ "granularity",
4383
+ rectangleData.granularity,
4384
+ interval,
4385
+ sourceUri,
4386
+ entityCollection
4387
+ );
4388
+ processPacketData(
4389
+ Boolean,
4390
+ rectangle,
4391
+ "fill",
4392
+ rectangleData.fill,
4393
+ interval,
4394
+ sourceUri,
4395
+ entityCollection
4396
+ );
4397
+ processMaterialPacketData(
4398
+ rectangle,
4399
+ "material",
4400
+ rectangleData.material,
4401
+ interval,
4402
+ sourceUri,
4403
+ entityCollection
4404
+ );
4405
+ processPacketData(
4406
+ Boolean,
4407
+ rectangle,
4408
+ "outline",
4409
+ rectangleData.outline,
4410
+ interval,
4411
+ sourceUri,
4412
+ entityCollection
4413
+ );
4414
+ processPacketData(
4415
+ Color,
4416
+ rectangle,
4417
+ "outlineColor",
4418
+ rectangleData.outlineColor,
4419
+ interval,
4420
+ sourceUri,
4421
+ entityCollection
4422
+ );
4423
+ processPacketData(
4424
+ Number,
4425
+ rectangle,
4426
+ "outlineWidth",
4427
+ rectangleData.outlineWidth,
4428
+ interval,
4429
+ sourceUri,
4430
+ entityCollection
4431
+ );
4432
+ processPacketData(
4433
+ ShadowMode,
4434
+ rectangle,
4435
+ "shadows",
4436
+ rectangleData.shadows,
4437
+ interval,
4438
+ sourceUri,
4439
+ entityCollection
4440
+ );
4441
+ processPacketData(
4442
+ DistanceDisplayCondition,
4443
+ rectangle,
4444
+ "distanceDisplayCondition",
4445
+ rectangleData.distanceDisplayCondition,
4446
+ interval,
4447
+ sourceUri,
4448
+ entityCollection
4449
+ );
4450
+ processPacketData(
4451
+ ClassificationType,
4452
+ rectangle,
4453
+ "classificationType",
4454
+ rectangleData.classificationType,
4455
+ interval,
4456
+ sourceUri,
4457
+ entityCollection
4458
+ );
4459
+ processPacketData(
4460
+ Number,
4461
+ rectangle,
4462
+ "zIndex",
4463
+ rectangleData.zIndex,
4464
+ interval,
4465
+ sourceUri,
4466
+ entityCollection
4467
+ );
4468
+ }
4469
+
4470
+ function processTileset(entity, packet, entityCollection, sourceUri) {
4471
+ const tilesetData = packet.tileset;
4472
+ if (!defined(tilesetData)) {
4473
+ return;
4474
+ }
4475
+
4476
+ const interval = intervalFromString(tilesetData.interval);
4477
+ let tileset = entity.tileset;
4478
+ if (!defined(tileset)) {
4479
+ entity.tileset = tileset = new Cesium3DTilesetGraphics();
4480
+ }
4481
+
4482
+ processPacketData(
4483
+ Boolean,
4484
+ tileset,
4485
+ "show",
4486
+ tilesetData.show,
4487
+ interval,
4488
+ sourceUri,
4489
+ entityCollection
4490
+ );
4491
+ processPacketData(
4492
+ Uri,
4493
+ tileset,
4494
+ "uri",
4495
+ tilesetData.uri,
4496
+ interval,
4497
+ sourceUri,
4498
+ entityCollection
4499
+ );
4500
+ processPacketData(
4501
+ Number,
4502
+ tileset,
4503
+ "maximumScreenSpaceError",
4504
+ tilesetData.maximumScreenSpaceError,
4505
+ interval,
4506
+ sourceUri,
4507
+ entityCollection
4508
+ );
4509
+ }
4510
+
4511
+ function processWall(entity, packet, entityCollection, sourceUri) {
4512
+ const wallData = packet.wall;
4513
+ if (!defined(wallData)) {
4514
+ return;
4515
+ }
4516
+
4517
+ const interval = intervalFromString(wallData.interval);
4518
+ let wall = entity.wall;
4519
+ if (!defined(wall)) {
4520
+ entity.wall = wall = new WallGraphics();
4521
+ }
4522
+
4523
+ processPacketData(
4524
+ Boolean,
4525
+ wall,
4526
+ "show",
4527
+ wallData.show,
4528
+ interval,
4529
+ sourceUri,
4530
+ entityCollection
4531
+ );
4532
+ processPositionArray(wall, "positions", wallData.positions, entityCollection);
4533
+ processArray(
4534
+ wall,
4535
+ "minimumHeights",
4536
+ wallData.minimumHeights,
4537
+ entityCollection
4538
+ );
4539
+ processArray(
4540
+ wall,
4541
+ "maximumHeights",
4542
+ wallData.maximumHeights,
4543
+ entityCollection
4544
+ );
4545
+ processPacketData(
4546
+ Number,
4547
+ wall,
4548
+ "granularity",
4549
+ wallData.granularity,
4550
+ interval,
4551
+ sourceUri,
4552
+ entityCollection
4553
+ );
4554
+ processPacketData(
4555
+ Boolean,
4556
+ wall,
4557
+ "fill",
4558
+ wallData.fill,
4559
+ interval,
4560
+ sourceUri,
4561
+ entityCollection
4562
+ );
4563
+ processMaterialPacketData(
4564
+ wall,
4565
+ "material",
4566
+ wallData.material,
4567
+ interval,
4568
+ sourceUri,
4569
+ entityCollection
4570
+ );
4571
+ processPacketData(
4572
+ Boolean,
4573
+ wall,
4574
+ "outline",
4575
+ wallData.outline,
4576
+ interval,
4577
+ sourceUri,
4578
+ entityCollection
4579
+ );
4580
+ processPacketData(
4581
+ Color,
4582
+ wall,
4583
+ "outlineColor",
4584
+ wallData.outlineColor,
4585
+ interval,
4586
+ sourceUri,
4587
+ entityCollection
4588
+ );
4589
+ processPacketData(
4590
+ Number,
4591
+ wall,
4592
+ "outlineWidth",
4593
+ wallData.outlineWidth,
4594
+ interval,
4595
+ sourceUri,
4596
+ entityCollection
4597
+ );
4598
+ processPacketData(
4599
+ ShadowMode,
4600
+ wall,
4601
+ "shadows",
4602
+ wallData.shadows,
4603
+ interval,
4604
+ sourceUri,
4605
+ entityCollection
4606
+ );
4607
+ processPacketData(
4608
+ DistanceDisplayCondition,
4609
+ wall,
4610
+ "distanceDisplayCondition",
4611
+ wallData.distanceDisplayCondition,
4612
+ interval,
4613
+ sourceUri,
4614
+ entityCollection
4615
+ );
4616
+ }
4617
+
4618
+ function processCzmlPacket(
4619
+ packet,
4620
+ entityCollection,
4621
+ updaterFunctions,
4622
+ sourceUri,
4623
+ dataSource
4624
+ ) {
4625
+ let objectId = packet.id;
4626
+ if (!defined(objectId)) {
4627
+ objectId = createGuid();
4628
+ }
4629
+
4630
+ currentId = objectId;
4631
+
4632
+ if (!defined(dataSource._version) && objectId !== "document") {
4633
+ throw new RuntimeError(
4634
+ "The first CZML packet is required to be the document object."
4635
+ );
4636
+ }
4637
+
4638
+ if (packet["delete"] === true) {
4639
+ entityCollection.removeById(objectId);
4640
+ } else if (objectId === "document") {
4641
+ processDocument(packet, dataSource);
4642
+ } else {
4643
+ const entity = entityCollection.getOrCreateEntity(objectId);
4644
+
4645
+ const parentId = packet.parent;
4646
+ if (defined(parentId)) {
4647
+ entity.parent = entityCollection.getOrCreateEntity(parentId);
4648
+ }
4649
+
4650
+ for (let i = updaterFunctions.length - 1; i > -1; i--) {
4651
+ updaterFunctions[i](entity, packet, entityCollection, sourceUri);
4652
+ }
4653
+ }
4654
+
4655
+ currentId = undefined;
4656
+ }
4657
+
4658
+ function updateClock(dataSource) {
4659
+ let clock;
4660
+ const clockPacket = dataSource._documentPacket.clock;
4661
+ if (!defined(clockPacket)) {
4662
+ if (!defined(dataSource._clock)) {
4663
+ const availability = dataSource._entityCollection.computeAvailability();
4664
+ if (!availability.start.equals(Iso8601.MINIMUM_VALUE)) {
4665
+ const startTime = availability.start;
4666
+ const stopTime = availability.stop;
4667
+ const totalSeconds = JulianDate.secondsDifference(stopTime, startTime);
4668
+ const multiplier = Math.round(totalSeconds / 120.0);
4669
+
4670
+ clock = new DataSourceClock();
4671
+ clock.startTime = JulianDate.clone(startTime);
4672
+ clock.stopTime = JulianDate.clone(stopTime);
4673
+ clock.clockRange = ClockRange.LOOP_STOP;
4674
+ clock.multiplier = multiplier;
4675
+ clock.currentTime = JulianDate.clone(startTime);
4676
+ clock.clockStep = ClockStep.SYSTEM_CLOCK_MULTIPLIER;
4677
+ dataSource._clock = clock;
4678
+ return true;
4679
+ }
4680
+ }
4681
+ return false;
4682
+ }
4683
+
4684
+ if (defined(dataSource._clock)) {
4685
+ clock = dataSource._clock.clone();
4686
+ } else {
4687
+ clock = new DataSourceClock();
4688
+ clock.startTime = Iso8601.MINIMUM_VALUE.clone();
4689
+ clock.stopTime = Iso8601.MAXIMUM_VALUE.clone();
4690
+ clock.currentTime = Iso8601.MINIMUM_VALUE.clone();
4691
+ clock.clockRange = ClockRange.LOOP_STOP;
4692
+ clock.clockStep = ClockStep.SYSTEM_CLOCK_MULTIPLIER;
4693
+ clock.multiplier = 1.0;
4694
+ }
4695
+
4696
+ const interval = intervalFromString(clockPacket.interval);
4697
+ if (defined(interval)) {
4698
+ clock.startTime = interval.start;
4699
+ clock.stopTime = interval.stop;
4700
+ }
4701
+
4702
+ if (defined(clockPacket.currentTime)) {
4703
+ clock.currentTime = JulianDate.fromIso8601(clockPacket.currentTime);
4704
+ }
4705
+ if (defined(clockPacket.range)) {
4706
+ clock.clockRange = defaultValue(
4707
+ ClockRange[clockPacket.range],
4708
+ ClockRange.LOOP_STOP
4709
+ );
4710
+ }
4711
+ if (defined(clockPacket.step)) {
4712
+ clock.clockStep = defaultValue(
4713
+ ClockStep[clockPacket.step],
4714
+ ClockStep.SYSTEM_CLOCK_MULTIPLIER
4715
+ );
4716
+ }
4717
+ if (defined(clockPacket.multiplier)) {
4718
+ clock.multiplier = clockPacket.multiplier;
4719
+ }
4720
+
4721
+ if (!clock.equals(dataSource._clock)) {
4722
+ dataSource._clock = clock.clone(dataSource._clock);
4723
+ return true;
4724
+ }
4725
+
4726
+ return false;
4727
+ }
4728
+
4729
+ function load(dataSource, czml, options, clear) {
4730
+ //>>includeStart('debug', pragmas.debug);
4731
+ if (!defined(czml)) {
4732
+ throw new DeveloperError("czml is required.");
4733
+ }
4734
+ //>>includeEnd('debug');
4735
+
4736
+ options = defaultValue(options, defaultValue.EMPTY_OBJECT);
4737
+
4738
+ let promise = czml;
4739
+ let sourceUri = options.sourceUri;
4740
+
4741
+ // User specified credit
4742
+ let credit = options.credit;
4743
+ if (typeof credit === "string") {
4744
+ credit = new Credit(credit);
4745
+ }
4746
+ dataSource._credit = credit;
4747
+
4748
+ // If the czml is a URL
4749
+ if (typeof czml === "string" || czml instanceof Resource) {
4750
+ czml = Resource.createIfNeeded(czml);
4751
+ promise = czml.fetchJson();
4752
+ sourceUri = defaultValue(sourceUri, czml.clone());
4753
+
4754
+ // Add resource credits to our list of credits to display
4755
+ const resourceCredits = dataSource._resourceCredits;
4756
+ const credits = czml.credits;
4757
+ if (defined(credits)) {
4758
+ const length = credits.length;
4759
+ for (let i = 0; i < length; i++) {
4760
+ resourceCredits.push(credits[i]);
4761
+ }
4762
+ }
4763
+ }
4764
+
4765
+ sourceUri = Resource.createIfNeeded(sourceUri);
4766
+
4767
+ DataSource.setLoading(dataSource, true);
4768
+
4769
+ return Promise.resolve(promise)
4770
+ .then(function (czml) {
4771
+ return loadCzml(dataSource, czml, sourceUri, clear);
4772
+ })
4773
+ .catch(function (error) {
4774
+ DataSource.setLoading(dataSource, false);
4775
+ dataSource._error.raiseEvent(dataSource, error);
4776
+ console.log(error);
4777
+ return Promise.reject(error);
4778
+ });
4779
+ }
4780
+
4781
+ function loadCzml(dataSource, czml, sourceUri, clear) {
4782
+ DataSource.setLoading(dataSource, true);
4783
+ const entityCollection = dataSource._entityCollection;
4784
+
4785
+ if (clear) {
4786
+ dataSource._version = undefined;
4787
+ dataSource._documentPacket = new DocumentPacket();
4788
+ entityCollection.removeAll();
4789
+ }
4790
+
4791
+ CzmlDataSource._processCzml(
4792
+ czml,
4793
+ entityCollection,
4794
+ sourceUri,
4795
+ undefined,
4796
+ dataSource
4797
+ );
4798
+
4799
+ let raiseChangedEvent = updateClock(dataSource);
4800
+
4801
+ const documentPacket = dataSource._documentPacket;
4802
+ if (
4803
+ defined(documentPacket.name) &&
4804
+ dataSource._name !== documentPacket.name
4805
+ ) {
4806
+ dataSource._name = documentPacket.name;
4807
+ raiseChangedEvent = true;
4808
+ } else if (!defined(dataSource._name) && defined(sourceUri)) {
4809
+ dataSource._name = getFilenameFromUri(sourceUri.getUrlComponent());
4810
+ raiseChangedEvent = true;
4811
+ }
4812
+
4813
+ DataSource.setLoading(dataSource, false);
4814
+ if (raiseChangedEvent) {
4815
+ dataSource._changed.raiseEvent(dataSource);
4816
+ }
4817
+
4818
+ return dataSource;
4819
+ }
4820
+
4821
+ function DocumentPacket() {
4822
+ this.name = undefined;
4823
+ this.clock = undefined;
4824
+ }
4825
+
4826
+ /**
4827
+ * @typedef {Object} CzmlDataSource.LoadOptions
4828
+ *
4829
+ * Initialization options for the <code>load</code> method.
4830
+ *
4831
+ * @property {Resource|string} [sourceUri] Overrides the url to use for resolving relative links.
4832
+ * @property {Credit|string} [credit] A credit for the data source, which is displayed on the canvas.
4833
+ */
4834
+
4835
+ /**
4836
+ * A {@link DataSource} which processes {@link https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/CZML-Guide|CZML}.
4837
+ * @alias CzmlDataSource
4838
+ * @constructor
4839
+ *
4840
+ * @param {String} [name] An optional name for the data source. This value will be overwritten if a loaded document contains a name.
4841
+ *
4842
+ * @demo {@link https://sandcastle.cesium.com/index.html?src=CZML.html|Cesium Sandcastle CZML Demo}
4843
+ */
4844
+ function CzmlDataSource(name) {
4845
+ this._name = name;
4846
+ this._changed = new Event();
4847
+ this._error = new Event();
4848
+ this._isLoading = false;
4849
+ this._loading = new Event();
4850
+ this._clock = undefined;
4851
+ this._documentPacket = new DocumentPacket();
4852
+ this._version = undefined;
4853
+ this._entityCollection = new EntityCollection(this);
4854
+ this._entityCluster = new EntityCluster();
4855
+ this._credit = undefined;
4856
+ this._resourceCredits = [];
4857
+ }
4858
+
4859
+ /**
4860
+ * Creates a Promise to a new instance loaded with the provided CZML data.
4861
+ *
4862
+ * @param {Resource|String|Object} czml A url or CZML object to be processed.
4863
+ * @param {CzmlDataSource.LoadOptions} [options] An object specifying configuration options
4864
+ *
4865
+ * @returns {Promise.<CzmlDataSource>} A promise that resolves to the new instance once the data is processed.
4866
+ */
4867
+ CzmlDataSource.load = function (czml, options) {
4868
+ return new CzmlDataSource().load(czml, options);
4869
+ };
4870
+
4871
+ Object.defineProperties(CzmlDataSource.prototype, {
4872
+ /**
4873
+ * Gets a human-readable name for this instance.
4874
+ * @memberof CzmlDataSource.prototype
4875
+ * @type {String}
4876
+ */
4877
+ name: {
4878
+ get: function () {
4879
+ return this._name;
4880
+ },
4881
+ },
4882
+ /**
4883
+ * Gets the clock settings defined by the loaded CZML. If no clock is explicitly
4884
+ * defined in the CZML, the combined availability of all objects is returned. If
4885
+ * only static data exists, this value is undefined.
4886
+ * @memberof CzmlDataSource.prototype
4887
+ * @type {DataSourceClock}
4888
+ */
4889
+ clock: {
4890
+ get: function () {
4891
+ return this._clock;
4892
+ },
4893
+ },
4894
+ /**
4895
+ * Gets the collection of {@link Entity} instances.
4896
+ * @memberof CzmlDataSource.prototype
4897
+ * @type {EntityCollection}
4898
+ */
4899
+ entities: {
4900
+ get: function () {
4901
+ return this._entityCollection;
4902
+ },
4903
+ },
4904
+ /**
4905
+ * Gets a value indicating if the data source is currently loading data.
4906
+ * @memberof CzmlDataSource.prototype
4907
+ * @type {Boolean}
4908
+ */
4909
+ isLoading: {
4910
+ get: function () {
4911
+ return this._isLoading;
4912
+ },
4913
+ },
4914
+ /**
4915
+ * Gets an event that will be raised when the underlying data changes.
4916
+ * @memberof CzmlDataSource.prototype
4917
+ * @type {Event}
4918
+ */
4919
+ changedEvent: {
4920
+ get: function () {
4921
+ return this._changed;
4922
+ },
4923
+ },
4924
+ /**
4925
+ * Gets an event that will be raised if an error is encountered during processing.
4926
+ * @memberof CzmlDataSource.prototype
4927
+ * @type {Event}
4928
+ */
4929
+ errorEvent: {
4930
+ get: function () {
4931
+ return this._error;
4932
+ },
4933
+ },
4934
+ /**
4935
+ * Gets an event that will be raised when the data source either starts or stops loading.
4936
+ * @memberof CzmlDataSource.prototype
4937
+ * @type {Event}
4938
+ */
4939
+ loadingEvent: {
4940
+ get: function () {
4941
+ return this._loading;
4942
+ },
4943
+ },
4944
+ /**
4945
+ * Gets whether or not this data source should be displayed.
4946
+ * @memberof CzmlDataSource.prototype
4947
+ * @type {Boolean}
4948
+ */
4949
+ show: {
4950
+ get: function () {
4951
+ return this._entityCollection.show;
4952
+ },
4953
+ set: function (value) {
4954
+ this._entityCollection.show = value;
4955
+ },
4956
+ },
4957
+
4958
+ /**
4959
+ * Gets or sets the clustering options for this data source. This object can be shared between multiple data sources.
4960
+ *
4961
+ * @memberof CzmlDataSource.prototype
4962
+ * @type {EntityCluster}
4963
+ */
4964
+ clustering: {
4965
+ get: function () {
4966
+ return this._entityCluster;
4967
+ },
4968
+ set: function (value) {
4969
+ //>>includeStart('debug', pragmas.debug);
4970
+ if (!defined(value)) {
4971
+ throw new DeveloperError("value must be defined.");
4972
+ }
4973
+ //>>includeEnd('debug');
4974
+ this._entityCluster = value;
4975
+ },
4976
+ },
4977
+ /**
4978
+ * Gets the credit that will be displayed for the data source
4979
+ * @memberof CzmlDataSource.prototype
4980
+ * @type {Credit}
4981
+ */
4982
+ credit: {
4983
+ get: function () {
4984
+ return this._credit;
4985
+ },
4986
+ },
4987
+ });
4988
+
4989
+ /**
4990
+ * @callback CzmlDataSource.UpdaterFunction
4991
+ *
4992
+ * A CZML processing function that adds or updates entities in the provided
4993
+ * collection based on the provided CZML packet.
4994
+ *
4995
+ * @param {Entity} entity
4996
+ * @param {Object} packet
4997
+ * @param {EntityCollection} entityCollection
4998
+ * @param {string} sourceUri
4999
+ */
5000
+
5001
+ /**
5002
+ * Gets the array of CZML processing functions.
5003
+ * @memberof CzmlDataSource
5004
+ * @type {Array.<CzmlDataSource.UpdaterFunction>}
5005
+ */
5006
+ CzmlDataSource.updaters = [
5007
+ processBillboard, //
5008
+ processBox, //
5009
+ processCorridor, //
5010
+ processCylinder, //
5011
+ processEllipse, //
5012
+ processEllipsoid, //
5013
+ processLabel, //
5014
+ processModel, //
5015
+ processName, //
5016
+ processDescription, //
5017
+ processPath, //
5018
+ processPoint, //
5019
+ processPolygon, //
5020
+ processPolyline, //
5021
+ processPolylineVolume, //
5022
+ processProperties, //
5023
+ processRectangle, //
5024
+ processPosition, //
5025
+ processTileset, //
5026
+ processViewFrom, //
5027
+ processWall, //
5028
+ processOrientation, //
5029
+ processAvailability,
5030
+ ];
5031
+
5032
+ /**
5033
+ * Processes the provided url or CZML object without clearing any existing data.
5034
+ *
5035
+ * @param {Resource|String|Object} czml A url or CZML object to be processed.
5036
+ * @param {CzmlDataSource.LoadOptions} [options] An object specifying configuration options
5037
+ *
5038
+ * @returns {Promise.<CzmlDataSource>} A promise that resolves to this instances once the data is processed.
5039
+ */
5040
+ CzmlDataSource.prototype.process = function (czml, options) {
5041
+ return load(this, czml, options, false);
5042
+ };
5043
+
5044
+ /**
5045
+ * Loads the provided url or CZML object, replacing any existing data.
5046
+ *
5047
+ * @param {Resource|String|Object} czml A url or CZML object to be processed.
5048
+ * @param {CzmlDataSource.LoadOptions} [options] An object specifying configuration options
5049
+ *
5050
+ * @returns {Promise.<CzmlDataSource>} A promise that resolves to this instances once the data is processed.
5051
+ */
5052
+ CzmlDataSource.prototype.load = function (czml, options) {
5053
+ return load(this, czml, options, true);
5054
+ };
5055
+
5056
+ /**
5057
+ * Updates the data source to the provided time. This function is optional and
5058
+ * is not required to be implemented. It is provided for data sources which
5059
+ * retrieve data based on the current animation time or scene state.
5060
+ * If implemented, update will be called by {@link DataSourceDisplay} once a frame.
5061
+ *
5062
+ * @param {JulianDate} time The simulation time.
5063
+ * @returns {Boolean} True if this data source is ready to be displayed at the provided time, false otherwise.
5064
+ */
5065
+ CzmlDataSource.prototype.update = function (time) {
5066
+ return true;
5067
+ };
5068
+
5069
+ /**
5070
+ * A helper function used by custom CZML updater functions
5071
+ * which creates or updates a {@link Property} from a CZML packet.
5072
+ * @function
5073
+ *
5074
+ * @param {Function} type The constructor function for the property being processed.
5075
+ * @param {Object} object The object on which the property will be added or updated.
5076
+ * @param {String} propertyName The name of the property on the object.
5077
+ * @param {Object} packetData The CZML packet being processed.
5078
+ * @param {TimeInterval} interval A constraining interval for which the data is valid.
5079
+ * @param {String} sourceUri The originating uri of the data being processed.
5080
+ * @param {EntityCollection} entityCollection The collection being processsed.
5081
+ */
5082
+ CzmlDataSource.processPacketData = processPacketData;
5083
+
5084
+ /**
5085
+ * A helper function used by custom CZML updater functions
5086
+ * which creates or updates a {@link PositionProperty} from a CZML packet.
5087
+ * @function
5088
+ *
5089
+ * @param {Object} object The object on which the property will be added or updated.
5090
+ * @param {String} propertyName The name of the property on the object.
5091
+ * @param {Object} packetData The CZML packet being processed.
5092
+ * @param {TimeInterval} interval A constraining interval for which the data is valid.
5093
+ * @param {String} sourceUri The originating uri of the data being processed.
5094
+ * @param {EntityCollection} entityCollection The collection being processsed.
5095
+ */
5096
+ CzmlDataSource.processPositionPacketData = processPositionPacketData;
5097
+
5098
+ /**
5099
+ * A helper function used by custom CZML updater functions
5100
+ * which creates or updates a {@link MaterialProperty} from a CZML packet.
5101
+ * @function
5102
+ *
5103
+ * @param {Object} object The object on which the property will be added or updated.
5104
+ * @param {String} propertyName The name of the property on the object.
5105
+ * @param {Object} packetData The CZML packet being processed.
5106
+ * @param {TimeInterval} interval A constraining interval for which the data is valid.
5107
+ * @param {String} sourceUri The originating uri of the data being processed.
5108
+ * @param {EntityCollection} entityCollection The collection being processsed.
5109
+ */
5110
+ CzmlDataSource.processMaterialPacketData = processMaterialPacketData;
5111
+
5112
+ CzmlDataSource._processCzml = function (
5113
+ czml,
5114
+ entityCollection,
5115
+ sourceUri,
5116
+ updaterFunctions,
5117
+ dataSource
5118
+ ) {
5119
+ updaterFunctions = defaultValue(updaterFunctions, CzmlDataSource.updaters);
5120
+
5121
+ if (Array.isArray(czml)) {
5122
+ for (let i = 0, len = czml.length; i < len; ++i) {
5123
+ processCzmlPacket(
5124
+ czml[i],
5125
+ entityCollection,
5126
+ updaterFunctions,
5127
+ sourceUri,
5128
+ dataSource
5129
+ );
5130
+ }
5131
+ } else {
5132
+ processCzmlPacket(
5133
+ czml,
5134
+ entityCollection,
5135
+ updaterFunctions,
5136
+ sourceUri,
5137
+ dataSource
5138
+ );
5139
+ }
5140
+ };
5141
+ export default CzmlDataSource;