@cesium/engine 24.0.0 → 26.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/Workers/{chunk-6WLHJFD3.js → chunk-3VFEWOBI.js} +59 -32
- package/Build/Workers/{chunk-UQU4RXLT.js → chunk-424RNO3D.js} +50 -45
- package/Build/Workers/chunk-4MGMYHOO.js +147 -0
- package/Build/Workers/{chunk-AMIHNSST.js → chunk-4S7IE3LB.js} +2 -2
- package/Build/Workers/{chunk-J6AW5YHS.js → chunk-52JDLOEM.js} +14 -14
- package/Build/Workers/{chunk-6RMS4S72.js → chunk-54I6Y66F.js} +6 -6
- package/Build/Workers/{chunk-C6P4IG5P.js → chunk-6YEE6JDR.js} +6 -6
- package/Build/Workers/{chunk-72VYSVEW.js → chunk-7J2HKPRH.js} +11 -10
- package/Build/Workers/{chunk-7O5XJTVE.js → chunk-7WM2PX4V.js} +5 -5
- package/Build/Workers/{chunk-5A2SW66E.js → chunk-ACXQXN46.js} +16 -16
- package/Build/Workers/{chunk-VLDEUTOP.js → chunk-AYKR4VBR.js} +2 -2
- package/Build/Workers/{chunk-YQFTYQMZ.js → chunk-C6J67V5A.js} +3 -2
- package/Build/Workers/{chunk-D4EJ2NXG.js → chunk-C6KNZ7T4.js} +17 -17
- package/Build/Workers/{chunk-7MDYBRYJ.js → chunk-CFQP6LYM.js} +4 -4
- package/Build/Workers/{chunk-YAOZMOFL.js → chunk-CXOYE2WM.js} +5 -5
- package/Build/Workers/{chunk-B6SCUUFP.js → chunk-CZEYZU4N.js} +10 -10
- package/Build/Workers/{chunk-NPF7SSHZ.js → chunk-DBOEKL43.js} +7 -7
- package/Build/Workers/{chunk-44EMEGKW.js → chunk-DDWSZVMY.js} +5 -5
- package/Build/Workers/{chunk-7X322WP2.js → chunk-DOBXCNC3.js} +13 -13
- package/Build/Workers/{chunk-JCI63T3K.js → chunk-E7VQ76KE.js} +6 -6
- package/Build/Workers/{chunk-7TYLCBGK.js → chunk-EBSIOBXY.js} +12 -10
- package/Build/Workers/{chunk-GQUNK2XC.js → chunk-EF2QYXGA.js} +14 -14
- package/Build/Workers/{chunk-BJD6QGXZ.js → chunk-EPYXRCDB.js} +12 -12
- package/Build/Workers/{chunk-63SIWPLS.js → chunk-F6QDY6HU.js} +13 -13
- package/Build/Workers/{chunk-XY6HMDGI.js → chunk-FRQZECAO.js} +5 -5
- package/Build/Workers/{chunk-VMVOUQ5J.js → chunk-G7PXZRVF.js} +7 -7
- package/Build/Workers/{chunk-N65BAKSH.js → chunk-INUEEEQA.js} +8 -8
- package/Build/Workers/{chunk-7QRFIKWQ.js → chunk-IRBKFCEJ.js} +2 -2
- package/Build/Workers/{chunk-UIGVOKKI.js → chunk-IYOUHCZB.js} +3 -2
- package/Build/Workers/{chunk-5GXYJQ2K.js → chunk-J6BWOHUF.js} +3 -3
- package/Build/Workers/{chunk-A47HVBC5.js → chunk-KFSTQKNM.js} +7 -7
- package/Build/Workers/{chunk-EV3VGO6Y.js → chunk-KKOSKAZB.js} +17 -17
- package/Build/Workers/{chunk-6MPGQEHA.js → chunk-KSSWJIZW.js} +2 -2
- package/Build/Workers/{chunk-DHKPFLSJ.js → chunk-M3B5JKSM.js} +3 -2
- package/Build/Workers/chunk-MPZHGZU6.js +2342 -0
- package/Build/Workers/{chunk-YJZGW74L.js → chunk-MYP774IS.js} +2213 -1349
- package/Build/Workers/{chunk-LIB2H534.js → chunk-O3EA5HS7.js} +12 -11
- package/Build/Workers/{chunk-ILMFADZA.js → chunk-P3CK7MCY.js} +27 -5
- package/Build/Workers/chunk-Q3PY526V.js +3201 -0
- package/Build/Workers/chunk-QN67VG36.js +973 -0
- package/Build/Workers/{chunk-XJRBB253.js → chunk-QRWGUWI6.js} +11 -11
- package/Build/Workers/{chunk-AF3MU2RL.js → chunk-S4MCOY6I.js} +7 -6
- package/Build/Workers/{chunk-Y7HNNPNK.js → chunk-SMQZZOW6.js} +10 -10
- package/Build/Workers/{chunk-PVV64VFW.js → chunk-TKKIREQ6.js} +3 -2
- package/Build/Workers/{chunk-MKM27KGV.js → chunk-U3ZA64U7.js} +2 -2
- package/Build/Workers/{chunk-2N4KDHS3.js → chunk-UA25D5MX.js} +12 -11
- package/Build/Workers/{chunk-RQNJD3O4.js → chunk-UOOIQ3KX.js} +12 -12
- package/Build/Workers/{chunk-GOQBUCXH.js → chunk-V7VQKN6N.js} +709 -431
- package/Build/Workers/{chunk-LXMCPFFS.js → chunk-VQYETPWC.js} +4 -4
- package/Build/Workers/{chunk-NKT5K3K3.js → chunk-VWV2IJRB.js} +13 -12
- package/Build/Workers/chunk-XZMBNNDX.js +1287 -0
- package/Build/Workers/{chunk-ISY4EZCA.js → chunk-Y57HREW5.js} +4 -4
- package/Build/Workers/{chunk-EDXL4W76.js → chunk-Y5BF6AFU.js} +2 -2
- package/Build/Workers/{chunk-Q3C6VQH6.js → chunk-YLY7NKAB.js} +4 -4
- package/Build/Workers/{chunk-4TIG36AW.js → chunk-ZK3CF7ZD.js} +12 -12
- package/Build/Workers/{chunk-AJLTU6PF.js → chunk-ZP7JMQV4.js} +4 -1
- package/Build/Workers/{chunk-HXJMS2ZI.js → chunk-ZZ46LWL6.js} +1 -1
- package/Build/Workers/combineGeometry.js +24 -24
- package/Build/Workers/createBoxGeometry.js +18 -18
- package/Build/Workers/createBoxOutlineGeometry.js +16 -16
- package/Build/Workers/createCircleGeometry.js +26 -26
- package/Build/Workers/createCircleOutlineGeometry.js +19 -19
- package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
- package/Build/Workers/createCorridorGeometry.js +29 -29
- package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
- package/Build/Workers/createCylinderGeometry.js +20 -20
- package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
- package/Build/Workers/createEllipseGeometry.js +26 -26
- package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
- package/Build/Workers/createEllipsoidGeometry.js +19 -19
- package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
- package/Build/Workers/createFrustumGeometry.js +18 -18
- package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
- package/Build/Workers/createGeometry.js +24 -24
- package/Build/Workers/createGroundPolylineGeometry.js +175 -118
- package/Build/Workers/createPlaneGeometry.js +16 -16
- package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
- package/Build/Workers/createPolygonGeometry.js +32 -32
- package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
- package/Build/Workers/createPolylineGeometry.js +25 -25
- package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
- package/Build/Workers/createRectangleGeometry.js +27 -27
- package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
- package/Build/Workers/createSimplePolylineGeometry.js +23 -23
- package/Build/Workers/createSphereGeometry.js +19 -19
- package/Build/Workers/createSphereOutlineGeometry.js +18 -18
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
- package/Build/Workers/createVectorTileGeometries.js +24 -24
- package/Build/Workers/createVectorTilePoints.js +13 -13
- package/Build/Workers/createVectorTilePolygons.js +22 -22
- package/Build/Workers/createVectorTilePolylines.js +14 -14
- package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
- package/Build/Workers/createVerticesFromHeightmap.js +24 -23
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
- package/Build/Workers/createWallGeometry.js +24 -24
- package/Build/Workers/createWallOutlineGeometry.js +23 -23
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +10 -10
- package/Build/Workers/gaussianSplatSorter.js +4 -4
- package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
- package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
- package/Build/Workers/transcodeKTX2.js +12 -9
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Source/Core/ArcType.js +6 -1
- package/Source/Core/ArticulationStageType.js +5 -1
- package/Source/Core/AssociativeArray.js +100 -94
- package/Source/Core/BoundingSphere.js +1296 -1300
- package/Source/Core/Cartesian2.js +1 -1
- package/Source/Core/Cartesian3.js +2 -3
- package/Source/Core/Cartesian4.js +1 -1
- package/Source/Core/Cartographic.js +257 -249
- package/Source/Core/ClockRange.js +6 -1
- package/Source/Core/ClockStep.js +6 -1
- package/Source/Core/Color.js +844 -835
- package/Source/Core/ComponentDatatype.js +39 -1
- package/Source/Core/CornerType.js +6 -1
- package/Source/Core/Credit.js +121 -124
- package/Source/Core/Ellipsoid.js +637 -660
- package/Source/Core/ExtrapolationType.js +6 -1
- package/Source/Core/GeocodeType.js +6 -1
- package/Source/Core/GeographicProjection.js +74 -74
- package/Source/Core/GeographicTilingScheme.js +179 -198
- package/Source/Core/GeometryOffsetAttribute.js +7 -1
- package/Source/Core/GeometryType.js +7 -1
- package/Source/Core/HeightmapEncoding.js +6 -1
- package/Source/Core/Iau2006XysData.js +24 -13
- package/Source/Core/IndexDatatype.js +3 -1
- package/Source/Core/InterpolationType.js +5 -1
- package/Source/Core/Intersect.js +6 -1
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonGeocodeProviderType.js +5 -1
- package/Source/Core/JulianDate.js +850 -848
- package/Source/Core/KeyboardEventModifier.js +6 -1
- package/Source/Core/MapProjection.js +40 -44
- package/Source/Core/Matrix2.js +906 -893
- package/Source/Core/Matrix3.js +1643 -1575
- package/Source/Core/Matrix4.js +2903 -2872
- package/Source/Core/PixelFormat.js +3 -1
- package/Source/Core/PrimitiveType.js +11 -1
- package/Source/Core/Ray.js +62 -60
- package/Source/Core/Rectangle.js +913 -904
- package/Source/Core/ReferenceFrame.js +6 -1
- package/Source/Core/RequestScheduler.js +8 -3
- package/Source/Core/RequestState.js +6 -1
- package/Source/Core/RequestType.js +6 -1
- package/Source/Core/Resource.js +1 -1
- package/Source/Core/ScreenSpaceEventHandler.js +51 -41
- package/Source/Core/ScreenSpaceEventType.js +6 -1
- package/Source/Core/TerrainQuantization.js +6 -1
- package/Source/Core/TilingScheme.js +100 -98
- package/Source/Core/TimeConstants.js +6 -1
- package/Source/Core/TimeStandard.js +6 -1
- package/Source/Core/TrackingReferenceFrame.js +6 -1
- package/Source/Core/Visibility.js +6 -1
- package/Source/Core/VulkanConstants.js +6 -1
- package/Source/Core/WebGLConstants.js +6 -1
- package/Source/Core/WebMercatorProjection.js +108 -109
- package/Source/Core/WebMercatorTilingScheme.js +246 -242
- package/Source/Core/WindingOrder.js +3 -1
- package/Source/Core/createColorRamp.js +37 -0
- package/Source/Core/globalTypes.js +25 -0
- package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +1 -0
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -0
- package/Source/DataSources/StripeOrientation.js +6 -1
- package/Source/Renderer/BufferUsage.js +20 -9
- package/Source/Renderer/Context.js +2 -29
- package/Source/Renderer/DrawCommand.js +435 -403
- package/Source/Renderer/MipmapHint.js +5 -1
- package/Source/Renderer/Pass.js +10 -3
- package/Source/Renderer/PickId.js +44 -0
- package/Source/Renderer/PixelDatatype.js +3 -1
- package/Source/Renderer/RenderbufferFormat.js +5 -1
- package/Source/Renderer/ShaderDestination.js +4 -1
- package/Source/Renderer/TextureMagnificationFilter.js +3 -1
- package/Source/Renderer/TextureMinificationFilter.js +3 -1
- package/Source/Renderer/TextureWrap.js +5 -1
- package/Source/Renderer/createUniform.js +346 -239
- package/Source/Renderer/createUniformArray.js +494 -381
- package/Source/Scene/AlphaMode.js +5 -1
- package/Source/Scene/ArcGisBaseMapType.js +6 -1
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/AttributeType.js +3 -1
- package/Source/Scene/Axis.js +3 -1
- package/Source/Scene/BingMapsStyle.js +6 -1
- package/Source/Scene/BlendEquation.js +6 -1
- package/Source/Scene/BlendFunction.js +6 -1
- package/Source/Scene/BlendOption.js +6 -1
- package/Source/Scene/BlendingState.js +6 -1
- package/Source/Scene/BufferLoader.js +0 -2
- package/Source/Scene/BufferPoint.js +1 -0
- package/Source/Scene/BufferPointCollection.js +17 -1
- package/Source/Scene/BufferPolygon.js +3 -2
- package/Source/Scene/BufferPolygonCollection.js +13 -1
- package/Source/Scene/BufferPolyline.js +1 -0
- package/Source/Scene/BufferPolylineCollection.js +5 -1
- package/Source/Scene/BufferPrimitiveCollection.js +210 -43
- package/Source/Scene/CameraEventAggregator.js +30 -18
- package/Source/Scene/CameraEventType.js +6 -1
- package/Source/Scene/Cesium3DTile.js +54 -1
- package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
- package/Source/Scene/Cesium3DTileContent.js +195 -254
- package/Source/Scene/Cesium3DTileContentFactory.js +10 -2
- package/Source/Scene/Cesium3DTileContentState.js +6 -1
- package/Source/Scene/Cesium3DTileContentType.js +3 -1
- package/Source/Scene/Cesium3DTileFeature.js +289 -306
- package/Source/Scene/Cesium3DTileOptimizationHint.js +6 -1
- package/Source/Scene/Cesium3DTilePass.js +5 -1
- package/Source/Scene/Cesium3DTilePointFeature.js +433 -511
- package/Source/Scene/Cesium3DTileRefine.js +6 -1
- package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
- package/Source/Scene/Cesium3DTileset.js +46 -6
- package/Source/Scene/ClassificationType.js +3 -1
- package/Source/Scene/CloudType.js +3 -1
- package/Source/Scene/ColorBlendMode.js +4 -1
- package/Source/Scene/Composite3DTileContent.js +254 -292
- package/Source/Scene/CullFace.js +6 -1
- package/Source/Scene/DepthFunction.js +6 -1
- package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
- package/Source/Scene/EdgeDisplayMode.js +50 -0
- package/Source/Scene/Empty3DTileContent.js +100 -132
- package/Source/Scene/EquirectangularPanorama.js +1 -0
- package/Source/Scene/ExpressionNodeType.js +6 -1
- package/Source/Scene/GaussianSplat3DTileContent.js +436 -478
- package/Source/Scene/GeoJsonPrimitive.js +874 -0
- package/Source/Scene/Geometry3DTileContent.js +151 -185
- package/Source/Scene/GltfBufferViewLoader.js +0 -2
- package/Source/Scene/GltfDracoLoader.js +0 -2
- package/Source/Scene/GltfImageLoader.js +0 -3
- package/Source/Scene/GltfIndexBufferLoader.js +0 -4
- package/Source/Scene/GltfJsonLoader.js +0 -2
- package/Source/Scene/GltfLoader.js +109 -5
- package/Source/Scene/GltfLoaderUtil.js +14 -0
- package/Source/Scene/GltfSpzLoader.js +0 -2
- package/Source/Scene/GltfStructuralMetadataLoader.js +0 -2
- package/Source/Scene/GltfTextureLoader.js +0 -2
- package/Source/Scene/GltfVertexBufferLoader.js +0 -4
- package/Source/Scene/HeightReference.js +5 -1
- package/Source/Scene/HorizontalOrigin.js +6 -1
- package/Source/Scene/ImageryProvider.js +1 -1
- package/Source/Scene/ImageryState.js +6 -1
- package/Source/Scene/Implicit3DTileContent.js +179 -214
- package/Source/Scene/ImplicitSubdivisionScheme.js +3 -1
- package/Source/Scene/InstanceAttributeSemantic.js +3 -1
- package/Source/Scene/IonWorldImageryStyle.js +6 -1
- package/Source/Scene/JobType.js +6 -1
- package/Source/Scene/LabelStyle.js +6 -1
- package/Source/Scene/MVTDataProvider.js +147 -0
- package/Source/Scene/MapMode2D.js +6 -1
- package/Source/Scene/MetadataComponentType.js +3 -1
- package/Source/Scene/MetadataSchemaLoader.js +0 -2
- package/Source/Scene/MetadataSemantic.js +6 -2
- package/Source/Scene/MetadataType.js +3 -1
- package/Source/Scene/Model/B3dmLoader.js +0 -3
- package/Source/Scene/Model/CustomShaderMode.js +3 -1
- package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
- package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +78 -337
- package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +5 -1
- package/Source/Scene/Model/Extensions/Gpm/StorageType.js +5 -1
- package/Source/Scene/Model/GeoJsonLoader.js +0 -2
- package/Source/Scene/Model/I3dmLoader.js +0 -3
- package/Source/Scene/Model/InstancingPipelineStage.js +1 -1
- package/Source/Scene/Model/LightingModel.js +5 -1
- package/Source/Scene/Model/MaterialPipelineStage.js +184 -3
- package/Source/Scene/Model/Model.js +34 -0
- package/Source/Scene/Model/Model3DTileContent.js +424 -458
- package/Source/Scene/Model/ModelDrawCommand.js +31 -3
- package/Source/Scene/Model/ModelReader.js +474 -3
- package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
- package/Source/Scene/Model/ModelType.js +3 -1
- package/Source/Scene/Model/ModelUtility.js +4 -0
- package/Source/Scene/Model/PntsLoader.js +4 -3
- package/Source/Scene/Model/StyleCommandsNeeded.js +3 -1
- package/Source/Scene/Model/UniformType.js +5 -1
- package/Source/Scene/Model/VaryingType.js +5 -1
- package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +500 -139
- package/Source/Scene/Model/pickModel.js +94 -299
- package/Source/Scene/ModelAnimationLoop.js +6 -1
- package/Source/Scene/ModelAnimationState.js +6 -1
- package/Source/Scene/ModelComponents.js +47 -2
- package/Source/Scene/Multiple3DTileContent.js +291 -334
- package/Source/Scene/PrimitiveState.js +7 -1
- package/Source/Scene/QuadtreeOccluders.js +20 -15
- package/Source/Scene/QuadtreeTile.js +547 -541
- package/Source/Scene/QuadtreeTileLoadState.js +6 -1
- package/Source/Scene/QuadtreeTileProvider.js +159 -175
- package/Source/Scene/ResourceLoader.js +0 -1
- package/Source/Scene/ResourceLoaderState.js +7 -1
- package/Source/Scene/Scene.js +26 -0
- package/Source/Scene/SceneMode.js +4 -1
- package/Source/Scene/ShadowMode.js +3 -1
- package/Source/Scene/SkyBox.js +1 -1
- package/Source/Scene/SplitDirection.js +6 -1
- package/Source/Scene/StencilFunction.js +6 -1
- package/Source/Scene/StencilOperation.js +6 -1
- package/Source/Scene/TerrainState.js +7 -1
- package/Source/Scene/TileState.js +7 -1
- package/Source/Scene/Tileset3DTileContent.js +113 -146
- package/Source/Scene/Tonemapper.js +5 -1
- package/Source/Scene/UrlTemplate3DTilesDataProvider.js +499 -0
- package/Source/Scene/Vector3DTileContent.js +205 -234
- package/Source/Scene/VectorGltf3DTileContent.js +131 -61
- package/Source/Scene/VertexAttributeSemantic.js +3 -1
- package/Source/Scene/VerticalOrigin.js +6 -1
- package/Source/Scene/VoxelBoxShape.js +12 -6
- package/Source/Scene/VoxelContent.js +2 -0
- package/Source/Scene/VoxelCylinderShape.js +39 -38
- package/Source/Scene/VoxelEllipsoidShape.js +46 -96
- package/Source/Scene/VoxelMetadataOrder.js +6 -1
- package/Source/Scene/VoxelPrimitive.js +159 -175
- package/Source/Scene/VoxelProvider.js +64 -90
- package/Source/Scene/VoxelShapeType.js +3 -1
- package/Source/Scene/buildVectorGltfFromMVT.js +1059 -0
- package/Source/Scene/buildVoxelCustomShader.js +199 -0
- package/Source/Scene/decodeMVT.js +634 -0
- package/Source/Scene/renderBufferPointCollection.js +124 -127
- package/Source/Scene/renderBufferPolygonCollection.js +122 -122
- package/Source/Scene/renderBufferPolylineCollection.js +386 -238
- package/Source/Shaders/BufferPointMaterialFS.glsl +1 -0
- package/Source/Shaders/BufferPointMaterialFS.js +1 -0
- package/Source/Shaders/BufferPointMaterialVS.glsl +19 -9
- package/Source/Shaders/BufferPointMaterialVS.js +20 -10
- package/Source/Shaders/BufferPolygonMaterialVS.glsl +13 -4
- package/Source/Shaders/BufferPolygonMaterialVS.js +14 -5
- package/Source/Shaders/BufferPolylineMaterialVS.glsl +16 -2
- package/Source/Shaders/BufferPolylineMaterialVS.js +17 -3
- package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.js +11 -0
- package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
- package/Source/Shaders/Builtin/CzmBuiltins.js +4 -0
- package/Source/Shaders/Builtin/Functions/computeTextureTransform.glsl +24 -0
- package/Source/Shaders/Builtin/Functions/computeTextureTransform.js +25 -0
- package/Source/Shaders/Model/ConstantLodStageFS.glsl +60 -0
- package/Source/Shaders/Model/ConstantLodStageFS.js +62 -0
- package/Source/Shaders/Model/ConstantLodStageVS.glsl +12 -0
- package/Source/Shaders/Model/ConstantLodStageVS.js +13 -0
- package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +0 -1
- package/Source/Shaders/Model/EdgeVisibilityStageVS.js +0 -1
- package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
- package/Source/Shaders/Model/MaterialStageFS.js +46 -20
- package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +0 -1
- package/Source/Shaders/Voxels/convertLocalToBoxUv.js +0 -1
- package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +7 -9
- package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +7 -9
- package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +7 -17
- package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +7 -17
- package/Source/Widget/CesiumWidget.js +11 -4
- package/index.d.ts +595 -343
- package/index.js +392 -378
- package/package.json +3 -3
- package/Build/Workers/chunk-DVB56LG7.js +0 -114
- package/Build/Workers/chunk-HKUES6UG.js +0 -2357
- package/Build/Workers/chunk-HRHRYFHS.js +0 -940
- package/Build/Workers/chunk-KLPGTXS3.js +0 -642
- package/Build/Workers/chunk-ZBZRTRJB.js +0 -1829
|
@@ -9,15 +9,26 @@ import assert from "../Core/assert.js";
|
|
|
9
9
|
import ComponentDatatype from "../Core/ComponentDatatype.js";
|
|
10
10
|
import defined from "../Core/defined.js";
|
|
11
11
|
import Check from "../Core/Check.js";
|
|
12
|
+
import AttributeCompression from "../Core/AttributeCompression.js";
|
|
13
|
+
import SceneMode from "./SceneMode.js";
|
|
14
|
+
import AttributeType from "./AttributeType.js";
|
|
15
|
+
import oneTimeWarning from "../Core/oneTimeWarning.js";
|
|
16
|
+
import BlendOption from "../Scene/BlendOption.js";
|
|
12
17
|
|
|
13
18
|
/** @import { Destroyable, TypedArray, TypedArrayConstructor } from "../Core/globalTypes.js"; */
|
|
19
|
+
/** @import Context from "../Renderer/Context.js"; */
|
|
20
|
+
/** @import FrameState from "./FrameState.js"; */
|
|
14
21
|
/** @import BufferPrimitive from "./BufferPrimitive.js"; */
|
|
15
22
|
/** @import BufferPrimitiveMaterial from "./BufferPrimitiveMaterial.js"; */
|
|
23
|
+
/** @import PickId from "../Renderer/PickId.js"; */
|
|
16
24
|
|
|
17
25
|
/**
|
|
18
26
|
* @typedef {object} BufferPrimitiveOptions
|
|
27
|
+
* @property {Matrix4} [modelMatrix=Matrix4.IDENTITY] Transforms geometry from model to world coordinates.
|
|
19
28
|
* @property {boolean} [show=true]
|
|
20
29
|
* @property {BufferPrimitiveMaterial} [material]
|
|
30
|
+
* @property {number} [featureId]
|
|
31
|
+
* @property {object} [pickObject]
|
|
21
32
|
* @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
|
|
22
33
|
*/
|
|
23
34
|
|
|
@@ -40,19 +51,6 @@ import Check from "../Core/Check.js";
|
|
|
40
51
|
* @see BufferPolygonCollection
|
|
41
52
|
*/
|
|
42
53
|
class BufferPrimitiveCollection {
|
|
43
|
-
/**
|
|
44
|
-
* Default capacity of buffers on new collections. A quantity of elements:
|
|
45
|
-
* number of vertices in the vertex buffer, primitives in the primitive
|
|
46
|
-
* buffer, etc. This value is arbitrary, and collections cannot be resized,
|
|
47
|
-
* so specific per-buffer capacities should be provided in the collection
|
|
48
|
-
* constructor when available.
|
|
49
|
-
*
|
|
50
|
-
* @type {number}
|
|
51
|
-
* @readonly
|
|
52
|
-
* @static
|
|
53
|
-
*/
|
|
54
|
-
static DEFAULT_CAPACITY = 1024;
|
|
55
|
-
|
|
56
54
|
/** @ignore */
|
|
57
55
|
static Error = {
|
|
58
56
|
ERR_RESIZE: "BufferPrimitive range cannot be resized after initialization.",
|
|
@@ -79,8 +77,16 @@ class BufferPrimitiveCollection {
|
|
|
79
77
|
* @param {number} [options.vertexCountMax=BufferPrimitiveCollection.DEFAULT_CAPACITY]
|
|
80
78
|
* @param {boolean} [options.show=true]
|
|
81
79
|
* @param {ComponentDatatype} [options.positionDatatype=ComponentDatatype.DOUBLE]
|
|
80
|
+
* @param {boolean} [options.positionNormalized=false] When <code>true</code>, integer position values are treated as normalized,
|
|
81
|
+
* where the full integer range maps to [-1, 1] (signed) or [0, 1] (unsigned). Only relevant for integer position datatypes
|
|
82
|
+
* (BYTE, UNSIGNED_BYTE, SHORT, UNSIGNED_SHORT).
|
|
82
83
|
* @param {boolean} [options.allowPicking=false] When <code>true</code>, primitives are pickable with {@link Scene#pick}. When <code>false</code>, memory and initialization cost are lower.
|
|
84
|
+
* @param {BoundingSphere} [options.boundingVolume] Bounding volume, in world space, for the collection. When
|
|
85
|
+
* unspecified, a bounding volume is computed automatically and updated when primitive positions change. When
|
|
86
|
+
* specified, users are responsible for updating bounding volume as needed. Pre-computing the bounding volume
|
|
87
|
+
* manually, and updating it only as needed, will improve performance for larger dynamic collections.
|
|
83
88
|
* @param {boolean} [options.debugShowBoundingVolume=false]
|
|
89
|
+
* @param {BlendOption} [options.blendOption=BlendOption.TRANSLUCENT]
|
|
84
90
|
*/
|
|
85
91
|
constructor(options = Frozen.EMPTY_OBJECT) {
|
|
86
92
|
/**
|
|
@@ -90,26 +96,39 @@ class BufferPrimitiveCollection {
|
|
|
90
96
|
*/
|
|
91
97
|
this.show = options.show ?? true;
|
|
92
98
|
|
|
99
|
+
/**
|
|
100
|
+
* Collection blend option; must be OPAQUE or TRANSLUCENT.
|
|
101
|
+
* @type {BlendOption}
|
|
102
|
+
* @readonly
|
|
103
|
+
* @ignore
|
|
104
|
+
*/
|
|
105
|
+
this._blendOption = options.blendOption ?? BlendOption.TRANSLUCENT;
|
|
106
|
+
|
|
93
107
|
/**
|
|
94
108
|
* Transforms geometry from model to world coordinates.
|
|
95
109
|
* @type {Matrix4}
|
|
96
110
|
* @default Matrix4.IDENTITY
|
|
111
|
+
* @readonly
|
|
112
|
+
* @protected
|
|
97
113
|
*/
|
|
98
|
-
this.
|
|
114
|
+
this._modelMatrix = Matrix4.clone(options.modelMatrix ?? Matrix4.IDENTITY);
|
|
99
115
|
|
|
100
116
|
/**
|
|
101
|
-
* Local bounding volume for all primitives in the collection, including both
|
|
102
|
-
* shown and hidden primitives.
|
|
103
117
|
* @type {BoundingSphere}
|
|
118
|
+
* @readonly
|
|
119
|
+
* @protected
|
|
104
120
|
*/
|
|
105
|
-
this.
|
|
121
|
+
this._boundingVolume = BoundingSphere.clone(
|
|
122
|
+
options.boundingVolume ?? new BoundingSphere(),
|
|
123
|
+
new BoundingSphere(),
|
|
124
|
+
);
|
|
106
125
|
|
|
107
126
|
/**
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
* @
|
|
127
|
+
* @type {boolean}
|
|
128
|
+
* @readonly
|
|
129
|
+
* @protected
|
|
111
130
|
*/
|
|
112
|
-
this.
|
|
131
|
+
this._boundingVolumeAutoUpdate = !defined(options.boundingVolume);
|
|
113
132
|
|
|
114
133
|
/**
|
|
115
134
|
* When <code>true</code>, primitives are pickable with {@link Scene#pick}.
|
|
@@ -121,6 +140,20 @@ class BufferPrimitiveCollection {
|
|
|
121
140
|
*/
|
|
122
141
|
this._allowPicking = options.allowPicking ?? false;
|
|
123
142
|
|
|
143
|
+
/**
|
|
144
|
+
* @type {Map<Context, PickId[]>}
|
|
145
|
+
* @readonly
|
|
146
|
+
* @ignore
|
|
147
|
+
*/
|
|
148
|
+
this._pickIds = new Map();
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* @type {object[]}
|
|
152
|
+
* @readonly
|
|
153
|
+
* @ignore
|
|
154
|
+
*/
|
|
155
|
+
this._pickObjects = [];
|
|
156
|
+
|
|
124
157
|
/**
|
|
125
158
|
* This property is for debugging only; it is not for production use nor is it optimized.
|
|
126
159
|
* <p>
|
|
@@ -173,6 +206,21 @@ class BufferPrimitiveCollection {
|
|
|
173
206
|
*/
|
|
174
207
|
this._positionView = null;
|
|
175
208
|
|
|
209
|
+
/**
|
|
210
|
+
* @type {ComponentDatatype}
|
|
211
|
+
* @ignore
|
|
212
|
+
*/
|
|
213
|
+
this._positionDatatype =
|
|
214
|
+
options.positionDatatype ?? ComponentDatatype.DOUBLE;
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* When <code>true</code>, integer position values represent normalized floats
|
|
218
|
+
* in [-1, 1] (signed) or [0, 1] (unsigned). Only applicable to integer datatypes.
|
|
219
|
+
* @type {boolean}
|
|
220
|
+
* @ignore
|
|
221
|
+
*/
|
|
222
|
+
this._positionNormalized = options.positionNormalized ?? false;
|
|
223
|
+
|
|
176
224
|
/**
|
|
177
225
|
* @type {DataView<ArrayBuffer>}
|
|
178
226
|
* @ignore
|
|
@@ -202,10 +250,7 @@ class BufferPrimitiveCollection {
|
|
|
202
250
|
this._dirtyBoundingVolume = false;
|
|
203
251
|
|
|
204
252
|
this._allocatePrimitiveBuffer();
|
|
205
|
-
this._allocatePositionBuffer(
|
|
206
|
-
// @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
|
|
207
|
-
options.positionDatatype ?? ComponentDatatype.DOUBLE,
|
|
208
|
-
);
|
|
253
|
+
this._allocatePositionBuffer();
|
|
209
254
|
this._allocateMaterialBuffer();
|
|
210
255
|
}
|
|
211
256
|
|
|
@@ -258,14 +303,13 @@ class BufferPrimitiveCollection {
|
|
|
258
303
|
}
|
|
259
304
|
|
|
260
305
|
/**
|
|
261
|
-
* @param {ComponentDatatype} datatype
|
|
262
306
|
* @private
|
|
263
307
|
* @ignore
|
|
264
308
|
*/
|
|
265
|
-
_allocatePositionBuffer(
|
|
266
|
-
// @ts-expect-error
|
|
309
|
+
_allocatePositionBuffer() {
|
|
310
|
+
// @ts-expect-error https://github.com/CesiumGS/cesium/issues/13420
|
|
267
311
|
this._positionView = ComponentDatatype.createTypedArray(
|
|
268
|
-
|
|
312
|
+
this._positionDatatype,
|
|
269
313
|
this._positionCountMax * 3,
|
|
270
314
|
);
|
|
271
315
|
}
|
|
@@ -292,6 +336,14 @@ class BufferPrimitiveCollection {
|
|
|
292
336
|
|
|
293
337
|
/** Destroys collection and its GPU resources. */
|
|
294
338
|
destroy() {
|
|
339
|
+
this._pickObjects.length = 0;
|
|
340
|
+
|
|
341
|
+
for (const contextPickIds of this._pickIds.values()) {
|
|
342
|
+
for (const pickId of contextPickIds) {
|
|
343
|
+
pickId.destroy();
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
|
|
295
347
|
if (defined(this._renderContext)) {
|
|
296
348
|
this._renderContext.destroy();
|
|
297
349
|
this._renderContext = undefined;
|
|
@@ -454,16 +506,19 @@ class BufferPrimitiveCollection {
|
|
|
454
506
|
* @ignore
|
|
455
507
|
*/
|
|
456
508
|
_updateBoundingVolume() {
|
|
457
|
-
const TypedArray = /** @type {TypedArrayConstructor} */ (
|
|
458
|
-
this._positionView.constructor
|
|
459
|
-
);
|
|
460
|
-
|
|
461
509
|
// Exclude unused space in the position buffer.
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
510
|
+
let vertices = this._positionView.subarray(0, this._positionCount * 3);
|
|
511
|
+
|
|
512
|
+
if (this._positionNormalized) {
|
|
513
|
+
vertices = AttributeCompression.dequantize(
|
|
514
|
+
/** @type {Int8Array|Uint8Array|Int16Array|Uint16Array|Int32Array|Uint32Array} */ (
|
|
515
|
+
vertices
|
|
516
|
+
),
|
|
517
|
+
this._positionDatatype,
|
|
518
|
+
AttributeType.VEC3,
|
|
519
|
+
this._positionCount,
|
|
520
|
+
);
|
|
521
|
+
}
|
|
467
522
|
|
|
468
523
|
BoundingSphere.fromVertices(
|
|
469
524
|
vertices,
|
|
@@ -474,11 +529,51 @@ class BufferPrimitiveCollection {
|
|
|
474
529
|
BoundingSphere.transform(
|
|
475
530
|
this.boundingVolume,
|
|
476
531
|
this.modelMatrix,
|
|
477
|
-
this.
|
|
532
|
+
this.boundingVolume,
|
|
478
533
|
);
|
|
479
534
|
this._dirtyBoundingVolume = false;
|
|
480
535
|
}
|
|
481
536
|
|
|
537
|
+
/**
|
|
538
|
+
* Updates PickIds for the given context.
|
|
539
|
+
* @param {Context} context
|
|
540
|
+
* @protected
|
|
541
|
+
* @ignore
|
|
542
|
+
*/
|
|
543
|
+
_updatePickIds(context) {
|
|
544
|
+
let pickIds = this._pickIds.get(context);
|
|
545
|
+
if (pickIds && pickIds.length === this._primitiveCount) {
|
|
546
|
+
return;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
if (!pickIds) {
|
|
550
|
+
pickIds = [];
|
|
551
|
+
this._pickIds.set(context, pickIds);
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
const collection = this;
|
|
555
|
+
const PrimitiveClass = this._getPrimitiveClass();
|
|
556
|
+
const primitive = new PrimitiveClass();
|
|
557
|
+
|
|
558
|
+
// Fill in missing PickIDs for recently-added primitives.
|
|
559
|
+
for (let i = pickIds.length, il = this._primitiveCount; i < il; i++) {
|
|
560
|
+
this.get(i, primitive);
|
|
561
|
+
|
|
562
|
+
const pickObject = this._pickObjects[i] || {
|
|
563
|
+
collection: this,
|
|
564
|
+
index: i,
|
|
565
|
+
get primitive() {
|
|
566
|
+
// Cannot reuse primitives; scene.drillPick() appends to a list.
|
|
567
|
+
return collection.get(i, new PrimitiveClass());
|
|
568
|
+
},
|
|
569
|
+
};
|
|
570
|
+
|
|
571
|
+
const pickId = context.createPickId(pickObject);
|
|
572
|
+
primitive._pickId = pickId.key;
|
|
573
|
+
pickIds.push(pickId);
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
|
|
482
577
|
/////////////////////////////////////////////////////////////////////////////
|
|
483
578
|
// PRIMITIVE LIFECYCLE
|
|
484
579
|
|
|
@@ -532,13 +627,19 @@ class BufferPrimitiveCollection {
|
|
|
532
627
|
//>>includeEnd('debug');
|
|
533
628
|
|
|
534
629
|
const MaterialClass = this._getMaterialClass();
|
|
630
|
+
const index = this._primitiveCount++;
|
|
535
631
|
|
|
536
|
-
result = this.get(
|
|
537
|
-
result.featureId =
|
|
632
|
+
result = this.get(index, result);
|
|
633
|
+
result.featureId = options.featureId ?? index;
|
|
538
634
|
result.show = options.show ?? true;
|
|
539
635
|
result.setMaterial(options.material ?? MaterialClass.DEFAULT_MATERIAL);
|
|
540
636
|
result._pickId = 0; // unset
|
|
541
637
|
result._dirty = true;
|
|
638
|
+
|
|
639
|
+
if (defined(options.pickObject)) {
|
|
640
|
+
this._pickObjects[index] = options.pickObject;
|
|
641
|
+
}
|
|
642
|
+
|
|
542
643
|
return result;
|
|
543
644
|
}
|
|
544
645
|
|
|
@@ -560,11 +661,14 @@ class BufferPrimitiveCollection {
|
|
|
560
661
|
}
|
|
561
662
|
|
|
562
663
|
/**
|
|
563
|
-
* Marks collection bounding volume as 'dirty', to be updated on next render
|
|
664
|
+
* Marks collection bounding volume as 'dirty', to be updated on next render,
|
|
665
|
+
* if automatic bounding volume updates are enabled.
|
|
564
666
|
* @ignore
|
|
565
667
|
*/
|
|
566
668
|
_makeDirtyBoundingVolume() {
|
|
567
|
-
this.
|
|
669
|
+
if (this._boundingVolumeAutoUpdate) {
|
|
670
|
+
this._dirtyBoundingVolume = true;
|
|
671
|
+
}
|
|
568
672
|
}
|
|
569
673
|
|
|
570
674
|
/////////////////////////////////////////////////////////////////////////////
|
|
@@ -572,9 +676,19 @@ class BufferPrimitiveCollection {
|
|
|
572
676
|
|
|
573
677
|
/** @param {object} frameState */
|
|
574
678
|
update(frameState) {
|
|
679
|
+
if (/** @type {FrameState} */ (frameState).mode !== SceneMode.SCENE3D) {
|
|
680
|
+
oneTimeWarning(
|
|
681
|
+
"bufferprim-scenemode",
|
|
682
|
+
"BufferPrimitiveCollection requires SceneMode.SCENE3D.",
|
|
683
|
+
);
|
|
684
|
+
}
|
|
685
|
+
|
|
575
686
|
if (this._dirtyBoundingVolume) {
|
|
576
687
|
this._updateBoundingVolume();
|
|
577
688
|
}
|
|
689
|
+
if (this._allowPicking && this._dirtyCount > 0) {
|
|
690
|
+
this._updatePickIds(/** @type {FrameState} */ (frameState).context);
|
|
691
|
+
}
|
|
578
692
|
}
|
|
579
693
|
|
|
580
694
|
/////////////////////////////////////////////////////////////////////////////
|
|
@@ -640,6 +754,46 @@ class BufferPrimitiveCollection {
|
|
|
640
754
|
return this._positionCountMax;
|
|
641
755
|
}
|
|
642
756
|
|
|
757
|
+
/**
|
|
758
|
+
* Transforms geometry from model to world coordinates.
|
|
759
|
+
* @type {Matrix4}
|
|
760
|
+
* @default Matrix4.IDENTITY
|
|
761
|
+
* @readonly
|
|
762
|
+
*/
|
|
763
|
+
get modelMatrix() {
|
|
764
|
+
return this._modelMatrix;
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
/**
|
|
768
|
+
* World-space bounding volume for all primitives in the collection, including both
|
|
769
|
+
* shown and hidden primitives.
|
|
770
|
+
* @type {BoundingSphere}
|
|
771
|
+
* @readonly
|
|
772
|
+
*/
|
|
773
|
+
get boundingVolume() {
|
|
774
|
+
return this._boundingVolume;
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
/**
|
|
778
|
+
* The component datatype used to store position values.
|
|
779
|
+
* @type {ComponentDatatype}
|
|
780
|
+
* @readonly
|
|
781
|
+
*/
|
|
782
|
+
get positionDatatype() {
|
|
783
|
+
return this._positionDatatype;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
/**
|
|
787
|
+
* When <code>true</code>, integer position values are treated as normalized
|
|
788
|
+
* values, where the full integer range maps to [-1, 1] (signed) or [0, 1]
|
|
789
|
+
* (unsigned).
|
|
790
|
+
* @type {boolean}
|
|
791
|
+
* @readonly
|
|
792
|
+
*/
|
|
793
|
+
get positionNormalized() {
|
|
794
|
+
return this._positionNormalized;
|
|
795
|
+
}
|
|
796
|
+
|
|
643
797
|
/////////////////////////////////////////////////////////////////////////////
|
|
644
798
|
// UTILS
|
|
645
799
|
|
|
@@ -699,4 +853,17 @@ class BufferPrimitiveCollection {
|
|
|
699
853
|
}
|
|
700
854
|
}
|
|
701
855
|
|
|
856
|
+
/**
|
|
857
|
+
* Default capacity of buffers on new collections. A quantity of elements:
|
|
858
|
+
* number of vertices in the vertex buffer, primitives in the primitive
|
|
859
|
+
* buffer, etc. This value is arbitrary, and collections cannot be resized,
|
|
860
|
+
* so specific per-buffer capacities should be provided in the collection
|
|
861
|
+
* constructor when available.
|
|
862
|
+
*
|
|
863
|
+
* @type {number}
|
|
864
|
+
* @static
|
|
865
|
+
* @constant
|
|
866
|
+
*/
|
|
867
|
+
BufferPrimitiveCollection.DEFAULT_CAPACITY = 1024;
|
|
868
|
+
|
|
702
869
|
export default BufferPrimitiveCollection;
|
|
@@ -8,12 +8,29 @@ import ScreenSpaceEventHandler from "../Core/ScreenSpaceEventHandler.js";
|
|
|
8
8
|
import ScreenSpaceEventType from "../Core/ScreenSpaceEventType.js";
|
|
9
9
|
import CameraEventType from "./CameraEventType.js";
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
const keyboardModifierCombinations = [
|
|
12
|
+
KeyboardEventModifier.SHIFT,
|
|
13
|
+
KeyboardEventModifier.CTRL,
|
|
14
|
+
KeyboardEventModifier.ALT,
|
|
15
|
+
[KeyboardEventModifier.SHIFT, KeyboardEventModifier.CTRL],
|
|
16
|
+
[KeyboardEventModifier.SHIFT, KeyboardEventModifier.ALT],
|
|
17
|
+
[KeyboardEventModifier.CTRL, KeyboardEventModifier.ALT],
|
|
18
|
+
[
|
|
19
|
+
KeyboardEventModifier.SHIFT,
|
|
20
|
+
KeyboardEventModifier.CTRL,
|
|
21
|
+
KeyboardEventModifier.ALT,
|
|
22
|
+
],
|
|
23
|
+
];
|
|
24
|
+
|
|
25
|
+
function getKey(type, modifiers) {
|
|
26
|
+
if (!defined(modifiers)) {
|
|
27
|
+
return `${type}`;
|
|
15
28
|
}
|
|
16
|
-
|
|
29
|
+
|
|
30
|
+
const modifierList = Array.isArray(modifiers)
|
|
31
|
+
? modifiers.toSorted()
|
|
32
|
+
: [modifiers];
|
|
33
|
+
return `${type}+${modifierList.join("+")}`;
|
|
17
34
|
}
|
|
18
35
|
|
|
19
36
|
function clonePinchMovement(pinchMovement, result) {
|
|
@@ -219,7 +236,7 @@ function listenMouseButtonDownUp(aggregator, modifier, type) {
|
|
|
219
236
|
aggregator._eventHandler.setInputAction(
|
|
220
237
|
function () {
|
|
221
238
|
cancelMouseDownAction(getKey(type, undefined), aggregator);
|
|
222
|
-
for (const modifier of
|
|
239
|
+
for (const modifier of keyboardModifierCombinations) {
|
|
223
240
|
const cancelKey = getKey(type, modifier);
|
|
224
241
|
cancelMouseDownAction(cancelKey, aggregator);
|
|
225
242
|
}
|
|
@@ -382,18 +399,13 @@ function CameraEventAggregator(canvas) {
|
|
|
382
399
|
listenMouseButtonDownUp(this, undefined, CameraEventType.MIDDLE_DRAG);
|
|
383
400
|
listenMouseMove(this, undefined);
|
|
384
401
|
|
|
385
|
-
for (const
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
listenMouseButtonDownUp(this, modifier, CameraEventType.RIGHT_DRAG);
|
|
393
|
-
listenMouseButtonDownUp(this, modifier, CameraEventType.MIDDLE_DRAG);
|
|
394
|
-
listenMouseMove(this, modifier);
|
|
395
|
-
}
|
|
396
|
-
}
|
|
402
|
+
for (const modifiers of keyboardModifierCombinations) {
|
|
403
|
+
listenToWheel(this, modifiers);
|
|
404
|
+
listenToPinch(this, modifiers, canvas);
|
|
405
|
+
listenMouseButtonDownUp(this, modifiers, CameraEventType.LEFT_DRAG);
|
|
406
|
+
listenMouseButtonDownUp(this, modifiers, CameraEventType.RIGHT_DRAG);
|
|
407
|
+
listenMouseButtonDownUp(this, modifiers, CameraEventType.MIDDLE_DRAG);
|
|
408
|
+
listenMouseMove(this, modifiers);
|
|
397
409
|
}
|
|
398
410
|
}
|
|
399
411
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Enumerates the available input for interacting with the camera.
|
|
3
5
|
*
|
|
@@ -44,4 +46,7 @@ const CameraEventType = {
|
|
|
44
46
|
*/
|
|
45
47
|
PINCH: 4,
|
|
46
48
|
};
|
|
47
|
-
|
|
49
|
+
|
|
50
|
+
Object.freeze(CameraEventType);
|
|
51
|
+
|
|
52
|
+
export default CameraEventType;
|
|
@@ -1232,6 +1232,16 @@ async function processArrayBuffer(
|
|
|
1232
1232
|
return;
|
|
1233
1233
|
}
|
|
1234
1234
|
|
|
1235
|
+
if (isEmptyTile(tile, error)) {
|
|
1236
|
+
if (expired) {
|
|
1237
|
+
tile.expireDate = undefined;
|
|
1238
|
+
}
|
|
1239
|
+
tile._content = new Empty3DTileContent(tileset, tile);
|
|
1240
|
+
markTileAsEmptyContent(tile);
|
|
1241
|
+
tile._contentState = Cesium3DTileContentState.PROCESSING;
|
|
1242
|
+
return tile._content;
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1235
1245
|
tile._contentState = Cesium3DTileContentState.FAILED;
|
|
1236
1246
|
throw error;
|
|
1237
1247
|
}
|
|
@@ -1264,6 +1274,9 @@ async function processArrayBuffer(
|
|
|
1264
1274
|
}
|
|
1265
1275
|
|
|
1266
1276
|
tile._content = content;
|
|
1277
|
+
if (content instanceof Empty3DTileContent) {
|
|
1278
|
+
markTileAsEmptyContent(tile);
|
|
1279
|
+
}
|
|
1267
1280
|
tile._contentState = Cesium3DTileContentState.PROCESSING;
|
|
1268
1281
|
|
|
1269
1282
|
return content;
|
|
@@ -1316,6 +1329,35 @@ function requestSingleContent(tile) {
|
|
|
1316
1329
|
return processArrayBuffer(tile, tileset, request, expired, promise);
|
|
1317
1330
|
}
|
|
1318
1331
|
|
|
1332
|
+
/**
|
|
1333
|
+
* Determines whether a tile load error should be interpreted as "no content"
|
|
1334
|
+
* (empty tile) rather than a true failure. A missing tile policy specifies
|
|
1335
|
+
* HTTP Status Codes to be interpreted as "no content", allowing tiles to be
|
|
1336
|
+
* statically hosted without generating and serving unnecessary content for
|
|
1337
|
+
* empty tiles.
|
|
1338
|
+
* @ignore
|
|
1339
|
+
*/
|
|
1340
|
+
function isEmptyTile(tile, error) {
|
|
1341
|
+
const tileset = tile._tileset;
|
|
1342
|
+
const policy = tileset?._runtimeContentCodec?.missingTilePolicy;
|
|
1343
|
+
if (!defined(policy)) {
|
|
1344
|
+
return false;
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1347
|
+
if (!defined(error.statusCode)) {
|
|
1348
|
+
return false;
|
|
1349
|
+
}
|
|
1350
|
+
return policy.statusCodes.includes(error.statusCode);
|
|
1351
|
+
}
|
|
1352
|
+
|
|
1353
|
+
function markTileAsEmptyContent(tile) {
|
|
1354
|
+
// These flags are mutable instance state initialized in the constructor.
|
|
1355
|
+
tile.hasEmptyContent = true;
|
|
1356
|
+
tile.hasRenderableContent = false;
|
|
1357
|
+
}
|
|
1358
|
+
|
|
1359
|
+
Cesium3DTile._isEmptyTile = isEmptyTile;
|
|
1360
|
+
|
|
1319
1361
|
/**
|
|
1320
1362
|
* Given a downloaded content payload, construct a {@link Cesium3DTileContent}.
|
|
1321
1363
|
* <p>
|
|
@@ -1328,10 +1370,21 @@ function requestSingleContent(tile) {
|
|
|
1328
1370
|
* @private
|
|
1329
1371
|
*/
|
|
1330
1372
|
async function makeContent(tile, arrayBuffer) {
|
|
1373
|
+
const tileset = tile._tileset;
|
|
1374
|
+
const codec = tileset?._runtimeContentCodec;
|
|
1375
|
+
if (defined(codec) && typeof codec.createContent === "function") {
|
|
1376
|
+
const content = await Promise.resolve(
|
|
1377
|
+
codec.createContent(tileset, tile, tile._contentResource, arrayBuffer),
|
|
1378
|
+
);
|
|
1379
|
+
if (tile.isDestroyed()) {
|
|
1380
|
+
return;
|
|
1381
|
+
}
|
|
1382
|
+
return content;
|
|
1383
|
+
}
|
|
1384
|
+
|
|
1331
1385
|
const preprocessed = preprocess3DTileContent(arrayBuffer);
|
|
1332
1386
|
|
|
1333
1387
|
// Vector and Geometry tile rendering do not support the skip LOD optimization.
|
|
1334
|
-
const tileset = tile._tileset;
|
|
1335
1388
|
tileset._disableSkipLevelOfDetail =
|
|
1336
1389
|
tileset._disableSkipLevelOfDetail ||
|
|
1337
1390
|
preprocessed.contentType === Cesium3DTileContentType.GEOMETRY ||
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Defines how per-feature colors set from the Cesium API or declarative styling blend with the source colors from
|
|
3
5
|
* the original feature, e.g. glTF material or per-point color in the tile.
|
|
@@ -49,4 +51,7 @@ const Cesium3DTileColorBlendMode = {
|
|
|
49
51
|
*/
|
|
50
52
|
MIX: 2,
|
|
51
53
|
};
|
|
52
|
-
|
|
54
|
+
|
|
55
|
+
Object.freeze(Cesium3DTileColorBlendMode);
|
|
56
|
+
|
|
57
|
+
export default Cesium3DTileColorBlendMode;
|