@pggis/pg-sdk 3.3.10 → 4.3.3
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/README.md +8 -8
- package/dist/index.js +1966 -4
- package/dist/pggis.min.css +1 -1
- package/dist/pggis.min.js +10980 -7539
- package/dist/resources/ThirdParty/Workers/pako_deflate.min.js +1 -2
- package/dist/resources/ThirdParty/Workers/pako_inflate.min.js +1 -2
- package/dist/resources/ThirdParty/Workers/z-worker-pako.js +1 -1
- package/dist/resources/ThirdParty/google-earth-dbroot-parser.js +1 -8337
- package/dist/resources/ThirdParty/wasm_splats_bg.wasm +0 -0
- package/dist/resources/Workers/chunk-35SHYARM.js +26 -0
- package/dist/resources/Workers/chunk-37F5JSTI.js +26 -0
- package/dist/resources/Workers/chunk-3SSKC3VN.js +26 -0
- package/dist/resources/Workers/chunk-3W4GT7KQ.js +26 -0
- package/dist/resources/Workers/chunk-4IW2T6GF.js +26 -0
- package/dist/resources/Workers/chunk-5YEWO3HT.js +26 -0
- package/dist/resources/Workers/chunk-64RSHJUE.js +28 -0
- package/dist/resources/Workers/chunk-77IHZJJ3.js +26 -0
- package/dist/resources/Workers/chunk-7HTKERZY.js +26 -0
- package/dist/resources/Workers/{chunk-F3YA3Y2Z.js → chunk-A56XVLQR.js} +2 -13
- package/dist/resources/Workers/chunk-AJYK4IVJ.js +26 -0
- package/dist/resources/Workers/{chunk-EHWHNOEX.js → chunk-ARG42DC4.js} +2 -31
- package/dist/resources/Workers/chunk-AU7IKHOH.js +26 -0
- package/dist/resources/Workers/chunk-B4AA3ARO.js +26 -0
- package/dist/resources/Workers/chunk-CNCV5UL7.js +26 -0
- package/dist/resources/Workers/chunk-CYCB63OH.js +26 -0
- package/dist/resources/Workers/{chunk-4H7PY4U5.js → chunk-D6AA5QVT.js} +2 -20
- package/dist/resources/Workers/chunk-D6C66QON.js +26 -0
- package/dist/resources/Workers/chunk-DEPHB2WM.js +26 -0
- package/dist/resources/Workers/chunk-DMEY62ID.js +26 -0
- package/dist/resources/Workers/chunk-DQQ63PYM.js +26 -0
- package/dist/resources/Workers/chunk-ED5JPB3S.js +27 -0
- package/dist/resources/Workers/chunk-EZUYS2JF.js +26 -0
- package/dist/resources/Workers/chunk-FEVXJ54I.js +26 -0
- package/dist/resources/Workers/chunk-G5AGHVVC.js +26 -0
- package/dist/resources/Workers/{chunk-BBWDMCVU.js → chunk-GBYLG25F.js} +2 -15
- package/dist/resources/Workers/chunk-GILIDQNQ.js +26 -0
- package/dist/resources/Workers/chunk-HMIYSTF6.js +26 -0
- package/dist/resources/Workers/chunk-HTFSEEMT.js +26 -0
- package/dist/resources/Workers/chunk-HWXX4CWK.js +26 -0
- package/dist/resources/Workers/chunk-IYTZ52EY.js +26 -0
- package/dist/resources/Workers/chunk-J6UP6FLE.js +26 -0
- package/dist/resources/Workers/chunk-LEYMRMBK.js +27 -0
- package/dist/resources/Workers/chunk-M3MGYQSL.js +26 -0
- package/dist/resources/Workers/chunk-N4VJKXZS.js +26 -0
- package/dist/resources/Workers/chunk-NB3ML6JO.js +26 -0
- package/dist/resources/Workers/chunk-OFUUQVMR.js +26 -0
- package/dist/resources/Workers/chunk-OSW76XDF.js +26 -0
- package/dist/resources/Workers/chunk-PSPPBZWI.js +66 -0
- package/dist/resources/Workers/chunk-QN3VOORQ.js +26 -0
- package/dist/resources/Workers/chunk-QOUAJ6TL.js +26 -0
- package/dist/resources/Workers/chunk-RCV6KWXS.js +26 -0
- package/dist/resources/Workers/chunk-TCGIRNHN.js +26 -0
- package/dist/resources/Workers/chunk-U4IEOH5K.js +26 -0
- package/dist/resources/Workers/chunk-UP6I5URU.js +26 -0
- package/dist/resources/Workers/chunk-VTAIKJXX.js +26 -0
- package/dist/resources/Workers/chunk-VTBDSFTG.js +26 -0
- package/dist/resources/Workers/chunk-VW6VD53G.js +26 -0
- package/dist/resources/Workers/chunk-WGGIH7QW.js +26 -0
- package/dist/resources/Workers/chunk-WWA5PL4H.js +26 -0
- package/dist/resources/Workers/chunk-WZDE3RYP.js +28 -0
- package/dist/resources/Workers/chunk-XRL4AVS5.js +26 -0
- package/dist/resources/Workers/combineGeometry.js +2 -44
- package/dist/resources/Workers/createBoxGeometry.js +2 -34
- package/dist/resources/Workers/createBoxOutlineGeometry.js +2 -211
- package/dist/resources/Workers/createCircleGeometry.js +2 -173
- package/dist/resources/Workers/createCircleOutlineGeometry.js +2 -123
- package/dist/resources/Workers/createCoplanarPolygonGeometry.js +2 -482
- package/dist/resources/Workers/createCoplanarPolygonOutlineGeometry.js +2 -201
- package/dist/resources/Workers/createCorridorGeometry.js +2 -1239
- package/dist/resources/Workers/createCorridorOutlineGeometry.js +2 -544
- package/dist/resources/Workers/createCylinderGeometry.js +2 -36
- package/dist/resources/Workers/createCylinderOutlineGeometry.js +2 -207
- package/dist/resources/Workers/createEllipseGeometry.js +2 -47
- package/dist/resources/Workers/createEllipseOutlineGeometry.js +2 -40
- package/dist/resources/Workers/createEllipsoidGeometry.js +2 -35
- package/dist/resources/Workers/createEllipsoidOutlineGeometry.js +2 -37
- package/dist/resources/Workers/createFrustumGeometry.js +2 -34
- package/dist/resources/Workers/createFrustumOutlineGeometry.js +2 -211
- package/dist/resources/Workers/createGeometry.js +2 -147
- package/dist/resources/Workers/createGroundPolylineGeometry.js +2 -1584
- package/dist/resources/Workers/createPlaneGeometry.js +2 -200
- package/dist/resources/Workers/createPlaneOutlineGeometry.js +2 -100
- package/dist/resources/Workers/createPolygonGeometry.js +2 -1387
- package/dist/resources/Workers/createPolygonOutlineGeometry.js +2 -519
- package/dist/resources/Workers/createPolylineGeometry.js +2 -472
- package/dist/resources/Workers/createPolylineVolumeGeometry.js +2 -355
- package/dist/resources/Workers/createPolylineVolumeOutlineGeometry.js +2 -253
- package/dist/resources/Workers/createRectangleGeometry.js +2 -1250
- package/dist/resources/Workers/createRectangleOutlineGeometry.js +2 -455
- package/dist/resources/Workers/createSimplePolylineGeometry.js +2 -376
- package/dist/resources/Workers/createSphereGeometry.js +2 -94
- package/dist/resources/Workers/createSphereOutlineGeometry.js +2 -94
- package/dist/resources/Workers/createTaskProcessorWorker.js +2 -8
- package/dist/resources/Workers/createVectorTileClampedPolylines.js +2 -468
- package/dist/resources/Workers/createVectorTileGeometries.js +2 -363
- package/dist/resources/Workers/createVectorTilePoints.js +2 -88
- package/dist/resources/Workers/createVectorTilePolygons.js +2 -361
- package/dist/resources/Workers/createVectorTilePolylines.js +2 -238
- package/dist/resources/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +2 -545
- package/dist/resources/Workers/createVerticesFromHeightmap.js +2 -2254
- package/dist/resources/Workers/createVerticesFromQuantizedTerrainMesh.js +2 -722
- package/dist/resources/Workers/createWallGeometry.js +2 -466
- package/dist/resources/Workers/createWallOutlineGeometry.js +2 -314
- package/dist/resources/Workers/decodeDraco.js +2 -345
- package/dist/resources/Workers/decodeGoogleEarthEnterprisePacket.js +2 -2626
- package/dist/resources/Workers/decodeI3S.js +2 -1320
- package/dist/resources/Workers/gaussianSplatSorter.js +26 -0
- package/dist/resources/Workers/gaussianSplatTextureGenerator.js +26 -0
- package/dist/resources/Workers/transcodeKTX2.js +29 -3398
- package/dist/resources/Workers/transferTypedArrayTest.js +2 -17
- package/dist/resources/Workers/upsampleQuantizedTerrainMesh.js +2 -795
- package/package.json +9 -8
- package/dist/resources/ThirdParty/Workers/basis_transcoder.js +0 -21
- package/dist/resources/Workers/chunk-23UFSGND.js +0 -236
- package/dist/resources/Workers/chunk-2A75IWRS.js +0 -218
- package/dist/resources/Workers/chunk-2FRVPMCS.js +0 -1258
- package/dist/resources/Workers/chunk-2FWRMUTY.js +0 -138
- package/dist/resources/Workers/chunk-2UPKWTMJ.js +0 -117
- package/dist/resources/Workers/chunk-34FXV7D7.js +0 -73
- package/dist/resources/Workers/chunk-3VAZEH7M.js +0 -101
- package/dist/resources/Workers/chunk-4DO5W5XZ.js +0 -196
- package/dist/resources/Workers/chunk-5QULIR53.js +0 -501
- package/dist/resources/Workers/chunk-7TC63SJW.js +0 -302
- package/dist/resources/Workers/chunk-7ZFGPDJA.js +0 -122
- package/dist/resources/Workers/chunk-A5DWLWCY.js +0 -834
- package/dist/resources/Workers/chunk-BG4UCVXN.js +0 -73
- package/dist/resources/Workers/chunk-BIKA3NRA.js +0 -59
- package/dist/resources/Workers/chunk-BROJAZRZ.js +0 -390
- package/dist/resources/Workers/chunk-DDUQAJ4P.js +0 -476
- package/dist/resources/Workers/chunk-EERJKOAF.js +0 -305
- package/dist/resources/Workers/chunk-EG6PTBY2.js +0 -2716
- package/dist/resources/Workers/chunk-F4HFJMGM.js +0 -353
- package/dist/resources/Workers/chunk-FJKNFAKQ.js +0 -8219
- package/dist/resources/Workers/chunk-FNIRWHJB.js +0 -289
- package/dist/resources/Workers/chunk-FZRIVR7Y.js +0 -100
- package/dist/resources/Workers/chunk-G43QFN4Q.js +0 -157
- package/dist/resources/Workers/chunk-GATZHF3K.js +0 -1860
- package/dist/resources/Workers/chunk-GRC2ZTAF.js +0 -398
- package/dist/resources/Workers/chunk-HU6N6EXB.js +0 -767
- package/dist/resources/Workers/chunk-I46ZRR5W.js +0 -1052
- package/dist/resources/Workers/chunk-JURN7NPV.js +0 -1075
- package/dist/resources/Workers/chunk-KKCR2YOP.js +0 -421
- package/dist/resources/Workers/chunk-LPR3YNP2.js +0 -138
- package/dist/resources/Workers/chunk-M7ERACJJ.js +0 -511
- package/dist/resources/Workers/chunk-MDWEGWPA.js +0 -1007
- package/dist/resources/Workers/chunk-OGXZVPPM.js +0 -2365
- package/dist/resources/Workers/chunk-PGSJK77E.js +0 -634
- package/dist/resources/Workers/chunk-PPH7OFP3.js +0 -258
- package/dist/resources/Workers/chunk-SH5USDPI.js +0 -456
- package/dist/resources/Workers/chunk-SOWMRMWA.js +0 -629
- package/dist/resources/Workers/chunk-STW2DGFI.js +0 -58
- package/dist/resources/Workers/chunk-T3XIFPYR.js +0 -1477
- package/dist/resources/Workers/chunk-TTUZP4BO.js +0 -501
- package/dist/resources/Workers/chunk-UEXTBDBE.js +0 -693
- package/dist/resources/Workers/chunk-VOXYEYJT.js +0 -684
- package/dist/resources/Workers/chunk-X4356LRH.js +0 -368
- package/dist/resources/Workers/chunk-XGI5BXZY.js +0 -163
- package/dist/resources/Workers/chunk-Y2ME2IJV.js +0 -781
- package/dist/resources/Workers/chunk-Y5UQJLYE.js +0 -171
- package/dist/resources/Workers/chunk-YJEBABKH.js +0 -2977
- package/dist/resources/Workers/chunk-YWTJ2B4B.js +0 -77
- package/dist/resources/Workers/chunk-Z3TIFFGF.js +0 -430
- package/dist/resources/Workers/chunk-ZT7KWISZ.js +0 -102
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* Cesium - https://github.com/CesiumGS/cesium
|
|
4
|
-
* Version 1.
|
|
4
|
+
* Version 1.132
|
|
5
5
|
*
|
|
6
6
|
* Copyright 2011-2022 Cesium Contributors
|
|
7
7
|
*
|
|
@@ -23,547 +23,4 @@
|
|
|
23
23
|
* See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details.
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
|
-
import {
|
|
27
|
-
EllipsoidalOccluder_default,
|
|
28
|
-
TerrainEncoding_default
|
|
29
|
-
} from "./chunk-HU6N6EXB.js";
|
|
30
|
-
import {
|
|
31
|
-
createTaskProcessorWorker_default
|
|
32
|
-
} from "./chunk-3VAZEH7M.js";
|
|
33
|
-
import {
|
|
34
|
-
WebMercatorProjection_default
|
|
35
|
-
} from "./chunk-2UPKWTMJ.js";
|
|
36
|
-
import {
|
|
37
|
-
OrientedBoundingBox_default
|
|
38
|
-
} from "./chunk-A5DWLWCY.js";
|
|
39
|
-
import "./chunk-Z3TIFFGF.js";
|
|
40
|
-
import "./chunk-FNIRWHJB.js";
|
|
41
|
-
import {
|
|
42
|
-
AxisAlignedBoundingBox_default
|
|
43
|
-
} from "./chunk-G43QFN4Q.js";
|
|
44
|
-
import "./chunk-2FRVPMCS.js";
|
|
45
|
-
import "./chunk-Y5UQJLYE.js";
|
|
46
|
-
import {
|
|
47
|
-
BoundingSphere_default,
|
|
48
|
-
Transforms_default
|
|
49
|
-
} from "./chunk-FJKNFAKQ.js";
|
|
50
|
-
import "./chunk-TTUZP4BO.js";
|
|
51
|
-
import "./chunk-BG4UCVXN.js";
|
|
52
|
-
import {
|
|
53
|
-
Matrix4_default,
|
|
54
|
-
Rectangle_default
|
|
55
|
-
} from "./chunk-YJEBABKH.js";
|
|
56
|
-
import "./chunk-PPH7OFP3.js";
|
|
57
|
-
import {
|
|
58
|
-
Cartesian2_default,
|
|
59
|
-
Cartesian3_default,
|
|
60
|
-
Cartographic_default,
|
|
61
|
-
Ellipsoid_default
|
|
62
|
-
} from "./chunk-OGXZVPPM.js";
|
|
63
|
-
import {
|
|
64
|
-
Math_default
|
|
65
|
-
} from "./chunk-5QULIR53.js";
|
|
66
|
-
import "./chunk-SOWMRMWA.js";
|
|
67
|
-
import {
|
|
68
|
-
RuntimeError_default
|
|
69
|
-
} from "./chunk-STW2DGFI.js";
|
|
70
|
-
import {
|
|
71
|
-
defaultValue_default
|
|
72
|
-
} from "./chunk-BBWDMCVU.js";
|
|
73
|
-
import "./chunk-XGI5BXZY.js";
|
|
74
|
-
import {
|
|
75
|
-
defined_default
|
|
76
|
-
} from "./chunk-YWTJ2B4B.js";
|
|
77
|
-
|
|
78
|
-
// packages/engine/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js
|
|
79
|
-
var sizeOfUint16 = Uint16Array.BYTES_PER_ELEMENT;
|
|
80
|
-
var sizeOfInt32 = Int32Array.BYTES_PER_ELEMENT;
|
|
81
|
-
var sizeOfUint32 = Uint32Array.BYTES_PER_ELEMENT;
|
|
82
|
-
var sizeOfFloat = Float32Array.BYTES_PER_ELEMENT;
|
|
83
|
-
var sizeOfDouble = Float64Array.BYTES_PER_ELEMENT;
|
|
84
|
-
function indexOfEpsilon(arr, elem, elemType) {
|
|
85
|
-
elemType = defaultValue_default(elemType, Math_default);
|
|
86
|
-
const count = arr.length;
|
|
87
|
-
for (let i = 0; i < count; ++i) {
|
|
88
|
-
if (elemType.equalsEpsilon(arr[i], elem, Math_default.EPSILON12)) {
|
|
89
|
-
return i;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return -1;
|
|
93
|
-
}
|
|
94
|
-
function createVerticesFromGoogleEarthEnterpriseBuffer(parameters, transferableObjects) {
|
|
95
|
-
parameters.ellipsoid = Ellipsoid_default.clone(parameters.ellipsoid);
|
|
96
|
-
parameters.rectangle = Rectangle_default.clone(parameters.rectangle);
|
|
97
|
-
const statistics = processBuffer(
|
|
98
|
-
parameters.buffer,
|
|
99
|
-
parameters.relativeToCenter,
|
|
100
|
-
parameters.ellipsoid,
|
|
101
|
-
parameters.rectangle,
|
|
102
|
-
parameters.nativeRectangle,
|
|
103
|
-
parameters.exaggeration,
|
|
104
|
-
parameters.exaggerationRelativeHeight,
|
|
105
|
-
parameters.skirtHeight,
|
|
106
|
-
parameters.includeWebMercatorT,
|
|
107
|
-
parameters.negativeAltitudeExponentBias,
|
|
108
|
-
parameters.negativeElevationThreshold
|
|
109
|
-
);
|
|
110
|
-
const vertices = statistics.vertices;
|
|
111
|
-
transferableObjects.push(vertices.buffer);
|
|
112
|
-
const indices = statistics.indices;
|
|
113
|
-
transferableObjects.push(indices.buffer);
|
|
114
|
-
return {
|
|
115
|
-
vertices: vertices.buffer,
|
|
116
|
-
indices: indices.buffer,
|
|
117
|
-
numberOfAttributes: statistics.encoding.stride,
|
|
118
|
-
minimumHeight: statistics.minimumHeight,
|
|
119
|
-
maximumHeight: statistics.maximumHeight,
|
|
120
|
-
boundingSphere3D: statistics.boundingSphere3D,
|
|
121
|
-
orientedBoundingBox: statistics.orientedBoundingBox,
|
|
122
|
-
occludeePointInScaledSpace: statistics.occludeePointInScaledSpace,
|
|
123
|
-
encoding: statistics.encoding,
|
|
124
|
-
vertexCountWithoutSkirts: statistics.vertexCountWithoutSkirts,
|
|
125
|
-
indexCountWithoutSkirts: statistics.indexCountWithoutSkirts,
|
|
126
|
-
westIndicesSouthToNorth: statistics.westIndicesSouthToNorth,
|
|
127
|
-
southIndicesEastToWest: statistics.southIndicesEastToWest,
|
|
128
|
-
eastIndicesNorthToSouth: statistics.eastIndicesNorthToSouth,
|
|
129
|
-
northIndicesWestToEast: statistics.northIndicesWestToEast
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
var scratchCartographic = new Cartographic_default();
|
|
133
|
-
var scratchCartesian = new Cartesian3_default();
|
|
134
|
-
var minimumScratch = new Cartesian3_default();
|
|
135
|
-
var maximumScratch = new Cartesian3_default();
|
|
136
|
-
var matrix4Scratch = new Matrix4_default();
|
|
137
|
-
function processBuffer(buffer, relativeToCenter, ellipsoid, rectangle, nativeRectangle, exaggeration, exaggerationRelativeHeight, skirtHeight, includeWebMercatorT, negativeAltitudeExponentBias, negativeElevationThreshold) {
|
|
138
|
-
let geographicWest;
|
|
139
|
-
let geographicSouth;
|
|
140
|
-
let geographicEast;
|
|
141
|
-
let geographicNorth;
|
|
142
|
-
let rectangleWidth, rectangleHeight;
|
|
143
|
-
if (!defined_default(rectangle)) {
|
|
144
|
-
geographicWest = Math_default.toRadians(nativeRectangle.west);
|
|
145
|
-
geographicSouth = Math_default.toRadians(nativeRectangle.south);
|
|
146
|
-
geographicEast = Math_default.toRadians(nativeRectangle.east);
|
|
147
|
-
geographicNorth = Math_default.toRadians(nativeRectangle.north);
|
|
148
|
-
rectangleWidth = Math_default.toRadians(rectangle.width);
|
|
149
|
-
rectangleHeight = Math_default.toRadians(rectangle.height);
|
|
150
|
-
} else {
|
|
151
|
-
geographicWest = rectangle.west;
|
|
152
|
-
geographicSouth = rectangle.south;
|
|
153
|
-
geographicEast = rectangle.east;
|
|
154
|
-
geographicNorth = rectangle.north;
|
|
155
|
-
rectangleWidth = rectangle.width;
|
|
156
|
-
rectangleHeight = rectangle.height;
|
|
157
|
-
}
|
|
158
|
-
const quadBorderLatitudes = [geographicSouth, geographicNorth];
|
|
159
|
-
const quadBorderLongitudes = [geographicWest, geographicEast];
|
|
160
|
-
const fromENU = Transforms_default.eastNorthUpToFixedFrame(
|
|
161
|
-
relativeToCenter,
|
|
162
|
-
ellipsoid
|
|
163
|
-
);
|
|
164
|
-
const toENU = Matrix4_default.inverseTransformation(fromENU, matrix4Scratch);
|
|
165
|
-
let southMercatorY;
|
|
166
|
-
let oneOverMercatorHeight;
|
|
167
|
-
if (includeWebMercatorT) {
|
|
168
|
-
southMercatorY = WebMercatorProjection_default.geodeticLatitudeToMercatorAngle(
|
|
169
|
-
geographicSouth
|
|
170
|
-
);
|
|
171
|
-
oneOverMercatorHeight = 1 / (WebMercatorProjection_default.geodeticLatitudeToMercatorAngle(geographicNorth) - southMercatorY);
|
|
172
|
-
}
|
|
173
|
-
const hasExaggeration = exaggeration !== 1;
|
|
174
|
-
const includeGeodeticSurfaceNormals = hasExaggeration;
|
|
175
|
-
const dv = new DataView(buffer);
|
|
176
|
-
let minHeight = Number.POSITIVE_INFINITY;
|
|
177
|
-
let maxHeight = Number.NEGATIVE_INFINITY;
|
|
178
|
-
const minimum = minimumScratch;
|
|
179
|
-
minimum.x = Number.POSITIVE_INFINITY;
|
|
180
|
-
minimum.y = Number.POSITIVE_INFINITY;
|
|
181
|
-
minimum.z = Number.POSITIVE_INFINITY;
|
|
182
|
-
const maximum = maximumScratch;
|
|
183
|
-
maximum.x = Number.NEGATIVE_INFINITY;
|
|
184
|
-
maximum.y = Number.NEGATIVE_INFINITY;
|
|
185
|
-
maximum.z = Number.NEGATIVE_INFINITY;
|
|
186
|
-
let offset = 0;
|
|
187
|
-
let size = 0;
|
|
188
|
-
let indicesSize = 0;
|
|
189
|
-
let quadSize;
|
|
190
|
-
let quad;
|
|
191
|
-
for (quad = 0; quad < 4; ++quad) {
|
|
192
|
-
let o = offset;
|
|
193
|
-
quadSize = dv.getUint32(o, true);
|
|
194
|
-
o += sizeOfUint32;
|
|
195
|
-
const x = Math_default.toRadians(dv.getFloat64(o, true) * 180);
|
|
196
|
-
o += sizeOfDouble;
|
|
197
|
-
if (indexOfEpsilon(quadBorderLongitudes, x) === -1) {
|
|
198
|
-
quadBorderLongitudes.push(x);
|
|
199
|
-
}
|
|
200
|
-
const y = Math_default.toRadians(dv.getFloat64(o, true) * 180);
|
|
201
|
-
o += sizeOfDouble;
|
|
202
|
-
if (indexOfEpsilon(quadBorderLatitudes, y) === -1) {
|
|
203
|
-
quadBorderLatitudes.push(y);
|
|
204
|
-
}
|
|
205
|
-
o += 2 * sizeOfDouble;
|
|
206
|
-
let c = dv.getInt32(o, true);
|
|
207
|
-
o += sizeOfInt32;
|
|
208
|
-
size += c;
|
|
209
|
-
c = dv.getInt32(o, true);
|
|
210
|
-
indicesSize += c * 3;
|
|
211
|
-
offset += quadSize + sizeOfUint32;
|
|
212
|
-
}
|
|
213
|
-
const quadBorderPoints = [];
|
|
214
|
-
const quadBorderIndices = [];
|
|
215
|
-
const positions = new Array(size);
|
|
216
|
-
const uvs = new Array(size);
|
|
217
|
-
const heights = new Array(size);
|
|
218
|
-
const webMercatorTs = includeWebMercatorT ? new Array(size) : [];
|
|
219
|
-
const geodeticSurfaceNormals = includeGeodeticSurfaceNormals ? new Array(size) : [];
|
|
220
|
-
const indices = new Array(indicesSize);
|
|
221
|
-
const westBorder = [];
|
|
222
|
-
const southBorder = [];
|
|
223
|
-
const eastBorder = [];
|
|
224
|
-
const northBorder = [];
|
|
225
|
-
let pointOffset = 0;
|
|
226
|
-
let indicesOffset = 0;
|
|
227
|
-
offset = 0;
|
|
228
|
-
for (quad = 0; quad < 4; ++quad) {
|
|
229
|
-
quadSize = dv.getUint32(offset, true);
|
|
230
|
-
offset += sizeOfUint32;
|
|
231
|
-
const startQuad = offset;
|
|
232
|
-
const originX = Math_default.toRadians(dv.getFloat64(offset, true) * 180);
|
|
233
|
-
offset += sizeOfDouble;
|
|
234
|
-
const originY = Math_default.toRadians(dv.getFloat64(offset, true) * 180);
|
|
235
|
-
offset += sizeOfDouble;
|
|
236
|
-
const stepX = Math_default.toRadians(dv.getFloat64(offset, true) * 180);
|
|
237
|
-
const halfStepX = stepX * 0.5;
|
|
238
|
-
offset += sizeOfDouble;
|
|
239
|
-
const stepY = Math_default.toRadians(dv.getFloat64(offset, true) * 180);
|
|
240
|
-
const halfStepY = stepY * 0.5;
|
|
241
|
-
offset += sizeOfDouble;
|
|
242
|
-
const numPoints = dv.getInt32(offset, true);
|
|
243
|
-
offset += sizeOfInt32;
|
|
244
|
-
const numFaces = dv.getInt32(offset, true);
|
|
245
|
-
offset += sizeOfInt32;
|
|
246
|
-
offset += sizeOfInt32;
|
|
247
|
-
const indicesMapping = new Array(numPoints);
|
|
248
|
-
for (let i = 0; i < numPoints; ++i) {
|
|
249
|
-
const longitude = originX + dv.getUint8(offset++) * stepX;
|
|
250
|
-
scratchCartographic.longitude = longitude;
|
|
251
|
-
const latitude = originY + dv.getUint8(offset++) * stepY;
|
|
252
|
-
scratchCartographic.latitude = latitude;
|
|
253
|
-
let height = dv.getFloat32(offset, true);
|
|
254
|
-
offset += sizeOfFloat;
|
|
255
|
-
if (height !== 0 && height < negativeElevationThreshold) {
|
|
256
|
-
height *= -Math.pow(2, negativeAltitudeExponentBias);
|
|
257
|
-
}
|
|
258
|
-
height *= 6371010;
|
|
259
|
-
scratchCartographic.height = height;
|
|
260
|
-
if (indexOfEpsilon(quadBorderLongitudes, longitude) !== -1 || indexOfEpsilon(quadBorderLatitudes, latitude) !== -1) {
|
|
261
|
-
const index = indexOfEpsilon(
|
|
262
|
-
quadBorderPoints,
|
|
263
|
-
scratchCartographic,
|
|
264
|
-
Cartographic_default
|
|
265
|
-
);
|
|
266
|
-
if (index === -1) {
|
|
267
|
-
quadBorderPoints.push(Cartographic_default.clone(scratchCartographic));
|
|
268
|
-
quadBorderIndices.push(pointOffset);
|
|
269
|
-
} else {
|
|
270
|
-
indicesMapping[i] = quadBorderIndices[index];
|
|
271
|
-
continue;
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
indicesMapping[i] = pointOffset;
|
|
275
|
-
if (Math.abs(longitude - geographicWest) < halfStepX) {
|
|
276
|
-
westBorder.push({
|
|
277
|
-
index: pointOffset,
|
|
278
|
-
cartographic: Cartographic_default.clone(scratchCartographic)
|
|
279
|
-
});
|
|
280
|
-
} else if (Math.abs(longitude - geographicEast) < halfStepX) {
|
|
281
|
-
eastBorder.push({
|
|
282
|
-
index: pointOffset,
|
|
283
|
-
cartographic: Cartographic_default.clone(scratchCartographic)
|
|
284
|
-
});
|
|
285
|
-
} else if (Math.abs(latitude - geographicSouth) < halfStepY) {
|
|
286
|
-
southBorder.push({
|
|
287
|
-
index: pointOffset,
|
|
288
|
-
cartographic: Cartographic_default.clone(scratchCartographic)
|
|
289
|
-
});
|
|
290
|
-
} else if (Math.abs(latitude - geographicNorth) < halfStepY) {
|
|
291
|
-
northBorder.push({
|
|
292
|
-
index: pointOffset,
|
|
293
|
-
cartographic: Cartographic_default.clone(scratchCartographic)
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
minHeight = Math.min(height, minHeight);
|
|
297
|
-
maxHeight = Math.max(height, maxHeight);
|
|
298
|
-
heights[pointOffset] = height;
|
|
299
|
-
const pos = ellipsoid.cartographicToCartesian(scratchCartographic);
|
|
300
|
-
positions[pointOffset] = pos;
|
|
301
|
-
if (includeWebMercatorT) {
|
|
302
|
-
webMercatorTs[pointOffset] = (WebMercatorProjection_default.geodeticLatitudeToMercatorAngle(latitude) - southMercatorY) * oneOverMercatorHeight;
|
|
303
|
-
}
|
|
304
|
-
if (includeGeodeticSurfaceNormals) {
|
|
305
|
-
const normal = ellipsoid.geodeticSurfaceNormal(pos);
|
|
306
|
-
geodeticSurfaceNormals[pointOffset] = normal;
|
|
307
|
-
}
|
|
308
|
-
Matrix4_default.multiplyByPoint(toENU, pos, scratchCartesian);
|
|
309
|
-
Cartesian3_default.minimumByComponent(scratchCartesian, minimum, minimum);
|
|
310
|
-
Cartesian3_default.maximumByComponent(scratchCartesian, maximum, maximum);
|
|
311
|
-
let u = (longitude - geographicWest) / (geographicEast - geographicWest);
|
|
312
|
-
u = Math_default.clamp(u, 0, 1);
|
|
313
|
-
let v = (latitude - geographicSouth) / (geographicNorth - geographicSouth);
|
|
314
|
-
v = Math_default.clamp(v, 0, 1);
|
|
315
|
-
uvs[pointOffset] = new Cartesian2_default(u, v);
|
|
316
|
-
++pointOffset;
|
|
317
|
-
}
|
|
318
|
-
const facesElementCount = numFaces * 3;
|
|
319
|
-
for (let j = 0; j < facesElementCount; ++j, ++indicesOffset) {
|
|
320
|
-
indices[indicesOffset] = indicesMapping[dv.getUint16(offset, true)];
|
|
321
|
-
offset += sizeOfUint16;
|
|
322
|
-
}
|
|
323
|
-
if (quadSize !== offset - startQuad) {
|
|
324
|
-
throw new RuntimeError_default("Invalid terrain tile.");
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
positions.length = pointOffset;
|
|
328
|
-
uvs.length = pointOffset;
|
|
329
|
-
heights.length = pointOffset;
|
|
330
|
-
if (includeWebMercatorT) {
|
|
331
|
-
webMercatorTs.length = pointOffset;
|
|
332
|
-
}
|
|
333
|
-
if (includeGeodeticSurfaceNormals) {
|
|
334
|
-
geodeticSurfaceNormals.length = pointOffset;
|
|
335
|
-
}
|
|
336
|
-
const vertexCountWithoutSkirts = pointOffset;
|
|
337
|
-
const indexCountWithoutSkirts = indicesOffset;
|
|
338
|
-
const skirtOptions = {
|
|
339
|
-
hMin: minHeight,
|
|
340
|
-
lastBorderPoint: void 0,
|
|
341
|
-
skirtHeight,
|
|
342
|
-
toENU,
|
|
343
|
-
ellipsoid,
|
|
344
|
-
minimum,
|
|
345
|
-
maximum
|
|
346
|
-
};
|
|
347
|
-
westBorder.sort(function(a, b) {
|
|
348
|
-
return b.cartographic.latitude - a.cartographic.latitude;
|
|
349
|
-
});
|
|
350
|
-
southBorder.sort(function(a, b) {
|
|
351
|
-
return a.cartographic.longitude - b.cartographic.longitude;
|
|
352
|
-
});
|
|
353
|
-
eastBorder.sort(function(a, b) {
|
|
354
|
-
return a.cartographic.latitude - b.cartographic.latitude;
|
|
355
|
-
});
|
|
356
|
-
northBorder.sort(function(a, b) {
|
|
357
|
-
return b.cartographic.longitude - a.cartographic.longitude;
|
|
358
|
-
});
|
|
359
|
-
const percentage = 1e-5;
|
|
360
|
-
addSkirt(
|
|
361
|
-
positions,
|
|
362
|
-
heights,
|
|
363
|
-
uvs,
|
|
364
|
-
webMercatorTs,
|
|
365
|
-
geodeticSurfaceNormals,
|
|
366
|
-
indices,
|
|
367
|
-
skirtOptions,
|
|
368
|
-
westBorder,
|
|
369
|
-
-percentage * rectangleWidth,
|
|
370
|
-
true,
|
|
371
|
-
-percentage * rectangleHeight
|
|
372
|
-
);
|
|
373
|
-
addSkirt(
|
|
374
|
-
positions,
|
|
375
|
-
heights,
|
|
376
|
-
uvs,
|
|
377
|
-
webMercatorTs,
|
|
378
|
-
geodeticSurfaceNormals,
|
|
379
|
-
indices,
|
|
380
|
-
skirtOptions,
|
|
381
|
-
southBorder,
|
|
382
|
-
-percentage * rectangleHeight,
|
|
383
|
-
false
|
|
384
|
-
);
|
|
385
|
-
addSkirt(
|
|
386
|
-
positions,
|
|
387
|
-
heights,
|
|
388
|
-
uvs,
|
|
389
|
-
webMercatorTs,
|
|
390
|
-
geodeticSurfaceNormals,
|
|
391
|
-
indices,
|
|
392
|
-
skirtOptions,
|
|
393
|
-
eastBorder,
|
|
394
|
-
percentage * rectangleWidth,
|
|
395
|
-
true,
|
|
396
|
-
percentage * rectangleHeight
|
|
397
|
-
);
|
|
398
|
-
addSkirt(
|
|
399
|
-
positions,
|
|
400
|
-
heights,
|
|
401
|
-
uvs,
|
|
402
|
-
webMercatorTs,
|
|
403
|
-
geodeticSurfaceNormals,
|
|
404
|
-
indices,
|
|
405
|
-
skirtOptions,
|
|
406
|
-
northBorder,
|
|
407
|
-
percentage * rectangleHeight,
|
|
408
|
-
false
|
|
409
|
-
);
|
|
410
|
-
if (westBorder.length > 0 && northBorder.length > 0) {
|
|
411
|
-
const firstBorderIndex = westBorder[0].index;
|
|
412
|
-
const firstSkirtIndex = vertexCountWithoutSkirts;
|
|
413
|
-
const lastBorderIndex = northBorder[northBorder.length - 1].index;
|
|
414
|
-
const lastSkirtIndex = positions.length - 1;
|
|
415
|
-
indices.push(
|
|
416
|
-
lastBorderIndex,
|
|
417
|
-
lastSkirtIndex,
|
|
418
|
-
firstSkirtIndex,
|
|
419
|
-
firstSkirtIndex,
|
|
420
|
-
firstBorderIndex,
|
|
421
|
-
lastBorderIndex
|
|
422
|
-
);
|
|
423
|
-
}
|
|
424
|
-
size = positions.length;
|
|
425
|
-
const boundingSphere3D = BoundingSphere_default.fromPoints(positions);
|
|
426
|
-
let orientedBoundingBox;
|
|
427
|
-
if (defined_default(rectangle)) {
|
|
428
|
-
orientedBoundingBox = OrientedBoundingBox_default.fromRectangle(
|
|
429
|
-
rectangle,
|
|
430
|
-
minHeight,
|
|
431
|
-
maxHeight,
|
|
432
|
-
ellipsoid
|
|
433
|
-
);
|
|
434
|
-
}
|
|
435
|
-
const occluder = new EllipsoidalOccluder_default(ellipsoid);
|
|
436
|
-
const occludeePointInScaledSpace = occluder.computeHorizonCullingPointPossiblyUnderEllipsoid(
|
|
437
|
-
relativeToCenter,
|
|
438
|
-
positions,
|
|
439
|
-
minHeight
|
|
440
|
-
);
|
|
441
|
-
const aaBox = new AxisAlignedBoundingBox_default(minimum, maximum, relativeToCenter);
|
|
442
|
-
const encoding = new TerrainEncoding_default(
|
|
443
|
-
relativeToCenter,
|
|
444
|
-
aaBox,
|
|
445
|
-
skirtOptions.hMin,
|
|
446
|
-
maxHeight,
|
|
447
|
-
fromENU,
|
|
448
|
-
false,
|
|
449
|
-
includeWebMercatorT,
|
|
450
|
-
includeGeodeticSurfaceNormals,
|
|
451
|
-
exaggeration,
|
|
452
|
-
exaggerationRelativeHeight
|
|
453
|
-
);
|
|
454
|
-
const vertices = new Float32Array(size * encoding.stride);
|
|
455
|
-
let bufferIndex = 0;
|
|
456
|
-
for (let k = 0; k < size; ++k) {
|
|
457
|
-
bufferIndex = encoding.encode(
|
|
458
|
-
vertices,
|
|
459
|
-
bufferIndex,
|
|
460
|
-
positions[k],
|
|
461
|
-
uvs[k],
|
|
462
|
-
heights[k],
|
|
463
|
-
void 0,
|
|
464
|
-
webMercatorTs[k],
|
|
465
|
-
geodeticSurfaceNormals[k]
|
|
466
|
-
);
|
|
467
|
-
}
|
|
468
|
-
const westIndicesSouthToNorth = westBorder.map(function(vertex) {
|
|
469
|
-
return vertex.index;
|
|
470
|
-
}).reverse();
|
|
471
|
-
const southIndicesEastToWest = southBorder.map(function(vertex) {
|
|
472
|
-
return vertex.index;
|
|
473
|
-
}).reverse();
|
|
474
|
-
const eastIndicesNorthToSouth = eastBorder.map(function(vertex) {
|
|
475
|
-
return vertex.index;
|
|
476
|
-
}).reverse();
|
|
477
|
-
const northIndicesWestToEast = northBorder.map(function(vertex) {
|
|
478
|
-
return vertex.index;
|
|
479
|
-
}).reverse();
|
|
480
|
-
southIndicesEastToWest.unshift(
|
|
481
|
-
eastIndicesNorthToSouth[eastIndicesNorthToSouth.length - 1]
|
|
482
|
-
);
|
|
483
|
-
southIndicesEastToWest.push(westIndicesSouthToNorth[0]);
|
|
484
|
-
northIndicesWestToEast.unshift(
|
|
485
|
-
westIndicesSouthToNorth[westIndicesSouthToNorth.length - 1]
|
|
486
|
-
);
|
|
487
|
-
northIndicesWestToEast.push(eastIndicesNorthToSouth[0]);
|
|
488
|
-
return {
|
|
489
|
-
vertices,
|
|
490
|
-
indices: new Uint16Array(indices),
|
|
491
|
-
maximumHeight: maxHeight,
|
|
492
|
-
minimumHeight: minHeight,
|
|
493
|
-
encoding,
|
|
494
|
-
boundingSphere3D,
|
|
495
|
-
orientedBoundingBox,
|
|
496
|
-
occludeePointInScaledSpace,
|
|
497
|
-
vertexCountWithoutSkirts,
|
|
498
|
-
indexCountWithoutSkirts,
|
|
499
|
-
westIndicesSouthToNorth,
|
|
500
|
-
southIndicesEastToWest,
|
|
501
|
-
eastIndicesNorthToSouth,
|
|
502
|
-
northIndicesWestToEast
|
|
503
|
-
};
|
|
504
|
-
}
|
|
505
|
-
function addSkirt(positions, heights, uvs, webMercatorTs, geodeticSurfaceNormals, indices, skirtOptions, borderPoints, fudgeFactor, eastOrWest, cornerFudge) {
|
|
506
|
-
const count = borderPoints.length;
|
|
507
|
-
for (let j = 0; j < count; ++j) {
|
|
508
|
-
const borderPoint = borderPoints[j];
|
|
509
|
-
const borderCartographic = borderPoint.cartographic;
|
|
510
|
-
const borderIndex = borderPoint.index;
|
|
511
|
-
const currentIndex = positions.length;
|
|
512
|
-
const longitude = borderCartographic.longitude;
|
|
513
|
-
let latitude = borderCartographic.latitude;
|
|
514
|
-
latitude = Math_default.clamp(
|
|
515
|
-
latitude,
|
|
516
|
-
-Math_default.PI_OVER_TWO,
|
|
517
|
-
Math_default.PI_OVER_TWO
|
|
518
|
-
);
|
|
519
|
-
const height = borderCartographic.height - skirtOptions.skirtHeight;
|
|
520
|
-
skirtOptions.hMin = Math.min(skirtOptions.hMin, height);
|
|
521
|
-
Cartographic_default.fromRadians(longitude, latitude, height, scratchCartographic);
|
|
522
|
-
if (eastOrWest) {
|
|
523
|
-
scratchCartographic.longitude += fudgeFactor;
|
|
524
|
-
}
|
|
525
|
-
if (!eastOrWest) {
|
|
526
|
-
scratchCartographic.latitude += fudgeFactor;
|
|
527
|
-
} else if (j === count - 1) {
|
|
528
|
-
scratchCartographic.latitude += cornerFudge;
|
|
529
|
-
} else if (j === 0) {
|
|
530
|
-
scratchCartographic.latitude -= cornerFudge;
|
|
531
|
-
}
|
|
532
|
-
const pos = skirtOptions.ellipsoid.cartographicToCartesian(
|
|
533
|
-
scratchCartographic
|
|
534
|
-
);
|
|
535
|
-
positions.push(pos);
|
|
536
|
-
heights.push(height);
|
|
537
|
-
uvs.push(Cartesian2_default.clone(uvs[borderIndex]));
|
|
538
|
-
if (webMercatorTs.length > 0) {
|
|
539
|
-
webMercatorTs.push(webMercatorTs[borderIndex]);
|
|
540
|
-
}
|
|
541
|
-
if (geodeticSurfaceNormals.length > 0) {
|
|
542
|
-
geodeticSurfaceNormals.push(geodeticSurfaceNormals[borderIndex]);
|
|
543
|
-
}
|
|
544
|
-
Matrix4_default.multiplyByPoint(skirtOptions.toENU, pos, scratchCartesian);
|
|
545
|
-
const minimum = skirtOptions.minimum;
|
|
546
|
-
const maximum = skirtOptions.maximum;
|
|
547
|
-
Cartesian3_default.minimumByComponent(scratchCartesian, minimum, minimum);
|
|
548
|
-
Cartesian3_default.maximumByComponent(scratchCartesian, maximum, maximum);
|
|
549
|
-
const lastBorderPoint = skirtOptions.lastBorderPoint;
|
|
550
|
-
if (defined_default(lastBorderPoint)) {
|
|
551
|
-
const lastBorderIndex = lastBorderPoint.index;
|
|
552
|
-
indices.push(
|
|
553
|
-
lastBorderIndex,
|
|
554
|
-
currentIndex - 1,
|
|
555
|
-
currentIndex,
|
|
556
|
-
currentIndex,
|
|
557
|
-
borderIndex,
|
|
558
|
-
lastBorderIndex
|
|
559
|
-
);
|
|
560
|
-
}
|
|
561
|
-
skirtOptions.lastBorderPoint = borderPoint;
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
var createVerticesFromGoogleEarthEnterpriseBuffer_default = createTaskProcessorWorker_default(
|
|
565
|
-
createVerticesFromGoogleEarthEnterpriseBuffer
|
|
566
|
-
);
|
|
567
|
-
export {
|
|
568
|
-
createVerticesFromGoogleEarthEnterpriseBuffer_default as default
|
|
569
|
-
};
|
|
26
|
+
import{a as Dt,b as Gt}from"./chunk-7HTKERZY.js";import{a as Lt}from"./chunk-WZDE3RYP.js";import{a as lt}from"./chunk-DQQ63PYM.js";import{a as qt}from"./chunk-CNCV5UL7.js";import"./chunk-DEPHB2WM.js";import"./chunk-TCGIRNHN.js";import{a as kt}from"./chunk-N4VJKXZS.js";import"./chunk-DMEY62ID.js";import"./chunk-HTFSEEMT.js";import{d as zt}from"./chunk-4IW2T6GF.js";import{b as $,g as Ot,h as Vt}from"./chunk-PSPPBZWI.js";import"./chunk-AU7IKHOH.js";import{a as P,b as N,c as wt,d as Ut}from"./chunk-64RSHJUE.js";import{a as r}from"./chunk-3SSKC3VN.js";import"./chunk-OSW76XDF.js";import{a as Ht}from"./chunk-ED5JPB3S.js";import"./chunk-LEYMRMBK.js";import{e as ht}from"./chunk-VTAIKJXX.js";var $t=Uint16Array.BYTES_PER_ELEMENT,mt=Int32Array.BYTES_PER_ELEMENT,Pt=Uint32Array.BYTES_PER_ELEMENT,te=Float32Array.BYTES_PER_ELEMENT,H=Float64Array.BYTES_PER_ELEMENT;function tt(n,l,e){e=e??r;let i=n.length;for(let c=0;c<i;++c)if(e.equalsEpsilon(n[c],l,r.EPSILON12))return c;return-1}function ee(n,l){n.ellipsoid=Ut.clone(n.ellipsoid),n.rectangle=Vt.clone(n.rectangle);let e=re(n.buffer,n.relativeToCenter,n.ellipsoid,n.rectangle,n.nativeRectangle,n.exaggeration,n.exaggerationRelativeHeight,n.skirtHeight,n.includeWebMercatorT,n.negativeAltitudeExponentBias,n.negativeElevationThreshold),i=e.vertices;l.push(i.buffer);let c=e.indices;return l.push(c.buffer),{vertices:i.buffer,indices:c.buffer,numberOfAttributes:e.encoding.stride,minimumHeight:e.minimumHeight,maximumHeight:e.maximumHeight,boundingSphere3D:e.boundingSphere3D,orientedBoundingBox:e.orientedBoundingBox,occludeePointInScaledSpace:e.occludeePointInScaledSpace,encoding:e.encoding,vertexCountWithoutSkirts:e.vertexCountWithoutSkirts,indexCountWithoutSkirts:e.indexCountWithoutSkirts,westIndicesSouthToNorth:e.westIndicesSouthToNorth,southIndicesEastToWest:e.southIndicesEastToWest,eastIndicesNorthToSouth:e.eastIndicesNorthToSouth,northIndicesWestToEast:e.northIndicesWestToEast}}var u=new N,G=new P,oe=new P,ne=new P,ie=new $;function re(n,l,e,i,c,et,m,ot,T,nt,it){let I,h,E,f,x,p;ht(i)?(I=i.west,h=i.south,E=i.east,f=i.north,x=i.width,p=i.height):(I=r.toRadians(c.west),h=r.toRadians(c.south),E=r.toRadians(c.east),f=r.toRadians(c.north),x=r.toRadians(i.width),p=r.toRadians(i.height));let X=[h,f],A=[I,E],O=Ot.eastNorthUpToFixedFrame(l,e),j=$.inverseTransformation(O,ie),V,Q;T&&(V=lt.geodeticLatitudeToMercatorAngle(h),Q=1/(lt.geodeticLatitudeToMercatorAngle(f)-V));let y=et!==1,a=new DataView(n),z=Number.POSITIVE_INFINITY,J=Number.NEGATIVE_INFINITY,b=oe;b.x=Number.POSITIVE_INFINITY,b.y=Number.POSITIVE_INFINITY,b.z=Number.POSITIVE_INFINITY;let M=ne;M.x=Number.NEGATIVE_INFINITY,M.y=Number.NEGATIVE_INFINITY,M.z=Number.NEGATIVE_INFINITY;let o=0,S=0,At=0,rt,L;for(L=0;L<4;++L){let t=o;rt=a.getUint32(t,!0),t+=Pt;let d=r.toRadians(a.getFloat64(t,!0)*180);t+=H,tt(A,d)===-1&&A.push(d);let Y=r.toRadians(a.getFloat64(t,!0)*180);t+=H,tt(X,Y)===-1&&X.push(Y),t+=2*H;let B=a.getInt32(t,!0);t+=mt,S+=B,B=a.getInt32(t,!0),At+=B*3,o+=rt+Pt}let yt=[],bt=[],g=new Array(S),R=new Array(S),_=new Array(S),C=T?new Array(S):[],F=y?new Array(S):[],v=new Array(At),k=[],st=[],ct=[],W=[],s=0,pt=0;for(o=0,L=0;L<4;++L){rt=a.getUint32(o,!0),o+=Pt;let t=o,d=r.toRadians(a.getFloat64(o,!0)*180);o+=H;let Y=r.toRadians(a.getFloat64(o,!0)*180);o+=H;let B=r.toRadians(a.getFloat64(o,!0)*180),Ft=B*.5;o+=H;let vt=r.toRadians(a.getFloat64(o,!0)*180),Wt=vt*.5;o+=H;let Yt=a.getInt32(o,!0);o+=mt;let Kt=a.getInt32(o,!0);o+=mt,o+=mt;let St=new Array(Yt);for(let U=0;U<Yt;++U){let Z=d+a.getUint8(o++)*B;u.longitude=Z;let D=Y+a.getUint8(o++)*vt;u.latitude=D;let w=a.getFloat32(o,!0);if(o+=te,w!==0&&w<it&&(w*=-Math.pow(2,nt)),w*=6371010,u.height=w,tt(A,Z)!==-1||tt(X,D)!==-1){let dt=tt(yt,u,N);if(dt===-1)yt.push(N.clone(u)),bt.push(s);else{St[U]=bt[dt];continue}}St[U]=s,Math.abs(Z-I)<Ft?k.push({index:s,cartographic:N.clone(u)}):Math.abs(Z-E)<Ft?ct.push({index:s,cartographic:N.clone(u)}):Math.abs(D-h)<Wt?st.push({index:s,cartographic:N.clone(u)}):Math.abs(D-f)<Wt&&W.push({index:s,cartographic:N.clone(u)}),z=Math.min(w,z),J=Math.max(w,J),_[s]=w;let Nt=e.cartographicToCartesian(u);if(g[s]=Nt,T&&(C[s]=(lt.geodeticLatitudeToMercatorAngle(D)-V)*Q),y){let dt=e.geodeticSurfaceNormal(Nt);F[s]=dt}$.multiplyByPoint(j,Nt,G),P.minimumByComponent(G,b,b),P.maximumByComponent(G,M,M);let Tt=(Z-I)/(E-I);Tt=r.clamp(Tt,0,1);let Bt=(D-h)/(f-h);Bt=r.clamp(Bt,0,1),R[s]=new wt(Tt,Bt),++s}let Zt=Kt*3;for(let U=0;U<Zt;++U,++pt)v[pt]=St[a.getUint16(o,!0)],o+=$t;if(rt!==o-t)throw new Ht("Invalid terrain tile.")}g.length=s,R.length=s,_.length=s,T&&(C.length=s),y&&(F.length=s);let Mt=s,Xt=pt,K={hMin:z,lastBorderPoint:void 0,skirtHeight:ot,toENU:j,ellipsoid:e,minimum:b,maximum:M};k.sort(function(t,d){return d.cartographic.latitude-t.cartographic.latitude}),st.sort(function(t,d){return t.cartographic.longitude-d.cartographic.longitude}),ct.sort(function(t,d){return t.cartographic.latitude-d.cartographic.latitude}),W.sort(function(t,d){return d.cartographic.longitude-t.cartographic.longitude});let q=1e-5;if(gt(g,_,R,C,F,v,K,k,-q*x,!0,-q*p),gt(g,_,R,C,F,v,K,st,-q*p,!1),gt(g,_,R,C,F,v,K,ct,q*x,!0,q*p),gt(g,_,R,C,F,v,K,W,q*p,!1),k.length>0&&W.length>0){let t=k[0].index,d=Mt,Y=W[W.length-1].index,B=g.length-1;v.push(Y,B,d,d,t,Y)}S=g.length;let jt=zt.fromPoints(g),Rt;ht(i)&&(Rt=qt.fromRectangle(i,z,J,e));let Qt=new Dt(e).computeHorizonCullingPointPossiblyUnderEllipsoid(l,g,z),Jt=new kt(b,M,l),It=new Gt(l,Jt,K.hMin,J,O,!1,T,y,et,m),_t=new Float32Array(S*It.stride),Ct=0;for(let t=0;t<S;++t)Ct=It.encode(_t,Ct,g[t],R[t],_[t],void 0,C[t],F[t]);let at=k.map(function(t){return t.index}).reverse(),Et=st.map(function(t){return t.index}).reverse(),ut=ct.map(function(t){return t.index}).reverse(),xt=W.map(function(t){return t.index}).reverse();return Et.unshift(ut[ut.length-1]),Et.push(at[0]),xt.unshift(at[at.length-1]),xt.push(ut[0]),{vertices:_t,indices:new Uint16Array(v),maximumHeight:J,minimumHeight:z,encoding:It,boundingSphere3D:jt,orientedBoundingBox:Rt,occludeePointInScaledSpace:Qt,vertexCountWithoutSkirts:Mt,indexCountWithoutSkirts:Xt,westIndicesSouthToNorth:at,southIndicesEastToWest:Et,eastIndicesNorthToSouth:ut,northIndicesWestToEast:xt}}function gt(n,l,e,i,c,et,m,ot,T,nt,it){let I=ot.length;for(let h=0;h<I;++h){let E=ot[h],f=E.cartographic,x=E.index,p=n.length,X=f.longitude,A=f.latitude;A=r.clamp(A,-r.PI_OVER_TWO,r.PI_OVER_TWO);let O=f.height-m.skirtHeight;m.hMin=Math.min(m.hMin,O),N.fromRadians(X,A,O,u),nt&&(u.longitude+=T),nt?h===I-1?u.latitude+=it:h===0&&(u.latitude-=it):u.latitude+=T;let j=m.ellipsoid.cartographicToCartesian(u);n.push(j),l.push(O),e.push(wt.clone(e[x])),i.length>0&&i.push(i[x]),c.length>0&&c.push(c[x]),$.multiplyByPoint(m.toENU,j,G);let V=m.minimum,Q=m.maximum;P.minimumByComponent(G,V,V),P.maximumByComponent(G,Q,Q);let ft=m.lastBorderPoint;if(ht(ft)){let y=ft.index;et.push(y,p-1,p,p,x,y)}m.lastBorderPoint=E}}var we=Lt(ee);export{we as default};
|