@cesium/engine 10.1.0 → 11.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 (845) hide show
  1. package/Build/Workers/{chunk-EB7PNZTK.js → chunk-26GA3JAM.js} +6 -5
  2. package/Build/Workers/{chunk-RZLZWKFN.js → chunk-27HUZ7SA.js} +4 -4
  3. package/Build/Workers/{chunk-A5CODJ4M.js → chunk-2ZGOQXYU.js} +6 -6
  4. package/Build/Workers/{chunk-TF776XCO.js → chunk-3Q2L65QU.js} +7 -7
  5. package/Build/Workers/{chunk-NVOABL76.js → chunk-472HQ3EH.js} +5 -5
  6. package/Build/Workers/{chunk-QX5XS4LC.js → chunk-5ODQSF26.js} +2 -2
  7. package/Build/Workers/{chunk-4YSNMHZ4.js → chunk-5OOFQLKF.js} +6 -6
  8. package/Build/Workers/{chunk-OXALEQPI.js → chunk-5PTXS2GO.js} +49 -23
  9. package/Build/Workers/{chunk-T77JILCU.js → chunk-6CHGCNMW.js} +2 -2
  10. package/Build/Workers/{chunk-FEVVHITK.js → chunk-76BYBWHP.js} +4 -4
  11. package/Build/Workers/{chunk-65MZOUNU.js → chunk-7BMOHCPM.js} +13 -13
  12. package/Build/Workers/{chunk-VE7BFUIX.js → chunk-7JO7GPJN.js} +1 -1
  13. package/Build/Workers/{chunk-5BLJ5ZM6.js → chunk-7KTQP4VB.js} +5 -5
  14. package/Build/Workers/{chunk-G5V4GPZE.js → chunk-7O373FFS.js} +8 -34
  15. package/Build/Workers/{chunk-S3PI2KFM.js → chunk-AD63PIY6.js} +2 -2
  16. package/Build/Workers/{chunk-6D66DPRV.js → chunk-BHQJ2NT7.js} +6 -6
  17. package/Build/Workers/{chunk-I2RC4XVN.js → chunk-C6YYBQXW.js} +4 -4
  18. package/Build/Workers/{chunk-X2ZQ7RJR.js → chunk-CKY7HOHV.js} +9 -9
  19. package/Build/Workers/{chunk-TO2PVHKI.js → chunk-DHYHSFFJ.js} +2 -2
  20. package/Build/Workers/{chunk-R6B7UCQB.js → chunk-DI5NGJUP.js} +2 -2
  21. package/Build/Workers/{chunk-X23FRWHJ.js → chunk-E27BLMDD.js} +7 -9
  22. package/Build/Workers/{chunk-N4QEHO3U.js → chunk-E63IIM5T.js} +1 -1
  23. package/Build/Workers/{chunk-BY3E4ONI.js → chunk-E6V6SQZW.js} +6 -6
  24. package/Build/Workers/{chunk-LSSWVB2X.js → chunk-EJZTDTUH.js} +4 -4
  25. package/Build/Workers/{chunk-XLTOBCDI.js → chunk-FDOV2LBJ.js} +7 -7
  26. package/Build/Workers/{chunk-ACRTCBN5.js → chunk-FIGIZHAQ.js} +11 -11
  27. package/Build/Workers/{chunk-4RMIRG6T.js → chunk-GESF4OXQ.js} +2 -2
  28. package/Build/Workers/{chunk-PNFHVBSF.js → chunk-GGZJN2TI.js} +16 -15
  29. package/Build/Workers/{chunk-KV4EQHK4.js → chunk-GNBFYG7F.js} +83 -79
  30. package/Build/Workers/{chunk-FOZWUH4T.js → chunk-GWCFU2SA.js} +7 -7
  31. package/Build/Workers/{chunk-Q55ECN3Y.js → chunk-I2ITFFPX.js} +1 -1
  32. package/Build/Workers/{chunk-XQI7XZHX.js → chunk-IBLIYJZR.js} +6 -6
  33. package/Build/Workers/{chunk-D2U4RI64.js → chunk-JW4FOI6M.js} +7 -7
  34. package/Build/Workers/{chunk-2J3JKXCP.js → chunk-K4GQUNB5.js} +9 -5
  35. package/Build/Workers/{chunk-POSRARY7.js → chunk-M3GMB5OP.js} +10 -10
  36. package/Build/Workers/{chunk-OOK53QUQ.js → chunk-MXIZJAPH.js} +1 -1
  37. package/Build/Workers/{chunk-OWGTMVDB.js → chunk-N5KJGGCM.js} +18 -20
  38. package/Build/Workers/{chunk-J7MQUQJY.js → chunk-NGPPMXRM.js} +12 -7
  39. package/Build/Workers/{chunk-OOMCT7OL.js → chunk-O3E4OAOE.js} +13 -13
  40. package/Build/Workers/{chunk-C3Z23UUJ.js → chunk-PGRPDNHG.js} +19 -23
  41. package/Build/Workers/{chunk-4VFBBNQ3.js → chunk-PRGYLLJT.js} +1 -1
  42. package/Build/Workers/{chunk-XZZNKIEV.js → chunk-S6MRMMQU.js} +6 -6
  43. package/Build/Workers/{chunk-76BYYG7N.js → chunk-SMDOP47J.js} +10 -10
  44. package/Build/Workers/{chunk-ZU334IDQ.js → chunk-TGONEMZO.js} +11 -11
  45. package/Build/Workers/{chunk-VRZ46QZ5.js → chunk-TKVT5GQM.js} +13 -13
  46. package/Build/Workers/{chunk-FDCLACT5.js → chunk-U72QNFOJ.js} +15 -25
  47. package/Build/Workers/{chunk-F3NDOSTZ.js → chunk-VJZB3WAV.js} +7 -7
  48. package/Build/Workers/{chunk-GPJR7MPQ.js → chunk-VU2MNO7L.js} +7 -7
  49. package/Build/Workers/{chunk-R4OIEIPE.js → chunk-XY4BATBS.js} +4 -4
  50. package/Build/Workers/{chunk-T6LPN7RI.js → chunk-YFXQECWV.js} +5 -5
  51. package/Build/Workers/{chunk-UCIPJSZX.js → chunk-YSGTGQQO.js} +14 -14
  52. package/Build/Workers/{chunk-BGE4QVG7.js → chunk-YZ733KKS.js} +12 -12
  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 +26 -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 +28 -5
  97. package/Build/Workers/decodeI3S.js +10 -10
  98. package/Build/Workers/transcodeKTX2.js +19 -18
  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 +44 -44
  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 +11 -8
  122. package/Source/Core/ColorGeometryInstanceAttribute.js +1 -1
  123. package/Source/Core/ComponentDatatype.js +4 -4
  124. package/Source/Core/CompressedTextureBuffer.js +13 -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 +45 -45
  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 +54 -55
  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 +17 -16
  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 +14 -14
  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 +11 -18
  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 +4 -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 +7 -21
  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 +51 -51
  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 +3 -3
  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/CallbackProperty.js +8 -2
  284. package/Source/DataSources/Cesium3DTilesetGraphics.js +1 -1
  285. package/Source/DataSources/Cesium3DTilesetVisualizer.js +6 -6
  286. package/Source/DataSources/CheckerboardMaterialProperty.js +9 -3
  287. package/Source/DataSources/ColorMaterialProperty.js +8 -2
  288. package/Source/DataSources/CompositeEntityCollection.js +14 -15
  289. package/Source/DataSources/CompositeMaterialProperty.js +10 -11
  290. package/Source/DataSources/CompositePositionProperty.js +11 -6
  291. package/Source/DataSources/CompositeProperty.js +7 -7
  292. package/Source/DataSources/ConstantPositionProperty.js +9 -3
  293. package/Source/DataSources/CorridorGeometryUpdater.js +61 -56
  294. package/Source/DataSources/CorridorGraphics.js +6 -6
  295. package/Source/DataSources/CylinderGeometryUpdater.js +42 -40
  296. package/Source/DataSources/CylinderGraphics.js +4 -4
  297. package/Source/DataSources/CzmlDataSource.js +365 -368
  298. package/Source/DataSources/DataSourceCollection.js +1 -1
  299. package/Source/DataSources/DataSourceDisplay.js +23 -23
  300. package/Source/DataSources/DynamicGeometryBatch.js +2 -2
  301. package/Source/DataSources/DynamicGeometryUpdater.js +14 -18
  302. package/Source/DataSources/EllipseGeometryUpdater.js +67 -63
  303. package/Source/DataSources/EllipseGraphics.js +7 -7
  304. package/Source/DataSources/EllipsoidGeometryUpdater.js +88 -86
  305. package/Source/DataSources/EllipsoidGraphics.js +5 -5
  306. package/Source/DataSources/Entity.js +14 -14
  307. package/Source/DataSources/EntityCluster.js +29 -27
  308. package/Source/DataSources/EntityCollection.js +7 -7
  309. package/Source/DataSources/EntityView.js +23 -23
  310. package/Source/DataSources/GeoJsonDataSource.js +25 -25
  311. package/Source/DataSources/GeometryUpdater.js +9 -10
  312. package/Source/DataSources/GeometryUpdaterSet.js +3 -3
  313. package/Source/DataSources/GeometryVisualizer.js +65 -71
  314. package/Source/DataSources/GpxDataSource.js +10 -10
  315. package/Source/DataSources/GridMaterialProperty.js +12 -6
  316. package/Source/DataSources/GroundGeometryUpdater.js +6 -6
  317. package/Source/DataSources/ImageMaterialProperty.js +10 -3
  318. package/Source/DataSources/KmlDataSource.js +212 -212
  319. package/Source/DataSources/LabelGraphics.js +14 -14
  320. package/Source/DataSources/LabelVisualizer.js +24 -24
  321. package/Source/DataSources/MaterialProperty.js +7 -1
  322. package/Source/DataSources/ModelGraphics.js +37 -17
  323. package/Source/DataSources/ModelVisualizer.js +41 -32
  324. package/Source/DataSources/NodeTransformationProperty.js +10 -4
  325. package/Source/DataSources/PathGraphics.js +2 -2
  326. package/Source/DataSources/PathVisualizer.js +99 -35
  327. package/Source/DataSources/PlaneGeometryUpdater.js +38 -37
  328. package/Source/DataSources/PlaneGraphics.js +2 -2
  329. package/Source/DataSources/PointGraphics.js +8 -8
  330. package/Source/DataSources/PointVisualizer.js +29 -29
  331. package/Source/DataSources/PolygonGeometryUpdater.js +68 -64
  332. package/Source/DataSources/PolygonGraphics.js +9 -9
  333. package/Source/DataSources/PolylineArrowMaterialProperty.js +8 -2
  334. package/Source/DataSources/PolylineDashMaterialProperty.js +11 -5
  335. package/Source/DataSources/PolylineGeometryUpdater.js +39 -44
  336. package/Source/DataSources/PolylineGlowMaterialProperty.js +10 -4
  337. package/Source/DataSources/PolylineGraphics.js +4 -4
  338. package/Source/DataSources/PolylineOutlineMaterialProperty.js +10 -4
  339. package/Source/DataSources/PolylineVisualizer.js +39 -43
  340. package/Source/DataSources/PolylineVolumeGeometryUpdater.js +70 -68
  341. package/Source/DataSources/PolylineVolumeGraphics.js +2 -2
  342. package/Source/DataSources/PositionProperty.js +5 -4
  343. package/Source/DataSources/PositionPropertyArray.js +10 -4
  344. package/Source/DataSources/Property.js +2 -2
  345. package/Source/DataSources/PropertyArray.js +6 -6
  346. package/Source/DataSources/PropertyBag.js +10 -9
  347. package/Source/DataSources/RectangleGeometryUpdater.js +68 -63
  348. package/Source/DataSources/RectangleGraphics.js +6 -6
  349. package/Source/DataSources/ReferenceProperty.js +13 -7
  350. package/Source/DataSources/Rotation.js +2 -2
  351. package/Source/DataSources/SampledPositionProperty.js +13 -7
  352. package/Source/DataSources/SampledProperty.js +22 -20
  353. package/Source/DataSources/ScaledPositionProperty.js +8 -2
  354. package/Source/DataSources/StaticGeometryColorBatch.js +41 -41
  355. package/Source/DataSources/StaticGeometryPerMaterialBatch.js +40 -40
  356. package/Source/DataSources/StaticGroundGeometryColorBatch.js +26 -27
  357. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +46 -44
  358. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +44 -43
  359. package/Source/DataSources/StaticOutlineGeometryBatch.js +28 -29
  360. package/Source/DataSources/StripeMaterialProperty.js +9 -3
  361. package/Source/DataSources/TerrainOffsetProperty.js +20 -11
  362. package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +35 -31
  363. package/Source/DataSources/TimeIntervalCollectionProperty.js +6 -6
  364. package/Source/DataSources/VelocityOrientationProperty.js +9 -4
  365. package/Source/DataSources/VelocityVectorProperty.js +7 -9
  366. package/Source/DataSources/WallGeometryUpdater.js +25 -25
  367. package/Source/DataSources/WallGraphics.js +4 -4
  368. package/Source/DataSources/createPropertyDescriptor.js +3 -3
  369. package/Source/DataSources/exportKml.js +90 -86
  370. package/Source/DataSources/getElement.js +1 -1
  371. package/Source/DataSources/heightReferenceOnEntityPropertyChanged.js +4 -4
  372. package/Source/Renderer/AutomaticUniforms.js +3 -18
  373. package/Source/Renderer/Buffer.js +18 -18
  374. package/Source/Renderer/ClearCommand.js +1 -1
  375. package/Source/Renderer/ComputeEngine.js +1 -1
  376. package/Source/Renderer/Context.js +55 -40
  377. package/Source/Renderer/CubeMap.js +332 -354
  378. package/Source/Renderer/CubeMapFace.js +43 -65
  379. package/Source/Renderer/DrawCommand.js +50 -5
  380. package/Source/Renderer/Framebuffer.js +48 -49
  381. package/Source/Renderer/FramebufferManager.js +40 -34
  382. package/Source/Renderer/MultisampleFramebuffer.js +35 -14
  383. package/Source/Renderer/PixelDatatype.js +23 -0
  384. package/Source/Renderer/RenderState.js +36 -36
  385. package/Source/Renderer/Renderbuffer.js +3 -3
  386. package/Source/Renderer/Sampler.js +9 -15
  387. package/Source/Renderer/ShaderBuilder.js +8 -8
  388. package/Source/Renderer/ShaderCache.js +11 -15
  389. package/Source/Renderer/ShaderFunction.js +1 -1
  390. package/Source/Renderer/ShaderProgram.js +22 -15
  391. package/Source/Renderer/ShaderSource.js +40 -40
  392. package/Source/Renderer/Texture.js +455 -380
  393. package/Source/Renderer/UniformState.js +68 -80
  394. package/Source/Renderer/VertexArray.js +20 -20
  395. package/Source/Renderer/VertexArrayFacade.js +15 -16
  396. package/Source/Renderer/createUniform.js +1 -1
  397. package/Source/Renderer/createUniformArray.js +4 -4
  398. package/Source/Renderer/demodernizeShader.js +7 -5
  399. package/Source/Renderer/loadCubeMap.js +3 -8
  400. package/Source/Scene/ArcGisMapServerImageryProvider.js +39 -45
  401. package/Source/Scene/ArcGisMapService.js +4 -7
  402. package/Source/Scene/AutoExposure.js +4 -5
  403. package/Source/Scene/Axis.js +6 -6
  404. package/Source/Scene/B3dmParser.js +9 -9
  405. package/Source/Scene/BatchTable.js +7 -7
  406. package/Source/Scene/BatchTableHierarchy.js +62 -59
  407. package/Source/Scene/BatchTexture.js +2 -2
  408. package/Source/Scene/Billboard.js +45 -43
  409. package/Source/Scene/BillboardCollection.js +81 -83
  410. package/Source/Scene/BingMapsImageryProvider.js +13 -13
  411. package/Source/Scene/BoundingVolumeSemantics.js +10 -10
  412. package/Source/Scene/BoxEmitter.js +1 -1
  413. package/Source/Scene/BufferLoader.js +1 -1
  414. package/Source/Scene/Camera.js +161 -164
  415. package/Source/Scene/CameraEventAggregator.js +67 -23
  416. package/Source/Scene/CameraFlightPath.js +25 -25
  417. package/Source/Scene/Cesium3DTile.js +89 -95
  418. package/Source/Scene/Cesium3DTileBatchTable.js +61 -61
  419. package/Source/Scene/Cesium3DTileContentFactory.js +7 -7
  420. package/Source/Scene/Cesium3DTileFeature.js +1 -1
  421. package/Source/Scene/Cesium3DTileFeatureTable.js +8 -8
  422. package/Source/Scene/Cesium3DTileOptimizations.js +1 -1
  423. package/Source/Scene/Cesium3DTilePointFeature.js +11 -11
  424. package/Source/Scene/Cesium3DTileStyle.js +26 -24
  425. package/Source/Scene/Cesium3DTilesVoxelProvider.js +14 -20
  426. package/Source/Scene/Cesium3DTileset.js +81 -83
  427. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +8 -16
  428. package/Source/Scene/Cesium3DTilesetCache.js +2 -2
  429. package/Source/Scene/Cesium3DTilesetHeatmap.js +5 -5
  430. package/Source/Scene/Cesium3DTilesetMetadata.js +2 -2
  431. package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +2 -2
  432. package/Source/Scene/Cesium3DTilesetSkipTraversal.js +8 -12
  433. package/Source/Scene/Cesium3DTilesetStatistics.js +1 -1
  434. package/Source/Scene/Cesium3DTilesetTraversal.js +8 -10
  435. package/Source/Scene/ClassificationPrimitive.js +70 -69
  436. package/Source/Scene/ClippingPlaneCollection.js +39 -41
  437. package/Source/Scene/ClippingPolygon.js +8 -8
  438. package/Source/Scene/ClippingPolygonCollection.js +62 -63
  439. package/Source/Scene/CloudCollection.js +3 -10
  440. package/Source/Scene/Composite3DTileContent.js +6 -6
  441. package/Source/Scene/ConditionsExpression.js +5 -5
  442. package/Source/Scene/ContentMetadata.js +4 -4
  443. package/Source/Scene/CreditDisplay.js +8 -8
  444. package/Source/Scene/CumulusCloud.js +4 -4
  445. package/Source/Scene/DebugAppearance.js +2 -2
  446. package/Source/Scene/DebugCameraPrimitive.js +2 -2
  447. package/Source/Scene/DebugInspector.js +3 -3
  448. package/Source/Scene/DebugModelMatrixPrimitive.js +4 -4
  449. package/Source/Scene/DepthPlane.js +7 -7
  450. package/Source/Scene/DerivedCommand.js +422 -238
  451. package/Source/Scene/DiscardMissingTileImagePolicy.js +1 -1
  452. package/Source/Scene/DracoLoader.js +3 -3
  453. package/Source/Scene/EllipsoidPrimitive.js +7 -7
  454. package/Source/Scene/EllipsoidSurfaceAppearance.js +3 -3
  455. package/Source/Scene/Empty3DTileContent.js +1 -1
  456. package/Source/Scene/Expression.js +91 -91
  457. package/Source/Scene/Fog.js +8 -41
  458. package/Source/Scene/FrameRateMonitor.js +22 -22
  459. package/Source/Scene/FrameState.js +31 -0
  460. package/Source/Scene/Geometry3DTileContent.js +20 -20
  461. package/Source/Scene/GetFeatureInfoFormat.js +15 -14
  462. package/Source/Scene/Globe.js +33 -28
  463. package/Source/Scene/GlobeDepth.js +95 -66
  464. package/Source/Scene/GlobeSurfaceShaderSet.js +41 -34
  465. package/Source/Scene/GlobeSurfaceTile.js +33 -33
  466. package/Source/Scene/GlobeSurfaceTileProvider.js +132 -127
  467. package/Source/Scene/GlobeTranslucency.js +4 -4
  468. package/Source/Scene/GlobeTranslucencyFramebuffer.js +9 -9
  469. package/Source/Scene/GlobeTranslucencyState.js +53 -55
  470. package/Source/Scene/GltfBufferViewLoader.js +2 -2
  471. package/Source/Scene/GltfIndexBufferLoader.js +5 -5
  472. package/Source/Scene/GltfJsonLoader.js +2 -2
  473. package/Source/Scene/GltfLoader.js +177 -100
  474. package/Source/Scene/GltfStructuralMetadataLoader.js +9 -8
  475. package/Source/Scene/GltfTextureLoader.js +5 -5
  476. package/Source/Scene/GltfVertexBufferLoader.js +12 -13
  477. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +9 -9
  478. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +9 -9
  479. package/Source/Scene/GridImageryProvider.js +2 -2
  480. package/Source/Scene/GroundPolylinePrimitive.js +38 -39
  481. package/Source/Scene/GroundPrimitive.js +47 -45
  482. package/Source/Scene/GroupMetadata.js +4 -4
  483. package/Source/Scene/I3SDataProvider.js +12 -12
  484. package/Source/Scene/I3SDecoder.js +7 -8
  485. package/Source/Scene/I3SField.js +8 -8
  486. package/Source/Scene/I3SGeometry.js +14 -14
  487. package/Source/Scene/I3SLayer.js +26 -20
  488. package/Source/Scene/I3SNode.js +17 -17
  489. package/Source/Scene/I3SSublayer.js +4 -4
  490. package/Source/Scene/I3SSymbology.js +8 -8
  491. package/Source/Scene/I3dmParser.js +9 -9
  492. package/Source/Scene/ImageBasedLighting.js +58 -56
  493. package/Source/Scene/Imagery.js +3 -3
  494. package/Source/Scene/ImageryLayer.js +64 -66
  495. package/Source/Scene/ImageryLayerCollection.js +13 -15
  496. package/Source/Scene/ImageryLayerFeatureInfo.js +19 -20
  497. package/Source/Scene/ImageryProvider.js +1 -1
  498. package/Source/Scene/Implicit3DTileContent.js +34 -37
  499. package/Source/Scene/ImplicitAvailabilityBitstream.js +2 -2
  500. package/Source/Scene/ImplicitMetadataView.js +2 -2
  501. package/Source/Scene/ImplicitSubtree.js +29 -30
  502. package/Source/Scene/ImplicitSubtreeCache.js +1 -1
  503. package/Source/Scene/ImplicitSubtreeMetadata.js +5 -5
  504. package/Source/Scene/ImplicitTileCoordinates.js +11 -11
  505. package/Source/Scene/ImplicitTileset.js +2 -2
  506. package/Source/Scene/InvertClassification.js +7 -7
  507. package/Source/Scene/IonImageryProvider.js +6 -6
  508. package/Source/Scene/JobScheduler.js +4 -4
  509. package/Source/Scene/Label.js +31 -31
  510. package/Source/Scene/LabelCollection.js +17 -15
  511. package/Source/Scene/MapboxImageryProvider.js +3 -3
  512. package/Source/Scene/MapboxStyleImageryProvider.js +4 -4
  513. package/Source/Scene/Material.js +50 -29
  514. package/Source/Scene/MaterialAppearance.js +4 -4
  515. package/Source/Scene/Megatexture.js +21 -24
  516. package/Source/Scene/MetadataClassProperty.js +11 -11
  517. package/Source/Scene/MetadataComponentType.js +1 -1
  518. package/Source/Scene/MetadataEntity.js +8 -8
  519. package/Source/Scene/MetadataEnum.js +1 -1
  520. package/Source/Scene/MetadataPicking.js +305 -0
  521. package/Source/Scene/MetadataSchemaLoader.js +1 -1
  522. package/Source/Scene/MetadataTable.js +2 -2
  523. package/Source/Scene/MetadataTableProperty.js +22 -22
  524. package/Source/Scene/Model/AlphaPipelineStage.js +2 -2
  525. package/Source/Scene/Model/AtmospherePipelineStage.js +3 -3
  526. package/Source/Scene/Model/B3dmLoader.js +8 -8
  527. package/Source/Scene/Model/BatchTexturePipelineStage.js +2 -2
  528. package/Source/Scene/Model/CPUStylingPipelineStage.js +4 -4
  529. package/Source/Scene/Model/ClassificationModelDrawCommand.js +8 -8
  530. package/Source/Scene/Model/ClassificationPipelineStage.js +5 -5
  531. package/Source/Scene/Model/CustomShader.js +9 -9
  532. package/Source/Scene/Model/CustomShaderPipelineStage.js +37 -38
  533. package/Source/Scene/Model/DequantizationPipelineStage.js +5 -5
  534. package/Source/Scene/Model/Extensions/Gpm/AnchorPointDirect.js +61 -0
  535. package/Source/Scene/Model/Extensions/Gpm/AnchorPointIndirect.js +77 -0
  536. package/Source/Scene/Model/Extensions/Gpm/CorrelationGroup.js +81 -0
  537. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +248 -0
  538. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLocal.js +179 -0
  539. package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +548 -0
  540. package/Source/Scene/Model/Extensions/Gpm/MeshPrimitiveGpmLocal.js +28 -0
  541. package/Source/Scene/Model/Extensions/Gpm/PpeMetadata.js +79 -0
  542. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +75 -0
  543. package/Source/Scene/Model/Extensions/Gpm/PpeTexture.js +127 -0
  544. package/Source/Scene/Model/Extensions/Gpm/Spdcf.js +103 -0
  545. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +30 -0
  546. package/Source/Scene/Model/FeatureIdPipelineStage.js +40 -40
  547. package/Source/Scene/Model/GeoJsonLoader.js +17 -17
  548. package/Source/Scene/Model/GeometryPipelineStage.js +23 -24
  549. package/Source/Scene/Model/I3dmLoader.js +36 -36
  550. package/Source/Scene/Model/ImageBasedLightingPipelineStage.js +22 -30
  551. package/Source/Scene/Model/InstancingPipelineStage.js +86 -86
  552. package/Source/Scene/Model/LightingPipelineStage.js +4 -4
  553. package/Source/Scene/Model/MaterialPipelineStage.js +78 -93
  554. package/Source/Scene/Model/MetadataPickingPipelineStage.js +96 -0
  555. package/Source/Scene/Model/MetadataPipelineStage.js +39 -47
  556. package/Source/Scene/Model/Model.js +134 -54
  557. package/Source/Scene/Model/Model3DTileContent.js +32 -13
  558. package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
  559. package/Source/Scene/Model/ModelAnimationCollection.js +9 -9
  560. package/Source/Scene/Model/ModelArticulation.js +2 -2
  561. package/Source/Scene/Model/ModelArticulationStage.js +4 -4
  562. package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +11 -11
  563. package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +6 -6
  564. package/Source/Scene/Model/ModelColorPipelineStage.js +12 -13
  565. package/Source/Scene/Model/ModelDrawCommand.js +5 -5
  566. package/Source/Scene/Model/{buildDrawCommand.js → ModelDrawCommands.js} +85 -28
  567. package/Source/Scene/Model/ModelFeatureTable.js +5 -5
  568. package/Source/Scene/Model/ModelMatrixUpdateStage.js +24 -12
  569. package/Source/Scene/Model/ModelRenderResources.js +1 -1
  570. package/Source/Scene/Model/ModelRuntimeNode.js +15 -15
  571. package/Source/Scene/Model/ModelRuntimePrimitive.js +8 -5
  572. package/Source/Scene/Model/ModelSceneGraph.js +42 -43
  573. package/Source/Scene/Model/ModelSilhouettePipelineStage.js +4 -4
  574. package/Source/Scene/Model/ModelSkin.js +4 -4
  575. package/Source/Scene/Model/ModelSplitterPipelineStage.js +8 -9
  576. package/Source/Scene/Model/ModelUtility.js +5 -5
  577. package/Source/Scene/Model/MorphTargetsPipelineStage.js +18 -18
  578. package/Source/Scene/Model/NodeRenderResources.js +1 -1
  579. package/Source/Scene/Model/NodeStatisticsPipelineStage.js +1 -1
  580. package/Source/Scene/Model/PickingPipelineStage.js +5 -5
  581. package/Source/Scene/Model/PntsLoader.js +7 -7
  582. package/Source/Scene/Model/PointCloudStylingPipelineStage.js +22 -23
  583. package/Source/Scene/Model/PrimitiveOutlineGenerator.js +6 -6
  584. package/Source/Scene/Model/PrimitiveOutlinePipelineStage.js +7 -7
  585. package/Source/Scene/Model/PrimitiveRenderResources.js +3 -3
  586. package/Source/Scene/Model/PrimitiveStatisticsPipelineStage.js +1 -1
  587. package/Source/Scene/Model/SceneMode2DPipelineStage.js +23 -23
  588. package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +10 -14
  589. package/Source/Scene/Model/SkinningPipelineStage.js +5 -5
  590. package/Source/Scene/Model/StyleCommandsNeeded.js +1 -1
  591. package/Source/Scene/Model/TextureManager.js +2 -2
  592. package/Source/Scene/Model/TextureUniform.js +3 -3
  593. package/Source/Scene/Model/TilesetPipelineStage.js +2 -2
  594. package/Source/Scene/Model/VerticalExaggerationPipelineStage.js +4 -4
  595. package/Source/Scene/Model/WireframePipelineStage.js +7 -7
  596. package/Source/Scene/Model/pickModel.js +26 -26
  597. package/Source/Scene/ModelComponents.js +13 -4
  598. package/Source/Scene/Moon.js +6 -5
  599. package/Source/Scene/Multiple3DTileContent.js +15 -14
  600. package/Source/Scene/OIT.js +48 -97
  601. package/Source/Scene/OpenStreetMapImageryProvider.js +8 -7
  602. package/Source/Scene/OrderedGroundPrimitiveCollection.js +2 -2
  603. package/Source/Scene/Particle.js +3 -3
  604. package/Source/Scene/ParticleEmitter.js +1 -1
  605. package/Source/Scene/ParticleSystem.js +32 -32
  606. package/Source/Scene/PerInstanceColorAppearance.js +1 -1
  607. package/Source/Scene/PickDepth.js +16 -4
  608. package/Source/Scene/PickDepthFramebuffer.js +1 -1
  609. package/Source/Scene/PickFramebuffer.js +24 -12
  610. package/Source/Scene/PickedMetadataInfo.js +39 -0
  611. package/Source/Scene/Picking.js +270 -120
  612. package/Source/Scene/PntsParser.js +28 -28
  613. package/Source/Scene/PointCloud.js +39 -38
  614. package/Source/Scene/PointCloudEyeDomeLighting.js +6 -6
  615. package/Source/Scene/PointCloudShading.js +3 -3
  616. package/Source/Scene/PointPrimitive.js +31 -28
  617. package/Source/Scene/PointPrimitiveCollection.js +34 -33
  618. package/Source/Scene/Polyline.js +9 -9
  619. package/Source/Scene/PolylineCollection.js +55 -57
  620. package/Source/Scene/PolylineColorAppearance.js +3 -3
  621. package/Source/Scene/PolylineMaterialAppearance.js +3 -3
  622. package/Source/Scene/PostProcessStage.js +95 -115
  623. package/Source/Scene/PostProcessStageCollection.js +73 -49
  624. package/Source/Scene/PostProcessStageComposite.js +2 -2
  625. package/Source/Scene/PostProcessStageLibrary.js +30 -4
  626. package/Source/Scene/PostProcessStageTextureCache.js +10 -10
  627. package/Source/Scene/Primitive.js +93 -93
  628. package/Source/Scene/PrimitiveCollection.js +1 -1
  629. package/Source/Scene/PrimitiveLoadPlan.js +1 -1
  630. package/Source/Scene/PrimitivePipeline.js +30 -30
  631. package/Source/Scene/PropertyTable.js +5 -5
  632. package/Source/Scene/PropertyTextureProperty.js +36 -7
  633. package/Source/Scene/QuadtreePrimitive.js +56 -58
  634. package/Source/Scene/QuadtreeTile.js +4 -4
  635. package/Source/Scene/QuadtreeTileProvider.js +1 -1
  636. package/Source/Scene/ResourceCache.js +7 -7
  637. package/Source/Scene/ResourceCacheKey.js +15 -15
  638. package/Source/Scene/Scene.js +897 -677
  639. package/Source/Scene/SceneFramebuffer.js +2 -2
  640. package/Source/Scene/SceneTransforms.js +30 -92
  641. package/Source/Scene/SceneTransitioner.js +47 -47
  642. package/Source/Scene/ScreenSpaceCameraController.js +171 -157
  643. package/Source/Scene/SensorVolumePortionToDisplay.js +1 -1
  644. package/Source/Scene/ShadowMap.js +71 -72
  645. package/Source/Scene/ShadowMapShader.js +9 -9
  646. package/Source/Scene/ShadowVolumeAppearance.js +39 -39
  647. package/Source/Scene/SingleTileImageryProvider.js +3 -3
  648. package/Source/Scene/SkyAtmosphere.js +8 -8
  649. package/Source/Scene/SkyBox.js +17 -24
  650. package/Source/Scene/SpatialNode.js +13 -13
  651. package/Source/Scene/SpecularEnvironmentCubeMap.js +240 -0
  652. package/Source/Scene/SphereEmitter.js +1 -1
  653. package/Source/Scene/StructuralMetadata.js +1 -1
  654. package/Source/Scene/StyleExpression.js +1 -1
  655. package/Source/Scene/Sun.js +11 -7
  656. package/Source/Scene/SunPostProcess.js +6 -6
  657. package/Source/Scene/TerrainFillMesh.js +157 -156
  658. package/Source/Scene/TextureAtlas.js +11 -11
  659. package/Source/Scene/TileBoundingRegion.js +31 -31
  660. package/Source/Scene/TileBoundingS2Cell.js +37 -40
  661. package/Source/Scene/TileBoundingSphere.js +2 -2
  662. package/Source/Scene/TileCoordinatesImageryProvider.js +3 -3
  663. package/Source/Scene/TileImagery.js +7 -11
  664. package/Source/Scene/TileMapServiceImageryProvider.js +26 -25
  665. package/Source/Scene/TileMetadata.js +4 -4
  666. package/Source/Scene/TileOrientedBoundingBox.js +6 -6
  667. package/Source/Scene/Tileset3DTileContent.js +1 -1
  668. package/Source/Scene/TilesetMetadata.js +4 -4
  669. package/Source/Scene/TimeDynamicImagery.js +3 -3
  670. package/Source/Scene/TimeDynamicPointCloud.js +9 -9
  671. package/Source/Scene/Tonemapper.js +35 -23
  672. package/Source/Scene/TranslucentTileClassification.js +48 -58
  673. package/Source/Scene/TweenCollection.js +9 -9
  674. package/Source/Scene/UrlTemplateImageryProvider.js +23 -23
  675. package/Source/Scene/Vector3DTileClampedPolylines.js +21 -21
  676. package/Source/Scene/Vector3DTileContent.js +38 -39
  677. package/Source/Scene/Vector3DTileGeometry.js +11 -8
  678. package/Source/Scene/Vector3DTilePoints.js +18 -22
  679. package/Source/Scene/Vector3DTilePolygons.js +6 -6
  680. package/Source/Scene/Vector3DTilePolylines.js +8 -8
  681. package/Source/Scene/Vector3DTilePrimitive.js +30 -31
  682. package/Source/Scene/View.js +111 -80
  683. package/Source/Scene/VoxelBoxShape.js +34 -34
  684. package/Source/Scene/VoxelCell.js +7 -7
  685. package/Source/Scene/VoxelContent.js +1 -1
  686. package/Source/Scene/VoxelCylinderShape.js +48 -48
  687. package/Source/Scene/VoxelEllipsoidShape.js +83 -97
  688. package/Source/Scene/VoxelPrimitive.js +80 -109
  689. package/Source/Scene/VoxelRenderResources.js +13 -16
  690. package/Source/Scene/VoxelTraversal.js +41 -41
  691. package/Source/Scene/WebMapServiceImageryProvider.js +12 -12
  692. package/Source/Scene/WebMapTileServiceImageryProvider.js +8 -8
  693. package/Source/Scene/buildVoxelDrawCommands.js +10 -14
  694. package/Source/Scene/computeFlyToLocationForRectangle.js +7 -5
  695. package/Source/Scene/createBillboardPointCallback.js +2 -2
  696. package/Source/Scene/createElevationBandMaterial.js +8 -8
  697. package/Source/Scene/createGooglePhotorealistic3DTileset.js +1 -1
  698. package/Source/Scene/createOsmBuildingsAsync.js +1 -1
  699. package/Source/Scene/createTangentSpaceDebugPrimitive.js +7 -7
  700. package/Source/Scene/findContentMetadata.js +2 -2
  701. package/Source/Scene/findTileMetadata.js +2 -2
  702. package/Source/Scene/getBinaryAccessor.js +1 -1
  703. package/Source/Scene/getClipAndStyleCode.js +1 -1
  704. package/Source/Scene/getClippingFunction.js +1 -1
  705. package/Source/Scene/getMetadataClassProperty.js +43 -0
  706. package/Source/Scene/parseBatchTable.js +21 -24
  707. package/Source/Scene/parseFeatureMetadataLegacy.js +3 -3
  708. package/Source/Scene/parseStructuralMetadata.js +3 -3
  709. package/Source/Scene/processVoxelProperties.js +28 -33
  710. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -2
  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/pbrLighting.glsl +2 -2
  714. package/Source/Shaders/Builtin/Functions/pbrLighting.js +2 -2
  715. package/Source/Shaders/Builtin/Functions/pbrNeutralTonemapping.glsl +23 -0
  716. package/Source/Shaders/Builtin/Functions/pbrNeutralTonemapping.js +25 -0
  717. package/Source/Shaders/Builtin/Functions/textureCube.glsl +21 -2
  718. package/Source/Shaders/Builtin/Functions/textureCube.js +21 -2
  719. package/Source/Shaders/Builtin/Functions/unpackDepth.glsl +3 -3
  720. package/Source/Shaders/Builtin/Functions/unpackDepth.js +3 -3
  721. package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl +1 -1
  722. package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.js +1 -1
  723. package/Source/Shaders/Builtin/Functions/writeLogDepth.glsl +2 -2
  724. package/Source/Shaders/Builtin/Functions/writeLogDepth.js +2 -2
  725. package/Source/Shaders/Builtin/Structs/materialInput.glsl +2 -0
  726. package/Source/Shaders/Builtin/Structs/materialInput.js +2 -0
  727. package/Source/Shaders/DepthPlaneVS.glsl +1 -1
  728. package/Source/Shaders/DepthPlaneVS.js +1 -1
  729. package/Source/Shaders/GlobeFS.glsl +10 -4
  730. package/Source/Shaders/GlobeFS.js +10 -4
  731. package/Source/Shaders/Materials/WaterMaskMaterial.glsl +15 -0
  732. package/Source/Shaders/Materials/WaterMaskMaterial.js +17 -0
  733. package/Source/Shaders/Model/AtmosphereStageFS.glsl +1 -1
  734. package/Source/Shaders/Model/AtmosphereStageFS.js +1 -1
  735. package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +40 -29
  736. package/Source/Shaders/Model/ImageBasedLightingStageFS.js +40 -29
  737. package/Source/Shaders/Model/LightingStageFS.glsl +2 -2
  738. package/Source/Shaders/Model/LightingStageFS.js +2 -2
  739. package/Source/Shaders/Model/ModelFS.glsl +26 -0
  740. package/Source/Shaders/Model/ModelFS.js +26 -0
  741. package/Source/Shaders/PostProcessStages/AcesTonemappingStage.glsl +4 -0
  742. package/Source/Shaders/PostProcessStages/AcesTonemappingStage.js +4 -0
  743. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +59 -59
  744. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +60 -60
  745. package/Source/Shaders/PostProcessStages/FilmicTonemapping.glsl +4 -0
  746. package/Source/Shaders/PostProcessStages/FilmicTonemapping.js +4 -0
  747. package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.glsl +4 -0
  748. package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.js +4 -0
  749. package/Source/Shaders/PostProcessStages/PbrNeutralTonemapping.glsl +25 -0
  750. package/Source/Shaders/PostProcessStages/PbrNeutralTonemapping.js +27 -0
  751. package/Source/Shaders/PostProcessStages/ReinhardTonemapping.glsl +4 -0
  752. package/Source/Shaders/PostProcessStages/ReinhardTonemapping.js +4 -0
  753. package/Source/Shaders/SkyAtmosphereFS.glsl +1 -1
  754. package/Source/Shaders/SkyAtmosphereFS.js +1 -1
  755. package/Source/Widget/CesiumWidget.js +10 -9
  756. package/Source/Workers/combineGeometry.js +3 -4
  757. package/Source/Workers/createCircleGeometry.js +2 -2
  758. package/Source/Workers/createCircleOutlineGeometry.js +2 -2
  759. package/Source/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
  760. package/Source/Workers/createCorridorOutlineGeometry.js +2 -2
  761. package/Source/Workers/createEllipsoidOutlineGeometry.js +1 -1
  762. package/Source/Workers/createGeometry.js +4 -5
  763. package/Source/Workers/createGroundPolylineGeometry.js +1 -1
  764. package/Source/Workers/createPolylineVolumeGeometry.js +2 -2
  765. package/Source/Workers/createPolylineVolumeOutlineGeometry.js +4 -4
  766. package/Source/Workers/createRectangleOutlineGeometry.js +1 -1
  767. package/Source/Workers/createSimplePolylineGeometry.js +2 -2
  768. package/Source/Workers/createTaskProcessorWorker.js +1 -1
  769. package/Source/Workers/createVectorTileClampedPolylines.js +30 -30
  770. package/Source/Workers/createVectorTileGeometries.js +18 -18
  771. package/Source/Workers/createVectorTilePoints.js +3 -3
  772. package/Source/Workers/createVectorTilePolygons.js +11 -11
  773. package/Source/Workers/createVectorTilePolylines.js +7 -7
  774. package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +29 -30
  775. package/Source/Workers/createVerticesFromQuantizedTerrainMesh.js +60 -60
  776. package/Source/Workers/decodeDraco.js +23 -23
  777. package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +3 -3
  778. package/Source/Workers/decodeI3S.js +53 -53
  779. package/Source/Workers/transcodeKTX2.js +9 -9
  780. package/Source/Workers/transferTypedArrayTest.js +1 -1
  781. package/Source/Workers/upsampleQuantizedTerrainMesh.js +37 -36
  782. package/index.d.ts +620 -136
  783. package/index.js +221 -205
  784. package/package.json +3 -3
  785. package/Build/Workers/chunk-2GEAGYUY.js +0 -1477
  786. package/Build/Workers/chunk-3WUV74WM.js +0 -1800
  787. package/Build/Workers/chunk-4MSUJ4I7.js +0 -456
  788. package/Build/Workers/chunk-5KWHSZYL.js +0 -834
  789. package/Build/Workers/chunk-5O6JWQ4E.js +0 -398
  790. package/Build/Workers/chunk-6OFDHMHR.js +0 -1258
  791. package/Build/Workers/chunk-AA4GZKOT.js +0 -75
  792. package/Build/Workers/chunk-B75IEX2S.js +0 -390
  793. package/Build/Workers/chunk-BAVI3ZS2.js +0 -39
  794. package/Build/Workers/chunk-BBDZYSZB.js +0 -287
  795. package/Build/Workers/chunk-C45MU4GZ.js +0 -220
  796. package/Build/Workers/chunk-CF7P7K7E.js +0 -684
  797. package/Build/Workers/chunk-D4K27X2M.js +0 -305
  798. package/Build/Workers/chunk-DKVHRNFY.js +0 -100
  799. package/Build/Workers/chunk-ELI4BUOT.js +0 -963
  800. package/Build/Workers/chunk-FQPSOOPH.js +0 -258
  801. package/Build/Workers/chunk-GNHZH7HP.js +0 -37
  802. package/Build/Workers/chunk-GWT64LKY.js +0 -171
  803. package/Build/Workers/chunk-HGEEOMSC.js +0 -157
  804. package/Build/Workers/chunk-IUROUBPA.js +0 -300
  805. package/Build/Workers/chunk-JNLWLSTP.js +0 -476
  806. package/Build/Workers/chunk-JYQNWIQQ.js +0 -44
  807. package/Build/Workers/chunk-KUN2ZA5X.js +0 -138
  808. package/Build/Workers/chunk-LXQ5QAEJ.js +0 -196
  809. package/Build/Workers/chunk-MBZH7YZ7.js +0 -945
  810. package/Build/Workers/chunk-MKXWJTFQ.js +0 -781
  811. package/Build/Workers/chunk-MMV6TO3P.js +0 -101
  812. package/Build/Workers/chunk-MSKXMXJI.js +0 -500
  813. package/Build/Workers/chunk-OAPA2RTG.js +0 -239
  814. package/Build/Workers/chunk-OE4MCOC7.js +0 -421
  815. package/Build/Workers/chunk-OJF4RTJG.js +0 -634
  816. package/Build/Workers/chunk-OXSI7N4C.js +0 -768
  817. package/Build/Workers/chunk-PYHLO636.js +0 -2857
  818. package/Build/Workers/chunk-QD4KM3GO.js +0 -138
  819. package/Build/Workers/chunk-QMLTCCYG.js +0 -55
  820. package/Build/Workers/chunk-QYQIVZBU.js +0 -117
  821. package/Build/Workers/chunk-R3TKLC6E.js +0 -1075
  822. package/Build/Workers/chunk-R4ZEWO4I.js +0 -122
  823. package/Build/Workers/chunk-RCK55EDX.js +0 -691
  824. package/Build/Workers/chunk-RHBWXX7C.js +0 -629
  825. package/Build/Workers/chunk-SAPFXU5X.js +0 -102
  826. package/Build/Workers/chunk-TBBFDFCS.js +0 -368
  827. package/Build/Workers/chunk-TGY6H6N6.js +0 -163
  828. package/Build/Workers/chunk-UOEUCKKU.js +0 -59
  829. package/Build/Workers/chunk-VFBNELXB.js +0 -353
  830. package/Build/Workers/chunk-VYWUFRRR.js +0 -1052
  831. package/Build/Workers/chunk-WVSELU6O.js +0 -2716
  832. package/Build/Workers/chunk-X43SJLQL.js +0 -10364
  833. package/Build/Workers/chunk-XUOJCLOH.js +0 -511
  834. package/Build/Workers/chunk-YLYBLJ3Y.js +0 -73
  835. package/Build/Workers/chunk-ZEE2EIFD.js +0 -430
  836. package/Build/Workers/chunk-ZIKGV7EL.js +0 -58
  837. package/Source/Scene/OctahedralProjectedCubeMap.js +0 -444
  838. package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.glsl +0 -78
  839. package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.js +0 -80
  840. package/Source/Shaders/OctahedralProjectionAtlasFS.glsl +0 -89
  841. package/Source/Shaders/OctahedralProjectionAtlasFS.js +0 -91
  842. package/Source/Shaders/OctahedralProjectionFS.glsl +0 -14
  843. package/Source/Shaders/OctahedralProjectionFS.js +0 -16
  844. package/Source/Shaders/OctahedralProjectionVS.glsl +0 -10
  845. package/Source/Shaders/OctahedralProjectionVS.js +0 -12
@@ -14,6 +14,51 @@ import TextureMagnificationFilter from "./TextureMagnificationFilter.js";
14
14
  import TextureMinificationFilter from "./TextureMinificationFilter.js";
15
15
 
16
16
  /**
17
+ * @typedef CubeMap.BufferSource
18
+ *
19
+ * @property {TypedArray} arrayBufferView A view of a binary data buffer containing pixel values.
20
+ * @property {number} width The width of one face of the cube map, in pixels. Must be equal to height.
21
+ * @property {number} height The height of one face of the cube map, in pixels. Must be equal to width.
22
+ *
23
+ * @private
24
+ */
25
+
26
+ /**
27
+ * @typedef CubeMap.Source
28
+ *
29
+ * @property {ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|CubeMap.BufferSource} positiveX
30
+ * @property {ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|CubeMap.BufferSource} negativeX
31
+ * @property {ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|CubeMap.BufferSource} positiveY
32
+ * @property {ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|CubeMap.BufferSource} negativeY
33
+ * @property {ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|CubeMap.BufferSource} positiveZ
34
+ * @property {ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|CubeMap.BufferSource} negativeZ
35
+ */
36
+
37
+ /**
38
+ * @typedef CubeMap.ConstructorOptions
39
+ *
40
+ * @property {Context} context
41
+ * @property {CubeMap.Source} [source] The source for texel values to be loaded into the texture.
42
+ * @property {PixelFormat} [pixelFormat=PixelFormat.RGBA] The format of each pixel, i.e., the number of components it has and what they represent.
43
+ * @property {PixelDatatype} [pixelDatatype=PixelDatatype.UNSIGNED_BYTE] The data type of each pixel.
44
+ * @property {boolean} [flipY=true] If true, the source values will be read as if the y-axis is inverted (y=0 at the top).
45
+ * @property {boolean} [skipColorSpaceConversion=false] If true, color space conversions will be skipped when reading the texel values.
46
+ * @property {Sampler} [sampler] Information about how to sample the cubemap texture.
47
+ * @property {number} [width] The pixel width of the texture. If not supplied, must be available from the source. Must be equal to height.
48
+ * @property {number} [height] The pixel height of the texture. If not supplied, must be available from the source. Must be equal to width.
49
+ * @property {boolean} [preMultiplyAlpha] If true, the alpha channel will be multiplied into the other channels.
50
+ *
51
+ * @private
52
+ */
53
+
54
+ /**
55
+ * A wrapper for a {@link https://developer.mozilla.org/en-US/docs/Web/API/WebGLTexture|WebGLTexture}
56
+ * used as a cube map, to abstract away the verbose GL calls associated with setting up a texture.
57
+ *
58
+ * @alias CubeMap
59
+ * @constructor
60
+ *
61
+ * @param {CubeMap.ConstructorOptions} options An object describing initialization options.
17
62
  * @private
18
63
  */
19
64
  function CubeMap(options) {
@@ -23,72 +68,60 @@ function CubeMap(options) {
23
68
  Check.defined("options.context", options.context);
24
69
  //>>includeEnd('debug');
25
70
 
26
- const context = options.context;
27
- const source = options.source;
28
- let width;
29
- let height;
71
+ const {
72
+ context,
73
+ source,
74
+ pixelFormat = PixelFormat.RGBA,
75
+ pixelDatatype = PixelDatatype.UNSIGNED_BYTE,
76
+ flipY = true,
77
+ skipColorSpaceConversion = false,
78
+ sampler = new Sampler(),
79
+ } = options;
30
80
 
31
- if (defined(source)) {
32
- const faces = [
33
- source.positiveX,
34
- source.negativeX,
35
- source.positiveY,
36
- source.negativeY,
37
- source.positiveZ,
38
- source.negativeZ,
39
- ];
81
+ // Use premultiplied alpha for opaque textures should perform better on Chrome:
82
+ // http://media.tojicode.com/webglCamp4/#20
83
+ const preMultiplyAlpha =
84
+ options.preMultiplyAlpha ||
85
+ pixelFormat === PixelFormat.RGB ||
86
+ pixelFormat === PixelFormat.LUMINANCE;
87
+
88
+ let { width, height } = options;
40
89
 
90
+ if (defined(source)) {
41
91
  //>>includeStart('debug', pragmas.debug);
42
92
  if (
43
- !faces[0] ||
44
- !faces[1] ||
45
- !faces[2] ||
46
- !faces[3] ||
47
- !faces[4] ||
48
- !faces[5]
93
+ !Object.values(CubeMap.FaceName).every((faceName) =>
94
+ defined(source[faceName]),
95
+ )
49
96
  ) {
50
97
  throw new DeveloperError(
51
- "options.source requires positiveX, negativeX, positiveY, negativeY, positiveZ, and negativeZ faces."
98
+ `options.source requires faces ${Object.values(CubeMap.FaceName).join(
99
+ ", ",
100
+ )}.`,
52
101
  );
53
102
  }
54
103
  //>>includeEnd('debug');
55
104
 
56
- width = faces[0].width;
57
- height = faces[0].height;
105
+ ({ width, height } = source.positiveX);
58
106
 
59
107
  //>>includeStart('debug', pragmas.debug);
60
- for (let i = 1; i < 6; ++i) {
61
- if (
62
- Number(faces[i].width) !== width ||
63
- Number(faces[i].height) !== height
64
- ) {
108
+ for (const faceName of CubeMap.getFaceNames()) {
109
+ const face = source[faceName];
110
+ if (Number(face.width) !== width || Number(face.height) !== height) {
65
111
  throw new DeveloperError(
66
- "Each face in options.source must have the same width and height."
112
+ "Each face in options.source must have the same width and height.",
67
113
  );
68
114
  }
69
115
  }
70
116
  //>>includeEnd('debug');
71
- } else {
72
- width = options.width;
73
- height = options.height;
74
117
  }
75
118
 
76
119
  const size = width;
77
- const pixelDatatype = defaultValue(
78
- options.pixelDatatype,
79
- PixelDatatype.UNSIGNED_BYTE
80
- );
81
- const pixelFormat = defaultValue(options.pixelFormat, PixelFormat.RGBA);
82
- const internalFormat = PixelFormat.toInternalFormat(
83
- pixelFormat,
84
- pixelDatatype,
85
- context
86
- );
87
120
 
88
121
  //>>includeStart('debug', pragmas.debug);
89
122
  if (!defined(width) || !defined(height)) {
90
123
  throw new DeveloperError(
91
- "options requires a source field to create an initialized cube map or width and height fields to create a blank cube map."
124
+ "options requires a source field to create an initialized cube map or width and height fields to create a blank cube map.",
92
125
  );
93
126
  }
94
127
 
@@ -102,7 +135,7 @@ function CubeMap(options) {
102
135
 
103
136
  if (size > ContextLimits.maximumCubeMapSize) {
104
137
  throw new DeveloperError(
105
- `Width and height must be less than or equal to the maximum cube map size (${ContextLimits.maximumCubeMapSize}). Check maximumCubeMapSize.`
138
+ `Width and height must be less than or equal to the maximum cube map size (${ContextLimits.maximumCubeMapSize}). Check maximumCubeMapSize.`,
106
139
  );
107
140
  }
108
141
 
@@ -112,7 +145,7 @@ function CubeMap(options) {
112
145
 
113
146
  if (PixelFormat.isDepthFormat(pixelFormat)) {
114
147
  throw new DeveloperError(
115
- "options.pixelFormat cannot be DEPTH_COMPONENT or DEPTH_STENCIL."
148
+ "options.pixelFormat cannot be DEPTH_COMPONENT or DEPTH_STENCIL.",
116
149
  );
117
150
  }
118
151
 
@@ -122,7 +155,7 @@ function CubeMap(options) {
122
155
 
123
156
  if (pixelDatatype === PixelDatatype.FLOAT && !context.floatingPointTexture) {
124
157
  throw new DeveloperError(
125
- "When options.pixelDatatype is FLOAT, this WebGL implementation must support the OES_texture_float extension."
158
+ "When options.pixelDatatype is FLOAT, this WebGL implementation must support the OES_texture_float extension.",
126
159
  );
127
160
  }
128
161
 
@@ -131,313 +164,201 @@ function CubeMap(options) {
131
164
  !context.halfFloatingPointTexture
132
165
  ) {
133
166
  throw new DeveloperError(
134
- "When options.pixelDatatype is HALF_FLOAT, this WebGL implementation must support the OES_texture_half_float extension."
167
+ "When options.pixelDatatype is HALF_FLOAT, this WebGL implementation must support the OES_texture_half_float extension.",
135
168
  );
136
169
  }
137
170
  //>>includeEnd('debug');
138
171
 
139
172
  const sizeInBytes =
140
173
  PixelFormat.textureSizeInBytes(pixelFormat, pixelDatatype, size, size) * 6;
141
-
142
- // Use premultiplied alpha for opaque textures should perform better on Chrome:
143
- // http://media.tojicode.com/webglCamp4/#20
144
- const preMultiplyAlpha =
145
- options.preMultiplyAlpha ||
146
- pixelFormat === PixelFormat.RGB ||
147
- pixelFormat === PixelFormat.LUMINANCE;
148
- const flipY = defaultValue(options.flipY, true);
149
- const skipColorSpaceConversion = defaultValue(
150
- options.skipColorSpaceConversion,
151
- false
174
+ const internalFormat = PixelFormat.toInternalFormat(
175
+ pixelFormat,
176
+ pixelDatatype,
177
+ context,
152
178
  );
153
179
 
154
180
  const gl = context._gl;
155
181
  const textureTarget = gl.TEXTURE_CUBE_MAP;
156
182
  const texture = gl.createTexture();
157
183
 
184
+ this._context = context;
185
+ this._textureFilterAnisotropic = context._textureFilterAnisotropic;
186
+ this._textureTarget = textureTarget;
187
+ this._texture = texture;
188
+ this._pixelFormat = pixelFormat;
189
+ this._pixelDatatype = pixelDatatype;
190
+ this._size = size;
191
+ this._hasMipmap = false;
192
+ this._sizeInBytes = sizeInBytes;
193
+ this._preMultiplyAlpha = preMultiplyAlpha;
194
+ this._flipY = flipY;
195
+
196
+ const initialized = defined(source);
197
+ function constructFace(targetFace) {
198
+ return new CubeMapFace(
199
+ context,
200
+ texture,
201
+ textureTarget,
202
+ targetFace,
203
+ internalFormat,
204
+ pixelFormat,
205
+ pixelDatatype,
206
+ size,
207
+ preMultiplyAlpha,
208
+ flipY,
209
+ initialized,
210
+ );
211
+ }
212
+ this._positiveX = constructFace(gl.TEXTURE_CUBE_MAP_POSITIVE_X);
213
+ this._negativeX = constructFace(gl.TEXTURE_CUBE_MAP_NEGATIVE_X);
214
+ this._positiveY = constructFace(gl.TEXTURE_CUBE_MAP_POSITIVE_Y);
215
+ this._negativeY = constructFace(gl.TEXTURE_CUBE_MAP_NEGATIVE_Y);
216
+ this._positiveZ = constructFace(gl.TEXTURE_CUBE_MAP_POSITIVE_Z);
217
+ this._negativeZ = constructFace(gl.TEXTURE_CUBE_MAP_NEGATIVE_Z);
218
+
219
+ this._sampler = sampler;
220
+ setupSampler(this, sampler);
221
+
158
222
  gl.activeTexture(gl.TEXTURE0);
159
223
  gl.bindTexture(textureTarget, texture);
160
224
 
161
- function createFace(
162
- target,
163
- sourceFace,
164
- preMultiplyAlpha,
165
- flipY,
166
- skipColorSpaceConversion
167
- ) {
168
- let arrayBufferView = sourceFace.arrayBufferView;
169
- if (!defined(arrayBufferView)) {
170
- arrayBufferView = sourceFace.bufferView;
171
- }
225
+ if (skipColorSpaceConversion) {
226
+ gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE);
227
+ } else {
228
+ gl.pixelStorei(
229
+ gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,
230
+ gl.BROWSER_DEFAULT_WEBGL,
231
+ );
232
+ }
172
233
 
173
- let unpackAlignment = 4;
174
- if (defined(arrayBufferView)) {
175
- unpackAlignment = PixelFormat.alignmentInBytes(
176
- pixelFormat,
177
- pixelDatatype,
178
- width
179
- );
180
- }
234
+ for (const faceName of CubeMap.getFaceNames()) {
235
+ loadFace(this[faceName], source?.[faceName], 0);
236
+ }
181
237
 
182
- gl.pixelStorei(gl.UNPACK_ALIGNMENT, unpackAlignment);
238
+ gl.bindTexture(textureTarget, null);
239
+ }
183
240
 
184
- if (skipColorSpaceConversion) {
185
- gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE);
186
- } else {
187
- gl.pixelStorei(
188
- gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,
189
- gl.BROWSER_DEFAULT_WEBGL
190
- );
191
- }
241
+ /**
242
+ * An enum defining the names of the faces of a cube map.
243
+ *
244
+ * @alias {CubeMap.FaceName}
245
+ * @enum {string}
246
+ *
247
+ * @private
248
+ */
249
+ CubeMap.FaceName = Object.freeze({
250
+ POSITIVEX: "positiveX",
251
+ NEGATIVEX: "negativeX",
252
+ POSITIVEY: "positiveY",
253
+ NEGATIVEY: "negativeY",
254
+ POSITIVEZ: "positiveZ",
255
+ NEGATIVEZ: "negativeZ",
256
+ });
192
257
 
193
- if (defined(arrayBufferView)) {
194
- gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
195
- gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
196
-
197
- if (flipY) {
198
- arrayBufferView = PixelFormat.flipY(
199
- arrayBufferView,
200
- pixelFormat,
201
- pixelDatatype,
202
- size,
203
- size
204
- );
205
- }
206
- gl.texImage2D(
207
- target,
208
- 0,
209
- internalFormat,
210
- size,
211
- size,
212
- 0,
213
- pixelFormat,
214
- PixelDatatype.toWebGLConstant(pixelDatatype, context),
215
- arrayBufferView
216
- );
217
- } else {
218
- // Only valid for DOM-Element uploads
219
- gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, preMultiplyAlpha);
220
- gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, flipY);
221
-
222
- // Source: ImageData, HTMLImageElement, HTMLCanvasElement, or HTMLVideoElement
223
- gl.texImage2D(
224
- target,
225
- 0,
226
- internalFormat,
227
- pixelFormat,
228
- PixelDatatype.toWebGLConstant(pixelDatatype, context),
229
- sourceFace
230
- );
231
- }
232
- }
258
+ function* makeFacesIterator() {
259
+ yield CubeMap.FaceName.POSITIVEX;
260
+ yield CubeMap.FaceName.NEGATIVEX;
261
+ yield CubeMap.FaceName.POSITIVEY;
262
+ yield CubeMap.FaceName.NEGATIVEY;
263
+ yield CubeMap.FaceName.POSITIVEZ;
264
+ yield CubeMap.FaceName.NEGATIVEZ;
265
+ }
233
266
 
234
- if (defined(source)) {
235
- createFace(
236
- gl.TEXTURE_CUBE_MAP_POSITIVE_X,
237
- source.positiveX,
238
- preMultiplyAlpha,
239
- flipY,
240
- skipColorSpaceConversion
241
- );
242
- createFace(
243
- gl.TEXTURE_CUBE_MAP_NEGATIVE_X,
244
- source.negativeX,
245
- preMultiplyAlpha,
246
- flipY,
247
- skipColorSpaceConversion
248
- );
249
- createFace(
250
- gl.TEXTURE_CUBE_MAP_POSITIVE_Y,
251
- source.positiveY,
252
- preMultiplyAlpha,
253
- flipY,
254
- skipColorSpaceConversion
255
- );
256
- createFace(
257
- gl.TEXTURE_CUBE_MAP_NEGATIVE_Y,
258
- source.negativeY,
259
- preMultiplyAlpha,
260
- flipY,
261
- skipColorSpaceConversion
262
- );
263
- createFace(
264
- gl.TEXTURE_CUBE_MAP_POSITIVE_Z,
265
- source.positiveZ,
266
- preMultiplyAlpha,
267
- flipY,
268
- skipColorSpaceConversion
269
- );
270
- createFace(
271
- gl.TEXTURE_CUBE_MAP_NEGATIVE_Z,
272
- source.negativeZ,
273
- preMultiplyAlpha,
274
- flipY,
275
- skipColorSpaceConversion
276
- );
277
- } else {
278
- gl.texImage2D(
279
- gl.TEXTURE_CUBE_MAP_POSITIVE_X,
280
- 0,
281
- internalFormat,
282
- size,
283
- size,
284
- 0,
285
- pixelFormat,
286
- PixelDatatype.toWebGLConstant(pixelDatatype, context),
287
- null
288
- );
267
+ /**
268
+ * Creates an iterator for looping over the cubemap faces.
269
+ *
270
+ * @type {Iterable<CubeMap.FaceName>}
271
+ *
272
+ * @private
273
+ */
274
+ CubeMap.getFaceNames = function () {
275
+ return makeFacesIterator();
276
+ };
277
+
278
+ /**
279
+ * Load texel data into one face of a cube map.
280
+ *
281
+ * @param {CubeMapFace} cubeMapFace The face to which texel values will be loaded.
282
+ * @param {ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|CubeMap.BufferSource} [source] The source for texel values to be loaded into the texture.
283
+ * @param {number} [mipLevel=0] The mip level to which the texel values will be loaded.
284
+ *
285
+ * @private
286
+ */
287
+ function loadFace(cubeMapFace, source, mipLevel) {
288
+ mipLevel = defaultValue(mipLevel, 0);
289
+ const targetFace = cubeMapFace._targetFace;
290
+ const size = Math.max(Math.floor(cubeMapFace._size / 2 ** mipLevel), 1);
291
+ const pixelFormat = cubeMapFace._pixelFormat;
292
+ const pixelDatatype = cubeMapFace._pixelDatatype;
293
+ const internalFormat = cubeMapFace._internalFormat;
294
+ const flipY = cubeMapFace._flipY;
295
+ const preMultiplyAlpha = cubeMapFace._preMultiplyAlpha;
296
+ const context = cubeMapFace._context;
297
+ const gl = context._gl;
298
+
299
+ if (!defined(source)) {
289
300
  gl.texImage2D(
290
- gl.TEXTURE_CUBE_MAP_NEGATIVE_X,
291
- 0,
301
+ targetFace,
302
+ mipLevel,
292
303
  internalFormat,
293
304
  size,
294
305
  size,
295
306
  0,
296
307
  pixelFormat,
297
308
  PixelDatatype.toWebGLConstant(pixelDatatype, context),
298
- null
309
+ null,
299
310
  );
300
- gl.texImage2D(
301
- gl.TEXTURE_CUBE_MAP_POSITIVE_Y,
302
- 0,
303
- internalFormat,
304
- size,
305
- size,
306
- 0,
311
+ return;
312
+ }
313
+
314
+ let { arrayBufferView } = source;
315
+
316
+ let unpackAlignment = 4;
317
+ if (defined(arrayBufferView)) {
318
+ unpackAlignment = PixelFormat.alignmentInBytes(
307
319
  pixelFormat,
308
- PixelDatatype.toWebGLConstant(pixelDatatype, context),
309
- null
310
- );
311
- gl.texImage2D(
312
- gl.TEXTURE_CUBE_MAP_NEGATIVE_Y,
313
- 0,
314
- internalFormat,
315
- size,
320
+ pixelDatatype,
316
321
  size,
317
- 0,
318
- pixelFormat,
319
- PixelDatatype.toWebGLConstant(pixelDatatype, context),
320
- null
321
322
  );
323
+ }
324
+ gl.pixelStorei(gl.UNPACK_ALIGNMENT, unpackAlignment);
325
+
326
+ if (defined(arrayBufferView)) {
327
+ gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
328
+ gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
329
+ if (flipY) {
330
+ arrayBufferView = PixelFormat.flipY(
331
+ arrayBufferView,
332
+ pixelFormat,
333
+ pixelDatatype,
334
+ size,
335
+ size,
336
+ );
337
+ }
322
338
  gl.texImage2D(
323
- gl.TEXTURE_CUBE_MAP_POSITIVE_Z,
324
- 0,
339
+ targetFace,
340
+ mipLevel,
325
341
  internalFormat,
326
342
  size,
327
343
  size,
328
344
  0,
329
345
  pixelFormat,
330
346
  PixelDatatype.toWebGLConstant(pixelDatatype, context),
331
- null
347
+ arrayBufferView,
332
348
  );
349
+ } else {
350
+ // Only valid for DOM-Element uploads
351
+ gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, preMultiplyAlpha);
352
+ gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, flipY);
333
353
  gl.texImage2D(
334
- gl.TEXTURE_CUBE_MAP_NEGATIVE_Z,
335
- 0,
354
+ targetFace,
355
+ mipLevel,
336
356
  internalFormat,
337
- size,
338
- size,
339
- 0,
340
357
  pixelFormat,
341
358
  PixelDatatype.toWebGLConstant(pixelDatatype, context),
342
- null
359
+ source,
343
360
  );
344
361
  }
345
- gl.bindTexture(textureTarget, null);
346
-
347
- this._context = context;
348
- this._textureFilterAnisotropic = context._textureFilterAnisotropic;
349
- this._textureTarget = textureTarget;
350
- this._texture = texture;
351
- this._pixelFormat = pixelFormat;
352
- this._pixelDatatype = pixelDatatype;
353
- this._size = size;
354
- this._hasMipmap = false;
355
- this._sizeInBytes = sizeInBytes;
356
- this._preMultiplyAlpha = preMultiplyAlpha;
357
- this._flipY = flipY;
358
- this._sampler = undefined;
359
-
360
- const initialized = defined(source);
361
- this._positiveX = new CubeMapFace(
362
- context,
363
- texture,
364
- textureTarget,
365
- gl.TEXTURE_CUBE_MAP_POSITIVE_X,
366
- internalFormat,
367
- pixelFormat,
368
- pixelDatatype,
369
- size,
370
- preMultiplyAlpha,
371
- flipY,
372
- initialized
373
- );
374
- this._negativeX = new CubeMapFace(
375
- context,
376
- texture,
377
- textureTarget,
378
- gl.TEXTURE_CUBE_MAP_NEGATIVE_X,
379
- internalFormat,
380
- pixelFormat,
381
- pixelDatatype,
382
- size,
383
- preMultiplyAlpha,
384
- flipY,
385
- initialized
386
- );
387
- this._positiveY = new CubeMapFace(
388
- context,
389
- texture,
390
- textureTarget,
391
- gl.TEXTURE_CUBE_MAP_POSITIVE_Y,
392
- internalFormat,
393
- pixelFormat,
394
- pixelDatatype,
395
- size,
396
- preMultiplyAlpha,
397
- flipY,
398
- initialized
399
- );
400
- this._negativeY = new CubeMapFace(
401
- context,
402
- texture,
403
- textureTarget,
404
- gl.TEXTURE_CUBE_MAP_NEGATIVE_Y,
405
- internalFormat,
406
- pixelFormat,
407
- pixelDatatype,
408
- size,
409
- preMultiplyAlpha,
410
- flipY,
411
- initialized
412
- );
413
- this._positiveZ = new CubeMapFace(
414
- context,
415
- texture,
416
- textureTarget,
417
- gl.TEXTURE_CUBE_MAP_POSITIVE_Z,
418
- internalFormat,
419
- pixelFormat,
420
- pixelDatatype,
421
- size,
422
- preMultiplyAlpha,
423
- flipY,
424
- initialized
425
- );
426
- this._negativeZ = new CubeMapFace(
427
- context,
428
- texture,
429
- textureTarget,
430
- gl.TEXTURE_CUBE_MAP_NEGATIVE_Z,
431
- internalFormat,
432
- pixelFormat,
433
- pixelDatatype,
434
- size,
435
- preMultiplyAlpha,
436
- flipY,
437
- initialized
438
- );
439
-
440
- this.sampler = defined(options.sampler) ? options.sampler : new Sampler();
441
362
  }
442
363
 
443
364
  Object.defineProperties(CubeMap.prototype, {
@@ -476,52 +397,7 @@ Object.defineProperties(CubeMap.prototype, {
476
397
  return this._sampler;
477
398
  },
478
399
  set: function (sampler) {
479
- let minificationFilter = sampler.minificationFilter;
480
- let magnificationFilter = sampler.magnificationFilter;
481
-
482
- const mipmap =
483
- minificationFilter ===
484
- TextureMinificationFilter.NEAREST_MIPMAP_NEAREST ||
485
- minificationFilter ===
486
- TextureMinificationFilter.NEAREST_MIPMAP_LINEAR ||
487
- minificationFilter ===
488
- TextureMinificationFilter.LINEAR_MIPMAP_NEAREST ||
489
- minificationFilter === TextureMinificationFilter.LINEAR_MIPMAP_LINEAR;
490
-
491
- const context = this._context;
492
- const pixelDatatype = this._pixelDatatype;
493
-
494
- // float textures only support nearest filtering unless the linear extensions are supported, so override the sampler's settings
495
- if (
496
- (pixelDatatype === PixelDatatype.FLOAT &&
497
- !context.textureFloatLinear) ||
498
- (pixelDatatype === PixelDatatype.HALF_FLOAT &&
499
- !context.textureHalfFloatLinear)
500
- ) {
501
- minificationFilter = mipmap
502
- ? TextureMinificationFilter.NEAREST_MIPMAP_NEAREST
503
- : TextureMinificationFilter.NEAREST;
504
- magnificationFilter = TextureMagnificationFilter.NEAREST;
505
- }
506
-
507
- const gl = context._gl;
508
- const target = this._textureTarget;
509
-
510
- gl.activeTexture(gl.TEXTURE0);
511
- gl.bindTexture(target, this._texture);
512
- gl.texParameteri(target, gl.TEXTURE_MIN_FILTER, minificationFilter);
513
- gl.texParameteri(target, gl.TEXTURE_MAG_FILTER, magnificationFilter);
514
- gl.texParameteri(target, gl.TEXTURE_WRAP_S, sampler.wrapS);
515
- gl.texParameteri(target, gl.TEXTURE_WRAP_T, sampler.wrapT);
516
- if (defined(this._textureFilterAnisotropic)) {
517
- gl.texParameteri(
518
- target,
519
- this._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,
520
- sampler.maximumAnisotropy
521
- );
522
- }
523
- gl.bindTexture(target, null);
524
-
400
+ setupSampler(this, sampler);
525
401
  this._sampler = sampler;
526
402
  },
527
403
  },
@@ -571,6 +447,108 @@ Object.defineProperties(CubeMap.prototype, {
571
447
  },
572
448
  });
573
449
 
450
+ /**
451
+ * Set up a sampler for use with a cube map.
452
+ * @param {CubeMap} cubeMap The cube map containing the texture to be sampled by this sampler.
453
+ * @param {Sampler} sampler Information about how to sample the cubemap texture.
454
+ * @private
455
+ */
456
+ function setupSampler(cubeMap, sampler) {
457
+ let { minificationFilter, magnificationFilter } = sampler;
458
+
459
+ const mipmap = [
460
+ TextureMinificationFilter.NEAREST_MIPMAP_NEAREST,
461
+ TextureMinificationFilter.NEAREST_MIPMAP_LINEAR,
462
+ TextureMinificationFilter.LINEAR_MIPMAP_NEAREST,
463
+ TextureMinificationFilter.LINEAR_MIPMAP_LINEAR,
464
+ ].includes(minificationFilter);
465
+
466
+ const context = cubeMap._context;
467
+ const pixelDatatype = cubeMap._pixelDatatype;
468
+
469
+ // float textures only support nearest filtering unless the linear extensions are supported
470
+ if (
471
+ (pixelDatatype === PixelDatatype.FLOAT && !context.textureFloatLinear) ||
472
+ (pixelDatatype === PixelDatatype.HALF_FLOAT &&
473
+ !context.textureHalfFloatLinear)
474
+ ) {
475
+ // override the sampler's settings
476
+ minificationFilter = mipmap
477
+ ? TextureMinificationFilter.NEAREST_MIPMAP_NEAREST
478
+ : TextureMinificationFilter.NEAREST;
479
+ magnificationFilter = TextureMagnificationFilter.NEAREST;
480
+ }
481
+
482
+ const gl = context._gl;
483
+ const target = cubeMap._textureTarget;
484
+
485
+ gl.activeTexture(gl.TEXTURE0);
486
+ gl.bindTexture(target, cubeMap._texture);
487
+ gl.texParameteri(target, gl.TEXTURE_MIN_FILTER, minificationFilter);
488
+ gl.texParameteri(target, gl.TEXTURE_MAG_FILTER, magnificationFilter);
489
+ gl.texParameteri(target, gl.TEXTURE_WRAP_S, sampler.wrapS);
490
+ gl.texParameteri(target, gl.TEXTURE_WRAP_T, sampler.wrapT);
491
+ if (defined(cubeMap._textureFilterAnisotropic)) {
492
+ gl.texParameteri(
493
+ target,
494
+ cubeMap._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,
495
+ sampler.maximumAnisotropy,
496
+ );
497
+ }
498
+ gl.bindTexture(target, null);
499
+ }
500
+
501
+ /**
502
+ * Load a complete mipmap chain for each cubemap face.
503
+ *
504
+ * @param {CubeMap.Source[]} source The source data for each mip level, beginning at level 1.
505
+ * @param {boolean} [skipColorSpaceConversion=false] If true, color space conversions will be skipped when reading the texel values.
506
+ *
507
+ * @private
508
+ */
509
+ CubeMap.prototype.loadMipmaps = function (source, skipColorSpaceConversion) {
510
+ //>>includeStart('debug', pragmas.debug);
511
+ Check.defined("source", source);
512
+ if (!Array.isArray(source)) {
513
+ throw new DeveloperError(`source must be an array`);
514
+ }
515
+ const mipCount = Math.log2(this._size);
516
+ if (source.length !== mipCount) {
517
+ throw new DeveloperError(`all mip levels must be defined`);
518
+ }
519
+ //>>includeEnd('debug');
520
+
521
+ skipColorSpaceConversion = defaultValue(skipColorSpaceConversion, false);
522
+ const gl = this._context._gl;
523
+ const texture = this._texture;
524
+ const textureTarget = this._textureTarget;
525
+
526
+ gl.activeTexture(gl.TEXTURE0);
527
+ gl.bindTexture(textureTarget, texture);
528
+
529
+ if (skipColorSpaceConversion) {
530
+ gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE);
531
+ } else {
532
+ gl.pixelStorei(
533
+ gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,
534
+ gl.BROWSER_DEFAULT_WEBGL,
535
+ );
536
+ }
537
+
538
+ for (let i = 0; i < source.length; i++) {
539
+ const mipSource = source[i];
540
+ // mipLevel 0 was the base layer, already loaded when the CubeMap was constructed.
541
+ const mipLevel = i + 1;
542
+ for (const faceName of CubeMap.getFaceNames()) {
543
+ loadFace(this[faceName], mipSource[faceName], mipLevel);
544
+ }
545
+ }
546
+
547
+ gl.bindTexture(textureTarget, null);
548
+
549
+ this._hasMipmap = true;
550
+ };
551
+
574
552
  /**
575
553
  * Generates a complete mipmap chain for each cubemap face.
576
554
  *
@@ -595,7 +573,7 @@ CubeMap.prototype.generateMipmap = function (hint) {
595
573
  //>>includeStart('debug', pragmas.debug);
596
574
  if (this._size > 1 && !CesiumMath.isPowerOfTwo(this._size)) {
597
575
  throw new DeveloperError(
598
- "width and height must be a power of two to call generateMipmap()."
576
+ "width and height must be a power of two to call generateMipmap().",
599
577
  );
600
578
  }
601
579
  if (!MipmapHint.validate(hint)) {