@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
@@ -10,61 +10,57 @@ import { loadSpz } from "@spz-loader/core";
10
10
  * <p>
11
11
  * Implements the {@link ResourceLoader} interface.
12
12
  * </p>
13
- * @alias GltfSpzLoader
14
- * @constructor
15
- * @augments ResourceLoader
16
- * @param {object} options Object with the following properties:
17
- * @param {ResourceCache} options.resourceCache The {@link ResourceCache} (to avoid circular dependencies).
18
- * @param {object} options.gltf The glTF JSON.
19
- * @param {object} options.primitive The primitive containing the SPZ extension.
20
- * @param {object} options.spz The SPZ extension object.
21
- * @param {Resource} options.gltfResource The {@link Resource} containing the glTF.
22
- * @param {Resource} options.baseResource The {@link Resource} that paths in the glTF JSON are relative to.
23
- * @param {string} [options.cacheKey] The cache key of the resource.
24
13
  *
25
14
  * @private
26
15
  */
27
- function GltfSpzLoader(options) {
28
- options = options ?? Frozen.EMPTY_OBJECT;
29
- const resourceCache = options.resourceCache;
30
- const gltf = options.gltf;
31
- const primitive = options.primitive;
32
- const spz = options.spz;
33
- const gltfResource = options.gltfResource;
34
- const baseResource = options.baseResource;
35
- const cacheKey = options.cacheKey;
36
-
37
- //>>includeStart('debug', pragmas.debug);
38
- Check.typeOf.func("options.resourceCache", resourceCache);
39
- Check.typeOf.object("options.gltf", gltf);
40
- Check.typeOf.object("options.primitive", primitive);
41
- Check.typeOf.object("options.spz", spz);
42
- Check.typeOf.object("options.gltfResource", gltfResource);
43
- Check.typeOf.object("options.baseResource", baseResource);
44
- //>>includeEnd('debug');
45
-
46
- this._resourceCache = resourceCache;
47
- this._gltfResource = gltfResource;
48
- this._baseResource = baseResource;
49
- this._gltf = gltf;
50
- this._primitive = primitive;
51
- this._spz = spz;
52
- this._cacheKey = cacheKey;
53
- this._bufferViewLoader = undefined;
54
- this._bufferViewTypedArray = undefined;
55
- this._decodePromise = undefined;
56
- this._decodedData = undefined;
57
- this._state = ResourceLoaderState.UNLOADED;
58
- this._promise = undefined;
59
- this._spzError = undefined;
60
- }
61
-
62
- if (defined(Object.create)) {
63
- GltfSpzLoader.prototype = Object.create(ResourceLoader.prototype);
64
- GltfSpzLoader.prototype.constructor = GltfSpzLoader;
65
- }
16
+ class GltfSpzLoader extends ResourceLoader {
17
+ /**
18
+ * @param {object} options Object with the following properties:
19
+ * @param {ResourceCache} options.resourceCache The {@link ResourceCache} (to avoid circular dependencies).
20
+ * @param {object} options.gltf The glTF JSON.
21
+ * @param {object} options.primitive The primitive containing the SPZ extension.
22
+ * @param {object} options.spz The SPZ extension object.
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 primitive = options.primitive;
34
+ const spz = options.spz;
35
+ const gltfResource = options.gltfResource;
36
+ const baseResource = options.baseResource;
37
+ const cacheKey = options.cacheKey;
38
+
39
+ //>>includeStart('debug', pragmas.debug);
40
+ Check.typeOf.func("options.resourceCache", resourceCache);
41
+ Check.typeOf.object("options.gltf", gltf);
42
+ Check.typeOf.object("options.primitive", primitive);
43
+ Check.typeOf.object("options.spz", spz);
44
+ Check.typeOf.object("options.gltfResource", gltfResource);
45
+ Check.typeOf.object("options.baseResource", baseResource);
46
+ //>>includeEnd('debug');
47
+
48
+ this._resourceCache = resourceCache;
49
+ this._gltfResource = gltfResource;
50
+ this._baseResource = baseResource;
51
+ this._gltf = gltf;
52
+ this._primitive = primitive;
53
+ this._spz = spz;
54
+ this._cacheKey = cacheKey;
55
+ this._bufferViewLoader = undefined;
56
+ this._bufferViewTypedArray = undefined;
57
+ this._decodePromise = undefined;
58
+ this._decodedData = undefined;
59
+ this._state = ResourceLoaderState.UNLOADED;
60
+ this._promise = undefined;
61
+ this._spzError = undefined;
62
+ }
66
63
 
67
- Object.defineProperties(GltfSpzLoader.prototype, {
68
64
  /**
69
65
  * The cache key of the resource.
70
66
  * @memberof GltfSpzLoader.prototype
@@ -72,11 +68,10 @@ Object.defineProperties(GltfSpzLoader.prototype, {
72
68
  * @readonly
73
69
  * @private
74
70
  */
75
- cacheKey: {
76
- get: function () {
77
- return this._cacheKey;
78
- },
79
- },
71
+ get cacheKey() {
72
+ return this._cacheKey;
73
+ }
74
+
80
75
  /**
81
76
  * The decoded SPZ data.
82
77
  * @memberof GltfSpzLoader.prototype
@@ -84,12 +79,82 @@ Object.defineProperties(GltfSpzLoader.prototype, {
84
79
  * @readonly
85
80
  * @private
86
81
  */
87
- decodedData: {
88
- get: function () {
89
- return this._decodedData;
90
- },
91
- },
92
- });
82
+ get decodedData() {
83
+ return this._decodedData;
84
+ }
85
+
86
+ /**
87
+ * Loads the SPZ resource.
88
+ * @returns {Promise<Resource>} A promise that resolves to the resource when the SPZ is loaded.
89
+ * @private
90
+ */
91
+ async load() {
92
+ if (defined(this._promise)) {
93
+ return this._promise;
94
+ }
95
+
96
+ this._state = ResourceLoaderState.LOADING;
97
+ this._promise = loadResources(this);
98
+ return this._promise;
99
+ }
100
+
101
+ /**
102
+ * Processes the SPZ resource.
103
+ * @param {FrameState} frameState The frame state.
104
+ * @private
105
+ */
106
+ process(frameState) {
107
+ //>>includeStart('debug', pragmas.debug);
108
+ Check.typeOf.object("frameState", frameState);
109
+ //>>includeEnd('debug');
110
+
111
+ if (this._state === ResourceLoaderState.READY) {
112
+ return true;
113
+ }
114
+
115
+ if (this._state !== ResourceLoaderState.PROCESSING) {
116
+ return false;
117
+ }
118
+
119
+ if (defined(this._spzError)) {
120
+ handleError(this, this._spzError);
121
+ }
122
+
123
+ if (!defined(this._bufferViewTypedArray)) {
124
+ return false;
125
+ }
126
+
127
+ if (defined(this._decodePromise)) {
128
+ return false;
129
+ }
130
+
131
+ const decodePromise = loadSpz(this._bufferViewTypedArray, {
132
+ unpackOptions: { coordinateSystem: "UNSPECIFIED" },
133
+ });
134
+
135
+ if (!defined(decodePromise)) {
136
+ return false;
137
+ }
138
+
139
+ this._decodePromise = processDecode(this, decodePromise);
140
+ }
141
+
142
+ /**
143
+ * Unloads the SPZ resource and frees associated resources.
144
+ * @private
145
+ */
146
+ unload() {
147
+ if (defined(this._bufferViewLoader)) {
148
+ this._resourceCache.unload(this._bufferViewLoader);
149
+ }
150
+
151
+ this._bufferViewLoader = undefined;
152
+ this._bufferViewTypedArray = undefined;
153
+ this._decodedData = undefined;
154
+ this._gltf = undefined;
155
+ this._primitive = undefined;
156
+ }
157
+ }
93
158
 
94
159
  async function loadResources(loader) {
95
160
  const resourceCache = loader._resourceCache;
@@ -119,21 +184,6 @@ async function loadResources(loader) {
119
184
  }
120
185
  }
121
186
 
122
- /**
123
- * Loads the SPZ resource.
124
- * @returns {Promise<Resource>} A promise that resolves to the resource when the SPZ is loaded.
125
- * @private
126
- */
127
- GltfSpzLoader.prototype.load = async function () {
128
- if (defined(this._promise)) {
129
- return this._promise;
130
- }
131
-
132
- this._state = ResourceLoaderState.LOADING;
133
- this._promise = loadResources(this);
134
- return this._promise;
135
- };
136
-
137
187
  function handleError(spzLoader, error) {
138
188
  spzLoader.unload();
139
189
  spzLoader._state = ResourceLoaderState.FAILED;
@@ -164,61 +214,4 @@ async function processDecode(loader, decodePromise) {
164
214
  }
165
215
  }
166
216
 
167
- /**
168
- * Processes the SPZ resource.
169
- * @param {FrameState} frameState The frame state.
170
- * @private
171
- */
172
- GltfSpzLoader.prototype.process = function (frameState) {
173
- //>>includeStart('debug', pragmas.debug);
174
- Check.typeOf.object("frameState", frameState);
175
- //>>includeEnd('debug');
176
-
177
- if (this._state === ResourceLoaderState.READY) {
178
- return true;
179
- }
180
-
181
- if (this._state !== ResourceLoaderState.PROCESSING) {
182
- return false;
183
- }
184
-
185
- if (defined(this._spzError)) {
186
- handleError(this, this._spzError);
187
- }
188
-
189
- if (!defined(this._bufferViewTypedArray)) {
190
- return false;
191
- }
192
-
193
- if (defined(this._decodePromise)) {
194
- return false;
195
- }
196
-
197
- const decodePromise = loadSpz(this._bufferViewTypedArray, {
198
- unpackOptions: { coordinateSystem: "UNSPECIFIED" },
199
- });
200
-
201
- if (!defined(decodePromise)) {
202
- return false;
203
- }
204
-
205
- this._decodePromise = processDecode(this, decodePromise);
206
- };
207
-
208
- /**
209
- * Unloads the SPZ resource and frees associated resources.
210
- * @private
211
- */
212
- GltfSpzLoader.prototype.unload = function () {
213
- if (defined(this._bufferViewLoader)) {
214
- this._resourceCache.unload(this._bufferViewLoader);
215
- }
216
-
217
- this._bufferViewLoader = undefined;
218
- this._bufferViewTypedArray = undefined;
219
- this._decodedData = undefined;
220
- this._gltf = undefined;
221
- this._primitive = undefined;
222
- };
223
-
224
217
  export default GltfSpzLoader;