@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,2536 @@
1
+ import BoundingSphere from "../Core/BoundingSphere.js";
2
+ import Cartesian2 from "../Core/Cartesian2.js";
3
+ import Cartesian3 from "../Core/Cartesian3.js";
4
+ import Cartesian4 from "../Core/Cartesian4.js";
5
+ import Cartographic from "../Core/Cartographic.js";
6
+ import clone from "../Core/clone.js";
7
+ import Color from "../Core/Color.js";
8
+ import combine from "../Core/combine.js";
9
+ import ComponentDatatype from "../Core/ComponentDatatype.js";
10
+ import defaultValue from "../Core/defaultValue.js";
11
+ import defined from "../Core/defined.js";
12
+ import destroyObject from "../Core/destroyObject.js";
13
+ import DeveloperError from "../Core/DeveloperError.js";
14
+ import EncodedCartesian3 from "../Core/EncodedCartesian3.js";
15
+ import FeatureDetection from "../Core/FeatureDetection.js";
16
+ import Geometry from "../Core/Geometry.js";
17
+ import GeometryAttribute from "../Core/GeometryAttribute.js";
18
+ import GeometryAttributes from "../Core/GeometryAttributes.js";
19
+ import GeometryOffsetAttribute from "../Core/GeometryOffsetAttribute.js";
20
+ import Intersect from "../Core/Intersect.js";
21
+ import Matrix4 from "../Core/Matrix4.js";
22
+ import Plane from "../Core/Plane.js";
23
+ import RuntimeError from "../Core/RuntimeError.js";
24
+ import subdivideArray from "../Core/subdivideArray.js";
25
+ import TaskProcessor from "../Core/TaskProcessor.js";
26
+ import BufferUsage from "../Renderer/BufferUsage.js";
27
+ import ContextLimits from "../Renderer/ContextLimits.js";
28
+ import DrawCommand from "../Renderer/DrawCommand.js";
29
+ import Pass from "../Renderer/Pass.js";
30
+ import RenderState from "../Renderer/RenderState.js";
31
+ import ShaderProgram from "../Renderer/ShaderProgram.js";
32
+ import ShaderSource from "../Renderer/ShaderSource.js";
33
+ import VertexArray from "../Renderer/VertexArray.js";
34
+ import BatchTable from "./BatchTable.js";
35
+ import CullFace from "./CullFace.js";
36
+ import DepthFunction from "./DepthFunction.js";
37
+ import PrimitivePipeline from "./PrimitivePipeline.js";
38
+ import PrimitiveState from "./PrimitiveState.js";
39
+ import SceneMode from "./SceneMode.js";
40
+ import ShadowMode from "./ShadowMode.js";
41
+
42
+ /**
43
+ * A primitive represents geometry in the {@link Scene}. The geometry can be from a single {@link GeometryInstance}
44
+ * as shown in example 1 below, or from an array of instances, even if the geometry is from different
45
+ * geometry types, e.g., an {@link RectangleGeometry} and an {@link EllipsoidGeometry} as shown in Code Example 2.
46
+ * <p>
47
+ * A primitive combines geometry instances with an {@link Appearance} that describes the full shading, including
48
+ * {@link Material} and {@link RenderState}. Roughly, the geometry instance defines the structure and placement,
49
+ * and the appearance defines the visual characteristics. Decoupling geometry and appearance allows us to mix
50
+ * and match most of them and add a new geometry or appearance independently of each other.
51
+ * </p>
52
+ * <p>
53
+ * Combining multiple instances into one primitive is called batching, and significantly improves performance for static data.
54
+ * Instances can be individually picked; {@link Scene#pick} returns their {@link GeometryInstance#id}. Using
55
+ * per-instance appearances like {@link PerInstanceColorAppearance}, each instance can also have a unique color.
56
+ * </p>
57
+ * <p>
58
+ * {@link Geometry} can either be created and batched on a web worker or the main thread. The first two examples
59
+ * show geometry that will be created on a web worker by using the descriptions of the geometry. The third example
60
+ * shows how to create the geometry on the main thread by explicitly calling the <code>createGeometry</code> method.
61
+ * </p>
62
+ *
63
+ * @alias Primitive
64
+ * @constructor
65
+ *
66
+ * @param {Object} [options] Object with the following properties:
67
+ * @param {GeometryInstance[]|GeometryInstance} [options.geometryInstances] The geometry instances - or a single geometry instance - to render.
68
+ * @param {Appearance} [options.appearance] The appearance used to render the primitive.
69
+ * @param {Appearance} [options.depthFailAppearance] The appearance used to shade this primitive when it fails the depth test.
70
+ * @param {Boolean} [options.show=true] Determines if this primitive will be shown.
71
+ * @param {Matrix4} [options.modelMatrix=Matrix4.IDENTITY] The 4x4 transformation matrix that transforms the primitive (all geometry instances) from model to world coordinates.
72
+ * @param {Boolean} [options.vertexCacheOptimize=false] When <code>true</code>, geometry vertices are optimized for the pre and post-vertex-shader caches.
73
+ * @param {Boolean} [options.interleave=false] When <code>true</code>, geometry vertex attributes are interleaved, which can slightly improve rendering performance but increases load time.
74
+ * @param {Boolean} [options.compressVertices=true] When <code>true</code>, the geometry vertices are compressed, which will save memory.
75
+ * @param {Boolean} [options.releaseGeometryInstances=true] When <code>true</code>, the primitive does not keep a reference to the input <code>geometryInstances</code> to save memory.
76
+ * @param {Boolean} [options.allowPicking=true] When <code>true</code>, each geometry instance will only be pickable with {@link Scene#pick}. When <code>false</code>, GPU memory is saved.
77
+ * @param {Boolean} [options.cull=true] When <code>true</code>, the renderer frustum culls and horizon culls the primitive's commands based on their bounding volume. Set this to <code>false</code> for a small performance gain if you are manually culling the primitive.
78
+ * @param {Boolean} [options.asynchronous=true] Determines if the primitive will be created asynchronously or block until ready.
79
+ * @param {Boolean} [options.debugShowBoundingVolume=false] For debugging only. Determines if this primitive's commands' bounding spheres are shown.
80
+ * @param {ShadowMode} [options.shadows=ShadowMode.DISABLED] Determines whether this primitive casts or receives shadows from light sources.
81
+ *
82
+ * @example
83
+ * // 1. Draw a translucent ellipse on the surface with a checkerboard pattern
84
+ * const instance = new Cesium.GeometryInstance({
85
+ * geometry : new Cesium.EllipseGeometry({
86
+ * center : Cesium.Cartesian3.fromDegrees(-100.0, 20.0),
87
+ * semiMinorAxis : 500000.0,
88
+ * semiMajorAxis : 1000000.0,
89
+ * rotation : Cesium.Math.PI_OVER_FOUR,
90
+ * vertexFormat : Cesium.VertexFormat.POSITION_AND_ST
91
+ * }),
92
+ * id : 'object returned when this instance is picked and to get/set per-instance attributes'
93
+ * });
94
+ * scene.primitives.add(new Cesium.Primitive({
95
+ * geometryInstances : instance,
96
+ * appearance : new Cesium.EllipsoidSurfaceAppearance({
97
+ * material : Cesium.Material.fromType('Checkerboard')
98
+ * })
99
+ * }));
100
+ *
101
+ * @example
102
+ * // 2. Draw different instances each with a unique color
103
+ * const rectangleInstance = new Cesium.GeometryInstance({
104
+ * geometry : new Cesium.RectangleGeometry({
105
+ * rectangle : Cesium.Rectangle.fromDegrees(-140.0, 30.0, -100.0, 40.0),
106
+ * vertexFormat : Cesium.PerInstanceColorAppearance.VERTEX_FORMAT
107
+ * }),
108
+ * id : 'rectangle',
109
+ * attributes : {
110
+ * color : new Cesium.ColorGeometryInstanceAttribute(0.0, 1.0, 1.0, 0.5)
111
+ * }
112
+ * });
113
+ * const ellipsoidInstance = new Cesium.GeometryInstance({
114
+ * geometry : new Cesium.EllipsoidGeometry({
115
+ * radii : new Cesium.Cartesian3(500000.0, 500000.0, 1000000.0),
116
+ * vertexFormat : Cesium.VertexFormat.POSITION_AND_NORMAL
117
+ * }),
118
+ * modelMatrix : Cesium.Matrix4.multiplyByTranslation(Cesium.Transforms.eastNorthUpToFixedFrame(
119
+ * Cesium.Cartesian3.fromDegrees(-95.59777, 40.03883)), new Cesium.Cartesian3(0.0, 0.0, 500000.0), new Cesium.Matrix4()),
120
+ * id : 'ellipsoid',
121
+ * attributes : {
122
+ * color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.AQUA)
123
+ * }
124
+ * });
125
+ * scene.primitives.add(new Cesium.Primitive({
126
+ * geometryInstances : [rectangleInstance, ellipsoidInstance],
127
+ * appearance : new Cesium.PerInstanceColorAppearance()
128
+ * }));
129
+ *
130
+ * @example
131
+ * // 3. Create the geometry on the main thread.
132
+ * scene.primitives.add(new Cesium.Primitive({
133
+ * geometryInstances : new Cesium.GeometryInstance({
134
+ * geometry : Cesium.EllipsoidGeometry.createGeometry(new Cesium.EllipsoidGeometry({
135
+ * radii : new Cesium.Cartesian3(500000.0, 500000.0, 1000000.0),
136
+ * vertexFormat : Cesium.VertexFormat.POSITION_AND_NORMAL
137
+ * })),
138
+ * modelMatrix : Cesium.Matrix4.multiplyByTranslation(Cesium.Transforms.eastNorthUpToFixedFrame(
139
+ * Cesium.Cartesian3.fromDegrees(-95.59777, 40.03883)), new Cesium.Cartesian3(0.0, 0.0, 500000.0), new Cesium.Matrix4()),
140
+ * id : 'ellipsoid',
141
+ * attributes : {
142
+ * color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.AQUA)
143
+ * }
144
+ * }),
145
+ * appearance : new Cesium.PerInstanceColorAppearance(),
146
+ * asynchronous : false
147
+ * }));
148
+ *
149
+ * @see GeometryInstance
150
+ * @see Appearance
151
+ * @see ClassificationPrimitive
152
+ * @see GroundPrimitive
153
+ */
154
+ function Primitive(options) {
155
+ options = defaultValue(options, defaultValue.EMPTY_OBJECT);
156
+
157
+ /**
158
+ * The geometry instances rendered with this primitive. This may
159
+ * be <code>undefined</code> if <code>options.releaseGeometryInstances</code>
160
+ * is <code>true</code> when the primitive is constructed.
161
+ * <p>
162
+ * Changing this property after the primitive is rendered has no effect.
163
+ * </p>
164
+ *
165
+ * @readonly
166
+ * @type GeometryInstance[]|GeometryInstance
167
+ *
168
+ * @default undefined
169
+ */
170
+ this.geometryInstances = options.geometryInstances;
171
+
172
+ /**
173
+ * The {@link Appearance} used to shade this primitive. Each geometry
174
+ * instance is shaded with the same appearance. Some appearances, like
175
+ * {@link PerInstanceColorAppearance} allow giving each instance unique
176
+ * properties.
177
+ *
178
+ * @type Appearance
179
+ *
180
+ * @default undefined
181
+ */
182
+ this.appearance = options.appearance;
183
+ this._appearance = undefined;
184
+ this._material = undefined;
185
+
186
+ /**
187
+ * The {@link Appearance} used to shade this primitive when it fails the depth test. Each geometry
188
+ * instance is shaded with the same appearance. Some appearances, like
189
+ * {@link PerInstanceColorAppearance} allow giving each instance unique
190
+ * properties.
191
+ *
192
+ * <p>
193
+ * When using an appearance that requires a color attribute, like PerInstanceColorAppearance,
194
+ * add a depthFailColor per-instance attribute instead.
195
+ * </p>
196
+ *
197
+ * <p>
198
+ * Requires the EXT_frag_depth WebGL extension to render properly. If the extension is not supported,
199
+ * there may be artifacts.
200
+ * </p>
201
+ * @type Appearance
202
+ *
203
+ * @default undefined
204
+ */
205
+ this.depthFailAppearance = options.depthFailAppearance;
206
+ this._depthFailAppearance = undefined;
207
+ this._depthFailMaterial = undefined;
208
+
209
+ /**
210
+ * The 4x4 transformation matrix that transforms the primitive (all geometry instances) from model to world coordinates.
211
+ * When this is the identity matrix, the primitive is drawn in world coordinates, i.e., Earth's WGS84 coordinates.
212
+ * Local reference frames can be used by providing a different transformation matrix, like that returned
213
+ * by {@link Transforms.eastNorthUpToFixedFrame}.
214
+ *
215
+ * <p>
216
+ * This property is only supported in 3D mode.
217
+ * </p>
218
+ *
219
+ * @type Matrix4
220
+ *
221
+ * @default Matrix4.IDENTITY
222
+ *
223
+ * @example
224
+ * const origin = Cesium.Cartesian3.fromDegrees(-95.0, 40.0, 200000.0);
225
+ * p.modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(origin);
226
+ */
227
+ this.modelMatrix = Matrix4.clone(
228
+ defaultValue(options.modelMatrix, Matrix4.IDENTITY)
229
+ );
230
+ this._modelMatrix = new Matrix4();
231
+
232
+ /**
233
+ * Determines if the primitive will be shown. This affects all geometry
234
+ * instances in the primitive.
235
+ *
236
+ * @type Boolean
237
+ *
238
+ * @default true
239
+ */
240
+ this.show = defaultValue(options.show, true);
241
+
242
+ this._vertexCacheOptimize = defaultValue(options.vertexCacheOptimize, false);
243
+ this._interleave = defaultValue(options.interleave, false);
244
+ this._releaseGeometryInstances = defaultValue(
245
+ options.releaseGeometryInstances,
246
+ true
247
+ );
248
+ this._allowPicking = defaultValue(options.allowPicking, true);
249
+ this._asynchronous = defaultValue(options.asynchronous, true);
250
+ this._compressVertices = defaultValue(options.compressVertices, true);
251
+
252
+ /**
253
+ * When <code>true</code>, the renderer frustum culls and horizon culls the primitive's commands
254
+ * based on their bounding volume. Set this to <code>false</code> for a small performance gain
255
+ * if you are manually culling the primitive.
256
+ *
257
+ * @type {Boolean}
258
+ *
259
+ * @default true
260
+ */
261
+ this.cull = defaultValue(options.cull, true);
262
+
263
+ /**
264
+ * This property is for debugging only; it is not for production use nor is it optimized.
265
+ * <p>
266
+ * Draws the bounding sphere for each draw command in the primitive.
267
+ * </p>
268
+ *
269
+ * @type {Boolean}
270
+ *
271
+ * @default false
272
+ */
273
+ this.debugShowBoundingVolume = defaultValue(
274
+ options.debugShowBoundingVolume,
275
+ false
276
+ );
277
+
278
+ /**
279
+ * @private
280
+ */
281
+ this.rtcCenter = options.rtcCenter;
282
+
283
+ //>>includeStart('debug', pragmas.debug);
284
+ if (
285
+ defined(this.rtcCenter) &&
286
+ (!defined(this.geometryInstances) ||
287
+ (Array.isArray(this.geometryInstances) &&
288
+ this.geometryInstances.length !== 1))
289
+ ) {
290
+ throw new DeveloperError(
291
+ "Relative-to-center rendering only supports one geometry instance."
292
+ );
293
+ }
294
+ //>>includeEnd('debug');
295
+
296
+ /**
297
+ * Determines whether this primitive casts or receives shadows from light sources.
298
+ *
299
+ * @type {ShadowMode}
300
+ *
301
+ * @default ShadowMode.DISABLED
302
+ */
303
+ this.shadows = defaultValue(options.shadows, ShadowMode.DISABLED);
304
+
305
+ this._translucent = undefined;
306
+
307
+ this._state = PrimitiveState.READY;
308
+ this._geometries = [];
309
+ this._error = undefined;
310
+ this._numberOfInstances = 0;
311
+
312
+ this._boundingSpheres = [];
313
+ this._boundingSphereWC = [];
314
+ this._boundingSphereCV = [];
315
+ this._boundingSphere2D = [];
316
+ this._boundingSphereMorph = [];
317
+ this._perInstanceAttributeCache = [];
318
+ this._instanceIds = [];
319
+ this._lastPerInstanceAttributeIndex = 0;
320
+
321
+ this._va = [];
322
+ this._attributeLocations = undefined;
323
+ this._primitiveType = undefined;
324
+
325
+ this._frontFaceRS = undefined;
326
+ this._backFaceRS = undefined;
327
+ this._sp = undefined;
328
+
329
+ this._depthFailAppearance = undefined;
330
+ this._spDepthFail = undefined;
331
+ this._frontFaceDepthFailRS = undefined;
332
+ this._backFaceDepthFailRS = undefined;
333
+
334
+ this._pickIds = [];
335
+
336
+ this._colorCommands = [];
337
+ this._pickCommands = [];
338
+
339
+ this._createBoundingVolumeFunction = options._createBoundingVolumeFunction;
340
+ this._createRenderStatesFunction = options._createRenderStatesFunction;
341
+ this._createShaderProgramFunction = options._createShaderProgramFunction;
342
+ this._createCommandsFunction = options._createCommandsFunction;
343
+ this._updateAndQueueCommandsFunction =
344
+ options._updateAndQueueCommandsFunction;
345
+
346
+ this._createPickOffsets = options._createPickOffsets;
347
+ this._pickOffsets = undefined;
348
+
349
+ this._createGeometryResults = undefined;
350
+ this._ready = false;
351
+
352
+ const primitive = this;
353
+ this._readyPromise = new Promise((resolve, reject) => {
354
+ primitive._completeLoad = (frameState, state, error) => {
355
+ this._error = error;
356
+ this._state = state;
357
+ frameState.afterRender.push(function () {
358
+ primitive._ready =
359
+ primitive._state === PrimitiveState.COMPLETE ||
360
+ primitive._state === PrimitiveState.FAILED;
361
+ if (!defined(error)) {
362
+ resolve(primitive);
363
+ return true;
364
+ }
365
+ reject(error);
366
+ });
367
+ };
368
+ });
369
+
370
+ this._batchTable = undefined;
371
+ this._batchTableAttributeIndices = undefined;
372
+ this._offsetInstanceExtend = undefined;
373
+ this._batchTableOffsetAttribute2DIndex = undefined;
374
+ this._batchTableOffsetsUpdated = false;
375
+ this._instanceBoundingSpheres = undefined;
376
+ this._instanceBoundingSpheresCV = undefined;
377
+ this._tempBoundingSpheres = undefined;
378
+ this._recomputeBoundingSpheres = false;
379
+ this._batchTableBoundingSpheresUpdated = false;
380
+ this._batchTableBoundingSphereAttributeIndices = undefined;
381
+ }
382
+
383
+ Object.defineProperties(Primitive.prototype, {
384
+ /**
385
+ * When <code>true</code>, geometry vertices are optimized for the pre and post-vertex-shader caches.
386
+ *
387
+ * @memberof Primitive.prototype
388
+ *
389
+ * @type {Boolean}
390
+ * @readonly
391
+ *
392
+ * @default true
393
+ */
394
+ vertexCacheOptimize: {
395
+ get: function () {
396
+ return this._vertexCacheOptimize;
397
+ },
398
+ },
399
+
400
+ /**
401
+ * Determines if geometry vertex attributes are interleaved, which can slightly improve rendering performance.
402
+ *
403
+ * @memberof Primitive.prototype
404
+ *
405
+ * @type {Boolean}
406
+ * @readonly
407
+ *
408
+ * @default false
409
+ */
410
+ interleave: {
411
+ get: function () {
412
+ return this._interleave;
413
+ },
414
+ },
415
+
416
+ /**
417
+ * When <code>true</code>, the primitive does not keep a reference to the input <code>geometryInstances</code> to save memory.
418
+ *
419
+ * @memberof Primitive.prototype
420
+ *
421
+ * @type {Boolean}
422
+ * @readonly
423
+ *
424
+ * @default true
425
+ */
426
+ releaseGeometryInstances: {
427
+ get: function () {
428
+ return this._releaseGeometryInstances;
429
+ },
430
+ },
431
+
432
+ /**
433
+ * When <code>true</code>, each geometry instance will only be pickable with {@link Scene#pick}. When <code>false</code>, GPU memory is saved. *
434
+ *
435
+ * @memberof Primitive.prototype
436
+ *
437
+ * @type {Boolean}
438
+ * @readonly
439
+ *
440
+ * @default true
441
+ */
442
+ allowPicking: {
443
+ get: function () {
444
+ return this._allowPicking;
445
+ },
446
+ },
447
+
448
+ /**
449
+ * Determines if the geometry instances will be created and batched on a web worker.
450
+ *
451
+ * @memberof Primitive.prototype
452
+ *
453
+ * @type {Boolean}
454
+ * @readonly
455
+ *
456
+ * @default true
457
+ */
458
+ asynchronous: {
459
+ get: function () {
460
+ return this._asynchronous;
461
+ },
462
+ },
463
+
464
+ /**
465
+ * When <code>true</code>, geometry vertices are compressed, which will save memory.
466
+ *
467
+ * @memberof Primitive.prototype
468
+ *
469
+ * @type {Boolean}
470
+ * @readonly
471
+ *
472
+ * @default true
473
+ */
474
+ compressVertices: {
475
+ get: function () {
476
+ return this._compressVertices;
477
+ },
478
+ },
479
+
480
+ /**
481
+ * Determines if the primitive is complete and ready to render. If this property is
482
+ * true, the primitive will be rendered the next time that {@link Primitive#update}
483
+ * is called.
484
+ *
485
+ * @memberof Primitive.prototype
486
+ *
487
+ * @type {Boolean}
488
+ * @readonly
489
+ */
490
+ ready: {
491
+ get: function () {
492
+ return this._ready;
493
+ },
494
+ },
495
+
496
+ /**
497
+ * Gets a promise that resolves when the primitive is ready to render.
498
+ * @memberof Primitive.prototype
499
+ * @type {Promise.<Primitive>}
500
+ * @readonly
501
+ */
502
+ readyPromise: {
503
+ get: function () {
504
+ return this._readyPromise;
505
+ },
506
+ },
507
+ });
508
+
509
+ function getCommonPerInstanceAttributeNames(instances) {
510
+ const length = instances.length;
511
+
512
+ const attributesInAllInstances = [];
513
+ const attributes0 = instances[0].attributes;
514
+ let name;
515
+
516
+ for (name in attributes0) {
517
+ if (attributes0.hasOwnProperty(name) && defined(attributes0[name])) {
518
+ const attribute = attributes0[name];
519
+ let inAllInstances = true;
520
+
521
+ // Does this same attribute exist in all instances?
522
+ for (let i = 1; i < length; ++i) {
523
+ const otherAttribute = instances[i].attributes[name];
524
+
525
+ if (
526
+ !defined(otherAttribute) ||
527
+ attribute.componentDatatype !== otherAttribute.componentDatatype ||
528
+ attribute.componentsPerAttribute !==
529
+ otherAttribute.componentsPerAttribute ||
530
+ attribute.normalize !== otherAttribute.normalize
531
+ ) {
532
+ inAllInstances = false;
533
+ break;
534
+ }
535
+ }
536
+
537
+ if (inAllInstances) {
538
+ attributesInAllInstances.push(name);
539
+ }
540
+ }
541
+ }
542
+
543
+ return attributesInAllInstances;
544
+ }
545
+
546
+ const scratchGetAttributeCartesian2 = new Cartesian2();
547
+ const scratchGetAttributeCartesian3 = new Cartesian3();
548
+ const scratchGetAttributeCartesian4 = new Cartesian4();
549
+
550
+ function getAttributeValue(value) {
551
+ const componentsPerAttribute = value.length;
552
+ if (componentsPerAttribute === 1) {
553
+ return value[0];
554
+ } else if (componentsPerAttribute === 2) {
555
+ return Cartesian2.unpack(value, 0, scratchGetAttributeCartesian2);
556
+ } else if (componentsPerAttribute === 3) {
557
+ return Cartesian3.unpack(value, 0, scratchGetAttributeCartesian3);
558
+ } else if (componentsPerAttribute === 4) {
559
+ return Cartesian4.unpack(value, 0, scratchGetAttributeCartesian4);
560
+ }
561
+ }
562
+
563
+ function createBatchTable(primitive, context) {
564
+ const geometryInstances = primitive.geometryInstances;
565
+ const instances = Array.isArray(geometryInstances)
566
+ ? geometryInstances
567
+ : [geometryInstances];
568
+ const numberOfInstances = instances.length;
569
+ if (numberOfInstances === 0) {
570
+ return;
571
+ }
572
+
573
+ const names = getCommonPerInstanceAttributeNames(instances);
574
+ const length = names.length;
575
+
576
+ const attributes = [];
577
+ const attributeIndices = {};
578
+ const boundingSphereAttributeIndices = {};
579
+ let offset2DIndex;
580
+
581
+ const firstInstance = instances[0];
582
+ let instanceAttributes = firstInstance.attributes;
583
+
584
+ let i;
585
+ let name;
586
+ let attribute;
587
+
588
+ for (i = 0; i < length; ++i) {
589
+ name = names[i];
590
+ attribute = instanceAttributes[name];
591
+
592
+ attributeIndices[name] = i;
593
+ attributes.push({
594
+ functionName: `czm_batchTable_${name}`,
595
+ componentDatatype: attribute.componentDatatype,
596
+ componentsPerAttribute: attribute.componentsPerAttribute,
597
+ normalize: attribute.normalize,
598
+ });
599
+ }
600
+
601
+ if (names.indexOf("distanceDisplayCondition") !== -1) {
602
+ attributes.push(
603
+ {
604
+ functionName: "czm_batchTable_boundingSphereCenter3DHigh",
605
+ componentDatatype: ComponentDatatype.FLOAT,
606
+ componentsPerAttribute: 3,
607
+ },
608
+ {
609
+ functionName: "czm_batchTable_boundingSphereCenter3DLow",
610
+ componentDatatype: ComponentDatatype.FLOAT,
611
+ componentsPerAttribute: 3,
612
+ },
613
+ {
614
+ functionName: "czm_batchTable_boundingSphereCenter2DHigh",
615
+ componentDatatype: ComponentDatatype.FLOAT,
616
+ componentsPerAttribute: 3,
617
+ },
618
+ {
619
+ functionName: "czm_batchTable_boundingSphereCenter2DLow",
620
+ componentDatatype: ComponentDatatype.FLOAT,
621
+ componentsPerAttribute: 3,
622
+ },
623
+ {
624
+ functionName: "czm_batchTable_boundingSphereRadius",
625
+ componentDatatype: ComponentDatatype.FLOAT,
626
+ componentsPerAttribute: 1,
627
+ }
628
+ );
629
+ boundingSphereAttributeIndices.center3DHigh = attributes.length - 5;
630
+ boundingSphereAttributeIndices.center3DLow = attributes.length - 4;
631
+ boundingSphereAttributeIndices.center2DHigh = attributes.length - 3;
632
+ boundingSphereAttributeIndices.center2DLow = attributes.length - 2;
633
+ boundingSphereAttributeIndices.radius = attributes.length - 1;
634
+ }
635
+
636
+ if (names.indexOf("offset") !== -1) {
637
+ attributes.push({
638
+ functionName: "czm_batchTable_offset2D",
639
+ componentDatatype: ComponentDatatype.FLOAT,
640
+ componentsPerAttribute: 3,
641
+ });
642
+ offset2DIndex = attributes.length - 1;
643
+ }
644
+
645
+ attributes.push({
646
+ functionName: "czm_batchTable_pickColor",
647
+ componentDatatype: ComponentDatatype.UNSIGNED_BYTE,
648
+ componentsPerAttribute: 4,
649
+ normalize: true,
650
+ });
651
+
652
+ const attributesLength = attributes.length;
653
+ const batchTable = new BatchTable(context, attributes, numberOfInstances);
654
+
655
+ for (i = 0; i < numberOfInstances; ++i) {
656
+ const instance = instances[i];
657
+ instanceAttributes = instance.attributes;
658
+
659
+ for (let j = 0; j < length; ++j) {
660
+ name = names[j];
661
+ attribute = instanceAttributes[name];
662
+ const value = getAttributeValue(attribute.value);
663
+ const attributeIndex = attributeIndices[name];
664
+ batchTable.setBatchedAttribute(i, attributeIndex, value);
665
+ }
666
+
667
+ const pickObject = {
668
+ primitive: defaultValue(instance.pickPrimitive, primitive),
669
+ };
670
+
671
+ if (defined(instance.id)) {
672
+ pickObject.id = instance.id;
673
+ }
674
+
675
+ const pickId = context.createPickId(pickObject);
676
+ primitive._pickIds.push(pickId);
677
+
678
+ const pickColor = pickId.color;
679
+ const color = scratchGetAttributeCartesian4;
680
+ color.x = Color.floatToByte(pickColor.red);
681
+ color.y = Color.floatToByte(pickColor.green);
682
+ color.z = Color.floatToByte(pickColor.blue);
683
+ color.w = Color.floatToByte(pickColor.alpha);
684
+
685
+ batchTable.setBatchedAttribute(i, attributesLength - 1, color);
686
+ }
687
+
688
+ primitive._batchTable = batchTable;
689
+ primitive._batchTableAttributeIndices = attributeIndices;
690
+ primitive._batchTableBoundingSphereAttributeIndices = boundingSphereAttributeIndices;
691
+ primitive._batchTableOffsetAttribute2DIndex = offset2DIndex;
692
+ }
693
+
694
+ function cloneAttribute(attribute) {
695
+ let clonedValues;
696
+ if (Array.isArray(attribute.values)) {
697
+ clonedValues = attribute.values.slice(0);
698
+ } else {
699
+ clonedValues = new attribute.values.constructor(attribute.values);
700
+ }
701
+ return new GeometryAttribute({
702
+ componentDatatype: attribute.componentDatatype,
703
+ componentsPerAttribute: attribute.componentsPerAttribute,
704
+ normalize: attribute.normalize,
705
+ values: clonedValues,
706
+ });
707
+ }
708
+
709
+ function cloneGeometry(geometry) {
710
+ const attributes = geometry.attributes;
711
+ const newAttributes = new GeometryAttributes();
712
+ for (const property in attributes) {
713
+ if (attributes.hasOwnProperty(property) && defined(attributes[property])) {
714
+ newAttributes[property] = cloneAttribute(attributes[property]);
715
+ }
716
+ }
717
+
718
+ let indices;
719
+ if (defined(geometry.indices)) {
720
+ const sourceValues = geometry.indices;
721
+ if (Array.isArray(sourceValues)) {
722
+ indices = sourceValues.slice(0);
723
+ } else {
724
+ indices = new sourceValues.constructor(sourceValues);
725
+ }
726
+ }
727
+
728
+ return new Geometry({
729
+ attributes: newAttributes,
730
+ indices: indices,
731
+ primitiveType: geometry.primitiveType,
732
+ boundingSphere: BoundingSphere.clone(geometry.boundingSphere),
733
+ });
734
+ }
735
+
736
+ function cloneInstance(instance, geometry) {
737
+ return {
738
+ geometry: geometry,
739
+ attributes: instance.attributes,
740
+ modelMatrix: Matrix4.clone(instance.modelMatrix),
741
+ pickPrimitive: instance.pickPrimitive,
742
+ id: instance.id,
743
+ };
744
+ }
745
+
746
+ const positionRegex = /attribute\s+vec(?:3|4)\s+(.*)3DHigh;/g;
747
+
748
+ Primitive._modifyShaderPosition = function (
749
+ primitive,
750
+ vertexShaderSource,
751
+ scene3DOnly
752
+ ) {
753
+ let match;
754
+
755
+ let forwardDecl = "";
756
+ let attributes = "";
757
+ let computeFunctions = "";
758
+
759
+ while ((match = positionRegex.exec(vertexShaderSource)) !== null) {
760
+ const name = match[1];
761
+
762
+ const functionName = `vec4 czm_compute${name[0].toUpperCase()}${name.substr(
763
+ 1
764
+ )}()`;
765
+
766
+ // Don't forward-declare czm_computePosition because computePosition.glsl already does.
767
+ if (functionName !== "vec4 czm_computePosition()") {
768
+ forwardDecl += `${functionName};\n`;
769
+ }
770
+
771
+ if (!defined(primitive.rtcCenter)) {
772
+ // Use GPU RTE
773
+ if (!scene3DOnly) {
774
+ attributes +=
775
+ `attribute vec3 ${name}2DHigh;\n` + `attribute vec3 ${name}2DLow;\n`;
776
+
777
+ computeFunctions +=
778
+ `${functionName}\n` +
779
+ `{\n` +
780
+ ` vec4 p;\n` +
781
+ ` if (czm_morphTime == 1.0)\n` +
782
+ ` {\n` +
783
+ ` p = czm_translateRelativeToEye(${name}3DHigh, ${name}3DLow);\n` +
784
+ ` }\n` +
785
+ ` else if (czm_morphTime == 0.0)\n` +
786
+ ` {\n` +
787
+ ` p = czm_translateRelativeToEye(${name}2DHigh.zxy, ${name}2DLow.zxy);\n` +
788
+ ` }\n` +
789
+ ` else\n` +
790
+ ` {\n` +
791
+ ` p = czm_columbusViewMorph(\n` +
792
+ ` czm_translateRelativeToEye(${name}2DHigh.zxy, ${name}2DLow.zxy),\n` +
793
+ ` czm_translateRelativeToEye(${name}3DHigh, ${name}3DLow),\n` +
794
+ ` czm_morphTime);\n` +
795
+ ` }\n` +
796
+ ` return p;\n` +
797
+ `}\n\n`;
798
+ } else {
799
+ computeFunctions +=
800
+ `${functionName}\n` +
801
+ `{\n` +
802
+ ` return czm_translateRelativeToEye(${name}3DHigh, ${name}3DLow);\n` +
803
+ `}\n\n`;
804
+ }
805
+ } else {
806
+ // Use RTC
807
+ vertexShaderSource = vertexShaderSource.replace(
808
+ /attribute\s+vec(?:3|4)\s+position3DHigh;/g,
809
+ ""
810
+ );
811
+ vertexShaderSource = vertexShaderSource.replace(
812
+ /attribute\s+vec(?:3|4)\s+position3DLow;/g,
813
+ ""
814
+ );
815
+
816
+ forwardDecl += "uniform mat4 u_modifiedModelView;\n";
817
+ attributes += "attribute vec4 position;\n";
818
+
819
+ computeFunctions +=
820
+ `${functionName}\n` +
821
+ `{\n` +
822
+ ` return u_modifiedModelView * position;\n` +
823
+ `}\n\n`;
824
+
825
+ vertexShaderSource = vertexShaderSource.replace(
826
+ /czm_modelViewRelativeToEye\s+\*\s+/g,
827
+ ""
828
+ );
829
+ vertexShaderSource = vertexShaderSource.replace(
830
+ /czm_modelViewProjectionRelativeToEye/g,
831
+ "czm_projection"
832
+ );
833
+ }
834
+ }
835
+
836
+ return [forwardDecl, attributes, vertexShaderSource, computeFunctions].join(
837
+ "\n"
838
+ );
839
+ };
840
+
841
+ Primitive._appendShowToShader = function (primitive, vertexShaderSource) {
842
+ if (!defined(primitive._batchTableAttributeIndices.show)) {
843
+ return vertexShaderSource;
844
+ }
845
+
846
+ const renamedVS = ShaderSource.replaceMain(
847
+ vertexShaderSource,
848
+ "czm_non_show_main"
849
+ );
850
+ const showMain =
851
+ "void main() \n" +
852
+ "{ \n" +
853
+ " czm_non_show_main(); \n" +
854
+ " gl_Position *= czm_batchTable_show(batchId); \n" +
855
+ "}";
856
+
857
+ return `${renamedVS}\n${showMain}`;
858
+ };
859
+
860
+ Primitive._updateColorAttribute = function (
861
+ primitive,
862
+ vertexShaderSource,
863
+ isDepthFail
864
+ ) {
865
+ // some appearances have a color attribute for per vertex color.
866
+ // only remove if color is a per instance attribute.
867
+ if (
868
+ !defined(primitive._batchTableAttributeIndices.color) &&
869
+ !defined(primitive._batchTableAttributeIndices.depthFailColor)
870
+ ) {
871
+ return vertexShaderSource;
872
+ }
873
+
874
+ if (vertexShaderSource.search(/attribute\s+vec4\s+color;/g) === -1) {
875
+ return vertexShaderSource;
876
+ }
877
+
878
+ //>>includeStart('debug', pragmas.debug);
879
+ if (
880
+ isDepthFail &&
881
+ !defined(primitive._batchTableAttributeIndices.depthFailColor)
882
+ ) {
883
+ throw new DeveloperError(
884
+ "A depthFailColor per-instance attribute is required when using a depth fail appearance that uses a color attribute."
885
+ );
886
+ }
887
+ //>>includeEnd('debug');
888
+
889
+ let modifiedVS = vertexShaderSource;
890
+ modifiedVS = modifiedVS.replace(/attribute\s+vec4\s+color;/g, "");
891
+ if (!isDepthFail) {
892
+ modifiedVS = modifiedVS.replace(
893
+ /(\b)color(\b)/g,
894
+ "$1czm_batchTable_color(batchId)$2"
895
+ );
896
+ } else {
897
+ modifiedVS = modifiedVS.replace(
898
+ /(\b)color(\b)/g,
899
+ "$1czm_batchTable_depthFailColor(batchId)$2"
900
+ );
901
+ }
902
+ return modifiedVS;
903
+ };
904
+
905
+ function appendPickToVertexShader(source) {
906
+ const renamedVS = ShaderSource.replaceMain(source, "czm_non_pick_main");
907
+ const pickMain =
908
+ "varying vec4 v_pickColor; \n" +
909
+ "void main() \n" +
910
+ "{ \n" +
911
+ " czm_non_pick_main(); \n" +
912
+ " v_pickColor = czm_batchTable_pickColor(batchId); \n" +
913
+ "}";
914
+
915
+ return `${renamedVS}\n${pickMain}`;
916
+ }
917
+
918
+ function appendPickToFragmentShader(source) {
919
+ return `varying vec4 v_pickColor;\n${source}`;
920
+ }
921
+
922
+ Primitive._updatePickColorAttribute = function (source) {
923
+ let vsPick = source.replace(/attribute\s+vec4\s+pickColor;/g, "");
924
+ vsPick = vsPick.replace(
925
+ /(\b)pickColor(\b)/g,
926
+ "$1czm_batchTable_pickColor(batchId)$2"
927
+ );
928
+ return vsPick;
929
+ };
930
+
931
+ Primitive._appendOffsetToShader = function (primitive, vertexShaderSource) {
932
+ if (!defined(primitive._batchTableAttributeIndices.offset)) {
933
+ return vertexShaderSource;
934
+ }
935
+
936
+ let attr = "attribute float batchId;\n";
937
+ attr += "attribute float applyOffset;";
938
+ let modifiedShader = vertexShaderSource.replace(
939
+ /attribute\s+float\s+batchId;/g,
940
+ attr
941
+ );
942
+
943
+ let str = "vec4 $1 = czm_computePosition();\n";
944
+ str += " if (czm_sceneMode == czm_sceneMode3D)\n";
945
+ str += " {\n";
946
+ str +=
947
+ " $1 = $1 + vec4(czm_batchTable_offset(batchId) * applyOffset, 0.0);";
948
+ str += " }\n";
949
+ str += " else\n";
950
+ str += " {\n";
951
+ str +=
952
+ " $1 = $1 + vec4(czm_batchTable_offset2D(batchId) * applyOffset, 0.0);";
953
+ str += " }\n";
954
+ modifiedShader = modifiedShader.replace(
955
+ /vec4\s+([A-Za-z0-9_]+)\s+=\s+czm_computePosition\(\);/g,
956
+ str
957
+ );
958
+ return modifiedShader;
959
+ };
960
+
961
+ Primitive._appendDistanceDisplayConditionToShader = function (
962
+ primitive,
963
+ vertexShaderSource,
964
+ scene3DOnly
965
+ ) {
966
+ if (
967
+ !defined(primitive._batchTableAttributeIndices.distanceDisplayCondition)
968
+ ) {
969
+ return vertexShaderSource;
970
+ }
971
+
972
+ const renamedVS = ShaderSource.replaceMain(
973
+ vertexShaderSource,
974
+ "czm_non_distanceDisplayCondition_main"
975
+ );
976
+ let distanceDisplayConditionMain =
977
+ "void main() \n" +
978
+ "{ \n" +
979
+ " czm_non_distanceDisplayCondition_main(); \n" +
980
+ " vec2 distanceDisplayCondition = czm_batchTable_distanceDisplayCondition(batchId);\n" +
981
+ " vec3 boundingSphereCenter3DHigh = czm_batchTable_boundingSphereCenter3DHigh(batchId);\n" +
982
+ " vec3 boundingSphereCenter3DLow = czm_batchTable_boundingSphereCenter3DLow(batchId);\n" +
983
+ " float boundingSphereRadius = czm_batchTable_boundingSphereRadius(batchId);\n";
984
+
985
+ if (!scene3DOnly) {
986
+ distanceDisplayConditionMain +=
987
+ " vec3 boundingSphereCenter2DHigh = czm_batchTable_boundingSphereCenter2DHigh(batchId);\n" +
988
+ " vec3 boundingSphereCenter2DLow = czm_batchTable_boundingSphereCenter2DLow(batchId);\n" +
989
+ " vec4 centerRTE;\n" +
990
+ " if (czm_morphTime == 1.0)\n" +
991
+ " {\n" +
992
+ " centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow);\n" +
993
+ " }\n" +
994
+ " else if (czm_morphTime == 0.0)\n" +
995
+ " {\n" +
996
+ " centerRTE = czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy);\n" +
997
+ " }\n" +
998
+ " else\n" +
999
+ " {\n" +
1000
+ " centerRTE = czm_columbusViewMorph(\n" +
1001
+ " czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy),\n" +
1002
+ " czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow),\n" +
1003
+ " czm_morphTime);\n" +
1004
+ " }\n";
1005
+ } else {
1006
+ distanceDisplayConditionMain +=
1007
+ " vec4 centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow);\n";
1008
+ }
1009
+
1010
+ distanceDisplayConditionMain +=
1011
+ " float radiusSq = boundingSphereRadius * boundingSphereRadius; \n" +
1012
+ " float distanceSq; \n" +
1013
+ " if (czm_sceneMode == czm_sceneMode2D) \n" +
1014
+ " { \n" +
1015
+ " distanceSq = czm_eyeHeight2D.y - radiusSq; \n" +
1016
+ " } \n" +
1017
+ " else \n" +
1018
+ " { \n" +
1019
+ " distanceSq = dot(centerRTE.xyz, centerRTE.xyz) - radiusSq; \n" +
1020
+ " } \n" +
1021
+ " distanceSq = max(distanceSq, 0.0); \n" +
1022
+ " float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; \n" +
1023
+ " float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; \n" +
1024
+ " float show = (distanceSq >= nearSq && distanceSq <= farSq) ? 1.0 : 0.0; \n" +
1025
+ " gl_Position *= show; \n" +
1026
+ "}";
1027
+ return `${renamedVS}\n${distanceDisplayConditionMain}`;
1028
+ };
1029
+
1030
+ function modifyForEncodedNormals(primitive, vertexShaderSource) {
1031
+ if (!primitive.compressVertices) {
1032
+ return vertexShaderSource;
1033
+ }
1034
+
1035
+ const containsNormal =
1036
+ vertexShaderSource.search(/attribute\s+vec3\s+normal;/g) !== -1;
1037
+ const containsSt =
1038
+ vertexShaderSource.search(/attribute\s+vec2\s+st;/g) !== -1;
1039
+ if (!containsNormal && !containsSt) {
1040
+ return vertexShaderSource;
1041
+ }
1042
+
1043
+ const containsTangent =
1044
+ vertexShaderSource.search(/attribute\s+vec3\s+tangent;/g) !== -1;
1045
+ const containsBitangent =
1046
+ vertexShaderSource.search(/attribute\s+vec3\s+bitangent;/g) !== -1;
1047
+
1048
+ let numComponents = containsSt && containsNormal ? 2.0 : 1.0;
1049
+ numComponents += containsTangent || containsBitangent ? 1 : 0;
1050
+
1051
+ const type = numComponents > 1 ? `vec${numComponents}` : "float";
1052
+
1053
+ const attributeName = "compressedAttributes";
1054
+ const attributeDecl = `attribute ${type} ${attributeName};`;
1055
+
1056
+ let globalDecl = "";
1057
+ let decode = "";
1058
+
1059
+ if (containsSt) {
1060
+ globalDecl += "vec2 st;\n";
1061
+ const stComponent =
1062
+ numComponents > 1 ? `${attributeName}.x` : attributeName;
1063
+ decode += ` st = czm_decompressTextureCoordinates(${stComponent});\n`;
1064
+ }
1065
+
1066
+ if (containsNormal && containsTangent && containsBitangent) {
1067
+ globalDecl += "vec3 normal;\n" + "vec3 tangent;\n" + "vec3 bitangent;\n";
1068
+ decode += ` czm_octDecode(${attributeName}.${
1069
+ containsSt ? "yz" : "xy"
1070
+ }, normal, tangent, bitangent);\n`;
1071
+ } else {
1072
+ if (containsNormal) {
1073
+ globalDecl += "vec3 normal;\n";
1074
+ decode += ` normal = czm_octDecode(${attributeName}${
1075
+ numComponents > 1 ? `.${containsSt ? "y" : "x"}` : ""
1076
+ });\n`;
1077
+ }
1078
+
1079
+ if (containsTangent) {
1080
+ globalDecl += "vec3 tangent;\n";
1081
+ decode += ` tangent = czm_octDecode(${attributeName}.${
1082
+ containsSt && containsNormal ? "z" : "y"
1083
+ });\n`;
1084
+ }
1085
+
1086
+ if (containsBitangent) {
1087
+ globalDecl += "vec3 bitangent;\n";
1088
+ decode += ` bitangent = czm_octDecode(${attributeName}.${
1089
+ containsSt && containsNormal ? "z" : "y"
1090
+ });\n`;
1091
+ }
1092
+ }
1093
+
1094
+ let modifiedVS = vertexShaderSource;
1095
+ modifiedVS = modifiedVS.replace(/attribute\s+vec3\s+normal;/g, "");
1096
+ modifiedVS = modifiedVS.replace(/attribute\s+vec2\s+st;/g, "");
1097
+ modifiedVS = modifiedVS.replace(/attribute\s+vec3\s+tangent;/g, "");
1098
+ modifiedVS = modifiedVS.replace(/attribute\s+vec3\s+bitangent;/g, "");
1099
+ modifiedVS = ShaderSource.replaceMain(modifiedVS, "czm_non_compressed_main");
1100
+ const compressedMain =
1101
+ `${"void main() \n" + "{ \n"}${decode} czm_non_compressed_main(); \n` +
1102
+ `}`;
1103
+
1104
+ return [attributeDecl, globalDecl, modifiedVS, compressedMain].join("\n");
1105
+ }
1106
+
1107
+ function depthClampVS(vertexShaderSource) {
1108
+ let modifiedVS = ShaderSource.replaceMain(
1109
+ vertexShaderSource,
1110
+ "czm_non_depth_clamp_main"
1111
+ );
1112
+ modifiedVS +=
1113
+ "void main() {\n" +
1114
+ " czm_non_depth_clamp_main();\n" +
1115
+ " gl_Position = czm_depthClamp(gl_Position);" +
1116
+ "}\n";
1117
+ return modifiedVS;
1118
+ }
1119
+
1120
+ function depthClampFS(fragmentShaderSource) {
1121
+ let modifiedFS = ShaderSource.replaceMain(
1122
+ fragmentShaderSource,
1123
+ "czm_non_depth_clamp_main"
1124
+ );
1125
+ modifiedFS +=
1126
+ "void main() {\n" +
1127
+ " czm_non_depth_clamp_main();\n" +
1128
+ "#if defined(GL_EXT_frag_depth)\n" +
1129
+ " #if defined(LOG_DEPTH)\n" +
1130
+ " czm_writeLogDepth();\n" +
1131
+ " #else\n" +
1132
+ " czm_writeDepthClamp();\n" +
1133
+ " #endif\n" +
1134
+ "#endif\n" +
1135
+ "}\n";
1136
+ modifiedFS = `${
1137
+ "#ifdef GL_EXT_frag_depth\n" +
1138
+ "#extension GL_EXT_frag_depth : enable\n" +
1139
+ "#endif\n"
1140
+ }${modifiedFS}`;
1141
+ return modifiedFS;
1142
+ }
1143
+
1144
+ function validateShaderMatching(shaderProgram, attributeLocations) {
1145
+ // For a VAO and shader program to be compatible, the VAO must have
1146
+ // all active attribute in the shader program. The VAO may have
1147
+ // extra attributes with the only concern being a potential
1148
+ // performance hit due to extra memory bandwidth and cache pollution.
1149
+ // The shader source could have extra attributes that are not used,
1150
+ // but there is no guarantee they will be optimized out.
1151
+ //
1152
+ // Here, we validate that the VAO has all attributes required
1153
+ // to match the shader program.
1154
+ const shaderAttributes = shaderProgram.vertexAttributes;
1155
+
1156
+ //>>includeStart('debug', pragmas.debug);
1157
+ for (const name in shaderAttributes) {
1158
+ if (shaderAttributes.hasOwnProperty(name)) {
1159
+ if (!defined(attributeLocations[name])) {
1160
+ throw new DeveloperError(
1161
+ `Appearance/Geometry mismatch. The appearance requires vertex shader attribute input '${name}', which was not computed as part of the Geometry. Use the appearance's vertexFormat property when constructing the geometry.`
1162
+ );
1163
+ }
1164
+ }
1165
+ }
1166
+ //>>includeEnd('debug');
1167
+ }
1168
+
1169
+ function getUniformFunction(uniforms, name) {
1170
+ return function () {
1171
+ return uniforms[name];
1172
+ };
1173
+ }
1174
+
1175
+ const numberOfCreationWorkers = Math.max(
1176
+ FeatureDetection.hardwareConcurrency - 1,
1177
+ 1
1178
+ );
1179
+ let createGeometryTaskProcessors;
1180
+ const combineGeometryTaskProcessor = new TaskProcessor("combineGeometry");
1181
+
1182
+ function loadAsynchronous(primitive, frameState) {
1183
+ let instances;
1184
+ let geometry;
1185
+ let i;
1186
+ let j;
1187
+
1188
+ const instanceIds = primitive._instanceIds;
1189
+
1190
+ if (primitive._state === PrimitiveState.READY) {
1191
+ instances = Array.isArray(primitive.geometryInstances)
1192
+ ? primitive.geometryInstances
1193
+ : [primitive.geometryInstances];
1194
+ const length = (primitive._numberOfInstances = instances.length);
1195
+
1196
+ const promises = [];
1197
+ let subTasks = [];
1198
+ for (i = 0; i < length; ++i) {
1199
+ geometry = instances[i].geometry;
1200
+ instanceIds.push(instances[i].id);
1201
+
1202
+ //>>includeStart('debug', pragmas.debug);
1203
+ if (!defined(geometry._workerName)) {
1204
+ throw new DeveloperError(
1205
+ "_workerName must be defined for asynchronous geometry."
1206
+ );
1207
+ }
1208
+ //>>includeEnd('debug');
1209
+
1210
+ subTasks.push({
1211
+ moduleName: geometry._workerName,
1212
+ geometry: geometry,
1213
+ });
1214
+ }
1215
+
1216
+ if (!defined(createGeometryTaskProcessors)) {
1217
+ createGeometryTaskProcessors = new Array(numberOfCreationWorkers);
1218
+ for (i = 0; i < numberOfCreationWorkers; i++) {
1219
+ createGeometryTaskProcessors[i] = new TaskProcessor("createGeometry");
1220
+ }
1221
+ }
1222
+
1223
+ let subTask;
1224
+ subTasks = subdivideArray(subTasks, numberOfCreationWorkers);
1225
+
1226
+ for (i = 0; i < subTasks.length; i++) {
1227
+ let packedLength = 0;
1228
+ const workerSubTasks = subTasks[i];
1229
+ const workerSubTasksLength = workerSubTasks.length;
1230
+ for (j = 0; j < workerSubTasksLength; ++j) {
1231
+ subTask = workerSubTasks[j];
1232
+ geometry = subTask.geometry;
1233
+ if (defined(geometry.constructor.pack)) {
1234
+ subTask.offset = packedLength;
1235
+ packedLength += defaultValue(
1236
+ geometry.constructor.packedLength,
1237
+ geometry.packedLength
1238
+ );
1239
+ }
1240
+ }
1241
+
1242
+ let subTaskTransferableObjects;
1243
+
1244
+ if (packedLength > 0) {
1245
+ const array = new Float64Array(packedLength);
1246
+ subTaskTransferableObjects = [array.buffer];
1247
+
1248
+ for (j = 0; j < workerSubTasksLength; ++j) {
1249
+ subTask = workerSubTasks[j];
1250
+ geometry = subTask.geometry;
1251
+ if (defined(geometry.constructor.pack)) {
1252
+ geometry.constructor.pack(geometry, array, subTask.offset);
1253
+ subTask.geometry = array;
1254
+ }
1255
+ }
1256
+ }
1257
+
1258
+ promises.push(
1259
+ createGeometryTaskProcessors[i].scheduleTask(
1260
+ {
1261
+ subTasks: subTasks[i],
1262
+ },
1263
+ subTaskTransferableObjects
1264
+ )
1265
+ );
1266
+ }
1267
+
1268
+ primitive._state = PrimitiveState.CREATING;
1269
+
1270
+ Promise.all(promises)
1271
+ .then(function (results) {
1272
+ primitive._createGeometryResults = results;
1273
+ primitive._state = PrimitiveState.CREATED;
1274
+ })
1275
+ .catch(function (error) {
1276
+ setReady(primitive, frameState, PrimitiveState.FAILED, error);
1277
+ });
1278
+ } else if (primitive._state === PrimitiveState.CREATED) {
1279
+ const transferableObjects = [];
1280
+ instances = Array.isArray(primitive.geometryInstances)
1281
+ ? primitive.geometryInstances
1282
+ : [primitive.geometryInstances];
1283
+
1284
+ const scene3DOnly = frameState.scene3DOnly;
1285
+ const projection = frameState.mapProjection;
1286
+
1287
+ const promise = combineGeometryTaskProcessor.scheduleTask(
1288
+ PrimitivePipeline.packCombineGeometryParameters(
1289
+ {
1290
+ createGeometryResults: primitive._createGeometryResults,
1291
+ instances: instances,
1292
+ ellipsoid: projection.ellipsoid,
1293
+ projection: projection,
1294
+ elementIndexUintSupported: frameState.context.elementIndexUint,
1295
+ scene3DOnly: scene3DOnly,
1296
+ vertexCacheOptimize: primitive.vertexCacheOptimize,
1297
+ compressVertices: primitive.compressVertices,
1298
+ modelMatrix: primitive.modelMatrix,
1299
+ createPickOffsets: primitive._createPickOffsets,
1300
+ },
1301
+ transferableObjects
1302
+ ),
1303
+ transferableObjects
1304
+ );
1305
+
1306
+ primitive._createGeometryResults = undefined;
1307
+ primitive._state = PrimitiveState.COMBINING;
1308
+
1309
+ Promise.resolve(promise)
1310
+ .then(function (packedResult) {
1311
+ const result = PrimitivePipeline.unpackCombineGeometryResults(
1312
+ packedResult
1313
+ );
1314
+ primitive._geometries = result.geometries;
1315
+ primitive._attributeLocations = result.attributeLocations;
1316
+ primitive.modelMatrix = Matrix4.clone(
1317
+ result.modelMatrix,
1318
+ primitive.modelMatrix
1319
+ );
1320
+ primitive._pickOffsets = result.pickOffsets;
1321
+ primitive._offsetInstanceExtend = result.offsetInstanceExtend;
1322
+ primitive._instanceBoundingSpheres = result.boundingSpheres;
1323
+ primitive._instanceBoundingSpheresCV = result.boundingSpheresCV;
1324
+
1325
+ if (
1326
+ defined(primitive._geometries) &&
1327
+ primitive._geometries.length > 0
1328
+ ) {
1329
+ primitive._recomputeBoundingSpheres = true;
1330
+ primitive._state = PrimitiveState.COMBINED;
1331
+ } else {
1332
+ setReady(primitive, frameState, PrimitiveState.FAILED, undefined);
1333
+ }
1334
+ })
1335
+ .catch(function (error) {
1336
+ setReady(primitive, frameState, PrimitiveState.FAILED, error);
1337
+ });
1338
+ }
1339
+ }
1340
+
1341
+ function loadSynchronous(primitive, frameState) {
1342
+ const instances = Array.isArray(primitive.geometryInstances)
1343
+ ? primitive.geometryInstances
1344
+ : [primitive.geometryInstances];
1345
+ const length = (primitive._numberOfInstances = instances.length);
1346
+ const clonedInstances = new Array(length);
1347
+ const instanceIds = primitive._instanceIds;
1348
+
1349
+ let instance;
1350
+ let i;
1351
+
1352
+ let geometryIndex = 0;
1353
+ for (i = 0; i < length; i++) {
1354
+ instance = instances[i];
1355
+ const geometry = instance.geometry;
1356
+
1357
+ let createdGeometry;
1358
+ if (defined(geometry.attributes) && defined(geometry.primitiveType)) {
1359
+ createdGeometry = cloneGeometry(geometry);
1360
+ } else {
1361
+ createdGeometry = geometry.constructor.createGeometry(geometry);
1362
+ }
1363
+
1364
+ clonedInstances[geometryIndex++] = cloneInstance(instance, createdGeometry);
1365
+ instanceIds.push(instance.id);
1366
+ }
1367
+
1368
+ clonedInstances.length = geometryIndex;
1369
+
1370
+ const scene3DOnly = frameState.scene3DOnly;
1371
+ const projection = frameState.mapProjection;
1372
+
1373
+ const result = PrimitivePipeline.combineGeometry({
1374
+ instances: clonedInstances,
1375
+ ellipsoid: projection.ellipsoid,
1376
+ projection: projection,
1377
+ elementIndexUintSupported: frameState.context.elementIndexUint,
1378
+ scene3DOnly: scene3DOnly,
1379
+ vertexCacheOptimize: primitive.vertexCacheOptimize,
1380
+ compressVertices: primitive.compressVertices,
1381
+ modelMatrix: primitive.modelMatrix,
1382
+ createPickOffsets: primitive._createPickOffsets,
1383
+ });
1384
+
1385
+ primitive._geometries = result.geometries;
1386
+ primitive._attributeLocations = result.attributeLocations;
1387
+ primitive.modelMatrix = Matrix4.clone(
1388
+ result.modelMatrix,
1389
+ primitive.modelMatrix
1390
+ );
1391
+ primitive._pickOffsets = result.pickOffsets;
1392
+ primitive._offsetInstanceExtend = result.offsetInstanceExtend;
1393
+ primitive._instanceBoundingSpheres = result.boundingSpheres;
1394
+ primitive._instanceBoundingSpheresCV = result.boundingSpheresCV;
1395
+
1396
+ if (defined(primitive._geometries) && primitive._geometries.length > 0) {
1397
+ primitive._recomputeBoundingSpheres = true;
1398
+ primitive._state = PrimitiveState.COMBINED;
1399
+ } else {
1400
+ setReady(primitive, frameState, PrimitiveState.FAILED, undefined);
1401
+ }
1402
+ }
1403
+
1404
+ function recomputeBoundingSpheres(primitive, frameState) {
1405
+ const offsetIndex = primitive._batchTableAttributeIndices.offset;
1406
+ if (!primitive._recomputeBoundingSpheres || !defined(offsetIndex)) {
1407
+ primitive._recomputeBoundingSpheres = false;
1408
+ return;
1409
+ }
1410
+
1411
+ let i;
1412
+ const offsetInstanceExtend = primitive._offsetInstanceExtend;
1413
+ const boundingSpheres = primitive._instanceBoundingSpheres;
1414
+ const length = boundingSpheres.length;
1415
+ let newBoundingSpheres = primitive._tempBoundingSpheres;
1416
+ if (!defined(newBoundingSpheres)) {
1417
+ newBoundingSpheres = new Array(length);
1418
+ for (i = 0; i < length; i++) {
1419
+ newBoundingSpheres[i] = new BoundingSphere();
1420
+ }
1421
+ primitive._tempBoundingSpheres = newBoundingSpheres;
1422
+ }
1423
+ for (i = 0; i < length; ++i) {
1424
+ let newBS = newBoundingSpheres[i];
1425
+ const offset = primitive._batchTable.getBatchedAttribute(
1426
+ i,
1427
+ offsetIndex,
1428
+ new Cartesian3()
1429
+ );
1430
+ newBS = boundingSpheres[i].clone(newBS);
1431
+ transformBoundingSphere(newBS, offset, offsetInstanceExtend[i]);
1432
+ }
1433
+ const combinedBS = [];
1434
+ const combinedWestBS = [];
1435
+ const combinedEastBS = [];
1436
+
1437
+ for (i = 0; i < length; ++i) {
1438
+ const bs = newBoundingSpheres[i];
1439
+
1440
+ const minX = bs.center.x - bs.radius;
1441
+ if (
1442
+ minX > 0 ||
1443
+ BoundingSphere.intersectPlane(bs, Plane.ORIGIN_ZX_PLANE) !==
1444
+ Intersect.INTERSECTING
1445
+ ) {
1446
+ combinedBS.push(bs);
1447
+ } else {
1448
+ combinedWestBS.push(bs);
1449
+ combinedEastBS.push(bs);
1450
+ }
1451
+ }
1452
+
1453
+ let resultBS1 = combinedBS[0];
1454
+ let resultBS2 = combinedEastBS[0];
1455
+ let resultBS3 = combinedWestBS[0];
1456
+
1457
+ for (i = 1; i < combinedBS.length; i++) {
1458
+ resultBS1 = BoundingSphere.union(resultBS1, combinedBS[i]);
1459
+ }
1460
+ for (i = 1; i < combinedEastBS.length; i++) {
1461
+ resultBS2 = BoundingSphere.union(resultBS2, combinedEastBS[i]);
1462
+ }
1463
+ for (i = 1; i < combinedWestBS.length; i++) {
1464
+ resultBS3 = BoundingSphere.union(resultBS3, combinedWestBS[i]);
1465
+ }
1466
+ const result = [];
1467
+ if (defined(resultBS1)) {
1468
+ result.push(resultBS1);
1469
+ }
1470
+ if (defined(resultBS2)) {
1471
+ result.push(resultBS2);
1472
+ }
1473
+ if (defined(resultBS3)) {
1474
+ result.push(resultBS3);
1475
+ }
1476
+
1477
+ for (i = 0; i < result.length; i++) {
1478
+ const boundingSphere = result[i].clone(primitive._boundingSpheres[i]);
1479
+ primitive._boundingSpheres[i] = boundingSphere;
1480
+ primitive._boundingSphereCV[i] = BoundingSphere.projectTo2D(
1481
+ boundingSphere,
1482
+ frameState.mapProjection,
1483
+ primitive._boundingSphereCV[i]
1484
+ );
1485
+ }
1486
+
1487
+ Primitive._updateBoundingVolumes(
1488
+ primitive,
1489
+ frameState,
1490
+ primitive.modelMatrix,
1491
+ true
1492
+ );
1493
+ primitive._recomputeBoundingSpheres = false;
1494
+ }
1495
+
1496
+ const scratchBoundingSphereCenterEncoded = new EncodedCartesian3();
1497
+ const scratchBoundingSphereCartographic = new Cartographic();
1498
+ const scratchBoundingSphereCenter2D = new Cartesian3();
1499
+ const scratchBoundingSphere = new BoundingSphere();
1500
+
1501
+ function updateBatchTableBoundingSpheres(primitive, frameState) {
1502
+ const hasDistanceDisplayCondition = defined(
1503
+ primitive._batchTableAttributeIndices.distanceDisplayCondition
1504
+ );
1505
+ if (
1506
+ !hasDistanceDisplayCondition ||
1507
+ primitive._batchTableBoundingSpheresUpdated
1508
+ ) {
1509
+ return;
1510
+ }
1511
+
1512
+ const indices = primitive._batchTableBoundingSphereAttributeIndices;
1513
+ const center3DHighIndex = indices.center3DHigh;
1514
+ const center3DLowIndex = indices.center3DLow;
1515
+ const center2DHighIndex = indices.center2DHigh;
1516
+ const center2DLowIndex = indices.center2DLow;
1517
+ const radiusIndex = indices.radius;
1518
+
1519
+ const projection = frameState.mapProjection;
1520
+ const ellipsoid = projection.ellipsoid;
1521
+
1522
+ const batchTable = primitive._batchTable;
1523
+ const boundingSpheres = primitive._instanceBoundingSpheres;
1524
+ const length = boundingSpheres.length;
1525
+
1526
+ for (let i = 0; i < length; ++i) {
1527
+ let boundingSphere = boundingSpheres[i];
1528
+ if (!defined(boundingSphere)) {
1529
+ continue;
1530
+ }
1531
+
1532
+ const modelMatrix = primitive.modelMatrix;
1533
+ if (defined(modelMatrix)) {
1534
+ boundingSphere = BoundingSphere.transform(
1535
+ boundingSphere,
1536
+ modelMatrix,
1537
+ scratchBoundingSphere
1538
+ );
1539
+ }
1540
+
1541
+ const center = boundingSphere.center;
1542
+ const radius = boundingSphere.radius;
1543
+
1544
+ let encodedCenter = EncodedCartesian3.fromCartesian(
1545
+ center,
1546
+ scratchBoundingSphereCenterEncoded
1547
+ );
1548
+ batchTable.setBatchedAttribute(i, center3DHighIndex, encodedCenter.high);
1549
+ batchTable.setBatchedAttribute(i, center3DLowIndex, encodedCenter.low);
1550
+
1551
+ if (!frameState.scene3DOnly) {
1552
+ const cartographic = ellipsoid.cartesianToCartographic(
1553
+ center,
1554
+ scratchBoundingSphereCartographic
1555
+ );
1556
+ const center2D = projection.project(
1557
+ cartographic,
1558
+ scratchBoundingSphereCenter2D
1559
+ );
1560
+ encodedCenter = EncodedCartesian3.fromCartesian(
1561
+ center2D,
1562
+ scratchBoundingSphereCenterEncoded
1563
+ );
1564
+ batchTable.setBatchedAttribute(i, center2DHighIndex, encodedCenter.high);
1565
+ batchTable.setBatchedAttribute(i, center2DLowIndex, encodedCenter.low);
1566
+ }
1567
+
1568
+ batchTable.setBatchedAttribute(i, radiusIndex, radius);
1569
+ }
1570
+
1571
+ primitive._batchTableBoundingSpheresUpdated = true;
1572
+ }
1573
+
1574
+ const offsetScratchCartesian = new Cartesian3();
1575
+ const offsetCenterScratch = new Cartesian3();
1576
+ function updateBatchTableOffsets(primitive, frameState) {
1577
+ const hasOffset = defined(primitive._batchTableAttributeIndices.offset);
1578
+ if (
1579
+ !hasOffset ||
1580
+ primitive._batchTableOffsetsUpdated ||
1581
+ frameState.scene3DOnly
1582
+ ) {
1583
+ return;
1584
+ }
1585
+
1586
+ const index2D = primitive._batchTableOffsetAttribute2DIndex;
1587
+
1588
+ const projection = frameState.mapProjection;
1589
+ const ellipsoid = projection.ellipsoid;
1590
+
1591
+ const batchTable = primitive._batchTable;
1592
+ const boundingSpheres = primitive._instanceBoundingSpheres;
1593
+ const length = boundingSpheres.length;
1594
+
1595
+ for (let i = 0; i < length; ++i) {
1596
+ let boundingSphere = boundingSpheres[i];
1597
+ if (!defined(boundingSphere)) {
1598
+ continue;
1599
+ }
1600
+ const offset = batchTable.getBatchedAttribute(
1601
+ i,
1602
+ primitive._batchTableAttributeIndices.offset
1603
+ );
1604
+ if (Cartesian3.equals(offset, Cartesian3.ZERO)) {
1605
+ batchTable.setBatchedAttribute(i, index2D, Cartesian3.ZERO);
1606
+ continue;
1607
+ }
1608
+
1609
+ const modelMatrix = primitive.modelMatrix;
1610
+ if (defined(modelMatrix)) {
1611
+ boundingSphere = BoundingSphere.transform(
1612
+ boundingSphere,
1613
+ modelMatrix,
1614
+ scratchBoundingSphere
1615
+ );
1616
+ }
1617
+
1618
+ let center = boundingSphere.center;
1619
+ center = ellipsoid.scaleToGeodeticSurface(center, offsetCenterScratch);
1620
+ let cartographic = ellipsoid.cartesianToCartographic(
1621
+ center,
1622
+ scratchBoundingSphereCartographic
1623
+ );
1624
+ const center2D = projection.project(
1625
+ cartographic,
1626
+ scratchBoundingSphereCenter2D
1627
+ );
1628
+
1629
+ const newPoint = Cartesian3.add(offset, center, offsetScratchCartesian);
1630
+ cartographic = ellipsoid.cartesianToCartographic(newPoint, cartographic);
1631
+
1632
+ const newPointProjected = projection.project(
1633
+ cartographic,
1634
+ offsetScratchCartesian
1635
+ );
1636
+
1637
+ const newVector = Cartesian3.subtract(
1638
+ newPointProjected,
1639
+ center2D,
1640
+ offsetScratchCartesian
1641
+ );
1642
+
1643
+ const x = newVector.x;
1644
+ newVector.x = newVector.z;
1645
+ newVector.z = newVector.y;
1646
+ newVector.y = x;
1647
+
1648
+ batchTable.setBatchedAttribute(i, index2D, newVector);
1649
+ }
1650
+
1651
+ primitive._batchTableOffsetsUpdated = true;
1652
+ }
1653
+
1654
+ function createVertexArray(primitive, frameState) {
1655
+ const attributeLocations = primitive._attributeLocations;
1656
+ const geometries = primitive._geometries;
1657
+ const scene3DOnly = frameState.scene3DOnly;
1658
+ const context = frameState.context;
1659
+
1660
+ const va = [];
1661
+ const length = geometries.length;
1662
+ for (let i = 0; i < length; ++i) {
1663
+ const geometry = geometries[i];
1664
+
1665
+ va.push(
1666
+ VertexArray.fromGeometry({
1667
+ context: context,
1668
+ geometry: geometry,
1669
+ attributeLocations: attributeLocations,
1670
+ bufferUsage: BufferUsage.STATIC_DRAW,
1671
+ interleave: primitive._interleave,
1672
+ })
1673
+ );
1674
+
1675
+ if (defined(primitive._createBoundingVolumeFunction)) {
1676
+ primitive._createBoundingVolumeFunction(frameState, geometry);
1677
+ } else {
1678
+ primitive._boundingSpheres.push(
1679
+ BoundingSphere.clone(geometry.boundingSphere)
1680
+ );
1681
+ primitive._boundingSphereWC.push(new BoundingSphere());
1682
+
1683
+ if (!scene3DOnly) {
1684
+ const center = geometry.boundingSphereCV.center;
1685
+ const x = center.x;
1686
+ const y = center.y;
1687
+ const z = center.z;
1688
+ center.x = z;
1689
+ center.y = x;
1690
+ center.z = y;
1691
+
1692
+ primitive._boundingSphereCV.push(
1693
+ BoundingSphere.clone(geometry.boundingSphereCV)
1694
+ );
1695
+ primitive._boundingSphere2D.push(new BoundingSphere());
1696
+ primitive._boundingSphereMorph.push(new BoundingSphere());
1697
+ }
1698
+ }
1699
+ }
1700
+
1701
+ primitive._va = va;
1702
+ primitive._primitiveType = geometries[0].primitiveType;
1703
+
1704
+ if (primitive.releaseGeometryInstances) {
1705
+ primitive.geometryInstances = undefined;
1706
+ }
1707
+
1708
+ primitive._geometries = undefined;
1709
+ setReady(primitive, frameState, PrimitiveState.COMPLETE, undefined);
1710
+ }
1711
+
1712
+ function createRenderStates(primitive, context, appearance, twoPasses) {
1713
+ let renderState = appearance.getRenderState();
1714
+ let rs;
1715
+
1716
+ if (twoPasses) {
1717
+ rs = clone(renderState, false);
1718
+ rs.cull = {
1719
+ enabled: true,
1720
+ face: CullFace.BACK,
1721
+ };
1722
+ primitive._frontFaceRS = RenderState.fromCache(rs);
1723
+
1724
+ rs.cull.face = CullFace.FRONT;
1725
+ primitive._backFaceRS = RenderState.fromCache(rs);
1726
+ } else {
1727
+ primitive._frontFaceRS = RenderState.fromCache(renderState);
1728
+ primitive._backFaceRS = primitive._frontFaceRS;
1729
+ }
1730
+
1731
+ rs = clone(renderState, false);
1732
+ if (defined(primitive._depthFailAppearance)) {
1733
+ rs.depthTest.enabled = false;
1734
+ }
1735
+
1736
+ if (defined(primitive._depthFailAppearance)) {
1737
+ renderState = primitive._depthFailAppearance.getRenderState();
1738
+ rs = clone(renderState, false);
1739
+ rs.depthTest.func = DepthFunction.GREATER;
1740
+ if (twoPasses) {
1741
+ rs.cull = {
1742
+ enabled: true,
1743
+ face: CullFace.BACK,
1744
+ };
1745
+ primitive._frontFaceDepthFailRS = RenderState.fromCache(rs);
1746
+
1747
+ rs.cull.face = CullFace.FRONT;
1748
+ primitive._backFaceDepthFailRS = RenderState.fromCache(rs);
1749
+ } else {
1750
+ primitive._frontFaceDepthFailRS = RenderState.fromCache(rs);
1751
+ primitive._backFaceDepthFailRS = primitive._frontFaceRS;
1752
+ }
1753
+ }
1754
+ }
1755
+
1756
+ function createShaderProgram(primitive, frameState, appearance) {
1757
+ const context = frameState.context;
1758
+
1759
+ const attributeLocations = primitive._attributeLocations;
1760
+
1761
+ let vs = primitive._batchTable.getVertexShaderCallback()(
1762
+ appearance.vertexShaderSource
1763
+ );
1764
+ vs = Primitive._appendOffsetToShader(primitive, vs);
1765
+ vs = Primitive._appendShowToShader(primitive, vs);
1766
+ vs = Primitive._appendDistanceDisplayConditionToShader(
1767
+ primitive,
1768
+ vs,
1769
+ frameState.scene3DOnly
1770
+ );
1771
+ vs = appendPickToVertexShader(vs);
1772
+ vs = Primitive._updateColorAttribute(primitive, vs, false);
1773
+ vs = modifyForEncodedNormals(primitive, vs);
1774
+ vs = Primitive._modifyShaderPosition(primitive, vs, frameState.scene3DOnly);
1775
+ let fs = appearance.getFragmentShaderSource();
1776
+ fs = appendPickToFragmentShader(fs);
1777
+
1778
+ primitive._sp = ShaderProgram.replaceCache({
1779
+ context: context,
1780
+ shaderProgram: primitive._sp,
1781
+ vertexShaderSource: vs,
1782
+ fragmentShaderSource: fs,
1783
+ attributeLocations: attributeLocations,
1784
+ });
1785
+ validateShaderMatching(primitive._sp, attributeLocations);
1786
+
1787
+ if (defined(primitive._depthFailAppearance)) {
1788
+ vs = primitive._batchTable.getVertexShaderCallback()(
1789
+ primitive._depthFailAppearance.vertexShaderSource
1790
+ );
1791
+ vs = Primitive._appendShowToShader(primitive, vs);
1792
+ vs = Primitive._appendDistanceDisplayConditionToShader(
1793
+ primitive,
1794
+ vs,
1795
+ frameState.scene3DOnly
1796
+ );
1797
+ vs = appendPickToVertexShader(vs);
1798
+ vs = Primitive._updateColorAttribute(primitive, vs, true);
1799
+ vs = modifyForEncodedNormals(primitive, vs);
1800
+ vs = Primitive._modifyShaderPosition(primitive, vs, frameState.scene3DOnly);
1801
+ vs = depthClampVS(vs);
1802
+
1803
+ fs = primitive._depthFailAppearance.getFragmentShaderSource();
1804
+ fs = appendPickToFragmentShader(fs);
1805
+ fs = depthClampFS(fs);
1806
+
1807
+ primitive._spDepthFail = ShaderProgram.replaceCache({
1808
+ context: context,
1809
+ shaderProgram: primitive._spDepthFail,
1810
+ vertexShaderSource: vs,
1811
+ fragmentShaderSource: fs,
1812
+ attributeLocations: attributeLocations,
1813
+ });
1814
+ validateShaderMatching(primitive._spDepthFail, attributeLocations);
1815
+ }
1816
+ }
1817
+
1818
+ const modifiedModelViewScratch = new Matrix4();
1819
+ const rtcScratch = new Cartesian3();
1820
+
1821
+ function getUniforms(primitive, appearance, material, frameState) {
1822
+ // Create uniform map by combining uniforms from the appearance and material if either have uniforms.
1823
+ const materialUniformMap = defined(material) ? material._uniforms : undefined;
1824
+ const appearanceUniformMap = {};
1825
+ const appearanceUniforms = appearance.uniforms;
1826
+ if (defined(appearanceUniforms)) {
1827
+ // Convert to uniform map of functions for the renderer
1828
+ for (const name in appearanceUniforms) {
1829
+ if (appearanceUniforms.hasOwnProperty(name)) {
1830
+ //>>includeStart('debug', pragmas.debug);
1831
+ if (defined(materialUniformMap) && defined(materialUniformMap[name])) {
1832
+ // Later, we could rename uniforms behind-the-scenes if needed.
1833
+ throw new DeveloperError(
1834
+ `Appearance and material have a uniform with the same name: ${name}`
1835
+ );
1836
+ }
1837
+ //>>includeEnd('debug');
1838
+
1839
+ appearanceUniformMap[name] = getUniformFunction(
1840
+ appearanceUniforms,
1841
+ name
1842
+ );
1843
+ }
1844
+ }
1845
+ }
1846
+ let uniforms = combine(appearanceUniformMap, materialUniformMap);
1847
+ uniforms = primitive._batchTable.getUniformMapCallback()(uniforms);
1848
+
1849
+ if (defined(primitive.rtcCenter)) {
1850
+ uniforms.u_modifiedModelView = function () {
1851
+ const viewMatrix = frameState.context.uniformState.view;
1852
+ Matrix4.multiply(
1853
+ viewMatrix,
1854
+ primitive._modelMatrix,
1855
+ modifiedModelViewScratch
1856
+ );
1857
+ Matrix4.multiplyByPoint(
1858
+ modifiedModelViewScratch,
1859
+ primitive.rtcCenter,
1860
+ rtcScratch
1861
+ );
1862
+ Matrix4.setTranslation(
1863
+ modifiedModelViewScratch,
1864
+ rtcScratch,
1865
+ modifiedModelViewScratch
1866
+ );
1867
+ return modifiedModelViewScratch;
1868
+ };
1869
+ }
1870
+
1871
+ return uniforms;
1872
+ }
1873
+
1874
+ function createCommands(
1875
+ primitive,
1876
+ appearance,
1877
+ material,
1878
+ translucent,
1879
+ twoPasses,
1880
+ colorCommands,
1881
+ pickCommands,
1882
+ frameState
1883
+ ) {
1884
+ const uniforms = getUniforms(primitive, appearance, material, frameState);
1885
+
1886
+ let depthFailUniforms;
1887
+ if (defined(primitive._depthFailAppearance)) {
1888
+ depthFailUniforms = getUniforms(
1889
+ primitive,
1890
+ primitive._depthFailAppearance,
1891
+ primitive._depthFailAppearance.material,
1892
+ frameState
1893
+ );
1894
+ }
1895
+
1896
+ const pass = translucent ? Pass.TRANSLUCENT : Pass.OPAQUE;
1897
+
1898
+ let multiplier = twoPasses ? 2 : 1;
1899
+ multiplier *= defined(primitive._depthFailAppearance) ? 2 : 1;
1900
+ colorCommands.length = primitive._va.length * multiplier;
1901
+
1902
+ const length = colorCommands.length;
1903
+ let vaIndex = 0;
1904
+ for (let i = 0; i < length; ++i) {
1905
+ let colorCommand;
1906
+
1907
+ if (twoPasses) {
1908
+ colorCommand = colorCommands[i];
1909
+ if (!defined(colorCommand)) {
1910
+ colorCommand = colorCommands[i] = new DrawCommand({
1911
+ owner: primitive,
1912
+ primitiveType: primitive._primitiveType,
1913
+ });
1914
+ }
1915
+ colorCommand.vertexArray = primitive._va[vaIndex];
1916
+ colorCommand.renderState = primitive._backFaceRS;
1917
+ colorCommand.shaderProgram = primitive._sp;
1918
+ colorCommand.uniformMap = uniforms;
1919
+ colorCommand.pass = pass;
1920
+
1921
+ ++i;
1922
+ }
1923
+
1924
+ colorCommand = colorCommands[i];
1925
+ if (!defined(colorCommand)) {
1926
+ colorCommand = colorCommands[i] = new DrawCommand({
1927
+ owner: primitive,
1928
+ primitiveType: primitive._primitiveType,
1929
+ });
1930
+ }
1931
+ colorCommand.vertexArray = primitive._va[vaIndex];
1932
+ colorCommand.renderState = primitive._frontFaceRS;
1933
+ colorCommand.shaderProgram = primitive._sp;
1934
+ colorCommand.uniformMap = uniforms;
1935
+ colorCommand.pass = pass;
1936
+
1937
+ if (defined(primitive._depthFailAppearance)) {
1938
+ if (twoPasses) {
1939
+ ++i;
1940
+
1941
+ colorCommand = colorCommands[i];
1942
+ if (!defined(colorCommand)) {
1943
+ colorCommand = colorCommands[i] = new DrawCommand({
1944
+ owner: primitive,
1945
+ primitiveType: primitive._primitiveType,
1946
+ });
1947
+ }
1948
+ colorCommand.vertexArray = primitive._va[vaIndex];
1949
+ colorCommand.renderState = primitive._backFaceDepthFailRS;
1950
+ colorCommand.shaderProgram = primitive._spDepthFail;
1951
+ colorCommand.uniformMap = depthFailUniforms;
1952
+ colorCommand.pass = pass;
1953
+ }
1954
+
1955
+ ++i;
1956
+
1957
+ colorCommand = colorCommands[i];
1958
+ if (!defined(colorCommand)) {
1959
+ colorCommand = colorCommands[i] = new DrawCommand({
1960
+ owner: primitive,
1961
+ primitiveType: primitive._primitiveType,
1962
+ });
1963
+ }
1964
+ colorCommand.vertexArray = primitive._va[vaIndex];
1965
+ colorCommand.renderState = primitive._frontFaceDepthFailRS;
1966
+ colorCommand.shaderProgram = primitive._spDepthFail;
1967
+ colorCommand.uniformMap = depthFailUniforms;
1968
+ colorCommand.pass = pass;
1969
+ }
1970
+
1971
+ ++vaIndex;
1972
+ }
1973
+ }
1974
+
1975
+ Primitive._updateBoundingVolumes = function (
1976
+ primitive,
1977
+ frameState,
1978
+ modelMatrix,
1979
+ forceUpdate
1980
+ ) {
1981
+ let i;
1982
+ let length;
1983
+ let boundingSphere;
1984
+
1985
+ if (forceUpdate || !Matrix4.equals(modelMatrix, primitive._modelMatrix)) {
1986
+ Matrix4.clone(modelMatrix, primitive._modelMatrix);
1987
+ length = primitive._boundingSpheres.length;
1988
+ for (i = 0; i < length; ++i) {
1989
+ boundingSphere = primitive._boundingSpheres[i];
1990
+ if (defined(boundingSphere)) {
1991
+ primitive._boundingSphereWC[i] = BoundingSphere.transform(
1992
+ boundingSphere,
1993
+ modelMatrix,
1994
+ primitive._boundingSphereWC[i]
1995
+ );
1996
+ if (!frameState.scene3DOnly) {
1997
+ primitive._boundingSphere2D[i] = BoundingSphere.clone(
1998
+ primitive._boundingSphereCV[i],
1999
+ primitive._boundingSphere2D[i]
2000
+ );
2001
+ primitive._boundingSphere2D[i].center.x = 0.0;
2002
+ primitive._boundingSphereMorph[i] = BoundingSphere.union(
2003
+ primitive._boundingSphereWC[i],
2004
+ primitive._boundingSphereCV[i]
2005
+ );
2006
+ }
2007
+ }
2008
+ }
2009
+ }
2010
+
2011
+ // Update bounding volumes for primitives that are sized in pixels.
2012
+ // The pixel size in meters varies based on the distance from the camera.
2013
+ const pixelSize = primitive.appearance.pixelSize;
2014
+ if (defined(pixelSize)) {
2015
+ length = primitive._boundingSpheres.length;
2016
+ for (i = 0; i < length; ++i) {
2017
+ boundingSphere = primitive._boundingSpheres[i];
2018
+ const boundingSphereWC = primitive._boundingSphereWC[i];
2019
+ const pixelSizeInMeters = frameState.camera.getPixelSize(
2020
+ boundingSphere,
2021
+ frameState.context.drawingBufferWidth,
2022
+ frameState.context.drawingBufferHeight
2023
+ );
2024
+ const sizeInMeters = pixelSizeInMeters * pixelSize;
2025
+ boundingSphereWC.radius = boundingSphere.radius + sizeInMeters;
2026
+ }
2027
+ }
2028
+ };
2029
+
2030
+ function updateAndQueueCommands(
2031
+ primitive,
2032
+ frameState,
2033
+ colorCommands,
2034
+ pickCommands,
2035
+ modelMatrix,
2036
+ cull,
2037
+ debugShowBoundingVolume,
2038
+ twoPasses
2039
+ ) {
2040
+ //>>includeStart('debug', pragmas.debug);
2041
+ if (
2042
+ frameState.mode !== SceneMode.SCENE3D &&
2043
+ !Matrix4.equals(modelMatrix, Matrix4.IDENTITY)
2044
+ ) {
2045
+ throw new DeveloperError(
2046
+ "Primitive.modelMatrix is only supported in 3D mode."
2047
+ );
2048
+ }
2049
+ //>>includeEnd('debug');
2050
+
2051
+ Primitive._updateBoundingVolumes(primitive, frameState, modelMatrix);
2052
+
2053
+ let boundingSpheres;
2054
+ if (frameState.mode === SceneMode.SCENE3D) {
2055
+ boundingSpheres = primitive._boundingSphereWC;
2056
+ } else if (frameState.mode === SceneMode.COLUMBUS_VIEW) {
2057
+ boundingSpheres = primitive._boundingSphereCV;
2058
+ } else if (
2059
+ frameState.mode === SceneMode.SCENE2D &&
2060
+ defined(primitive._boundingSphere2D)
2061
+ ) {
2062
+ boundingSpheres = primitive._boundingSphere2D;
2063
+ } else if (defined(primitive._boundingSphereMorph)) {
2064
+ boundingSpheres = primitive._boundingSphereMorph;
2065
+ }
2066
+
2067
+ const commandList = frameState.commandList;
2068
+ const passes = frameState.passes;
2069
+ if (passes.render || passes.pick) {
2070
+ const allowPicking = primitive.allowPicking;
2071
+ const castShadows = ShadowMode.castShadows(primitive.shadows);
2072
+ const receiveShadows = ShadowMode.receiveShadows(primitive.shadows);
2073
+ const colorLength = colorCommands.length;
2074
+
2075
+ let factor = twoPasses ? 2 : 1;
2076
+ factor *= defined(primitive._depthFailAppearance) ? 2 : 1;
2077
+
2078
+ for (let j = 0; j < colorLength; ++j) {
2079
+ const sphereIndex = Math.floor(j / factor);
2080
+ const colorCommand = colorCommands[j];
2081
+ colorCommand.modelMatrix = modelMatrix;
2082
+ colorCommand.boundingVolume = boundingSpheres[sphereIndex];
2083
+ colorCommand.cull = cull;
2084
+ colorCommand.debugShowBoundingVolume = debugShowBoundingVolume;
2085
+ colorCommand.castShadows = castShadows;
2086
+ colorCommand.receiveShadows = receiveShadows;
2087
+
2088
+ if (allowPicking) {
2089
+ colorCommand.pickId = "v_pickColor";
2090
+ } else {
2091
+ colorCommand.pickId = undefined;
2092
+ }
2093
+
2094
+ commandList.push(colorCommand);
2095
+ }
2096
+ }
2097
+ }
2098
+
2099
+ /**
2100
+ * Called when {@link Viewer} or {@link CesiumWidget} render the scene to
2101
+ * get the draw commands needed to render this primitive.
2102
+ * <p>
2103
+ * Do not call this function directly. This is documented just to
2104
+ * list the exceptions that may be propagated when the scene is rendered:
2105
+ * </p>
2106
+ *
2107
+ * @exception {DeveloperError} All instance geometries must have the same primitiveType.
2108
+ * @exception {DeveloperError} Appearance and material have a uniform with the same name.
2109
+ * @exception {DeveloperError} Primitive.modelMatrix is only supported in 3D mode.
2110
+ * @exception {RuntimeError} Vertex texture fetch support is required to render primitives with per-instance attributes. The maximum number of vertex texture image units must be greater than zero.
2111
+ */
2112
+ Primitive.prototype.update = function (frameState) {
2113
+ if (
2114
+ (!defined(this.geometryInstances) && this._va.length === 0) ||
2115
+ (defined(this.geometryInstances) &&
2116
+ Array.isArray(this.geometryInstances) &&
2117
+ this.geometryInstances.length === 0) ||
2118
+ !defined(this.appearance) ||
2119
+ (frameState.mode !== SceneMode.SCENE3D && frameState.scene3DOnly) ||
2120
+ (!frameState.passes.render && !frameState.passes.pick)
2121
+ ) {
2122
+ return;
2123
+ }
2124
+
2125
+ if (defined(this._error)) {
2126
+ throw this._error;
2127
+ }
2128
+
2129
+ //>>includeStart('debug', pragmas.debug);
2130
+ if (defined(this.rtcCenter) && !frameState.scene3DOnly) {
2131
+ throw new DeveloperError(
2132
+ "RTC rendering is only available for 3D only scenes."
2133
+ );
2134
+ }
2135
+ //>>includeEnd('debug');
2136
+
2137
+ if (this._state === PrimitiveState.FAILED) {
2138
+ return;
2139
+ }
2140
+
2141
+ const context = frameState.context;
2142
+ if (!defined(this._batchTable)) {
2143
+ createBatchTable(this, context);
2144
+ }
2145
+ if (this._batchTable.attributes.length > 0) {
2146
+ if (ContextLimits.maximumVertexTextureImageUnits === 0) {
2147
+ throw new RuntimeError(
2148
+ "Vertex texture fetch support is required to render primitives with per-instance attributes. The maximum number of vertex texture image units must be greater than zero."
2149
+ );
2150
+ }
2151
+ this._batchTable.update(frameState);
2152
+ }
2153
+
2154
+ if (
2155
+ this._state !== PrimitiveState.COMPLETE &&
2156
+ this._state !== PrimitiveState.COMBINED
2157
+ ) {
2158
+ if (this.asynchronous) {
2159
+ loadAsynchronous(this, frameState);
2160
+ } else {
2161
+ loadSynchronous(this, frameState);
2162
+ }
2163
+ }
2164
+
2165
+ if (this._state === PrimitiveState.COMBINED) {
2166
+ updateBatchTableBoundingSpheres(this, frameState);
2167
+ updateBatchTableOffsets(this, frameState);
2168
+ createVertexArray(this, frameState);
2169
+ }
2170
+
2171
+ if (!this.show || this._state !== PrimitiveState.COMPLETE) {
2172
+ return;
2173
+ }
2174
+
2175
+ if (!this._batchTableOffsetsUpdated) {
2176
+ updateBatchTableOffsets(this, frameState);
2177
+ }
2178
+ if (this._recomputeBoundingSpheres) {
2179
+ recomputeBoundingSpheres(this, frameState);
2180
+ }
2181
+
2182
+ // Create or recreate render state and shader program if appearance/material changed
2183
+ const appearance = this.appearance;
2184
+ const material = appearance.material;
2185
+ let createRS = false;
2186
+ let createSP = false;
2187
+
2188
+ if (this._appearance !== appearance) {
2189
+ this._appearance = appearance;
2190
+ this._material = material;
2191
+ createRS = true;
2192
+ createSP = true;
2193
+ } else if (this._material !== material) {
2194
+ this._material = material;
2195
+ createSP = true;
2196
+ }
2197
+
2198
+ const depthFailAppearance = this.depthFailAppearance;
2199
+ const depthFailMaterial = defined(depthFailAppearance)
2200
+ ? depthFailAppearance.material
2201
+ : undefined;
2202
+
2203
+ if (this._depthFailAppearance !== depthFailAppearance) {
2204
+ this._depthFailAppearance = depthFailAppearance;
2205
+ this._depthFailMaterial = depthFailMaterial;
2206
+ createRS = true;
2207
+ createSP = true;
2208
+ } else if (this._depthFailMaterial !== depthFailMaterial) {
2209
+ this._depthFailMaterial = depthFailMaterial;
2210
+ createSP = true;
2211
+ }
2212
+
2213
+ const translucent = this._appearance.isTranslucent();
2214
+ if (this._translucent !== translucent) {
2215
+ this._translucent = translucent;
2216
+ createRS = true;
2217
+ }
2218
+
2219
+ if (defined(this._material)) {
2220
+ this._material.update(context);
2221
+ }
2222
+
2223
+ const twoPasses = appearance.closed && translucent;
2224
+
2225
+ if (createRS) {
2226
+ const rsFunc = defaultValue(
2227
+ this._createRenderStatesFunction,
2228
+ createRenderStates
2229
+ );
2230
+ rsFunc(this, context, appearance, twoPasses);
2231
+ }
2232
+
2233
+ if (createSP) {
2234
+ const spFunc = defaultValue(
2235
+ this._createShaderProgramFunction,
2236
+ createShaderProgram
2237
+ );
2238
+ spFunc(this, frameState, appearance);
2239
+ }
2240
+
2241
+ if (createRS || createSP) {
2242
+ const commandFunc = defaultValue(
2243
+ this._createCommandsFunction,
2244
+ createCommands
2245
+ );
2246
+ commandFunc(
2247
+ this,
2248
+ appearance,
2249
+ material,
2250
+ translucent,
2251
+ twoPasses,
2252
+ this._colorCommands,
2253
+ this._pickCommands,
2254
+ frameState
2255
+ );
2256
+ }
2257
+
2258
+ const updateAndQueueCommandsFunc = defaultValue(
2259
+ this._updateAndQueueCommandsFunction,
2260
+ updateAndQueueCommands
2261
+ );
2262
+ updateAndQueueCommandsFunc(
2263
+ this,
2264
+ frameState,
2265
+ this._colorCommands,
2266
+ this._pickCommands,
2267
+ this.modelMatrix,
2268
+ this.cull,
2269
+ this.debugShowBoundingVolume,
2270
+ twoPasses
2271
+ );
2272
+ };
2273
+
2274
+ const offsetBoundingSphereScratch1 = new BoundingSphere();
2275
+ const offsetBoundingSphereScratch2 = new BoundingSphere();
2276
+ function transformBoundingSphere(boundingSphere, offset, offsetAttribute) {
2277
+ if (offsetAttribute === GeometryOffsetAttribute.TOP) {
2278
+ const origBS = BoundingSphere.clone(
2279
+ boundingSphere,
2280
+ offsetBoundingSphereScratch1
2281
+ );
2282
+ const offsetBS = BoundingSphere.clone(
2283
+ boundingSphere,
2284
+ offsetBoundingSphereScratch2
2285
+ );
2286
+ offsetBS.center = Cartesian3.add(offsetBS.center, offset, offsetBS.center);
2287
+ boundingSphere = BoundingSphere.union(origBS, offsetBS, boundingSphere);
2288
+ } else if (offsetAttribute === GeometryOffsetAttribute.ALL) {
2289
+ boundingSphere.center = Cartesian3.add(
2290
+ boundingSphere.center,
2291
+ offset,
2292
+ boundingSphere.center
2293
+ );
2294
+ }
2295
+
2296
+ return boundingSphere;
2297
+ }
2298
+
2299
+ function createGetFunction(batchTable, instanceIndex, attributeIndex) {
2300
+ return function () {
2301
+ const attributeValue = batchTable.getBatchedAttribute(
2302
+ instanceIndex,
2303
+ attributeIndex
2304
+ );
2305
+ const attribute = batchTable.attributes[attributeIndex];
2306
+ const componentsPerAttribute = attribute.componentsPerAttribute;
2307
+ const value = ComponentDatatype.createTypedArray(
2308
+ attribute.componentDatatype,
2309
+ componentsPerAttribute
2310
+ );
2311
+ if (defined(attributeValue.constructor.pack)) {
2312
+ attributeValue.constructor.pack(attributeValue, value, 0);
2313
+ } else {
2314
+ value[0] = attributeValue;
2315
+ }
2316
+ return value;
2317
+ };
2318
+ }
2319
+
2320
+ function createSetFunction(
2321
+ batchTable,
2322
+ instanceIndex,
2323
+ attributeIndex,
2324
+ primitive,
2325
+ name
2326
+ ) {
2327
+ return function (value) {
2328
+ //>>includeStart('debug', pragmas.debug);
2329
+ if (
2330
+ !defined(value) ||
2331
+ !defined(value.length) ||
2332
+ value.length < 1 ||
2333
+ value.length > 4
2334
+ ) {
2335
+ throw new DeveloperError(
2336
+ "value must be and array with length between 1 and 4."
2337
+ );
2338
+ }
2339
+ //>>includeEnd('debug');
2340
+ const attributeValue = getAttributeValue(value);
2341
+ batchTable.setBatchedAttribute(
2342
+ instanceIndex,
2343
+ attributeIndex,
2344
+ attributeValue
2345
+ );
2346
+ if (name === "offset") {
2347
+ primitive._recomputeBoundingSpheres = true;
2348
+ primitive._batchTableOffsetsUpdated = false;
2349
+ }
2350
+ };
2351
+ }
2352
+
2353
+ const offsetScratch = new Cartesian3();
2354
+
2355
+ function createBoundingSphereProperties(primitive, properties, index) {
2356
+ properties.boundingSphere = {
2357
+ get: function () {
2358
+ let boundingSphere = primitive._instanceBoundingSpheres[index];
2359
+ if (defined(boundingSphere)) {
2360
+ boundingSphere = boundingSphere.clone();
2361
+ const modelMatrix = primitive.modelMatrix;
2362
+ const offset = properties.offset;
2363
+ if (defined(offset)) {
2364
+ transformBoundingSphere(
2365
+ boundingSphere,
2366
+ Cartesian3.fromArray(offset.get(), 0, offsetScratch),
2367
+ primitive._offsetInstanceExtend[index]
2368
+ );
2369
+ }
2370
+ if (defined(modelMatrix)) {
2371
+ boundingSphere = BoundingSphere.transform(
2372
+ boundingSphere,
2373
+ modelMatrix
2374
+ );
2375
+ }
2376
+ }
2377
+
2378
+ return boundingSphere;
2379
+ },
2380
+ };
2381
+ properties.boundingSphereCV = {
2382
+ get: function () {
2383
+ return primitive._instanceBoundingSpheresCV[index];
2384
+ },
2385
+ };
2386
+ }
2387
+
2388
+ function createPickIdProperty(primitive, properties, index) {
2389
+ properties.pickId = {
2390
+ get: function () {
2391
+ return primitive._pickIds[index];
2392
+ },
2393
+ };
2394
+ }
2395
+
2396
+ /**
2397
+ * Returns the modifiable per-instance attributes for a {@link GeometryInstance}.
2398
+ *
2399
+ * @param {*} id The id of the {@link GeometryInstance}.
2400
+ * @returns {Object} The typed array in the attribute's format or undefined if the is no instance with id.
2401
+ *
2402
+ * @exception {DeveloperError} must call update before calling getGeometryInstanceAttributes.
2403
+ *
2404
+ * @example
2405
+ * const attributes = primitive.getGeometryInstanceAttributes('an id');
2406
+ * attributes.color = Cesium.ColorGeometryInstanceAttribute.toValue(Cesium.Color.AQUA);
2407
+ * attributes.show = Cesium.ShowGeometryInstanceAttribute.toValue(true);
2408
+ * attributes.distanceDisplayCondition = Cesium.DistanceDisplayConditionGeometryInstanceAttribute.toValue(100.0, 10000.0);
2409
+ * attributes.offset = Cesium.OffsetGeometryInstanceAttribute.toValue(Cartesian3.IDENTITY);
2410
+ */
2411
+ Primitive.prototype.getGeometryInstanceAttributes = function (id) {
2412
+ //>>includeStart('debug', pragmas.debug);
2413
+ if (!defined(id)) {
2414
+ throw new DeveloperError("id is required");
2415
+ }
2416
+ if (!defined(this._batchTable)) {
2417
+ throw new DeveloperError(
2418
+ "must call update before calling getGeometryInstanceAttributes"
2419
+ );
2420
+ }
2421
+ //>>includeEnd('debug');
2422
+
2423
+ let index = -1;
2424
+ const lastIndex = this._lastPerInstanceAttributeIndex;
2425
+ const ids = this._instanceIds;
2426
+ const length = ids.length;
2427
+ for (let i = 0; i < length; ++i) {
2428
+ const curIndex = (lastIndex + i) % length;
2429
+ if (id === ids[curIndex]) {
2430
+ index = curIndex;
2431
+ break;
2432
+ }
2433
+ }
2434
+
2435
+ if (index === -1) {
2436
+ return undefined;
2437
+ }
2438
+
2439
+ let attributes = this._perInstanceAttributeCache[index];
2440
+ if (defined(attributes)) {
2441
+ return attributes;
2442
+ }
2443
+
2444
+ const batchTable = this._batchTable;
2445
+ const perInstanceAttributeIndices = this._batchTableAttributeIndices;
2446
+ attributes = {};
2447
+ const properties = {};
2448
+
2449
+ for (const name in perInstanceAttributeIndices) {
2450
+ if (perInstanceAttributeIndices.hasOwnProperty(name)) {
2451
+ const attributeIndex = perInstanceAttributeIndices[name];
2452
+ properties[name] = {
2453
+ get: createGetFunction(batchTable, index, attributeIndex),
2454
+ set: createSetFunction(batchTable, index, attributeIndex, this, name),
2455
+ };
2456
+ }
2457
+ }
2458
+
2459
+ createBoundingSphereProperties(this, properties, index);
2460
+ createPickIdProperty(this, properties, index);
2461
+ Object.defineProperties(attributes, properties);
2462
+
2463
+ this._lastPerInstanceAttributeIndex = index;
2464
+ this._perInstanceAttributeCache[index] = attributes;
2465
+ return attributes;
2466
+ };
2467
+
2468
+ /**
2469
+ * Returns true if this object was destroyed; otherwise, false.
2470
+ * <p>
2471
+ * If this object was destroyed, it should not be used; calling any function other than
2472
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
2473
+ * </p>
2474
+ *
2475
+ * @returns {Boolean} <code>true</code> if this object was destroyed; otherwise, <code>false</code>.
2476
+ *
2477
+ * @see Primitive#destroy
2478
+ */
2479
+ Primitive.prototype.isDestroyed = function () {
2480
+ return false;
2481
+ };
2482
+
2483
+ /**
2484
+ * Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
2485
+ * release of WebGL resources, instead of relying on the garbage collector to destroy this object.
2486
+ * <p>
2487
+ * Once an object is destroyed, it should not be used; calling any function other than
2488
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
2489
+ * assign the return value (<code>undefined</code>) to the object as done in the example.
2490
+ * </p>
2491
+ *
2492
+ * @exception {DeveloperError} This object was destroyed, i.e., destroy() was called.
2493
+ *
2494
+ *
2495
+ * @example
2496
+ * e = e && e.destroy();
2497
+ *
2498
+ * @see Primitive#isDestroyed
2499
+ */
2500
+ Primitive.prototype.destroy = function () {
2501
+ let length;
2502
+ let i;
2503
+
2504
+ this._sp = this._sp && this._sp.destroy();
2505
+ this._spDepthFail = this._spDepthFail && this._spDepthFail.destroy();
2506
+
2507
+ const va = this._va;
2508
+ length = va.length;
2509
+ for (i = 0; i < length; ++i) {
2510
+ va[i].destroy();
2511
+ }
2512
+ this._va = undefined;
2513
+
2514
+ const pickIds = this._pickIds;
2515
+ length = pickIds.length;
2516
+ for (i = 0; i < length; ++i) {
2517
+ pickIds[i].destroy();
2518
+ }
2519
+ this._pickIds = undefined;
2520
+
2521
+ this._batchTable = this._batchTable && this._batchTable.destroy();
2522
+
2523
+ //These objects may be fairly large and reference other large objects (like Entities)
2524
+ //We explicitly set them to undefined here so that the memory can be freed
2525
+ //even if a reference to the destroyed Primitive has been kept around.
2526
+ this._instanceIds = undefined;
2527
+ this._perInstanceAttributeCache = undefined;
2528
+ this._attributeLocations = undefined;
2529
+
2530
+ return destroyObject(this);
2531
+ };
2532
+
2533
+ function setReady(primitive, frameState, state, error) {
2534
+ primitive._completeLoad(frameState, state, error);
2535
+ }
2536
+ export default Primitive;