@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
@@ -2,9 +2,6 @@ import Check from "../Core/Check.js";
2
2
  import Frozen from "../Core/Frozen.js";
3
3
  import defined from "../Core/defined.js";
4
4
  import GltfLoaderUtil from "./GltfLoaderUtil.js";
5
- import MetadataType from "./MetadataType.js";
6
- import MetadataComponentType from "./MetadataComponentType.js";
7
- import oneTimeWarning from "../Core/oneTimeWarning.js";
8
5
 
9
6
  /**
10
7
  * A property in a property texture.
@@ -191,100 +188,6 @@ Object.defineProperties(PropertyTextureProperty.prototype, {
191
188
  },
192
189
  });
193
190
 
194
- PropertyTextureProperty.prototype.isGpuCompatible = function () {
195
- const classProperty = this._classProperty;
196
- const type = classProperty.type;
197
- const componentType = classProperty.componentType;
198
-
199
- if (classProperty.isArray) {
200
- // only support arrays of 1-4 UINT8 scalars (normalized or unnormalized)
201
- if (classProperty.isVariableLengthArray) {
202
- oneTimeWarning(
203
- `Property texture property ${classProperty.id} is a variable-length array, which is not supported`,
204
- );
205
- return false;
206
- }
207
- if (classProperty.arrayLength > 4) {
208
- oneTimeWarning(
209
- `Property texture property ${classProperty.id} is an array of length ${classProperty.arrayLength}, but may have at most a length of 4`,
210
- );
211
- return false;
212
- }
213
- if (type !== MetadataType.SCALAR) {
214
- oneTimeWarning(
215
- `Property texture property ${classProperty.id} is an array of type ${type}, but only SCALAR is supported`,
216
- );
217
- return false;
218
- }
219
- if (componentType !== MetadataComponentType.UINT8) {
220
- oneTimeWarning(
221
- `Property texture property ${classProperty.id} is an array with component type ${componentType}, but only UINT8 is supported`,
222
- );
223
- return false;
224
- }
225
- return true;
226
- }
227
-
228
- if (MetadataType.isVectorType(type) || type === MetadataType.SCALAR) {
229
- if (componentType !== MetadataComponentType.UINT8) {
230
- oneTimeWarning(
231
- `Property texture property ${classProperty.id} has component type ${componentType}, but only UINT8 is supported`,
232
- );
233
- return false;
234
- }
235
- return true;
236
- }
237
-
238
- // For this initial implementation, only UINT8-based properties
239
- // are supported.
240
- oneTimeWarning(
241
- `Property texture property ${classProperty.id} has an unsupported type`,
242
- );
243
- return false;
244
- };
245
-
246
- const floatTypesByComponentCount = [undefined, "float", "vec2", "vec3", "vec4"];
247
- const integerTypesByComponentCount = [
248
- undefined,
249
- "int",
250
- "ivec2",
251
- "ivec3",
252
- "ivec4",
253
- ];
254
- PropertyTextureProperty.prototype.getGlslType = function () {
255
- const classProperty = this._classProperty;
256
-
257
- let componentCount = MetadataType.getComponentCount(classProperty.type);
258
- if (classProperty.isArray) {
259
- // fixed-sized arrays of length 2-4 UINT8s are represented as vectors as the
260
- // shader since those are more useful in GLSL.
261
- componentCount = classProperty.arrayLength;
262
- }
263
-
264
- // Normalized UINT8 properties are float types in the shader
265
- if (classProperty.normalized) {
266
- return floatTypesByComponentCount[componentCount];
267
- }
268
-
269
- // other UINT8-based properties are represented as integer types.
270
- return integerTypesByComponentCount[componentCount];
271
- };
272
-
273
- PropertyTextureProperty.prototype.unpackInShader = function (packedValueGlsl) {
274
- const classProperty = this._classProperty;
275
-
276
- // no unpacking needed if for normalized types
277
- if (classProperty.normalized) {
278
- return packedValueGlsl;
279
- }
280
-
281
- // integer types are read from the texture as normalized float values.
282
- // these need to be rescaled to [0, 255] and cast to the appropriate integer
283
- // type.
284
- const glslType = this.getGlslType();
285
- return `${glslType}(255.0 * ${packedValueGlsl})`;
286
- };
287
-
288
191
  /**
289
192
  * Reformat from an array of channel indices like <code>[0, 1]</code> to a
290
193
  * string of channels as would be used in GLSL swizzling (e.g. "rg")
@@ -77,6 +77,7 @@ function QuadtreePrimitive(options) {
77
77
  const tilingScheme = this._tileProvider.tilingScheme;
78
78
  const ellipsoid = tilingScheme.ellipsoid;
79
79
 
80
+ this._tilesRenderedThisFrame = new Set(); // collect all tiles selected to render (useful when multiple render calls are made in a single frame (as in 2D mode))
80
81
  this._tilesToRender = [];
81
82
  this._tileLoadQueueHigh = []; // high priority tiles are preventing refinement
82
83
  this._tileLoadQueueMedium = []; // medium priority tiles are being rendered
@@ -256,9 +257,9 @@ QuadtreePrimitive.prototype.forEachLoadedTile = function (tileFunction) {
256
257
  * function is passed a reference to the tile as its only parameter.
257
258
  */
258
259
  QuadtreePrimitive.prototype.forEachRenderedTile = function (tileFunction) {
259
- const tilesRendered = this._tilesToRender;
260
- for (let i = 0, len = tilesRendered.length; i < len; ++i) {
261
- tileFunction(tilesRendered[i]);
260
+ const tilesRendered = this._tilesRenderedThisFrame;
261
+ for (const tile of tilesRendered) {
262
+ tileFunction(tile);
262
263
  }
263
264
  };
264
265
 
@@ -347,6 +348,7 @@ QuadtreePrimitive.prototype.beginFrame = function (frameState) {
347
348
  }
348
349
 
349
350
  this._tileReplacementQueue.markStartOfRenderFrame();
351
+ this._tilesRenderedThisFrame.clear();
350
352
  };
351
353
 
352
354
  /**
@@ -1303,6 +1305,7 @@ function screenSpaceError2D(primitive, frameState, tile) {
1303
1305
 
1304
1306
  function addTileToRenderList(primitive, tile) {
1305
1307
  primitive._tilesToRender.push(tile);
1308
+ primitive._tilesRenderedThisFrame.add(tile);
1306
1309
  }
1307
1310
 
1308
1311
  function processTileLoadQueue(primitive, frameState) {
@@ -10,16 +10,10 @@ import RuntimeError from "../Core/RuntimeError.js";
10
10
  * This type describes an interface and is not intended to be instantiated directly.
11
11
  * </p>
12
12
  *
13
- * @alias ResourceLoader
14
- * @constructor
15
- *
16
13
  * @see ResourceCache
17
- *
18
14
  * @private
19
15
  */
20
- function ResourceLoader() {}
21
-
22
- Object.defineProperties(ResourceLoader.prototype, {
16
+ class ResourceLoader {
23
17
  /**
24
18
  * The cache key of the resource.
25
19
  *
@@ -29,99 +23,97 @@ Object.defineProperties(ResourceLoader.prototype, {
29
23
  * @readonly
30
24
  * @private
31
25
  */
32
- cacheKey: {
33
- // eslint-disable-next-line getter-return
34
- get: function () {
35
- DeveloperError.throwInstantiationError();
36
- },
37
- },
38
- });
26
+ // eslint-disable-next-line getter-return
27
+ get cacheKey() {
28
+ DeveloperError.throwInstantiationError();
29
+ }
39
30
 
40
- /**
41
- * Loads the resource.
42
- * @returns {Promise<ResourceLoader>} A promise which resolves to the loader when the resource loading is completed.
43
- * @private
44
- */
45
- ResourceLoader.prototype.load = function () {
46
- DeveloperError.throwInstantiationError();
47
- };
31
+ /**
32
+ * Loads the resource.
33
+ * @returns {Promise<ResourceLoader>} A promise which resolves to the loader when the resource loading is completed.
34
+ * @private
35
+ */
36
+ load() {
37
+ DeveloperError.throwInstantiationError();
38
+ }
48
39
 
49
- /**
50
- * Unloads the resource.
51
- * @private
52
- */
53
- ResourceLoader.prototype.unload = function () {};
40
+ /**
41
+ * Unloads the resource.
42
+ * @private
43
+ */
44
+ unload() {}
54
45
 
55
- /**
56
- * Processes the resource until it becomes ready.
57
- *
58
- * @param {FrameState} frameState The frame state.
59
- * @returns {boolean} true once all resourced are ready.
60
- * @private
61
- */
62
- ResourceLoader.prototype.process = function (frameState) {
63
- return false;
64
- };
46
+ /**
47
+ * Processes the resource until it becomes ready.
48
+ *
49
+ * @param {FrameState} frameState The frame state.
50
+ * @returns {boolean} true once all resourced are ready.
51
+ * @private
52
+ */
53
+ process(frameState) {
54
+ return false;
55
+ }
65
56
 
66
- /**
67
- * Constructs a {@link RuntimeError} from an errorMessage and an error.
68
- *
69
- * @param {string} errorMessage The error message.
70
- * @param {Error} [error] The error.
71
- *
72
- * @returns {RuntimeError} The runtime error.
73
- * @private
74
- */
75
- ResourceLoader.prototype.getError = function (errorMessage, error) {
76
- //>>includeStart('debug', pragmas.debug);
77
- Check.typeOf.string("errorMessage", errorMessage);
78
- //>>includeEnd('debug');
57
+ /**
58
+ * Constructs a {@link RuntimeError} from an errorMessage and an error.
59
+ *
60
+ * @param {string} errorMessage The error message.
61
+ * @param {Error} [error] The error.
62
+ *
63
+ * @returns {RuntimeError} The runtime error.
64
+ * @private
65
+ */
66
+ getError(errorMessage, error) {
67
+ //>>includeStart('debug', pragmas.debug);
68
+ Check.typeOf.string("errorMessage", errorMessage);
69
+ //>>includeEnd('debug');
79
70
 
80
- if (defined(error) && defined(error.message)) {
81
- errorMessage += `\n${error.message}`;
82
- }
71
+ if (defined(error) && defined(error.message)) {
72
+ errorMessage += `\n${error.message}`;
73
+ }
83
74
 
84
- const runtimeError = new RuntimeError(errorMessage);
85
- if (defined(error)) {
86
- runtimeError.stack = `Original stack:\n${error.stack}\nHandler stack:\n${runtimeError.stack}`;
87
- }
75
+ const runtimeError = new RuntimeError(errorMessage);
76
+ if (defined(error)) {
77
+ runtimeError.stack = `Original stack:\n${error.stack}\nHandler stack:\n${runtimeError.stack}`;
78
+ }
88
79
 
89
- return runtimeError;
90
- };
80
+ return runtimeError;
81
+ }
91
82
 
92
- /**
93
- * Returns true if this object was destroyed; otherwise, false.
94
- * <br /><br />
95
- * If this object was destroyed, it should not be used; calling any function other than
96
- * <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
97
- *
98
- * @returns {boolean} <code>true</code> if this object was destroyed; otherwise, <code>false</code>.
99
- *
100
- * @see ResourceLoader#destroy
101
- * @private
102
- */
103
- ResourceLoader.prototype.isDestroyed = function () {
104
- return false;
105
- };
83
+ /**
84
+ * Returns true if this object was destroyed; otherwise, false.
85
+ * <br /><br />
86
+ * If this object was destroyed, it should not be used; calling any function other than
87
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
88
+ *
89
+ * @returns {boolean} <code>true</code> if this object was destroyed; otherwise, <code>false</code>.
90
+ *
91
+ * @see ResourceLoader#destroy
92
+ * @private
93
+ */
94
+ isDestroyed() {
95
+ return false;
96
+ }
106
97
 
107
- /**
108
- * Destroys the loaded resource.
109
- * <br /><br />
110
- * Once an object is destroyed, it should not be used; calling any function other than
111
- * <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
112
- * assign the return value (<code>undefined</code>) to the object as done in the example.
113
- *
114
- * @exception {DeveloperError} This object was destroyed, i.e., destroy() was called.
115
- *
116
- * @example
117
- * resourceLoader = resourceLoader && resourceLoader.destroy();
118
- *
119
- * @see ResourceLoader#isDestroyed
120
- * @private
121
- */
122
- ResourceLoader.prototype.destroy = function () {
123
- this.unload();
124
- return destroyObject(this);
125
- };
98
+ /**
99
+ * Destroys the loaded resource.
100
+ * <br /><br />
101
+ * Once an object is destroyed, it should not be used; calling any function other than
102
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
103
+ * assign the return value (<code>undefined</code>) to the object as done in the example.
104
+ *
105
+ * @exception {DeveloperError} This object was destroyed, i.e., destroy() was called.
106
+ *
107
+ * @example
108
+ * resourceLoader = resourceLoader && resourceLoader.destroy();
109
+ *
110
+ * @see ResourceLoader#isDestroyed
111
+ * @private
112
+ */
113
+ destroy() {
114
+ this.unload();
115
+ return destroyObject(this);
116
+ }
117
+ }
126
118
 
127
119
  export default ResourceLoader;
@@ -3022,6 +3022,18 @@ function renderEnvironment(scene, passState) {
3022
3022
  if (environmentState.isMoonVisible) {
3023
3023
  environmentState.moonCommand.execute(context, passState);
3024
3024
  }
3025
+
3026
+ // execute panorama commands, drop removed primitives
3027
+ const panoramaCommandList = scene.frameState.panoramaCommandList;
3028
+ for (let i = panoramaCommandList.length - 1; i >= 0; i--) {
3029
+ const panoramaCommand = panoramaCommandList[i];
3030
+ if (defined(panoramaCommand.shaderProgram)) {
3031
+ executeCommand(panoramaCommandList[i], scene, passState);
3032
+ } else {
3033
+ //primitive was removed
3034
+ panoramaCommandList.splice(i, 1);
3035
+ }
3036
+ }
3025
3037
  }
3026
3038
 
3027
3039
  /**
@@ -76,7 +76,7 @@ import ShadowMapShader from "./ShadowMapShader.js";
76
76
  *
77
77
  * @exception {DeveloperError} Only one or four cascades are supported.
78
78
  *
79
- * @demo {@link https://sandcastle.cesium.com/index.html?src=Shadows.html|Cesium Sandcastle Shadows Demo}
79
+ * @demo {@link https://sandcastle.cesium.com/index.html?id=shadows|Cesium Sandcastle Shadows Demo}
80
80
  */
81
81
  function ShadowMap(options) {
82
82
  options = options ?? Frozen.EMPTY_OBJECT;
@@ -145,7 +145,6 @@ function ShadowMap(options) {
145
145
  // Re-enable once https://github.com/CesiumGS/cesium/issues/4560 is resolved.
146
146
  let polygonOffsetSupported = true;
147
147
  if (
148
- FeatureDetection.isInternetExplorer() ||
149
148
  FeatureDetection.isEdge() ||
150
149
  ((FeatureDetection.isChrome() || FeatureDetection.isFirefox()) &&
151
150
  FeatureDetection.isWindows() &&
@@ -1,25 +1,7 @@
1
1
  import buildModuleUrl from "../Core/buildModuleUrl.js";
2
- import BoxGeometry from "../Core/BoxGeometry.js";
3
- import Cartesian3 from "../Core/Cartesian3.js";
4
- import Check from "../Core/Check.js";
5
- import defined from "../Core/defined.js";
6
- import destroyObject from "../Core/destroyObject.js";
7
- import DeveloperError from "../Core/DeveloperError.js";
8
- import GeometryPipeline from "../Core/GeometryPipeline.js";
9
- import Matrix4 from "../Core/Matrix4.js";
10
- import VertexFormat from "../Core/VertexFormat.js";
11
- import BufferUsage from "../Renderer/BufferUsage.js";
12
- import CubeMap from "../Renderer/CubeMap.js";
13
- import DrawCommand from "../Renderer/DrawCommand.js";
14
- import loadCubeMap from "../Renderer/loadCubeMap.js";
15
- import RenderState from "../Renderer/RenderState.js";
16
- import ShaderProgram from "../Renderer/ShaderProgram.js";
17
- import ShaderSource from "../Renderer/ShaderSource.js";
18
- import VertexArray from "../Renderer/VertexArray.js";
19
- import SkyBoxFS from "../Shaders/SkyBoxFS.js";
20
- import SkyBoxVS from "../Shaders/SkyBoxVS.js";
21
- import BlendingState from "./BlendingState.js";
2
+ import CubeMapPanorama from "./CubeMapPanorama.js";
22
3
  import SceneMode from "./SceneMode.js";
4
+ import destroyObject from "../Core/destroyObject.js";
23
5
 
24
6
  /**
25
7
  * A sky box around the scene to draw stars. The sky box is defined using the True Equator Mean Equinox (TEME) axes.
@@ -52,17 +34,7 @@ import SceneMode from "./SceneMode.js";
52
34
  * @see Transforms.computeTemeToPseudoFixedMatrix
53
35
  */
54
36
  function SkyBox(options) {
55
- /**
56
- * The sources used to create the cube map faces: an object
57
- * with <code>positiveX</code>, <code>negativeX</code>, <code>positiveY</code>,
58
- * <code>negativeY</code>, <code>positiveZ</code>, and <code>negativeZ</code> properties.
59
- * These can be either URLs or <code>Image</code> objects.
60
- *
61
- * @type {object}
62
- * @default undefined
63
- */
64
- this.sources = options.sources;
65
- this._sources = undefined;
37
+ this._sources = options.sources;
66
38
 
67
39
  /**
68
40
  * Determines if the sky box will be shown.
@@ -71,19 +43,29 @@ function SkyBox(options) {
71
43
  * @default true
72
44
  */
73
45
  this.show = options.show ?? true;
74
-
75
- this._command = new DrawCommand({
76
- modelMatrix: Matrix4.clone(Matrix4.IDENTITY),
77
- owner: this,
46
+ this._panorama = new CubeMapPanorama({
47
+ sources: this._sources,
48
+ show: this._show,
49
+ returnCommand: true,
78
50
  });
79
- this._cubeMap = undefined;
80
-
81
- this._attributeLocations = undefined;
82
- this._useHdr = undefined;
83
- this._hasError = false;
84
- this._error = undefined;
85
51
  }
86
52
 
53
+ Object.defineProperties(SkyBox.prototype, {
54
+ /**
55
+ * Gets or sets the the primitive object.
56
+ * @memberof SkyBox.prototype
57
+ * @type {object}
58
+ */
59
+ sources: {
60
+ get: function () {
61
+ return this._panorama.sources;
62
+ },
63
+ set: function (value) {
64
+ this._panorama.sources = value;
65
+ },
66
+ },
67
+ });
68
+
87
69
  /**
88
70
  * Called when {@link Viewer} or {@link CesiumWidget} render the scene to
89
71
  * get the draw commands needed to render this primitive.
@@ -96,131 +78,18 @@ function SkyBox(options) {
96
78
  * @exception {DeveloperError} this.sources properties must all be the same type.
97
79
  */
98
80
  SkyBox.prototype.update = function (frameState, useHdr) {
99
- const that = this;
100
- const { mode, passes, context } = frameState;
101
-
102
- if (!this.show) {
103
- return undefined;
104
- }
81
+ const { mode, passes } = frameState;
105
82
 
106
83
  if (mode !== SceneMode.SCENE3D && mode !== SceneMode.MORPHING) {
107
- return undefined;
84
+ return;
108
85
  }
109
86
 
110
- // The sky box is only rendered during the render pass; it is not pickable, it doesn't cast shadows, etc.
111
87
  if (!passes.render) {
112
- return undefined;
113
- }
114
-
115
- // Throw any errors that had previously occurred asynchronously so they aren't
116
- // ignored when running. See https://github.com/CesiumGS/cesium/pull/12307
117
- if (this._hasError) {
118
- const error = this._error;
119
- this._hasError = false;
120
- this._error = undefined;
121
- throw error;
122
- }
123
-
124
- if (this._sources !== this.sources) {
125
- this._sources = this.sources;
126
- const sources = this.sources;
127
-
128
- //>>includeStart('debug', pragmas.debug);
129
- Check.defined("this.sources", sources);
130
- if (
131
- Object.values(CubeMap.FaceName).some(
132
- (faceName) => !defined(sources[faceName]),
133
- )
134
- ) {
135
- throw new DeveloperError(
136
- "this.sources must have positiveX, negativeX, positiveY, negativeY, positiveZ, and negativeZ properties.",
137
- );
138
- }
139
-
140
- const sourceType = typeof sources.positiveX;
141
- if (
142
- Object.values(CubeMap.FaceName).some(
143
- (faceName) => typeof sources[faceName] !== sourceType,
144
- )
145
- ) {
146
- throw new DeveloperError(
147
- "this.sources properties must all be the same type.",
148
- );
149
- }
150
- //>>includeEnd('debug');
151
-
152
- if (typeof sources.positiveX === "string") {
153
- // Given urls for cube-map images. Load them.
154
- loadCubeMap(context, this._sources)
155
- .then(function (cubeMap) {
156
- that._cubeMap = that._cubeMap && that._cubeMap.destroy();
157
- that._cubeMap = cubeMap;
158
- })
159
- .catch((error) => {
160
- // Defer throwing the error until the next call to update to prevent
161
- // test from failing in `afterAll` if this is rejected after the test
162
- // using the Skybox ends. See https://github.com/CesiumGS/cesium/pull/12307
163
- this._hasError = true;
164
- this._error = error;
165
- });
166
- } else {
167
- this._cubeMap = this._cubeMap && this._cubeMap.destroy();
168
- this._cubeMap = new CubeMap({
169
- context: context,
170
- source: sources,
171
- });
172
- }
173
- }
174
-
175
- const command = this._command;
176
-
177
- if (!defined(command.vertexArray)) {
178
- command.uniformMap = {
179
- u_cubeMap: function () {
180
- return that._cubeMap;
181
- },
182
- };
183
-
184
- const geometry = BoxGeometry.createGeometry(
185
- BoxGeometry.fromDimensions({
186
- dimensions: new Cartesian3(2.0, 2.0, 2.0),
187
- vertexFormat: VertexFormat.POSITION_ONLY,
188
- }),
189
- );
190
- const attributeLocations = (this._attributeLocations =
191
- GeometryPipeline.createAttributeLocations(geometry));
192
-
193
- command.vertexArray = VertexArray.fromGeometry({
194
- context: context,
195
- geometry: geometry,
196
- attributeLocations: attributeLocations,
197
- bufferUsage: BufferUsage.STATIC_DRAW,
198
- });
199
-
200
- command.renderState = RenderState.fromCache({
201
- blending: BlendingState.ALPHA_BLEND,
202
- });
203
- }
204
-
205
- if (!defined(command.shaderProgram) || this._useHdr !== useHdr) {
206
- const fs = new ShaderSource({
207
- defines: [useHdr ? "HDR" : ""],
208
- sources: [SkyBoxFS],
209
- });
210
- command.shaderProgram = ShaderProgram.fromCache({
211
- context: context,
212
- vertexShaderSource: SkyBoxVS,
213
- fragmentShaderSource: fs,
214
- attributeLocations: this._attributeLocations,
215
- });
216
- this._useHdr = useHdr;
217
- }
218
-
219
- if (!defined(this._cubeMap)) {
220
- return undefined;
88
+ return;
221
89
  }
222
90
 
223
- return command;
91
+ // Delegate completely
92
+ return this._panorama.update(frameState, useHdr);
224
93
  };
225
94
 
226
95
  /**
@@ -254,11 +123,7 @@ SkyBox.prototype.isDestroyed = function () {
254
123
  * @see SkyBox#isDestroyed
255
124
  */
256
125
  SkyBox.prototype.destroy = function () {
257
- const command = this._command;
258
- command.vertexArray = command.vertexArray && command.vertexArray.destroy();
259
- command.shaderProgram =
260
- command.shaderProgram && command.shaderProgram.destroy();
261
- this._cubeMap = this._cubeMap && this._cubeMap.destroy();
126
+ this._panorama = this._panorama && this._panorama.destroy();
262
127
  return destroyObject(this);
263
128
  };
264
129
 
@@ -1,3 +1,4 @@
1
+ import { destroyObject } from "@cesium/engine";
1
2
  import Check from "../Core/Check.js";
2
3
  import Frozen from "../Core/Frozen.js";
3
4
  import defined from "../Core/defined.js";
@@ -35,9 +36,9 @@ function StructuralMetadata(options) {
35
36
  this._propertyTableCount = defined(propertyTables)
36
37
  ? propertyTables.length
37
38
  : 0;
38
- this._propertyTables = propertyTables;
39
- this._propertyTextures = options.propertyTextures;
40
- this._propertyAttributes = options.propertyAttributes;
39
+ this._propertyTables = propertyTables ?? [];
40
+ this._propertyTextures = options.propertyTextures ?? [];
41
+ this._propertyAttributes = options.propertyAttributes ?? [];
41
42
  this._statistics = options.statistics;
42
43
  this._extras = options.extras;
43
44
  this._extensions = options.extensions;
@@ -240,4 +241,18 @@ StructuralMetadata.prototype.getPropertyAttribute = function (
240
241
  return this._propertyAttributes[propertyAttributeId];
241
242
  };
242
243
 
244
+ /**
245
+ * Destroys any resources that need cleaning up in the structural metadata.
246
+ *
247
+ * @private
248
+ */
249
+ StructuralMetadata.prototype.destroy = function () {
250
+ const propertyTables = this._propertyTables;
251
+ for (let i = 0; i < propertyTables.length; i++) {
252
+ propertyTables[i] = propertyTables[i] && propertyTables[i].destroy();
253
+ }
254
+
255
+ return destroyObject(this);
256
+ };
257
+
243
258
  export default StructuralMetadata;
@@ -6,7 +6,6 @@ import ComponentDatatype from "../Core/ComponentDatatype.js";
6
6
  import defined from "../Core/defined.js";
7
7
  import destroyObject from "../Core/destroyObject.js";
8
8
  import Ellipsoid from "../Core/Ellipsoid.js";
9
- import FeatureDetection from "../Core/FeatureDetection.js";
10
9
  import IndexDatatype from "../Core/IndexDatatype.js";
11
10
  import OrientedBoundingBox from "../Core/OrientedBoundingBox.js";
12
11
  import Matrix4 from "../Core/Matrix4.js";
@@ -557,10 +556,7 @@ function createShaders(primitive, context) {
557
556
  )(Vector3DTileClampedPolylinesFS);
558
557
 
559
558
  const vs = new ShaderSource({
560
- defines: [
561
- "VECTOR_TILE",
562
- !FeatureDetection.isInternetExplorer() ? "CLIP_POLYLINE" : "",
563
- ],
559
+ defines: ["VECTOR_TILE", "CLIP_POLYLINE"],
564
560
  sources: [PolylineCommon, vsSource],
565
561
  });
566
562
  const fs = new ShaderSource({