@cesium/engine 22.2.0 → 23.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 (282) hide show
  1. package/Build/Workers/{chunk-YFEZPDAY.js → chunk-2GL2EUEE.js} +11 -11
  2. package/Build/Workers/{chunk-A3NUMZBG.js → chunk-2WI4HGJU.js} +6 -6
  3. package/Build/Workers/{chunk-3JB2X2PR.js → chunk-36LBFITA.js} +665 -366
  4. package/Build/Workers/{chunk-VSZ5DB2W.js → chunk-3B65YFXC.js} +1 -1
  5. package/Build/Workers/{chunk-PSHZAHFE.js → chunk-4LGFX2P5.js} +11 -11
  6. package/Build/Workers/{chunk-AMWXJ5A7.js → chunk-4UNQX2MP.js} +2 -2
  7. package/Build/Workers/{chunk-LDSQMLRC.js → chunk-52K3GJKG.js} +3 -3
  8. package/Build/Workers/{chunk-MSTAVM2N.js → chunk-56OHFSLH.js} +10 -10
  9. package/Build/Workers/{chunk-IWOSJVFQ.js → chunk-5A7YSAXT.js} +14 -14
  10. package/Build/Workers/{chunk-PMDPP22G.js → chunk-5JP5FG7U.js} +7 -7
  11. package/Build/Workers/{chunk-DIJ7IG5D.js → chunk-5R7SBUTW.js} +10 -10
  12. package/Build/Workers/chunk-5VKZVPO5.js +1829 -0
  13. package/Build/Workers/{chunk-L2FSBEW2.js → chunk-6FVFM2KB.js} +5 -5
  14. package/Build/Workers/{chunk-G6WQA27G.js → chunk-6SLGTBB2.js} +5 -5
  15. package/Build/Workers/{chunk-3HUEBDFC.js → chunk-7KRN6JPQ.js} +14 -14
  16. package/Build/Workers/{chunk-GMHDOQPH.js → chunk-AA33B6PU.js} +4 -4
  17. package/Build/Workers/{chunk-7CDQUIP5.js → chunk-AP6XWET5.js} +8 -8
  18. package/Build/Workers/{chunk-IVN5HSOI.js → chunk-APDKMX7W.js} +6 -6
  19. package/Build/Workers/{chunk-72LZ3FN6.js → chunk-ARCFIOKA.js} +12 -12
  20. package/Build/Workers/{chunk-UBJYWGMV.js → chunk-BNBD2YZK.js} +16 -16
  21. package/Build/Workers/{chunk-VGH2CSC7.js → chunk-DT5SJBKA.js} +29 -15
  22. package/Build/Workers/{chunk-ED4UXMYY.js → chunk-ESD4IEOU.js} +5 -5
  23. package/Build/Workers/{chunk-JFN2DQHY.js → chunk-FSDVXW7M.js} +5 -5
  24. package/Build/Workers/{chunk-JERDRSEI.js → chunk-G3YT7M7A.js} +1 -1
  25. package/Build/Workers/{chunk-NY3CWLIZ.js → chunk-GN5NEUDT.js} +8 -8
  26. package/Build/Workers/{chunk-O3GWUTWM.js → chunk-HYLEKKO5.js} +1 -1
  27. package/Build/Workers/{chunk-64PJ4MTB.js → chunk-HYTFXWMY.js} +7 -7
  28. package/Build/Workers/{chunk-FPRM6PCE.js → chunk-IFA7VHHP.js} +560 -306
  29. package/Build/Workers/{chunk-FM5XPC2E.js → chunk-IYVDOB5V.js} +4 -4
  30. package/Build/Workers/{chunk-P7ISUYLW.js → chunk-JUGY5AZN.js} +4 -4
  31. package/Build/Workers/{chunk-JONWM4IO.js → chunk-KPYU6YZG.js} +1 -1
  32. package/Build/Workers/{chunk-JUOSYFXT.js → chunk-L7RDJ4V7.js} +1 -1
  33. package/Build/Workers/{chunk-MWGB6DLR.js → chunk-LDQWNMEC.js} +1 -1
  34. package/Build/Workers/{chunk-C6FTHSJA.js → chunk-MQJG522T.js} +6 -6
  35. package/Build/Workers/{chunk-WH4HDRGN.js → chunk-MT5M7RLZ.js} +2 -2
  36. package/Build/Workers/{chunk-4ZQN7M7E.js → chunk-N4AWE7TZ.js} +10 -10
  37. package/Build/Workers/{chunk-SDUH3N6G.js → chunk-NAYRNPEP.js} +4 -4
  38. package/Build/Workers/{chunk-7OPRTZBT.js → chunk-NNHU33JK.js} +7 -7
  39. package/Build/Workers/{chunk-CQCEPC6N.js → chunk-NQCAZU7S.js} +13 -13
  40. package/Build/Workers/{chunk-35J4D6PX.js → chunk-NUYLNQKV.js} +2 -2
  41. package/Build/Workers/{chunk-I45CATZK.js → chunk-OC6X22PG.js} +9 -9
  42. package/Build/Workers/{chunk-7MGTX4WP.js → chunk-OHBM4YG4.js} +12 -12
  43. package/Build/Workers/{chunk-DCR62BCO.js → chunk-OMXN7YF4.js} +12 -12
  44. package/Build/Workers/{chunk-XPNY2VY3.js → chunk-OQ3EAJNW.js} +2 -2
  45. package/Build/Workers/{chunk-4I7BCCNU.js → chunk-OQBPOKPZ.js} +6 -6
  46. package/Build/Workers/{chunk-2JNPWPLE.js → chunk-PQVNT5CJ.js} +6 -6
  47. package/Build/Workers/{chunk-K64RQCRK.js → chunk-QA24Q62E.js} +17 -17
  48. package/Build/Workers/{chunk-K6BXEBAF.js → chunk-QQX7S5QT.js} +17 -17
  49. package/Build/Workers/{chunk-2YVTOY5Z.js → chunk-QTOHIXGF.js} +10 -10
  50. package/Build/Workers/{chunk-4MCPC4TE.js → chunk-R7M4XNPP.js} +8 -8
  51. package/Build/Workers/{chunk-C35SJ4QP.js → chunk-SGKTBHFQ.js} +13 -13
  52. package/Build/Workers/{chunk-BKYJBTHW.js → chunk-SQTRWKO2.js} +5 -5
  53. package/Build/Workers/{chunk-I4D5IP46.js → chunk-T43FXHNC.js} +7 -7
  54. package/Build/Workers/{chunk-QO6Z5UJE.js → chunk-UEEGWJJP.js} +2 -2
  55. package/Build/Workers/{chunk-ZUWF63QU.js → chunk-WKXDCVBO.js} +4 -4
  56. package/Build/Workers/{chunk-N5MNKWED.js → chunk-Y5AJSEEN.js} +2 -2
  57. package/Build/Workers/{chunk-V26Y7ZQL.js → chunk-ZIW5FCIW.js} +37 -27
  58. package/Build/Workers/combineGeometry.js +24 -24
  59. package/Build/Workers/createBoxGeometry.js +18 -18
  60. package/Build/Workers/createBoxOutlineGeometry.js +16 -16
  61. package/Build/Workers/createCircleGeometry.js +26 -26
  62. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  63. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
  64. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  65. package/Build/Workers/createCorridorGeometry.js +29 -29
  66. package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
  67. package/Build/Workers/createCylinderGeometry.js +20 -20
  68. package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
  69. package/Build/Workers/createEllipseGeometry.js +26 -26
  70. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  71. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  72. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  73. package/Build/Workers/createFrustumGeometry.js +18 -18
  74. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  75. package/Build/Workers/createGeometry.js +24 -24
  76. package/Build/Workers/createGroundPolylineGeometry.js +22 -22
  77. package/Build/Workers/createPlaneGeometry.js +16 -16
  78. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  79. package/Build/Workers/createPolygonGeometry.js +32 -32
  80. package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
  81. package/Build/Workers/createPolylineGeometry.js +25 -25
  82. package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
  83. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
  84. package/Build/Workers/createRectangleGeometry.js +27 -27
  85. package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
  86. package/Build/Workers/createSimplePolylineGeometry.js +23 -23
  87. package/Build/Workers/createSphereGeometry.js +19 -19
  88. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  89. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  90. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  91. package/Build/Workers/createVectorTileGeometries.js +24 -24
  92. package/Build/Workers/createVectorTilePoints.js +13 -13
  93. package/Build/Workers/createVectorTilePolygons.js +22 -22
  94. package/Build/Workers/createVectorTilePolylines.js +14 -14
  95. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
  96. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
  97. package/Build/Workers/createVerticesFromHeightmap.js +22 -22
  98. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  99. package/Build/Workers/createWallGeometry.js +24 -24
  100. package/Build/Workers/createWallOutlineGeometry.js +23 -23
  101. package/Build/Workers/decodeDraco.js +10 -10
  102. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  103. package/Build/Workers/decodeI3S.js +10 -10
  104. package/Build/Workers/gaussianSplatSorter.js +4 -4
  105. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  106. package/Build/Workers/incrementallyBuildTerrainPicker.js +20 -12
  107. package/Build/Workers/transcodeKTX2.js +6 -6
  108. package/Build/Workers/transferTypedArrayTest.js +1 -1
  109. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
  110. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
  111. package/Source/Core/AttributeCompression.js +53 -6
  112. package/Source/Core/BoxGeometry.js +1 -1
  113. package/Source/Core/Cartesian2.js +689 -684
  114. package/Source/Core/Cartesian3.js +1044 -1043
  115. package/Source/Core/Cartesian4.js +816 -813
  116. package/Source/Core/CornerType.js +1 -1
  117. package/Source/Core/CorridorGeometry.js +1 -1
  118. package/Source/Core/FeatureDetection.js +1 -32
  119. package/Source/Core/Geometry.js +1 -1
  120. package/Source/Core/GoogleMaps.js +23 -2
  121. package/Source/Core/IntersectionTests.js +2 -2
  122. package/Source/Core/Ion.js +1 -1
  123. package/Source/Core/OpenCageGeocoderService.js +2 -3
  124. package/Source/Core/PinBuilder.js +1 -1
  125. package/Source/Core/PolygonGeometry.js +1 -1
  126. package/Source/Core/PolylineGeometry.js +1 -1
  127. package/Source/Core/PolylineVolumeGeometry.js +1 -1
  128. package/Source/Core/RectangleGeometry.js +1 -1
  129. package/Source/Core/ScreenSpaceEventHandler.js +4 -8
  130. package/Source/Core/TerrainMesh.js +11 -8
  131. package/Source/Core/TerrainPicker.js +24 -7
  132. package/Source/Core/VideoSynchronizer.js +1 -1
  133. package/Source/Core/WallGeometry.js +1 -1
  134. package/Source/Core/globalTypes.js +16 -0
  135. package/Source/Core/writeTextToCanvas.js +40 -86
  136. package/Source/DataSources/BillboardGraphics.js +1 -1
  137. package/Source/DataSources/BoxGraphics.js +1 -1
  138. package/Source/DataSources/CallbackPositionProperty.js +1 -1
  139. package/Source/DataSources/CorridorGraphics.js +1 -1
  140. package/Source/DataSources/CzmlDataSource.js +1 -1
  141. package/Source/DataSources/EllipseGraphics.js +1 -1
  142. package/Source/DataSources/EllipsoidGraphics.js +1 -1
  143. package/Source/DataSources/Entity.js +1 -1
  144. package/Source/DataSources/EntityCluster.js +2 -2
  145. package/Source/DataSources/GeoJsonDataSource.js +2 -2
  146. package/Source/DataSources/GpxDataSource.js +1 -1
  147. package/Source/DataSources/KmlDataSource.js +1 -1
  148. package/Source/DataSources/KmlTour.js +1 -1
  149. package/Source/DataSources/LabelGraphics.js +1 -1
  150. package/Source/DataSources/ModelGraphics.js +1 -1
  151. package/Source/DataSources/PlaneGraphics.js +1 -1
  152. package/Source/DataSources/PolygonGraphics.js +1 -1
  153. package/Source/DataSources/PolylineGraphics.js +1 -1
  154. package/Source/DataSources/PolylineVolumeGraphics.js +1 -1
  155. package/Source/DataSources/RectangleGraphics.js +1 -1
  156. package/Source/DataSources/WallGraphics.js +1 -1
  157. package/Source/DataSources/exportKml.js +1 -1
  158. package/Source/Renderer/Context.js +11 -10
  159. package/Source/Renderer/ContextLimits.js +66 -33
  160. package/Source/Renderer/ShaderDestination.js +54 -13
  161. package/Source/Renderer/ShaderSource.js +19 -18
  162. package/Source/Renderer/Texture.js +1 -1
  163. package/Source/Renderer/Texture3D.js +166 -7
  164. package/Source/Renderer/TextureAtlas.js +2 -2
  165. package/Source/Scene/Appearance.js +1 -1
  166. package/Source/Scene/ArcGisMapService.js +1 -1
  167. package/Source/Scene/Billboard.js +8 -5
  168. package/Source/Scene/BillboardCollection.js +65 -26
  169. package/Source/Scene/BillboardTexture.js +4 -1
  170. package/Source/Scene/BufferLoader.js +65 -74
  171. package/Source/Scene/Camera.js +13 -2
  172. package/Source/Scene/ClippingPlaneCollection.js +2 -2
  173. package/Source/Scene/CloudCollection.js +2 -2
  174. package/Source/Scene/CubeMapPanorama.js +351 -0
  175. package/Source/Scene/CumulusCloud.js +1 -1
  176. package/Source/Scene/DerivedCommand.js +8 -31
  177. package/Source/Scene/DracoLoader.js +79 -78
  178. package/Source/Scene/DynamicEnvironmentMapManager.js +41 -26
  179. package/Source/Scene/EquirectangularPanorama.js +264 -0
  180. package/Source/Scene/Fog.js +1 -1
  181. package/Source/Scene/FrameState.js +7 -0
  182. package/Source/Scene/GaussianSplatPrimitive.js +907 -168
  183. package/Source/Scene/Globe.js +3 -10
  184. package/Source/Scene/GlobeSurfaceShaderSet.js +36 -32
  185. package/Source/Scene/GltfBufferViewLoader.js +109 -118
  186. package/Source/Scene/GltfDracoLoader.js +167 -176
  187. package/Source/Scene/GltfImageLoader.js +91 -101
  188. package/Source/Scene/GltfIndexBufferLoader.js +228 -241
  189. package/Source/Scene/GltfJsonLoader.js +90 -99
  190. package/Source/Scene/GltfLoader.js +323 -324
  191. package/Source/Scene/GltfSpzLoader.js +127 -134
  192. package/Source/Scene/GltfStructuralMetadataLoader.js +181 -186
  193. package/Source/Scene/GltfTextureLoader.js +217 -231
  194. package/Source/Scene/GltfVertexBufferLoader.js +267 -276
  195. package/Source/Scene/GoogleStreetViewCubeMapPanoramaProvider.js +341 -0
  196. package/Source/Scene/ImageBasedLighting.js +2 -2
  197. package/Source/Scene/ImageryLayerCollection.js +2 -2
  198. package/Source/Scene/ImageryProvider.js +2 -2
  199. package/Source/Scene/Label.js +7 -5
  200. package/Source/Scene/LabelCollection.js +60 -2
  201. package/Source/Scene/Material.js +1 -1
  202. package/Source/Scene/MaterialAppearance.js +1 -1
  203. package/Source/Scene/Megatexture.js +174 -242
  204. package/Source/Scene/MetadataClassProperty.js +212 -7
  205. package/Source/Scene/MetadataComponentType.js +162 -127
  206. package/Source/Scene/MetadataSchemaLoader.js +60 -67
  207. package/Source/Scene/MetadataTable.js +14 -0
  208. package/Source/Scene/MetadataTableProperty.js +14 -0
  209. package/Source/Scene/Model/B3dmLoader.js +216 -224
  210. package/Source/Scene/Model/CustomShader.js +6 -1
  211. package/Source/Scene/Model/CustomShaderPipelineStage.js +122 -7
  212. package/Source/Scene/Model/GeoJsonLoader.js +53 -61
  213. package/Source/Scene/Model/GeometryPipelineStage.js +17 -3
  214. package/Source/Scene/Model/I3dmLoader.js +232 -240
  215. package/Source/Scene/Model/MaterialPipelineStage.js +17 -0
  216. package/Source/Scene/Model/MetadataPipelineStage.js +438 -22
  217. package/Source/Scene/Model/Model.js +1 -1
  218. package/Source/Scene/Model/PntsLoader.js +78 -89
  219. package/Source/Scene/ModelComponents.js +10 -0
  220. package/Source/Scene/Panorama.js +53 -0
  221. package/Source/Scene/PanoramaProvider.js +43 -0
  222. package/Source/Scene/ParticleSystem.js +2 -2
  223. package/Source/Scene/PointPrimitive.js +1 -1
  224. package/Source/Scene/PointPrimitiveCollection.js +14 -22
  225. package/Source/Scene/Polyline.js +0 -1
  226. package/Source/Scene/PolylineCollection.js +1 -4
  227. package/Source/Scene/PolylineColorAppearance.js +1 -6
  228. package/Source/Scene/PolylineMaterialAppearance.js +1 -6
  229. package/Source/Scene/PostProcessStageCollection.js +1 -1
  230. package/Source/Scene/PropertyTable.js +43 -0
  231. package/Source/Scene/PropertyTexture.js +1 -1
  232. package/Source/Scene/PropertyTextureProperty.js +0 -97
  233. package/Source/Scene/QuadtreePrimitive.js +6 -3
  234. package/Source/Scene/ResourceLoader.js +84 -92
  235. package/Source/Scene/Scene.js +12 -0
  236. package/Source/Scene/ShadowMap.js +1 -2
  237. package/Source/Scene/SkyBox.js +29 -164
  238. package/Source/Scene/StructuralMetadata.js +18 -3
  239. package/Source/Scene/Vector3DTileClampedPolylines.js +1 -5
  240. package/Source/Scene/Vector3DTilePolylines.js +1 -5
  241. package/Source/Scene/VoxelPrimitive.js +16 -33
  242. package/Source/Scene/VoxelRenderResources.js +1 -8
  243. package/Source/Scene/VoxelTraversal.js +16 -61
  244. package/Source/Scene/WebMapTileServiceImageryProvider.js +1 -1
  245. package/Source/Scene/createElevationBandMaterial.js +1 -1
  246. package/Source/Scene/parseStructuralMetadata.js +244 -0
  247. package/Source/Scene/processVoxelProperties.js +1 -1
  248. package/Source/Shaders/BillboardCollectionFS.glsl +66 -40
  249. package/Source/Shaders/BillboardCollectionFS.js +67 -40
  250. package/Source/Shaders/BillboardCollectionVS.glsl +22 -31
  251. package/Source/Shaders/BillboardCollectionVS.js +22 -31
  252. package/Source/Shaders/Builtin/CzmBuiltins.js +4 -0
  253. package/Source/Shaders/Builtin/Functions/columbusViewMorph.glsl +8 -1
  254. package/Source/Shaders/Builtin/Functions/columbusViewMorph.js +8 -1
  255. package/Source/Shaders/Builtin/Functions/decodeRGB8.glsl +22 -0
  256. package/Source/Shaders/Builtin/Functions/decodeRGB8.js +24 -0
  257. package/Source/Shaders/Builtin/Functions/unpackTexture.glsl +35 -0
  258. package/Source/Shaders/Builtin/Functions/unpackTexture.js +37 -0
  259. package/Source/Shaders/CubeMapPanoramaVS.glsl +11 -0
  260. package/Source/Shaders/CubeMapPanoramaVS.js +13 -0
  261. package/Source/Shaders/Model/MetadataStageFS.glsl +2 -1
  262. package/Source/Shaders/Model/MetadataStageFS.js +2 -1
  263. package/Source/Shaders/Model/MetadataStageVS.glsl +2 -1
  264. package/Source/Shaders/Model/MetadataStageVS.js +2 -1
  265. package/Source/Shaders/Model/ModelFS.glsl +9 -1
  266. package/Source/Shaders/Model/ModelFS.js +9 -1
  267. package/Source/Shaders/Model/ModelVS.glsl +4 -2
  268. package/Source/Shaders/Model/ModelVS.js +4 -2
  269. package/Source/Shaders/PointPrimitiveCollectionVS.glsl +8 -39
  270. package/Source/Shaders/PointPrimitiveCollectionVS.js +8 -39
  271. package/Source/Shaders/Voxels/IntersectionUtils.glsl +1 -1
  272. package/Source/Shaders/Voxels/IntersectionUtils.js +1 -1
  273. package/Source/Shaders/Voxels/Megatexture.glsl +15 -83
  274. package/Source/Shaders/Voxels/Megatexture.js +15 -83
  275. package/Source/Shaders/Voxels/Octree.glsl +6 -9
  276. package/Source/Shaders/Voxels/Octree.js +6 -9
  277. package/Source/Widget/CesiumWidget.js +1 -1
  278. package/Source/Workers/incrementallyBuildTerrainPicker.js +16 -2
  279. package/index.d.ts +582 -193
  280. package/index.js +91 -83
  281. package/package.json +2 -1
  282. package/Build/Workers/chunk-ZGWX2R5I.js +0 -1443
@@ -723,14 +723,7 @@ Globe.prototype.pickWorldCoordinates = function (
723
723
  const sphereIntersections = scratchArray;
724
724
  sphereIntersections.length = 0;
725
725
 
726
- const tilesToRender = this._surface._tilesToRender;
727
- let length = tilesToRender.length;
728
-
729
- let tile;
730
- let i;
731
-
732
- for (i = 0; i < length; ++i) {
733
- tile = tilesToRender[i];
726
+ for (const tile of this._surface._tilesRenderedThisFrame) {
734
727
  const surfaceTile = tile.data;
735
728
 
736
729
  if (!defined(surfaceTile)) {
@@ -776,8 +769,8 @@ Globe.prototype.pickWorldCoordinates = function (
776
769
  sphereIntersections.sort(createComparePickTileFunction(ray.origin));
777
770
 
778
771
  let intersection;
779
- length = sphereIntersections.length;
780
- for (i = 0; i < length; ++i) {
772
+ const length = sphereIntersections.length;
773
+ for (let i = 0; i < length; ++i) {
781
774
  intersection = sphereIntersections[i].pick(
782
775
  ray,
783
776
  scene.mode,
@@ -161,39 +161,43 @@ GlobeSurfaceShaderSet.prototype.getShaderProgram = function (options) {
161
161
  }
162
162
 
163
163
  const sceneMode = frameState.mode;
164
+ // Bitwise OR uses 32-bit integers; bits 0-31 are packed below.
165
+ // Flags beyond bit 31 use arithmetic to avoid silent wrap-around
166
+ // (x << 32 === x << 0 in JavaScript).
164
167
  const flags =
165
- sceneMode |
166
- (applyBrightness << 2) |
167
- (applyContrast << 3) |
168
- (applyHue << 4) |
169
- (applySaturation << 5) |
170
- (applyGamma << 6) |
171
- (applyAlpha << 7) |
172
- (hasWaterMask << 8) |
173
- (showReflectiveOcean << 9) |
174
- (showOceanWaves << 10) |
175
- (enableLighting << 11) |
176
- (dynamicAtmosphereLighting << 12) |
177
- (dynamicAtmosphereLightingFromSun << 13) |
178
- (showGroundAtmosphere << 14) |
179
- (perFragmentGroundAtmosphere << 15) |
180
- (hasVertexNormals << 16) |
181
- (useWebMercatorProjection << 17) |
182
- (enableFog << 18) |
183
- (quantization << 19) |
184
- (applySplit << 20) |
185
- (enableClippingPlanes << 21) |
186
- (enableClippingPolygons << 22) |
187
- (cartographicLimitRectangleFlag << 23) |
188
- (imageryCutoutFlag << 24) |
189
- (colorCorrect << 25) |
190
- (highlightFillTile << 26) |
191
- (colorToAlpha << 27) |
192
- (hasGeodeticSurfaceNormals << 28) |
193
- (hasExaggeration << 29) |
194
- (showUndergroundColor << 30) |
195
- (translucent << 31) |
196
- (applyDayNightAlpha << 32);
168
+ ((sceneMode |
169
+ (applyBrightness << 2) |
170
+ (applyContrast << 3) |
171
+ (applyHue << 4) |
172
+ (applySaturation << 5) |
173
+ (applyGamma << 6) |
174
+ (applyAlpha << 7) |
175
+ (hasWaterMask << 8) |
176
+ (showReflectiveOcean << 9) |
177
+ (showOceanWaves << 10) |
178
+ (enableLighting << 11) |
179
+ (dynamicAtmosphereLighting << 12) |
180
+ (dynamicAtmosphereLightingFromSun << 13) |
181
+ (showGroundAtmosphere << 14) |
182
+ (perFragmentGroundAtmosphere << 15) |
183
+ (hasVertexNormals << 16) |
184
+ (useWebMercatorProjection << 17) |
185
+ (enableFog << 18) |
186
+ (quantization << 19) |
187
+ (applySplit << 20) |
188
+ (enableClippingPlanes << 21) |
189
+ (enableClippingPolygons << 22) |
190
+ (cartographicLimitRectangleFlag << 23) |
191
+ (imageryCutoutFlag << 24) |
192
+ (colorCorrect << 25) |
193
+ (highlightFillTile << 26) |
194
+ (colorToAlpha << 27) |
195
+ (hasGeodeticSurfaceNormals << 28) |
196
+ (hasExaggeration << 29) |
197
+ (showUndergroundColor << 30) |
198
+ (translucent << 31)) >>>
199
+ 0) +
200
+ (applyDayNightAlpha ? 0x100000000 : 0);
197
201
 
198
202
  let currentClippingShaderState = 0;
199
203
  if (defined(clippingPlanes) && clippingPlanes.length > 0) {
@@ -12,89 +12,83 @@ import ResourceLoaderState from "./ResourceLoaderState.js";
12
12
  * Implements the {@link ResourceLoader} interface.
13
13
  * </p>
14
14
  *
15
- * @alias GltfBufferViewLoader
16
- * @constructor
17
- * @augments ResourceLoader
18
- *
19
- * @param {object} options Object with the following properties:
20
- * @param {ResourceCache} options.resourceCache The {@link ResourceCache} (to avoid circular dependencies).
21
- * @param {object} options.gltf The glTF JSON.
22
- * @param {number} options.bufferViewId The buffer view ID.
23
- * @param {Resource} options.gltfResource The {@link Resource} containing the glTF.
24
- * @param {Resource} options.baseResource The {@link Resource} that paths in the glTF JSON are relative to.
25
- * @param {string} [options.cacheKey] The cache key of the resource.
26
- *
27
15
  * @private
28
16
  */
29
- function GltfBufferViewLoader(options) {
30
- options = options ?? Frozen.EMPTY_OBJECT;
31
- const resourceCache = options.resourceCache;
32
- const gltf = options.gltf;
33
- const bufferViewId = options.bufferViewId;
34
- const gltfResource = options.gltfResource;
35
- const baseResource = options.baseResource;
36
- const cacheKey = options.cacheKey;
37
-
38
- //>>includeStart('debug', pragmas.debug);
39
- Check.typeOf.func("options.resourceCache", resourceCache);
40
- Check.typeOf.object("options.gltf", gltf);
41
- Check.typeOf.number("options.bufferViewId", bufferViewId);
42
- Check.typeOf.object("options.gltfResource", gltfResource);
43
- Check.typeOf.object("options.baseResource", baseResource);
44
- //>>includeEnd('debug');
45
-
46
- const bufferView = gltf.bufferViews[bufferViewId];
47
- let bufferId = bufferView.buffer;
48
- let byteOffset = bufferView.byteOffset;
49
- let byteLength = bufferView.byteLength;
50
-
51
- let hasMeshopt = false;
52
- let meshoptByteStride;
53
- let meshoptCount;
54
- let meshoptMode;
55
- let meshoptFilter;
56
-
57
- if (hasExtension(bufferView, "EXT_meshopt_compression")) {
58
- const meshopt = bufferView.extensions.EXT_meshopt_compression;
59
- bufferId = meshopt.buffer;
60
- byteOffset = meshopt.byteOffset ?? 0;
61
- byteLength = meshopt.byteLength;
62
-
63
- hasMeshopt = true;
64
- meshoptByteStride = meshopt.byteStride;
65
- meshoptCount = meshopt.count;
66
- meshoptMode = meshopt.mode;
67
- meshoptFilter = meshopt.filter ?? "NONE";
68
- }
69
-
70
- const buffer = gltf.buffers[bufferId];
71
-
72
- this._hasMeshopt = hasMeshopt;
73
- this._meshoptByteStride = meshoptByteStride;
74
- this._meshoptCount = meshoptCount;
75
- this._meshoptMode = meshoptMode;
76
- this._meshoptFilter = meshoptFilter;
77
-
78
- this._resourceCache = resourceCache;
79
- this._gltfResource = gltfResource;
80
- this._baseResource = baseResource;
81
- this._buffer = buffer;
82
- this._bufferId = bufferId;
83
- this._byteOffset = byteOffset;
84
- this._byteLength = byteLength;
85
- this._cacheKey = cacheKey;
86
- this._bufferLoader = undefined;
87
- this._typedArray = undefined;
88
- this._state = ResourceLoaderState.UNLOADED;
89
- this._promise = undefined;
90
- }
17
+ class GltfBufferViewLoader extends ResourceLoader {
18
+ /**
19
+ * @param {object} options Object with the following properties:
20
+ * @param {ResourceCache} options.resourceCache The {@link ResourceCache} (to avoid circular dependencies).
21
+ * @param {object} options.gltf The glTF JSON.
22
+ * @param {number} options.bufferViewId The buffer view ID.
23
+ * @param {Resource} options.gltfResource The {@link Resource} containing the glTF.
24
+ * @param {Resource} options.baseResource The {@link Resource} that paths in the glTF JSON are relative to.
25
+ * @param {string} [options.cacheKey] The cache key of the resource.
26
+ */
27
+ constructor(options) {
28
+ super();
29
+
30
+ options = options ?? Frozen.EMPTY_OBJECT;
31
+ const resourceCache = options.resourceCache;
32
+ const gltf = options.gltf;
33
+ const bufferViewId = options.bufferViewId;
34
+ const gltfResource = options.gltfResource;
35
+ const baseResource = options.baseResource;
36
+ const cacheKey = options.cacheKey;
37
+
38
+ //>>includeStart('debug', pragmas.debug);
39
+ Check.typeOf.func("options.resourceCache", resourceCache);
40
+ Check.typeOf.object("options.gltf", gltf);
41
+ Check.typeOf.number("options.bufferViewId", bufferViewId);
42
+ Check.typeOf.object("options.gltfResource", gltfResource);
43
+ Check.typeOf.object("options.baseResource", baseResource);
44
+ //>>includeEnd('debug');
45
+
46
+ const bufferView = gltf.bufferViews[bufferViewId];
47
+ let bufferId = bufferView.buffer;
48
+ let byteOffset = bufferView.byteOffset;
49
+ let byteLength = bufferView.byteLength;
50
+
51
+ let hasMeshopt = false;
52
+ let meshoptByteStride;
53
+ let meshoptCount;
54
+ let meshoptMode;
55
+ let meshoptFilter;
56
+
57
+ if (hasExtension(bufferView, "EXT_meshopt_compression")) {
58
+ const meshopt = bufferView.extensions.EXT_meshopt_compression;
59
+ bufferId = meshopt.buffer;
60
+ byteOffset = meshopt.byteOffset ?? 0;
61
+ byteLength = meshopt.byteLength;
62
+
63
+ hasMeshopt = true;
64
+ meshoptByteStride = meshopt.byteStride;
65
+ meshoptCount = meshopt.count;
66
+ meshoptMode = meshopt.mode;
67
+ meshoptFilter = meshopt.filter ?? "NONE";
68
+ }
91
69
 
92
- if (defined(Object.create)) {
93
- GltfBufferViewLoader.prototype = Object.create(ResourceLoader.prototype);
94
- GltfBufferViewLoader.prototype.constructor = GltfBufferViewLoader;
95
- }
70
+ const buffer = gltf.buffers[bufferId];
71
+
72
+ this._hasMeshopt = hasMeshopt;
73
+ this._meshoptByteStride = meshoptByteStride;
74
+ this._meshoptCount = meshoptCount;
75
+ this._meshoptMode = meshoptMode;
76
+ this._meshoptFilter = meshoptFilter;
77
+
78
+ this._resourceCache = resourceCache;
79
+ this._gltfResource = gltfResource;
80
+ this._baseResource = baseResource;
81
+ this._buffer = buffer;
82
+ this._bufferId = bufferId;
83
+ this._byteOffset = byteOffset;
84
+ this._byteLength = byteLength;
85
+ this._cacheKey = cacheKey;
86
+ this._bufferLoader = undefined;
87
+ this._typedArray = undefined;
88
+ this._state = ResourceLoaderState.UNLOADED;
89
+ this._promise = undefined;
90
+ }
96
91
 
97
- Object.defineProperties(GltfBufferViewLoader.prototype, {
98
92
  /**
99
93
  * The cache key of the resource.
100
94
  *
@@ -104,11 +98,10 @@ Object.defineProperties(GltfBufferViewLoader.prototype, {
104
98
  * @readonly
105
99
  * @private
106
100
  */
107
- cacheKey: {
108
- get: function () {
109
- return this._cacheKey;
110
- },
111
- },
101
+ get cacheKey() {
102
+ return this._cacheKey;
103
+ }
104
+
112
105
  /**
113
106
  * The typed array containing buffer view data.
114
107
  *
@@ -118,12 +111,38 @@ Object.defineProperties(GltfBufferViewLoader.prototype, {
118
111
  * @readonly
119
112
  * @private
120
113
  */
121
- typedArray: {
122
- get: function () {
123
- return this._typedArray;
124
- },
125
- },
126
- });
114
+ get typedArray() {
115
+ return this._typedArray;
116
+ }
117
+
118
+ /**
119
+ * Loads the resource.
120
+ * @returns {Promise<GltfBufferViewLoader>} A promise which resolves to the loader when the resource loading is completed.
121
+ * @private
122
+ */
123
+ async load() {
124
+ if (defined(this._promise)) {
125
+ return this._promise;
126
+ }
127
+
128
+ this._state = ResourceLoaderState.LOADING;
129
+ this._promise = loadResources(this);
130
+ return this._promise;
131
+ }
132
+
133
+ /**
134
+ * Unloads the resource.
135
+ * @private
136
+ */
137
+ unload() {
138
+ if (defined(this._bufferLoader) && !this._bufferLoader.isDestroyed()) {
139
+ this._resourceCache.unload(this._bufferLoader);
140
+ }
141
+
142
+ this._bufferLoader = undefined;
143
+ this._typedArray = undefined;
144
+ }
145
+ }
127
146
 
128
147
  /**
129
148
  * Load the resources associated with the loader.
@@ -181,21 +200,6 @@ async function loadResources(loader) {
181
200
  }
182
201
  }
183
202
 
184
- /**
185
- * Loads the resource.
186
- * @returns {Promise<GltfBufferViewLoader>} A promise which resolves to the loader when the resource loading is completed.
187
- * @private
188
- */
189
- GltfBufferViewLoader.prototype.load = async function () {
190
- if (defined(this._promise)) {
191
- return this._promise;
192
- }
193
-
194
- this._state = ResourceLoaderState.LOADING;
195
- this._promise = loadResources(this);
196
- return this._promise;
197
- };
198
-
199
203
  /**
200
204
  * Get the buffer loader for the specified buffer view loader.
201
205
  * Attempts to retrieve from the resource cache first. If a buffer loader is
@@ -226,17 +230,4 @@ function getBufferLoader(bufferViewLoader) {
226
230
  });
227
231
  }
228
232
 
229
- /**
230
- * Unloads the resource.
231
- * @private
232
- */
233
- GltfBufferViewLoader.prototype.unload = function () {
234
- if (defined(this._bufferLoader) && !this._bufferLoader.isDestroyed()) {
235
- this._resourceCache.unload(this._bufferLoader);
236
- }
237
-
238
- this._bufferLoader = undefined;
239
- this._typedArray = undefined;
240
- };
241
-
242
233
  export default GltfBufferViewLoader;