@cesium/engine 3.0.2 → 4.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.
- package/Build/ThirdParty/Workers/pako_deflate.min.js +605 -0
- package/Build/ThirdParty/Workers/pako_inflate.min.js +800 -0
- package/Build/ThirdParty/Workers/z-worker-pako.js +502 -0
- package/Build/Workers/chunk-27R2KRIK.js +634 -0
- package/Build/Workers/chunk-2C65EKYA.js +55 -0
- package/Build/Workers/chunk-2NLMZNJI.js +138 -0
- package/Build/Workers/chunk-4V6RCTVH.js +289 -0
- package/Build/Workers/chunk-4VWUFKYW.js +368 -0
- package/Build/Workers/chunk-527JG4D7.js +629 -0
- package/Build/Workers/chunk-5U4UHRZ2.js +8644 -0
- package/Build/Workers/chunk-7CZEWQWE.js +353 -0
- package/Build/Workers/chunk-7IMAWM6A.js +842 -0
- package/Build/Workers/{package.js → chunk-A6EA6KIE.js} +13 -2
- package/Build/Workers/chunk-AXGQUPXA.js +1075 -0
- package/Build/Workers/chunk-BT6YIL2N.js +39 -0
- package/Build/Workers/chunk-C6MRR5YL.js +476 -0
- package/Build/Workers/chunk-DJUTBX6A.js +1860 -0
- package/Build/Workers/chunk-EQ6ZAP37.js +218 -0
- package/Build/Workers/chunk-F7P2HCYZ.js +73 -0
- package/Build/Workers/chunk-FE2XG3SS.js +73 -0
- package/Build/Workers/chunk-FKHRSGKP.js +781 -0
- package/Build/Workers/chunk-FVDTKX3F.js +58 -0
- package/Build/Workers/chunk-FYHCAKU6.js +684 -0
- package/Build/Workers/chunk-G3MOT7BZ.js +157 -0
- package/Build/Workers/chunk-H52L6U76.js +421 -0
- package/Build/Workers/chunk-H6MBQ4W4.js +305 -0
- package/Build/Workers/chunk-HCZR75II.js +2716 -0
- package/Build/Workers/chunk-I5MQWHBR.js +102 -0
- package/Build/Workers/chunk-KAFF2QX3.js +258 -0
- package/Build/Workers/chunk-LGSGX2RH.js +757 -0
- package/Build/Workers/chunk-LQRFWCNX.js +124 -0
- package/Build/Workers/chunk-N5MMDSD2.js +44 -0
- package/Build/Workers/chunk-NRETMGYL.js +390 -0
- package/Build/Workers/chunk-P4M4QUNQ.js +196 -0
- package/Build/Workers/chunk-P7PWX5HR.js +430 -0
- package/Build/Workers/chunk-PGB3EFR7.js +171 -0
- package/Build/Workers/chunk-PW5CA4MJ.js +3273 -0
- package/Build/Workers/chunk-PWDYKCNC.js +501 -0
- package/Build/Workers/chunk-QIS3NB7U.js +1258 -0
- package/Build/Workers/chunk-QVJ6IRKV.js +77 -0
- package/Build/Workers/chunk-RDCDRNJ7.js +117 -0
- package/Build/Workers/chunk-RDM3BKNC.js +1009 -0
- package/Build/Workers/chunk-RRUPTJ6P.js +452 -0
- package/Build/Workers/chunk-SGRWJKNO.js +400 -0
- package/Build/Workers/chunk-TF5D2H7B.js +138 -0
- package/Build/Workers/chunk-TVYIHH4V.js +513 -0
- package/Build/Workers/chunk-U5LKG6LX.js +101 -0
- package/Build/Workers/chunk-UGZGTV5K.js +302 -0
- package/Build/Workers/chunk-UN7AK64D.js +163 -0
- package/Build/Workers/chunk-V2LKNJGT.js +59 -0
- package/Build/Workers/chunk-VSCXSFHE.js +1477 -0
- package/Build/Workers/chunk-XJCTFTBM.js +2041 -0
- package/Build/Workers/chunk-XZVQMPWG.js +100 -0
- package/Build/Workers/chunk-YLAFWVOW.js +834 -0
- package/Build/Workers/chunk-YLS3FX3U.js +236 -0
- package/Build/Workers/chunk-YMJPANZZ.js +693 -0
- package/Build/Workers/combineGeometry.js +65 -15
- package/Build/Workers/createBoxGeometry.js +55 -10
- package/Build/Workers/createBoxOutlineGeometry.js +231 -310
- package/Build/Workers/createCircleGeometry.js +185 -202
- package/Build/Workers/createCircleOutlineGeometry.js +141 -155
- package/Build/Workers/createCoplanarPolygonGeometry.js +477 -557
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +218 -230
- package/Build/Workers/createCorridorGeometry.js +1162 -1307
- package/Build/Workers/createCorridorOutlineGeometry.js +533 -569
- package/Build/Workers/createCylinderGeometry.js +57 -10
- package/Build/Workers/createCylinderOutlineGeometry.js +224 -258
- package/Build/Workers/createEllipseGeometry.js +68 -12
- package/Build/Workers/createEllipseOutlineGeometry.js +61 -12
- package/Build/Workers/createEllipsoidGeometry.js +56 -10
- package/Build/Workers/createEllipsoidOutlineGeometry.js +58 -13
- package/Build/Workers/createFrustumGeometry.js +55 -10
- package/Build/Workers/createFrustumOutlineGeometry.js +226 -243
- package/Build/Workers/createGeometry.js +143 -48
- package/Build/Workers/createGroundPolylineGeometry.js +1484 -2012
- package/Build/Workers/createPlaneGeometry.js +216 -243
- package/Build/Workers/createPlaneOutlineGeometry.js +121 -113
- package/Build/Workers/createPolygonGeometry.js +1041 -1327
- package/Build/Workers/createPolygonOutlineGeometry.js +516 -657
- package/Build/Workers/createPolylineGeometry.js +471 -547
- package/Build/Workers/createPolylineVolumeGeometry.js +352 -384
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +271 -295
- package/Build/Workers/createRectangleGeometry.js +1128 -1331
- package/Build/Workers/createRectangleOutlineGeometry.js +445 -500
- package/Build/Workers/createSimplePolylineGeometry.js +381 -440
- package/Build/Workers/createSphereGeometry.js +112 -118
- package/Build/Workers/createSphereOutlineGeometry.js +112 -121
- package/Build/Workers/createTaskProcessorWorker.js +32 -127
- package/Build/Workers/createVectorTileClampedPolylines.js +462 -505
- package/Build/Workers/createVectorTileGeometries.js +377 -436
- package/Build/Workers/createVectorTilePoints.js +110 -77
- package/Build/Workers/createVectorTilePolygons.js +369 -391
- package/Build/Workers/createVectorTilePolylines.js +252 -244
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +543 -615
- package/Build/Workers/createVerticesFromHeightmap.js +2244 -2677
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +682 -904
- package/Build/Workers/createWallGeometry.js +459 -593
- package/Build/Workers/createWallOutlineGeometry.js +324 -419
- package/Build/Workers/decodeDraco.js +327 -347
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +2530 -3567
- package/Build/Workers/decodeI3S.js +765 -970
- package/Build/Workers/transcodeKTX2.js +3351 -1473
- package/Build/Workers/transferTypedArrayTest.js +3 -4
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +748 -953
- package/LICENSE.md +0 -12
- package/Source/Core/CesiumTerrainProvider.js +1 -2
- package/Source/Core/FeatureDetection.js +9 -0
- package/Source/Core/GoogleMaps.js +1 -1
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/KTX2Transcoder.js +7 -3
- package/Source/Core/TaskProcessor.js +150 -146
- package/Source/Core/Transforms.js +2 -2
- package/Source/Core/buildModuleUrl.js +6 -5
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/DracoLoader.js +26 -3
- package/Source/Scene/I3SDataProvider.js +0 -27
- package/Source/Scene/I3SDecoder.js +127 -0
- package/Source/Scene/I3SNode.js +32 -110
- package/Source/Scene/Implicit3DTileContent.js +13 -0
- package/Source/Scene/ImplicitTileset.js +5 -0
- package/Source/Scene/Model/I3dmLoader.js +5 -1
- package/Source/Scene/Model/Model.js +4 -1
- package/Source/Scene/OpenStreetMapImageryProvider.js +4 -1
- package/Source/Scene/SingleTileImageryProvider.js +4 -2
- package/Source/ThirdParty/Workers/basis_transcoder.js +1 -1
- package/Source/{WorkersES6 → Workers}/createGeometry.js +11 -12
- package/Source/{WorkersES6 → Workers}/createTaskProcessorWorker.js +43 -59
- package/Source/{WorkersES6 → Workers}/decodeDraco.js +19 -25
- package/Source/{WorkersES6 → Workers}/decodeI3S.js +18 -32
- package/Source/{WorkersES6 → Workers}/transcodeKTX2.js +19 -26
- package/Source/Workers/transferTypedArrayTest.js +0 -6
- package/index.d.ts +16 -7
- package/index.js +252 -251
- package/package.json +2 -1
- package/Build/Workers/ArcType-2d9abbbc.js +0 -37
- package/Build/Workers/AttributeCompression-f9f6c717.js +0 -716
- package/Build/Workers/AxisAlignedBoundingBox-a03420b1.js +0 -258
- package/Build/Workers/BoundingRectangle-32fa8a4a.js +0 -369
- package/Build/Workers/BoxGeometry-cd550612.js +0 -884
- package/Build/Workers/Check-6ede7e26.js +0 -290
- package/Build/Workers/Color-571a6085.js +0 -2262
- package/Build/Workers/ComponentDatatype-cf1fa08e.js +0 -341
- package/Build/Workers/CoplanarPolygonGeometryLibrary-488b1a9f.js +0 -132
- package/Build/Workers/CorridorGeometryLibrary-fc4ff147.js +0 -498
- package/Build/Workers/CylinderGeometry-bc26926d.js +0 -467
- package/Build/Workers/CylinderGeometryLibrary-7bf291b4.js +0 -63
- package/Build/Workers/EllipseGeometry-89533a10.js +0 -1304
- package/Build/Workers/EllipseGeometryLibrary-b0d7df17.js +0 -366
- package/Build/Workers/EllipseOutlineGeometry-63ff7a87.js +0 -443
- package/Build/Workers/EllipsoidGeodesic-5b3623dc.js +0 -520
- package/Build/Workers/EllipsoidGeometry-07e99d2d.js +0 -637
- package/Build/Workers/EllipsoidOutlineGeometry-ba5c7ee2.js +0 -454
- package/Build/Workers/EllipsoidRhumbLine-ef872433.js +0 -741
- package/Build/Workers/EllipsoidTangentPlane-65d41b3e.js +0 -373
- package/Build/Workers/EncodedCartesian3-57415c8a.js +0 -171
- package/Build/Workers/FrustumGeometry-4a7589ed.js +0 -2540
- package/Build/Workers/GeometryAttribute-a5b6275b.js +0 -619
- package/Build/Workers/GeometryAttributes-ad136444.js +0 -91
- package/Build/Workers/GeometryInstance-34d9e21e.js +0 -121
- package/Build/Workers/GeometryOffsetAttribute-9ad0019c.js +0 -16
- package/Build/Workers/GeometryPipeline-fa9e6ffc.js +0 -3690
- package/Build/Workers/IndexDatatype-2643aa47.js +0 -200
- package/Build/Workers/IntersectionTests-feace3da.js +0 -1836
- package/Build/Workers/Math-0a2ac845.js +0 -1340
- package/Build/Workers/Matrix2-e1298525.js +0 -7086
- package/Build/Workers/Matrix3-41c58dde.js +0 -4283
- package/Build/Workers/OrientedBoundingBox-6b94d955.js +0 -1259
- package/Build/Workers/Plane-4c3d403b.js +0 -309
- package/Build/Workers/PolygonGeometryLibrary-4ffc457d.js +0 -1074
- package/Build/Workers/PolygonPipeline-d5e66350.js +0 -1344
- package/Build/Workers/PolylinePipeline-83410f0c.js +0 -573
- package/Build/Workers/PolylineVolumeGeometryLibrary-290e7aec.js +0 -781
- package/Build/Workers/PrimitivePipeline-6081d138.js +0 -966
- package/Build/Workers/RectangleGeometryLibrary-986710d8.js +0 -280
- package/Build/Workers/RuntimeError-ef395448.js +0 -68
- package/Build/Workers/TerrainEncoding-528e1d68.js +0 -1227
- package/Build/Workers/Transforms-b527bb09.js +0 -14714
- package/Build/Workers/VertexFormat-030f11ff.js +0 -312
- package/Build/Workers/WallGeometryLibrary-faf583f8.js +0 -211
- package/Build/Workers/WebGLConstants-0b1ce7ba.js +0 -620
- package/Build/Workers/WebMercatorProjection-13ed1a6e.js +0 -151
- package/Build/Workers/arrayRemoveDuplicates-d2061e85.js +0 -129
- package/Build/Workers/cesiumWorkerBootstrapper.js +0 -1363
- package/Build/Workers/combine-d9581036.js +0 -82
- package/Build/Workers/defaultValue-fe22d8c0.js +0 -51
- package/Source/ThirdParty/Workers/draco_decoder_nodejs.js +0 -117
- package/Source/Workers/cesiumWorkerBootstrapper.js +0 -2290
- package/Source/Workers/package.json +0 -1
- /package/Source/{WorkersES6 → Workers}/combineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createBoxGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createBoxOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCircleGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCircleOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCoplanarPolygonGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCoplanarPolygonOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCorridorGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCorridorOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCylinderGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createCylinderOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createEllipseGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createEllipseOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createEllipsoidGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createEllipsoidOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createFrustumGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createFrustumOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createGroundPolylineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createPlaneGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createPlaneOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createPolygonGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createPolygonOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createPolylineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createPolylineVolumeGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createPolylineVolumeOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createRectangleGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createRectangleOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createSimplePolylineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createSphereGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createSphereOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVectorTileClampedPolylines.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVectorTileGeometries.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVectorTilePoints.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVectorTilePolygons.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVectorTilePolylines.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVerticesFromGoogleEarthEnterpriseBuffer.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVerticesFromHeightmap.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createVerticesFromQuantizedTerrainMesh.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createWallGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/createWallOutlineGeometry.js +0 -0
- /package/Source/{WorkersES6 → Workers}/decodeGoogleEarthEnterprisePacket.js +0 -0
- /package/Source/{WorkersES6 → Workers}/upsampleQuantizedTerrainMesh.js +0 -0
|
@@ -1,406 +1,384 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Cesium - https://github.com/CesiumGS/cesium
|
|
4
|
+
* Version 1.109
|
|
5
|
+
*
|
|
6
|
+
* Copyright 2011-2022 Cesium Contributors
|
|
7
|
+
*
|
|
8
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
* you may not use this file except in compliance with the License.
|
|
10
|
+
* You may obtain a copy of the License at
|
|
11
|
+
*
|
|
12
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
*
|
|
14
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
15
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
16
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17
|
+
* See the License for the specific language governing permissions and
|
|
18
|
+
* limitations under the License.
|
|
19
|
+
*
|
|
20
|
+
* Columbus View (Pat. Pend.)
|
|
21
|
+
*
|
|
22
|
+
* Portions licensed separately.
|
|
23
|
+
* See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
import {
|
|
27
|
+
Color_default
|
|
28
|
+
} from "./chunk-27R2KRIK.js";
|
|
29
|
+
import {
|
|
30
|
+
createTaskProcessorWorker_default
|
|
31
|
+
} from "./chunk-U5LKG6LX.js";
|
|
32
|
+
import {
|
|
33
|
+
OrientedBoundingBox_default
|
|
34
|
+
} from "./chunk-YLAFWVOW.js";
|
|
35
|
+
import {
|
|
36
|
+
AttributeCompression_default
|
|
37
|
+
} from "./chunk-P7PWX5HR.js";
|
|
38
|
+
import "./chunk-4V6RCTVH.js";
|
|
39
|
+
import "./chunk-G3MOT7BZ.js";
|
|
40
|
+
import "./chunk-QIS3NB7U.js";
|
|
41
|
+
import "./chunk-PGB3EFR7.js";
|
|
42
|
+
import {
|
|
43
|
+
IndexDatatype_default
|
|
44
|
+
} from "./chunk-TF5D2H7B.js";
|
|
45
|
+
import "./chunk-5U4UHRZ2.js";
|
|
46
|
+
import "./chunk-FE2XG3SS.js";
|
|
47
|
+
import {
|
|
48
|
+
Rectangle_default
|
|
49
|
+
} from "./chunk-PW5CA4MJ.js";
|
|
50
|
+
import "./chunk-KAFF2QX3.js";
|
|
51
|
+
import {
|
|
52
|
+
Cartesian3_default,
|
|
53
|
+
Cartographic_default,
|
|
54
|
+
Ellipsoid_default
|
|
55
|
+
} from "./chunk-XJCTFTBM.js";
|
|
56
|
+
import {
|
|
57
|
+
Math_default
|
|
58
|
+
} from "./chunk-PWDYKCNC.js";
|
|
59
|
+
import "./chunk-527JG4D7.js";
|
|
60
|
+
import "./chunk-FVDTKX3F.js";
|
|
61
|
+
import "./chunk-BT6YIL2N.js";
|
|
62
|
+
import "./chunk-UN7AK64D.js";
|
|
63
|
+
import {
|
|
64
|
+
defined_default
|
|
65
|
+
} from "./chunk-QVJ6IRKV.js";
|
|
66
|
+
|
|
67
|
+
// packages/engine/Source/Workers/createVectorTilePolygons.js
|
|
68
|
+
var scratchCenter = new Cartesian3_default();
|
|
69
|
+
var scratchEllipsoid = new Ellipsoid_default();
|
|
70
|
+
var scratchRectangle = new Rectangle_default();
|
|
71
|
+
var scratchScalars = {
|
|
72
|
+
min: void 0,
|
|
73
|
+
max: void 0,
|
|
74
|
+
indexBytesPerElement: void 0
|
|
75
|
+
};
|
|
76
|
+
function unpackBuffer(buffer) {
|
|
77
|
+
const packedBuffer = new Float64Array(buffer);
|
|
78
|
+
let offset = 0;
|
|
79
|
+
scratchScalars.indexBytesPerElement = packedBuffer[offset++];
|
|
80
|
+
scratchScalars.min = packedBuffer[offset++];
|
|
81
|
+
scratchScalars.max = packedBuffer[offset++];
|
|
82
|
+
Cartesian3_default.unpack(packedBuffer, offset, scratchCenter);
|
|
83
|
+
offset += Cartesian3_default.packedLength;
|
|
84
|
+
Ellipsoid_default.unpack(packedBuffer, offset, scratchEllipsoid);
|
|
85
|
+
offset += Ellipsoid_default.packedLength;
|
|
86
|
+
Rectangle_default.unpack(packedBuffer, offset, scratchRectangle);
|
|
87
|
+
}
|
|
88
|
+
function packedBatchedIndicesLength(batchedIndices) {
|
|
89
|
+
const length = batchedIndices.length;
|
|
90
|
+
let count = 0;
|
|
91
|
+
for (let i = 0; i < length; ++i) {
|
|
92
|
+
count += Color_default.packedLength + 3 + batchedIndices[i].batchIds.length;
|
|
28
93
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
94
|
+
return count;
|
|
95
|
+
}
|
|
96
|
+
function packBuffer(indexDatatype, boundingVolumes, batchedIndices) {
|
|
97
|
+
const numBVs = boundingVolumes.length;
|
|
98
|
+
const length = 1 + 1 + numBVs * OrientedBoundingBox_default.packedLength + 1 + packedBatchedIndicesLength(batchedIndices);
|
|
99
|
+
const packedBuffer = new Float64Array(length);
|
|
100
|
+
let offset = 0;
|
|
101
|
+
packedBuffer[offset++] = indexDatatype;
|
|
102
|
+
packedBuffer[offset++] = numBVs;
|
|
103
|
+
for (let i = 0; i < numBVs; ++i) {
|
|
104
|
+
OrientedBoundingBox_default.pack(boundingVolumes[i], packedBuffer, offset);
|
|
105
|
+
offset += OrientedBoundingBox_default.packedLength;
|
|
106
|
+
}
|
|
107
|
+
const indicesLength = batchedIndices.length;
|
|
108
|
+
packedBuffer[offset++] = indicesLength;
|
|
109
|
+
for (let j = 0; j < indicesLength; ++j) {
|
|
110
|
+
const batchedIndex = batchedIndices[j];
|
|
111
|
+
Color_default.pack(batchedIndex.color, packedBuffer, offset);
|
|
112
|
+
offset += Color_default.packedLength;
|
|
113
|
+
packedBuffer[offset++] = batchedIndex.offset;
|
|
114
|
+
packedBuffer[offset++] = batchedIndex.count;
|
|
115
|
+
const batchIds = batchedIndex.batchIds;
|
|
116
|
+
const batchIdsLength = batchIds.length;
|
|
117
|
+
packedBuffer[offset++] = batchIdsLength;
|
|
118
|
+
for (let k = 0; k < batchIdsLength; ++k) {
|
|
119
|
+
packedBuffer[offset++] = batchIds[k];
|
|
35
120
|
}
|
|
36
|
-
return count;
|
|
37
121
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
122
|
+
return packedBuffer;
|
|
123
|
+
}
|
|
124
|
+
var maxShort = 32767;
|
|
125
|
+
var scratchEncodedPosition = new Cartesian3_default();
|
|
126
|
+
var scratchNormal = new Cartesian3_default();
|
|
127
|
+
var scratchScaledNormal = new Cartesian3_default();
|
|
128
|
+
var scratchMinHeightPosition = new Cartesian3_default();
|
|
129
|
+
var scratchMaxHeightPosition = new Cartesian3_default();
|
|
130
|
+
var scratchBVCartographic = new Cartographic_default();
|
|
131
|
+
var scratchBVRectangle = new Rectangle_default();
|
|
132
|
+
function createVectorTilePolygons(parameters, transferableObjects) {
|
|
133
|
+
unpackBuffer(parameters.packedBuffer);
|
|
134
|
+
let indices;
|
|
135
|
+
const indexBytesPerElement = scratchScalars.indexBytesPerElement;
|
|
136
|
+
if (indexBytesPerElement === 2) {
|
|
137
|
+
indices = new Uint16Array(parameters.indices);
|
|
138
|
+
} else {
|
|
139
|
+
indices = new Uint32Array(parameters.indices);
|
|
140
|
+
}
|
|
141
|
+
const positions = new Uint16Array(parameters.positions);
|
|
142
|
+
const counts = new Uint32Array(parameters.counts);
|
|
143
|
+
const indexCounts = new Uint32Array(parameters.indexCounts);
|
|
144
|
+
const batchIds = new Uint32Array(parameters.batchIds);
|
|
145
|
+
const batchTableColors = new Uint32Array(parameters.batchTableColors);
|
|
146
|
+
const boundingVolumes = new Array(counts.length);
|
|
147
|
+
const center = scratchCenter;
|
|
148
|
+
const ellipsoid = scratchEllipsoid;
|
|
149
|
+
let rectangle = scratchRectangle;
|
|
150
|
+
const minHeight = scratchScalars.min;
|
|
151
|
+
const maxHeight = scratchScalars.max;
|
|
152
|
+
let minimumHeights = parameters.minimumHeights;
|
|
153
|
+
let maximumHeights = parameters.maximumHeights;
|
|
154
|
+
if (defined_default(minimumHeights) && defined_default(maximumHeights)) {
|
|
155
|
+
minimumHeights = new Float32Array(minimumHeights);
|
|
156
|
+
maximumHeights = new Float32Array(maximumHeights);
|
|
157
|
+
}
|
|
158
|
+
let i;
|
|
159
|
+
let j;
|
|
160
|
+
let rgba;
|
|
161
|
+
const positionsLength = positions.length / 2;
|
|
162
|
+
const uBuffer = positions.subarray(0, positionsLength);
|
|
163
|
+
const vBuffer = positions.subarray(positionsLength, 2 * positionsLength);
|
|
164
|
+
AttributeCompression_default.zigZagDeltaDecode(uBuffer, vBuffer);
|
|
165
|
+
const decodedPositions = new Float64Array(positionsLength * 3);
|
|
166
|
+
for (i = 0; i < positionsLength; ++i) {
|
|
167
|
+
const u = uBuffer[i];
|
|
168
|
+
const v = vBuffer[i];
|
|
169
|
+
const x = Math_default.lerp(rectangle.west, rectangle.east, u / maxShort);
|
|
170
|
+
const y = Math_default.lerp(rectangle.south, rectangle.north, v / maxShort);
|
|
171
|
+
const cart = Cartographic_default.fromRadians(x, y, 0, scratchBVCartographic);
|
|
172
|
+
const decodedPosition = ellipsoid.cartographicToCartesian(
|
|
173
|
+
cart,
|
|
174
|
+
scratchEncodedPosition
|
|
175
|
+
);
|
|
176
|
+
Cartesian3_default.pack(decodedPosition, decodedPositions, i * 3);
|
|
177
|
+
}
|
|
178
|
+
const countsLength = counts.length;
|
|
179
|
+
const offsets = new Array(countsLength);
|
|
180
|
+
const indexOffsets = new Array(countsLength);
|
|
181
|
+
let currentOffset = 0;
|
|
182
|
+
let currentIndexOffset = 0;
|
|
183
|
+
for (i = 0; i < countsLength; ++i) {
|
|
184
|
+
offsets[i] = currentOffset;
|
|
185
|
+
indexOffsets[i] = currentIndexOffset;
|
|
186
|
+
currentOffset += counts[i];
|
|
187
|
+
currentIndexOffset += indexCounts[i];
|
|
188
|
+
}
|
|
189
|
+
const batchedPositions = new Float32Array(positionsLength * 3 * 2);
|
|
190
|
+
const batchedIds = new Uint16Array(positionsLength * 2);
|
|
191
|
+
const batchedIndexOffsets = new Uint32Array(indexOffsets.length);
|
|
192
|
+
const batchedIndexCounts = new Uint32Array(indexCounts.length);
|
|
193
|
+
let batchedIndices = [];
|
|
194
|
+
const colorToBuffers = {};
|
|
195
|
+
for (i = 0; i < countsLength; ++i) {
|
|
196
|
+
rgba = batchTableColors[i];
|
|
197
|
+
if (!defined_default(colorToBuffers[rgba])) {
|
|
198
|
+
colorToBuffers[rgba] = {
|
|
199
|
+
positionLength: counts[i],
|
|
200
|
+
indexLength: indexCounts[i],
|
|
201
|
+
offset: 0,
|
|
202
|
+
indexOffset: 0,
|
|
203
|
+
batchIds: [i]
|
|
204
|
+
};
|
|
205
|
+
} else {
|
|
206
|
+
colorToBuffers[rgba].positionLength += counts[i];
|
|
207
|
+
colorToBuffers[rgba].indexLength += indexCounts[i];
|
|
208
|
+
colorToBuffers[rgba].batchIds.push(i);
|
|
57
209
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const batchIdsLength = batchIds.length;
|
|
73
|
-
packedBuffer[offset++] = batchIdsLength;
|
|
74
|
-
|
|
75
|
-
for (let k = 0; k < batchIdsLength; ++k) {
|
|
76
|
-
packedBuffer[offset++] = batchIds[k];
|
|
77
|
-
}
|
|
210
|
+
}
|
|
211
|
+
let buffer;
|
|
212
|
+
let byColorPositionOffset = 0;
|
|
213
|
+
let byColorIndexOffset = 0;
|
|
214
|
+
for (rgba in colorToBuffers) {
|
|
215
|
+
if (colorToBuffers.hasOwnProperty(rgba)) {
|
|
216
|
+
buffer = colorToBuffers[rgba];
|
|
217
|
+
buffer.offset = byColorPositionOffset;
|
|
218
|
+
buffer.indexOffset = byColorIndexOffset;
|
|
219
|
+
const positionLength = buffer.positionLength * 2;
|
|
220
|
+
const indexLength = buffer.indexLength * 2 + buffer.positionLength * 6;
|
|
221
|
+
byColorPositionOffset += positionLength;
|
|
222
|
+
byColorIndexOffset += indexLength;
|
|
223
|
+
buffer.indexLength = indexLength;
|
|
78
224
|
}
|
|
79
|
-
|
|
80
|
-
return packedBuffer;
|
|
81
225
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
function createVectorTilePolygons(parameters, transferableObjects) {
|
|
94
|
-
unpackBuffer(parameters.packedBuffer);
|
|
95
|
-
|
|
96
|
-
let indices;
|
|
97
|
-
const indexBytesPerElement = scratchScalars.indexBytesPerElement;
|
|
98
|
-
if (indexBytesPerElement === 2) {
|
|
99
|
-
indices = new Uint16Array(parameters.indices);
|
|
100
|
-
} else {
|
|
101
|
-
indices = new Uint32Array(parameters.indices);
|
|
226
|
+
const batchedDrawCalls = [];
|
|
227
|
+
for (rgba in colorToBuffers) {
|
|
228
|
+
if (colorToBuffers.hasOwnProperty(rgba)) {
|
|
229
|
+
buffer = colorToBuffers[rgba];
|
|
230
|
+
batchedDrawCalls.push({
|
|
231
|
+
color: Color_default.fromRgba(parseInt(rgba)),
|
|
232
|
+
offset: buffer.indexOffset,
|
|
233
|
+
count: buffer.indexLength,
|
|
234
|
+
batchIds: buffer.batchIds
|
|
235
|
+
});
|
|
102
236
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
let
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
let minimumHeights = parameters.minimumHeights;
|
|
119
|
-
let maximumHeights = parameters.maximumHeights;
|
|
120
|
-
if (defaultValue.defined(minimumHeights) && defaultValue.defined(maximumHeights)) {
|
|
121
|
-
minimumHeights = new Float32Array(minimumHeights);
|
|
122
|
-
maximumHeights = new Float32Array(maximumHeights);
|
|
237
|
+
}
|
|
238
|
+
for (i = 0; i < countsLength; ++i) {
|
|
239
|
+
rgba = batchTableColors[i];
|
|
240
|
+
buffer = colorToBuffers[rgba];
|
|
241
|
+
const positionOffset = buffer.offset;
|
|
242
|
+
let positionIndex = positionOffset * 3;
|
|
243
|
+
let batchIdIndex = positionOffset;
|
|
244
|
+
const polygonOffset = offsets[i];
|
|
245
|
+
const polygonCount = counts[i];
|
|
246
|
+
const batchId = batchIds[i];
|
|
247
|
+
let polygonMinimumHeight = minHeight;
|
|
248
|
+
let polygonMaximumHeight = maxHeight;
|
|
249
|
+
if (defined_default(minimumHeights) && defined_default(maximumHeights)) {
|
|
250
|
+
polygonMinimumHeight = minimumHeights[i];
|
|
251
|
+
polygonMaximumHeight = maximumHeights[i];
|
|
123
252
|
}
|
|
124
|
-
|
|
125
|
-
let
|
|
126
|
-
let
|
|
127
|
-
let
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
AttributeCompression.AttributeCompression.zigZagDeltaDecode(uBuffer, vBuffer);
|
|
133
|
-
|
|
134
|
-
const decodedPositions = new Float64Array(positionsLength * 3);
|
|
135
|
-
for (i = 0; i < positionsLength; ++i) {
|
|
136
|
-
const u = uBuffer[i];
|
|
137
|
-
const v = vBuffer[i];
|
|
138
|
-
|
|
139
|
-
const x = Math$1.CesiumMath.lerp(rectangle.west, rectangle.east, u / maxShort);
|
|
140
|
-
const y = Math$1.CesiumMath.lerp(rectangle.south, rectangle.north, v / maxShort);
|
|
141
|
-
|
|
142
|
-
const cart = Matrix3.Cartographic.fromRadians(x, y, 0.0, scratchBVCartographic);
|
|
143
|
-
const decodedPosition = ellipsoid.cartographicToCartesian(
|
|
144
|
-
cart,
|
|
253
|
+
let minLat = Number.POSITIVE_INFINITY;
|
|
254
|
+
let maxLat = Number.NEGATIVE_INFINITY;
|
|
255
|
+
let minLon = Number.POSITIVE_INFINITY;
|
|
256
|
+
let maxLon = Number.NEGATIVE_INFINITY;
|
|
257
|
+
for (j = 0; j < polygonCount; ++j) {
|
|
258
|
+
const position = Cartesian3_default.unpack(
|
|
259
|
+
decodedPositions,
|
|
260
|
+
polygonOffset * 3 + j * 3,
|
|
145
261
|
scratchEncodedPosition
|
|
146
262
|
);
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
const offsets = new Array(countsLength);
|
|
152
|
-
const indexOffsets = new Array(countsLength);
|
|
153
|
-
let currentOffset = 0;
|
|
154
|
-
let currentIndexOffset = 0;
|
|
155
|
-
for (i = 0; i < countsLength; ++i) {
|
|
156
|
-
offsets[i] = currentOffset;
|
|
157
|
-
indexOffsets[i] = currentIndexOffset;
|
|
158
|
-
|
|
159
|
-
currentOffset += counts[i];
|
|
160
|
-
currentIndexOffset += indexCounts[i];
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
const batchedPositions = new Float32Array(positionsLength * 3 * 2);
|
|
164
|
-
const batchedIds = new Uint16Array(positionsLength * 2);
|
|
165
|
-
const batchedIndexOffsets = new Uint32Array(indexOffsets.length);
|
|
166
|
-
const batchedIndexCounts = new Uint32Array(indexCounts.length);
|
|
167
|
-
let batchedIndices = [];
|
|
168
|
-
|
|
169
|
-
const colorToBuffers = {};
|
|
170
|
-
for (i = 0; i < countsLength; ++i) {
|
|
171
|
-
rgba = batchTableColors[i];
|
|
172
|
-
if (!defaultValue.defined(colorToBuffers[rgba])) {
|
|
173
|
-
colorToBuffers[rgba] = {
|
|
174
|
-
positionLength: counts[i],
|
|
175
|
-
indexLength: indexCounts[i],
|
|
176
|
-
offset: 0,
|
|
177
|
-
indexOffset: 0,
|
|
178
|
-
batchIds: [i],
|
|
179
|
-
};
|
|
180
|
-
} else {
|
|
181
|
-
colorToBuffers[rgba].positionLength += counts[i];
|
|
182
|
-
colorToBuffers[rgba].indexLength += indexCounts[i];
|
|
183
|
-
colorToBuffers[rgba].batchIds.push(i);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// get the offsets and counts for the positions and indices of each primitive
|
|
188
|
-
let buffer;
|
|
189
|
-
let byColorPositionOffset = 0;
|
|
190
|
-
let byColorIndexOffset = 0;
|
|
191
|
-
for (rgba in colorToBuffers) {
|
|
192
|
-
if (colorToBuffers.hasOwnProperty(rgba)) {
|
|
193
|
-
buffer = colorToBuffers[rgba];
|
|
194
|
-
buffer.offset = byColorPositionOffset;
|
|
195
|
-
buffer.indexOffset = byColorIndexOffset;
|
|
196
|
-
|
|
197
|
-
const positionLength = buffer.positionLength * 2;
|
|
198
|
-
const indexLength = buffer.indexLength * 2 + buffer.positionLength * 6;
|
|
199
|
-
|
|
200
|
-
byColorPositionOffset += positionLength;
|
|
201
|
-
byColorIndexOffset += indexLength;
|
|
202
|
-
|
|
203
|
-
buffer.indexLength = indexLength;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
const batchedDrawCalls = [];
|
|
208
|
-
|
|
209
|
-
for (rgba in colorToBuffers) {
|
|
210
|
-
if (colorToBuffers.hasOwnProperty(rgba)) {
|
|
211
|
-
buffer = colorToBuffers[rgba];
|
|
212
|
-
|
|
213
|
-
batchedDrawCalls.push({
|
|
214
|
-
color: Color.Color.fromRgba(parseInt(rgba)),
|
|
215
|
-
offset: buffer.indexOffset,
|
|
216
|
-
count: buffer.indexLength,
|
|
217
|
-
batchIds: buffer.batchIds,
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
for (i = 0; i < countsLength; ++i) {
|
|
223
|
-
rgba = batchTableColors[i];
|
|
224
|
-
|
|
225
|
-
buffer = colorToBuffers[rgba];
|
|
226
|
-
const positionOffset = buffer.offset;
|
|
227
|
-
let positionIndex = positionOffset * 3;
|
|
228
|
-
let batchIdIndex = positionOffset;
|
|
229
|
-
|
|
230
|
-
const polygonOffset = offsets[i];
|
|
231
|
-
const polygonCount = counts[i];
|
|
232
|
-
const batchId = batchIds[i];
|
|
233
|
-
|
|
234
|
-
let polygonMinimumHeight = minHeight;
|
|
235
|
-
let polygonMaximumHeight = maxHeight;
|
|
236
|
-
if (defaultValue.defined(minimumHeights) && defaultValue.defined(maximumHeights)) {
|
|
237
|
-
polygonMinimumHeight = minimumHeights[i];
|
|
238
|
-
polygonMaximumHeight = maximumHeights[i];
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
let minLat = Number.POSITIVE_INFINITY;
|
|
242
|
-
let maxLat = Number.NEGATIVE_INFINITY;
|
|
243
|
-
let minLon = Number.POSITIVE_INFINITY;
|
|
244
|
-
let maxLon = Number.NEGATIVE_INFINITY;
|
|
245
|
-
|
|
246
|
-
for (j = 0; j < polygonCount; ++j) {
|
|
247
|
-
const position = Matrix3.Cartesian3.unpack(
|
|
248
|
-
decodedPositions,
|
|
249
|
-
polygonOffset * 3 + j * 3,
|
|
250
|
-
scratchEncodedPosition
|
|
251
|
-
);
|
|
252
|
-
ellipsoid.scaleToGeodeticSurface(position, position);
|
|
253
|
-
|
|
254
|
-
const carto = ellipsoid.cartesianToCartographic(
|
|
255
|
-
position,
|
|
256
|
-
scratchBVCartographic
|
|
257
|
-
);
|
|
258
|
-
const lat = carto.latitude;
|
|
259
|
-
const lon = carto.longitude;
|
|
260
|
-
|
|
261
|
-
minLat = Math.min(lat, minLat);
|
|
262
|
-
maxLat = Math.max(lat, maxLat);
|
|
263
|
-
minLon = Math.min(lon, minLon);
|
|
264
|
-
maxLon = Math.max(lon, maxLon);
|
|
265
|
-
|
|
266
|
-
const normal = ellipsoid.geodeticSurfaceNormal(position, scratchNormal);
|
|
267
|
-
let scaledNormal = Matrix3.Cartesian3.multiplyByScalar(
|
|
268
|
-
normal,
|
|
269
|
-
polygonMinimumHeight,
|
|
270
|
-
scratchScaledNormal
|
|
271
|
-
);
|
|
272
|
-
const minHeightPosition = Matrix3.Cartesian3.add(
|
|
273
|
-
position,
|
|
274
|
-
scaledNormal,
|
|
275
|
-
scratchMinHeightPosition
|
|
276
|
-
);
|
|
277
|
-
|
|
278
|
-
scaledNormal = Matrix3.Cartesian3.multiplyByScalar(
|
|
279
|
-
normal,
|
|
280
|
-
polygonMaximumHeight,
|
|
281
|
-
scaledNormal
|
|
282
|
-
);
|
|
283
|
-
const maxHeightPosition = Matrix3.Cartesian3.add(
|
|
284
|
-
position,
|
|
285
|
-
scaledNormal,
|
|
286
|
-
scratchMaxHeightPosition
|
|
287
|
-
);
|
|
288
|
-
|
|
289
|
-
Matrix3.Cartesian3.subtract(maxHeightPosition, center, maxHeightPosition);
|
|
290
|
-
Matrix3.Cartesian3.subtract(minHeightPosition, center, minHeightPosition);
|
|
291
|
-
|
|
292
|
-
Matrix3.Cartesian3.pack(maxHeightPosition, batchedPositions, positionIndex);
|
|
293
|
-
Matrix3.Cartesian3.pack(minHeightPosition, batchedPositions, positionIndex + 3);
|
|
294
|
-
|
|
295
|
-
batchedIds[batchIdIndex] = batchId;
|
|
296
|
-
batchedIds[batchIdIndex + 1] = batchId;
|
|
297
|
-
|
|
298
|
-
positionIndex += 6;
|
|
299
|
-
batchIdIndex += 2;
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
rectangle = scratchBVRectangle;
|
|
303
|
-
rectangle.west = minLon;
|
|
304
|
-
rectangle.east = maxLon;
|
|
305
|
-
rectangle.south = minLat;
|
|
306
|
-
rectangle.north = maxLat;
|
|
307
|
-
|
|
308
|
-
boundingVolumes[i] = OrientedBoundingBox.OrientedBoundingBox.fromRectangle(
|
|
309
|
-
rectangle,
|
|
310
|
-
minHeight,
|
|
311
|
-
maxHeight,
|
|
312
|
-
ellipsoid
|
|
263
|
+
ellipsoid.scaleToGeodeticSurface(position, position);
|
|
264
|
+
const carto = ellipsoid.cartesianToCartographic(
|
|
265
|
+
position,
|
|
266
|
+
scratchBVCartographic
|
|
313
267
|
);
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
batchedIndices[indicesIndex++] = v1 * 2 + positionOffset;
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
buffer.offset += polygonCount * 2;
|
|
353
|
-
buffer.indexOffset = indicesIndex;
|
|
354
|
-
|
|
355
|
-
batchedIndexCounts[i] = indicesIndex - batchedIndexOffsets[i];
|
|
268
|
+
const lat = carto.latitude;
|
|
269
|
+
const lon = carto.longitude;
|
|
270
|
+
minLat = Math.min(lat, minLat);
|
|
271
|
+
maxLat = Math.max(lat, maxLat);
|
|
272
|
+
minLon = Math.min(lon, minLon);
|
|
273
|
+
maxLon = Math.max(lon, maxLon);
|
|
274
|
+
const normal = ellipsoid.geodeticSurfaceNormal(position, scratchNormal);
|
|
275
|
+
let scaledNormal = Cartesian3_default.multiplyByScalar(
|
|
276
|
+
normal,
|
|
277
|
+
polygonMinimumHeight,
|
|
278
|
+
scratchScaledNormal
|
|
279
|
+
);
|
|
280
|
+
const minHeightPosition = Cartesian3_default.add(
|
|
281
|
+
position,
|
|
282
|
+
scaledNormal,
|
|
283
|
+
scratchMinHeightPosition
|
|
284
|
+
);
|
|
285
|
+
scaledNormal = Cartesian3_default.multiplyByScalar(
|
|
286
|
+
normal,
|
|
287
|
+
polygonMaximumHeight,
|
|
288
|
+
scaledNormal
|
|
289
|
+
);
|
|
290
|
+
const maxHeightPosition = Cartesian3_default.add(
|
|
291
|
+
position,
|
|
292
|
+
scaledNormal,
|
|
293
|
+
scratchMaxHeightPosition
|
|
294
|
+
);
|
|
295
|
+
Cartesian3_default.subtract(maxHeightPosition, center, maxHeightPosition);
|
|
296
|
+
Cartesian3_default.subtract(minHeightPosition, center, minHeightPosition);
|
|
297
|
+
Cartesian3_default.pack(maxHeightPosition, batchedPositions, positionIndex);
|
|
298
|
+
Cartesian3_default.pack(minHeightPosition, batchedPositions, positionIndex + 3);
|
|
299
|
+
batchedIds[batchIdIndex] = batchId;
|
|
300
|
+
batchedIds[batchIdIndex + 1] = batchId;
|
|
301
|
+
positionIndex += 6;
|
|
302
|
+
batchIdIndex += 2;
|
|
356
303
|
}
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
304
|
+
rectangle = scratchBVRectangle;
|
|
305
|
+
rectangle.west = minLon;
|
|
306
|
+
rectangle.east = maxLon;
|
|
307
|
+
rectangle.south = minLat;
|
|
308
|
+
rectangle.north = maxLat;
|
|
309
|
+
boundingVolumes[i] = OrientedBoundingBox_default.fromRectangle(
|
|
310
|
+
rectangle,
|
|
311
|
+
minHeight,
|
|
312
|
+
maxHeight,
|
|
313
|
+
ellipsoid
|
|
361
314
|
);
|
|
362
|
-
|
|
363
|
-
const
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
const
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
315
|
+
let indicesIndex = buffer.indexOffset;
|
|
316
|
+
const indexOffset = indexOffsets[i];
|
|
317
|
+
const indexCount = indexCounts[i];
|
|
318
|
+
batchedIndexOffsets[i] = indicesIndex;
|
|
319
|
+
for (j = 0; j < indexCount; j += 3) {
|
|
320
|
+
const i0 = indices[indexOffset + j] - polygonOffset;
|
|
321
|
+
const i1 = indices[indexOffset + j + 1] - polygonOffset;
|
|
322
|
+
const i2 = indices[indexOffset + j + 2] - polygonOffset;
|
|
323
|
+
batchedIndices[indicesIndex++] = i0 * 2 + positionOffset;
|
|
324
|
+
batchedIndices[indicesIndex++] = i1 * 2 + positionOffset;
|
|
325
|
+
batchedIndices[indicesIndex++] = i2 * 2 + positionOffset;
|
|
326
|
+
batchedIndices[indicesIndex++] = i2 * 2 + 1 + positionOffset;
|
|
327
|
+
batchedIndices[indicesIndex++] = i1 * 2 + 1 + positionOffset;
|
|
328
|
+
batchedIndices[indicesIndex++] = i0 * 2 + 1 + positionOffset;
|
|
372
329
|
}
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
batchedIndices.buffer,
|
|
387
|
-
batchedIndexOffsets.buffer,
|
|
388
|
-
batchedIndexCounts.buffer,
|
|
389
|
-
batchedIds.buffer,
|
|
390
|
-
packedBuffer.buffer
|
|
391
|
-
);
|
|
392
|
-
|
|
393
|
-
return {
|
|
394
|
-
positions: batchedPositions.buffer,
|
|
395
|
-
indices: batchedIndices.buffer,
|
|
396
|
-
indexOffsets: batchedIndexOffsets.buffer,
|
|
397
|
-
indexCounts: batchedIndexCounts.buffer,
|
|
398
|
-
batchIds: batchedIds.buffer,
|
|
399
|
-
packedBuffer: packedBuffer.buffer,
|
|
400
|
-
};
|
|
330
|
+
for (j = 0; j < polygonCount; ++j) {
|
|
331
|
+
const v0 = j;
|
|
332
|
+
const v1 = (j + 1) % polygonCount;
|
|
333
|
+
batchedIndices[indicesIndex++] = v0 * 2 + 1 + positionOffset;
|
|
334
|
+
batchedIndices[indicesIndex++] = v1 * 2 + positionOffset;
|
|
335
|
+
batchedIndices[indicesIndex++] = v0 * 2 + positionOffset;
|
|
336
|
+
batchedIndices[indicesIndex++] = v0 * 2 + 1 + positionOffset;
|
|
337
|
+
batchedIndices[indicesIndex++] = v1 * 2 + 1 + positionOffset;
|
|
338
|
+
batchedIndices[indicesIndex++] = v1 * 2 + positionOffset;
|
|
339
|
+
}
|
|
340
|
+
buffer.offset += polygonCount * 2;
|
|
341
|
+
buffer.indexOffset = indicesIndex;
|
|
342
|
+
batchedIndexCounts[i] = indicesIndex - batchedIndexOffsets[i];
|
|
401
343
|
}
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
344
|
+
batchedIndices = IndexDatatype_default.createTypedArray(
|
|
345
|
+
batchedPositions.length / 3,
|
|
346
|
+
batchedIndices
|
|
347
|
+
);
|
|
348
|
+
const batchedIndicesLength = batchedDrawCalls.length;
|
|
349
|
+
for (let m = 0; m < batchedIndicesLength; ++m) {
|
|
350
|
+
const tempIds = batchedDrawCalls[m].batchIds;
|
|
351
|
+
let count = 0;
|
|
352
|
+
const tempIdsLength = tempIds.length;
|
|
353
|
+
for (let n = 0; n < tempIdsLength; ++n) {
|
|
354
|
+
count += batchedIndexCounts[tempIds[n]];
|
|
355
|
+
}
|
|
356
|
+
batchedDrawCalls[m].count = count;
|
|
357
|
+
}
|
|
358
|
+
const indexDatatype = batchedIndices.BYTES_PER_ELEMENT === 2 ? IndexDatatype_default.UNSIGNED_SHORT : IndexDatatype_default.UNSIGNED_INT;
|
|
359
|
+
const packedBuffer = packBuffer(
|
|
360
|
+
indexDatatype,
|
|
361
|
+
boundingVolumes,
|
|
362
|
+
batchedDrawCalls
|
|
363
|
+
);
|
|
364
|
+
transferableObjects.push(
|
|
365
|
+
batchedPositions.buffer,
|
|
366
|
+
batchedIndices.buffer,
|
|
367
|
+
batchedIndexOffsets.buffer,
|
|
368
|
+
batchedIndexCounts.buffer,
|
|
369
|
+
batchedIds.buffer,
|
|
370
|
+
packedBuffer.buffer
|
|
371
|
+
);
|
|
372
|
+
return {
|
|
373
|
+
positions: batchedPositions.buffer,
|
|
374
|
+
indices: batchedIndices.buffer,
|
|
375
|
+
indexOffsets: batchedIndexOffsets.buffer,
|
|
376
|
+
indexCounts: batchedIndexCounts.buffer,
|
|
377
|
+
batchIds: batchedIds.buffer,
|
|
378
|
+
packedBuffer: packedBuffer.buffer
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
var createVectorTilePolygons_default = createTaskProcessorWorker_default(createVectorTilePolygons);
|
|
382
|
+
export {
|
|
383
|
+
createVectorTilePolygons_default as default
|
|
384
|
+
};
|