@cesium/engine 3.0.2 → 5.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 (246) hide show
  1. package/Build/ThirdParty/Workers/pako_deflate.min.js +605 -0
  2. package/Build/ThirdParty/Workers/pako_inflate.min.js +800 -0
  3. package/Build/ThirdParty/Workers/z-worker-pako.js +502 -0
  4. package/Build/Workers/chunk-2U6EBIRX.js +757 -0
  5. package/Build/Workers/chunk-2ZI7FZ3Q.js +58 -0
  6. package/Build/Workers/chunk-3TSHZWOZ.js +1860 -0
  7. package/Build/Workers/chunk-44B6FQSJ.js +684 -0
  8. package/Build/Workers/chunk-4AJR66C5.js +368 -0
  9. package/Build/Workers/chunk-4HN3N5SE.js +501 -0
  10. package/Build/Workers/chunk-4QGPYV3W.js +102 -0
  11. package/Build/Workers/chunk-4RKE4B3G.js +476 -0
  12. package/Build/Workers/chunk-5E3V7Y4R.js +196 -0
  13. package/Build/Workers/chunk-6EHT6GS3.js +163 -0
  14. package/Build/Workers/chunk-6I22NWKQ.js +171 -0
  15. package/Build/Workers/chunk-7N67FBLW.js +1054 -0
  16. package/Build/Workers/chunk-AQQGAFKX.js +124 -0
  17. package/Build/Workers/chunk-CROU4RHL.js +138 -0
  18. package/Build/Workers/chunk-CTJCECTX.js +258 -0
  19. package/Build/Workers/chunk-DWJZFZ67.js +781 -0
  20. package/Build/Workers/chunk-EHJQEARC.js +59 -0
  21. package/Build/Workers/chunk-EVLKHUAE.js +1477 -0
  22. package/Build/Workers/chunk-FOOYJER7.js +834 -0
  23. package/Build/Workers/chunk-GLCRFDOB.js +73 -0
  24. package/Build/Workers/chunk-GPO47TW4.js +39 -0
  25. package/Build/Workers/chunk-H5Q2JKIA.js +1075 -0
  26. package/Build/Workers/chunk-HIDSEUWS.js +2041 -0
  27. package/Build/Workers/chunk-HV67ARO7.js +302 -0
  28. package/Build/Workers/chunk-IC7G4BX2.js +421 -0
  29. package/Build/Workers/chunk-IQN2LMGD.js +55 -0
  30. package/Build/Workers/chunk-J2FHYK2Z.js +55 -0
  31. package/Build/Workers/chunk-K3VEWONC.js +289 -0
  32. package/Build/Workers/chunk-KZFXE35V.js +117 -0
  33. package/Build/Workers/chunk-MG2TXIO5.js +400 -0
  34. package/Build/Workers/chunk-MRCFDEKH.js +138 -0
  35. package/Build/Workers/chunk-MYDS6HBL.js +3273 -0
  36. package/Build/Workers/chunk-OCIX2CQ7.js +305 -0
  37. package/Build/Workers/chunk-P32XMW4I.js +2716 -0
  38. package/Build/Workers/chunk-PEVZYZBQ.js +157 -0
  39. package/Build/Workers/chunk-PMDLIBEQ.js +218 -0
  40. package/Build/Workers/chunk-QDUOGCCO.js +1009 -0
  41. package/Build/Workers/chunk-QUCJGBCK.js +430 -0
  42. package/Build/Workers/chunk-RCI7BSOM.js +452 -0
  43. package/Build/Workers/chunk-SVTSC7FX.js +390 -0
  44. package/Build/Workers/chunk-TXOGSFHZ.js +77 -0
  45. package/Build/Workers/chunk-TXYJOVQK.js +629 -0
  46. package/Build/Workers/chunk-UFIT5XDI.js +1258 -0
  47. package/Build/Workers/chunk-ULLMQNFQ.js +73 -0
  48. package/Build/Workers/chunk-UM7FIUQW.js +101 -0
  49. package/Build/Workers/{package.js → chunk-UMLTOPAE.js} +13 -2
  50. package/Build/Workers/chunk-V5S5N2IS.js +8644 -0
  51. package/Build/Workers/chunk-VN2IHJKM.js +513 -0
  52. package/Build/Workers/chunk-VWSD2XV5.js +669 -0
  53. package/Build/Workers/chunk-X2KIWBTW.js +100 -0
  54. package/Build/Workers/chunk-Y24CDOJC.js +353 -0
  55. package/Build/Workers/chunk-YLMDWSXO.js +44 -0
  56. package/Build/Workers/chunk-YNZ4DMR7.js +634 -0
  57. package/Build/Workers/chunk-Z2MP3UBE.js +236 -0
  58. package/Build/Workers/combineGeometry.js +65 -15
  59. package/Build/Workers/createBoxGeometry.js +55 -10
  60. package/Build/Workers/createBoxOutlineGeometry.js +231 -310
  61. package/Build/Workers/createCircleGeometry.js +185 -202
  62. package/Build/Workers/createCircleOutlineGeometry.js +141 -155
  63. package/Build/Workers/createCoplanarPolygonGeometry.js +477 -557
  64. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +218 -230
  65. package/Build/Workers/createCorridorGeometry.js +1163 -1307
  66. package/Build/Workers/createCorridorOutlineGeometry.js +534 -569
  67. package/Build/Workers/createCylinderGeometry.js +57 -10
  68. package/Build/Workers/createCylinderOutlineGeometry.js +224 -258
  69. package/Build/Workers/createEllipseGeometry.js +68 -12
  70. package/Build/Workers/createEllipseOutlineGeometry.js +61 -12
  71. package/Build/Workers/createEllipsoidGeometry.js +56 -10
  72. package/Build/Workers/createEllipsoidOutlineGeometry.js +58 -13
  73. package/Build/Workers/createFrustumGeometry.js +55 -10
  74. package/Build/Workers/createFrustumOutlineGeometry.js +226 -243
  75. package/Build/Workers/createGeometry.js +143 -48
  76. package/Build/Workers/createGroundPolylineGeometry.js +1484 -2012
  77. package/Build/Workers/createPlaneGeometry.js +216 -243
  78. package/Build/Workers/createPlaneOutlineGeometry.js +121 -113
  79. package/Build/Workers/createPolygonGeometry.js +1437 -1314
  80. package/Build/Workers/createPolygonOutlineGeometry.js +516 -657
  81. package/Build/Workers/createPolylineGeometry.js +471 -547
  82. package/Build/Workers/createPolylineVolumeGeometry.js +354 -384
  83. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +272 -295
  84. package/Build/Workers/createRectangleGeometry.js +1128 -1331
  85. package/Build/Workers/createRectangleOutlineGeometry.js +445 -500
  86. package/Build/Workers/createSimplePolylineGeometry.js +381 -440
  87. package/Build/Workers/createSphereGeometry.js +112 -118
  88. package/Build/Workers/createSphereOutlineGeometry.js +112 -121
  89. package/Build/Workers/createTaskProcessorWorker.js +32 -127
  90. package/Build/Workers/createVectorTileClampedPolylines.js +462 -505
  91. package/Build/Workers/createVectorTileGeometries.js +377 -436
  92. package/Build/Workers/createVectorTilePoints.js +110 -77
  93. package/Build/Workers/createVectorTilePolygons.js +369 -391
  94. package/Build/Workers/createVectorTilePolylines.js +252 -244
  95. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +543 -615
  96. package/Build/Workers/createVerticesFromHeightmap.js +2244 -2677
  97. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +682 -904
  98. package/Build/Workers/createWallGeometry.js +459 -593
  99. package/Build/Workers/createWallOutlineGeometry.js +324 -419
  100. package/Build/Workers/decodeDraco.js +327 -347
  101. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +2530 -3567
  102. package/Build/Workers/decodeI3S.js +765 -970
  103. package/Build/Workers/transcodeKTX2.js +3351 -1473
  104. package/Build/Workers/transferTypedArrayTest.js +3 -4
  105. package/Build/Workers/upsampleQuantizedTerrainMesh.js +748 -953
  106. package/LICENSE.md +0 -12
  107. package/Source/Core/CesiumTerrainProvider.js +1 -2
  108. package/Source/Core/Credit.js +7 -1
  109. package/Source/Core/FeatureDetection.js +9 -0
  110. package/Source/Core/GoogleMaps.js +1 -2
  111. package/Source/Core/Ion.js +1 -2
  112. package/Source/Core/KTX2Transcoder.js +7 -3
  113. package/Source/Core/PolygonGeometry.js +340 -27
  114. package/Source/Core/PolygonGeometryLibrary.js +302 -1
  115. package/Source/Core/Stereographic.js +247 -0
  116. package/Source/Core/TaskProcessor.js +185 -168
  117. package/Source/Core/Transforms.js +2 -2
  118. package/Source/Core/buildModuleUrl.js +6 -5
  119. package/Source/Core/sampleTerrain.js +43 -10
  120. package/Source/Core/sampleTerrainMostDetailed.js +27 -3
  121. package/Source/Scene/ArcGisMapService.js +1 -2
  122. package/Source/Scene/Billboard.js +7 -0
  123. package/Source/Scene/Cesium3DTilePass.js +1 -1
  124. package/Source/Scene/Cesium3DTileset.js +38 -81
  125. package/Source/Scene/CreditDisplay.js +2 -2
  126. package/Source/Scene/DracoLoader.js +26 -3
  127. package/Source/Scene/I3SDataProvider.js +0 -27
  128. package/Source/Scene/I3SDecoder.js +127 -0
  129. package/Source/Scene/I3SNode.js +32 -110
  130. package/Source/Scene/Implicit3DTileContent.js +13 -0
  131. package/Source/Scene/ImplicitTileset.js +5 -0
  132. package/Source/Scene/LabelCollection.js +3 -1
  133. package/Source/Scene/Model/I3dmLoader.js +5 -1
  134. package/Source/Scene/Model/Model.js +20 -23
  135. package/Source/Scene/OpenStreetMapImageryProvider.js +4 -1
  136. package/Source/Scene/PostProcessStageLibrary.js +3 -3
  137. package/Source/Scene/PrimitiveCollection.js +39 -0
  138. package/Source/Scene/Scene.js +3 -0
  139. package/Source/Scene/SingleTileImageryProvider.js +4 -2
  140. package/Source/ThirdParty/Workers/basis_transcoder.js +1 -1
  141. package/Source/Widget/CesiumWidget.js +2 -1
  142. package/Source/{WorkersES6 → Workers}/createGeometry.js +11 -12
  143. package/Source/{WorkersES6 → Workers}/createTaskProcessorWorker.js +43 -59
  144. package/Source/{WorkersES6 → Workers}/decodeDraco.js +19 -25
  145. package/Source/{WorkersES6 → Workers}/decodeI3S.js +18 -32
  146. package/Source/{WorkersES6 → Workers}/transcodeKTX2.js +19 -26
  147. package/Source/Workers/transferTypedArrayTest.js +0 -6
  148. package/index.d.ts +69 -35
  149. package/index.js +189 -187
  150. package/package.json +2 -1
  151. package/Build/Workers/ArcType-2d9abbbc.js +0 -37
  152. package/Build/Workers/AttributeCompression-f9f6c717.js +0 -716
  153. package/Build/Workers/AxisAlignedBoundingBox-a03420b1.js +0 -258
  154. package/Build/Workers/BoundingRectangle-32fa8a4a.js +0 -369
  155. package/Build/Workers/BoxGeometry-cd550612.js +0 -884
  156. package/Build/Workers/Check-6ede7e26.js +0 -290
  157. package/Build/Workers/Color-571a6085.js +0 -2262
  158. package/Build/Workers/ComponentDatatype-cf1fa08e.js +0 -341
  159. package/Build/Workers/CoplanarPolygonGeometryLibrary-488b1a9f.js +0 -132
  160. package/Build/Workers/CorridorGeometryLibrary-fc4ff147.js +0 -498
  161. package/Build/Workers/CylinderGeometry-bc26926d.js +0 -467
  162. package/Build/Workers/CylinderGeometryLibrary-7bf291b4.js +0 -63
  163. package/Build/Workers/EllipseGeometry-89533a10.js +0 -1304
  164. package/Build/Workers/EllipseGeometryLibrary-b0d7df17.js +0 -366
  165. package/Build/Workers/EllipseOutlineGeometry-63ff7a87.js +0 -443
  166. package/Build/Workers/EllipsoidGeodesic-5b3623dc.js +0 -520
  167. package/Build/Workers/EllipsoidGeometry-07e99d2d.js +0 -637
  168. package/Build/Workers/EllipsoidOutlineGeometry-ba5c7ee2.js +0 -454
  169. package/Build/Workers/EllipsoidRhumbLine-ef872433.js +0 -741
  170. package/Build/Workers/EllipsoidTangentPlane-65d41b3e.js +0 -373
  171. package/Build/Workers/EncodedCartesian3-57415c8a.js +0 -171
  172. package/Build/Workers/FrustumGeometry-4a7589ed.js +0 -2540
  173. package/Build/Workers/GeometryAttribute-a5b6275b.js +0 -619
  174. package/Build/Workers/GeometryAttributes-ad136444.js +0 -91
  175. package/Build/Workers/GeometryInstance-34d9e21e.js +0 -121
  176. package/Build/Workers/GeometryOffsetAttribute-9ad0019c.js +0 -16
  177. package/Build/Workers/GeometryPipeline-fa9e6ffc.js +0 -3690
  178. package/Build/Workers/IndexDatatype-2643aa47.js +0 -200
  179. package/Build/Workers/IntersectionTests-feace3da.js +0 -1836
  180. package/Build/Workers/Math-0a2ac845.js +0 -1340
  181. package/Build/Workers/Matrix2-e1298525.js +0 -7086
  182. package/Build/Workers/Matrix3-41c58dde.js +0 -4283
  183. package/Build/Workers/OrientedBoundingBox-6b94d955.js +0 -1259
  184. package/Build/Workers/Plane-4c3d403b.js +0 -309
  185. package/Build/Workers/PolygonGeometryLibrary-4ffc457d.js +0 -1074
  186. package/Build/Workers/PolygonPipeline-d5e66350.js +0 -1344
  187. package/Build/Workers/PolylinePipeline-83410f0c.js +0 -573
  188. package/Build/Workers/PolylineVolumeGeometryLibrary-290e7aec.js +0 -781
  189. package/Build/Workers/PrimitivePipeline-6081d138.js +0 -966
  190. package/Build/Workers/RectangleGeometryLibrary-986710d8.js +0 -280
  191. package/Build/Workers/RuntimeError-ef395448.js +0 -68
  192. package/Build/Workers/TerrainEncoding-528e1d68.js +0 -1227
  193. package/Build/Workers/Transforms-b527bb09.js +0 -14714
  194. package/Build/Workers/VertexFormat-030f11ff.js +0 -312
  195. package/Build/Workers/WallGeometryLibrary-faf583f8.js +0 -211
  196. package/Build/Workers/WebGLConstants-0b1ce7ba.js +0 -620
  197. package/Build/Workers/WebMercatorProjection-13ed1a6e.js +0 -151
  198. package/Build/Workers/arrayRemoveDuplicates-d2061e85.js +0 -129
  199. package/Build/Workers/cesiumWorkerBootstrapper.js +0 -1363
  200. package/Build/Workers/combine-d9581036.js +0 -82
  201. package/Build/Workers/defaultValue-fe22d8c0.js +0 -51
  202. package/Source/ThirdParty/Workers/draco_decoder_nodejs.js +0 -117
  203. package/Source/Workers/cesiumWorkerBootstrapper.js +0 -2290
  204. package/Source/Workers/package.json +0 -1
  205. /package/Source/{WorkersES6 → Workers}/combineGeometry.js +0 -0
  206. /package/Source/{WorkersES6 → Workers}/createBoxGeometry.js +0 -0
  207. /package/Source/{WorkersES6 → Workers}/createBoxOutlineGeometry.js +0 -0
  208. /package/Source/{WorkersES6 → Workers}/createCircleGeometry.js +0 -0
  209. /package/Source/{WorkersES6 → Workers}/createCircleOutlineGeometry.js +0 -0
  210. /package/Source/{WorkersES6 → Workers}/createCoplanarPolygonGeometry.js +0 -0
  211. /package/Source/{WorkersES6 → Workers}/createCoplanarPolygonOutlineGeometry.js +0 -0
  212. /package/Source/{WorkersES6 → Workers}/createCorridorGeometry.js +0 -0
  213. /package/Source/{WorkersES6 → Workers}/createCorridorOutlineGeometry.js +0 -0
  214. /package/Source/{WorkersES6 → Workers}/createCylinderGeometry.js +0 -0
  215. /package/Source/{WorkersES6 → Workers}/createCylinderOutlineGeometry.js +0 -0
  216. /package/Source/{WorkersES6 → Workers}/createEllipseGeometry.js +0 -0
  217. /package/Source/{WorkersES6 → Workers}/createEllipseOutlineGeometry.js +0 -0
  218. /package/Source/{WorkersES6 → Workers}/createEllipsoidGeometry.js +0 -0
  219. /package/Source/{WorkersES6 → Workers}/createEllipsoidOutlineGeometry.js +0 -0
  220. /package/Source/{WorkersES6 → Workers}/createFrustumGeometry.js +0 -0
  221. /package/Source/{WorkersES6 → Workers}/createFrustumOutlineGeometry.js +0 -0
  222. /package/Source/{WorkersES6 → Workers}/createGroundPolylineGeometry.js +0 -0
  223. /package/Source/{WorkersES6 → Workers}/createPlaneGeometry.js +0 -0
  224. /package/Source/{WorkersES6 → Workers}/createPlaneOutlineGeometry.js +0 -0
  225. /package/Source/{WorkersES6 → Workers}/createPolygonGeometry.js +0 -0
  226. /package/Source/{WorkersES6 → Workers}/createPolygonOutlineGeometry.js +0 -0
  227. /package/Source/{WorkersES6 → Workers}/createPolylineGeometry.js +0 -0
  228. /package/Source/{WorkersES6 → Workers}/createPolylineVolumeGeometry.js +0 -0
  229. /package/Source/{WorkersES6 → Workers}/createPolylineVolumeOutlineGeometry.js +0 -0
  230. /package/Source/{WorkersES6 → Workers}/createRectangleGeometry.js +0 -0
  231. /package/Source/{WorkersES6 → Workers}/createRectangleOutlineGeometry.js +0 -0
  232. /package/Source/{WorkersES6 → Workers}/createSimplePolylineGeometry.js +0 -0
  233. /package/Source/{WorkersES6 → Workers}/createSphereGeometry.js +0 -0
  234. /package/Source/{WorkersES6 → Workers}/createSphereOutlineGeometry.js +0 -0
  235. /package/Source/{WorkersES6 → Workers}/createVectorTileClampedPolylines.js +0 -0
  236. /package/Source/{WorkersES6 → Workers}/createVectorTileGeometries.js +0 -0
  237. /package/Source/{WorkersES6 → Workers}/createVectorTilePoints.js +0 -0
  238. /package/Source/{WorkersES6 → Workers}/createVectorTilePolygons.js +0 -0
  239. /package/Source/{WorkersES6 → Workers}/createVectorTilePolylines.js +0 -0
  240. /package/Source/{WorkersES6 → Workers}/createVerticesFromGoogleEarthEnterpriseBuffer.js +0 -0
  241. /package/Source/{WorkersES6 → Workers}/createVerticesFromHeightmap.js +0 -0
  242. /package/Source/{WorkersES6 → Workers}/createVerticesFromQuantizedTerrainMesh.js +0 -0
  243. /package/Source/{WorkersES6 → Workers}/createWallGeometry.js +0 -0
  244. /package/Source/{WorkersES6 → Workers}/createWallOutlineGeometry.js +0 -0
  245. /package/Source/{WorkersES6 → Workers}/decodeGoogleEarthEnterprisePacket.js +0 -0
  246. /package/Source/{WorkersES6 → Workers}/upsampleQuantizedTerrainMesh.js +0 -0
@@ -1,4 +1,3 @@
1
- /* global require */
2
1
  import createTaskProcessorWorker from "./createTaskProcessorWorker.js";
3
2
  import defined from "../Core/defined.js";
4
3
  import WebMercatorProjection from "../Core/WebMercatorProjection.js";
@@ -7,6 +6,7 @@ import Cartographic from "../Core/Cartographic.js";
7
6
  import Cartesian3 from "../Core/Cartesian3.js";
8
7
  import Matrix3 from "../Core/Matrix3.js";
9
8
  import CesiumMath from "../Core/Math.js";
9
+ import dracoModule from "draco3d/draco_decoder_nodejs.js";
10
10
 
11
11
  let draco;
12
12
 
@@ -171,7 +171,6 @@ function transformToLocal(
171
171
  const rotatedNormal = {};
172
172
  Matrix3.multiplyByVector(parentRotation, normal, rotatedNormal);
173
173
 
174
- // TODO: check if normals are Z-UP or Y-UP and flip y and z
175
174
  normals[indexOffset] = rotatedNormal.x;
176
175
  normals[indexOffset1] = rotatedNormal.y;
177
176
  normals[indexOffset2] = rotatedNormal.z;
@@ -890,17 +889,11 @@ function decodeBinaryGeometry(data, schema, bufferInfo, featureData) {
890
889
  // Use default geometry schema
891
890
  for (let i = 0; i < ordering.length; i++) {
892
891
  const decoder = binaryAttributeDecoders[ordering[i]];
893
- if (!defined(decoder)) {
894
- console.log(ordering[i]);
895
- }
896
892
  offset = decoder(decodedGeometry, data, offset);
897
893
  }
898
894
 
899
895
  for (let j = 0; j < featureAttributeOrder.length; j++) {
900
896
  const curDecoder = binaryAttributeDecoders[featureAttributeOrder[j]];
901
- if (!defined(curDecoder)) {
902
- console.log(featureAttributeOrder[j]);
903
- }
904
897
  offset = curDecoder(decodedGeometry, data, offset);
905
898
  }
906
899
  }
@@ -914,7 +907,7 @@ function decodeBinaryGeometry(data, schema, bufferInfo, featureData) {
914
907
  return decodedGeometry;
915
908
  }
916
909
 
917
- function decodeI3S(parameters) {
910
+ function decodeAndCreateGltf(parameters) {
918
911
  // Decode the data into geometry
919
912
  const geometryData = decode(
920
913
  parameters.binaryData,
@@ -1012,33 +1005,26 @@ function decodeI3S(parameters) {
1012
1005
  return results;
1013
1006
  }
1014
1007
 
1015
- function initWorker(dracoModule) {
1016
- draco = dracoModule;
1017
- self.onmessage = createTaskProcessorWorker(decodeI3S);
1018
- self.postMessage(true);
1019
- }
1008
+ async function initWorker(parameters, transferableObjects) {
1009
+ // Require and compile WebAssembly module, or use fallback if not supported
1010
+ const wasmConfig = parameters.webAssemblyConfig;
1011
+ if (defined(wasmConfig) && defined(wasmConfig.wasmBinaryFile)) {
1012
+ draco = await dracoModule(wasmConfig);
1013
+ } else {
1014
+ draco = await dracoModule();
1015
+ }
1020
1016
 
1021
- function decodeI3SStart(event) {
1022
- const data = event.data;
1017
+ return true;
1018
+ }
1023
1019
 
1020
+ function decodeI3S(parameters, transferableObjects) {
1024
1021
  // Expect the first message to be to load a web assembly module
1025
- const wasmConfig = data.webAssemblyConfig;
1022
+ const wasmConfig = parameters.webAssemblyConfig;
1026
1023
  if (defined(wasmConfig)) {
1027
- // Require and compile WebAssembly module, or use fallback if not supported
1028
- return require([wasmConfig.modulePath], function (dracoModule) {
1029
- if (defined(wasmConfig.wasmBinaryFile)) {
1030
- if (!defined(dracoModule)) {
1031
- dracoModule = self.DracoDecoderModule;
1032
- }
1033
-
1034
- dracoModule(wasmConfig).then(function (compiledModule) {
1035
- initWorker(compiledModule);
1036
- });
1037
- } else {
1038
- initWorker(dracoModule());
1039
- }
1040
- });
1024
+ return initWorker(parameters, transferableObjects);
1041
1025
  }
1026
+
1027
+ return decodeAndCreateGltf(parameters, transferableObjects);
1042
1028
  }
1043
1029
 
1044
- export default decodeI3SStart;
1030
+ export default createTaskProcessorWorker(decodeI3S);
@@ -1,4 +1,4 @@
1
- /* global require */
1
+ import defaultValue from "../Core/defaultValue.js";
2
2
  import defined from "../Core/defined.js";
3
3
  import Check from "../Core/Check.js";
4
4
  import PixelFormat from "../Core/PixelFormat.js";
@@ -7,6 +7,7 @@ import VulkanConstants from "../Core//VulkanConstants.js";
7
7
  import PixelDatatype from "../Renderer/PixelDatatype.js";
8
8
  import createTaskProcessorWorker from "./createTaskProcessorWorker.js";
9
9
  import { read } from "ktx-parse";
10
+ import basis from "../ThirdParty/Workers/basis_transcoder.js";
10
11
 
11
12
  const faceOrder = [
12
13
  "positiveX",
@@ -281,36 +282,28 @@ function transcodeCompressed(
281
282
  return result;
282
283
  }
283
284
 
284
- function initWorker(compiledModule) {
285
- transcoderModule = compiledModule;
285
+ async function initWorker(parameters, transferableObjects) {
286
+ // Require and compile WebAssembly module, or use fallback if not supported
287
+ const wasmConfig = parameters.webAssemblyConfig;
288
+ const basisTranscoder = defaultValue(basis, self.BASIS);
289
+ if (defined(wasmConfig.wasmBinaryFile)) {
290
+ transcoderModule = await basisTranscoder(wasmConfig);
291
+ } else {
292
+ transcoderModule = await basisTranscoder();
293
+ }
294
+
286
295
  transcoderModule.initializeBasis();
287
296
 
288
- self.onmessage = createTaskProcessorWorker(transcode);
289
- self.postMessage(true);
297
+ return true;
290
298
  }
291
299
 
292
- function transcodeKTX2(event) {
293
- const data = event.data;
294
-
300
+ function transcodeKTX2(parameters, transferableObjects) {
295
301
  // Expect the first message to be to load a web assembly module
296
- const wasmConfig = data.webAssemblyConfig;
302
+ const wasmConfig = parameters.webAssemblyConfig;
297
303
  if (defined(wasmConfig)) {
298
- // Require and compile WebAssembly module, or use fallback if not supported
299
- return require([wasmConfig.modulePath], function (mscBasisTranscoder) {
300
- if (defined(wasmConfig.wasmBinaryFile)) {
301
- if (!defined(mscBasisTranscoder)) {
302
- mscBasisTranscoder = self.MSC_TRANSCODER;
303
- }
304
-
305
- mscBasisTranscoder(wasmConfig).then(function (compiledModule) {
306
- initWorker(compiledModule);
307
- });
308
- } else {
309
- return mscBasisTranscoder().then(function (transcoder) {
310
- initWorker(transcoder);
311
- });
312
- }
313
- });
304
+ return initWorker(parameters, transferableObjects);
314
305
  }
306
+
307
+ return transcode(parameters, transferableObjects);
315
308
  }
316
- export default transcodeKTX2;
309
+ export default createTaskProcessorWorker(transcodeKTX2);
@@ -1,9 +1,3 @@
1
- // make sure self is defined so that the Dojo build can evaluate this file without crashing.
2
- if (typeof self === "undefined") {
3
- //eslint-disable-next-line no-implicit-globals, no-global-assign
4
- self = {};
5
- }
6
-
7
1
  self.onmessage = function (event) {
8
2
  const array = event.data.array;
9
3
  const postMessage = self.webkitPostMessage || self.postMessage;
package/index.d.ts CHANGED
@@ -6405,6 +6405,11 @@ export namespace FeatureDetection {
6405
6405
  * @returns true if the browser supports a WebGL2 rendering context, false if not.
6406
6406
  */
6407
6407
  function supportsWebgl2(scene: Scene): boolean;
6408
+ /**
6409
+ * Detects whether the current browser supports ECMAScript modules in web workers.
6410
+ * @returns true if the browser supports ECMAScript modules in web workers.
6411
+ */
6412
+ function supportsEsmWebWorkers(): boolean;
6408
6413
  }
6409
6414
 
6410
6415
  /**
@@ -12869,6 +12874,15 @@ export class PolygonGeometry {
12869
12874
  * @param [result] - The object into which to store the result.
12870
12875
  */
12871
12876
  static unpack(array: number[], startingIndex?: number, result?: PolygonGeometry): void;
12877
+ /**
12878
+ * Computes a rectangle which encloses the polygon defined by the list of positions, including cases over the international date line and the poles.
12879
+ * @param positions - A linear ring defining the outer boundary of the polygon.
12880
+ * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid to be used as a reference.
12881
+ * @param [arcType = ArcType.GEODESIC] - The type of line the polygon edges must follow. Valid options are {@link ArcType.GEODESIC} and {@link ArcType.RHUMB}.
12882
+ * @param [result] - An object in which to store the result.
12883
+ * @returns The result rectangle
12884
+ */
12885
+ static computeRectangleFromPositions(positions: Cartesian3[], ellipsoid?: Ellipsoid, arcType?: ArcType, result?: Rectangle): Rectangle;
12872
12886
  /**
12873
12887
  * Returns the bounding rectangle given the provided options
12874
12888
  * @param options - Object with the following properties:
@@ -16081,6 +16095,15 @@ export class SteppedSpline {
16081
16095
  evaluate(time: number, result?: Cartesian3 | Quaternion): number | Cartesian3 | Quaternion;
16082
16096
  }
16083
16097
 
16098
+ /**
16099
+ * Represents a point in stereographic coordinates, which can be obtained by projecting a cartesian coordinate from one pole onto a tangent plane at the other pole.
16100
+ * The stereographic projection faithfully represents the relative directions of all great circles passing through its center point.
16101
+ * To faithfully represents angles everywhere, this is a conformal projection, which means points are projected onto an arbrary sphere.
16102
+ * @param [position] - The steroegraphic coordinates.
16103
+ * @param [tangentPlane] - The tangent plane onto which the point was projected.
16104
+ */
16105
+ export function Stereographic(position?: Cartesian2, tangentPlane?: EllipseGeometry): void;
16106
+
16084
16107
  /**
16085
16108
  * A wrapper around a web worker that allows scheduling tasks for a given worker,
16086
16109
  * returning results asynchronously via a promise.
@@ -16120,7 +16143,7 @@ export class TaskProcessor {
16120
16143
  scheduleTask(parameters: any, transferableObjects?: object[]): Promise<object> | undefined;
16121
16144
  /**
16122
16145
  * Posts a message to a web worker with configuration to initialize loading
16123
- * and compiling a web assembly module asychronously, as well as an optional
16146
+ * and compiling a web assembly module asynchronously, as well as an optional
16124
16147
  * fallback JavaScript module to use if Web Assembly is not supported.
16125
16148
  * @param [webAssemblyOptions] - An object with the following properties:
16126
16149
  * @param [webAssemblyOptions.modulePath] - The path of the web assembly JavaScript wrapper module.
@@ -16132,7 +16155,7 @@ export class TaskProcessor {
16132
16155
  modulePath?: string;
16133
16156
  wasmBinaryFile?: string;
16134
16157
  fallbackModulePath?: string;
16135
- }): Promise<object>;
16158
+ }): Promise<any>;
16136
16159
  /**
16137
16160
  * Returns true if this object was destroyed; otherwise, false.
16138
16161
  * <br /><br />
@@ -17183,10 +17206,10 @@ export namespace Transforms {
17183
17206
  * at a given time. This function may return undefined if the data necessary to
17184
17207
  * do the transformation is not yet loaded.
17185
17208
  * @example
17186
- * // Transform a point from the ICRF axes to the Fixed axes.
17209
+ * // Transform a point from the Fixed axes to the ICRF axes.
17187
17210
  * const now = Cesium.JulianDate.now();
17188
17211
  * const pointInFixed = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
17189
- * const fixedToIcrf = Cesium.Transforms.computeIcrfToFixedMatrix(now);
17212
+ * const fixedToIcrf = Cesium.Transforms.computeFixedToIcrfMatrix(now);
17190
17213
  * let pointInInertial = new Cesium.Cartesian3();
17191
17214
  * if (Cesium.defined(fixedToIcrf)) {
17192
17215
  * pointInInertial = Cesium.Matrix3.multiplyByVector(fixedToIcrf, pointInFixed, pointInInertial);
@@ -18341,12 +18364,20 @@ export function queryToObject(queryString: string): any;
18341
18364
  * const updatedPositions = await Cesium.sampleTerrain(terrainProvider, 11, positions);
18342
18365
  * // positions[0].height and positions[1].height have been updated.
18343
18366
  * // updatedPositions is just a reference to positions.
18367
+ *
18368
+ * // To handle tile errors, pass true for the rejectOnTileFail parameter.
18369
+ * try {
18370
+ * const updatedPositions = await Cesium.sampleTerrain(terrainProvider, 11, positions, true);
18371
+ * } catch (error) {
18372
+ * // A tile request error occurred.
18373
+ * }
18344
18374
  * @param terrainProvider - The terrain provider from which to query heights.
18345
18375
  * @param level - The terrain level-of-detail from which to query terrain heights.
18346
18376
  * @param positions - The positions to update with terrain heights.
18377
+ * @param [rejectOnTileFail = false] - If true, for a failed terrain tile request the promise will be rejected. If false, returned heights will be undefined.
18347
18378
  * @returns A promise that resolves to the provided list of positions when terrain the query has completed.
18348
18379
  */
18349
- export function sampleTerrain(terrainProvider: TerrainProvider, level: number, positions: Cartographic[]): Promise<Cartographic[]>;
18380
+ export function sampleTerrain(terrainProvider: TerrainProvider, level: number, positions: Cartographic[], rejectOnTileFail?: boolean): Promise<Cartographic[]>;
18350
18381
 
18351
18382
  /**
18352
18383
  * Initiates a sampleTerrain() request at the maximum available tile level for a terrain dataset.
@@ -18360,12 +18391,20 @@ export function sampleTerrain(terrainProvider: TerrainProvider, level: number, p
18360
18391
  * const updatedPositions = await Cesium.sampleTerrainMostDetailed(terrainProvider, positions);
18361
18392
  * // positions[0].height and positions[1].height have been updated.
18362
18393
  * // updatedPositions is just a reference to positions.
18394
+ *
18395
+ * // To handle tile errors, pass true for the rejectOnTileFail parameter.
18396
+ * try {
18397
+ * const updatedPositions = await Cesium.sampleTerrainMostDetailed(terrainProvider, positions, true);
18398
+ * } catch (error) {
18399
+ * // A tile request error occurred.
18400
+ * }
18363
18401
  * @param terrainProvider - The terrain provider from which to query heights.
18364
18402
  * @param positions - The positions to update with terrain heights.
18403
+ * @param [rejectOnTileFail = false] - If true, for a failed terrain tile request the promise will be rejected. If false, returned heights will be undefined.
18365
18404
  * @returns A promise that resolves to the provided list of positions when terrain the query has completed. This
18366
18405
  * promise will reject if the terrain provider's `availability` property is undefined.
18367
18406
  */
18368
- export function sampleTerrainMostDetailed(terrainProvider: TerrainProvider, positions: Cartographic[]): Promise<Cartographic[]>;
18407
+ export function sampleTerrainMostDetailed(terrainProvider: TerrainProvider, positions: Cartographic[], rejectOnTileFail?: boolean): Promise<Cartographic[]>;
18369
18408
 
18370
18409
  /**
18371
18410
  * Subdivides an array into a number of smaller, equal sized arrays.
@@ -28592,7 +28631,6 @@ export namespace Cesium3DTileset {
28592
28631
  * @property [modelForwardAxis = Axis.X] - Which axis is considered forward when loading models for tile contents.
28593
28632
  * @property [shadows = ShadowMode.ENABLED] - Determines whether the tileset casts or receives shadows from light sources.
28594
28633
  * @property [maximumScreenSpaceError = 16] - The maximum screen space error used to drive level of detail refinement.
28595
- * @property [maximumMemoryUsage = 512] - The maximum amount of memory in MB that can be used by the tileset. Deprecated.
28596
28634
  * @property [cacheBytes = 536870912] - The size (in bytes) to which the tile cache will be trimmed, if the cache contains tiles not needed for the current view.
28597
28635
  * @property [maximumCacheOverflowBytes = 536870912] - The maximum additional memory (in bytes) to allow for cache headroom, if more than {@link Cesium3DTileset#cacheBytes} are needed for the current view.
28598
28636
  * @property [cullWithChildrenBounds = true] - Optimization option. Whether to cull tiles using the union of their children bounding volumes.
@@ -28654,7 +28692,6 @@ export namespace Cesium3DTileset {
28654
28692
  modelForwardAxis?: Axis;
28655
28693
  shadows?: ShadowMode;
28656
28694
  maximumScreenSpaceError?: number;
28657
- maximumMemoryUsage?: number;
28658
28695
  cacheBytes?: number;
28659
28696
  maximumCacheOverflowBytes?: number;
28660
28697
  cullWithChildrenBounds?: boolean;
@@ -29253,26 +29290,6 @@ export class Cesium3DTileset {
29253
29290
  * </p>
29254
29291
  */
29255
29292
  maximumScreenSpaceError: number;
29256
- /**
29257
- * The maximum amount of GPU memory (in MB) that may be used to cache tiles. This value is estimated from
29258
- * geometry, textures, and batch table textures of loaded tiles. For point clouds, this value also
29259
- * includes per-point metadata.
29260
- * <p>
29261
- * Tiles not in view are unloaded to enforce this.
29262
- * </p>
29263
- * <p>
29264
- * If decreasing this value results in unloading tiles, the tiles are unloaded the next frame.
29265
- * </p>
29266
- * <p>
29267
- * If tiles sized more than <code>maximumMemoryUsage</code> are needed
29268
- * to meet the desired screen space error, determined by {@link Cesium3DTileset#maximumScreenSpaceError},
29269
- * for the current view, then the memory usage of the tiles loaded will exceed
29270
- * <code>maximumMemoryUsage</code>. For example, if the maximum is 256 MB, but
29271
- * 300 MB of tiles are needed to meet the screen space error, then 300 MB of tiles may be loaded. When
29272
- * these tiles go out of view, they will be unloaded.
29273
- * </p>
29274
- */
29275
- maximumMemoryUsage: number;
29276
29293
  /**
29277
29294
  * The amount of GPU memory (in bytes) used to cache tiles. This memory usage is estimated from
29278
29295
  * geometry, textures, and batch table textures of loaded tiles. For point clouds, this value also
@@ -36819,6 +36836,7 @@ export namespace OpenStreetMapImageryProvider {
36819
36836
  * Initialization options for the OpenStreetMapImageryProvider constructor
36820
36837
  * @property [url = 'https://tile.openstreetmap.org'] - The OpenStreetMap server url.
36821
36838
  * @property [fileExtension = 'png'] - The file extension for images on the server.
36839
+ * @property [retinaTiles = false] - When true, request tiles at the 2x resolution for retina displays.
36822
36840
  * @property [rectangle = Rectangle.MAX_VALUE] - The rectangle of the layer.
36823
36841
  * @property [minimumLevel = 0] - The minimum level-of-detail supported by the imagery provider.
36824
36842
  * @property [maximumLevel] - The maximum level-of-detail supported by the imagery provider, or undefined if there is no limit.
@@ -36828,6 +36846,7 @@ export namespace OpenStreetMapImageryProvider {
36828
36846
  type ConstructorOptions = {
36829
36847
  url?: string;
36830
36848
  fileExtension?: string;
36849
+ retinaTiles?: boolean;
36831
36850
  rectangle?: Rectangle;
36832
36851
  minimumLevel?: number;
36833
36852
  maximumLevel?: number;
@@ -38578,16 +38597,16 @@ export namespace PostProcessStageLibrary {
38578
38597
  * </p>
38579
38598
  * @example
38580
38599
  * // multiple silhouette effects
38581
- * const yellowEdge = Cesium.PostProcessLibrary.createEdgeDetectionStage();
38600
+ * const yellowEdge = Cesium.PostProcessStageLibrary.createEdgeDetectionStage();
38582
38601
  * yellowEdge.uniforms.color = Cesium.Color.YELLOW;
38583
38602
  * yellowEdge.selected = [feature0];
38584
38603
  *
38585
- * const greenEdge = Cesium.PostProcessLibrary.createEdgeDetectionStage();
38604
+ * const greenEdge = Cesium.PostProcessStageLibrary.createEdgeDetectionStage();
38586
38605
  * greenEdge.uniforms.color = Cesium.Color.LIME;
38587
38606
  * greenEdge.selected = [feature1];
38588
38607
  *
38589
38608
  * // draw edges around feature0 and feature1
38590
- * postProcessStages.add(Cesium.PostProcessLibrary.createSilhouetteStage([yellowEdge, greenEdge]);
38609
+ * postProcessStages.add(Cesium.PostProcessStageLibrary.createSilhouetteStage([yellowEdge, greenEdge]);
38591
38610
  * @returns A post-process stage that applies an edge detection effect.
38592
38611
  */
38593
38612
  function createEdgeDetectionStage(): PostProcessStage;
@@ -39012,6 +39031,19 @@ export class PrimitiveCollection {
39012
39031
  * Gets the number of primitives in the collection.
39013
39032
  */
39014
39033
  readonly length: number;
39034
+ /**
39035
+ * An event that is raised when a primitive is added to the collection.
39036
+ * Event handlers are passed the primitive that was added.
39037
+ */
39038
+ readonly primitiveAdded: Event;
39039
+ /**
39040
+ * An event that is raised when a primitive is removed from the collection.
39041
+ * Event handlers are passed the primitive that was removed.
39042
+ * <p>
39043
+ * Note: Depending on the destroyPrimitives constructor option, the primitive may already be destroyed.
39044
+ * </p>
39045
+ */
39046
+ readonly primitiveRemoved: Event;
39015
39047
  /**
39016
39048
  * Adds a primitive to the collection.
39017
39049
  * @example
@@ -40102,8 +40134,9 @@ export namespace SingleTileImageryProvider {
40102
40134
  }
40103
40135
 
40104
40136
  /**
40105
- * Provides a single, top-level imagery tile. The single image is assumed to use a
40106
- * {@link GeographicTilingScheme}.
40137
+ * Provides a single, top-level imagery tile. The single image is assumed to be in
40138
+ * the Geographic projection (i.e. WGS84 / EPSG:4326),
40139
+ * and will be rendered using a {@link GeographicTilingScheme}.
40107
40140
  * @param options - Object describing initialization options
40108
40141
  */
40109
40142
  export class SingleTileImageryProvider {
@@ -40171,8 +40204,9 @@ export class SingleTileImageryProvider {
40171
40204
  * const provider = await SingleTileImageryProvider.fromUrl("https://yoururl.com/image.png");
40172
40205
  * @param url - The url for the tile
40173
40206
  * @param [options] - Object describing initialization options.
40207
+ * @returns The resolved SingleTileImageryProvider.
40174
40208
  */
40175
- static fromUrl(url: Resource | string, options?: SingleTileImageryProvider.fromUrlOptions): void;
40209
+ static fromUrl(url: Resource | string, options?: SingleTileImageryProvider.fromUrlOptions): Promise<SingleTileImageryProvider>;
40176
40210
  /**
40177
40211
  * Gets the credits to be displayed when a given tile is displayed.
40178
40212
  * @param x - The tile X coordinate.
@@ -42361,7 +42395,7 @@ export function createWorldImageryAsync(options?: {
42361
42395
  * @param [options.scene3DOnly = false] - When <code>true</code>, each geometry instance will only be rendered in 3D to save GPU memory.
42362
42396
  * @param [options.orderIndependentTranslucency = true] - If true and the configuration supports it, use order independent translucency.
42363
42397
  * @param [options.mapProjection = new GeographicProjection()] - The map projection to use in 2D and Columbus View modes.
42364
- * @param [options.globe = new Globe(mapProjection.ellipsoid)] - The globe to use in the scene. If set to <code>false</code>, no globe will be added.
42398
+ * @param [options.globe = new Globe(mapProjection.ellipsoid)] - The globe to use in the scene. If set to <code>false</code>, no globe will be added and the sky atmosphere will be hidden by default.
42365
42399
  * @param [options.useDefaultRenderLoop = true] - True if this widget should control the render loop, false otherwise.
42366
42400
  * @param [options.useBrowserRecommendedResolution = true] - If true, render at the browser's recommended resolution and ignore <code>window.devicePixelRatio</code>.
42367
42401
  * @param [options.targetFrameRate] - The target frame rate when using the default render loop.