@cesium/engine 6.2.0 → 8.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/z-worker-pako.js +568 -407
- package/Build/Workers/{chunk-RH4N2ONY.js → chunk-23UFSGND.js} +7 -7
- package/Build/Workers/{chunk-HPP4JLNH.js → chunk-2A75IWRS.js} +7 -7
- package/Build/Workers/{chunk-5IRLXUTA.js → chunk-2FRVPMCS.js} +10 -10
- package/Build/Workers/{chunk-ZQRZBHYI.js → chunk-2FWRMUTY.js} +4 -4
- package/Build/Workers/{chunk-Z2SIPUKB.js → chunk-2UPKWTMJ.js} +6 -6
- package/Build/Workers/{chunk-434ZTTFX.js → chunk-34FXV7D7.js} +2 -2
- package/Build/Workers/{chunk-MW3CJYLX.js → chunk-3VAZEH7M.js} +2 -2
- package/Build/Workers/{chunk-HUPNRBWW.js → chunk-4DO5W5XZ.js} +6 -6
- package/Build/Workers/{chunk-PIXK6KHB.js → chunk-4H7PY4U5.js} +2 -2
- package/Build/Workers/{chunk-BP467WX3.js → chunk-5QULIR53.js} +4 -4
- package/Build/Workers/{chunk-R3HUGXBH.js → chunk-7TC63SJW.js} +8 -8
- package/Build/Workers/{chunk-SQVTYRZY.js → chunk-7ZFGPDJA.js} +4 -4
- package/Build/Workers/{chunk-TIXXVKUY.js → chunk-A5DWLWCY.js} +10 -10
- package/Build/Workers/{chunk-CWJQGBWT.js → chunk-BBWDMCVU.js} +1 -1
- package/Build/Workers/{chunk-4KP73B43.js → chunk-BG4UCVXN.js} +3 -3
- package/Build/Workers/{chunk-Y4OJ4B23.js → chunk-BIKA3NRA.js} +5 -5
- package/Build/Workers/{chunk-DR5XZ6K5.js → chunk-BROJAZRZ.js} +13 -13
- package/Build/Workers/{chunk-FWGNCYP6.js → chunk-DDUQAJ4P.js} +7 -7
- package/Build/Workers/{chunk-QRBRVGZC.js → chunk-EERJKOAF.js} +4 -4
- package/Build/Workers/{chunk-52VSIKEA.js → chunk-EG6PTBY2.js} +15 -15
- package/Build/Workers/{chunk-O43GWBSF.js → chunk-EHWHNOEX.js} +1 -1
- package/Build/Workers/{chunk-MN34FIF5.js → chunk-F3YA3Y2Z.js} +1 -1
- package/Build/Workers/{chunk-GF5TNNKP.js → chunk-F4HFJMGM.js} +6 -6
- package/Build/Workers/{chunk-HOT2SNXP.js → chunk-FJKNFAKQ.js} +133 -553
- package/Build/Workers/{chunk-TMPVBFJQ.js → chunk-FNIRWHJB.js} +10 -10
- package/Build/Workers/{chunk-DMCSY5BU.js → chunk-FZRIVR7Y.js} +5 -5
- package/Build/Workers/{chunk-Z4JUBRHP.js → chunk-G43QFN4Q.js} +6 -6
- package/Build/Workers/{chunk-HPH5HSFE.js → chunk-GATZHF3K.js} +2 -2
- package/Build/Workers/{chunk-CSIZ3BGT.js → chunk-GRC2ZTAF.js} +14 -14
- package/Build/Workers/{chunk-NE4JNU6H.js → chunk-HU6N6EXB.js} +10 -10
- package/Build/Workers/{chunk-GVL5I7TC.js → chunk-I46ZRR5W.js} +17 -17
- package/Build/Workers/{chunk-5GDBZTHX.js → chunk-JURN7NPV.js} +17 -17
- package/Build/Workers/{chunk-H5DUXHCV.js → chunk-KKCR2YOP.js} +11 -11
- package/Build/Workers/{chunk-LX6XV4DK.js → chunk-LPR3YNP2.js} +5 -5
- package/Build/Workers/{chunk-HFKSAB5K.js → chunk-M7ERACJJ.js} +13 -13
- package/Build/Workers/{chunk-BUZDZBUH.js → chunk-MDWEGWPA.js} +10 -10
- package/Build/Workers/{chunk-LGJUI2CE.js → chunk-OGXZVPPM.js} +9 -5
- package/Build/Workers/{chunk-PZ2WJWUG.js → chunk-PGSJK77E.js} +6 -6
- package/Build/Workers/{chunk-ARPTYYKS.js → chunk-PPH7OFP3.js} +5 -5
- package/Build/Workers/{chunk-R4OZKBXH.js → chunk-SH5USDPI.js} +6 -6
- package/Build/Workers/{chunk-SV7DDPAC.js → chunk-SOWMRMWA.js} +1 -1
- package/Build/Workers/{chunk-RIDPF7PO.js → chunk-STW2DGFI.js} +2 -2
- package/Build/Workers/{chunk-CDGHUKQ4.js → chunk-T3XIFPYR.js} +13 -13
- package/Build/Workers/chunk-TTUZP4BO.js +501 -0
- package/Build/Workers/{chunk-QTZQZY2C.js → chunk-UEXTBDBE.js} +34 -10
- package/Build/Workers/{chunk-XUTVA4K5.js → chunk-VOXYEYJT.js} +11 -11
- package/Build/Workers/{chunk-AXFRNOVC.js → chunk-X4356LRH.js} +12 -12
- package/Build/Workers/{chunk-5HLGKKG3.js → chunk-XGI5BXZY.js} +2 -2
- package/Build/Workers/{chunk-SNN7WOC2.js → chunk-Y2ME2IJV.js} +13 -13
- package/Build/Workers/{chunk-LGL4P5KL.js → chunk-Y5UQJLYE.js} +6 -6
- package/Build/Workers/{chunk-3PW6ZBN4.js → chunk-YJEBABKH.js} +7 -7
- package/Build/Workers/{chunk-YBKFS53K.js → chunk-YWTJ2B4B.js} +1 -1
- package/Build/Workers/{chunk-5SK36PU4.js → chunk-Z3TIFFGF.js} +7 -7
- package/Build/Workers/{chunk-JGG36SQV.js → chunk-ZT7KWISZ.js} +4 -4
- package/Build/Workers/combineGeometry.js +24 -23
- package/Build/Workers/createBoxGeometry.js +18 -17
- package/Build/Workers/createBoxOutlineGeometry.js +16 -15
- package/Build/Workers/createCircleGeometry.js +26 -25
- package/Build/Workers/createCircleOutlineGeometry.js +19 -18
- package/Build/Workers/createCoplanarPolygonGeometry.js +33 -32
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -30
- package/Build/Workers/createCorridorGeometry.js +29 -29
- package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
- package/Build/Workers/createCylinderGeometry.js +20 -19
- package/Build/Workers/createCylinderOutlineGeometry.js +18 -17
- package/Build/Workers/createEllipseGeometry.js +26 -25
- package/Build/Workers/createEllipseOutlineGeometry.js +19 -18
- package/Build/Workers/createEllipsoidGeometry.js +19 -18
- package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -17
- package/Build/Workers/createFrustumGeometry.js +18 -17
- package/Build/Workers/createFrustumOutlineGeometry.js +18 -17
- package/Build/Workers/createGeometry.js +54 -33
- package/Build/Workers/createGroundPolylineGeometry.js +22 -21
- package/Build/Workers/createPlaneGeometry.js +16 -15
- package/Build/Workers/createPlaneOutlineGeometry.js +15 -14
- package/Build/Workers/createPolygonGeometry.js +32 -166
- package/Build/Workers/createPolygonOutlineGeometry.js +30 -29
- package/Build/Workers/createPolylineGeometry.js +25 -24
- package/Build/Workers/createPolylineVolumeGeometry.js +32 -33
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
- package/Build/Workers/createRectangleGeometry.js +27 -26
- package/Build/Workers/createRectangleOutlineGeometry.js +20 -19
- package/Build/Workers/createSimplePolylineGeometry.js +23 -22
- package/Build/Workers/createSphereGeometry.js +19 -18
- package/Build/Workers/createSphereOutlineGeometry.js +18 -17
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
- package/Build/Workers/createVectorTileGeometries.js +24 -23
- package/Build/Workers/createVectorTilePoints.js +12 -12
- package/Build/Workers/createVectorTilePolygons.js +22 -21
- package/Build/Workers/createVectorTilePolylines.js +14 -14
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -21
- package/Build/Workers/createVerticesFromHeightmap.js +22 -21
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +19 -18
- package/Build/Workers/createWallGeometry.js +24 -23
- package/Build/Workers/createWallOutlineGeometry.js +23 -22
- package/Build/Workers/decodeDraco.js +11 -11
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +601 -92
- package/Build/Workers/transcodeKTX2.js +7 -7
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -21
- package/LICENSE.md +1 -1
- package/Source/Assets/approximateTerrainHeights.json +1 -1
- package/Source/Core/Ellipsoid.js +6 -0
- package/Source/Core/GregorianDate.js +85 -0
- package/Source/Core/HeadingPitchRange.js +2 -2
- package/Source/Core/IntersectionTests.js +6 -3
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/PixelFormat.js +5 -0
- package/Source/Core/PolygonGeometry.js +0 -169
- package/Source/Core/Resource.js +30 -69
- package/Source/Core/Transforms.js +30 -18
- package/Source/Core/createWorldBathymetryAsync.js +45 -0
- package/Source/Core/srgbToLinear.js +32 -0
- package/Source/DataSources/CzmlDataSource.js +51 -23
- package/Source/DataSources/DataSourceDisplay.js +27 -0
- package/Source/DataSources/EllipsoidGeometryUpdater.js +3 -4
- package/Source/DataSources/Entity.js +28 -7
- package/Source/DataSources/EntityCollection.js +1 -2
- package/Source/DataSources/GeometryUpdater.js +1 -2
- package/Source/DataSources/GeometryUpdaterSet.js +114 -0
- package/Source/DataSources/GeometryVisualizer.js +19 -83
- package/Source/DataSources/GroundGeometryUpdater.js +6 -3
- package/Source/DataSources/ModelVisualizer.js +19 -98
- package/Source/DataSources/PolygonGeometryUpdater.js +14 -2
- package/Source/DataSources/PolylineGeometryUpdater.js +9 -8
- package/Source/DataSources/TerrainOffsetProperty.js +15 -23
- package/Source/Renderer/AutomaticUniforms.js +121 -1
- package/Source/Renderer/Context.js +10 -0
- package/Source/Renderer/ContextLimits.js +2 -0
- package/Source/Renderer/UniformState.js +127 -0
- package/Source/Renderer/demodernizeShader.js +4 -1
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/Atmosphere.js +127 -0
- package/Source/Scene/Axis.js +12 -7
- package/Source/Scene/Billboard.js +29 -26
- package/Source/Scene/BillboardCollection.js +3 -3
- package/Source/Scene/Camera.js +47 -5
- package/Source/Scene/Cesium3DTile.js +1 -0
- package/Source/Scene/Cesium3DTileContent.js +14 -0
- package/Source/Scene/Cesium3DTileset.js +364 -45
- package/Source/Scene/Cesium3DTilesetBaseTraversal.js +2 -4
- package/Source/Scene/Cesium3DTilesetTraversal.js +4 -0
- package/Source/Scene/Composite3DTileContent.js +42 -0
- package/Source/Scene/DynamicAtmosphereLightingType.js +56 -0
- package/Source/Scene/Empty3DTileContent.js +4 -0
- package/Source/Scene/Fog.js +1 -0
- package/Source/Scene/FrameState.js +14 -1
- package/Source/Scene/Geometry3DTileContent.js +4 -0
- package/Source/Scene/Globe.js +3 -2
- package/Source/Scene/GlobeSurfaceTileProvider.js +3 -1
- package/Source/Scene/GlobeTranslucencyState.js +1 -1
- package/Source/Scene/GltfLoader.js +15 -5
- package/Source/Scene/GltfPipeline/updateVersion.js +69 -68
- package/Source/Scene/HeightReference.js +59 -2
- package/Source/Scene/I3SDataProvider.js +270 -53
- package/Source/Scene/I3SDecoder.js +8 -1
- package/Source/Scene/I3SFeature.js +2 -5
- package/Source/Scene/I3SField.js +136 -31
- package/Source/Scene/I3SGeometry.js +70 -2
- package/Source/Scene/I3SLayer.js +55 -10
- package/Source/Scene/I3SNode.js +175 -18
- package/Source/Scene/I3SStatistics.js +94 -0
- package/Source/Scene/I3SSublayer.js +176 -0
- package/Source/Scene/I3SSymbology.js +337 -0
- package/Source/Scene/Implicit3DTileContent.js +4 -0
- package/Source/Scene/KeyframeNode.js +1 -1
- package/Source/Scene/LabelCollection.js +2 -2
- package/Source/Scene/Model/AtmospherePipelineStage.js +59 -0
- package/Source/Scene/Model/B3dmLoader.js +4 -0
- package/Source/Scene/Model/FeatureIdPipelineStage.js +25 -2
- package/Source/Scene/Model/I3dmLoader.js +4 -0
- package/Source/Scene/Model/InstancingPipelineStage.js +24 -6
- package/Source/Scene/Model/MetadataPipelineStage.js +31 -3
- package/Source/Scene/Model/Model.js +82 -32
- package/Source/Scene/Model/Model3DTileContent.js +31 -0
- package/Source/Scene/Model/ModelAnimationChannel.js +16 -15
- package/Source/Scene/Model/ModelSceneGraph.js +6 -0
- package/Source/Scene/Model/pickModel.js +426 -0
- package/Source/Scene/Multiple3DTileContent.js +42 -0
- package/Source/Scene/PickFramebuffer.js +37 -2
- package/Source/Scene/Picking.js +113 -39
- package/Source/Scene/Primitive.js +6 -2
- package/Source/Scene/QuadtreePrimitive.js +1 -1
- package/Source/Scene/Scene.js +312 -46
- package/Source/Scene/ScreenSpaceCameraController.js +23 -13
- package/Source/Scene/SensorVolumePortionToDisplay.js +69 -0
- package/Source/Scene/SkyAtmosphere.js +5 -6
- package/Source/Scene/SpatialNode.js +12 -19
- package/Source/Scene/StructuralMetadata.js +1 -1
- package/Source/Scene/Terrain.js +49 -0
- package/Source/Scene/TileBoundingS2Cell.js +2 -2
- package/Source/Scene/Tileset3DTileContent.js +4 -0
- package/Source/Scene/Vector3DTileContent.js +4 -0
- package/Source/Scene/VoxelBoxShape.js +76 -0
- package/Source/Scene/VoxelCell.js +273 -0
- package/Source/Scene/VoxelCylinderShape.js +114 -43
- package/Source/Scene/VoxelEllipsoidShape.js +158 -116
- package/Source/Scene/VoxelPrimitive.js +3 -1
- package/Source/Scene/VoxelRenderResources.js +3 -0
- package/Source/Scene/VoxelShape.js +13 -0
- package/Source/Scene/VoxelTraversal.js +76 -54
- package/Source/Scene/buildVoxelDrawCommands.js +23 -0
- package/Source/Scene/createGooglePhotorealistic3DTileset.js +1 -0
- package/Source/Scene/processVoxelProperties.js +2 -0
- package/Source/Shaders/AtmosphereCommon.glsl +3 -11
- package/Source/Shaders/AtmosphereCommon.js +3 -11
- package/Source/Shaders/Builtin/CzmBuiltins.js +12 -0
- package/Source/Shaders/Builtin/Functions/applyHSBShift.glsl +32 -0
- package/Source/Shaders/Builtin/Functions/applyHSBShift.js +34 -0
- package/Source/Shaders/Builtin/Functions/approximateTanh.glsl +10 -0
- package/Source/Shaders/Builtin/Functions/approximateTanh.js +12 -0
- package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.glsl +44 -0
- package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.js +46 -0
- package/Source/Shaders/Builtin/Functions/computeGroundAtmosphereScattering.glsl +30 -0
- package/Source/Shaders/Builtin/Functions/computeGroundAtmosphereScattering.js +32 -0
- package/Source/Shaders/Builtin/Functions/computeScattering.glsl +150 -0
- package/Source/Shaders/Builtin/Functions/computeScattering.js +152 -0
- package/Source/Shaders/Builtin/Functions/getDynamicAtmosphereLightDirection.glsl +22 -0
- package/Source/Shaders/Builtin/Functions/getDynamicAtmosphereLightDirection.js +24 -0
- package/Source/Shaders/Builtin/Functions/translateRelativeToEye.glsl +5 -0
- package/Source/Shaders/Builtin/Functions/translateRelativeToEye.js +5 -0
- package/Source/Shaders/GlobeFS.glsl +16 -25
- package/Source/Shaders/GlobeFS.js +16 -25
- package/Source/Shaders/GlobeVS.glsl +1 -1
- package/Source/Shaders/GlobeVS.js +1 -1
- package/Source/Shaders/Model/AtmosphereStageFS.glsl +111 -0
- package/Source/Shaders/Model/AtmosphereStageFS.js +113 -0
- package/Source/Shaders/Model/AtmosphereStageVS.glsl +12 -0
- package/Source/Shaders/Model/AtmosphereStageVS.js +14 -0
- package/Source/Shaders/Model/GeometryStageFS.glsl +1 -1
- package/Source/Shaders/Model/GeometryStageFS.js +1 -1
- package/Source/Shaders/Model/GeometryStageVS.glsl +4 -4
- package/Source/Shaders/Model/GeometryStageVS.js +4 -4
- package/Source/Shaders/Model/ModelColorStageFS.glsl +1 -1
- package/Source/Shaders/Model/ModelColorStageFS.js +2 -1
- package/Source/Shaders/Model/ModelFS.glsl +4 -0
- package/Source/Shaders/Model/ModelFS.js +4 -0
- package/Source/Shaders/Model/ModelVS.glsl +9 -4
- package/Source/Shaders/Model/ModelVS.js +9 -4
- package/Source/Shaders/SkyAtmosphereCommon.glsl +3 -13
- package/Source/Shaders/SkyAtmosphereCommon.js +3 -13
- package/Source/Shaders/SkyAtmosphereFS.glsl +5 -10
- package/Source/Shaders/SkyAtmosphereFS.js +5 -10
- package/Source/Shaders/SkyAtmosphereVS.glsl +3 -2
- package/Source/Shaders/SkyAtmosphereVS.js +3 -2
- package/Source/Shaders/Voxels/IntersectCylinder.glsl +14 -111
- package/Source/Shaders/Voxels/IntersectCylinder.js +14 -111
- package/Source/Shaders/Voxels/IntersectEllipsoid.glsl +32 -113
- package/Source/Shaders/Voxels/IntersectEllipsoid.js +32 -113
- package/Source/Shaders/Voxels/IntersectLongitude.glsl +102 -0
- package/Source/Shaders/Voxels/IntersectLongitude.js +104 -0
- package/Source/Shaders/Voxels/VoxelFS.glsl +39 -1
- package/Source/Shaders/Voxels/VoxelFS.js +39 -1
- package/Source/Shaders/Voxels/convertUvToCylinder.glsl +19 -37
- package/Source/Shaders/Voxels/convertUvToCylinder.js +19 -37
- package/Source/Shaders/Voxels/convertUvToEllipsoid.glsl +24 -44
- package/Source/Shaders/Voxels/convertUvToEllipsoid.js +24 -44
- package/Source/ThirdParty/Workers/z-worker-pako.js +1 -1
- package/Source/ThirdParty/draco_decoder.wasm +0 -0
- package/Source/Workers/createGeometry.js +40 -11
- package/Source/Workers/decodeI3S.js +720 -94
- package/index.d.ts +574 -71
- package/index.js +217 -196
- package/package.json +3 -3
- package/Build/Workers/chunk-ATB2I7OS.js +0 -55
package/Source/Scene/Picking.js
CHANGED
|
@@ -236,30 +236,38 @@ let scratchRectangle = new BoundingRectangle(
|
|
|
236
236
|
const scratchPosition = new Cartesian2();
|
|
237
237
|
const scratchColorZero = new Color(0.0, 0.0, 0.0, 0.0);
|
|
238
238
|
|
|
239
|
+
/**
|
|
240
|
+
* Returns an object with a <code>primitive</code> property that contains the first (top) primitive in the scene
|
|
241
|
+
* at a particular window coordinate or undefined if nothing is at the location. Other properties may
|
|
242
|
+
* potentially be set depending on the type of primitive and may be used to further identify the picked object.
|
|
243
|
+
* <p>
|
|
244
|
+
* When a feature of a 3D Tiles tileset is picked, <code>pick</code> returns a {@link Cesium3DTileFeature} object.
|
|
245
|
+
* </p>
|
|
246
|
+
* @param {Scene} scene
|
|
247
|
+
* @param {Cartesian2} windowPosition Window coordinates to perform picking on.
|
|
248
|
+
* @param {number} [width=3] Width of the pick rectangle.
|
|
249
|
+
* @param {number} [height=3] Height of the pick rectangle.
|
|
250
|
+
* @returns {object} Object containing the picked primitive.
|
|
251
|
+
*/
|
|
239
252
|
Picking.prototype.pick = function (scene, windowPosition, width, height) {
|
|
240
253
|
//>>includeStart('debug', pragmas.debug);
|
|
241
|
-
|
|
242
|
-
throw new DeveloperError("windowPosition is undefined.");
|
|
243
|
-
}
|
|
254
|
+
Check.defined("windowPosition", windowPosition);
|
|
244
255
|
//>>includeEnd('debug');
|
|
245
256
|
|
|
246
257
|
scratchRectangleWidth = defaultValue(width, 3.0);
|
|
247
258
|
scratchRectangleHeight = defaultValue(height, scratchRectangleWidth);
|
|
248
259
|
|
|
249
|
-
const context = scene
|
|
250
|
-
const
|
|
251
|
-
const frameState = scene.frameState;
|
|
260
|
+
const { context, frameState, defaultView } = scene;
|
|
261
|
+
const { viewport, pickFramebuffer } = defaultView;
|
|
252
262
|
|
|
253
|
-
|
|
254
|
-
scene.view = view;
|
|
263
|
+
scene.view = defaultView;
|
|
255
264
|
|
|
256
|
-
const viewport = view.viewport;
|
|
257
265
|
viewport.x = 0;
|
|
258
266
|
viewport.y = 0;
|
|
259
267
|
viewport.width = context.drawingBufferWidth;
|
|
260
268
|
viewport.height = context.drawingBufferHeight;
|
|
261
269
|
|
|
262
|
-
let passState =
|
|
270
|
+
let passState = defaultView.passState;
|
|
263
271
|
passState.viewport = BoundingRectangle.clone(viewport, passState.viewport);
|
|
264
272
|
|
|
265
273
|
const drawingBufferPosition = SceneTransforms.transformWindowToDrawingBuffer(
|
|
@@ -282,7 +290,7 @@ Picking.prototype.pick = function (scene, windowPosition, width, height) {
|
|
|
282
290
|
frameState.passes.pick = true;
|
|
283
291
|
frameState.tilesetPassState = pickTilesetPassState;
|
|
284
292
|
|
|
285
|
-
|
|
293
|
+
context.uniformState.update(frameState);
|
|
286
294
|
|
|
287
295
|
scene.updateEnvironment();
|
|
288
296
|
|
|
@@ -294,32 +302,108 @@ Picking.prototype.pick = function (scene, windowPosition, width, height) {
|
|
|
294
302
|
(scratchRectangleHeight - 1.0) * 0.5;
|
|
295
303
|
scratchRectangle.width = scratchRectangleWidth;
|
|
296
304
|
scratchRectangle.height = scratchRectangleHeight;
|
|
297
|
-
passState =
|
|
305
|
+
passState = pickFramebuffer.begin(scratchRectangle, viewport);
|
|
298
306
|
|
|
299
307
|
scene.updateAndExecuteCommands(passState, scratchColorZero);
|
|
300
308
|
scene.resolveFramebuffers(passState);
|
|
301
309
|
|
|
302
|
-
const object =
|
|
310
|
+
const object = pickFramebuffer.end(scratchRectangle);
|
|
303
311
|
context.endFrame();
|
|
304
312
|
return object;
|
|
305
313
|
};
|
|
306
314
|
|
|
315
|
+
/**
|
|
316
|
+
* Returns an object with information about the voxel sample rendered at
|
|
317
|
+
* a particular window coordinate. Returns <code>undefined</code> if there is no
|
|
318
|
+
* voxel at that position.
|
|
319
|
+
*
|
|
320
|
+
* @param {Scene} scene
|
|
321
|
+
* @param {Cartesian2} windowPosition Window coordinates to perform picking on.
|
|
322
|
+
* @param {number} [width=3] Width of the pick rectangle.
|
|
323
|
+
* @param {number} [height=3] Height of the pick rectangle.
|
|
324
|
+
* @returns {object|undefined} Object containing the picked primitive.
|
|
325
|
+
*/
|
|
326
|
+
Picking.prototype.pickVoxelCoordinate = function (
|
|
327
|
+
scene,
|
|
328
|
+
windowPosition,
|
|
329
|
+
width,
|
|
330
|
+
height
|
|
331
|
+
) {
|
|
332
|
+
//>>includeStart('debug', pragmas.debug);
|
|
333
|
+
Check.defined("windowPosition", windowPosition);
|
|
334
|
+
//>>includeEnd('debug');
|
|
335
|
+
|
|
336
|
+
scratchRectangleWidth = defaultValue(width, 3.0);
|
|
337
|
+
scratchRectangleHeight = defaultValue(height, scratchRectangleWidth);
|
|
338
|
+
|
|
339
|
+
const { context, frameState, defaultView } = scene;
|
|
340
|
+
const { viewport, pickFramebuffer } = defaultView;
|
|
341
|
+
|
|
342
|
+
scene.view = defaultView;
|
|
343
|
+
|
|
344
|
+
viewport.x = 0;
|
|
345
|
+
viewport.y = 0;
|
|
346
|
+
viewport.width = context.drawingBufferWidth;
|
|
347
|
+
viewport.height = context.drawingBufferHeight;
|
|
348
|
+
|
|
349
|
+
let passState = defaultView.passState;
|
|
350
|
+
passState.viewport = BoundingRectangle.clone(viewport, passState.viewport);
|
|
351
|
+
|
|
352
|
+
const drawingBufferPosition = SceneTransforms.transformWindowToDrawingBuffer(
|
|
353
|
+
scene,
|
|
354
|
+
windowPosition,
|
|
355
|
+
scratchPosition
|
|
356
|
+
);
|
|
357
|
+
|
|
358
|
+
scene.jobScheduler.disableThisFrame();
|
|
359
|
+
|
|
360
|
+
scene.updateFrameState();
|
|
361
|
+
frameState.cullingVolume = getPickCullingVolume(
|
|
362
|
+
scene,
|
|
363
|
+
drawingBufferPosition,
|
|
364
|
+
scratchRectangleWidth,
|
|
365
|
+
scratchRectangleHeight,
|
|
366
|
+
viewport
|
|
367
|
+
);
|
|
368
|
+
frameState.invertClassification = false;
|
|
369
|
+
frameState.passes.pickVoxel = true;
|
|
370
|
+
frameState.tilesetPassState = pickTilesetPassState;
|
|
371
|
+
|
|
372
|
+
context.uniformState.update(frameState);
|
|
373
|
+
|
|
374
|
+
scene.updateEnvironment();
|
|
375
|
+
|
|
376
|
+
scratchRectangle.x =
|
|
377
|
+
drawingBufferPosition.x - (scratchRectangleWidth - 1.0) * 0.5;
|
|
378
|
+
scratchRectangle.y =
|
|
379
|
+
scene.drawingBufferHeight -
|
|
380
|
+
drawingBufferPosition.y -
|
|
381
|
+
(scratchRectangleHeight - 1.0) * 0.5;
|
|
382
|
+
scratchRectangle.width = scratchRectangleWidth;
|
|
383
|
+
scratchRectangle.height = scratchRectangleHeight;
|
|
384
|
+
passState = pickFramebuffer.begin(scratchRectangle, viewport);
|
|
385
|
+
|
|
386
|
+
scene.updateAndExecuteCommands(passState, scratchColorZero);
|
|
387
|
+
scene.resolveFramebuffers(passState);
|
|
388
|
+
|
|
389
|
+
const voxelInfo = pickFramebuffer.readVoxelInfo(scratchRectangle);
|
|
390
|
+
context.endFrame();
|
|
391
|
+
return voxelInfo;
|
|
392
|
+
};
|
|
393
|
+
|
|
307
394
|
function renderTranslucentDepthForPick(scene, drawingBufferPosition) {
|
|
308
395
|
// PERFORMANCE_IDEA: render translucent only and merge with the previous frame
|
|
309
|
-
const context = scene
|
|
310
|
-
const
|
|
311
|
-
const environmentState = scene.environmentState;
|
|
396
|
+
const { defaultView, context, frameState, environmentState } = scene;
|
|
397
|
+
const { viewport, pickDepthFramebuffer } = defaultView;
|
|
312
398
|
|
|
313
|
-
|
|
314
|
-
scene.view = view;
|
|
399
|
+
scene.view = defaultView;
|
|
315
400
|
|
|
316
|
-
const viewport = view.viewport;
|
|
317
401
|
viewport.x = 0;
|
|
318
402
|
viewport.y = 0;
|
|
319
403
|
viewport.width = context.drawingBufferWidth;
|
|
320
404
|
viewport.height = context.drawingBufferHeight;
|
|
321
405
|
|
|
322
|
-
let passState =
|
|
406
|
+
let passState = defaultView.passState;
|
|
323
407
|
passState.viewport = BoundingRectangle.clone(viewport, passState.viewport);
|
|
324
408
|
|
|
325
409
|
scene.clearPasses(frameState.passes);
|
|
@@ -336,7 +420,7 @@ function renderTranslucentDepthForPick(scene, drawingBufferPosition) {
|
|
|
336
420
|
|
|
337
421
|
scene.updateEnvironment();
|
|
338
422
|
environmentState.renderTranslucentDepthForPick = true;
|
|
339
|
-
passState =
|
|
423
|
+
passState = pickDepthFramebuffer.update(
|
|
340
424
|
context,
|
|
341
425
|
drawingBufferPosition,
|
|
342
426
|
viewport
|
|
@@ -363,9 +447,7 @@ Picking.prototype.pickPositionWorldCoordinates = function (
|
|
|
363
447
|
}
|
|
364
448
|
|
|
365
449
|
//>>includeStart('debug', pragmas.debug);
|
|
366
|
-
|
|
367
|
-
throw new DeveloperError("windowPosition is undefined.");
|
|
368
|
-
}
|
|
450
|
+
Check.defined("windowPosition", windowPosition);
|
|
369
451
|
if (!scene.context.depthTexture) {
|
|
370
452
|
throw new DeveloperError(
|
|
371
453
|
"Picking from the depth buffer is not supported. Check pickPositionSupported."
|
|
@@ -382,12 +464,10 @@ Picking.prototype.pickPositionWorldCoordinates = function (
|
|
|
382
464
|
return Cartesian3.clone(this._pickPositionCache[cacheKey], result);
|
|
383
465
|
}
|
|
384
466
|
|
|
385
|
-
const frameState = scene
|
|
386
|
-
const
|
|
387
|
-
const uniformState = context.uniformState;
|
|
467
|
+
const { context, frameState, camera, defaultView } = scene;
|
|
468
|
+
const { uniformState } = context;
|
|
388
469
|
|
|
389
|
-
|
|
390
|
-
scene.view = view;
|
|
470
|
+
scene.view = defaultView;
|
|
391
471
|
|
|
392
472
|
const drawingBufferPosition = SceneTransforms.transformWindowToDrawingBuffer(
|
|
393
473
|
scene,
|
|
@@ -403,8 +483,6 @@ Picking.prototype.pickPositionWorldCoordinates = function (
|
|
|
403
483
|
}
|
|
404
484
|
drawingBufferPosition.y = scene.drawingBufferHeight - drawingBufferPosition.y;
|
|
405
485
|
|
|
406
|
-
const camera = scene.camera;
|
|
407
|
-
|
|
408
486
|
// Create a working frustum from the original camera frustum.
|
|
409
487
|
let frustum;
|
|
410
488
|
if (defined(camera.frustum.fov)) {
|
|
@@ -417,7 +495,7 @@ Picking.prototype.pickPositionWorldCoordinates = function (
|
|
|
417
495
|
frustum = camera.frustum.clone(scratchOrthographicOffCenterFrustum);
|
|
418
496
|
}
|
|
419
497
|
|
|
420
|
-
const frustumCommandsList =
|
|
498
|
+
const frustumCommandsList = defaultView.frustumCommandsList;
|
|
421
499
|
const numFrustums = frustumCommandsList.length;
|
|
422
500
|
for (let i = 0; i < numFrustums; ++i) {
|
|
423
501
|
const pickDepth = this.getPickDepth(scene, i);
|
|
@@ -636,9 +714,7 @@ function updateOffscreenCameraFromRay(picking, ray, width, camera) {
|
|
|
636
714
|
function updateMostDetailedRayPick(picking, scene, rayPick) {
|
|
637
715
|
const frameState = scene.frameState;
|
|
638
716
|
|
|
639
|
-
const ray = rayPick
|
|
640
|
-
const width = rayPick.width;
|
|
641
|
-
const tilesets = rayPick.tilesets;
|
|
717
|
+
const { ray, width, tilesets } = rayPick;
|
|
642
718
|
|
|
643
719
|
const camera = picking._pickOffscreenView.camera;
|
|
644
720
|
const cullingVolume = updateOffscreenCameraFromRay(
|
|
@@ -682,8 +758,7 @@ Picking.prototype.updateMostDetailedRayPicks = function (scene) {
|
|
|
682
758
|
};
|
|
683
759
|
|
|
684
760
|
function getTilesets(primitives, objectsToExclude, tilesets) {
|
|
685
|
-
|
|
686
|
-
for (let i = 0; i < length; ++i) {
|
|
761
|
+
for (let i = 0; i < primitives.length; ++i) {
|
|
687
762
|
const primitive = primitives.get(i);
|
|
688
763
|
if (primitive.show) {
|
|
689
764
|
if (defined(primitive.isCesium3DTileset)) {
|
|
@@ -745,9 +820,8 @@ function getRayIntersection(
|
|
|
745
820
|
requirePosition,
|
|
746
821
|
mostDetailed
|
|
747
822
|
) {
|
|
748
|
-
const context = scene
|
|
823
|
+
const { context, frameState } = scene;
|
|
749
824
|
const uniformState = context.uniformState;
|
|
750
|
-
const frameState = scene.frameState;
|
|
751
825
|
|
|
752
826
|
const view = picking._pickOffscreenView;
|
|
753
827
|
scene.view = view;
|
|
@@ -1174,15 +1174,19 @@ function loadAsynchronous(primitive, frameState) {
|
|
|
1174
1174
|
instanceIds.push(instances[i].id);
|
|
1175
1175
|
|
|
1176
1176
|
//>>includeStart('debug', pragmas.debug);
|
|
1177
|
-
if (
|
|
1177
|
+
if (
|
|
1178
|
+
(defined(geometry._workerName) && defined(geometry._workerPath)) ||
|
|
1179
|
+
(!defined(geometry._workerName) && !defined(geometry._workerPath))
|
|
1180
|
+
) {
|
|
1178
1181
|
throw new DeveloperError(
|
|
1179
|
-
"_workerName
|
|
1182
|
+
"Must define either _workerName or _workerPath for asynchronous geometry."
|
|
1180
1183
|
);
|
|
1181
1184
|
}
|
|
1182
1185
|
//>>includeEnd('debug');
|
|
1183
1186
|
|
|
1184
1187
|
subTasks.push({
|
|
1185
1188
|
moduleName: geometry._workerName,
|
|
1189
|
+
modulePath: geometry._workerPath,
|
|
1186
1190
|
geometry: geometry,
|
|
1187
1191
|
});
|
|
1188
1192
|
}
|
|
@@ -274,7 +274,7 @@ QuadtreePrimitive.prototype.forEachRenderedTile = function (tileFunction) {
|
|
|
274
274
|
* is the cartesian position on the tile.
|
|
275
275
|
*
|
|
276
276
|
* @param {Cartographic} cartographic The cartographic position.
|
|
277
|
-
* @param {Function} callback The function to be called when a new tile is loaded containing cartographic.
|
|
277
|
+
* @param {Function} callback The function to be called when a new tile is loaded containing the updated cartographic.
|
|
278
278
|
* @returns {Function} The function to remove this callback from the quadtree.
|
|
279
279
|
*/
|
|
280
280
|
QuadtreePrimitive.prototype.updateHeight = function (cartographic, callback) {
|