@cesium/engine 18.2.0 → 18.3.1-ion.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Build/Workers/{chunk-7DRP5IKA.js → chunk-2XJLU3UN.js} +7 -7
- package/Build/Workers/{chunk-F3ZH4MQG.js → chunk-2Y2IF6ZP.js} +5 -5
- package/Build/Workers/{chunk-UGKOGDMZ.js → chunk-3UEVA4NO.js} +8 -8
- package/Build/Workers/{chunk-5WXKC7TN.js → chunk-4B4HLHFO.js} +12 -12
- package/Build/Workers/{chunk-YTIUL27M.js → chunk-52DTHTKR.js} +16 -16
- package/Build/Workers/{chunk-VKMJSSOD.js → chunk-6FY4D6KD.js} +5 -5
- package/Build/Workers/{chunk-EG3P66JO.js → chunk-76WKZOUK.js} +6 -6
- package/Build/Workers/{chunk-KZ752MAA.js → chunk-7G2O6QH3.js} +5 -5
- package/Build/Workers/{chunk-7252BLXK.js → chunk-ADA7OX2I.js} +1 -1
- package/Build/Workers/{chunk-RRSRPDQN.js → chunk-AX3B4SGH.js} +8 -8
- package/Build/Workers/{chunk-5J3B5IYT.js → chunk-AZK5KSZ4.js} +6 -6
- package/Build/Workers/{chunk-LQQDQHA5.js → chunk-B3LHDD7Q.js} +4 -4
- package/Build/Workers/{chunk-PHIB2ITA.js → chunk-BF2HFWMG.js} +2 -2
- package/Build/Workers/{chunk-MIMOEYBO.js → chunk-DILVD7VK.js} +1 -1
- package/Build/Workers/{chunk-R7LO2ZW7.js → chunk-E7KSST7M.js} +7 -7
- package/Build/Workers/{chunk-ER7SSBHR.js → chunk-ERTHACXD.js} +6 -6
- package/Build/Workers/{chunk-PFZ45265.js → chunk-EZUKH7KU.js} +7 -7
- package/Build/Workers/{chunk-MATVBVGM.js → chunk-FBPIDRZN.js} +10 -10
- package/Build/Workers/{chunk-LMDJ23I7.js → chunk-FKO2XRXZ.js} +1 -1
- package/Build/Workers/{chunk-3JKMJ2DT.js → chunk-G2VBRELF.js} +2 -2
- package/Build/Workers/{chunk-K65RSNI5.js → chunk-HQCLIHYE.js} +4 -4
- package/Build/Workers/{chunk-AJWIQQTX.js → chunk-HRF2GFMF.js} +4 -4
- package/Build/Workers/{chunk-FC2YDGY6.js → chunk-HTB5PIYZ.js} +14 -14
- package/Build/Workers/{chunk-2QPO2E4E.js → chunk-IDHHSZTD.js} +5 -5
- package/Build/Workers/{chunk-R7VDSCQM.js → chunk-IHRAESIS.js} +11 -11
- package/Build/Workers/{chunk-PMNYUVMK.js → chunk-ILTPHRDS.js} +6 -6
- package/Build/Workers/{chunk-3X2BQHN6.js → chunk-IYXAFSJX.js} +13 -13
- package/Build/Workers/{chunk-AGEQBE2G.js → chunk-JUYK3CDA.js} +12 -12
- package/Build/Workers/{chunk-VGOLRLK7.js → chunk-KGB6H3RI.js} +12 -12
- package/Build/Workers/{chunk-NCW6XN5X.js → chunk-MIUZNGES.js} +2 -2
- package/Build/Workers/{chunk-VC5NTCLG.js → chunk-NGFYQUAX.js} +10 -10
- package/Build/Workers/{chunk-EJGJUZST.js → chunk-NL2YZDVI.js} +12 -12
- package/Build/Workers/{chunk-XAP7YXEJ.js → chunk-NZVPOOOT.js} +5 -5
- package/Build/Workers/{chunk-FPJWHB5J.js → chunk-Q6SJKTTQ.js} +3 -3
- package/Build/Workers/{chunk-MPNN7PNO.js → chunk-QKYGO6XL.js} +6 -6
- package/Build/Workers/{chunk-USCHXXVF.js → chunk-QMKOMHVM.js} +6 -6
- package/Build/Workers/{chunk-MV5UVSOZ.js → chunk-QREBKKN5.js} +1 -1
- package/Build/Workers/{chunk-VB7MVZDU.js → chunk-QXOWDZYZ.js} +14 -14
- package/Build/Workers/{chunk-DBPLDHPT.js → chunk-S2BFGC4W.js} +2 -2
- package/Build/Workers/{chunk-R3VU4BBN.js → chunk-S2JHBHWB.js} +4 -4
- package/Build/Workers/{chunk-UOU6BW5C.js → chunk-SKVVOFGK.js} +1 -1
- package/Build/Workers/{chunk-HMYDBCCY.js → chunk-SMLHKQNB.js} +9 -9
- package/Build/Workers/{chunk-XH4DQCNS.js → chunk-TLR6NX6R.js} +5 -5
- package/Build/Workers/{chunk-4TGW7D6G.js → chunk-UHLWUS37.js} +16 -16
- package/Build/Workers/{chunk-5N52XJIS.js → chunk-UX2S2KIQ.js} +2 -2
- package/Build/Workers/{chunk-JVHONLHD.js → chunk-UXCG22U4.js} +4 -4
- package/Build/Workers/{chunk-UGWI4JAZ.js → chunk-VFEUHPSM.js} +5 -5
- package/Build/Workers/{chunk-SOLM3ZIV.js → chunk-VOGSSU24.js} +9 -9
- package/Build/Workers/{chunk-ZT5GZ75Z.js → chunk-WMSBRWGI.js} +2 -2
- package/Build/Workers/{chunk-PLM7GGHT.js → chunk-XLDLCV2F.js} +4 -4
- package/Build/Workers/{chunk-3RZFU3BO.js → chunk-XW6DEZZE.js} +8 -8
- package/Build/Workers/{chunk-Z43MDFLH.js → chunk-Z2GDV3MT.js} +4 -4
- package/Build/Workers/combineGeometry.js +21 -21
- package/Build/Workers/createBoxGeometry.js +15 -15
- package/Build/Workers/createBoxOutlineGeometry.js +13 -13
- package/Build/Workers/createCircleGeometry.js +23 -23
- package/Build/Workers/createCircleOutlineGeometry.js +16 -16
- package/Build/Workers/createCoplanarPolygonGeometry.js +30 -30
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +28 -28
- package/Build/Workers/createCorridorGeometry.js +26 -26
- package/Build/Workers/createCorridorOutlineGeometry.js +25 -25
- package/Build/Workers/createCylinderGeometry.js +17 -17
- package/Build/Workers/createCylinderOutlineGeometry.js +15 -15
- package/Build/Workers/createEllipseGeometry.js +23 -23
- package/Build/Workers/createEllipseOutlineGeometry.js +16 -16
- package/Build/Workers/createEllipsoidGeometry.js +16 -16
- package/Build/Workers/createEllipsoidOutlineGeometry.js +15 -15
- package/Build/Workers/createFrustumGeometry.js +15 -15
- package/Build/Workers/createFrustumOutlineGeometry.js +15 -15
- package/Build/Workers/createGeometry.js +21 -21
- package/Build/Workers/createGroundPolylineGeometry.js +19 -19
- package/Build/Workers/createPlaneGeometry.js +13 -13
- package/Build/Workers/createPlaneOutlineGeometry.js +12 -12
- package/Build/Workers/createPolygonGeometry.js +29 -29
- package/Build/Workers/createPolygonOutlineGeometry.js +27 -27
- package/Build/Workers/createPolylineGeometry.js +22 -22
- package/Build/Workers/createPolylineVolumeGeometry.js +28 -28
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +24 -24
- package/Build/Workers/createRectangleGeometry.js +24 -24
- package/Build/Workers/createRectangleOutlineGeometry.js +17 -17
- package/Build/Workers/createSimplePolylineGeometry.js +20 -20
- package/Build/Workers/createSphereGeometry.js +16 -16
- package/Build/Workers/createSphereOutlineGeometry.js +15 -15
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +12 -12
- package/Build/Workers/createVectorTileGeometries.js +21 -21
- package/Build/Workers/createVectorTilePoints.js +11 -11
- package/Build/Workers/createVectorTilePolygons.js +19 -19
- package/Build/Workers/createVectorTilePolylines.js +12 -12
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +19 -19
- package/Build/Workers/createVerticesFromHeightmap.js +19 -19
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +16 -16
- package/Build/Workers/createWallGeometry.js +21 -21
- package/Build/Workers/createWallOutlineGeometry.js +20 -20
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +9 -9
- package/Build/Workers/gaussianSplatSorter.js +4 -4
- package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
- package/Build/Workers/transcodeKTX2.js +6 -6
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +19 -19
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/Resource.js +2 -2
- package/Source/Renderer/Texture.js +6 -3
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/Cesium3DTileset.js +41 -0
- package/Source/Scene/ClippingPolygonCollection.js +0 -2
- package/Source/Scene/GaussianSplat3DTileContent.js +44 -7
- package/Source/Scene/GaussianSplatPrimitive.js +33 -55
- package/Source/Scene/Material.js +6 -2
- package/Source/Scene/Model/UniformType.js +1 -1
- package/Source/Scene/Vector3DTileContent.js +3 -2
- package/Source/Scene/Vector3DTilePoints.js +10 -0
- package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +1 -17
- package/Source/Shaders/PrimitiveGaussianSplatVS.js +1 -17
- package/Source/Shaders/Voxels/convertUvToCylinder.glsl +1 -1
- package/Source/Shaders/Voxels/convertUvToCylinder.js +1 -1
- package/Source/ThirdParty/Workers/z-worker-pako.js +1 -1
- package/index.d.ts +28 -1
- package/index.js +2 -2
- package/package.json +5 -5
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* Cesium - https://github.com/CesiumGS/cesium
|
|
4
|
-
* Version 1.
|
|
4
|
+
* Version 1.131.1-ion
|
|
5
5
|
*
|
|
6
6
|
* Copyright 2011-2022 Cesium Contributors
|
|
7
7
|
*
|
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
import {
|
|
27
27
|
generate_splat_texture,
|
|
28
28
|
initSync
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-DILVD7VK.js";
|
|
30
30
|
import {
|
|
31
31
|
createTaskProcessorWorker_default
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-S2BFGC4W.js";
|
|
33
33
|
import {
|
|
34
34
|
defined_default
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-SKVVOFGK.js";
|
|
36
36
|
|
|
37
37
|
// packages/engine/Source/Workers/gaussianSplatTextureGenerator.js
|
|
38
38
|
async function initWorker(parameters, transferableObjects) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* Cesium - https://github.com/CesiumGS/cesium
|
|
4
|
-
* Version 1.
|
|
4
|
+
* Version 1.131.1-ion
|
|
5
5
|
*
|
|
6
6
|
* Copyright 2011-2022 Cesium Contributors
|
|
7
7
|
*
|
|
@@ -25,22 +25,22 @@
|
|
|
25
25
|
|
|
26
26
|
import {
|
|
27
27
|
createTaskProcessorWorker_default
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-S2BFGC4W.js";
|
|
29
29
|
import {
|
|
30
30
|
WebGLConstants_default
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-ADA7OX2I.js";
|
|
32
32
|
import {
|
|
33
33
|
RuntimeError_default
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-G2VBRELF.js";
|
|
35
35
|
import {
|
|
36
36
|
Check_default
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-UX2S2KIQ.js";
|
|
38
38
|
import {
|
|
39
39
|
__commonJS,
|
|
40
40
|
__require,
|
|
41
41
|
__toESM,
|
|
42
42
|
defined_default
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-SKVVOFGK.js";
|
|
44
44
|
|
|
45
45
|
// packages/engine/Source/ThirdParty/Workers/basis_transcoder.js
|
|
46
46
|
var require_basis_transcoder = __commonJS({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* Cesium - https://github.com/CesiumGS/cesium
|
|
4
|
-
* Version 1.
|
|
4
|
+
* Version 1.131.1-ion
|
|
5
5
|
*
|
|
6
6
|
* Copyright 2011-2022 Cesium Contributors
|
|
7
7
|
*
|
|
@@ -26,48 +26,48 @@
|
|
|
26
26
|
import {
|
|
27
27
|
EllipsoidalOccluder_default,
|
|
28
28
|
TerrainEncoding_default
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-VOGSSU24.js";
|
|
30
30
|
import {
|
|
31
31
|
createTaskProcessorWorker_default
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-S2BFGC4W.js";
|
|
33
33
|
import {
|
|
34
34
|
OrientedBoundingBox_default
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-SMLHKQNB.js";
|
|
36
36
|
import {
|
|
37
37
|
AttributeCompression_default
|
|
38
|
-
} from "./chunk-
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
41
|
-
import "./chunk-
|
|
42
|
-
import "./chunk-
|
|
38
|
+
} from "./chunk-E7KSST7M.js";
|
|
39
|
+
import "./chunk-AX3B4SGH.js";
|
|
40
|
+
import "./chunk-IDHHSZTD.js";
|
|
41
|
+
import "./chunk-AZK5KSZ4.js";
|
|
42
|
+
import "./chunk-ILTPHRDS.js";
|
|
43
43
|
import {
|
|
44
44
|
IndexDatatype_default
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-6FY4D6KD.js";
|
|
46
46
|
import {
|
|
47
47
|
BoundingSphere_default
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-76WKZOUK.js";
|
|
49
49
|
import {
|
|
50
50
|
Rectangle_default
|
|
51
|
-
} from "./chunk-
|
|
52
|
-
import "./chunk-
|
|
51
|
+
} from "./chunk-3UEVA4NO.js";
|
|
52
|
+
import "./chunk-XLDLCV2F.js";
|
|
53
53
|
import {
|
|
54
54
|
Cartesian2_default,
|
|
55
55
|
Cartesian3_default,
|
|
56
56
|
Cartographic_default,
|
|
57
57
|
Ellipsoid_default
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-Z2GDV3MT.js";
|
|
59
59
|
import {
|
|
60
60
|
Math_default
|
|
61
|
-
} from "./chunk-
|
|
62
|
-
import "./chunk-
|
|
63
|
-
import "./chunk-
|
|
61
|
+
} from "./chunk-Q6SJKTTQ.js";
|
|
62
|
+
import "./chunk-ADA7OX2I.js";
|
|
63
|
+
import "./chunk-G2VBRELF.js";
|
|
64
64
|
import {
|
|
65
65
|
Check_default,
|
|
66
66
|
DeveloperError_default
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-UX2S2KIQ.js";
|
|
68
68
|
import {
|
|
69
69
|
defined_default
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-SKVVOFGK.js";
|
|
71
71
|
|
|
72
72
|
// packages/engine/Source/Core/Intersections2D.js
|
|
73
73
|
var Intersections2D = {};
|
package/Source/Core/Ion.js
CHANGED
|
@@ -4,7 +4,7 @@ import Resource from "./Resource.js";
|
|
|
4
4
|
|
|
5
5
|
let defaultTokenCredit;
|
|
6
6
|
const defaultAccessToken =
|
|
7
|
-
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
7
|
+
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIwNDljNWFmZC03MzRlLTRiMDMtYWIwMi00Yjk4YWQ4NzQwZGEiLCJpZCI6MjU5LCJpYXQiOjE3NTEzNzkyMzR9.OTqPNs3UGNnT1LYkPTavV80wN8Es_YphpJgQcpdnqWc";
|
|
8
8
|
/**
|
|
9
9
|
* Default settings for accessing the Cesium ion API.
|
|
10
10
|
*
|
package/Source/Core/Resource.js
CHANGED
|
@@ -231,7 +231,7 @@ Resource.supportsImageBitmapOptions = function () {
|
|
|
231
231
|
})
|
|
232
232
|
.then(function (blob) {
|
|
233
233
|
const imageBitmapOptions = {
|
|
234
|
-
imageOrientation: "flipY", // default is "
|
|
234
|
+
imageOrientation: "flipY", // default is "from-image"
|
|
235
235
|
premultiplyAlpha: "none", // default is "default"
|
|
236
236
|
colorSpaceConversion: "none", // default is "default"
|
|
237
237
|
};
|
|
@@ -2036,7 +2036,7 @@ Resource.createImageBitmapFromBlob = function (blob, options) {
|
|
|
2036
2036
|
);
|
|
2037
2037
|
|
|
2038
2038
|
return createImageBitmap(blob, {
|
|
2039
|
-
imageOrientation: options.flipY ? "flipY" : "
|
|
2039
|
+
imageOrientation: options.flipY ? "flipY" : "from-image",
|
|
2040
2040
|
premultiplyAlpha: options.premultiplyAlpha ? "premultiply" : "none",
|
|
2041
2041
|
colorSpaceConversion: options.skipColorSpaceConversion ? "none" : "default",
|
|
2042
2042
|
});
|
|
@@ -18,7 +18,9 @@ import TextureMinificationFilter from "./TextureMinificationFilter.js";
|
|
|
18
18
|
* @typedef {object} Texture.ConstructorOptions
|
|
19
19
|
*
|
|
20
20
|
* @property {Context} context
|
|
21
|
-
* @property {object} [source] The source for texel values to be loaded into the texture.
|
|
21
|
+
* @property {object} [source] The source for texel values to be loaded into the texture. A {@link ImageData}, {@link HTMLImageElement}, {@link HTMLCanvasElement},
|
|
22
|
+
* {@link HTMLVideoElement}, {@link OffscreenCanvas}, or {@link ImageBitmap},
|
|
23
|
+
* or an object with width, height, and arrayBufferView properties.
|
|
22
24
|
* @property {PixelFormat} [pixelFormat=PixelFormat.RGBA] The format of each pixel, i.e., the number of components it has and what they represent.
|
|
23
25
|
* @property {PixelDatatype} [pixelDatatype=PixelDatatype.UNSIGNED_BYTE] The data type of each pixel.
|
|
24
26
|
* @property {boolean} [flipY=true] If true, the source values will be read as if the y-axis is inverted (y=0 at the top).
|
|
@@ -484,7 +486,7 @@ function loadFramebufferSource(texture, source) {
|
|
|
484
486
|
* Load texel data from an Image into a texture.
|
|
485
487
|
*
|
|
486
488
|
* @param {Texture} texture The texture to which texel values will be loaded.
|
|
487
|
-
* @param {ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement} source The source for texel values to be loaded into the texture.
|
|
489
|
+
* @param {ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|OffscreenCanvas|ImageBitmap} source The source for texel values to be loaded into the texture.
|
|
488
490
|
*
|
|
489
491
|
* @private
|
|
490
492
|
*/
|
|
@@ -831,7 +833,8 @@ function setupSampler(texture, sampler) {
|
|
|
831
833
|
* Copy new image data into this texture, from a source {@link ImageData}, {@link HTMLImageElement}, {@link HTMLCanvasElement}, or {@link HTMLVideoElement}.
|
|
832
834
|
* or an object with width, height, and arrayBufferView properties.
|
|
833
835
|
* @param {object} options Object with the following properties:
|
|
834
|
-
* @param {object} options.source The source {@link ImageData}, {@link HTMLImageElement}, {@link HTMLCanvasElement},
|
|
836
|
+
* @param {object} options.source The source {@link ImageData}, {@link HTMLImageElement}, {@link HTMLCanvasElement}, {@link HTMLVideoElement},
|
|
837
|
+
* {@link OffscreenCanvas}, or {@link ImageBitmap},
|
|
835
838
|
* or an object with width, height, and arrayBufferView properties.
|
|
836
839
|
* @param {number} [options.xOffset=0] The offset in the x direction within the texture to copy into.
|
|
837
840
|
* @param {number} [options.yOffset=0] The offset in the y direction within the texture to copy into.
|
|
@@ -4,7 +4,7 @@ import Resource from "../Core/Resource.js";
|
|
|
4
4
|
|
|
5
5
|
let defaultTokenCredit;
|
|
6
6
|
const defaultAccessToken =
|
|
7
|
-
"
|
|
7
|
+
"AAPTxy8BH1VEsoebNVZXo8HurEOF051kAEKlhkOhBEc9BmTvj0sIevECBw-bvZAvk8zYQRQq68aswXB6_yVObhIYNHapUAk3eqDIvpDZAUjFHpy1wJdPnkcKqSGXXGM22C1fqVC0gbU2S_RjRHuIHK5WVIYP7fUJQPjRGD1weDGyD5vBqwZX1Ah4LLUPG9474k1fvB1_vIROH9r9R-Sd9f9pbBFr9FjKfISJZiiJdaXVas4.AT1_eWrg8X2i";
|
|
8
8
|
/**
|
|
9
9
|
* Default options for accessing the ArcGIS image tile service.
|
|
10
10
|
*
|
|
@@ -102,6 +102,8 @@ import ImageryLayerCollection from "./ImageryLayerCollection.js";
|
|
|
102
102
|
* @property {ClippingPlaneCollection} [clippingPlanes] The {@link ClippingPlaneCollection} used to selectively disable rendering the tileset.
|
|
103
103
|
* @property {ClippingPolygonCollection} [clippingPolygons] The {@link ClippingPolygonCollection} used to selectively disable rendering the tileset.
|
|
104
104
|
* @property {ClassificationType} [classificationType] Determines whether terrain, 3D Tiles or both will be classified by this tileset. See {@link Cesium3DTileset#classificationType} for details about restrictions and limitations.
|
|
105
|
+
* @property {HeightReference} [heightReference] Sets the {@link HeightReference} for point features in vector tilesets.
|
|
106
|
+
* @property {Scene} [scene] The {@link CesiumWidget#scene} that the tileset will be rendered in, required for tilesets that specify a {@link heightReference} value for clamping 3D Tiles vector data content- like points, lines, and labels- to terrain or 3D tiles.
|
|
105
107
|
* @property {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid determining the size and shape of the globe.
|
|
106
108
|
* @property {object} [pointCloudShading] Options for constructing a {@link PointCloudShading} object to control point attenuation based on geometric error and lighting.
|
|
107
109
|
* @property {Cartesian3} [lightColor] The light color when shading models. When <code>undefined</code> the scene's light color is used instead.
|
|
@@ -336,6 +338,8 @@ function Cesium3DTileset(options) {
|
|
|
336
338
|
this._tileDebugLabels = undefined;
|
|
337
339
|
|
|
338
340
|
this._classificationType = options.classificationType;
|
|
341
|
+
this._heightReference = options.heightReference;
|
|
342
|
+
this._scene = options.scene;
|
|
339
343
|
|
|
340
344
|
this._ellipsoid = options.ellipsoid ?? Ellipsoid.WGS84;
|
|
341
345
|
|
|
@@ -1807,6 +1811,43 @@ Object.defineProperties(Cesium3DTileset.prototype, {
|
|
|
1807
1811
|
},
|
|
1808
1812
|
},
|
|
1809
1813
|
|
|
1814
|
+
/**
|
|
1815
|
+
* Specifies if the height is relative to terrain, 3D Tiles, or both.
|
|
1816
|
+
* <p>
|
|
1817
|
+
* This option is only applied to point features in tilesets containing vector data.
|
|
1818
|
+
* This option requires the Viewer's scene to be passed in through options.scene.
|
|
1819
|
+
* </p>
|
|
1820
|
+
*
|
|
1821
|
+
* @memberof Cesium3DTileset.prototype
|
|
1822
|
+
*
|
|
1823
|
+
* @type {HeightReference | undefined}
|
|
1824
|
+
* @default undefined
|
|
1825
|
+
*
|
|
1826
|
+
* @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
|
|
1827
|
+
* @readonly
|
|
1828
|
+
*/
|
|
1829
|
+
heightReference: {
|
|
1830
|
+
get: function () {
|
|
1831
|
+
return this._heightReference;
|
|
1832
|
+
},
|
|
1833
|
+
},
|
|
1834
|
+
|
|
1835
|
+
/**
|
|
1836
|
+
* The {@link CesiumWidget#scene} that the tileset will be rendered in, required for tilesets that specify a {@link heightReference} value for clamping 3D Tiles vector data content- like points, lines, and labels- to terrain or 3D tiles.
|
|
1837
|
+
*
|
|
1838
|
+
* @member of Cesium3DTileset.prototype
|
|
1839
|
+
*
|
|
1840
|
+
* @type {Scene | undefined}
|
|
1841
|
+
* @default undefined
|
|
1842
|
+
* @readonly
|
|
1843
|
+
*
|
|
1844
|
+
*/
|
|
1845
|
+
scene: {
|
|
1846
|
+
get: function () {
|
|
1847
|
+
return this._scene;
|
|
1848
|
+
},
|
|
1849
|
+
},
|
|
1850
|
+
|
|
1810
1851
|
/**
|
|
1811
1852
|
* Gets an ellipsoid describing the shape of the globe.
|
|
1812
1853
|
*
|
|
@@ -66,7 +66,6 @@ function ClippingPolygonCollection(options) {
|
|
|
66
66
|
/**
|
|
67
67
|
* If true, clipping will be enabled.
|
|
68
68
|
*
|
|
69
|
-
* @memberof ClippingPolygonCollection.prototype
|
|
70
69
|
* @type {boolean}
|
|
71
70
|
* @default true
|
|
72
71
|
*/
|
|
@@ -77,7 +76,6 @@ function ClippingPolygonCollection(options) {
|
|
|
77
76
|
* collection. Otherwise, a region will only be clipped if it is
|
|
78
77
|
* inside of any polygon.
|
|
79
78
|
*
|
|
80
|
-
* @memberof ClippingPolygonCollection.prototype
|
|
81
79
|
* @type {boolean}
|
|
82
80
|
* @default false
|
|
83
81
|
*/
|
|
@@ -5,6 +5,8 @@ import RuntimeError from "../Core/RuntimeError.js";
|
|
|
5
5
|
import Axis from "./Axis.js";
|
|
6
6
|
import GaussianSplatPrimitive from "./GaussianSplatPrimitive.js";
|
|
7
7
|
import destroyObject from "../Core/destroyObject.js";
|
|
8
|
+
import ModelUtility from "./Model/ModelUtility.js";
|
|
9
|
+
import VertexAttributeSemantic from "./VertexAttributeSemantic.js";
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
12
|
* Represents the contents of a glTF or glb using the {@link https://github.com/CesiumGS/glTF/tree/draft-spz-splat-compression/extensions/2.0/Khronos/KHR_spz_gaussian_splats_compression|KHR_spz_gaussian_splats_compression} extension.
|
|
@@ -28,6 +30,17 @@ function GaussianSplat3DTileContent(loader, tileset, tile, resource) {
|
|
|
28
30
|
});
|
|
29
31
|
}
|
|
30
32
|
|
|
33
|
+
/**
|
|
34
|
+
* Original position, scale and rotation values for splats. Used to maintain
|
|
35
|
+
* consistency when multiple transforms may occur. Downstream consumers otherwise may not know
|
|
36
|
+
* the underlying data was modified.
|
|
37
|
+
* @type {undefined|Float32Array}
|
|
38
|
+
* @private
|
|
39
|
+
*/
|
|
40
|
+
this._originalPositions = undefined;
|
|
41
|
+
this._originalRotations = undefined;
|
|
42
|
+
this._originalScales = undefined;
|
|
43
|
+
|
|
31
44
|
/**
|
|
32
45
|
* glTF primitive data that contains the Gaussian splat data needed for rendering.
|
|
33
46
|
* @type {undefined|Primitive}
|
|
@@ -350,7 +363,7 @@ GaussianSplat3DTileContent.fromGltf = async function (
|
|
|
350
363
|
|
|
351
364
|
/**
|
|
352
365
|
* Updates the content of the tile and prepares it for rendering.
|
|
353
|
-
* @param {Cesium3DTileset}
|
|
366
|
+
* @param {Cesium3DTileset}Data attribution
|
|
354
367
|
* @param {FrameState} frameState - The current frame state.
|
|
355
368
|
* @private
|
|
356
369
|
*/
|
|
@@ -358,11 +371,7 @@ GaussianSplat3DTileContent.prototype.update = function (primitive, frameState) {
|
|
|
358
371
|
const loader = this._loader;
|
|
359
372
|
|
|
360
373
|
if (this._ready) {
|
|
361
|
-
if (
|
|
362
|
-
!this._transformed &&
|
|
363
|
-
this._tile !== primitive.root &&
|
|
364
|
-
primitive.root.content.ready
|
|
365
|
-
) {
|
|
374
|
+
if (!this._transformed && primitive.root.content.ready) {
|
|
366
375
|
GaussianSplatPrimitive.transformTile(this._tile);
|
|
367
376
|
this._transformed = true;
|
|
368
377
|
}
|
|
@@ -382,6 +391,27 @@ GaussianSplat3DTileContent.prototype.update = function (primitive, frameState) {
|
|
|
382
391
|
this.worldTransform = loader.components.scene.nodes[0].matrix;
|
|
383
392
|
this._ready = true;
|
|
384
393
|
|
|
394
|
+
this._originalPositions = new Float32Array(
|
|
395
|
+
ModelUtility.getAttributeBySemantic(
|
|
396
|
+
this.splatPrimitive,
|
|
397
|
+
VertexAttributeSemantic.POSITION,
|
|
398
|
+
).typedArray,
|
|
399
|
+
);
|
|
400
|
+
|
|
401
|
+
this._originalRotations = new Float32Array(
|
|
402
|
+
ModelUtility.getAttributeBySemantic(
|
|
403
|
+
this.splatPrimitive,
|
|
404
|
+
VertexAttributeSemantic.ROTATION,
|
|
405
|
+
).typedArray,
|
|
406
|
+
);
|
|
407
|
+
|
|
408
|
+
this._originalScales = new Float32Array(
|
|
409
|
+
ModelUtility.getAttributeBySemantic(
|
|
410
|
+
this.splatPrimitive,
|
|
411
|
+
VertexAttributeSemantic.SCALE,
|
|
412
|
+
).typedArray,
|
|
413
|
+
);
|
|
414
|
+
|
|
385
415
|
return;
|
|
386
416
|
}
|
|
387
417
|
|
|
@@ -483,8 +513,15 @@ GaussianSplat3DTileContent.prototype.isDestroyed = function () {
|
|
|
483
513
|
*/
|
|
484
514
|
GaussianSplat3DTileContent.prototype.destroy = function () {
|
|
485
515
|
this.splatPrimitive = undefined;
|
|
486
|
-
|
|
516
|
+
|
|
517
|
+
if (
|
|
518
|
+
defined(this._tileset.gaussianSplatPrimitive) &&
|
|
519
|
+
!this._tileset.gaussianSplatPrimitive.isDestroyed()
|
|
520
|
+
) {
|
|
521
|
+
this._tileset.gaussianSplatPrimitive.destroy();
|
|
522
|
+
}
|
|
487
523
|
this._tileset.gaussianSplatPrimitive = undefined;
|
|
524
|
+
|
|
488
525
|
this._tile = undefined;
|
|
489
526
|
this._tileset = undefined;
|
|
490
527
|
this._resource = undefined;
|
|
@@ -3,7 +3,6 @@ import Matrix4 from "../Core/Matrix4.js";
|
|
|
3
3
|
import ModelUtility from "./Model/ModelUtility.js";
|
|
4
4
|
import GaussianSplatSorter from "./GaussianSplatSorter.js";
|
|
5
5
|
import GaussianSplatTextureGenerator from "./GaussianSplatTextureGenerator.js";
|
|
6
|
-
import Check from "../Core/Check.js";
|
|
7
6
|
import ComponentDatatype from "../Core/ComponentDatatype.js";
|
|
8
7
|
import PixelDatatype from "../Renderer/PixelDatatype.js";
|
|
9
8
|
import PixelFormat from "../Core/PixelFormat.js";
|
|
@@ -29,7 +28,6 @@ import AttributeType from "./AttributeType.js";
|
|
|
29
28
|
import ModelComponents from "./ModelComponents.js";
|
|
30
29
|
import Axis from "./Axis.js";
|
|
31
30
|
import Cartesian3 from "../Core/Cartesian3.js";
|
|
32
|
-
import Transforms from "../Core/Transforms.js";
|
|
33
31
|
import Quaternion from "../Core/Quaternion.js";
|
|
34
32
|
import SplitDirection from "./SplitDirection.js";
|
|
35
33
|
import destroyObject from "../Core/destroyObject.js";
|
|
@@ -124,13 +122,7 @@ function GaussianSplatPrimitive(options) {
|
|
|
124
122
|
* @private
|
|
125
123
|
*/
|
|
126
124
|
this._needsGaussianSplatTexture = true;
|
|
127
|
-
|
|
128
|
-
* The scale of the Gaussian splats.
|
|
129
|
-
* This is used to control the size of the splats when rendered.
|
|
130
|
-
* @type {number}
|
|
131
|
-
* @private
|
|
132
|
-
*/
|
|
133
|
-
this._splatScale = 1.0;
|
|
125
|
+
|
|
134
126
|
/**
|
|
135
127
|
* The previous view matrix used to determine if the primitive needs to be updated.
|
|
136
128
|
* This is used to avoid unnecessary updates when the view matrix hasn't changed.
|
|
@@ -298,26 +290,6 @@ Object.defineProperties(GaussianSplatPrimitive.prototype, {
|
|
|
298
290
|
return this._ready;
|
|
299
291
|
},
|
|
300
292
|
},
|
|
301
|
-
/**
|
|
302
|
-
* Scaling factor applied to the Gaussian splats indepdendent of the
|
|
303
|
-
* Gaussian splat scale attribute. Applied uniformly to all splats.
|
|
304
|
-
* @memberof GaussianSplatPrimitive.prototype
|
|
305
|
-
* @type {number}
|
|
306
|
-
* @default 1.0
|
|
307
|
-
*/
|
|
308
|
-
|
|
309
|
-
splatScale: {
|
|
310
|
-
get: function () {
|
|
311
|
-
return this._splatScale;
|
|
312
|
-
},
|
|
313
|
-
set: function (splatScale) {
|
|
314
|
-
//>>includeStart('debug', pragmas.debug);
|
|
315
|
-
Check.typeOf.number("splatScale", splatScale);
|
|
316
|
-
//>>includeEnd('debug');
|
|
317
|
-
|
|
318
|
-
this._splatScale = splatScale;
|
|
319
|
-
},
|
|
320
|
-
},
|
|
321
293
|
|
|
322
294
|
/**
|
|
323
295
|
* The {@link SplitDirection} to apply to this point.
|
|
@@ -438,27 +410,31 @@ GaussianSplatPrimitive.transformTile = function (tile) {
|
|
|
438
410
|
computedModelMatrix,
|
|
439
411
|
);
|
|
440
412
|
|
|
441
|
-
const
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
413
|
+
const toGlobal = Matrix4.multiply(
|
|
414
|
+
tile.tileset.modelMatrix,
|
|
415
|
+
Matrix4.fromArray(tile.tileset.root.transform),
|
|
416
|
+
scratchMatrix4B,
|
|
417
|
+
);
|
|
418
|
+
const toLocal = Matrix4.inverse(toGlobal, scratchMatrix4C);
|
|
445
419
|
const transform = Matrix4.multiplyTransformation(
|
|
446
420
|
toLocal,
|
|
447
421
|
computedModelMatrix,
|
|
448
422
|
scratchMatrix4A,
|
|
449
423
|
);
|
|
450
|
-
|
|
451
|
-
const
|
|
424
|
+
const positions = tile.content._originalPositions;
|
|
425
|
+
const rotations = tile.content._originalRotations;
|
|
426
|
+
const scales = tile.content._originalScales;
|
|
427
|
+
const attributePositions = ModelUtility.getAttributeBySemantic(
|
|
452
428
|
splatPrimitive,
|
|
453
429
|
VertexAttributeSemantic.POSITION,
|
|
454
430
|
).typedArray;
|
|
455
431
|
|
|
456
|
-
const
|
|
432
|
+
const attributeRotations = ModelUtility.getAttributeBySemantic(
|
|
457
433
|
splatPrimitive,
|
|
458
434
|
VertexAttributeSemantic.ROTATION,
|
|
459
435
|
).typedArray;
|
|
460
436
|
|
|
461
|
-
const
|
|
437
|
+
const attributeScales = ModelUtility.getAttributeBySemantic(
|
|
462
438
|
splatPrimitive,
|
|
463
439
|
VertexAttributeSemantic.SCALE,
|
|
464
440
|
).typedArray;
|
|
@@ -493,18 +469,18 @@ GaussianSplatPrimitive.transformTile = function (tile) {
|
|
|
493
469
|
Matrix4.getRotation(scratchMatrix4C, rotation);
|
|
494
470
|
Matrix4.getScale(scratchMatrix4C, scale);
|
|
495
471
|
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
472
|
+
attributePositions[i * 3] = position.x;
|
|
473
|
+
attributePositions[i * 3 + 1] = position.y;
|
|
474
|
+
attributePositions[i * 3 + 2] = position.z;
|
|
499
475
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
476
|
+
attributeRotations[i * 4] = rotation.x;
|
|
477
|
+
attributeRotations[i * 4 + 1] = rotation.y;
|
|
478
|
+
attributeRotations[i * 4 + 2] = rotation.z;
|
|
479
|
+
attributeRotations[i * 4 + 3] = rotation.w;
|
|
504
480
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
481
|
+
attributeScales[i * 3] = scale.x;
|
|
482
|
+
attributeScales[i * 3 + 1] = scale.y;
|
|
483
|
+
attributeScales[i * 3 + 2] = scale.z;
|
|
508
484
|
}
|
|
509
485
|
};
|
|
510
486
|
|
|
@@ -625,14 +601,8 @@ GaussianSplatPrimitive.buildGSplatDrawCommand = function (
|
|
|
625
601
|
ShaderDestination.VERTEX,
|
|
626
602
|
);
|
|
627
603
|
|
|
628
|
-
shaderBuilder.addUniform("float", "u_splatScale", ShaderDestination.VERTEX);
|
|
629
|
-
|
|
630
604
|
const uniformMap = renderResources.uniformMap;
|
|
631
605
|
|
|
632
|
-
uniformMap.u_splatScale = function () {
|
|
633
|
-
return primitive.splatScale;
|
|
634
|
-
};
|
|
635
|
-
|
|
636
606
|
uniformMap.u_splatAttributeTexture = function () {
|
|
637
607
|
return primitive.gaussianSplatTexture;
|
|
638
608
|
};
|
|
@@ -706,8 +676,11 @@ GaussianSplatPrimitive.buildGSplatDrawCommand = function (
|
|
|
706
676
|
|
|
707
677
|
primitive._vertexArrayLen = primitive._indexes.length;
|
|
708
678
|
|
|
709
|
-
const
|
|
710
|
-
|
|
679
|
+
const modelMatrix = Matrix4.multiply(
|
|
680
|
+
tileset.modelMatrix,
|
|
681
|
+
Matrix4.fromArray(tileset.root.transform),
|
|
682
|
+
scratchMatrix4B,
|
|
683
|
+
);
|
|
711
684
|
|
|
712
685
|
const command = new DrawCommand({
|
|
713
686
|
boundingVolume: tileset.boundingSphere,
|
|
@@ -751,6 +724,11 @@ GaussianSplatPrimitive.prototype.update = function (frameState) {
|
|
|
751
724
|
frameState.commandList.push(this._drawCommand);
|
|
752
725
|
}
|
|
753
726
|
|
|
727
|
+
if (tileset._modelMatrixChanged) {
|
|
728
|
+
this._dirty = true;
|
|
729
|
+
return;
|
|
730
|
+
}
|
|
731
|
+
|
|
754
732
|
if (frameState.passes.pick === true) {
|
|
755
733
|
return;
|
|
756
734
|
}
|
package/Source/Scene/Material.js
CHANGED
|
@@ -914,7 +914,9 @@ function createTexture2DUpdateFunction(uniformId) {
|
|
|
914
914
|
});
|
|
915
915
|
} else if (
|
|
916
916
|
uniformValue instanceof HTMLCanvasElement ||
|
|
917
|
-
uniformValue instanceof HTMLImageElement
|
|
917
|
+
uniformValue instanceof HTMLImageElement ||
|
|
918
|
+
uniformValue instanceof ImageBitmap ||
|
|
919
|
+
uniformValue instanceof OffscreenCanvas
|
|
918
920
|
) {
|
|
919
921
|
material._loadedImages.push({
|
|
920
922
|
id: uniformId,
|
|
@@ -1091,7 +1093,9 @@ function getUniformType(uniformValue) {
|
|
|
1091
1093
|
type === "string" ||
|
|
1092
1094
|
uniformValue instanceof Resource ||
|
|
1093
1095
|
uniformValue instanceof HTMLCanvasElement ||
|
|
1094
|
-
uniformValue instanceof HTMLImageElement
|
|
1096
|
+
uniformValue instanceof HTMLImageElement ||
|
|
1097
|
+
uniformValue instanceof ImageBitmap ||
|
|
1098
|
+
uniformValue instanceof OffscreenCanvas
|
|
1095
1099
|
) {
|
|
1096
1100
|
if (/^([rgba]){1,4}$/i.test(uniformValue)) {
|
|
1097
1101
|
uniformType = "channels";
|
|
@@ -524,7 +524,7 @@ function initialize(content, arrayBuffer, byteOffset) {
|
|
|
524
524
|
modelMatrix: modelMatrix,
|
|
525
525
|
});
|
|
526
526
|
}
|
|
527
|
-
|
|
527
|
+
const tileset = content._tileset;
|
|
528
528
|
if (numberOfPolylines > 0) {
|
|
529
529
|
featureTable.featuresLength = numberOfPolylines;
|
|
530
530
|
|
|
@@ -570,7 +570,6 @@ function initialize(content, arrayBuffer, byteOffset) {
|
|
|
570
570
|
);
|
|
571
571
|
byteOffset += polylinePositionByteLength;
|
|
572
572
|
|
|
573
|
-
const tileset = content._tileset;
|
|
574
573
|
const examineVectorLinesFunction = tileset.examineVectorLinesFunction;
|
|
575
574
|
if (defined(examineVectorLinesFunction)) {
|
|
576
575
|
const decodedPositions = decodeVectorPolylinePositions(
|
|
@@ -625,6 +624,8 @@ function initialize(content, arrayBuffer, byteOffset) {
|
|
|
625
624
|
maximumHeight: maxHeight,
|
|
626
625
|
rectangle: rectangle,
|
|
627
626
|
batchTable: batchTable,
|
|
627
|
+
heightReference: tileset.heightReference,
|
|
628
|
+
scene: tileset.scene,
|
|
628
629
|
});
|
|
629
630
|
}
|
|
630
631
|
}
|
|
@@ -15,6 +15,7 @@ import LabelCollection from "./LabelCollection.js";
|
|
|
15
15
|
import LabelStyle from "./LabelStyle.js";
|
|
16
16
|
import PolylineCollection from "./PolylineCollection.js";
|
|
17
17
|
import VerticalOrigin from "./VerticalOrigin.js";
|
|
18
|
+
import HeightReference from "./HeightReference.js";
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* Creates a batch of points or billboards and labels.
|
|
@@ -27,8 +28,10 @@ import VerticalOrigin from "./VerticalOrigin.js";
|
|
|
27
28
|
* @param {number} options.minimumHeight The minimum height of the terrain covered by the tile.
|
|
28
29
|
* @param {number} options.maximumHeight The maximum height of the terrain covered by the tile.
|
|
29
30
|
* @param {Rectangle} options.rectangle The rectangle containing the tile.
|
|
31
|
+
* @param {HeightReference} options.heightReference Determines how billboard and label features are positioned relative to terrain or 3d tiles.
|
|
30
32
|
* @param {Cesium3DTileBatchTable} options.batchTable The batch table for the tile containing the batched polygons.
|
|
31
33
|
* @param {Uint16Array} options.batchIds The batch ids for each polygon.
|
|
34
|
+
* @param {Scene} options.scene The Cesium Viewer {@link Scene}. This is required for clamping billboards and labels with {@link HeightReference}
|
|
32
35
|
*
|
|
33
36
|
* @private
|
|
34
37
|
*/
|
|
@@ -42,12 +45,15 @@ function Vector3DTilePoints(options) {
|
|
|
42
45
|
this._rectangle = options.rectangle;
|
|
43
46
|
this._minHeight = options.minimumHeight;
|
|
44
47
|
this._maxHeight = options.maximumHeight;
|
|
48
|
+
this._heightReference = options.heightReference;
|
|
45
49
|
|
|
46
50
|
this._billboardCollection = new BillboardCollection({
|
|
47
51
|
batchTable: options.batchTable,
|
|
52
|
+
scene: options.scene,
|
|
48
53
|
});
|
|
49
54
|
this._labelCollection = new LabelCollection({
|
|
50
55
|
batchTable: options.batchTable,
|
|
56
|
+
scene: options.scene,
|
|
51
57
|
});
|
|
52
58
|
this._polylineCollection = new PolylineCollection();
|
|
53
59
|
this._polylineCollection._useHighlightColor = true;
|
|
@@ -175,6 +181,8 @@ function createPoints(points, ellipsoid) {
|
|
|
175
181
|
const batchIds = points._batchIds;
|
|
176
182
|
const numberOfPoints = positions.length / 3;
|
|
177
183
|
|
|
184
|
+
const heightReference = points._heightReference ?? HeightReference.NONE;
|
|
185
|
+
|
|
178
186
|
for (let i = 0; i < numberOfPoints; ++i) {
|
|
179
187
|
const id = batchIds[i];
|
|
180
188
|
|
|
@@ -183,11 +191,13 @@ function createPoints(points, ellipsoid) {
|
|
|
183
191
|
const b = billboardCollection.add();
|
|
184
192
|
b.position = position;
|
|
185
193
|
b._batchIndex = id;
|
|
194
|
+
b.heightReference = heightReference;
|
|
186
195
|
|
|
187
196
|
const l = labelCollection.add();
|
|
188
197
|
l.text = " ";
|
|
189
198
|
l.position = position;
|
|
190
199
|
l._batchIndex = id;
|
|
200
|
+
l.heightReference = heightReference;
|
|
191
201
|
|
|
192
202
|
const p = polylineCollection.add();
|
|
193
203
|
p.positions = [Cartesian3.clone(position), Cartesian3.clone(position)];
|