@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,443 +0,0 @@
|
|
|
1
|
-
define(['exports', './Transforms-b527bb09', './Matrix3-41c58dde', './ComponentDatatype-cf1fa08e', './defaultValue-fe22d8c0', './Check-6ede7e26', './EllipseGeometryLibrary-b0d7df17', './GeometryAttribute-a5b6275b', './GeometryAttributes-ad136444', './GeometryOffsetAttribute-9ad0019c', './IndexDatatype-2643aa47', './Math-0a2ac845'], (function (exports, Transforms, Matrix3, ComponentDatatype, defaultValue, Check, EllipseGeometryLibrary, GeometryAttribute, GeometryAttributes, GeometryOffsetAttribute, IndexDatatype, Math$1) { 'use strict';
|
|
2
|
-
|
|
3
|
-
const scratchCartesian1 = new Matrix3.Cartesian3();
|
|
4
|
-
let boundingSphereCenter = new Matrix3.Cartesian3();
|
|
5
|
-
|
|
6
|
-
function computeEllipse(options) {
|
|
7
|
-
const center = options.center;
|
|
8
|
-
boundingSphereCenter = Matrix3.Cartesian3.multiplyByScalar(
|
|
9
|
-
options.ellipsoid.geodeticSurfaceNormal(center, boundingSphereCenter),
|
|
10
|
-
options.height,
|
|
11
|
-
boundingSphereCenter
|
|
12
|
-
);
|
|
13
|
-
boundingSphereCenter = Matrix3.Cartesian3.add(
|
|
14
|
-
center,
|
|
15
|
-
boundingSphereCenter,
|
|
16
|
-
boundingSphereCenter
|
|
17
|
-
);
|
|
18
|
-
const boundingSphere = new Transforms.BoundingSphere(
|
|
19
|
-
boundingSphereCenter,
|
|
20
|
-
options.semiMajorAxis
|
|
21
|
-
);
|
|
22
|
-
const positions = EllipseGeometryLibrary.EllipseGeometryLibrary.computeEllipsePositions(
|
|
23
|
-
options,
|
|
24
|
-
false,
|
|
25
|
-
true
|
|
26
|
-
).outerPositions;
|
|
27
|
-
|
|
28
|
-
const attributes = new GeometryAttributes.GeometryAttributes({
|
|
29
|
-
position: new GeometryAttribute.GeometryAttribute({
|
|
30
|
-
componentDatatype: ComponentDatatype.ComponentDatatype.DOUBLE,
|
|
31
|
-
componentsPerAttribute: 3,
|
|
32
|
-
values: EllipseGeometryLibrary.EllipseGeometryLibrary.raisePositionsToHeight(
|
|
33
|
-
positions,
|
|
34
|
-
options,
|
|
35
|
-
false
|
|
36
|
-
),
|
|
37
|
-
}),
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
const length = positions.length / 3;
|
|
41
|
-
const indices = IndexDatatype.IndexDatatype.createTypedArray(length, length * 2);
|
|
42
|
-
let index = 0;
|
|
43
|
-
for (let i = 0; i < length; ++i) {
|
|
44
|
-
indices[index++] = i;
|
|
45
|
-
indices[index++] = (i + 1) % length;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return {
|
|
49
|
-
boundingSphere: boundingSphere,
|
|
50
|
-
attributes: attributes,
|
|
51
|
-
indices: indices,
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
const topBoundingSphere = new Transforms.BoundingSphere();
|
|
56
|
-
const bottomBoundingSphere = new Transforms.BoundingSphere();
|
|
57
|
-
function computeExtrudedEllipse(options) {
|
|
58
|
-
const center = options.center;
|
|
59
|
-
const ellipsoid = options.ellipsoid;
|
|
60
|
-
const semiMajorAxis = options.semiMajorAxis;
|
|
61
|
-
let scaledNormal = Matrix3.Cartesian3.multiplyByScalar(
|
|
62
|
-
ellipsoid.geodeticSurfaceNormal(center, scratchCartesian1),
|
|
63
|
-
options.height,
|
|
64
|
-
scratchCartesian1
|
|
65
|
-
);
|
|
66
|
-
topBoundingSphere.center = Matrix3.Cartesian3.add(
|
|
67
|
-
center,
|
|
68
|
-
scaledNormal,
|
|
69
|
-
topBoundingSphere.center
|
|
70
|
-
);
|
|
71
|
-
topBoundingSphere.radius = semiMajorAxis;
|
|
72
|
-
|
|
73
|
-
scaledNormal = Matrix3.Cartesian3.multiplyByScalar(
|
|
74
|
-
ellipsoid.geodeticSurfaceNormal(center, scaledNormal),
|
|
75
|
-
options.extrudedHeight,
|
|
76
|
-
scaledNormal
|
|
77
|
-
);
|
|
78
|
-
bottomBoundingSphere.center = Matrix3.Cartesian3.add(
|
|
79
|
-
center,
|
|
80
|
-
scaledNormal,
|
|
81
|
-
bottomBoundingSphere.center
|
|
82
|
-
);
|
|
83
|
-
bottomBoundingSphere.radius = semiMajorAxis;
|
|
84
|
-
|
|
85
|
-
let positions = EllipseGeometryLibrary.EllipseGeometryLibrary.computeEllipsePositions(
|
|
86
|
-
options,
|
|
87
|
-
false,
|
|
88
|
-
true
|
|
89
|
-
).outerPositions;
|
|
90
|
-
const attributes = new GeometryAttributes.GeometryAttributes({
|
|
91
|
-
position: new GeometryAttribute.GeometryAttribute({
|
|
92
|
-
componentDatatype: ComponentDatatype.ComponentDatatype.DOUBLE,
|
|
93
|
-
componentsPerAttribute: 3,
|
|
94
|
-
values: EllipseGeometryLibrary.EllipseGeometryLibrary.raisePositionsToHeight(
|
|
95
|
-
positions,
|
|
96
|
-
options,
|
|
97
|
-
true
|
|
98
|
-
),
|
|
99
|
-
}),
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
positions = attributes.position.values;
|
|
103
|
-
const boundingSphere = Transforms.BoundingSphere.union(
|
|
104
|
-
topBoundingSphere,
|
|
105
|
-
bottomBoundingSphere
|
|
106
|
-
);
|
|
107
|
-
let length = positions.length / 3;
|
|
108
|
-
|
|
109
|
-
if (defaultValue.defined(options.offsetAttribute)) {
|
|
110
|
-
let applyOffset = new Uint8Array(length);
|
|
111
|
-
if (options.offsetAttribute === GeometryOffsetAttribute.GeometryOffsetAttribute.TOP) {
|
|
112
|
-
applyOffset = applyOffset.fill(1, 0, length / 2);
|
|
113
|
-
} else {
|
|
114
|
-
const offsetValue =
|
|
115
|
-
options.offsetAttribute === GeometryOffsetAttribute.GeometryOffsetAttribute.NONE ? 0 : 1;
|
|
116
|
-
applyOffset = applyOffset.fill(offsetValue);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
attributes.applyOffset = new GeometryAttribute.GeometryAttribute({
|
|
120
|
-
componentDatatype: ComponentDatatype.ComponentDatatype.UNSIGNED_BYTE,
|
|
121
|
-
componentsPerAttribute: 1,
|
|
122
|
-
values: applyOffset,
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
let numberOfVerticalLines = defaultValue.defaultValue(options.numberOfVerticalLines, 16);
|
|
127
|
-
numberOfVerticalLines = Math$1.CesiumMath.clamp(
|
|
128
|
-
numberOfVerticalLines,
|
|
129
|
-
0,
|
|
130
|
-
length / 2
|
|
131
|
-
);
|
|
132
|
-
|
|
133
|
-
const indices = IndexDatatype.IndexDatatype.createTypedArray(
|
|
134
|
-
length,
|
|
135
|
-
length * 2 + numberOfVerticalLines * 2
|
|
136
|
-
);
|
|
137
|
-
|
|
138
|
-
length /= 2;
|
|
139
|
-
let index = 0;
|
|
140
|
-
let i;
|
|
141
|
-
for (i = 0; i < length; ++i) {
|
|
142
|
-
indices[index++] = i;
|
|
143
|
-
indices[index++] = (i + 1) % length;
|
|
144
|
-
indices[index++] = i + length;
|
|
145
|
-
indices[index++] = ((i + 1) % length) + length;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
let numSide;
|
|
149
|
-
if (numberOfVerticalLines > 0) {
|
|
150
|
-
const numSideLines = Math.min(numberOfVerticalLines, length);
|
|
151
|
-
numSide = Math.round(length / numSideLines);
|
|
152
|
-
|
|
153
|
-
const maxI = Math.min(numSide * numberOfVerticalLines, length);
|
|
154
|
-
for (i = 0; i < maxI; i += numSide) {
|
|
155
|
-
indices[index++] = i;
|
|
156
|
-
indices[index++] = i + length;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
return {
|
|
161
|
-
boundingSphere: boundingSphere,
|
|
162
|
-
attributes: attributes,
|
|
163
|
-
indices: indices,
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* A description of the outline of an ellipse on an ellipsoid.
|
|
169
|
-
*
|
|
170
|
-
* @alias EllipseOutlineGeometry
|
|
171
|
-
* @constructor
|
|
172
|
-
*
|
|
173
|
-
* @param {object} options Object with the following properties:
|
|
174
|
-
* @param {Cartesian3} options.center The ellipse's center point in the fixed frame.
|
|
175
|
-
* @param {number} options.semiMajorAxis The length of the ellipse's semi-major axis in meters.
|
|
176
|
-
* @param {number} options.semiMinorAxis The length of the ellipse's semi-minor axis in meters.
|
|
177
|
-
* @param {Ellipsoid} [options.ellipsoid=Ellipsoid.WGS84] The ellipsoid the ellipse will be on.
|
|
178
|
-
* @param {number} [options.height=0.0] The distance in meters between the ellipse and the ellipsoid surface.
|
|
179
|
-
* @param {number} [options.extrudedHeight] The distance in meters between the ellipse's extruded face and the ellipsoid surface.
|
|
180
|
-
* @param {number} [options.rotation=0.0] The angle from north (counter-clockwise) in radians.
|
|
181
|
-
* @param {number} [options.granularity=0.02] The angular distance between points on the ellipse in radians.
|
|
182
|
-
* @param {number} [options.numberOfVerticalLines=16] Number of lines to draw between the top and bottom surface of an extruded ellipse.
|
|
183
|
-
*
|
|
184
|
-
* @exception {DeveloperError} semiMajorAxis and semiMinorAxis must be greater than zero.
|
|
185
|
-
* @exception {DeveloperError} semiMajorAxis must be greater than or equal to the semiMinorAxis.
|
|
186
|
-
* @exception {DeveloperError} granularity must be greater than zero.
|
|
187
|
-
*
|
|
188
|
-
* @see EllipseOutlineGeometry.createGeometry
|
|
189
|
-
*
|
|
190
|
-
* @example
|
|
191
|
-
* const ellipse = new Cesium.EllipseOutlineGeometry({
|
|
192
|
-
* center : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
|
|
193
|
-
* semiMajorAxis : 500000.0,
|
|
194
|
-
* semiMinorAxis : 300000.0,
|
|
195
|
-
* rotation : Cesium.Math.toRadians(60.0)
|
|
196
|
-
* });
|
|
197
|
-
* const geometry = Cesium.EllipseOutlineGeometry.createGeometry(ellipse);
|
|
198
|
-
*/
|
|
199
|
-
function EllipseOutlineGeometry(options) {
|
|
200
|
-
options = defaultValue.defaultValue(options, defaultValue.defaultValue.EMPTY_OBJECT);
|
|
201
|
-
|
|
202
|
-
const center = options.center;
|
|
203
|
-
const ellipsoid = defaultValue.defaultValue(options.ellipsoid, Matrix3.Ellipsoid.WGS84);
|
|
204
|
-
const semiMajorAxis = options.semiMajorAxis;
|
|
205
|
-
const semiMinorAxis = options.semiMinorAxis;
|
|
206
|
-
const granularity = defaultValue.defaultValue(
|
|
207
|
-
options.granularity,
|
|
208
|
-
Math$1.CesiumMath.RADIANS_PER_DEGREE
|
|
209
|
-
);
|
|
210
|
-
|
|
211
|
-
//>>includeStart('debug', pragmas.debug);
|
|
212
|
-
if (!defaultValue.defined(center)) {
|
|
213
|
-
throw new Check.DeveloperError("center is required.");
|
|
214
|
-
}
|
|
215
|
-
if (!defaultValue.defined(semiMajorAxis)) {
|
|
216
|
-
throw new Check.DeveloperError("semiMajorAxis is required.");
|
|
217
|
-
}
|
|
218
|
-
if (!defaultValue.defined(semiMinorAxis)) {
|
|
219
|
-
throw new Check.DeveloperError("semiMinorAxis is required.");
|
|
220
|
-
}
|
|
221
|
-
if (semiMajorAxis < semiMinorAxis) {
|
|
222
|
-
throw new Check.DeveloperError(
|
|
223
|
-
"semiMajorAxis must be greater than or equal to the semiMinorAxis."
|
|
224
|
-
);
|
|
225
|
-
}
|
|
226
|
-
if (granularity <= 0.0) {
|
|
227
|
-
throw new Check.DeveloperError("granularity must be greater than zero.");
|
|
228
|
-
}
|
|
229
|
-
//>>includeEnd('debug');
|
|
230
|
-
|
|
231
|
-
const height = defaultValue.defaultValue(options.height, 0.0);
|
|
232
|
-
const extrudedHeight = defaultValue.defaultValue(options.extrudedHeight, height);
|
|
233
|
-
|
|
234
|
-
this._center = Matrix3.Cartesian3.clone(center);
|
|
235
|
-
this._semiMajorAxis = semiMajorAxis;
|
|
236
|
-
this._semiMinorAxis = semiMinorAxis;
|
|
237
|
-
this._ellipsoid = Matrix3.Ellipsoid.clone(ellipsoid);
|
|
238
|
-
this._rotation = defaultValue.defaultValue(options.rotation, 0.0);
|
|
239
|
-
this._height = Math.max(extrudedHeight, height);
|
|
240
|
-
this._granularity = granularity;
|
|
241
|
-
this._extrudedHeight = Math.min(extrudedHeight, height);
|
|
242
|
-
this._numberOfVerticalLines = Math.max(
|
|
243
|
-
defaultValue.defaultValue(options.numberOfVerticalLines, 16),
|
|
244
|
-
0
|
|
245
|
-
);
|
|
246
|
-
this._offsetAttribute = options.offsetAttribute;
|
|
247
|
-
this._workerName = "createEllipseOutlineGeometry";
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
/**
|
|
251
|
-
* The number of elements used to pack the object into an array.
|
|
252
|
-
* @type {number}
|
|
253
|
-
*/
|
|
254
|
-
EllipseOutlineGeometry.packedLength =
|
|
255
|
-
Matrix3.Cartesian3.packedLength + Matrix3.Ellipsoid.packedLength + 8;
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* Stores the provided instance into the provided array.
|
|
259
|
-
*
|
|
260
|
-
* @param {EllipseOutlineGeometry} value The value to pack.
|
|
261
|
-
* @param {number[]} array The array to pack into.
|
|
262
|
-
* @param {number} [startingIndex=0] The index into the array at which to start packing the elements.
|
|
263
|
-
*
|
|
264
|
-
* @returns {number[]} The array that was packed into
|
|
265
|
-
*/
|
|
266
|
-
EllipseOutlineGeometry.pack = function (value, array, startingIndex) {
|
|
267
|
-
//>>includeStart('debug', pragmas.debug);
|
|
268
|
-
if (!defaultValue.defined(value)) {
|
|
269
|
-
throw new Check.DeveloperError("value is required");
|
|
270
|
-
}
|
|
271
|
-
if (!defaultValue.defined(array)) {
|
|
272
|
-
throw new Check.DeveloperError("array is required");
|
|
273
|
-
}
|
|
274
|
-
//>>includeEnd('debug');
|
|
275
|
-
|
|
276
|
-
startingIndex = defaultValue.defaultValue(startingIndex, 0);
|
|
277
|
-
|
|
278
|
-
Matrix3.Cartesian3.pack(value._center, array, startingIndex);
|
|
279
|
-
startingIndex += Matrix3.Cartesian3.packedLength;
|
|
280
|
-
|
|
281
|
-
Matrix3.Ellipsoid.pack(value._ellipsoid, array, startingIndex);
|
|
282
|
-
startingIndex += Matrix3.Ellipsoid.packedLength;
|
|
283
|
-
|
|
284
|
-
array[startingIndex++] = value._semiMajorAxis;
|
|
285
|
-
array[startingIndex++] = value._semiMinorAxis;
|
|
286
|
-
array[startingIndex++] = value._rotation;
|
|
287
|
-
array[startingIndex++] = value._height;
|
|
288
|
-
array[startingIndex++] = value._granularity;
|
|
289
|
-
array[startingIndex++] = value._extrudedHeight;
|
|
290
|
-
array[startingIndex++] = value._numberOfVerticalLines;
|
|
291
|
-
array[startingIndex] = defaultValue.defaultValue(value._offsetAttribute, -1);
|
|
292
|
-
|
|
293
|
-
return array;
|
|
294
|
-
};
|
|
295
|
-
|
|
296
|
-
const scratchCenter = new Matrix3.Cartesian3();
|
|
297
|
-
const scratchEllipsoid = new Matrix3.Ellipsoid();
|
|
298
|
-
const scratchOptions = {
|
|
299
|
-
center: scratchCenter,
|
|
300
|
-
ellipsoid: scratchEllipsoid,
|
|
301
|
-
semiMajorAxis: undefined,
|
|
302
|
-
semiMinorAxis: undefined,
|
|
303
|
-
rotation: undefined,
|
|
304
|
-
height: undefined,
|
|
305
|
-
granularity: undefined,
|
|
306
|
-
extrudedHeight: undefined,
|
|
307
|
-
numberOfVerticalLines: undefined,
|
|
308
|
-
offsetAttribute: undefined,
|
|
309
|
-
};
|
|
310
|
-
|
|
311
|
-
/**
|
|
312
|
-
* Retrieves an instance from a packed array.
|
|
313
|
-
*
|
|
314
|
-
* @param {number[]} array The packed array.
|
|
315
|
-
* @param {number} [startingIndex=0] The starting index of the element to be unpacked.
|
|
316
|
-
* @param {EllipseOutlineGeometry} [result] The object into which to store the result.
|
|
317
|
-
* @returns {EllipseOutlineGeometry} The modified result parameter or a new EllipseOutlineGeometry instance if one was not provided.
|
|
318
|
-
*/
|
|
319
|
-
EllipseOutlineGeometry.unpack = function (array, startingIndex, result) {
|
|
320
|
-
//>>includeStart('debug', pragmas.debug);
|
|
321
|
-
if (!defaultValue.defined(array)) {
|
|
322
|
-
throw new Check.DeveloperError("array is required");
|
|
323
|
-
}
|
|
324
|
-
//>>includeEnd('debug');
|
|
325
|
-
|
|
326
|
-
startingIndex = defaultValue.defaultValue(startingIndex, 0);
|
|
327
|
-
|
|
328
|
-
const center = Matrix3.Cartesian3.unpack(array, startingIndex, scratchCenter);
|
|
329
|
-
startingIndex += Matrix3.Cartesian3.packedLength;
|
|
330
|
-
|
|
331
|
-
const ellipsoid = Matrix3.Ellipsoid.unpack(array, startingIndex, scratchEllipsoid);
|
|
332
|
-
startingIndex += Matrix3.Ellipsoid.packedLength;
|
|
333
|
-
|
|
334
|
-
const semiMajorAxis = array[startingIndex++];
|
|
335
|
-
const semiMinorAxis = array[startingIndex++];
|
|
336
|
-
const rotation = array[startingIndex++];
|
|
337
|
-
const height = array[startingIndex++];
|
|
338
|
-
const granularity = array[startingIndex++];
|
|
339
|
-
const extrudedHeight = array[startingIndex++];
|
|
340
|
-
const numberOfVerticalLines = array[startingIndex++];
|
|
341
|
-
const offsetAttribute = array[startingIndex];
|
|
342
|
-
|
|
343
|
-
if (!defaultValue.defined(result)) {
|
|
344
|
-
scratchOptions.height = height;
|
|
345
|
-
scratchOptions.extrudedHeight = extrudedHeight;
|
|
346
|
-
scratchOptions.granularity = granularity;
|
|
347
|
-
scratchOptions.rotation = rotation;
|
|
348
|
-
scratchOptions.semiMajorAxis = semiMajorAxis;
|
|
349
|
-
scratchOptions.semiMinorAxis = semiMinorAxis;
|
|
350
|
-
scratchOptions.numberOfVerticalLines = numberOfVerticalLines;
|
|
351
|
-
scratchOptions.offsetAttribute =
|
|
352
|
-
offsetAttribute === -1 ? undefined : offsetAttribute;
|
|
353
|
-
|
|
354
|
-
return new EllipseOutlineGeometry(scratchOptions);
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
result._center = Matrix3.Cartesian3.clone(center, result._center);
|
|
358
|
-
result._ellipsoid = Matrix3.Ellipsoid.clone(ellipsoid, result._ellipsoid);
|
|
359
|
-
result._semiMajorAxis = semiMajorAxis;
|
|
360
|
-
result._semiMinorAxis = semiMinorAxis;
|
|
361
|
-
result._rotation = rotation;
|
|
362
|
-
result._height = height;
|
|
363
|
-
result._granularity = granularity;
|
|
364
|
-
result._extrudedHeight = extrudedHeight;
|
|
365
|
-
result._numberOfVerticalLines = numberOfVerticalLines;
|
|
366
|
-
result._offsetAttribute =
|
|
367
|
-
offsetAttribute === -1 ? undefined : offsetAttribute;
|
|
368
|
-
|
|
369
|
-
return result;
|
|
370
|
-
};
|
|
371
|
-
|
|
372
|
-
/**
|
|
373
|
-
* Computes the geometric representation of an outline of an ellipse on an ellipsoid, including its vertices, indices, and a bounding sphere.
|
|
374
|
-
*
|
|
375
|
-
* @param {EllipseOutlineGeometry} ellipseGeometry A description of the ellipse.
|
|
376
|
-
* @returns {Geometry|undefined} The computed vertices and indices.
|
|
377
|
-
*/
|
|
378
|
-
EllipseOutlineGeometry.createGeometry = function (ellipseGeometry) {
|
|
379
|
-
if (
|
|
380
|
-
ellipseGeometry._semiMajorAxis <= 0.0 ||
|
|
381
|
-
ellipseGeometry._semiMinorAxis <= 0.0
|
|
382
|
-
) {
|
|
383
|
-
return;
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
const height = ellipseGeometry._height;
|
|
387
|
-
const extrudedHeight = ellipseGeometry._extrudedHeight;
|
|
388
|
-
const extrude = !Math$1.CesiumMath.equalsEpsilon(
|
|
389
|
-
height,
|
|
390
|
-
extrudedHeight,
|
|
391
|
-
0,
|
|
392
|
-
Math$1.CesiumMath.EPSILON2
|
|
393
|
-
);
|
|
394
|
-
|
|
395
|
-
ellipseGeometry._center = ellipseGeometry._ellipsoid.scaleToGeodeticSurface(
|
|
396
|
-
ellipseGeometry._center,
|
|
397
|
-
ellipseGeometry._center
|
|
398
|
-
);
|
|
399
|
-
const options = {
|
|
400
|
-
center: ellipseGeometry._center,
|
|
401
|
-
semiMajorAxis: ellipseGeometry._semiMajorAxis,
|
|
402
|
-
semiMinorAxis: ellipseGeometry._semiMinorAxis,
|
|
403
|
-
ellipsoid: ellipseGeometry._ellipsoid,
|
|
404
|
-
rotation: ellipseGeometry._rotation,
|
|
405
|
-
height: height,
|
|
406
|
-
granularity: ellipseGeometry._granularity,
|
|
407
|
-
numberOfVerticalLines: ellipseGeometry._numberOfVerticalLines,
|
|
408
|
-
};
|
|
409
|
-
let geometry;
|
|
410
|
-
if (extrude) {
|
|
411
|
-
options.extrudedHeight = extrudedHeight;
|
|
412
|
-
options.offsetAttribute = ellipseGeometry._offsetAttribute;
|
|
413
|
-
geometry = computeExtrudedEllipse(options);
|
|
414
|
-
} else {
|
|
415
|
-
geometry = computeEllipse(options);
|
|
416
|
-
|
|
417
|
-
if (defaultValue.defined(ellipseGeometry._offsetAttribute)) {
|
|
418
|
-
const length = geometry.attributes.position.values.length;
|
|
419
|
-
const offsetValue =
|
|
420
|
-
ellipseGeometry._offsetAttribute === GeometryOffsetAttribute.GeometryOffsetAttribute.NONE
|
|
421
|
-
? 0
|
|
422
|
-
: 1;
|
|
423
|
-
const applyOffset = new Uint8Array(length / 3).fill(offsetValue);
|
|
424
|
-
geometry.attributes.applyOffset = new GeometryAttribute.GeometryAttribute({
|
|
425
|
-
componentDatatype: ComponentDatatype.ComponentDatatype.UNSIGNED_BYTE,
|
|
426
|
-
componentsPerAttribute: 1,
|
|
427
|
-
values: applyOffset,
|
|
428
|
-
});
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
return new GeometryAttribute.Geometry({
|
|
433
|
-
attributes: geometry.attributes,
|
|
434
|
-
indices: geometry.indices,
|
|
435
|
-
primitiveType: GeometryAttribute.PrimitiveType.LINES,
|
|
436
|
-
boundingSphere: geometry.boundingSphere,
|
|
437
|
-
offsetAttribute: ellipseGeometry._offsetAttribute,
|
|
438
|
-
});
|
|
439
|
-
};
|
|
440
|
-
|
|
441
|
-
exports.EllipseOutlineGeometry = EllipseOutlineGeometry;
|
|
442
|
-
|
|
443
|
-
}));
|