@cesium/engine 24.0.0 → 25.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 (312) hide show
  1. package/Build/Workers/{chunk-NKT5K3K3.js → chunk-35H3UBIO.js} +13 -12
  2. package/Build/Workers/{chunk-5A2SW66E.js → chunk-3LSD7OOA.js} +16 -16
  3. package/Build/Workers/{chunk-HXJMS2ZI.js → chunk-3RFFPH4M.js} +1 -1
  4. package/Build/Workers/{chunk-EDXL4W76.js → chunk-3TKLDHV3.js} +2 -2
  5. package/Build/Workers/{chunk-GQUNK2XC.js → chunk-3VDDRF2E.js} +14 -14
  6. package/Build/Workers/{chunk-Q3C6VQH6.js → chunk-3XY3MVPG.js} +4 -4
  7. package/Build/Workers/{chunk-A47HVBC5.js → chunk-4GF4MVPY.js} +7 -7
  8. package/Build/Workers/{chunk-YQFTYQMZ.js → chunk-4MTRQFJP.js} +3 -2
  9. package/Build/Workers/{chunk-N65BAKSH.js → chunk-4QQXGTCE.js} +8 -8
  10. package/Build/Workers/{chunk-EV3VGO6Y.js → chunk-4XXHJI6Y.js} +17 -17
  11. package/Build/Workers/{chunk-DHKPFLSJ.js → chunk-5T6QQAJW.js} +3 -2
  12. package/Build/Workers/{chunk-UIGVOKKI.js → chunk-6SDGQI27.js} +3 -2
  13. package/Build/Workers/{chunk-ILMFADZA.js → chunk-77RL3MBD.js} +6 -5
  14. package/Build/Workers/{chunk-2N4KDHS3.js → chunk-7LSFAEWF.js} +12 -11
  15. package/Build/Workers/{chunk-44EMEGKW.js → chunk-A7A433MD.js} +5 -5
  16. package/Build/Workers/{chunk-J6AW5YHS.js → chunk-A7ZBMVFS.js} +14 -14
  17. package/Build/Workers/{chunk-XJRBB253.js → chunk-ACFFCHHZ.js} +11 -11
  18. package/Build/Workers/{chunk-MKM27KGV.js → chunk-AEAVLYPS.js} +2 -2
  19. package/Build/Workers/{chunk-7MDYBRYJ.js → chunk-AWFZHD2B.js} +4 -4
  20. package/Build/Workers/{chunk-UQU4RXLT.js → chunk-BTX2NL3P.js} +50 -45
  21. package/Build/Workers/{chunk-4TIG36AW.js → chunk-BVAIWR7O.js} +12 -12
  22. package/Build/Workers/chunk-CKQP3DSS.js +973 -0
  23. package/Build/Workers/{chunk-VLDEUTOP.js → chunk-CZ23Y3RM.js} +2 -2
  24. package/Build/Workers/{chunk-NPF7SSHZ.js → chunk-DFEI5MAV.js} +7 -7
  25. package/Build/Workers/{chunk-AJLTU6PF.js → chunk-DH26SNAB.js} +4 -1
  26. package/Build/Workers/{chunk-5GXYJQ2K.js → chunk-DYT5NR6P.js} +3 -3
  27. package/Build/Workers/{chunk-63SIWPLS.js → chunk-EZARA5FJ.js} +13 -13
  28. package/Build/Workers/{chunk-AMIHNSST.js → chunk-FIBS5S7R.js} +2 -2
  29. package/Build/Workers/{chunk-Y7HNNPNK.js → chunk-FVLVVOBQ.js} +10 -10
  30. package/Build/Workers/{chunk-XY6HMDGI.js → chunk-GL7DNVUS.js} +5 -5
  31. package/Build/Workers/{chunk-6WLHJFD3.js → chunk-GPIGURCG.js} +59 -32
  32. package/Build/Workers/{chunk-B6SCUUFP.js → chunk-H2A4USJR.js} +10 -10
  33. package/Build/Workers/chunk-HSVQATK2.js +147 -0
  34. package/Build/Workers/{chunk-72VYSVEW.js → chunk-HVMG6AG4.js} +11 -10
  35. package/Build/Workers/{chunk-LXMCPFFS.js → chunk-I3A6DXYZ.js} +4 -4
  36. package/Build/Workers/{chunk-7QRFIKWQ.js → chunk-ITD2IN7N.js} +2 -2
  37. package/Build/Workers/{chunk-RQNJD3O4.js → chunk-J3OFS2RD.js} +12 -12
  38. package/Build/Workers/{chunk-C6P4IG5P.js → chunk-J647NNZW.js} +6 -6
  39. package/Build/Workers/{chunk-7X322WP2.js → chunk-J7KQEKPK.js} +13 -13
  40. package/Build/Workers/{chunk-7O5XJTVE.js → chunk-K6NFIRFB.js} +5 -5
  41. package/Build/Workers/{chunk-AF3MU2RL.js → chunk-LH5SF3XV.js} +7 -6
  42. package/Build/Workers/{chunk-GOQBUCXH.js → chunk-ND3NTTOF.js} +708 -430
  43. package/Build/Workers/chunk-QO2CGXMP.js +2342 -0
  44. package/Build/Workers/chunk-QSDY4NS7.js +1287 -0
  45. package/Build/Workers/chunk-QXNQQYPV.js +3201 -0
  46. package/Build/Workers/{chunk-YAOZMOFL.js → chunk-ST2UWDUU.js} +5 -5
  47. package/Build/Workers/{chunk-PVV64VFW.js → chunk-TA777BGS.js} +3 -2
  48. package/Build/Workers/{chunk-ISY4EZCA.js → chunk-TAI4HLII.js} +4 -4
  49. package/Build/Workers/{chunk-JCI63T3K.js → chunk-URUCCIPS.js} +6 -6
  50. package/Build/Workers/{chunk-VMVOUQ5J.js → chunk-VQKLRBIK.js} +7 -7
  51. package/Build/Workers/{chunk-6MPGQEHA.js → chunk-WC57YYBN.js} +2 -2
  52. package/Build/Workers/{chunk-BJD6QGXZ.js → chunk-WN6P5UDH.js} +12 -12
  53. package/Build/Workers/{chunk-LIB2H534.js → chunk-WNN5D4W3.js} +12 -11
  54. package/Build/Workers/{chunk-D4EJ2NXG.js → chunk-WTQGE7Q6.js} +17 -17
  55. package/Build/Workers/{chunk-YJZGW74L.js → chunk-WUBKZFF6.js} +2213 -1349
  56. package/Build/Workers/{chunk-7TYLCBGK.js → chunk-ZAPOS52G.js} +12 -10
  57. package/Build/Workers/{chunk-6RMS4S72.js → chunk-ZCCIIBZT.js} +6 -6
  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 +175 -118
  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 +24 -23
  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 +10 -10
  107. package/Build/Workers/transcodeKTX2.js +12 -9
  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/ArcType.js +6 -1
  112. package/Source/Core/ArticulationStageType.js +5 -1
  113. package/Source/Core/AssociativeArray.js +100 -94
  114. package/Source/Core/BoundingSphere.js +1296 -1300
  115. package/Source/Core/Cartesian3.js +1 -2
  116. package/Source/Core/Cartographic.js +257 -249
  117. package/Source/Core/ClockRange.js +6 -1
  118. package/Source/Core/ClockStep.js +6 -1
  119. package/Source/Core/Color.js +844 -835
  120. package/Source/Core/ComponentDatatype.js +4 -1
  121. package/Source/Core/CornerType.js +6 -1
  122. package/Source/Core/Credit.js +121 -124
  123. package/Source/Core/Ellipsoid.js +637 -660
  124. package/Source/Core/ExtrapolationType.js +6 -1
  125. package/Source/Core/GeocodeType.js +6 -1
  126. package/Source/Core/GeographicProjection.js +74 -74
  127. package/Source/Core/GeographicTilingScheme.js +179 -198
  128. package/Source/Core/GeometryOffsetAttribute.js +7 -1
  129. package/Source/Core/GeometryType.js +7 -1
  130. package/Source/Core/HeightmapEncoding.js +6 -1
  131. package/Source/Core/Iau2006XysData.js +24 -13
  132. package/Source/Core/IndexDatatype.js +3 -1
  133. package/Source/Core/InterpolationType.js +5 -1
  134. package/Source/Core/Intersect.js +6 -1
  135. package/Source/Core/Ion.js +1 -1
  136. package/Source/Core/IonGeocodeProviderType.js +5 -1
  137. package/Source/Core/JulianDate.js +850 -848
  138. package/Source/Core/KeyboardEventModifier.js +6 -1
  139. package/Source/Core/MapProjection.js +39 -44
  140. package/Source/Core/Matrix2.js +906 -893
  141. package/Source/Core/Matrix3.js +1643 -1575
  142. package/Source/Core/Matrix4.js +2903 -2872
  143. package/Source/Core/PixelFormat.js +3 -1
  144. package/Source/Core/PrimitiveType.js +11 -1
  145. package/Source/Core/Ray.js +62 -60
  146. package/Source/Core/Rectangle.js +913 -904
  147. package/Source/Core/ReferenceFrame.js +6 -1
  148. package/Source/Core/RequestScheduler.js +8 -3
  149. package/Source/Core/RequestState.js +6 -1
  150. package/Source/Core/RequestType.js +6 -1
  151. package/Source/Core/ScreenSpaceEventType.js +6 -1
  152. package/Source/Core/TerrainQuantization.js +6 -1
  153. package/Source/Core/TilingScheme.js +100 -98
  154. package/Source/Core/TimeConstants.js +6 -1
  155. package/Source/Core/TimeStandard.js +6 -1
  156. package/Source/Core/TrackingReferenceFrame.js +6 -1
  157. package/Source/Core/Visibility.js +6 -1
  158. package/Source/Core/VulkanConstants.js +6 -1
  159. package/Source/Core/WebGLConstants.js +6 -1
  160. package/Source/Core/WebMercatorProjection.js +108 -109
  161. package/Source/Core/WebMercatorTilingScheme.js +246 -242
  162. package/Source/Core/WindingOrder.js +3 -1
  163. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +1 -0
  164. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -0
  165. package/Source/DataSources/StripeOrientation.js +6 -1
  166. package/Source/Renderer/BufferUsage.js +20 -9
  167. package/Source/Renderer/Context.js +2 -29
  168. package/Source/Renderer/DrawCommand.js +435 -403
  169. package/Source/Renderer/MipmapHint.js +5 -1
  170. package/Source/Renderer/Pass.js +7 -1
  171. package/Source/Renderer/PickId.js +44 -0
  172. package/Source/Renderer/PixelDatatype.js +3 -1
  173. package/Source/Renderer/RenderbufferFormat.js +5 -1
  174. package/Source/Renderer/ShaderDestination.js +4 -1
  175. package/Source/Renderer/TextureMagnificationFilter.js +3 -1
  176. package/Source/Renderer/TextureMinificationFilter.js +3 -1
  177. package/Source/Renderer/TextureWrap.js +5 -1
  178. package/Source/Scene/AlphaMode.js +5 -1
  179. package/Source/Scene/ArcGisBaseMapType.js +6 -1
  180. package/Source/Scene/ArcGisMapService.js +1 -1
  181. package/Source/Scene/AttributeType.js +3 -1
  182. package/Source/Scene/Axis.js +3 -1
  183. package/Source/Scene/BingMapsStyle.js +6 -1
  184. package/Source/Scene/BlendEquation.js +6 -1
  185. package/Source/Scene/BlendFunction.js +6 -1
  186. package/Source/Scene/BlendOption.js +6 -1
  187. package/Source/Scene/BlendingState.js +6 -1
  188. package/Source/Scene/BufferLoader.js +0 -2
  189. package/Source/Scene/BufferPointCollection.js +4 -1
  190. package/Source/Scene/BufferPolygonCollection.js +3 -1
  191. package/Source/Scene/BufferPolylineCollection.js +3 -1
  192. package/Source/Scene/BufferPrimitiveCollection.js +140 -24
  193. package/Source/Scene/CameraEventType.js +6 -1
  194. package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
  195. package/Source/Scene/Cesium3DTileContentState.js +6 -1
  196. package/Source/Scene/Cesium3DTileContentType.js +3 -1
  197. package/Source/Scene/Cesium3DTileFeature.js +289 -306
  198. package/Source/Scene/Cesium3DTileOptimizationHint.js +6 -1
  199. package/Source/Scene/Cesium3DTilePass.js +5 -1
  200. package/Source/Scene/Cesium3DTilePointFeature.js +433 -511
  201. package/Source/Scene/Cesium3DTileRefine.js +6 -1
  202. package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
  203. package/Source/Scene/Cesium3DTileset.js +1 -1
  204. package/Source/Scene/ClassificationType.js +3 -1
  205. package/Source/Scene/CloudType.js +3 -1
  206. package/Source/Scene/ColorBlendMode.js +4 -1
  207. package/Source/Scene/CullFace.js +6 -1
  208. package/Source/Scene/DepthFunction.js +6 -1
  209. package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
  210. package/Source/Scene/EquirectangularPanorama.js +1 -0
  211. package/Source/Scene/ExpressionNodeType.js +6 -1
  212. package/Source/Scene/GltfBufferViewLoader.js +0 -2
  213. package/Source/Scene/GltfDracoLoader.js +0 -2
  214. package/Source/Scene/GltfImageLoader.js +0 -3
  215. package/Source/Scene/GltfIndexBufferLoader.js +0 -4
  216. package/Source/Scene/GltfJsonLoader.js +0 -2
  217. package/Source/Scene/GltfLoader.js +0 -5
  218. package/Source/Scene/GltfLoaderUtil.js +14 -0
  219. package/Source/Scene/GltfSpzLoader.js +0 -2
  220. package/Source/Scene/GltfStructuralMetadataLoader.js +0 -2
  221. package/Source/Scene/GltfTextureLoader.js +0 -2
  222. package/Source/Scene/GltfVertexBufferLoader.js +0 -4
  223. package/Source/Scene/HeightReference.js +5 -1
  224. package/Source/Scene/HorizontalOrigin.js +6 -1
  225. package/Source/Scene/ImageryProvider.js +1 -1
  226. package/Source/Scene/ImageryState.js +6 -1
  227. package/Source/Scene/ImplicitSubdivisionScheme.js +3 -1
  228. package/Source/Scene/InstanceAttributeSemantic.js +3 -1
  229. package/Source/Scene/IonWorldImageryStyle.js +6 -1
  230. package/Source/Scene/JobType.js +6 -1
  231. package/Source/Scene/LabelStyle.js +6 -1
  232. package/Source/Scene/MapMode2D.js +6 -1
  233. package/Source/Scene/MetadataComponentType.js +3 -1
  234. package/Source/Scene/MetadataSchemaLoader.js +0 -2
  235. package/Source/Scene/MetadataSemantic.js +6 -2
  236. package/Source/Scene/MetadataType.js +3 -1
  237. package/Source/Scene/Model/B3dmLoader.js +0 -3
  238. package/Source/Scene/Model/CustomShaderMode.js +3 -1
  239. package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
  240. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +44 -71
  241. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +5 -1
  242. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +5 -1
  243. package/Source/Scene/Model/GeoJsonLoader.js +0 -2
  244. package/Source/Scene/Model/I3dmLoader.js +0 -3
  245. package/Source/Scene/Model/InstancingPipelineStage.js +1 -1
  246. package/Source/Scene/Model/LightingModel.js +5 -1
  247. package/Source/Scene/Model/MaterialPipelineStage.js +184 -3
  248. package/Source/Scene/Model/ModelReader.js +474 -3
  249. package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
  250. package/Source/Scene/Model/ModelType.js +3 -1
  251. package/Source/Scene/Model/PntsLoader.js +4 -3
  252. package/Source/Scene/Model/StyleCommandsNeeded.js +3 -1
  253. package/Source/Scene/Model/UniformType.js +5 -1
  254. package/Source/Scene/Model/VaryingType.js +5 -1
  255. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +73 -28
  256. package/Source/Scene/Model/pickModel.js +94 -299
  257. package/Source/Scene/ModelAnimationLoop.js +6 -1
  258. package/Source/Scene/ModelAnimationState.js +6 -1
  259. package/Source/Scene/ModelComponents.js +8 -1
  260. package/Source/Scene/PrimitiveState.js +7 -1
  261. package/Source/Scene/QuadtreeOccluders.js +20 -15
  262. package/Source/Scene/QuadtreeTile.js +547 -541
  263. package/Source/Scene/QuadtreeTileLoadState.js +6 -1
  264. package/Source/Scene/QuadtreeTileProvider.js +159 -175
  265. package/Source/Scene/ResourceLoader.js +0 -1
  266. package/Source/Scene/ResourceLoaderState.js +7 -1
  267. package/Source/Scene/SceneMode.js +4 -1
  268. package/Source/Scene/ShadowMode.js +3 -1
  269. package/Source/Scene/SkyBox.js +1 -1
  270. package/Source/Scene/SplitDirection.js +6 -1
  271. package/Source/Scene/StencilFunction.js +6 -1
  272. package/Source/Scene/StencilOperation.js +6 -1
  273. package/Source/Scene/TerrainState.js +7 -1
  274. package/Source/Scene/TileState.js +7 -1
  275. package/Source/Scene/Tonemapper.js +5 -1
  276. package/Source/Scene/VectorGltf3DTileContent.js +72 -51
  277. package/Source/Scene/VertexAttributeSemantic.js +3 -1
  278. package/Source/Scene/VerticalOrigin.js +6 -1
  279. package/Source/Scene/VoxelBoxShape.js +12 -6
  280. package/Source/Scene/VoxelContent.js +2 -0
  281. package/Source/Scene/VoxelCylinderShape.js +39 -38
  282. package/Source/Scene/VoxelEllipsoidShape.js +46 -96
  283. package/Source/Scene/VoxelMetadataOrder.js +6 -1
  284. package/Source/Scene/VoxelProvider.js +1 -0
  285. package/Source/Scene/VoxelShapeType.js +3 -1
  286. package/Source/Scene/renderBufferPointCollection.js +17 -66
  287. package/Source/Scene/renderBufferPolygonCollection.js +21 -68
  288. package/Source/Scene/renderBufferPolylineCollection.js +22 -73
  289. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
  290. package/Source/Shaders/Builtin/Functions/computeTextureTransform.glsl +24 -0
  291. package/Source/Shaders/Builtin/Functions/computeTextureTransform.js +25 -0
  292. package/Source/Shaders/Model/ConstantLodStageFS.glsl +60 -0
  293. package/Source/Shaders/Model/ConstantLodStageFS.js +62 -0
  294. package/Source/Shaders/Model/ConstantLodStageVS.glsl +12 -0
  295. package/Source/Shaders/Model/ConstantLodStageVS.js +13 -0
  296. package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
  297. package/Source/Shaders/Model/MaterialStageFS.js +46 -20
  298. package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +0 -1
  299. package/Source/Shaders/Voxels/convertLocalToBoxUv.js +0 -1
  300. package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +7 -9
  301. package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +7 -9
  302. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +7 -17
  303. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +7 -17
  304. package/Source/Widget/CesiumWidget.js +11 -4
  305. package/index.d.ts +343 -309
  306. package/index.js +443 -438
  307. package/package.json +2 -2
  308. package/Build/Workers/chunk-DVB56LG7.js +0 -114
  309. package/Build/Workers/chunk-HKUES6UG.js +0 -2357
  310. package/Build/Workers/chunk-HRHRYFHS.js +0 -940
  311. package/Build/Workers/chunk-KLPGTXS3.js +0 -642
  312. package/Build/Workers/chunk-ZBZRTRJB.js +0 -1829
@@ -9,8 +9,13 @@ import AttributeCompression from "../../Core/AttributeCompression.js";
9
9
  import IndexDatatype from "../../Core/IndexDatatype.js";
10
10
  import PrimitiveType from "../../Core/PrimitiveType.js";
11
11
  import Matrix4 from "../../Core/Matrix4.js";
12
+ import Quaternion from "../../Core/Quaternion.js";
13
+ import Transforms from "../../Core/Transforms.js";
12
14
 
13
15
  import AttributeType from "../AttributeType.js";
16
+ import InstanceAttributeSemantic from "../InstanceAttributeSemantic.js";
17
+ import VertexAttributeSemantic from "../VertexAttributeSemantic.js";
18
+ import ModelUtility from "./ModelUtility.js";
14
19
 
15
20
  /**
16
21
  * A class for reading the data from a <code>ModelComponents.Attribute</code>.
@@ -144,7 +149,20 @@ class ModelReader {
144
149
  const byteStride = attribute.byteStride;
145
150
  const bytesPerComponent = ComponentDatatype.getSizeInBytes(componentType);
146
151
  const defaultByteStride = componentsPerElement * bytesPerComponent;
147
- if (!defined(byteStride) || byteStride === defaultByteStride) {
152
+
153
+ const isDefaultStride =
154
+ !defined(byteStride) || byteStride === defaultByteStride;
155
+ const hasTypedArray = defined(attribute.typedArray);
156
+
157
+ // If in-memory — return as-is
158
+ // Important: typedArray is already tightly-packed on creation (See: ModelComponents.typedArray and GltfLoader.getPackedTypedArray)
159
+ // byteOffset and byteStride should thus be ignored
160
+ if (hasTypedArray) {
161
+ return attribute.typedArray;
162
+ }
163
+
164
+ // Non-interleaved — copy from typedArray or read from GPU
165
+ if (isDefaultStride) {
148
166
  const typedArray = ComponentDatatype.createTypedArray(
149
167
  componentType,
150
168
  totalComponentCount,
@@ -161,6 +179,8 @@ class ModelReader {
161
179
  // have ONE "TypedArray[] getThemFrom(buffer)" call that
162
180
  // returns all of the (interleaved) attributes at once,
163
181
  // but this requires abstractions that we don't have.
182
+
183
+ // Read back from GPU if not available in memory
164
184
  const fullTypedArray = new Uint8Array(buffer.sizeInBytes);
165
185
  buffer.getBufferData(fullTypedArray);
166
186
 
@@ -320,8 +340,8 @@ class ModelReader {
320
340
  const c = new Cartesian3();
321
341
  for (let i = 0; i < elementCount; i++) {
322
342
  Cartesian3.unpack(quantizedTypedArray, i * 3, c);
323
- AttributeCompression.octDecodeInRange(c, normalizationRange, c);
324
- Cartesian3.pack(dequantizedTypedArray, c, i * 3);
343
+ AttributeCompression.octDecodeInRange(c.x, c.y, normalizationRange, c);
344
+ Cartesian3.pack(c, dequantizedTypedArray, i * 3);
325
345
  }
326
346
  return dequantizedTypedArray;
327
347
  }
@@ -645,6 +665,33 @@ class ModelReader {
645
665
  return result;
646
666
  }
647
667
 
668
+ /**
669
+ * Reads feature IDs from an implicit range feature ID set into a typed array.
670
+ *
671
+ * Generates values using <code>offset + Math.floor(i / repeat)</code> for
672
+ * each vertex. If <code>repeat</code> is undefined, all values are set to
673
+ * <code>offset</code>.
674
+ *
675
+ * @param {FeatureIdImplicitRange} featureIdSet The implicit range feature ID set.
676
+ * @param {object} attributeOwner An object with an <code>attributes</code> array
677
+ * (a primitive or an instances object)
678
+ * @returns {Float32Array} The generated feature ID values.
679
+ */
680
+ static readImplicitRangeAsTypedArray(featureIdSet, attributeOwner) {
681
+ const count = attributeOwner.attributes[0]?.count ?? 0;
682
+ const offset = featureIdSet.offset;
683
+ const repeat = featureIdSet.repeat;
684
+ const typedArray = new Float32Array(count);
685
+ if (defined(repeat)) {
686
+ for (let i = 0; i < count; i++) {
687
+ typedArray[i] = offset + Math.floor(i / repeat);
688
+ }
689
+ } else {
690
+ typedArray.fill(offset);
691
+ }
692
+ return typedArray;
693
+ }
694
+
648
695
  /**
649
696
  * Read the indices values from the given primitive indices, and
650
697
  * return them as a typed array.
@@ -805,6 +852,430 @@ class ModelReader {
805
852
  `UNSIGNED_INT (${IndexDatatype.UNSIGNED_INT}, but is ${indexDatatype}`,
806
853
  );
807
854
  }
855
+
856
+ /**
857
+ * Per-instance data combining a transform matrix with an optional feature ID.
858
+ *
859
+ * @typedef {object} ModelReader.Instance
860
+ * @property {Matrix4} transform The instance transform matrix.
861
+ * @property {number} [featureId] The per-instance feature ID, or undefined.
862
+ *
863
+ * @private
864
+ */
865
+
866
+ /**
867
+ * A callback invoked by {@link ModelReader.forEachPrimitive} for each
868
+ * runtime primitive in the model.
869
+ *
870
+ * @callback ModelReader.ForEachPrimitiveCallback
871
+ * @param {object} runtimePrimitive The runtime primitive wrapper.
872
+ * @param {object} primitive The underlying model primitive (runtimePrimitive.primitive).
873
+ * @param {ModelReader.Instance[]} instances Per-instance data (transforms and optional feature IDs).
874
+ * @param {Matrix4} computedModelMatrix The computed model matrix for the node.
875
+ *
876
+ * @private
877
+ */
878
+
879
+ /**
880
+ * Iterates over every primitive in a model's scene graph, computing
881
+ * node transforms and instance transforms once per node and invoking
882
+ * a callback for each runtime primitive.
883
+ * <p>
884
+ * When a map projection is provided, the computed model matrix is
885
+ * projected to 2D via {@link Transforms.basisTo2D}.
886
+ * </p>
887
+ *
888
+ * @param {Model} model The model whose scene graph to traverse.
889
+ * @param {object} [options] Object with the following properties:
890
+ * @param {MapProjection} [options.mapProjection] The map projection for 2D mode. When defined, the computed model matrix is projected to 2D.
891
+ * @param {string} [options.instanceFeatureIdLabel] The label used to select which instance feature ID set to read. When defined, per-instance feature IDs are fetched. When undefined, feature IDs are not fetched.
892
+ * @param {ModelReader.ForEachPrimitiveCallback} callback The function invoked for each primitive.
893
+ */
894
+ static forEachPrimitive(model, options, callback) {
895
+ const mapProjection = options?.mapProjection;
896
+ const instanceFeatureIdLabel = options?.instanceFeatureIdLabel;
897
+ const sceneGraph = model.sceneGraph;
898
+ if (!defined(sceneGraph)) {
899
+ return;
900
+ }
901
+
902
+ const scratchNodeTransforms = {
903
+ nodeComputedTransform: new Matrix4(),
904
+ modelMatrix: new Matrix4(),
905
+ computedModelMatrix: new Matrix4(),
906
+ };
907
+
908
+ const nodes = sceneGraph._runtimeNodes;
909
+ const nodesLength = nodes.length;
910
+
911
+ for (let n = 0; n < nodesLength; n++) {
912
+ const runtimeNode = nodes[n];
913
+
914
+ const nodeTransforms = ModelReader.computeNodeTransforms(
915
+ runtimeNode,
916
+ sceneGraph,
917
+ model,
918
+ scratchNodeTransforms,
919
+ );
920
+
921
+ let computedModelMatrix = nodeTransforms.computedModelMatrix;
922
+
923
+ if (defined(mapProjection)) {
924
+ computedModelMatrix = Transforms.basisTo2D(
925
+ mapProjection,
926
+ computedModelMatrix,
927
+ computedModelMatrix,
928
+ );
929
+ }
930
+
931
+ const instanceTransforms = ModelReader.computeInstanceTransforms(
932
+ runtimeNode,
933
+ computedModelMatrix,
934
+ nodeTransforms.nodeComputedTransform,
935
+ nodeTransforms.modelMatrix,
936
+ );
937
+
938
+ const instanceFeatureIds = defined(instanceFeatureIdLabel)
939
+ ? ModelReader.computeInstanceFeatureIds(
940
+ runtimeNode,
941
+ instanceFeatureIdLabel,
942
+ )
943
+ : undefined;
944
+
945
+ const instances = [];
946
+ for (let i = 0; i < instanceTransforms.length; i++) {
947
+ instances.push({
948
+ transform: instanceTransforms[i],
949
+ featureId: defined(instanceFeatureIds)
950
+ ? instanceFeatureIds[i]
951
+ : undefined,
952
+ });
953
+ }
954
+
955
+ const primitivesLength = runtimeNode.runtimePrimitives.length;
956
+ for (let p = 0; p < primitivesLength; p++) {
957
+ const runtimePrimitive = runtimeNode.runtimePrimitives[p];
958
+ callback(
959
+ runtimePrimitive,
960
+ runtimePrimitive.primitive,
961
+ instances,
962
+ computedModelMatrix,
963
+ );
964
+ }
965
+ }
966
+ }
967
+
968
+ /**
969
+ * Computes the model matrix for a runtime node, accounting for instancing
970
+ * and world-space transforms.
971
+ *
972
+ * @param {object} runtimeNode The runtime node.
973
+ * @param {ModelSceneGraph} sceneGraph The model scene graph.
974
+ * @param {Model} model The model.
975
+ * @param {object} result An object with scratch matrices: { nodeComputedTransform: Matrix4, modelMatrix: Matrix4, computedModelMatrix: Matrix4 }.
976
+ * @returns {object} The result parameter, populated with the computed transforms.
977
+ *
978
+ */
979
+ static computeNodeTransforms(runtimeNode, sceneGraph, model, result) {
980
+ const node = runtimeNode.node;
981
+
982
+ let nodeComputedTransform = Matrix4.clone(
983
+ runtimeNode.computedTransform,
984
+ result.nodeComputedTransform,
985
+ );
986
+ let modelMatrix = Matrix4.clone(
987
+ sceneGraph.computedModelMatrix,
988
+ result.modelMatrix,
989
+ );
990
+
991
+ const instances = node.instances;
992
+ if (defined(instances)) {
993
+ if (instances.transformInWorldSpace) {
994
+ // Replicate the multiplication order in LegacyInstancingStageVS.
995
+ modelMatrix = Matrix4.multiplyTransformation(
996
+ model.modelMatrix,
997
+ sceneGraph.components.transform,
998
+ modelMatrix,
999
+ );
1000
+ nodeComputedTransform = Matrix4.multiplyTransformation(
1001
+ sceneGraph.axisCorrectionMatrix,
1002
+ runtimeNode.computedTransform,
1003
+ nodeComputedTransform,
1004
+ );
1005
+ }
1006
+ }
1007
+
1008
+ const computedModelMatrix = Matrix4.multiplyTransformation(
1009
+ modelMatrix,
1010
+ nodeComputedTransform,
1011
+ result.computedModelMatrix,
1012
+ );
1013
+
1014
+ result.computedModelMatrix = computedModelMatrix;
1015
+ result.nodeComputedTransform = nodeComputedTransform;
1016
+ result.modelMatrix = modelMatrix;
1017
+ return result;
1018
+ }
1019
+
1020
+ /**
1021
+ * Builds an array of instance transforms for a node.
1022
+ * If the node is not instanced, returns an array containing only the
1023
+ * computedModelMatrix.
1024
+ *
1025
+ * @param {object} runtimeNode The runtime node.
1026
+ * @param {Matrix4} computedModelMatrix The computed model matrix.
1027
+ * @param {Matrix4} nodeComputedTransform The node computed transform.
1028
+ * @param {Matrix4} modelMatrix The model matrix.
1029
+ * @returns {Matrix4[]}
1030
+ */
1031
+ static computeInstanceTransforms(
1032
+ runtimeNode,
1033
+ computedModelMatrix,
1034
+ nodeComputedTransform,
1035
+ modelMatrix,
1036
+ ) {
1037
+ const transforms = [];
1038
+ const node = runtimeNode.node;
1039
+ const instances = node.instances;
1040
+
1041
+ if (defined(instances)) {
1042
+ const transformsCount = instances.attributes[0].count;
1043
+ const instanceComponentDatatype =
1044
+ instances.attributes[0].componentDatatype;
1045
+
1046
+ const transformElements = 12;
1047
+ let transformsTypedArray = runtimeNode.transformsTypedArray;
1048
+
1049
+ if (!defined(transformsTypedArray)) {
1050
+ const instanceTransformsBuffer = runtimeNode.instancingTransformsBuffer;
1051
+ if (defined(instanceTransformsBuffer)) {
1052
+ transformsTypedArray = ComponentDatatype.createTypedArray(
1053
+ instanceComponentDatatype,
1054
+ transformsCount * transformElements,
1055
+ );
1056
+ instanceTransformsBuffer.getBufferData(transformsTypedArray);
1057
+ }
1058
+ }
1059
+
1060
+ if (defined(transformsTypedArray)) {
1061
+ ModelReader.computeInstanceTransformsFromTypedArray(
1062
+ transformsTypedArray,
1063
+ transformsCount,
1064
+ transforms,
1065
+ );
1066
+ } else {
1067
+ ModelReader.computeInstanceTransformsFromAttributes(
1068
+ instances,
1069
+ transformsCount,
1070
+ transforms,
1071
+ );
1072
+ }
1073
+
1074
+ for (let i = 0; i < transforms.length; i++) {
1075
+ const transform = transforms[i];
1076
+ if (instances.transformInWorldSpace) {
1077
+ Matrix4.multiplyTransformation(
1078
+ transform,
1079
+ nodeComputedTransform,
1080
+ transform,
1081
+ );
1082
+ Matrix4.multiplyTransformation(modelMatrix, transform, transform);
1083
+ } else {
1084
+ Matrix4.multiplyTransformation(
1085
+ computedModelMatrix,
1086
+ transform,
1087
+ transform,
1088
+ );
1089
+ }
1090
+ }
1091
+ }
1092
+
1093
+ if (transforms.length === 0) {
1094
+ transforms.push(computedModelMatrix);
1095
+ }
1096
+
1097
+ return transforms;
1098
+ }
1099
+
1100
+ /**
1101
+ * Builds an array of per-instance feature IDs for a node.
1102
+ * If the node is not instanced or has no matching feature ID set,
1103
+ * returns <code>undefined</code>.
1104
+ *
1105
+ * @param {object} runtimeNode The runtime node.
1106
+ * @param {string} instanceFeatureIdLabel The label used to select the feature ID set.
1107
+ * @returns {number[]|undefined} The per-instance feature IDs, or undefined.
1108
+ */
1109
+ static computeInstanceFeatureIds(runtimeNode, instanceFeatureIdLabel) {
1110
+ const node = runtimeNode.node;
1111
+ const instances = node.instances;
1112
+
1113
+ if (!defined(instances)) {
1114
+ return undefined;
1115
+ }
1116
+
1117
+ const featureIdSet = ModelUtility.getFeatureIdsByLabel(
1118
+ instances.featureIds,
1119
+ instanceFeatureIdLabel,
1120
+ );
1121
+
1122
+ if (!defined(featureIdSet)) {
1123
+ return undefined;
1124
+ }
1125
+
1126
+ let typedArray;
1127
+
1128
+ // Case: FeatureIdAttribute
1129
+ if ("setIndex" in featureIdSet) {
1130
+ const attribute = ModelUtility.getAttributeBySemantic(
1131
+ instances,
1132
+ VertexAttributeSemantic.FEATURE_ID,
1133
+ featureIdSet.setIndex,
1134
+ );
1135
+ if (defined(attribute)) {
1136
+ typedArray = ModelReader.readAttributeAsTypedArray(attribute);
1137
+ }
1138
+ }
1139
+
1140
+ // Case: FeatureIdImplicitRange
1141
+ if ("offset" in featureIdSet) {
1142
+ typedArray = ModelReader.readImplicitRangeAsTypedArray(
1143
+ featureIdSet,
1144
+ instances,
1145
+ );
1146
+ }
1147
+
1148
+ if (!defined(typedArray)) {
1149
+ return undefined;
1150
+ }
1151
+
1152
+ const featureIds = new Array(typedArray.length);
1153
+ for (let i = 0; i < typedArray.length; i++) {
1154
+ featureIds[i] = typedArray[i];
1155
+ }
1156
+ return featureIds;
1157
+ }
1158
+
1159
+ /**
1160
+ * Builds instance transforms from a packed typed array where each instance
1161
+ * is stored as 12 floats (3 rows of 4 columns, row-major).
1162
+ *
1163
+ * @param {TypedArray} transformsTypedArray The packed transforms array.
1164
+ * @param {number} count The number of instances.
1165
+ * @param {Matrix4[]} transforms The output array to push transforms into.
1166
+ */
1167
+ static computeInstanceTransformsFromTypedArray(
1168
+ transformsTypedArray,
1169
+ count,
1170
+ transforms,
1171
+ ) {
1172
+ const transformElements = 12;
1173
+ for (let i = 0; i < count; i++) {
1174
+ const index = i * transformElements;
1175
+
1176
+ const transform = new Matrix4(
1177
+ transformsTypedArray[index],
1178
+ transformsTypedArray[index + 1],
1179
+ transformsTypedArray[index + 2],
1180
+ transformsTypedArray[index + 3],
1181
+ transformsTypedArray[index + 4],
1182
+ transformsTypedArray[index + 5],
1183
+ transformsTypedArray[index + 6],
1184
+ transformsTypedArray[index + 7],
1185
+ transformsTypedArray[index + 8],
1186
+ transformsTypedArray[index + 9],
1187
+ transformsTypedArray[index + 10],
1188
+ transformsTypedArray[index + 11],
1189
+ 0,
1190
+ 0,
1191
+ 0,
1192
+ 1,
1193
+ );
1194
+
1195
+ transforms.push(transform);
1196
+ }
1197
+ }
1198
+
1199
+ /**
1200
+ * Builds instance transforms from individual TRANSLATION, ROTATION, and SCALE
1201
+ * attributes when no packed transformsTypedArray is available.
1202
+ *
1203
+ * @param {object} instances The instances object.
1204
+ * @param {number} count The number of instances.
1205
+ * @param {Matrix4[]} transforms The output array to push transforms into.
1206
+ */
1207
+ static computeInstanceTransformsFromAttributes(instances, count, transforms) {
1208
+ const translationAttribute = ModelUtility.getAttributeBySemantic(
1209
+ instances,
1210
+ InstanceAttributeSemantic.TRANSLATION,
1211
+ );
1212
+ const rotationAttribute = ModelUtility.getAttributeBySemantic(
1213
+ instances,
1214
+ InstanceAttributeSemantic.ROTATION,
1215
+ );
1216
+ const scaleAttribute = ModelUtility.getAttributeBySemantic(
1217
+ instances,
1218
+ InstanceAttributeSemantic.SCALE,
1219
+ );
1220
+
1221
+ const hasTranslation = defined(translationAttribute);
1222
+ const hasRotation = defined(rotationAttribute);
1223
+ const hasScale = defined(scaleAttribute);
1224
+
1225
+ if (!hasTranslation && !hasRotation && !hasScale) {
1226
+ return;
1227
+ }
1228
+
1229
+ let translationTypedArray, rotationTypedArray, scaleTypedArray;
1230
+ if (hasTranslation) {
1231
+ translationTypedArray =
1232
+ ModelReader.readAttributeAsRawCompactTypedArray(translationAttribute);
1233
+ }
1234
+ if (hasRotation) {
1235
+ rotationTypedArray =
1236
+ ModelReader.readAttributeAsRawCompactTypedArray(rotationAttribute);
1237
+ }
1238
+ if (hasScale) {
1239
+ scaleTypedArray =
1240
+ ModelReader.readAttributeAsRawCompactTypedArray(scaleAttribute);
1241
+ }
1242
+
1243
+ for (let i = 0; i < count; i++) {
1244
+ const translation = hasTranslation
1245
+ ? new Cartesian3(
1246
+ translationTypedArray[i * 3],
1247
+ translationTypedArray[i * 3 + 1],
1248
+ translationTypedArray[i * 3 + 2],
1249
+ )
1250
+ : Cartesian3.ZERO;
1251
+
1252
+ const rotation = hasRotation
1253
+ ? new Quaternion(
1254
+ rotationTypedArray[i * 4],
1255
+ rotationTypedArray[i * 4 + 1],
1256
+ rotationTypedArray[i * 4 + 2],
1257
+ rotationTypedArray[i * 4 + 3],
1258
+ )
1259
+ : Quaternion.IDENTITY;
1260
+
1261
+ const scale = hasScale
1262
+ ? new Cartesian3(
1263
+ scaleTypedArray[i * 3],
1264
+ scaleTypedArray[i * 3 + 1],
1265
+ scaleTypedArray[i * 3 + 2],
1266
+ )
1267
+ : Cartesian3.ONE;
1268
+
1269
+ const transform = Matrix4.fromTranslationQuaternionRotationScale(
1270
+ translation,
1271
+ rotation,
1272
+ scale,
1273
+ new Matrix4(),
1274
+ );
1275
+
1276
+ transforms.push(transform);
1277
+ }
1278
+ }
808
1279
  }
809
1280
 
810
1281
  export default ModelReader;
@@ -214,7 +214,8 @@ ModelRuntimePrimitive.prototype.configurePipeline = function (frameState) {
214
214
  // Check whether the model is part of a `Model3DTileContent` that
215
215
  // belongs to a tileset that has imagery layers. If this is the
216
216
  // case, then the `ImageryPipelineStage` will be required.
217
- const hasImageryLayers = defined(model.imageryLayers);
217
+ const hasImageryLayers =
218
+ defined(model.imageryLayers) && model.imageryLayers.length > 0;
218
219
 
219
220
  const hasCustomShader = defined(customShader);
220
221
  const hasCustomFragmentShader =
@@ -91,4 +91,6 @@ ModelType.is3DTiles = function (modelType) {
91
91
  }
92
92
  };
93
93
 
94
- export default Object.freeze(ModelType);
94
+ Object.freeze(ModelType);
95
+
96
+ export default ModelType;
@@ -79,7 +79,6 @@ class PntsLoader extends ResourceLoader {
79
79
  /**
80
80
  * The cache key of the resource
81
81
  *
82
- * @memberof PntsLoader.prototype
83
82
  *
84
83
  * @type {string}
85
84
  * @readonly
@@ -92,7 +91,6 @@ class PntsLoader extends ResourceLoader {
92
91
  /**
93
92
  * The loaded components.
94
93
  *
95
- * @memberof PntsLoader.prototype
96
94
  *
97
95
  * @type {ModelComponents.Components}
98
96
  * @readonly
@@ -106,7 +104,6 @@ class PntsLoader extends ResourceLoader {
106
104
  * A world-space transform to apply to the primitives.
107
105
  * See {@link https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/PointCloud#global-semantics}
108
106
  *
109
- * @memberof PntsLoader.prototype
110
107
  *
111
108
  * @type {Matrix4}
112
109
  * @readonly
@@ -528,19 +525,23 @@ function makeAttributes(loader, parsedContent, context) {
528
525
 
529
526
  if (defined(parsedContent.normals)) {
530
527
  attribute = makeAttribute(loader, parsedContent.normals, context);
528
+ attribute.count = parsedContent.pointsLength;
531
529
  attributes.push(attribute);
532
530
  }
533
531
 
534
532
  if (defined(parsedContent.colors)) {
535
533
  attribute = makeAttribute(loader, parsedContent.colors, context);
534
+ attribute.count = parsedContent.pointsLength;
536
535
  attributes.push(attribute);
537
536
  } else {
538
537
  attribute = makeAttribute(loader, defaultColorAttribute, context);
538
+ attribute.count = parsedContent.pointsLength;
539
539
  attributes.push(attribute);
540
540
  }
541
541
 
542
542
  if (defined(parsedContent.batchIds)) {
543
543
  attribute = makeAttribute(loader, parsedContent.batchIds, context);
544
+ attribute.count = parsedContent.pointsLength;
544
545
  attributes.push(attribute);
545
546
  }
546
547
 
@@ -26,4 +26,6 @@ StyleCommandsNeeded.getStyleCommandsNeeded = function (
26
26
  return StyleCommandsNeeded.OPAQUE_AND_TRANSLUCENT;
27
27
  };
28
28
 
29
- export default Object.freeze(StyleCommandsNeeded);
29
+ Object.freeze(StyleCommandsNeeded);
30
+
31
+ export default StyleCommandsNeeded;
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * An enum of the basic GLSL uniform types. These can be used with
3
5
  * {@link CustomShader} to declare user-defined uniforms.
@@ -121,4 +123,6 @@ const UniformType = {
121
123
  SAMPLER_CUBE: "samplerCube",
122
124
  };
123
125
 
124
- export default Object.freeze(UniformType);
126
+ Object.freeze(UniformType);
127
+
128
+ export default UniformType;
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * An enum for the GLSL varying types. These can be used for declaring varyings
3
5
  * in {@link CustomShader}
@@ -58,4 +60,6 @@ const VaryingType = {
58
60
  MAT4: "mat4",
59
61
  };
60
62
 
61
- export default Object.freeze(VaryingType);
63
+ Object.freeze(VaryingType);
64
+
65
+ export default VaryingType;