@cesium/engine 26.0.0 → 26.1.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 (160) hide show
  1. package/Build/Workers/{chunk-EF2QYXGA.js → chunk-2EFYUSUY.js} +14 -14
  2. package/Build/Workers/{chunk-KFSTQKNM.js → chunk-5LSOO2KD.js} +7 -7
  3. package/Build/Workers/{chunk-VQYETPWC.js → chunk-6HK6IXK2.js} +4 -4
  4. package/Build/Workers/{chunk-AYKR4VBR.js → chunk-6YR6JBMY.js} +2 -2
  5. package/Build/Workers/{chunk-DOBXCNC3.js → chunk-76FDC45O.js} +13 -13
  6. package/Build/Workers/{chunk-54I6Y66F.js → chunk-7D2HZKH7.js} +6 -6
  7. package/Build/Workers/{chunk-4MGMYHOO.js → chunk-7KVKHY7O.js} +6 -6
  8. package/Build/Workers/{chunk-IRBKFCEJ.js → chunk-A3O6EDBK.js} +2 -2
  9. package/Build/Workers/{chunk-V7VQKN6N.js → chunk-A6X24AZI.js} +5 -5
  10. package/Build/Workers/{chunk-ZP7JMQV4.js → chunk-AHWAZRBV.js} +6 -2
  11. package/Build/Workers/{chunk-YLY7NKAB.js → chunk-B4CQSLZJ.js} +4 -4
  12. package/Build/Workers/{chunk-J6BWOHUF.js → chunk-C7JQVRLM.js} +3 -3
  13. package/Build/Workers/{chunk-KSSWJIZW.js → chunk-CDJDJ5LK.js} +2 -2
  14. package/Build/Workers/{chunk-G7PXZRVF.js → chunk-CEEZE3YZ.js} +7 -7
  15. package/Build/Workers/{chunk-INUEEEQA.js → chunk-CLCTQVVL.js} +8 -8
  16. package/Build/Workers/{chunk-O3EA5HS7.js → chunk-DBD5WWG2.js} +10 -10
  17. package/Build/Workers/{chunk-E7VQ76KE.js → chunk-DIGUUD6G.js} +6 -6
  18. package/Build/Workers/{chunk-424RNO3D.js → chunk-E7NZJOK7.js} +196 -22
  19. package/Build/Workers/{chunk-ACXQXN46.js → chunk-EHTS2YPT.js} +16 -16
  20. package/Build/Workers/{chunk-VWV2IJRB.js → chunk-ENNFMWDW.js} +11 -11
  21. package/Build/Workers/{chunk-FRQZECAO.js → chunk-FCP2QY4G.js} +5 -5
  22. package/Build/Workers/{chunk-ZZ46LWL6.js → chunk-FDK4K5IA.js} +1 -1
  23. package/Build/Workers/{chunk-C6KNZ7T4.js → chunk-FGQFQHN5.js} +17 -17
  24. package/Build/Workers/{chunk-MYP774IS.js → chunk-GSWMAFTE.js} +8 -8
  25. package/Build/Workers/{chunk-Y5BF6AFU.js → chunk-GXWQZBAI.js} +2 -2
  26. package/Build/Workers/{chunk-DDWSZVMY.js → chunk-HHV3MCGV.js} +5 -5
  27. package/Build/Workers/{chunk-52JDLOEM.js → chunk-HS6AD4P2.js} +14 -14
  28. package/Build/Workers/{chunk-Q3PY526V.js → chunk-IGAZBTFZ.js} +6 -6
  29. package/Build/Workers/{chunk-EBSIOBXY.js → chunk-ILME5BXA.js} +8 -8
  30. package/Build/Workers/{chunk-C6J67V5A.js → chunk-JKXV6PG5.js} +1 -1
  31. package/Build/Workers/{chunk-SMQZZOW6.js → chunk-JW6OZT4R.js} +10 -10
  32. package/Build/Workers/{chunk-F6QDY6HU.js → chunk-KGXSYGBG.js} +13 -13
  33. package/Build/Workers/{chunk-UOOIQ3KX.js → chunk-LD64RPYV.js} +12 -12
  34. package/Build/Workers/{chunk-CFQP6LYM.js → chunk-LGNDTZVX.js} +4 -4
  35. package/Build/Workers/{chunk-U3ZA64U7.js → chunk-LNSQVXFH.js} +2 -2
  36. package/Build/Workers/{chunk-TKKIREQ6.js → chunk-N7CCOFLX.js} +1 -1
  37. package/Build/Workers/{chunk-UA25D5MX.js → chunk-NIWITKQK.js} +10 -10
  38. package/Build/Workers/{chunk-KKOSKAZB.js → chunk-OBEU25PI.js} +17 -17
  39. package/Build/Workers/{chunk-M3B5JKSM.js → chunk-QVLAFFJY.js} +1 -1
  40. package/Build/Workers/{chunk-6YEE6JDR.js → chunk-R4FPNAZ2.js} +6 -6
  41. package/Build/Workers/{chunk-7J2HKPRH.js → chunk-RG4F5R57.js} +9 -9
  42. package/Build/Workers/{chunk-CXOYE2WM.js → chunk-SF6K72D7.js} +5 -5
  43. package/Build/Workers/{chunk-CZEYZU4N.js → chunk-SGRGNDOD.js} +10 -10
  44. package/Build/Workers/{chunk-DBOEKL43.js → chunk-SM2CDCYF.js} +7 -7
  45. package/Build/Workers/{chunk-Y57HREW5.js → chunk-SS5ABQGY.js} +4 -4
  46. package/Build/Workers/{chunk-QRWGUWI6.js → chunk-T5QBPLE3.js} +11 -11
  47. package/Build/Workers/{chunk-ZK3CF7ZD.js → chunk-TVZD72WJ.js} +12 -12
  48. package/Build/Workers/{chunk-IYOUHCZB.js → chunk-UEY73NRN.js} +1 -1
  49. package/Build/Workers/{chunk-7WM2PX4V.js → chunk-UVO6COT2.js} +5 -5
  50. package/Build/Workers/{chunk-P3CK7MCY.js → chunk-VAL7DYNR.js} +4 -4
  51. package/Build/Workers/{chunk-EPYXRCDB.js → chunk-WBSY7HDY.js} +12 -12
  52. package/Build/Workers/{chunk-4S7IE3LB.js → chunk-XDWCTQCZ.js} +2 -2
  53. package/Build/Workers/{chunk-QN67VG36.js → chunk-XLXSDIP5.js} +6 -6
  54. package/Build/Workers/{chunk-S4MCOY6I.js → chunk-XQ3SKCMM.js} +5 -5
  55. package/Build/Workers/{chunk-XZMBNNDX.js → chunk-YKU2Q3A2.js} +9 -9
  56. package/Build/Workers/{chunk-3VFEWOBI.js → chunk-ZMBHFYOX.js} +7 -7
  57. package/Build/Workers/{chunk-MPZHGZU6.js → chunk-ZSGUV73H.js} +4 -4
  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 +987 -2320
  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 +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/BoundingRectangle.js +6 -8
  112. package/Source/Core/Color.js +1 -0
  113. package/Source/Core/InterpolationAlgorithm.js +57 -50
  114. package/Source/Core/Ion.js +1 -1
  115. package/Source/Core/TerrainMesh.js +3 -3
  116. package/Source/Core/TerrainPicker.js +1 -0
  117. package/Source/Core/writeTextToCanvas.js +1 -0
  118. package/Source/DataSources/CzmlDataSource.js +12 -0
  119. package/Source/DataSources/KmlDataSource.js +528 -555
  120. package/Source/DataSources/PathGraphics.js +8 -1
  121. package/Source/DataSources/PathMode.js +27 -0
  122. package/Source/DataSources/PathVisualizer.js +298 -1
  123. package/Source/Renderer/Texture.js +1 -1
  124. package/Source/Renderer/VertexArray.js +1 -0
  125. package/Source/Scene/ArcGisMapService.js +1 -1
  126. package/Source/Scene/BillboardTexture.js +5 -3
  127. package/Source/Scene/Cesium3DTileOptimizations.js +4 -6
  128. package/Source/Scene/ClippingPlaneCollection.js +2 -2
  129. package/Source/Scene/ClippingPolygon.js +2 -0
  130. package/Source/Scene/ClippingPolygonCollection.js +2 -2
  131. package/Source/Scene/DerivedCommand.js +4 -0
  132. package/Source/Scene/Expression.js +6 -8
  133. package/Source/Scene/GlobeSurfaceShaderSet.js +501 -409
  134. package/Source/Scene/GlobeSurfaceTile.js +540 -401
  135. package/Source/Scene/GlobeSurfaceTileProvider.js +1259 -1146
  136. package/Source/Scene/GltfBufferViewLoader.js +3 -3
  137. package/Source/Scene/GltfLoader.js +1 -0
  138. package/Source/Scene/GltfLoaderUtil.js +20 -4
  139. package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +10 -0
  140. package/Source/Scene/GltfPipeline/removeUnusedElements.js +21 -11
  141. package/Source/Scene/ImageryLayer.js +2 -2
  142. package/Source/Scene/ImageryLayerCollection.js +2 -2
  143. package/Source/Scene/Material.js +1 -0
  144. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +4 -0
  145. package/Source/Scene/Model/Model.js +3 -0
  146. package/Source/Scene/Model/ModelUtility.js +1 -0
  147. package/Source/Scene/Picking.js +5 -0
  148. package/Source/Scene/PntsParser.js +1 -0
  149. package/Source/Scene/QuadtreePrimitive.js +3 -2
  150. package/Source/Scene/ResourceCacheKey.js +5 -5
  151. package/Source/Scene/Scene.js +1 -0
  152. package/Source/Scene/findMeshoptExtension.js +23 -0
  153. package/Source/Scene/renderBufferPointCollection.js +13 -8
  154. package/Source/Scene/renderBufferPolygonCollection.js +9 -13
  155. package/Source/Scene/renderBufferPolylineCollection.js +120 -192
  156. package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +2 -2
  157. package/Source/Workers/incrementallyBuildTerrainPicker.js +2 -0
  158. package/index.d.ts +59 -254
  159. package/index.js +155 -153
  160. package/package.json +4 -4
@@ -84,9 +84,9 @@ const pickColor = new Color();
84
84
  const cartesian = new Cartesian3();
85
85
  const prevCartesian = new Cartesian3();
86
86
  const nextCartesian = new Cartesian3();
87
- const cartesianEnc = new EncodedCartesian3();
88
- const prevCartesianEnc = new EncodedCartesian3();
89
- const nextCartesianEnc = new EncodedCartesian3();
87
+ const encodedC = new EncodedCartesian3();
88
+ const encodedP = new EncodedCartesian3();
89
+ const encodedN = new EncodedCartesian3();
90
90
 
91
91
  /**
92
92
  * Renders line segments as quads, each composed of two triangles. Writes each
@@ -167,13 +167,28 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
167
167
 
168
168
  if (collection._dirtyCount > 0) {
169
169
  const { _dirtyOffset, _dirtyCount } = collection;
170
- const { attributeArrays } = renderContext;
171
170
 
172
171
  const indexArray = renderContext.indexArray;
173
- const pickColorArray = attributeArrays.pickColor;
174
- const showColorWidthAndTexCoordArray =
175
- attributeArrays.showColorWidthAndTexCoord;
176
- const alphaArray = attributeArrays.alpha;
172
+
173
+ const {
174
+ // Common.
175
+ pickColor: pickColorArray,
176
+ showColorWidthAndTexCoord: showColorWidthAndTexCoordArray,
177
+ alpha: alphaArray,
178
+
179
+ // 8-32 bit.
180
+ position,
181
+ prevPosition,
182
+ nextPosition,
183
+
184
+ // 64 bit.
185
+ positionHigh,
186
+ positionLow,
187
+ prevPositionHigh,
188
+ prevPositionLow,
189
+ nextPositionHigh,
190
+ nextPositionLow,
191
+ } = renderContext.attributeArrays;
177
192
 
178
193
  for (let i = _dirtyOffset, il = _dirtyOffset + _dirtyCount; i < il; i++) {
179
194
  collection.get(i, polyline);
@@ -191,199 +206,112 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
191
206
  let vOffset = polyline.vertexOffset * 2; // vertex offset
192
207
  let iOffset = (polyline.vertexOffset - i) * 6; // index offset
193
208
 
194
- const jl = polyline.vertexCount;
195
-
196
- if (!useFloat64) {
197
- const posView = collection._positionView;
198
- const posStart = polyline.vertexOffset * 3;
199
- const posArray = attributeArrays.position;
200
- const prevPosArray = attributeArrays.prevPosition;
201
- const nextPosArray = attributeArrays.nextPosition;
202
-
203
- for (let j = 0; j < jl; j++) {
204
- const isFirstSegment = j === 0;
205
- const isLastSegment = j === jl - 1;
206
-
207
- const cx = posView[posStart + j * 3];
208
- const cy = posView[posStart + j * 3 + 1];
209
- const cz = posView[posStart + j * 3 + 2];
210
-
211
- let px, py, pz, nx, ny, nz;
212
-
213
- if (isFirstSegment) {
214
- nx = posView[posStart + 1 * 3];
215
- ny = posView[posStart + 1 * 3 + 1];
216
- nz = posView[posStart + 1 * 3 + 2];
217
- // Mirror current over next to get synthetic prev.
218
- px = 2 * cx - nx;
219
- py = 2 * cy - ny;
220
- pz = 2 * cz - nz;
221
- } else if (isLastSegment) {
222
- px = posView[posStart + (j - 1) * 3];
223
- py = posView[posStart + (j - 1) * 3 + 1];
224
- pz = posView[posStart + (j - 1) * 3 + 2];
225
- // Mirror current over prev to get synthetic next.
226
- nx = 2 * cx - px;
227
- ny = 2 * cy - py;
228
- nz = 2 * cz - pz;
229
- } else {
230
- px = posView[posStart + (j - 1) * 3];
231
- py = posView[posStart + (j - 1) * 3 + 1];
232
- pz = posView[posStart + (j - 1) * 3 + 2];
233
- nx = posView[posStart + (j + 1) * 3];
234
- ny = posView[posStart + (j + 1) * 3 + 1];
235
- nz = posView[posStart + (j + 1) * 3 + 2];
236
- }
209
+ const posView = collection._positionView;
210
+ const posStart = polyline.vertexOffset * 3;
211
+
212
+ for (let j = 0, jl = polyline.vertexCount; j < jl; j++) {
213
+ const isFirstSegment = j === 0;
214
+ const isLastSegment = j === jl - 1;
215
+
216
+ // c=current, p=previous, n=next
217
+
218
+ const cx = posView[posStart + j * 3];
219
+ const cy = posView[posStart + j * 3 + 1];
220
+ const cz = posView[posStart + j * 3 + 2];
221
+
222
+ let px, py, pz, nx, ny, nz;
223
+
224
+ if (isFirstSegment) {
225
+ nx = posView[posStart + 1 * 3];
226
+ ny = posView[posStart + 1 * 3 + 1];
227
+ nz = posView[posStart + 1 * 3 + 2];
228
+ // Mirror current over next to get synthetic prev.
229
+ px = 2 * cx - nx;
230
+ py = 2 * cy - ny;
231
+ pz = 2 * cz - nz;
232
+ } else if (isLastSegment) {
233
+ px = posView[posStart + (j - 1) * 3];
234
+ py = posView[posStart + (j - 1) * 3 + 1];
235
+ pz = posView[posStart + (j - 1) * 3 + 2];
236
+ // Mirror current over prev to get synthetic next.
237
+ nx = 2 * cx - px;
238
+ ny = 2 * cy - py;
239
+ nz = 2 * cz - pz;
240
+ } else {
241
+ px = posView[posStart + (j - 1) * 3];
242
+ py = posView[posStart + (j - 1) * 3 + 1];
243
+ pz = posView[posStart + (j - 1) * 3 + 2];
244
+ nx = posView[posStart + (j + 1) * 3];
245
+ ny = posView[posStart + (j + 1) * 3 + 1];
246
+ nz = posView[posStart + (j + 1) * 3 + 2];
247
+ }
237
248
 
238
- if (!isLastSegment) {
239
- indexArray[iOffset] = vOffset;
240
- indexArray[iOffset + 1] = vOffset + 1;
241
- indexArray[iOffset + 2] = vOffset + 2;
242
- indexArray[iOffset + 3] = vOffset + 2;
243
- indexArray[iOffset + 4] = vOffset + 1;
244
- indexArray[iOffset + 5] = vOffset + 3;
245
- iOffset += 6;
246
- }
249
+ if (!isLastSegment) {
250
+ indexArray[iOffset] = vOffset;
251
+ indexArray[iOffset + 1] = vOffset + 1;
252
+ indexArray[iOffset + 2] = vOffset + 2;
253
+ indexArray[iOffset + 3] = vOffset + 2;
254
+ indexArray[iOffset + 4] = vOffset + 1;
255
+ indexArray[iOffset + 5] = vOffset + 3;
256
+ iOffset += 6;
257
+ }
247
258
 
248
- // Write each vertex twice for the quad.
249
- for (let k = 0; k < 2; k++) {
250
- posArray[vOffset * 3] = cx;
251
- posArray[vOffset * 3 + 1] = cy;
252
- posArray[vOffset * 3 + 2] = cz;
253
-
254
- prevPosArray[vOffset * 3] = px;
255
- prevPosArray[vOffset * 3 + 1] = py;
256
- prevPosArray[vOffset * 3 + 2] = pz;
257
-
258
- nextPosArray[vOffset * 3] = nx;
259
- nextPosArray[vOffset * 3 + 1] = ny;
260
- nextPosArray[vOffset * 3 + 2] = nz;
261
-
262
- pickColorArray[vOffset * 4] = Color.floatToByte(pickColor.red);
263
- pickColorArray[vOffset * 4 + 1] = Color.floatToByte(
264
- pickColor.green,
265
- );
266
- pickColorArray[vOffset * 4 + 2] = Color.floatToByte(pickColor.blue);
267
- pickColorArray[vOffset * 4 + 3] = Color.floatToByte(
268
- pickColor.alpha,
269
- );
270
-
271
- showColorWidthAndTexCoordArray[vOffset * 4] = show ? 1 : 0;
272
- showColorWidthAndTexCoordArray[vOffset * 4 + 1] = encodedColor;
273
- showColorWidthAndTexCoordArray[vOffset * 4 + 2] = material.width;
274
- showColorWidthAndTexCoordArray[vOffset * 4 + 3] = j / (jl - 1);
275
-
276
- alphaArray[vOffset] = colorAlpha * 255.0;
277
-
278
- vOffset++;
279
- }
259
+ if (useFloat64) {
260
+ Cartesian3.fromElements(cx, cy, cz, cartesian);
261
+ Cartesian3.fromElements(px, py, pz, prevCartesian);
262
+ Cartesian3.fromElements(nx, ny, nz, nextCartesian);
263
+ EncodedCartesian3.fromCartesian(cartesian, encodedC);
264
+ EncodedCartesian3.fromCartesian(prevCartesian, encodedP);
265
+ EncodedCartesian3.fromCartesian(nextCartesian, encodedN);
280
266
  }
281
- } else {
282
- const cartesianArray = polyline.getPositions();
283
-
284
- for (let j = 0; j < jl; j++) {
285
- const isFirstSegment = j === 0;
286
- const isLastSegment = j === jl - 1;
287
-
288
- // For first/last vertices, infer missing vertices by mirroring the segment.
289
- // @ts-expect-error TODO(tsd-jsdoc): See https://github.com/CesiumGS/cesium/pull/13302.
290
- Cartesian3.fromArray(cartesianArray, j * 3, cartesian);
291
- if (isFirstSegment) {
292
- // @ts-expect-error TODO(tsd-jsdoc): See https://github.com/CesiumGS/cesium/pull/13302.
293
- Cartesian3.fromArray(cartesianArray, (j + 1) * 3, nextCartesian);
294
- Cartesian3.subtract(cartesian, nextCartesian, prevCartesian);
295
- Cartesian3.add(cartesian, prevCartesian, prevCartesian);
296
- } else if (isLastSegment) {
297
- // @ts-expect-error TODO(tsd-jsdoc): See https://github.com/CesiumGS/cesium/pull/13302.
298
- Cartesian3.fromArray(cartesianArray, (j - 1) * 3, prevCartesian);
299
- Cartesian3.subtract(cartesian, prevCartesian, nextCartesian);
300
- Cartesian3.add(cartesian, nextCartesian, nextCartesian);
267
+
268
+ // TODO(donmccurdy): Diverging from PolylineCollection.js, which writes
269
+ // internal vertices to buffer 4x, not 2x. Not sure that's needed?
270
+
271
+ // Write each vertex twice for the quad.
272
+ for (let k = 0; k < 2; k++) {
273
+ if (!useFloat64) {
274
+ position[vOffset * 3] = cx;
275
+ position[vOffset * 3 + 1] = cy;
276
+ position[vOffset * 3 + 2] = cz;
277
+
278
+ prevPosition[vOffset * 3] = px;
279
+ prevPosition[vOffset * 3 + 1] = py;
280
+ prevPosition[vOffset * 3 + 2] = pz;
281
+
282
+ nextPosition[vOffset * 3] = nx;
283
+ nextPosition[vOffset * 3 + 1] = ny;
284
+ nextPosition[vOffset * 3 + 2] = nz;
301
285
  } else {
302
- // @ts-expect-error TODO(tsd-jsdoc): See https://github.com/CesiumGS/cesium/pull/13302.
303
- Cartesian3.fromArray(cartesianArray, (j - 1) * 3, prevCartesian);
304
- // @ts-expect-error TODO(tsd-jsdoc): See https://github.com/CesiumGS/cesium/pull/13302.
305
- Cartesian3.fromArray(cartesianArray, (j + 1) * 3, nextCartesian);
286
+ // @ts-expect-error https://github.com/CesiumGS/cesium/pull/13302
287
+ Cartesian3.pack(encodedC.high, positionHigh, vOffset * 3);
288
+ // @ts-expect-error https://github.com/CesiumGS/cesium/pull/13302
289
+ Cartesian3.pack(encodedC.low, positionLow, vOffset * 3);
290
+
291
+ // @ts-expect-error https://github.com/CesiumGS/cesium/pull/13302
292
+ Cartesian3.pack(encodedP.high, prevPositionHigh, vOffset * 3);
293
+ // @ts-expect-error https://github.com/CesiumGS/cesium/pull/13302
294
+ Cartesian3.pack(encodedP.low, prevPositionLow, vOffset * 3);
295
+
296
+ // @ts-expect-error https://github.com/CesiumGS/cesium/pull/13302
297
+ Cartesian3.pack(encodedN.high, nextPositionHigh, vOffset * 3);
298
+ // @ts-expect-error https://github.com/CesiumGS/cesium/pull/13302
299
+ Cartesian3.pack(encodedN.low, nextPositionLow, vOffset * 3);
306
300
  }
307
301
 
308
- // For each segment, draw two triangles.
309
- if (!isLastSegment) {
310
- indexArray[iOffset] = vOffset;
311
- indexArray[iOffset + 1] = vOffset + 1;
312
- indexArray[iOffset + 2] = vOffset + 2;
302
+ pickColorArray[vOffset * 4] = Color.floatToByte(pickColor.red);
303
+ pickColorArray[vOffset * 4 + 1] = Color.floatToByte(pickColor.green);
304
+ pickColorArray[vOffset * 4 + 2] = Color.floatToByte(pickColor.blue);
305
+ pickColorArray[vOffset * 4 + 3] = Color.floatToByte(pickColor.alpha);
313
306
 
314
- indexArray[iOffset + 3] = vOffset + 2;
315
- indexArray[iOffset + 4] = vOffset + 1;
316
- indexArray[iOffset + 5] = vOffset + 3;
307
+ showColorWidthAndTexCoordArray[vOffset * 4] = show ? 1 : 0;
308
+ showColorWidthAndTexCoordArray[vOffset * 4 + 1] = encodedColor;
309
+ showColorWidthAndTexCoordArray[vOffset * 4 + 2] = material.width;
310
+ showColorWidthAndTexCoordArray[vOffset * 4 + 3] = j / (jl - 1);
317
311
 
318
- iOffset += 6;
319
- }
312
+ alphaArray[vOffset] = colorAlpha * 255.0;
320
313
 
321
- EncodedCartesian3.fromCartesian(cartesian, cartesianEnc);
322
- EncodedCartesian3.fromCartesian(prevCartesian, prevCartesianEnc);
323
- EncodedCartesian3.fromCartesian(nextCartesian, nextCartesianEnc);
324
-
325
- // TODO(donmccurdy): Diverging from PolylineCollection.js, which writes
326
- // internal vertices to buffer 4x, not 2x. Not sure that's needed?
327
- for (let k = 0; k < 2; k++) {
328
- // Position.
329
- attributeArrays.positionHigh[vOffset * 3] = cartesianEnc.high.x;
330
- attributeArrays.positionHigh[vOffset * 3 + 1] = cartesianEnc.high.y;
331
- attributeArrays.positionHigh[vOffset * 3 + 2] = cartesianEnc.high.z;
332
-
333
- attributeArrays.positionLow[vOffset * 3] = cartesianEnc.low.x;
334
- attributeArrays.positionLow[vOffset * 3 + 1] = cartesianEnc.low.y;
335
- attributeArrays.positionLow[vOffset * 3 + 2] = cartesianEnc.low.z;
336
-
337
- // Previous position.
338
- attributeArrays.prevPositionHigh[vOffset * 3] =
339
- prevCartesianEnc.high.x;
340
- attributeArrays.prevPositionHigh[vOffset * 3 + 1] =
341
- prevCartesianEnc.high.y;
342
- attributeArrays.prevPositionHigh[vOffset * 3 + 2] =
343
- prevCartesianEnc.high.z;
344
-
345
- attributeArrays.prevPositionLow[vOffset * 3] =
346
- prevCartesianEnc.low.x;
347
- attributeArrays.prevPositionLow[vOffset * 3 + 1] =
348
- prevCartesianEnc.low.y;
349
- attributeArrays.prevPositionLow[vOffset * 3 + 2] =
350
- prevCartesianEnc.low.z;
351
-
352
- // Next position.
353
- attributeArrays.nextPositionHigh[vOffset * 3] =
354
- nextCartesianEnc.high.x;
355
- attributeArrays.nextPositionHigh[vOffset * 3 + 1] =
356
- nextCartesianEnc.high.y;
357
- attributeArrays.nextPositionHigh[vOffset * 3 + 2] =
358
- nextCartesianEnc.high.z;
359
-
360
- attributeArrays.nextPositionLow[vOffset * 3] =
361
- nextCartesianEnc.low.x;
362
- attributeArrays.nextPositionLow[vOffset * 3 + 1] =
363
- nextCartesianEnc.low.y;
364
- attributeArrays.nextPositionLow[vOffset * 3 + 2] =
365
- nextCartesianEnc.low.z;
366
-
367
- // Pick ID.
368
- pickColorArray[vOffset * 4] = Color.floatToByte(pickColor.red);
369
- pickColorArray[vOffset * 4 + 1] = Color.floatToByte(
370
- pickColor.green,
371
- );
372
- pickColorArray[vOffset * 4 + 2] = Color.floatToByte(pickColor.blue);
373
- pickColorArray[vOffset * 4 + 3] = Color.floatToByte(
374
- pickColor.alpha,
375
- );
376
-
377
- // Properties.
378
- showColorWidthAndTexCoordArray[vOffset * 4] = show ? 1 : 0;
379
- showColorWidthAndTexCoordArray[vOffset * 4 + 1] = encodedColor;
380
- showColorWidthAndTexCoordArray[vOffset * 4 + 2] = material.width;
381
- showColorWidthAndTexCoordArray[vOffset * 4 + 3] = j / (jl - 1); // texcoord.s
382
-
383
- alphaArray[vOffset] = colorAlpha * 255.0;
384
-
385
- vOffset++;
386
- }
314
+ vOffset++;
387
315
  }
388
316
  }
389
317
 
@@ -1,7 +1,7 @@
1
1
  import decodeGoogleEarthEnterpriseData from "../Core/decodeGoogleEarthEnterpriseData.js";
2
2
  import GoogleEarthEnterpriseTileInformation from "../Core/GoogleEarthEnterpriseTileInformation.js";
3
3
  import RuntimeError from "../Core/RuntimeError.js";
4
- import pako from "pako/lib/inflate.js";
4
+ import { inflate } from "pako/browser/inflate";
5
5
  import createTaskProcessorWorker from "./createTaskProcessorWorker.js";
6
6
 
7
7
  // Datatype sizes
@@ -257,7 +257,7 @@ function uncompressPacket(data) {
257
257
  offset += sizeOfUint32;
258
258
 
259
259
  const compressedPacket = new Uint8Array(data, offset);
260
- const uncompressedPacket = pako.inflate(compressedPacket);
260
+ const uncompressedPacket = inflate(compressedPacket);
261
261
 
262
262
  if (uncompressedPacket.length !== size) {
263
263
  throw new RuntimeError("Size of packet doesn't match header");
@@ -23,6 +23,7 @@ const TILE_AABB_MIN = new Cartesian3(-0.5, -0.5, -0.5);
23
23
  * to convert triangle positions to the tree's local space, and the parent node's triangle indices and positions.
24
24
  *
25
25
  * Returns an four arrays - one for each child node - containing the indices of the triangles that intersect each node.
26
+ * @ignore
26
27
  */
27
28
  function incrementallyBuildTerrainPicker(parameters, transferableObjects) {
28
29
  // Rehydrate worker inputs
@@ -87,6 +88,7 @@ function incrementallyBuildTerrainPicker(parameters, transferableObjects) {
87
88
  * @param {Matrix4} inverseTransform transform from world space to tree local space
88
89
  * @param {Cartesian3[]} trianglePoints array of 3 Cartesian3 points representing the triangle
89
90
  * @returns {AxisAlignedBoundingBox} the axis-aligned bounding box enclosing the triangle in tree local space
91
+ * @ignore
90
92
  */
91
93
  function createAABBFromTriangle(inverseTransform, trianglePoints) {
92
94
  Matrix4.multiplyByPoint(