@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.
- package/Build/Workers/{chunk-EF2QYXGA.js → chunk-2EFYUSUY.js} +14 -14
- package/Build/Workers/{chunk-KFSTQKNM.js → chunk-5LSOO2KD.js} +7 -7
- package/Build/Workers/{chunk-VQYETPWC.js → chunk-6HK6IXK2.js} +4 -4
- package/Build/Workers/{chunk-AYKR4VBR.js → chunk-6YR6JBMY.js} +2 -2
- package/Build/Workers/{chunk-DOBXCNC3.js → chunk-76FDC45O.js} +13 -13
- package/Build/Workers/{chunk-54I6Y66F.js → chunk-7D2HZKH7.js} +6 -6
- package/Build/Workers/{chunk-4MGMYHOO.js → chunk-7KVKHY7O.js} +6 -6
- package/Build/Workers/{chunk-IRBKFCEJ.js → chunk-A3O6EDBK.js} +2 -2
- package/Build/Workers/{chunk-V7VQKN6N.js → chunk-A6X24AZI.js} +5 -5
- package/Build/Workers/{chunk-ZP7JMQV4.js → chunk-AHWAZRBV.js} +6 -2
- package/Build/Workers/{chunk-YLY7NKAB.js → chunk-B4CQSLZJ.js} +4 -4
- package/Build/Workers/{chunk-J6BWOHUF.js → chunk-C7JQVRLM.js} +3 -3
- package/Build/Workers/{chunk-KSSWJIZW.js → chunk-CDJDJ5LK.js} +2 -2
- package/Build/Workers/{chunk-G7PXZRVF.js → chunk-CEEZE3YZ.js} +7 -7
- package/Build/Workers/{chunk-INUEEEQA.js → chunk-CLCTQVVL.js} +8 -8
- package/Build/Workers/{chunk-O3EA5HS7.js → chunk-DBD5WWG2.js} +10 -10
- package/Build/Workers/{chunk-E7VQ76KE.js → chunk-DIGUUD6G.js} +6 -6
- package/Build/Workers/{chunk-424RNO3D.js → chunk-E7NZJOK7.js} +196 -22
- package/Build/Workers/{chunk-ACXQXN46.js → chunk-EHTS2YPT.js} +16 -16
- package/Build/Workers/{chunk-VWV2IJRB.js → chunk-ENNFMWDW.js} +11 -11
- package/Build/Workers/{chunk-FRQZECAO.js → chunk-FCP2QY4G.js} +5 -5
- package/Build/Workers/{chunk-ZZ46LWL6.js → chunk-FDK4K5IA.js} +1 -1
- package/Build/Workers/{chunk-C6KNZ7T4.js → chunk-FGQFQHN5.js} +17 -17
- package/Build/Workers/{chunk-MYP774IS.js → chunk-GSWMAFTE.js} +8 -8
- package/Build/Workers/{chunk-Y5BF6AFU.js → chunk-GXWQZBAI.js} +2 -2
- package/Build/Workers/{chunk-DDWSZVMY.js → chunk-HHV3MCGV.js} +5 -5
- package/Build/Workers/{chunk-52JDLOEM.js → chunk-HS6AD4P2.js} +14 -14
- package/Build/Workers/{chunk-Q3PY526V.js → chunk-IGAZBTFZ.js} +6 -6
- package/Build/Workers/{chunk-EBSIOBXY.js → chunk-ILME5BXA.js} +8 -8
- package/Build/Workers/{chunk-C6J67V5A.js → chunk-JKXV6PG5.js} +1 -1
- package/Build/Workers/{chunk-SMQZZOW6.js → chunk-JW6OZT4R.js} +10 -10
- package/Build/Workers/{chunk-F6QDY6HU.js → chunk-KGXSYGBG.js} +13 -13
- package/Build/Workers/{chunk-UOOIQ3KX.js → chunk-LD64RPYV.js} +12 -12
- package/Build/Workers/{chunk-CFQP6LYM.js → chunk-LGNDTZVX.js} +4 -4
- package/Build/Workers/{chunk-U3ZA64U7.js → chunk-LNSQVXFH.js} +2 -2
- package/Build/Workers/{chunk-TKKIREQ6.js → chunk-N7CCOFLX.js} +1 -1
- package/Build/Workers/{chunk-UA25D5MX.js → chunk-NIWITKQK.js} +10 -10
- package/Build/Workers/{chunk-KKOSKAZB.js → chunk-OBEU25PI.js} +17 -17
- package/Build/Workers/{chunk-M3B5JKSM.js → chunk-QVLAFFJY.js} +1 -1
- package/Build/Workers/{chunk-6YEE6JDR.js → chunk-R4FPNAZ2.js} +6 -6
- package/Build/Workers/{chunk-7J2HKPRH.js → chunk-RG4F5R57.js} +9 -9
- package/Build/Workers/{chunk-CXOYE2WM.js → chunk-SF6K72D7.js} +5 -5
- package/Build/Workers/{chunk-CZEYZU4N.js → chunk-SGRGNDOD.js} +10 -10
- package/Build/Workers/{chunk-DBOEKL43.js → chunk-SM2CDCYF.js} +7 -7
- package/Build/Workers/{chunk-Y57HREW5.js → chunk-SS5ABQGY.js} +4 -4
- package/Build/Workers/{chunk-QRWGUWI6.js → chunk-T5QBPLE3.js} +11 -11
- package/Build/Workers/{chunk-ZK3CF7ZD.js → chunk-TVZD72WJ.js} +12 -12
- package/Build/Workers/{chunk-IYOUHCZB.js → chunk-UEY73NRN.js} +1 -1
- package/Build/Workers/{chunk-7WM2PX4V.js → chunk-UVO6COT2.js} +5 -5
- package/Build/Workers/{chunk-P3CK7MCY.js → chunk-VAL7DYNR.js} +4 -4
- package/Build/Workers/{chunk-EPYXRCDB.js → chunk-WBSY7HDY.js} +12 -12
- package/Build/Workers/{chunk-4S7IE3LB.js → chunk-XDWCTQCZ.js} +2 -2
- package/Build/Workers/{chunk-QN67VG36.js → chunk-XLXSDIP5.js} +6 -6
- package/Build/Workers/{chunk-S4MCOY6I.js → chunk-XQ3SKCMM.js} +5 -5
- package/Build/Workers/{chunk-XZMBNNDX.js → chunk-YKU2Q3A2.js} +9 -9
- package/Build/Workers/{chunk-3VFEWOBI.js → chunk-ZMBHFYOX.js} +7 -7
- package/Build/Workers/{chunk-MPZHGZU6.js → chunk-ZSGUV73H.js} +4 -4
- package/Build/Workers/combineGeometry.js +24 -24
- package/Build/Workers/createBoxGeometry.js +18 -18
- package/Build/Workers/createBoxOutlineGeometry.js +16 -16
- package/Build/Workers/createCircleGeometry.js +26 -26
- package/Build/Workers/createCircleOutlineGeometry.js +19 -19
- package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
- package/Build/Workers/createCorridorGeometry.js +29 -29
- package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
- package/Build/Workers/createCylinderGeometry.js +20 -20
- package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
- package/Build/Workers/createEllipseGeometry.js +26 -26
- package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
- package/Build/Workers/createEllipsoidGeometry.js +19 -19
- package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
- package/Build/Workers/createFrustumGeometry.js +18 -18
- package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
- package/Build/Workers/createGeometry.js +24 -24
- package/Build/Workers/createGroundPolylineGeometry.js +22 -22
- package/Build/Workers/createPlaneGeometry.js +16 -16
- package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
- package/Build/Workers/createPolygonGeometry.js +32 -32
- package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
- package/Build/Workers/createPolylineGeometry.js +25 -25
- package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
- package/Build/Workers/createRectangleGeometry.js +27 -27
- package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
- package/Build/Workers/createSimplePolylineGeometry.js +23 -23
- package/Build/Workers/createSphereGeometry.js +19 -19
- package/Build/Workers/createSphereOutlineGeometry.js +18 -18
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
- package/Build/Workers/createVectorTileGeometries.js +24 -24
- package/Build/Workers/createVectorTilePoints.js +13 -13
- package/Build/Workers/createVectorTilePolygons.js +22 -22
- package/Build/Workers/createVectorTilePolylines.js +14 -14
- package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
- package/Build/Workers/createVerticesFromHeightmap.js +22 -22
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
- package/Build/Workers/createWallGeometry.js +24 -24
- package/Build/Workers/createWallOutlineGeometry.js +23 -23
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +987 -2320
- package/Build/Workers/decodeI3S.js +10 -10
- package/Build/Workers/gaussianSplatSorter.js +4 -4
- package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
- package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
- package/Build/Workers/transcodeKTX2.js +6 -6
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Source/Core/BoundingRectangle.js +6 -8
- package/Source/Core/Color.js +1 -0
- package/Source/Core/InterpolationAlgorithm.js +57 -50
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/TerrainMesh.js +3 -3
- package/Source/Core/TerrainPicker.js +1 -0
- package/Source/Core/writeTextToCanvas.js +1 -0
- package/Source/DataSources/CzmlDataSource.js +12 -0
- package/Source/DataSources/KmlDataSource.js +528 -555
- package/Source/DataSources/PathGraphics.js +8 -1
- package/Source/DataSources/PathMode.js +27 -0
- package/Source/DataSources/PathVisualizer.js +298 -1
- package/Source/Renderer/Texture.js +1 -1
- package/Source/Renderer/VertexArray.js +1 -0
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/BillboardTexture.js +5 -3
- package/Source/Scene/Cesium3DTileOptimizations.js +4 -6
- package/Source/Scene/ClippingPlaneCollection.js +2 -2
- package/Source/Scene/ClippingPolygon.js +2 -0
- package/Source/Scene/ClippingPolygonCollection.js +2 -2
- package/Source/Scene/DerivedCommand.js +4 -0
- package/Source/Scene/Expression.js +6 -8
- package/Source/Scene/GlobeSurfaceShaderSet.js +501 -409
- package/Source/Scene/GlobeSurfaceTile.js +540 -401
- package/Source/Scene/GlobeSurfaceTileProvider.js +1259 -1146
- package/Source/Scene/GltfBufferViewLoader.js +3 -3
- package/Source/Scene/GltfLoader.js +1 -0
- package/Source/Scene/GltfLoaderUtil.js +20 -4
- package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +10 -0
- package/Source/Scene/GltfPipeline/removeUnusedElements.js +21 -11
- package/Source/Scene/ImageryLayer.js +2 -2
- package/Source/Scene/ImageryLayerCollection.js +2 -2
- package/Source/Scene/Material.js +1 -0
- package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +4 -0
- package/Source/Scene/Model/Model.js +3 -0
- package/Source/Scene/Model/ModelUtility.js +1 -0
- package/Source/Scene/Picking.js +5 -0
- package/Source/Scene/PntsParser.js +1 -0
- package/Source/Scene/QuadtreePrimitive.js +3 -2
- package/Source/Scene/ResourceCacheKey.js +5 -5
- package/Source/Scene/Scene.js +1 -0
- package/Source/Scene/findMeshoptExtension.js +23 -0
- package/Source/Scene/renderBufferPointCollection.js +13 -8
- package/Source/Scene/renderBufferPolygonCollection.js +9 -13
- package/Source/Scene/renderBufferPolylineCollection.js +120 -192
- package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +2 -2
- package/Source/Workers/incrementallyBuildTerrainPicker.js +2 -0
- package/index.d.ts +59 -254
- package/index.js +155 -153
- 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
|
|
88
|
-
const
|
|
89
|
-
const
|
|
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
|
-
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
|
|
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
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
const
|
|
199
|
-
const
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
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
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
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
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
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
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
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
|
|
303
|
-
Cartesian3.
|
|
304
|
-
// @ts-expect-error
|
|
305
|
-
Cartesian3.
|
|
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
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
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
|
-
|
|
315
|
-
|
|
316
|
-
|
|
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
|
-
|
|
319
|
-
}
|
|
312
|
+
alphaArray[vOffset] = colorAlpha * 255.0;
|
|
320
313
|
|
|
321
|
-
|
|
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
|
|
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 =
|
|
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(
|