@cesium/engine 11.0.0 → 12.0.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 (774) hide show
  1. package/Build/Workers/{chunk-HFPMX5L2.js → chunk-2B5H7KIN.js} +1 -1
  2. package/Build/Workers/{chunk-KKAEXHDY.js → chunk-2RHMHHJH.js} +2 -2
  3. package/Build/Workers/{chunk-AI3O7UN2.js → chunk-3OHDXGFC.js} +6 -6
  4. package/Build/Workers/{chunk-TTI2SUWJ.js → chunk-3OM5QZSI.js} +2 -2
  5. package/Build/Workers/{chunk-2EDC3QGH.js → chunk-3UJV3W4Y.js} +1 -1
  6. package/Build/Workers/{chunk-N3BIL6WA.js → chunk-3X2LXRHU.js} +13 -13
  7. package/Build/Workers/{chunk-FJT3ERV7.js → chunk-4ESQ3DN2.js} +9 -9
  8. package/Build/Workers/{chunk-HO2NTC7I.js → chunk-4IQPX22D.js} +6 -6
  9. package/Build/Workers/{chunk-L6FARMF6.js → chunk-4XPGN5Y7.js} +11 -11
  10. package/Build/Workers/{chunk-4NBRIKB3.js → chunk-56LALJCU.js} +2 -2
  11. package/Build/Workers/{chunk-HC7RYWPZ.js → chunk-5FSKL7US.js} +12 -12
  12. package/Build/Workers/{chunk-54VC7SCM.js → chunk-5YKJKOFE.js} +7 -7
  13. package/Build/Workers/{chunk-6ZREIBKS.js → chunk-62YGXNGC.js} +7 -7
  14. package/Build/Workers/{chunk-BH5ZEN4I.js → chunk-6DYMJ57Z.js} +10 -10
  15. package/Build/Workers/{chunk-AS7P4BHI.js → chunk-7DSVCRFD.js} +6 -6
  16. package/Build/Workers/{chunk-6FFGOENI.js → chunk-7OISMGQF.js} +46 -23
  17. package/Build/Workers/{chunk-BJ3WF5RW.js → chunk-AL7BHP36.js} +6 -6
  18. package/Build/Workers/{chunk-WQRXRDCZ.js → chunk-AOCENJVH.js} +11 -11
  19. package/Build/Workers/{chunk-2MKRG7L7.js → chunk-ARTM66DL.js} +5 -5
  20. package/Build/Workers/{chunk-VSFFJGTA.js → chunk-B4AZL6Q4.js} +5 -5
  21. package/Build/Workers/{chunk-5IY5BXCT.js → chunk-BQNTN4CC.js} +83 -79
  22. package/Build/Workers/{chunk-AUM45VEG.js → chunk-C4IAULHW.js} +15 -15
  23. package/Build/Workers/{chunk-6PJIHPQB.js → chunk-ES6Q5HWK.js} +13 -13
  24. package/Build/Workers/{chunk-DVAIU7A4.js → chunk-GKBICLGC.js} +19 -23
  25. package/Build/Workers/{chunk-IBG5FVXC.js → chunk-GMGUR5GM.js} +4 -4
  26. package/Build/Workers/{chunk-OOA6GXKD.js → chunk-GUW6BS72.js} +7 -7
  27. package/Build/Workers/{chunk-KFW4UNQH.js → chunk-GYHHNFW5.js} +15 -25
  28. package/Build/Workers/{chunk-GOHDOWU5.js → chunk-GZG526CC.js} +14 -14
  29. package/Build/Workers/{chunk-BZXF3GNX.js → chunk-HILBDZUP.js} +2 -2
  30. package/Build/Workers/{chunk-BBO6BGLC.js → chunk-HYUTWUXN.js} +13 -13
  31. package/Build/Workers/{chunk-HA6TZ3XT.js → chunk-IL6SMMDD.js} +4 -4
  32. package/Build/Workers/{chunk-T4MB73MC.js → chunk-IT6AWHFV.js} +2 -2
  33. package/Build/Workers/{chunk-SRZJCF7G.js → chunk-J64XIF5C.js} +10 -36
  34. package/Build/Workers/{chunk-BUOFSNFW.js → chunk-JGGZ3H4W.js} +1 -1
  35. package/Build/Workers/{chunk-SIZXFNJY.js → chunk-JRULXFCC.js} +5 -5
  36. package/Build/Workers/{chunk-QGT2GMOK.js → chunk-MSY2AAW2.js} +4 -4
  37. package/Build/Workers/{chunk-XLCZE6DD.js → chunk-QXBRZZQS.js} +10 -10
  38. package/Build/Workers/{chunk-JYUCC5NV.js → chunk-SXJ37VUC.js} +7 -7
  39. package/Build/Workers/{chunk-OC4MYPVW.js → chunk-T6FZFMTF.js} +2 -2
  40. package/Build/Workers/{chunk-OSCHEWSG.js → chunk-TQK4D4AR.js} +7 -7
  41. package/Build/Workers/{chunk-2RZYNSMR.js → chunk-US3L7FXC.js} +7 -9
  42. package/Build/Workers/{chunk-RFQYEYAL.js → chunk-VGT4ONMC.js} +18 -20
  43. package/Build/Workers/{chunk-VHJ5ESXF.js → chunk-VJVTWBXB.js} +1 -1
  44. package/Build/Workers/{chunk-RJF5ZP76.js → chunk-VQZNBD3T.js} +4 -4
  45. package/Build/Workers/{chunk-WXDGOYTT.js → chunk-VUCVRDLD.js} +7 -7
  46. package/Build/Workers/{chunk-DJXXI7UF.js → chunk-W2Q2F7JS.js} +5 -5
  47. package/Build/Workers/{chunk-HZPMWR4H.js → chunk-WQCX7U65.js} +7 -7
  48. package/Build/Workers/{chunk-HFMJM3SX.js → chunk-WW5RTJ72.js} +1 -1
  49. package/Build/Workers/{chunk-IXLNNST6.js → chunk-X67KKHI7.js} +4 -4
  50. package/Build/Workers/{chunk-4TK5YR6Q.js → chunk-X7VRF25X.js} +5 -5
  51. package/Build/Workers/{chunk-O5SSW3B3.js → chunk-YANQEHO5.js} +6 -6
  52. package/Build/Workers/{chunk-HBZSCVZC.js → chunk-ZZNBFQL5.js} +11 -11
  53. package/Build/Workers/combineGeometry.js +23 -25
  54. package/Build/Workers/createBoxGeometry.js +16 -16
  55. package/Build/Workers/createBoxOutlineGeometry.js +14 -14
  56. package/Build/Workers/createCircleGeometry.js +24 -24
  57. package/Build/Workers/createCircleOutlineGeometry.js +17 -17
  58. package/Build/Workers/createCoplanarPolygonGeometry.js +31 -31
  59. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +29 -29
  60. package/Build/Workers/createCorridorGeometry.js +27 -27
  61. package/Build/Workers/createCorridorOutlineGeometry.js +26 -26
  62. package/Build/Workers/createCylinderGeometry.js +18 -18
  63. package/Build/Workers/createCylinderOutlineGeometry.js +16 -16
  64. package/Build/Workers/createEllipseGeometry.js +24 -24
  65. package/Build/Workers/createEllipseOutlineGeometry.js +17 -17
  66. package/Build/Workers/createEllipsoidGeometry.js +17 -17
  67. package/Build/Workers/createEllipsoidOutlineGeometry.js +16 -16
  68. package/Build/Workers/createFrustumGeometry.js +16 -16
  69. package/Build/Workers/createFrustumOutlineGeometry.js +16 -16
  70. package/Build/Workers/createGeometry.js +25 -26
  71. package/Build/Workers/createGroundPolylineGeometry.js +20 -20
  72. package/Build/Workers/createPlaneGeometry.js +14 -14
  73. package/Build/Workers/createPlaneOutlineGeometry.js +13 -13
  74. package/Build/Workers/createPolygonGeometry.js +36 -40
  75. package/Build/Workers/createPolygonOutlineGeometry.js +40 -48
  76. package/Build/Workers/createPolylineGeometry.js +23 -23
  77. package/Build/Workers/createPolylineVolumeGeometry.js +32 -31
  78. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +25 -25
  79. package/Build/Workers/createRectangleGeometry.js +28 -30
  80. package/Build/Workers/createRectangleOutlineGeometry.js +19 -19
  81. package/Build/Workers/createSimplePolylineGeometry.js +21 -21
  82. package/Build/Workers/createSphereGeometry.js +17 -17
  83. package/Build/Workers/createSphereOutlineGeometry.js +16 -16
  84. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  85. package/Build/Workers/createVectorTileClampedPolylines.js +13 -13
  86. package/Build/Workers/createVectorTileGeometries.js +22 -22
  87. package/Build/Workers/createVectorTilePoints.js +12 -12
  88. package/Build/Workers/createVectorTilePolygons.js +20 -20
  89. package/Build/Workers/createVectorTilePolylines.js +13 -13
  90. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -26
  91. package/Build/Workers/createVerticesFromHeightmap.js +22 -26
  92. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +42 -32
  93. package/Build/Workers/createWallGeometry.js +22 -22
  94. package/Build/Workers/createWallOutlineGeometry.js +21 -21
  95. package/Build/Workers/decodeDraco.js +11 -11
  96. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  97. package/Build/Workers/decodeI3S.js +10 -10
  98. package/Build/Workers/transcodeKTX2.js +7 -7
  99. package/Build/Workers/transferTypedArrayTest.js +1 -1
  100. package/Build/Workers/upsampleQuantizedTerrainMesh.js +20 -20
  101. package/Source/Core/ApproximateTerrainHeights.js +15 -15
  102. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +33 -35
  103. package/Source/Core/AttributeCompression.js +12 -12
  104. package/Source/Core/AxisAlignedBoundingBox.js +2 -2
  105. package/Source/Core/BingMapsGeocoderService.js +1 -1
  106. package/Source/Core/BoundingRectangle.js +3 -3
  107. package/Source/Core/BoundingSphere.js +45 -45
  108. package/Source/Core/BoxGeometry.js +6 -6
  109. package/Source/Core/BoxOutlineGeometry.js +3 -3
  110. package/Source/Core/Cartesian2.js +7 -7
  111. package/Source/Core/Cartesian3.js +20 -20
  112. package/Source/Core/Cartesian4.js +8 -8
  113. package/Source/Core/Cartographic.js +6 -6
  114. package/Source/Core/CatmullRomSpline.js +6 -6
  115. package/Source/Core/CesiumTerrainProvider.js +66 -68
  116. package/Source/Core/Check.d.ts +3 -3
  117. package/Source/Core/Check.js +11 -11
  118. package/Source/Core/CircleGeometry.js +6 -6
  119. package/Source/Core/CircleOutlineGeometry.js +4 -4
  120. package/Source/Core/Clock.js +4 -4
  121. package/Source/Core/Color.js +12 -9
  122. package/Source/Core/ColorGeometryInstanceAttribute.js +1 -1
  123. package/Source/Core/ComponentDatatype.js +4 -4
  124. package/Source/Core/CompressedTextureBuffer.js +2 -2
  125. package/Source/Core/ConstantSpline.js +1 -1
  126. package/Source/Core/CoplanarPolygonGeometry.js +44 -41
  127. package/Source/Core/CoplanarPolygonGeometryLibrary.js +5 -5
  128. package/Source/Core/CoplanarPolygonOutlineGeometry.js +6 -6
  129. package/Source/Core/CorridorGeometry.js +77 -77
  130. package/Source/Core/CorridorGeometryLibrary.js +48 -48
  131. package/Source/Core/CorridorOutlineGeometry.js +16 -16
  132. package/Source/Core/CullingVolume.js +4 -4
  133. package/Source/Core/CustomHeightmapTerrainProvider.js +13 -13
  134. package/Source/Core/CylinderGeometry.js +8 -8
  135. package/Source/Core/CylinderGeometryLibrary.js +1 -1
  136. package/Source/Core/CylinderOutlineGeometry.js +4 -4
  137. package/Source/Core/DeveloperError.js +1 -1
  138. package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +20 -21
  139. package/Source/Core/DoubleEndedPriorityQueue.js +2 -2
  140. package/Source/Core/EarthOrientationParameters.js +21 -25
  141. package/Source/Core/EarthOrientationParametersSample.js +1 -1
  142. package/Source/Core/EllipseGeometry.js +55 -56
  143. package/Source/Core/EllipseGeometryLibrary.js +12 -12
  144. package/Source/Core/EllipseOutlineGeometry.js +19 -19
  145. package/Source/Core/Ellipsoid.js +25 -33
  146. package/Source/Core/EllipsoidGeodesic.js +18 -17
  147. package/Source/Core/EllipsoidGeometry.js +9 -8
  148. package/Source/Core/EllipsoidOutlineGeometry.js +4 -4
  149. package/Source/Core/EllipsoidRhumbLine.js +33 -32
  150. package/Source/Core/EllipsoidTangentPlane.js +16 -16
  151. package/Source/Core/EllipsoidTerrainProvider.js +11 -10
  152. package/Source/Core/EllipsoidalOccluder.js +110 -130
  153. package/Source/Core/FeatureDetection.js +4 -4
  154. package/Source/Core/FrustumGeometry.js +15 -15
  155. package/Source/Core/FrustumOutlineGeometry.js +4 -4
  156. package/Source/Core/GeographicTilingScheme.js +6 -6
  157. package/Source/Core/Geometry.js +15 -17
  158. package/Source/Core/GeometryAttribute.js +4 -9
  159. package/Source/Core/GeometryAttributes.js +6 -6
  160. package/Source/Core/GeometryInstance.js +3 -4
  161. package/Source/Core/GeometryInstanceAttribute.js +1 -6
  162. package/Source/Core/GeometryPipeline.js +133 -137
  163. package/Source/Core/GoogleEarthEnterpriseMetadata.js +19 -20
  164. package/Source/Core/GoogleEarthEnterpriseTerrainData.js +25 -24
  165. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +17 -21
  166. package/Source/Core/GoogleEarthEnterpriseTileInformation.js +2 -2
  167. package/Source/Core/GoogleMaps.js +1 -1
  168. package/Source/Core/GregorianDate.js +4 -4
  169. package/Source/Core/GroundPolylineGeometry.js +104 -104
  170. package/Source/Core/HeadingPitchRoll.js +7 -7
  171. package/Source/Core/HeightmapTerrainData.js +58 -54
  172. package/Source/Core/HeightmapTessellator.js +22 -23
  173. package/Source/Core/HermitePolynomialApproximation.js +8 -8
  174. package/Source/Core/HermiteSpline.js +11 -11
  175. package/Source/Core/HilbertOrder.js +1 -1
  176. package/Source/Core/Iau2006XysData.js +6 -6
  177. package/Source/Core/IauOrientationAxes.js +2 -2
  178. package/Source/Core/IauOrientationParameters.js +1 -1
  179. package/Source/Core/IndexDatatype.js +5 -5
  180. package/Source/Core/IntersectionTests.js +36 -78
  181. package/Source/Core/Intersections2D.js +3 -3
  182. package/Source/Core/Ion.js +1 -1
  183. package/Source/Core/IonGeocoderService.js +2 -2
  184. package/Source/Core/IonResource.js +5 -5
  185. package/Source/Core/Iso8601.js +3 -3
  186. package/Source/Core/JulianDate.js +23 -33
  187. package/Source/Core/KTX2Transcoder.js +2 -2
  188. package/Source/Core/LagrangePolynomialApproximation.js +1 -1
  189. package/Source/Core/LinearApproximation.js +4 -4
  190. package/Source/Core/LinearSpline.js +2 -2
  191. package/Source/Core/Math.js +6 -4
  192. package/Source/Core/Matrix2.js +3 -3
  193. package/Source/Core/Matrix3.js +16 -16
  194. package/Source/Core/Matrix4.js +31 -31
  195. package/Source/Core/MorphWeightSpline.js +2 -2
  196. package/Source/Core/NearFarScalar.js +1 -1
  197. package/Source/Core/Occluder.js +52 -56
  198. package/Source/Core/OpenCageGeocoderService.js +2 -2
  199. package/Source/Core/OrientedBoundingBox.js +52 -51
  200. package/Source/Core/OrthographicFrustum.js +11 -11
  201. package/Source/Core/OrthographicOffCenterFrustum.js +17 -17
  202. package/Source/Core/PeliasGeocoderService.js +1 -1
  203. package/Source/Core/PerspectiveFrustum.js +61 -55
  204. package/Source/Core/PerspectiveOffCenterFrustum.js +58 -59
  205. package/Source/Core/PinBuilder.js +1 -1
  206. package/Source/Core/PixelFormat.js +6 -6
  207. package/Source/Core/Plane.js +9 -9
  208. package/Source/Core/PlaneGeometry.js +1 -1
  209. package/Source/Core/PolygonGeometry.js +95 -94
  210. package/Source/Core/PolygonGeometryLibrary.js +49 -51
  211. package/Source/Core/PolygonOutlineGeometry.js +49 -51
  212. package/Source/Core/PolygonPipeline.js +31 -31
  213. package/Source/Core/PolylineGeometry.js +10 -10
  214. package/Source/Core/PolylinePipeline.js +25 -25
  215. package/Source/Core/PolylineVolumeGeometry.js +9 -9
  216. package/Source/Core/PolylineVolumeGeometryLibrary.js +53 -53
  217. package/Source/Core/PolylineVolumeOutlineGeometry.js +6 -6
  218. package/Source/Core/QuadraticRealPolynomial.js +1 -1
  219. package/Source/Core/QuantizedMeshTerrainData.js +28 -28
  220. package/Source/Core/QuarticRealPolynomial.js +1 -1
  221. package/Source/Core/Quaternion.js +19 -19
  222. package/Source/Core/QuaternionSpline.js +2 -2
  223. package/Source/Core/Rectangle.js +34 -13
  224. package/Source/Core/RectangleCollisionChecker.js +3 -3
  225. package/Source/Core/RectangleGeometry.js +55 -56
  226. package/Source/Core/RectangleGeometryLibrary.js +8 -8
  227. package/Source/Core/RectangleOutlineGeometry.js +20 -20
  228. package/Source/Core/RequestScheduler.js +6 -6
  229. package/Source/Core/Resource.js +24 -24
  230. package/Source/Core/S2Cell.js +16 -80
  231. package/Source/Core/ScreenSpaceEventHandler.js +54 -53
  232. package/Source/Core/Simon1994PlanetaryPositions.js +13 -13
  233. package/Source/Core/SimplePolylineGeometry.js +7 -7
  234. package/Source/Core/SphereGeometry.js +2 -2
  235. package/Source/Core/SphereOutlineGeometry.js +3 -3
  236. package/Source/Core/Spline.js +1 -1
  237. package/Source/Core/SteppedSpline.js +1 -1
  238. package/Source/Core/Stereographic.js +9 -9
  239. package/Source/Core/TaskProcessor.js +13 -13
  240. package/Source/Core/TerrainEncoding.js +33 -38
  241. package/Source/Core/TerrainMesh.js +1 -1
  242. package/Source/Core/TerrainProvider.js +12 -12
  243. package/Source/Core/TileAvailability.js +28 -28
  244. package/Source/Core/TileProviderError.js +5 -5
  245. package/Source/Core/TilingScheme.js +1 -1
  246. package/Source/Core/TimeInterval.js +4 -4
  247. package/Source/Core/TimeIntervalCollection.js +16 -15
  248. package/Source/Core/Tipsify.js +2 -2
  249. package/Source/Core/Transforms.js +52 -54
  250. package/Source/Core/TranslationRotationScale.js +1 -1
  251. package/Source/Core/TridiagonalSystemSolver.js +4 -4
  252. package/Source/Core/VRTheWorldTerrainProvider.js +28 -26
  253. package/Source/Core/VertexFormat.js +6 -6
  254. package/Source/Core/VerticalExaggeration.js +4 -4
  255. package/Source/Core/VideoSynchronizer.js +1 -1
  256. package/Source/Core/WallGeometry.js +18 -18
  257. package/Source/Core/WallGeometryLibrary.js +7 -7
  258. package/Source/Core/WallOutlineGeometry.js +8 -8
  259. package/Source/Core/WebMercatorProjection.js +5 -6
  260. package/Source/Core/WebMercatorTilingScheme.js +13 -13
  261. package/Source/Core/WireframeIndexGenerator.js +8 -8
  262. package/Source/Core/arrayRemoveDuplicates.js +1 -1
  263. package/Source/Core/buildModuleUrl.js +2 -2
  264. package/Source/Core/decodeGoogleEarthEnterpriseData.js +4 -4
  265. package/Source/Core/decodeVectorPolylinePositions.js +4 -4
  266. package/Source/Core/destroyObject.js +1 -1
  267. package/Source/Core/getJsonFromTypedArray.js +1 -1
  268. package/Source/Core/getMagic.js +1 -1
  269. package/Source/Core/loadImageFromTypedArray.js +2 -2
  270. package/Source/Core/loadKTX2.js +1 -1
  271. package/Source/Core/pointInsideTriangle.js +1 -1
  272. package/Source/Core/resizeImageToNextPowerOfTwo.js +1 -1
  273. package/Source/Core/sampleTerrain.js +7 -7
  274. package/Source/Core/sampleTerrainMostDetailed.js +7 -7
  275. package/Source/Core/scaleToGeodeticSurface.js +3 -3
  276. package/Source/Core/srgbToLinear.js +1 -1
  277. package/Source/Core/writeTextToCanvas.js +1 -1
  278. package/Source/DataSources/BillboardGraphics.js +13 -13
  279. package/Source/DataSources/BillboardVisualizer.js +24 -24
  280. package/Source/DataSources/BoxGeometryUpdater.js +33 -32
  281. package/Source/DataSources/BoxGraphics.js +3 -3
  282. package/Source/DataSources/CallbackPositionProperty.js +173 -0
  283. package/Source/DataSources/Cesium3DTilesetGraphics.js +1 -1
  284. package/Source/DataSources/Cesium3DTilesetVisualizer.js +6 -6
  285. package/Source/DataSources/CheckerboardMaterialProperty.js +2 -2
  286. package/Source/DataSources/ColorMaterialProperty.js +1 -1
  287. package/Source/DataSources/CompositeEntityCollection.js +14 -15
  288. package/Source/DataSources/CompositeMaterialProperty.js +5 -7
  289. package/Source/DataSources/CompositePositionProperty.js +4 -5
  290. package/Source/DataSources/CompositeProperty.js +2 -2
  291. package/Source/DataSources/ConstantPositionProperty.js +2 -2
  292. package/Source/DataSources/CorridorGeometryUpdater.js +61 -56
  293. package/Source/DataSources/CorridorGraphics.js +6 -6
  294. package/Source/DataSources/CylinderGeometryUpdater.js +42 -40
  295. package/Source/DataSources/CylinderGraphics.js +4 -4
  296. package/Source/DataSources/CzmlDataSource.js +365 -368
  297. package/Source/DataSources/DataSourceCollection.js +1 -1
  298. package/Source/DataSources/DataSourceDisplay.js +24 -24
  299. package/Source/DataSources/DynamicGeometryBatch.js +2 -2
  300. package/Source/DataSources/DynamicGeometryUpdater.js +14 -18
  301. package/Source/DataSources/EllipseGeometryUpdater.js +67 -63
  302. package/Source/DataSources/EllipseGraphics.js +7 -7
  303. package/Source/DataSources/EllipsoidGeometryUpdater.js +88 -86
  304. package/Source/DataSources/EllipsoidGraphics.js +5 -5
  305. package/Source/DataSources/Entity.js +13 -13
  306. package/Source/DataSources/EntityCluster.js +29 -27
  307. package/Source/DataSources/EntityCollection.js +7 -7
  308. package/Source/DataSources/EntityView.js +23 -23
  309. package/Source/DataSources/GeoJsonDataSource.js +25 -25
  310. package/Source/DataSources/GeometryUpdater.js +9 -10
  311. package/Source/DataSources/GeometryUpdaterSet.js +3 -3
  312. package/Source/DataSources/GeometryVisualizer.js +65 -71
  313. package/Source/DataSources/GpxDataSource.js +10 -10
  314. package/Source/DataSources/GridMaterialProperty.js +5 -5
  315. package/Source/DataSources/GroundGeometryUpdater.js +6 -6
  316. package/Source/DataSources/ImageMaterialProperty.js +2 -2
  317. package/Source/DataSources/KmlDataSource.js +212 -212
  318. package/Source/DataSources/LabelGraphics.js +14 -14
  319. package/Source/DataSources/LabelVisualizer.js +24 -24
  320. package/Source/DataSources/ModelGraphics.js +38 -17
  321. package/Source/DataSources/ModelVisualizer.js +41 -32
  322. package/Source/DataSources/NodeTransformationProperty.js +3 -3
  323. package/Source/DataSources/PathGraphics.js +2 -2
  324. package/Source/DataSources/PathVisualizer.js +99 -35
  325. package/Source/DataSources/PlaneGeometryUpdater.js +38 -37
  326. package/Source/DataSources/PlaneGraphics.js +2 -2
  327. package/Source/DataSources/PointGraphics.js +8 -8
  328. package/Source/DataSources/PointVisualizer.js +29 -29
  329. package/Source/DataSources/PolygonGeometryUpdater.js +68 -64
  330. package/Source/DataSources/PolygonGraphics.js +9 -9
  331. package/Source/DataSources/PolylineArrowMaterialProperty.js +1 -1
  332. package/Source/DataSources/PolylineDashMaterialProperty.js +4 -4
  333. package/Source/DataSources/PolylineGeometryUpdater.js +39 -44
  334. package/Source/DataSources/PolylineGlowMaterialProperty.js +3 -3
  335. package/Source/DataSources/PolylineGraphics.js +4 -4
  336. package/Source/DataSources/PolylineOutlineMaterialProperty.js +3 -3
  337. package/Source/DataSources/PolylineVisualizer.js +39 -43
  338. package/Source/DataSources/PolylineVolumeGeometryUpdater.js +70 -68
  339. package/Source/DataSources/PolylineVolumeGraphics.js +2 -2
  340. package/Source/DataSources/PositionProperty.js +4 -3
  341. package/Source/DataSources/PositionPropertyArray.js +3 -3
  342. package/Source/DataSources/Property.js +1 -1
  343. package/Source/DataSources/PropertyArray.js +1 -1
  344. package/Source/DataSources/PropertyBag.js +5 -5
  345. package/Source/DataSources/RectangleGeometryUpdater.js +68 -63
  346. package/Source/DataSources/RectangleGraphics.js +6 -6
  347. package/Source/DataSources/ReferenceProperty.js +6 -6
  348. package/Source/DataSources/Rotation.js +2 -2
  349. package/Source/DataSources/SampledPositionProperty.js +6 -6
  350. package/Source/DataSources/SampledProperty.js +16 -16
  351. package/Source/DataSources/ScaledPositionProperty.js +2 -2
  352. package/Source/DataSources/StaticGeometryColorBatch.js +41 -41
  353. package/Source/DataSources/StaticGeometryPerMaterialBatch.js +40 -40
  354. package/Source/DataSources/StaticGroundGeometryColorBatch.js +26 -27
  355. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +46 -44
  356. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +44 -43
  357. package/Source/DataSources/StaticOutlineGeometryBatch.js +28 -29
  358. package/Source/DataSources/StripeMaterialProperty.js +2 -2
  359. package/Source/DataSources/TerrainOffsetProperty.js +11 -11
  360. package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +28 -30
  361. package/Source/DataSources/TimeIntervalCollectionProperty.js +1 -1
  362. package/Source/DataSources/VelocityOrientationProperty.js +3 -3
  363. package/Source/DataSources/VelocityVectorProperty.js +4 -4
  364. package/Source/DataSources/WallGeometryUpdater.js +25 -25
  365. package/Source/DataSources/WallGraphics.js +4 -4
  366. package/Source/DataSources/createPropertyDescriptor.js +3 -3
  367. package/Source/DataSources/exportKml.js +90 -86
  368. package/Source/DataSources/getElement.js +1 -1
  369. package/Source/DataSources/heightReferenceOnEntityPropertyChanged.js +4 -4
  370. package/Source/Renderer/AutomaticUniforms.js +14 -1
  371. package/Source/Renderer/Buffer.js +18 -18
  372. package/Source/Renderer/ClearCommand.js +1 -1
  373. package/Source/Renderer/ComputeEngine.js +1 -1
  374. package/Source/Renderer/Context.js +40 -40
  375. package/Source/Renderer/CubeMap.js +109 -32
  376. package/Source/Renderer/CubeMapFace.js +109 -32
  377. package/Source/Renderer/DrawCommand.js +50 -5
  378. package/Source/Renderer/Framebuffer.js +48 -49
  379. package/Source/Renderer/FramebufferManager.js +40 -34
  380. package/Source/Renderer/MultisampleFramebuffer.js +35 -14
  381. package/Source/Renderer/RenderState.js +36 -36
  382. package/Source/Renderer/Renderbuffer.js +3 -3
  383. package/Source/Renderer/Sampler.js +2 -2
  384. package/Source/Renderer/ShaderBuilder.js +8 -8
  385. package/Source/Renderer/ShaderCache.js +11 -15
  386. package/Source/Renderer/ShaderFunction.js +1 -1
  387. package/Source/Renderer/ShaderProgram.js +15 -15
  388. package/Source/Renderer/ShaderSource.js +40 -40
  389. package/Source/Renderer/Texture.js +74 -63
  390. package/Source/Renderer/UniformState.js +78 -58
  391. package/Source/Renderer/VertexArray.js +20 -20
  392. package/Source/Renderer/VertexArrayFacade.js +15 -16
  393. package/Source/Renderer/createUniform.js +1 -1
  394. package/Source/Renderer/createUniformArray.js +4 -4
  395. package/Source/Renderer/demodernizeShader.js +5 -5
  396. package/Source/Renderer/loadCubeMap.js +1 -1
  397. package/Source/Scene/ArcGisMapServerImageryProvider.js +39 -45
  398. package/Source/Scene/ArcGisMapService.js +4 -7
  399. package/Source/Scene/Atmosphere.js +22 -0
  400. package/Source/Scene/AutoExposure.js +4 -5
  401. package/Source/Scene/Axis.js +6 -6
  402. package/Source/Scene/B3dmParser.js +9 -9
  403. package/Source/Scene/BatchTable.js +7 -7
  404. package/Source/Scene/BatchTableHierarchy.js +62 -59
  405. package/Source/Scene/BatchTexture.js +2 -2
  406. package/Source/Scene/Billboard.js +45 -43
  407. package/Source/Scene/BillboardCollection.js +81 -83
  408. package/Source/Scene/BingMapsImageryProvider.js +13 -13
  409. package/Source/Scene/BoundingVolumeSemantics.js +10 -10
  410. package/Source/Scene/BoxEmitter.js +1 -1
  411. package/Source/Scene/BufferLoader.js +1 -1
  412. package/Source/Scene/Camera.js +161 -164
  413. package/Source/Scene/CameraEventAggregator.js +18 -18
  414. package/Source/Scene/CameraFlightPath.js +25 -25
  415. package/Source/Scene/Cesium3DTile.js +89 -95
  416. package/Source/Scene/Cesium3DTileBatchTable.js +61 -61
  417. package/Source/Scene/Cesium3DTileContentFactory.js +7 -7
  418. package/Source/Scene/Cesium3DTileFeature.js +1 -1
  419. package/Source/Scene/Cesium3DTileFeatureTable.js +8 -8
  420. package/Source/Scene/Cesium3DTileOptimizations.js +1 -1
  421. package/Source/Scene/Cesium3DTilePointFeature.js +11 -11
  422. package/Source/Scene/Cesium3DTileStyle.js +26 -24
  423. package/Source/Scene/Cesium3DTilesVoxelProvider.js +14 -20
  424. package/Source/Scene/Cesium3DTileset.js +120 -83
  425. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +8 -16
  426. package/Source/Scene/Cesium3DTilesetCache.js +2 -2
  427. package/Source/Scene/Cesium3DTilesetHeatmap.js +5 -5
  428. package/Source/Scene/Cesium3DTilesetMetadata.js +2 -2
  429. package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +2 -2
  430. package/Source/Scene/Cesium3DTilesetSkipTraversal.js +8 -12
  431. package/Source/Scene/Cesium3DTilesetStatistics.js +1 -1
  432. package/Source/Scene/Cesium3DTilesetTraversal.js +8 -10
  433. package/Source/Scene/ClassificationPrimitive.js +70 -69
  434. package/Source/Scene/ClippingPlaneCollection.js +39 -41
  435. package/Source/Scene/ClippingPolygon.js +8 -8
  436. package/Source/Scene/ClippingPolygonCollection.js +62 -63
  437. package/Source/Scene/CloudCollection.js +3 -10
  438. package/Source/Scene/Composite3DTileContent.js +6 -6
  439. package/Source/Scene/ConditionsExpression.js +5 -5
  440. package/Source/Scene/ContentMetadata.js +4 -4
  441. package/Source/Scene/CreditDisplay.js +8 -8
  442. package/Source/Scene/CumulusCloud.js +4 -4
  443. package/Source/Scene/DebugAppearance.js +2 -2
  444. package/Source/Scene/DebugCameraPrimitive.js +2 -2
  445. package/Source/Scene/DebugInspector.js +3 -3
  446. package/Source/Scene/DebugModelMatrixPrimitive.js +4 -4
  447. package/Source/Scene/DepthPlane.js +7 -7
  448. package/Source/Scene/DerivedCommand.js +422 -238
  449. package/Source/Scene/DiscardMissingTileImagePolicy.js +1 -1
  450. package/Source/Scene/DracoLoader.js +3 -3
  451. package/Source/Scene/DynamicEnvironmentMapManager.js +852 -0
  452. package/Source/Scene/EllipsoidPrimitive.js +7 -7
  453. package/Source/Scene/EllipsoidSurfaceAppearance.js +3 -3
  454. package/Source/Scene/Empty3DTileContent.js +1 -1
  455. package/Source/Scene/Expression.js +91 -91
  456. package/Source/Scene/Fog.js +76 -116
  457. package/Source/Scene/FrameRateMonitor.js +22 -22
  458. package/Source/Scene/FrameState.js +36 -3
  459. package/Source/Scene/Geometry3DTileContent.js +20 -20
  460. package/Source/Scene/GetFeatureInfoFormat.js +15 -14
  461. package/Source/Scene/Globe.js +32 -27
  462. package/Source/Scene/GlobeDepth.js +95 -66
  463. package/Source/Scene/GlobeSurfaceShaderSet.js +12 -10
  464. package/Source/Scene/GlobeSurfaceTile.js +33 -33
  465. package/Source/Scene/GlobeSurfaceTileProvider.js +127 -124
  466. package/Source/Scene/GlobeTranslucency.js +4 -4
  467. package/Source/Scene/GlobeTranslucencyFramebuffer.js +9 -9
  468. package/Source/Scene/GlobeTranslucencyState.js +53 -55
  469. package/Source/Scene/GltfBufferViewLoader.js +2 -2
  470. package/Source/Scene/GltfIndexBufferLoader.js +5 -5
  471. package/Source/Scene/GltfJsonLoader.js +2 -2
  472. package/Source/Scene/GltfLoader.js +177 -100
  473. package/Source/Scene/GltfStructuralMetadataLoader.js +9 -8
  474. package/Source/Scene/GltfTextureLoader.js +5 -5
  475. package/Source/Scene/GltfVertexBufferLoader.js +12 -13
  476. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +9 -9
  477. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +9 -9
  478. package/Source/Scene/GridImageryProvider.js +2 -2
  479. package/Source/Scene/GroundPolylinePrimitive.js +38 -39
  480. package/Source/Scene/GroundPrimitive.js +47 -45
  481. package/Source/Scene/GroupMetadata.js +4 -4
  482. package/Source/Scene/I3SDataProvider.js +12 -12
  483. package/Source/Scene/I3SDecoder.js +7 -8
  484. package/Source/Scene/I3SField.js +8 -8
  485. package/Source/Scene/I3SGeometry.js +14 -14
  486. package/Source/Scene/I3SLayer.js +26 -20
  487. package/Source/Scene/I3SNode.js +17 -17
  488. package/Source/Scene/I3SSublayer.js +4 -4
  489. package/Source/Scene/I3SSymbology.js +8 -8
  490. package/Source/Scene/I3dmParser.js +9 -9
  491. package/Source/Scene/ImageBasedLighting.js +32 -87
  492. package/Source/Scene/Imagery.js +3 -3
  493. package/Source/Scene/ImageryLayer.js +64 -66
  494. package/Source/Scene/ImageryLayerCollection.js +13 -15
  495. package/Source/Scene/ImageryLayerFeatureInfo.js +19 -20
  496. package/Source/Scene/ImageryProvider.js +1 -1
  497. package/Source/Scene/Implicit3DTileContent.js +34 -37
  498. package/Source/Scene/ImplicitAvailabilityBitstream.js +2 -2
  499. package/Source/Scene/ImplicitMetadataView.js +2 -2
  500. package/Source/Scene/ImplicitSubtree.js +29 -30
  501. package/Source/Scene/ImplicitSubtreeCache.js +1 -1
  502. package/Source/Scene/ImplicitSubtreeMetadata.js +5 -5
  503. package/Source/Scene/ImplicitTileCoordinates.js +11 -11
  504. package/Source/Scene/ImplicitTileset.js +2 -2
  505. package/Source/Scene/InvertClassification.js +7 -7
  506. package/Source/Scene/IonImageryProvider.js +6 -6
  507. package/Source/Scene/JobScheduler.js +4 -4
  508. package/Source/Scene/Label.js +29 -29
  509. package/Source/Scene/LabelCollection.js +17 -15
  510. package/Source/Scene/MapboxImageryProvider.js +3 -3
  511. package/Source/Scene/MapboxStyleImageryProvider.js +4 -4
  512. package/Source/Scene/Material.js +26 -27
  513. package/Source/Scene/MaterialAppearance.js +4 -4
  514. package/Source/Scene/Megatexture.js +21 -24
  515. package/Source/Scene/MetadataClassProperty.js +11 -11
  516. package/Source/Scene/MetadataComponentType.js +1 -1
  517. package/Source/Scene/MetadataEntity.js +8 -8
  518. package/Source/Scene/MetadataEnum.js +1 -1
  519. package/Source/Scene/MetadataPicking.js +305 -0
  520. package/Source/Scene/MetadataSchemaLoader.js +1 -1
  521. package/Source/Scene/MetadataTable.js +2 -2
  522. package/Source/Scene/MetadataTableProperty.js +22 -22
  523. package/Source/Scene/Model/AlphaPipelineStage.js +2 -2
  524. package/Source/Scene/Model/AtmospherePipelineStage.js +13 -8
  525. package/Source/Scene/Model/B3dmLoader.js +8 -8
  526. package/Source/Scene/Model/BatchTexturePipelineStage.js +2 -2
  527. package/Source/Scene/Model/CPUStylingPipelineStage.js +4 -4
  528. package/Source/Scene/Model/ClassificationModelDrawCommand.js +8 -8
  529. package/Source/Scene/Model/ClassificationPipelineStage.js +5 -5
  530. package/Source/Scene/Model/CustomShader.js +9 -9
  531. package/Source/Scene/Model/CustomShaderPipelineStage.js +37 -38
  532. package/Source/Scene/Model/DequantizationPipelineStage.js +5 -5
  533. package/Source/Scene/Model/Extensions/Gpm/AnchorPointDirect.js +61 -0
  534. package/Source/Scene/Model/Extensions/Gpm/AnchorPointIndirect.js +77 -0
  535. package/Source/Scene/Model/Extensions/Gpm/CorrelationGroup.js +81 -0
  536. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +248 -0
  537. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLocal.js +179 -0
  538. package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +548 -0
  539. package/Source/Scene/Model/Extensions/Gpm/MeshPrimitiveGpmLocal.js +28 -0
  540. package/Source/Scene/Model/Extensions/Gpm/PpeMetadata.js +79 -0
  541. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +75 -0
  542. package/Source/Scene/Model/Extensions/Gpm/PpeTexture.js +127 -0
  543. package/Source/Scene/Model/Extensions/Gpm/Spdcf.js +103 -0
  544. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +30 -0
  545. package/Source/Scene/Model/FeatureIdPipelineStage.js +40 -40
  546. package/Source/Scene/Model/GeoJsonLoader.js +17 -17
  547. package/Source/Scene/Model/GeometryPipelineStage.js +23 -24
  548. package/Source/Scene/Model/I3dmLoader.js +36 -36
  549. package/Source/Scene/Model/ImageBasedLightingPipelineStage.js +56 -34
  550. package/Source/Scene/Model/InstancingPipelineStage.js +86 -86
  551. package/Source/Scene/Model/LightingPipelineStage.js +4 -4
  552. package/Source/Scene/Model/MaterialPipelineStage.js +78 -93
  553. package/Source/Scene/Model/MetadataPickingPipelineStage.js +96 -0
  554. package/Source/Scene/Model/MetadataPipelineStage.js +39 -47
  555. package/Source/Scene/Model/Model.js +228 -75
  556. package/Source/Scene/Model/Model3DTileContent.js +37 -13
  557. package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
  558. package/Source/Scene/Model/ModelAnimationCollection.js +9 -9
  559. package/Source/Scene/Model/ModelArticulation.js +2 -2
  560. package/Source/Scene/Model/ModelArticulationStage.js +4 -4
  561. package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +11 -11
  562. package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +6 -6
  563. package/Source/Scene/Model/ModelColorPipelineStage.js +12 -13
  564. package/Source/Scene/Model/ModelDrawCommand.js +5 -5
  565. package/Source/Scene/Model/{buildDrawCommand.js → ModelDrawCommands.js} +85 -28
  566. package/Source/Scene/Model/ModelFeatureTable.js +5 -5
  567. package/Source/Scene/Model/ModelMatrixUpdateStage.js +24 -12
  568. package/Source/Scene/Model/ModelRenderResources.js +1 -1
  569. package/Source/Scene/Model/ModelRuntimeNode.js +15 -15
  570. package/Source/Scene/Model/ModelRuntimePrimitive.js +8 -5
  571. package/Source/Scene/Model/ModelSceneGraph.js +43 -43
  572. package/Source/Scene/Model/ModelSilhouettePipelineStage.js +4 -4
  573. package/Source/Scene/Model/ModelSkin.js +4 -4
  574. package/Source/Scene/Model/ModelSplitterPipelineStage.js +8 -9
  575. package/Source/Scene/Model/ModelUtility.js +5 -5
  576. package/Source/Scene/Model/MorphTargetsPipelineStage.js +18 -18
  577. package/Source/Scene/Model/NodeRenderResources.js +1 -1
  578. package/Source/Scene/Model/NodeStatisticsPipelineStage.js +1 -1
  579. package/Source/Scene/Model/PickingPipelineStage.js +5 -5
  580. package/Source/Scene/Model/PntsLoader.js +7 -7
  581. package/Source/Scene/Model/PointCloudStylingPipelineStage.js +22 -23
  582. package/Source/Scene/Model/PrimitiveOutlineGenerator.js +6 -6
  583. package/Source/Scene/Model/PrimitiveOutlinePipelineStage.js +7 -7
  584. package/Source/Scene/Model/PrimitiveRenderResources.js +3 -3
  585. package/Source/Scene/Model/PrimitiveStatisticsPipelineStage.js +1 -1
  586. package/Source/Scene/Model/SceneMode2DPipelineStage.js +23 -23
  587. package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +10 -14
  588. package/Source/Scene/Model/SkinningPipelineStage.js +5 -5
  589. package/Source/Scene/Model/StyleCommandsNeeded.js +1 -1
  590. package/Source/Scene/Model/TextureManager.js +2 -2
  591. package/Source/Scene/Model/TextureUniform.js +3 -3
  592. package/Source/Scene/Model/TilesetPipelineStage.js +2 -2
  593. package/Source/Scene/Model/VerticalExaggerationPipelineStage.js +4 -4
  594. package/Source/Scene/Model/WireframePipelineStage.js +7 -7
  595. package/Source/Scene/Model/pickModel.js +26 -26
  596. package/Source/Scene/ModelComponents.js +13 -4
  597. package/Source/Scene/Moon.js +6 -5
  598. package/Source/Scene/Multiple3DTileContent.js +15 -14
  599. package/Source/Scene/OIT.js +48 -97
  600. package/Source/Scene/OpenStreetMapImageryProvider.js +8 -7
  601. package/Source/Scene/OrderedGroundPrimitiveCollection.js +2 -2
  602. package/Source/Scene/Particle.js +3 -3
  603. package/Source/Scene/ParticleEmitter.js +1 -1
  604. package/Source/Scene/ParticleSystem.js +32 -32
  605. package/Source/Scene/PerInstanceColorAppearance.js +1 -1
  606. package/Source/Scene/PickDepth.js +16 -4
  607. package/Source/Scene/PickDepthFramebuffer.js +1 -1
  608. package/Source/Scene/PickFramebuffer.js +24 -12
  609. package/Source/Scene/PickedMetadataInfo.js +39 -0
  610. package/Source/Scene/Picking.js +270 -120
  611. package/Source/Scene/PntsParser.js +28 -28
  612. package/Source/Scene/PointCloud.js +39 -38
  613. package/Source/Scene/PointCloudEyeDomeLighting.js +6 -6
  614. package/Source/Scene/PointCloudShading.js +3 -3
  615. package/Source/Scene/PointPrimitive.js +31 -28
  616. package/Source/Scene/PointPrimitiveCollection.js +34 -33
  617. package/Source/Scene/Polyline.js +9 -9
  618. package/Source/Scene/PolylineCollection.js +55 -57
  619. package/Source/Scene/PolylineColorAppearance.js +3 -3
  620. package/Source/Scene/PolylineMaterialAppearance.js +3 -3
  621. package/Source/Scene/PostProcessStage.js +95 -115
  622. package/Source/Scene/PostProcessStageCollection.js +35 -41
  623. package/Source/Scene/PostProcessStageComposite.js +2 -2
  624. package/Source/Scene/PostProcessStageLibrary.js +5 -5
  625. package/Source/Scene/PostProcessStageTextureCache.js +10 -10
  626. package/Source/Scene/Primitive.js +93 -93
  627. package/Source/Scene/PrimitiveCollection.js +1 -1
  628. package/Source/Scene/PrimitiveLoadPlan.js +1 -1
  629. package/Source/Scene/PrimitivePipeline.js +30 -30
  630. package/Source/Scene/PropertyTable.js +5 -5
  631. package/Source/Scene/PropertyTextureProperty.js +36 -7
  632. package/Source/Scene/QuadtreePrimitive.js +56 -58
  633. package/Source/Scene/QuadtreeTile.js +4 -4
  634. package/Source/Scene/QuadtreeTileProvider.js +1 -1
  635. package/Source/Scene/ResourceCache.js +7 -7
  636. package/Source/Scene/ResourceCacheKey.js +15 -15
  637. package/Source/Scene/Scene.js +879 -657
  638. package/Source/Scene/SceneFramebuffer.js +2 -2
  639. package/Source/Scene/SceneTransforms.js +30 -30
  640. package/Source/Scene/SceneTransitioner.js +47 -47
  641. package/Source/Scene/ScreenSpaceCameraController.js +180 -154
  642. package/Source/Scene/SensorVolumePortionToDisplay.js +1 -1
  643. package/Source/Scene/ShadowMap.js +71 -72
  644. package/Source/Scene/ShadowMapShader.js +9 -9
  645. package/Source/Scene/ShadowVolumeAppearance.js +39 -39
  646. package/Source/Scene/SingleTileImageryProvider.js +3 -3
  647. package/Source/Scene/SkyAtmosphere.js +8 -8
  648. package/Source/Scene/SkyBox.js +7 -8
  649. package/Source/Scene/SpatialNode.js +13 -13
  650. package/Source/Scene/SphereEmitter.js +1 -1
  651. package/Source/Scene/StructuralMetadata.js +1 -1
  652. package/Source/Scene/StyleExpression.js +1 -1
  653. package/Source/Scene/Sun.js +11 -7
  654. package/Source/Scene/SunPostProcess.js +6 -6
  655. package/Source/Scene/TerrainFillMesh.js +157 -156
  656. package/Source/Scene/TextureAtlas.js +11 -11
  657. package/Source/Scene/TileBoundingRegion.js +31 -31
  658. package/Source/Scene/TileBoundingS2Cell.js +37 -40
  659. package/Source/Scene/TileBoundingSphere.js +2 -2
  660. package/Source/Scene/TileCoordinatesImageryProvider.js +3 -3
  661. package/Source/Scene/TileImagery.js +7 -11
  662. package/Source/Scene/TileMapServiceImageryProvider.js +26 -25
  663. package/Source/Scene/TileMetadata.js +4 -4
  664. package/Source/Scene/TileOrientedBoundingBox.js +6 -6
  665. package/Source/Scene/Tileset3DTileContent.js +1 -1
  666. package/Source/Scene/TilesetMetadata.js +4 -4
  667. package/Source/Scene/TimeDynamicImagery.js +3 -3
  668. package/Source/Scene/TimeDynamicPointCloud.js +9 -9
  669. package/Source/Scene/TranslucentTileClassification.js +48 -58
  670. package/Source/Scene/TweenCollection.js +9 -9
  671. package/Source/Scene/UrlTemplateImageryProvider.js +23 -23
  672. package/Source/Scene/Vector3DTileClampedPolylines.js +21 -21
  673. package/Source/Scene/Vector3DTileContent.js +38 -39
  674. package/Source/Scene/Vector3DTileGeometry.js +11 -8
  675. package/Source/Scene/Vector3DTilePoints.js +18 -22
  676. package/Source/Scene/Vector3DTilePolygons.js +6 -6
  677. package/Source/Scene/Vector3DTilePolylines.js +8 -8
  678. package/Source/Scene/Vector3DTilePrimitive.js +30 -31
  679. package/Source/Scene/View.js +111 -80
  680. package/Source/Scene/VoxelBoxShape.js +34 -34
  681. package/Source/Scene/VoxelCell.js +7 -7
  682. package/Source/Scene/VoxelContent.js +1 -1
  683. package/Source/Scene/VoxelCylinderShape.js +48 -48
  684. package/Source/Scene/VoxelEllipsoidShape.js +83 -97
  685. package/Source/Scene/VoxelPrimitive.js +80 -80
  686. package/Source/Scene/VoxelRenderResources.js +13 -13
  687. package/Source/Scene/VoxelTraversal.js +41 -41
  688. package/Source/Scene/WebMapServiceImageryProvider.js +12 -12
  689. package/Source/Scene/WebMapTileServiceImageryProvider.js +8 -8
  690. package/Source/Scene/buildVoxelDrawCommands.js +10 -14
  691. package/Source/Scene/computeFlyToLocationForRectangle.js +7 -5
  692. package/Source/Scene/createBillboardPointCallback.js +2 -2
  693. package/Source/Scene/createElevationBandMaterial.js +8 -8
  694. package/Source/Scene/createGooglePhotorealistic3DTileset.js +1 -1
  695. package/Source/Scene/createOsmBuildingsAsync.js +1 -1
  696. package/Source/Scene/createTangentSpaceDebugPrimitive.js +7 -7
  697. package/Source/Scene/findContentMetadata.js +2 -2
  698. package/Source/Scene/findTileMetadata.js +2 -2
  699. package/Source/Scene/getBinaryAccessor.js +1 -1
  700. package/Source/Scene/getClipAndStyleCode.js +1 -1
  701. package/Source/Scene/getClippingFunction.js +1 -1
  702. package/Source/Scene/getMetadataClassProperty.js +43 -0
  703. package/Source/Scene/parseBatchTable.js +21 -24
  704. package/Source/Scene/parseFeatureMetadataLegacy.js +3 -3
  705. package/Source/Scene/parseStructuralMetadata.js +3 -3
  706. package/Source/Scene/processVoxelProperties.js +28 -33
  707. package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.glsl +44 -0
  708. package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.js +44 -0
  709. package/Source/Shaders/Builtin/Functions/computeScattering.glsl +0 -1
  710. package/Source/Shaders/Builtin/Functions/computeScattering.js +0 -1
  711. package/Source/Shaders/Builtin/Functions/packDepth.glsl +2 -2
  712. package/Source/Shaders/Builtin/Functions/packDepth.js +2 -2
  713. package/Source/Shaders/Builtin/Functions/sphericalHarmonics.glsl +3 -1
  714. package/Source/Shaders/Builtin/Functions/sphericalHarmonics.js +3 -1
  715. package/Source/Shaders/Builtin/Functions/unpackDepth.glsl +3 -3
  716. package/Source/Shaders/Builtin/Functions/unpackDepth.js +3 -3
  717. package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl +1 -1
  718. package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.js +1 -1
  719. package/Source/Shaders/Builtin/Functions/writeLogDepth.glsl +2 -2
  720. package/Source/Shaders/Builtin/Functions/writeLogDepth.js +2 -2
  721. package/Source/Shaders/ComputeIrradianceFS.glsl +103 -0
  722. package/Source/Shaders/ComputeIrradianceFS.js +105 -0
  723. package/Source/Shaders/ComputeRadianceMapFS.glsl +107 -0
  724. package/Source/Shaders/ComputeRadianceMapFS.js +109 -0
  725. package/Source/Shaders/ConvolveSpecularMapFS.glsl +70 -0
  726. package/Source/Shaders/ConvolveSpecularMapFS.js +72 -0
  727. package/Source/Shaders/ConvolveSpecularMapVS.glsl +24 -0
  728. package/Source/Shaders/ConvolveSpecularMapVS.js +26 -0
  729. package/Source/Shaders/DepthPlaneVS.glsl +1 -1
  730. package/Source/Shaders/DepthPlaneVS.js +1 -1
  731. package/Source/Shaders/GlobeFS.glsl +1 -2
  732. package/Source/Shaders/GlobeFS.js +1 -2
  733. package/Source/Shaders/Model/AtmosphereStageFS.glsl +1 -4
  734. package/Source/Shaders/Model/AtmosphereStageFS.js +1 -4
  735. package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +2 -155
  736. package/Source/Shaders/Model/ImageBasedLightingStageFS.js +3 -156
  737. package/Source/Shaders/Model/LightingStageFS.glsl +3 -22
  738. package/Source/Shaders/Model/LightingStageFS.js +3 -22
  739. package/Source/Shaders/Model/ModelFS.glsl +26 -0
  740. package/Source/Shaders/Model/ModelFS.js +26 -0
  741. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +59 -59
  742. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +60 -60
  743. package/Source/Shaders/SkyBoxVS.glsl +0 -1
  744. package/Source/Shaders/SkyBoxVS.js +0 -1
  745. package/Source/Widget/CesiumWidget.js +785 -9
  746. package/Source/Workers/combineGeometry.js +3 -4
  747. package/Source/Workers/createCircleGeometry.js +2 -2
  748. package/Source/Workers/createCircleOutlineGeometry.js +2 -2
  749. package/Source/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
  750. package/Source/Workers/createCorridorOutlineGeometry.js +2 -2
  751. package/Source/Workers/createEllipsoidOutlineGeometry.js +1 -1
  752. package/Source/Workers/createGeometry.js +4 -5
  753. package/Source/Workers/createGroundPolylineGeometry.js +1 -1
  754. package/Source/Workers/createPolylineVolumeGeometry.js +2 -2
  755. package/Source/Workers/createPolylineVolumeOutlineGeometry.js +4 -4
  756. package/Source/Workers/createRectangleOutlineGeometry.js +1 -1
  757. package/Source/Workers/createSimplePolylineGeometry.js +2 -2
  758. package/Source/Workers/createTaskProcessorWorker.js +1 -1
  759. package/Source/Workers/createVectorTileClampedPolylines.js +30 -30
  760. package/Source/Workers/createVectorTileGeometries.js +18 -18
  761. package/Source/Workers/createVectorTilePoints.js +3 -3
  762. package/Source/Workers/createVectorTilePolygons.js +11 -11
  763. package/Source/Workers/createVectorTilePolylines.js +7 -7
  764. package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +29 -30
  765. package/Source/Workers/createVerticesFromQuantizedTerrainMesh.js +60 -60
  766. package/Source/Workers/decodeDraco.js +23 -23
  767. package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +4 -4
  768. package/Source/Workers/decodeI3S.js +53 -53
  769. package/Source/Workers/transcodeKTX2.js +9 -9
  770. package/Source/Workers/transferTypedArrayTest.js +1 -1
  771. package/Source/Workers/upsampleQuantizedTerrainMesh.js +37 -36
  772. package/index.d.ts +769 -47
  773. package/index.js +73 -51
  774. package/package.json +3 -3
@@ -1,17 +1,24 @@
1
+ import BoxGeometry from "../Core/BoxGeometry.js";
2
+ import Cartesian3 from "../Core/Cartesian3.js";
1
3
  import Check from "../Core/Check.js";
2
4
  import defaultValue from "../Core/defaultValue.js";
3
5
  import defined from "../Core/defined.js";
4
6
  import destroyObject from "../Core/destroyObject.js";
5
7
  import DeveloperError from "../Core/DeveloperError.js";
8
+ import GeometryPipeline from "../Core/GeometryPipeline.js";
6
9
  import CesiumMath from "../Core/Math.js";
7
10
  import PixelFormat from "../Core/PixelFormat.js";
11
+ import VertexFormat from "../Core/VertexFormat.js";
12
+ import BufferUsage from "./BufferUsage.js";
8
13
  import ContextLimits from "./ContextLimits.js";
9
14
  import CubeMapFace from "./CubeMapFace.js";
15
+ import Framebuffer from "./Framebuffer.js";
10
16
  import MipmapHint from "./MipmapHint.js";
11
17
  import PixelDatatype from "./PixelDatatype.js";
12
18
  import Sampler from "./Sampler.js";
13
19
  import TextureMagnificationFilter from "./TextureMagnificationFilter.js";
14
20
  import TextureMinificationFilter from "./TextureMinificationFilter.js";
21
+ import VertexArray from "./VertexArray.js";
15
22
 
16
23
  /**
17
24
  * @typedef CubeMap.BufferSource
@@ -91,13 +98,13 @@ function CubeMap(options) {
91
98
  //>>includeStart('debug', pragmas.debug);
92
99
  if (
93
100
  !Object.values(CubeMap.FaceName).every((faceName) =>
94
- defined(source[faceName])
101
+ defined(source[faceName]),
95
102
  )
96
103
  ) {
97
104
  throw new DeveloperError(
98
105
  `options.source requires faces ${Object.values(CubeMap.FaceName).join(
99
- ", "
100
- )}.`
106
+ ", ",
107
+ )}.`,
101
108
  );
102
109
  }
103
110
  //>>includeEnd('debug');
@@ -105,11 +112,11 @@ function CubeMap(options) {
105
112
  ({ width, height } = source.positiveX);
106
113
 
107
114
  //>>includeStart('debug', pragmas.debug);
108
- for (const faceName of CubeMap.getFaceNames()) {
115
+ for (const faceName of CubeMap.faceNames()) {
109
116
  const face = source[faceName];
110
117
  if (Number(face.width) !== width || Number(face.height) !== height) {
111
118
  throw new DeveloperError(
112
- "Each face in options.source must have the same width and height."
119
+ "Each face in options.source must have the same width and height.",
113
120
  );
114
121
  }
115
122
  }
@@ -121,7 +128,7 @@ function CubeMap(options) {
121
128
  //>>includeStart('debug', pragmas.debug);
122
129
  if (!defined(width) || !defined(height)) {
123
130
  throw new DeveloperError(
124
- "options requires a source field to create an initialized cube map or width and height fields to create a blank cube map."
131
+ "options requires a source field to create an initialized cube map or width and height fields to create a blank cube map.",
125
132
  );
126
133
  }
127
134
 
@@ -135,7 +142,7 @@ function CubeMap(options) {
135
142
 
136
143
  if (size > ContextLimits.maximumCubeMapSize) {
137
144
  throw new DeveloperError(
138
- `Width and height must be less than or equal to the maximum cube map size (${ContextLimits.maximumCubeMapSize}). Check maximumCubeMapSize.`
145
+ `Width and height must be less than or equal to the maximum cube map size (${ContextLimits.maximumCubeMapSize}). Check maximumCubeMapSize.`,
139
146
  );
140
147
  }
141
148
 
@@ -145,7 +152,7 @@ function CubeMap(options) {
145
152
 
146
153
  if (PixelFormat.isDepthFormat(pixelFormat)) {
147
154
  throw new DeveloperError(
148
- "options.pixelFormat cannot be DEPTH_COMPONENT or DEPTH_STENCIL."
155
+ "options.pixelFormat cannot be DEPTH_COMPONENT or DEPTH_STENCIL.",
149
156
  );
150
157
  }
151
158
 
@@ -155,7 +162,7 @@ function CubeMap(options) {
155
162
 
156
163
  if (pixelDatatype === PixelDatatype.FLOAT && !context.floatingPointTexture) {
157
164
  throw new DeveloperError(
158
- "When options.pixelDatatype is FLOAT, this WebGL implementation must support the OES_texture_float extension."
165
+ "When options.pixelDatatype is FLOAT, this WebGL implementation must support the OES_texture_float extension.",
159
166
  );
160
167
  }
161
168
 
@@ -164,7 +171,7 @@ function CubeMap(options) {
164
171
  !context.halfFloatingPointTexture
165
172
  ) {
166
173
  throw new DeveloperError(
167
- "When options.pixelDatatype is HALF_FLOAT, this WebGL implementation must support the OES_texture_half_float extension."
174
+ "When options.pixelDatatype is HALF_FLOAT, this WebGL implementation must support the OES_texture_half_float extension.",
168
175
  );
169
176
  }
170
177
  //>>includeEnd('debug');
@@ -174,7 +181,7 @@ function CubeMap(options) {
174
181
  const internalFormat = PixelFormat.toInternalFormat(
175
182
  pixelFormat,
176
183
  pixelDatatype,
177
- context
184
+ context,
178
185
  );
179
186
 
180
187
  const gl = context._gl;
@@ -206,7 +213,7 @@ function CubeMap(options) {
206
213
  size,
207
214
  preMultiplyAlpha,
208
215
  flipY,
209
- initialized
216
+ initialized,
210
217
  );
211
218
  }
212
219
  this._positiveX = constructFace(gl.TEXTURE_CUBE_MAP_POSITIVE_X);
@@ -227,23 +234,49 @@ function CubeMap(options) {
227
234
  } else {
228
235
  gl.pixelStorei(
229
236
  gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,
230
- gl.BROWSER_DEFAULT_WEBGL
237
+ gl.BROWSER_DEFAULT_WEBGL,
231
238
  );
232
239
  }
233
240
 
234
- for (const faceName of CubeMap.getFaceNames()) {
241
+ for (const faceName of CubeMap.faceNames()) {
235
242
  loadFace(this[faceName], source?.[faceName], 0);
236
243
  }
237
244
 
238
245
  gl.bindTexture(textureTarget, null);
239
246
  }
240
247
 
248
+ /**
249
+ * Copy an existing texture to a cubemap face.
250
+ * @param {FrameState} frameState The current rendering frameState
251
+ * @param {Texture} texture Texture being copied
252
+ * @param {CubeMap.FaceName} face The face to which to copy
253
+ * @param {number} [mipLevel=0] The mip level at which to copy
254
+ */
255
+ CubeMap.prototype.copyFace = function (frameState, texture, face, mipLevel) {
256
+ const context = frameState.context;
257
+ const framebuffer = new Framebuffer({
258
+ context: context,
259
+ colorTextures: [texture],
260
+ destroyAttachments: false,
261
+ });
262
+
263
+ framebuffer._bind();
264
+
265
+ this[face].copyMipmapFromFramebuffer(
266
+ 0,
267
+ 0,
268
+ texture.width,
269
+ texture.height,
270
+ defaultValue(mipLevel, 0),
271
+ );
272
+ framebuffer._unBind();
273
+ framebuffer.destroy();
274
+ };
275
+
241
276
  /**
242
277
  * An enum defining the names of the faces of a cube map.
243
- *
244
278
  * @alias {CubeMap.FaceName}
245
279
  * @enum {string}
246
- *
247
280
  * @private
248
281
  */
249
282
  CubeMap.FaceName = Object.freeze({
@@ -255,7 +288,7 @@ CubeMap.FaceName = Object.freeze({
255
288
  NEGATIVEZ: "negativeZ",
256
289
  });
257
290
 
258
- function* makeFacesIterator() {
291
+ function* makeFaceNamesIterator() {
259
292
  yield CubeMap.FaceName.POSITIVEX;
260
293
  yield CubeMap.FaceName.NEGATIVEX;
261
294
  yield CubeMap.FaceName.POSITIVEY;
@@ -266,22 +299,18 @@ function* makeFacesIterator() {
266
299
 
267
300
  /**
268
301
  * Creates an iterator for looping over the cubemap faces.
269
- *
270
302
  * @type {Iterable<CubeMap.FaceName>}
271
- *
272
303
  * @private
273
304
  */
274
- CubeMap.getFaceNames = function () {
275
- return makeFacesIterator();
305
+ CubeMap.faceNames = function () {
306
+ return makeFaceNamesIterator();
276
307
  };
277
308
 
278
309
  /**
279
310
  * Load texel data into one face of a cube map.
280
- *
281
311
  * @param {CubeMapFace} cubeMapFace The face to which texel values will be loaded.
282
312
  * @param {ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|CubeMap.BufferSource} [source] The source for texel values to be loaded into the texture.
283
313
  * @param {number} [mipLevel=0] The mip level to which the texel values will be loaded.
284
- *
285
314
  * @private
286
315
  */
287
316
  function loadFace(cubeMapFace, source, mipLevel) {
@@ -306,7 +335,7 @@ function loadFace(cubeMapFace, source, mipLevel) {
306
335
  0,
307
336
  pixelFormat,
308
337
  PixelDatatype.toWebGLConstant(pixelDatatype, context),
309
- null
338
+ null,
310
339
  );
311
340
  return;
312
341
  }
@@ -318,7 +347,7 @@ function loadFace(cubeMapFace, source, mipLevel) {
318
347
  unpackAlignment = PixelFormat.alignmentInBytes(
319
348
  pixelFormat,
320
349
  pixelDatatype,
321
- size
350
+ size,
322
351
  );
323
352
  }
324
353
  gl.pixelStorei(gl.UNPACK_ALIGNMENT, unpackAlignment);
@@ -332,7 +361,7 @@ function loadFace(cubeMapFace, source, mipLevel) {
332
361
  pixelFormat,
333
362
  pixelDatatype,
334
363
  size,
335
- size
364
+ size,
336
365
  );
337
366
  }
338
367
  gl.texImage2D(
@@ -344,7 +373,7 @@ function loadFace(cubeMapFace, source, mipLevel) {
344
373
  0,
345
374
  pixelFormat,
346
375
  PixelDatatype.toWebGLConstant(pixelDatatype, context),
347
- arrayBufferView
376
+ arrayBufferView,
348
377
  );
349
378
  } else {
350
379
  // Only valid for DOM-Element uploads
@@ -356,11 +385,13 @@ function loadFace(cubeMapFace, source, mipLevel) {
356
385
  internalFormat,
357
386
  pixelFormat,
358
387
  PixelDatatype.toWebGLConstant(pixelDatatype, context),
359
- source
388
+ source,
360
389
  );
361
390
  }
362
391
  }
363
392
 
393
+ CubeMap.loadFace = loadFace;
394
+
364
395
  Object.defineProperties(CubeMap.prototype, {
365
396
  positiveX: {
366
397
  get: function () {
@@ -447,6 +478,29 @@ Object.defineProperties(CubeMap.prototype, {
447
478
  },
448
479
  });
449
480
 
481
+ /**
482
+ * Get a vector representing the cubemap face direction
483
+ * @param {CubeMap.FaceName} face The relevant face
484
+ * @param {Cartesian3} [result] The object onto which to store the result.
485
+ * @returns {Cartesian3} The vector representing the cubemap face direction
486
+ */
487
+ CubeMap.getDirection = function (face, result) {
488
+ switch (face) {
489
+ case CubeMap.FaceName.POSITIVEX:
490
+ return Cartesian3.clone(Cartesian3.UNIT_X, result);
491
+ case CubeMap.FaceName.NEGATIVEX:
492
+ return Cartesian3.negate(Cartesian3.UNIT_X, result);
493
+ case CubeMap.FaceName.POSITIVEY:
494
+ return Cartesian3.clone(Cartesian3.UNIT_Y, result);
495
+ case CubeMap.FaceName.NEGATIVEY:
496
+ return Cartesian3.negate(Cartesian3.UNIT_Y, result);
497
+ case CubeMap.FaceName.POSITIVEZ:
498
+ return Cartesian3.clone(Cartesian3.UNIT_Z, result);
499
+ case CubeMap.FaceName.NEGATIVEZ:
500
+ return Cartesian3.negate(Cartesian3.UNIT_Z, result);
501
+ }
502
+ };
503
+
450
504
  /**
451
505
  * Set up a sampler for use with a cube map.
452
506
  * @param {CubeMap} cubeMap The cube map containing the texture to be sampled by this sampler.
@@ -492,7 +546,7 @@ function setupSampler(cubeMap, sampler) {
492
546
  gl.texParameteri(
493
547
  target,
494
548
  cubeMap._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,
495
- sampler.maximumAnisotropy
549
+ sampler.maximumAnisotropy,
496
550
  );
497
551
  }
498
552
  gl.bindTexture(target, null);
@@ -531,7 +585,7 @@ CubeMap.prototype.loadMipmaps = function (source, skipColorSpaceConversion) {
531
585
  } else {
532
586
  gl.pixelStorei(
533
587
  gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,
534
- gl.BROWSER_DEFAULT_WEBGL
588
+ gl.BROWSER_DEFAULT_WEBGL,
535
589
  );
536
590
  }
537
591
 
@@ -539,7 +593,7 @@ CubeMap.prototype.loadMipmaps = function (source, skipColorSpaceConversion) {
539
593
  const mipSource = source[i];
540
594
  // mipLevel 0 was the base layer, already loaded when the CubeMap was constructed.
541
595
  const mipLevel = i + 1;
542
- for (const faceName of CubeMap.getFaceNames()) {
596
+ for (const faceName of CubeMap.faceNames()) {
543
597
  loadFace(this[faceName], mipSource[faceName], mipLevel);
544
598
  }
545
599
  }
@@ -573,7 +627,7 @@ CubeMap.prototype.generateMipmap = function (hint) {
573
627
  //>>includeStart('debug', pragmas.debug);
574
628
  if (this._size > 1 && !CesiumMath.isPowerOfTwo(this._size)) {
575
629
  throw new DeveloperError(
576
- "width and height must be a power of two to call generateMipmap()."
630
+ "width and height must be a power of two to call generateMipmap().",
577
631
  );
578
632
  }
579
633
  if (!MipmapHint.validate(hint)) {
@@ -592,6 +646,29 @@ CubeMap.prototype.generateMipmap = function (hint) {
592
646
  gl.bindTexture(target, null);
593
647
  };
594
648
 
649
+ /**
650
+ * Create a vertex array that can be used for cubemap shaders.
651
+ * @param {Context} context The rendering context
652
+ * @returns {VertexArray} The created vertex array
653
+ */
654
+ CubeMap.createVertexArray = function (context) {
655
+ const geometry = BoxGeometry.createGeometry(
656
+ BoxGeometry.fromDimensions({
657
+ dimensions: new Cartesian3(2.0, 2.0, 2.0),
658
+ vertexFormat: VertexFormat.POSITION_ONLY,
659
+ }),
660
+ );
661
+ const attributeLocations = (this._attributeLocations =
662
+ GeometryPipeline.createAttributeLocations(geometry));
663
+
664
+ return VertexArray.fromGeometry({
665
+ context: context,
666
+ geometry: geometry,
667
+ attributeLocations: attributeLocations,
668
+ bufferUsage: BufferUsage.STATIC_DRAW,
669
+ });
670
+ };
671
+
595
672
  CubeMap.prototype.isDestroyed = function () {
596
673
  return false;
597
674
  };
@@ -19,7 +19,7 @@ function CubeMapFace(
19
19
  size,
20
20
  preMultiplyAlpha,
21
21
  flipY,
22
- initialized
22
+ initialized,
23
23
  ) {
24
24
  this._context = context;
25
25
  this._texture = texture;
@@ -99,12 +99,12 @@ CubeMapFace.prototype.copyFrom = function (options) {
99
99
  Check.typeOf.number.greaterThanOrEquals("yOffset", yOffset, 0);
100
100
  if (xOffset + source.width > this._size) {
101
101
  throw new DeveloperError(
102
- "xOffset + options.source.width must be less than or equal to width."
102
+ "xOffset + options.source.width must be less than or equal to width.",
103
103
  );
104
104
  }
105
105
  if (yOffset + source.height > this._size) {
106
106
  throw new DeveloperError(
107
- "yOffset + options.source.height must be less than or equal to height."
107
+ "yOffset + options.source.height must be less than or equal to height.",
108
108
  );
109
109
  }
110
110
  //>>includeEnd('debug');
@@ -133,7 +133,7 @@ CubeMapFace.prototype.copyFrom = function (options) {
133
133
  unpackAlignment = PixelFormat.alignmentInBytes(
134
134
  pixelFormat,
135
135
  pixelDatatype,
136
- width
136
+ width,
137
137
  );
138
138
  }
139
139
  gl.pixelStorei(gl.UNPACK_ALIGNMENT, unpackAlignment);
@@ -143,7 +143,7 @@ CubeMapFace.prototype.copyFrom = function (options) {
143
143
  } else {
144
144
  gl.pixelStorei(
145
145
  gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,
146
- gl.BROWSER_DEFAULT_WEBGL
146
+ gl.BROWSER_DEFAULT_WEBGL,
147
147
  );
148
148
  }
149
149
 
@@ -161,7 +161,7 @@ CubeMapFace.prototype.copyFrom = function (options) {
161
161
  pixelFormat,
162
162
  pixelDatatype,
163
163
  size,
164
- size
164
+ size,
165
165
  );
166
166
  }
167
167
  pixels = arrayBufferView;
@@ -180,7 +180,7 @@ CubeMapFace.prototype.copyFrom = function (options) {
180
180
  pixelFormat,
181
181
  pixelDatatype,
182
182
  size,
183
- size
183
+ size,
184
184
  );
185
185
  }
186
186
  gl.texImage2D(
@@ -192,7 +192,7 @@ CubeMapFace.prototype.copyFrom = function (options) {
192
192
  0,
193
193
  pixelFormat,
194
194
  PixelDatatype.toWebGLConstant(pixelDatatype, this._context),
195
- pixels
195
+ pixels,
196
196
  );
197
197
  this._initialized = true;
198
198
  }
@@ -208,7 +208,7 @@ CubeMapFace.prototype.copyFrom = function (options) {
208
208
  pixelFormat,
209
209
  pixelDatatype,
210
210
  width,
211
- height
211
+ height,
212
212
  );
213
213
  }
214
214
  gl.texSubImage2D(
@@ -220,7 +220,7 @@ CubeMapFace.prototype.copyFrom = function (options) {
220
220
  height,
221
221
  pixelFormat,
222
222
  PixelDatatype.toWebGLConstant(pixelDatatype, this._context),
223
- arrayBufferView
223
+ arrayBufferView,
224
224
  );
225
225
  } else {
226
226
  // Only valid for DOM-Element uploads
@@ -235,7 +235,7 @@ CubeMapFace.prototype.copyFrom = function (options) {
235
235
  yOffset,
236
236
  pixelFormat,
237
237
  PixelDatatype.toWebGLConstant(pixelDatatype, this._context),
238
- source
238
+ source,
239
239
  );
240
240
  }
241
241
  }
@@ -245,25 +245,22 @@ CubeMapFace.prototype.copyFrom = function (options) {
245
245
 
246
246
  /**
247
247
  * Copies texels from the framebuffer to the cubemap's face.
248
- *
249
248
  * @param {number} [xOffset=0] An offset in the x direction in the cubemap where copying begins.
250
249
  * @param {number} [yOffset=0] An offset in the y direction in the cubemap where copying begins.
251
250
  * @param {number} [framebufferXOffset=0] An offset in the x direction in the framebuffer where copying begins from.
252
251
  * @param {number} [framebufferYOffset=0] An offset in the y direction in the framebuffer where copying begins from.
253
252
  * @param {number} [width=CubeMap's width] The width of the subimage to copy.
254
253
  * @param {number} [height=CubeMap's height] The height of the subimage to copy.
255
- *
256
- * @exception {DeveloperError} Cannot call copyFromFramebuffer when the texture pixel data type is FLOAT.
257
- * @exception {DeveloperError} Cannot call copyFromFramebuffer when the texture pixel data type is HALF_FLOAT.
258
- * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
259
- * @exception {DeveloperError} xOffset must be greater than or equal to zero.
260
- * @exception {DeveloperError} yOffset must be greater than or equal to zero.
261
- * @exception {DeveloperError} framebufferXOffset must be greater than or equal to zero.
262
- * @exception {DeveloperError} framebufferYOffset must be greater than or equal to zero.
263
- * @exception {DeveloperError} xOffset + source.width must be less than or equal to width.
264
- * @exception {DeveloperError} yOffset + source.height must be less than or equal to height.
265
- * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
266
- *
254
+ * @throws {DeveloperError} Cannot call copyFromFramebuffer when the texture pixel data type is FLOAT.
255
+ * @throws {DeveloperError} Cannot call copyFromFramebuffer when the texture pixel data type is HALF_FLOAT.
256
+ * @throws {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
257
+ * @throws {DeveloperError} xOffset must be greater than or equal to zero.
258
+ * @throws {DeveloperError} yOffset must be greater than or equal to zero.
259
+ * @throws {DeveloperError} framebufferXOffset must be greater than or equal to zero.
260
+ * @throws {DeveloperError} framebufferYOffset must be greater than or equal to zero.
261
+ * @throws {DeveloperError} xOffset + source.width must be less than or equal to width.
262
+ * @throws {DeveloperError} yOffset + source.height must be less than or equal to height.
263
+ * @throws {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
267
264
  * @example
268
265
  * // Copy the framebuffer contents to the +x cube map face.
269
266
  * cubeMap.positiveX.copyFromFramebuffer();
@@ -274,7 +271,7 @@ CubeMapFace.prototype.copyFromFramebuffer = function (
274
271
  framebufferXOffset,
275
272
  framebufferYOffset,
276
273
  width,
277
- height
274
+ height,
278
275
  ) {
279
276
  xOffset = defaultValue(xOffset, 0);
280
277
  yOffset = defaultValue(yOffset, 0);
@@ -289,31 +286,31 @@ CubeMapFace.prototype.copyFromFramebuffer = function (
289
286
  Check.typeOf.number.greaterThanOrEquals(
290
287
  "framebufferXOffset",
291
288
  framebufferXOffset,
292
- 0
289
+ 0,
293
290
  );
294
291
  Check.typeOf.number.greaterThanOrEquals(
295
292
  "framebufferYOffset",
296
293
  framebufferYOffset,
297
- 0
294
+ 0,
298
295
  );
299
296
  if (xOffset + width > this._size) {
300
297
  throw new DeveloperError(
301
- "xOffset + source.width must be less than or equal to width."
298
+ "xOffset + source.width must be less than or equal to width.",
302
299
  );
303
300
  }
304
301
  if (yOffset + height > this._size) {
305
302
  throw new DeveloperError(
306
- "yOffset + source.height must be less than or equal to height."
303
+ "yOffset + source.height must be less than or equal to height.",
307
304
  );
308
305
  }
309
306
  if (this._pixelDatatype === PixelDatatype.FLOAT) {
310
307
  throw new DeveloperError(
311
- "Cannot call copyFromFramebuffer when the texture pixel data type is FLOAT."
308
+ "Cannot call copyFromFramebuffer when the texture pixel data type is FLOAT.",
312
309
  );
313
310
  }
314
311
  if (this._pixelDatatype === PixelDatatype.HALF_FLOAT) {
315
312
  throw new DeveloperError(
316
- "Cannot call copyFromFramebuffer when the texture pixel data type is HALF_FLOAT."
313
+ "Cannot call copyFromFramebuffer when the texture pixel data type is HALF_FLOAT.",
317
314
  );
318
315
  }
319
316
  //>>includeEnd('debug');
@@ -331,7 +328,87 @@ CubeMapFace.prototype.copyFromFramebuffer = function (
331
328
  framebufferXOffset,
332
329
  framebufferYOffset,
333
330
  width,
334
- height
331
+ height,
332
+ );
333
+ gl.bindTexture(target, null);
334
+ this._initialized = true;
335
+ };
336
+
337
+ /**
338
+ * Copies texels from the framebuffer to the cubemap's face mipmap.
339
+ * @param {number} [xOffset=0] An offset in the x direction in the framebuffer where copying begins from.
340
+ * @param {number} [yOffset=0] An offset in the y direction in the framebuffer where copying begins from.
341
+ * @param {number} [width=CubeMap's width] The width of the subimage to copy.
342
+ * @param {number} [height=CubeMap's height] The height of the subimage to copy.
343
+ * @param {number} [level=0] The level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.
344
+ * @throws {DeveloperError} Cannot call copyFromFramebuffer when the texture pixel data type is FLOAT.
345
+ * @throws {DeveloperError} Cannot call copyFromFramebuffer when the texture pixel data type is HALF_FLOAT.
346
+ * @throws {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
347
+ * @throws {DeveloperError} xOffset must be greater than or equal to zero.
348
+ * @throws {DeveloperError} yOffset must be greater than or equal to zero.
349
+ * @throws {DeveloperError} framebufferXOffset must be greater than or equal to zero.
350
+ * @throws {DeveloperError} framebufferYOffset must be greater than or equal to zero.
351
+ * @throws {DeveloperError} xOffset + source.width must be less than or equal to width.
352
+ * @throws {DeveloperError} yOffset + source.height must be less than or equal to height.
353
+ * @throws {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
354
+ *
355
+ * @example
356
+ * // Copy the framebuffer contents to the +x cube map face.
357
+ * cubeMap.positiveX.copyFromFramebuffer();
358
+ */
359
+ CubeMapFace.prototype.copyMipmapFromFramebuffer = function (
360
+ xOffset,
361
+ yOffset,
362
+ width,
363
+ height,
364
+ level,
365
+ ) {
366
+ xOffset = defaultValue(xOffset, 0);
367
+ yOffset = defaultValue(yOffset, 0);
368
+ width = defaultValue(width, this._size);
369
+ height = defaultValue(height, this._size);
370
+ level = defaultValue(level, 0);
371
+
372
+ //>>includeStart('debug', pragmas.debug);
373
+ Check.typeOf.number.greaterThanOrEquals("xOffset", xOffset, 0);
374
+ Check.typeOf.number.greaterThanOrEquals("yOffset", yOffset, 0);
375
+
376
+ if (xOffset + width > this._size) {
377
+ throw new DeveloperError(
378
+ "xOffset + source.width must be less than or equal to width.",
379
+ );
380
+ }
381
+ if (yOffset + height > this._size) {
382
+ throw new DeveloperError(
383
+ "yOffset + source.height must be less than or equal to height.",
384
+ );
385
+ }
386
+ if (this._pixelDatatype === PixelDatatype.FLOAT) {
387
+ throw new DeveloperError(
388
+ "Cannot call copyFromFramebuffer when the texture pixel data type is FLOAT.",
389
+ );
390
+ }
391
+ if (this._pixelDatatype === PixelDatatype.HALF_FLOAT) {
392
+ throw new DeveloperError(
393
+ "Cannot call copyFromFramebuffer when the texture pixel data type is HALF_FLOAT.",
394
+ );
395
+ }
396
+ //>>includeEnd('debug');
397
+
398
+ const gl = this._context._gl;
399
+ const target = this._textureTarget;
400
+
401
+ gl.activeTexture(gl.TEXTURE0);
402
+ gl.bindTexture(target, this._texture);
403
+ gl.copyTexImage2D(
404
+ this._targetFace,
405
+ level,
406
+ this._internalFormat,
407
+ xOffset,
408
+ yOffset,
409
+ width,
410
+ height,
411
+ 0,
335
412
  );
336
413
  gl.bindTexture(target, null);
337
414
  this._initialized = true;