@cesium/engine 23.0.1 → 25.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-ZEMJQKHD.js → chunk-35H3UBIO.js} +13 -12
- package/Build/Workers/{chunk-PQTSXJBJ.js → chunk-3LSD7OOA.js} +16 -16
- package/Build/Workers/{chunk-PUO7BYDY.js → chunk-3RFFPH4M.js} +1 -1
- package/Build/Workers/{chunk-PBECJOWF.js → chunk-3TKLDHV3.js} +2 -2
- package/Build/Workers/{chunk-TMCTZ5E3.js → chunk-3VDDRF2E.js} +14 -14
- package/Build/Workers/{chunk-FKU77FNM.js → chunk-3XY3MVPG.js} +4 -4
- package/Build/Workers/{chunk-2OBWHTIC.js → chunk-4GF4MVPY.js} +7 -7
- package/Build/Workers/{chunk-JUKGMJX7.js → chunk-4MTRQFJP.js} +3 -2
- package/Build/Workers/{chunk-66OWUDO7.js → chunk-4QQXGTCE.js} +8 -8
- package/Build/Workers/{chunk-ALTCIHRH.js → chunk-4XXHJI6Y.js} +17 -17
- package/Build/Workers/{chunk-K7UTK4OM.js → chunk-5T6QQAJW.js} +3 -2
- package/Build/Workers/{chunk-IJ3SUMK3.js → chunk-6SDGQI27.js} +3 -2
- package/Build/Workers/{chunk-FXSRA5UG.js → chunk-77RL3MBD.js} +6 -5
- package/Build/Workers/{chunk-G6MJ3ZW3.js → chunk-7LSFAEWF.js} +12 -11
- package/Build/Workers/{chunk-C6HHBKT5.js → chunk-A7A433MD.js} +5 -5
- package/Build/Workers/{chunk-PGZ3B6CB.js → chunk-A7ZBMVFS.js} +14 -14
- package/Build/Workers/{chunk-OZYB3AOR.js → chunk-ACFFCHHZ.js} +11 -11
- package/Build/Workers/{chunk-DNMASBMH.js → chunk-AEAVLYPS.js} +2 -2
- package/Build/Workers/{chunk-VPWYHFQA.js → chunk-AWFZHD2B.js} +4 -4
- package/Build/Workers/{chunk-TFPG3ZKW.js → chunk-BTX2NL3P.js} +59 -46
- package/Build/Workers/{chunk-TNXOPEIG.js → chunk-BVAIWR7O.js} +12 -12
- package/Build/Workers/chunk-CKQP3DSS.js +973 -0
- package/Build/Workers/{chunk-N6HRZLS6.js → chunk-CZ23Y3RM.js} +2 -2
- package/Build/Workers/{chunk-EIC3VAOZ.js → chunk-DFEI5MAV.js} +7 -7
- package/Build/Workers/{chunk-BTP3634E.js → chunk-DH26SNAB.js} +4 -1
- package/Build/Workers/{chunk-TXYQNXNW.js → chunk-DYT5NR6P.js} +3 -3
- package/Build/Workers/{chunk-O67UP5YO.js → chunk-EZARA5FJ.js} +13 -13
- package/Build/Workers/{chunk-YSJRB2UZ.js → chunk-FIBS5S7R.js} +2 -2
- package/Build/Workers/{chunk-2M7DKGLW.js → chunk-FVLVVOBQ.js} +10 -10
- package/Build/Workers/{chunk-B2VA6IEL.js → chunk-GL7DNVUS.js} +5 -5
- package/Build/Workers/{chunk-77DJBHMI.js → chunk-GPIGURCG.js} +59 -32
- package/Build/Workers/{chunk-QPXGGVHC.js → chunk-H2A4USJR.js} +10 -10
- package/Build/Workers/chunk-HSVQATK2.js +147 -0
- package/Build/Workers/{chunk-HXEPZWJN.js → chunk-HVMG6AG4.js} +11 -10
- package/Build/Workers/{chunk-H3TVRJLY.js → chunk-I3A6DXYZ.js} +4 -4
- package/Build/Workers/{chunk-UEWYSOFD.js → chunk-ITD2IN7N.js} +2 -2
- package/Build/Workers/{chunk-CYOPNGPX.js → chunk-J3OFS2RD.js} +12 -12
- package/Build/Workers/{chunk-RZX6LOG6.js → chunk-J647NNZW.js} +6 -6
- package/Build/Workers/{chunk-GLCPE2BJ.js → chunk-J7KQEKPK.js} +13 -13
- package/Build/Workers/{chunk-XPMXRJDD.js → chunk-K6NFIRFB.js} +5 -5
- package/Build/Workers/{chunk-CID5SY7L.js → chunk-LH5SF3XV.js} +7 -6
- package/Build/Workers/{chunk-UOQB7XQI.js → chunk-ND3NTTOF.js} +713 -435
- package/Build/Workers/chunk-QO2CGXMP.js +2342 -0
- package/Build/Workers/chunk-QSDY4NS7.js +1287 -0
- package/Build/Workers/chunk-QXNQQYPV.js +3201 -0
- package/Build/Workers/{chunk-CJ7ZDY77.js → chunk-ST2UWDUU.js} +5 -5
- package/Build/Workers/{chunk-YDR5LX5Z.js → chunk-TA777BGS.js} +3 -2
- package/Build/Workers/{chunk-U4SWB6TI.js → chunk-TAI4HLII.js} +4 -4
- package/Build/Workers/{chunk-VX774SWE.js → chunk-URUCCIPS.js} +6 -6
- package/Build/Workers/{chunk-MNSNOONX.js → chunk-VQKLRBIK.js} +7 -7
- package/Build/Workers/{chunk-CVAAIRNP.js → chunk-WC57YYBN.js} +2 -2
- package/Build/Workers/{chunk-QNABVTTP.js → chunk-WN6P5UDH.js} +12 -12
- package/Build/Workers/{chunk-CNLXMOPM.js → chunk-WNN5D4W3.js} +12 -11
- package/Build/Workers/{chunk-4JJQRZYL.js → chunk-WTQGE7Q6.js} +17 -17
- package/Build/Workers/{chunk-FCJQO4NC.js → chunk-WUBKZFF6.js} +2213 -1349
- package/Build/Workers/{chunk-3UQ2YMPP.js → chunk-ZAPOS52G.js} +12 -10
- package/Build/Workers/{chunk-LHFC4R7Z.js → chunk-ZCCIIBZT.js} +6 -6
- 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 +25 -25
- package/Build/Workers/createWallOutlineGeometry.js +24 -24
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +12 -12
- 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 +7 -5
- package/Source/Core/Cartesian3.js +9 -8
- package/Source/Core/Cartesian4.js +8 -6
- 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 +846 -835
- package/Source/Core/ComponentDatatype.js +4 -1
- package/Source/Core/CornerType.js +6 -1
- package/Source/Core/Credit.js +121 -124
- package/Source/Core/DeveloperError.js +2 -1
- 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/ITwinPlatform.js +1 -0
- 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 +39 -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/S2Cell.js +2 -2
- package/Source/Core/ScreenSpaceEventType.js +6 -1
- package/Source/Core/TerrainMesh.js +10 -1
- package/Source/Core/TerrainPicker.js +1 -0
- 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/WallGeometry.js +1 -1
- package/Source/Core/WallOutlineGeometry.js +1 -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/assert.js +27 -0
- package/Source/Core/globalTypes.js +4 -0
- package/Source/DataSources/CzmlDataSource.js +9 -0
- package/Source/DataSources/PathGraphics.js +13 -0
- package/Source/DataSources/PathVisualizer.js +330 -18
- package/Source/DataSources/StaticGeometryColorBatch.js +7 -2
- package/Source/DataSources/StaticGeometryPerMaterialBatch.js +7 -2
- package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +4 -1
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +4 -1
- 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 +7 -1
- package/Source/Renderer/PickId.js +44 -0
- package/Source/Renderer/PixelDatatype.js +3 -1
- package/Source/Renderer/RenderState.js +2 -2
- 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/VertexArray.js +80 -0
- 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/BillboardCollection.js +65 -364
- 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 +148 -0
- package/Source/Scene/BufferPointCollection.js +138 -0
- package/Source/Scene/BufferPointMaterial.js +95 -0
- package/Source/Scene/BufferPolygon.js +516 -0
- package/Source/Scene/BufferPolygonCollection.js +370 -0
- package/Source/Scene/BufferPolygonMaterial.js +41 -0
- package/Source/Scene/BufferPolyline.js +185 -0
- package/Source/Scene/BufferPolylineCollection.js +138 -0
- package/Source/Scene/BufferPolylineMaterial.js +93 -0
- package/Source/Scene/BufferPrimitive.js +347 -0
- package/Source/Scene/BufferPrimitiveCollection.js +818 -0
- package/Source/Scene/BufferPrimitiveMaterial.js +140 -0
- package/Source/Scene/CameraEventType.js +6 -1
- package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
- package/Source/Scene/Cesium3DTileContent.js +5 -1
- package/Source/Scene/Cesium3DTileContentFactory.js +9 -0
- 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/Cesium3DTileStyle.js +22 -0
- package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
- package/Source/Scene/Cesium3DTileset.js +2 -1
- package/Source/Scene/ClassificationType.js +3 -1
- package/Source/Scene/ClippingPolygonCollection.js +270 -101
- package/Source/Scene/CloudType.js +3 -1
- package/Source/Scene/ColorBlendMode.js +4 -1
- package/Source/Scene/CubeMapPanorama.js +4 -4
- package/Source/Scene/CullFace.js +6 -1
- package/Source/Scene/DepthFunction.js +6 -1
- package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
- package/Source/Scene/EquirectangularPanorama.js +1 -0
- package/Source/Scene/ExpressionNodeType.js +6 -1
- package/Source/Scene/GaussianSplat3DTileContent.js +40 -46
- package/Source/Scene/GaussianSplatPrimitive.js +413 -70
- package/Source/Scene/GetFeatureInfoFormat.js +3 -3
- 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 +215 -39
- package/Source/Scene/GltfLoaderUtil.js +14 -0
- package/Source/Scene/GltfSpzLoader.js +109 -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/ITwinData.js +1 -0
- package/Source/Scene/ImageryProvider.js +1 -1
- package/Source/Scene/ImageryState.js +6 -1
- 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/Label.js +32 -0
- package/Source/Scene/LabelCollection.js +14 -13
- package/Source/Scene/LabelStyle.js +6 -1
- package/Source/Scene/MapMode2D.js +6 -1
- package/Source/Scene/Material.js +2 -0
- package/Source/Scene/Megatexture.js +1 -0
- package/Source/Scene/MetadataClassProperty.js +24 -10
- package/Source/Scene/MetadataComponentType.js +118 -24
- 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/CustomShaderPipelineStage.js +3 -1
- package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
- package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +735 -264
- 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 +331 -3
- package/Source/Scene/Model/MetadataPipelineStage.js +3 -3
- package/Source/Scene/Model/ModelDrawCommand.js +6 -0
- package/Source/Scene/Model/ModelReader.js +475 -4
- package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
- package/Source/Scene/Model/ModelType.js +3 -1
- package/Source/Scene/Model/ModelUtility.js +3 -1
- 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 +375 -0
- 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 +1639 -1542
- package/Source/Scene/PickedMetadataInfo.js +1 -0
- 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/SceneMode.js +4 -1
- package/Source/Scene/ScreenSpaceCameraController.js +13 -0
- package/Source/Scene/ShadowMode.js +3 -1
- package/Source/Scene/SkyBox.js +17 -8
- 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/TileBoundingRegion.js +1 -1
- package/Source/Scene/TileBoundingS2Cell.js +1 -1
- package/Source/Scene/TileBoundingSphere.js +1 -1
- package/Source/Scene/TileState.js +7 -1
- package/Source/Scene/Tonemapper.js +5 -1
- package/Source/Scene/TweenCollection.js +7 -0
- package/Source/Scene/VectorGltf3DTileContent.js +403 -0
- package/Source/Scene/VertexAttributeSemantic.js +17 -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/VoxelProvider.js +1 -0
- package/Source/Scene/VoxelShapeType.js +3 -1
- package/Source/Scene/WebMapServiceImageryProvider.js +2 -2
- package/Source/Scene/WebMapTileServiceImageryProvider.js +366 -131
- package/Source/Scene/parseStructuralMetadata.js +97 -37
- package/Source/Scene/renderBufferPointCollection.js +285 -0
- package/Source/Scene/renderBufferPolygonCollection.js +339 -0
- package/Source/Scene/renderBufferPolylineCollection.js +478 -0
- package/Source/Shaders/BillboardCollectionFS.glsl +2 -77
- package/Source/Shaders/BillboardCollectionFS.js +2 -77
- package/Source/Shaders/BillboardCollectionVS.glsl +2 -60
- package/Source/Shaders/BillboardCollectionVS.js +2 -60
- package/Source/Shaders/BufferPointMaterialFS.glsl +27 -0
- package/Source/Shaders/BufferPointMaterialFS.js +29 -0
- package/Source/Shaders/BufferPointMaterialVS.glsl +48 -0
- package/Source/Shaders/BufferPointMaterialVS.js +50 -0
- package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
- package/Source/Shaders/BufferPolygonMaterialFS.js +15 -0
- package/Source/Shaders/BufferPolygonMaterialVS.glsl +30 -0
- package/Source/Shaders/BufferPolygonMaterialVS.js +32 -0
- package/Source/Shaders/BufferPolylineMaterialFS.glsl +13 -0
- package/Source/Shaders/BufferPolylineMaterialFS.js +15 -0
- package/Source/Shaders/BufferPolylineMaterialVS.glsl +49 -0
- package/Source/Shaders/BufferPolylineMaterialVS.js +51 -0
- package/Source/Shaders/Builtin/CzmBuiltins.js +2 -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/EdgeVisibilityStageFS.glsl +34 -48
- package/Source/Shaders/Model/EdgeVisibilityStageFS.js +34 -49
- package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +98 -0
- package/Source/Shaders/Model/EdgeVisibilityStageVS.js +100 -0
- package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
- package/Source/Shaders/Model/MaterialStageFS.js +46 -20
- package/Source/Shaders/Model/ModelFS.glsl +15 -0
- package/Source/Shaders/Model/ModelFS.js +15 -0
- package/Source/Shaders/Model/ModelVS.glsl +8 -0
- package/Source/Shaders/Model/ModelVS.js +8 -0
- package/Source/Shaders/PolygonSignedDistanceFS.glsl +64 -33
- package/Source/Shaders/PolygonSignedDistanceFS.js +64 -33
- package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +9 -2
- package/Source/Shaders/PrimitiveGaussianSplatVS.js +9 -2
- package/Source/Shaders/Voxels/VoxelFS.glsl +1 -1
- package/Source/Shaders/Voxels/VoxelFS.js +1 -1
- 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/Source/Workers/decodeDraco.js +3 -0
- package/Source/Workers/decodeI3S.js +5 -2
- package/index.d.ts +1332 -402
- package/index.js +111 -81
- package/package.json +3 -3
- package/Build/Workers/chunk-54O3AGOA.js +0 -642
- package/Build/Workers/chunk-6U5QMZU3.js +0 -940
- package/Build/Workers/chunk-HNDE73JK.js +0 -1829
- package/Build/Workers/chunk-PAFMAR7A.js +0 -2357
- package/Build/Workers/chunk-S53HSRT6.js +0 -114
|
@@ -1,291 +1,295 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
1
3
|
import Cartesian2 from "./Cartesian2.js";
|
|
4
|
+
import Cartesian3 from "./Cartesian3.js";
|
|
5
|
+
import Cartographic from "./Cartographic.js";
|
|
2
6
|
import Frozen from "./Frozen.js";
|
|
3
7
|
import defined from "./defined.js";
|
|
4
8
|
import Ellipsoid from "./Ellipsoid.js";
|
|
5
9
|
import Rectangle from "./Rectangle.js";
|
|
6
10
|
import WebMercatorProjection from "./WebMercatorProjection.js";
|
|
7
11
|
|
|
12
|
+
/** @import MapProjection from "./MapProjection.js"; */
|
|
13
|
+
/** @import TilingScheme from "./TilingScheme.js"; */
|
|
14
|
+
|
|
15
|
+
const southwestScratch = new Cartographic();
|
|
16
|
+
const northeastScratch = new Cartographic();
|
|
17
|
+
|
|
18
|
+
const southwestCartesianScratch = new Cartesian3();
|
|
19
|
+
const northeastCartesianScratch = new Cartesian3();
|
|
20
|
+
|
|
8
21
|
/**
|
|
9
22
|
* A tiling scheme for geometry referenced to a {@link WebMercatorProjection}, EPSG:3857. This is
|
|
10
23
|
* the tiling scheme used by Google Maps, Microsoft Bing Maps, and most of ESRI ArcGIS Online.
|
|
11
24
|
*
|
|
12
|
-
* @
|
|
13
|
-
* @constructor
|
|
14
|
-
*
|
|
15
|
-
* @param {object} [options] Object with the following properties:
|
|
16
|
-
* @param {Ellipsoid} [options.ellipsoid=Ellipsoid.default] The ellipsoid whose surface is being tiled. Defaults to
|
|
17
|
-
* the default ellipsoid.
|
|
18
|
-
* @param {number} [options.numberOfLevelZeroTilesX=1] The number of tiles in the X direction at level zero of
|
|
19
|
-
* the tile tree.
|
|
20
|
-
* @param {number} [options.numberOfLevelZeroTilesY=1] The number of tiles in the Y direction at level zero of
|
|
21
|
-
* the tile tree.
|
|
22
|
-
* @param {Cartesian2} [options.rectangleSouthwestInMeters] The southwest corner of the rectangle covered by the
|
|
23
|
-
* tiling scheme, in meters. If this parameter or rectangleNortheastInMeters is not specified, the entire
|
|
24
|
-
* globe is covered in the longitude direction and an equal distance is covered in the latitude
|
|
25
|
-
* direction, resulting in a square projection.
|
|
26
|
-
* @param {Cartesian2} [options.rectangleNortheastInMeters] The northeast corner of the rectangle covered by the
|
|
27
|
-
* tiling scheme, in meters. If this parameter or rectangleSouthwestInMeters is not specified, the entire
|
|
28
|
-
* globe is covered in the longitude direction and an equal distance is covered in the latitude
|
|
29
|
-
* direction, resulting in a square projection.
|
|
25
|
+
* @implements {TilingScheme}
|
|
30
26
|
*/
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
27
|
+
class WebMercatorTilingScheme {
|
|
28
|
+
/**
|
|
29
|
+
* @type {Cartesian2}
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
32
|
+
_rectangleSouthwestInMeters;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @type {Cartesian2}
|
|
36
|
+
* @private
|
|
37
|
+
*/
|
|
38
|
+
_rectangleNortheastInMeters;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @param {object} [options] Object with the following properties:
|
|
42
|
+
* @param {Ellipsoid} [options.ellipsoid=Ellipsoid.default] The ellipsoid whose surface is being tiled. Defaults to
|
|
43
|
+
* the default ellipsoid.
|
|
44
|
+
* @param {number} [options.numberOfLevelZeroTilesX=1] The number of tiles in the X direction at level zero of
|
|
45
|
+
* the tile tree.
|
|
46
|
+
* @param {number} [options.numberOfLevelZeroTilesY=1] The number of tiles in the Y direction at level zero of
|
|
47
|
+
* the tile tree.
|
|
48
|
+
* @param {Cartesian2} [options.rectangleSouthwestInMeters] The southwest corner of the rectangle covered by the
|
|
49
|
+
* tiling scheme, in meters. If this parameter or rectangleNortheastInMeters is not specified, the entire
|
|
50
|
+
* globe is covered in the longitude direction and an equal distance is covered in the latitude
|
|
51
|
+
* direction, resulting in a square projection.
|
|
52
|
+
* @param {Cartesian2} [options.rectangleNortheastInMeters] The northeast corner of the rectangle covered by the
|
|
53
|
+
* tiling scheme, in meters. If this parameter or rectangleSouthwestInMeters is not specified, the entire
|
|
54
|
+
* globe is covered in the longitude direction and an equal distance is covered in the latitude
|
|
55
|
+
* direction, resulting in a square projection.
|
|
56
|
+
*/
|
|
57
|
+
constructor(options) {
|
|
58
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
59
|
+
|
|
60
|
+
this._ellipsoid = options.ellipsoid ?? Ellipsoid.default;
|
|
61
|
+
this._numberOfLevelZeroTilesX = options.numberOfLevelZeroTilesX ?? 1;
|
|
62
|
+
this._numberOfLevelZeroTilesY = options.numberOfLevelZeroTilesY ?? 1;
|
|
63
|
+
|
|
64
|
+
this._projection = new WebMercatorProjection(this._ellipsoid);
|
|
65
|
+
|
|
66
|
+
if (
|
|
67
|
+
defined(options.rectangleSouthwestInMeters) &&
|
|
68
|
+
defined(options.rectangleNortheastInMeters)
|
|
69
|
+
) {
|
|
70
|
+
this._rectangleSouthwestInMeters = options.rectangleSouthwestInMeters;
|
|
71
|
+
this._rectangleNortheastInMeters = options.rectangleNortheastInMeters;
|
|
72
|
+
} else {
|
|
73
|
+
const semimajorAxisTimesPi = this._ellipsoid.maximumRadius * Math.PI;
|
|
74
|
+
this._rectangleSouthwestInMeters = new Cartesian2(
|
|
75
|
+
-semimajorAxisTimesPi,
|
|
76
|
+
-semimajorAxisTimesPi,
|
|
77
|
+
);
|
|
78
|
+
this._rectangleNortheastInMeters = new Cartesian2(
|
|
79
|
+
semimajorAxisTimesPi,
|
|
80
|
+
semimajorAxisTimesPi,
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
let { x, y } = this._rectangleSouthwestInMeters;
|
|
85
|
+
Cartesian3.fromElements(x, y, 0, southwestCartesianScratch);
|
|
86
|
+
this._projection.unproject(southwestCartesianScratch, southwestScratch);
|
|
87
|
+
|
|
88
|
+
({ x, y } = this._rectangleNortheastInMeters);
|
|
89
|
+
Cartesian3.fromElements(x, y, 0, northeastCartesianScratch);
|
|
90
|
+
this._projection.unproject(northeastCartesianScratch, northeastScratch);
|
|
91
|
+
|
|
92
|
+
this._rectangle = new Rectangle(
|
|
93
|
+
southwestScratch.longitude,
|
|
94
|
+
southwestScratch.latitude,
|
|
95
|
+
northeastScratch.longitude,
|
|
96
|
+
northeastScratch.latitude,
|
|
55
97
|
);
|
|
56
98
|
}
|
|
57
99
|
|
|
58
|
-
const southwest = this._projection.unproject(
|
|
59
|
-
this._rectangleSouthwestInMeters,
|
|
60
|
-
);
|
|
61
|
-
const northeast = this._projection.unproject(
|
|
62
|
-
this._rectangleNortheastInMeters,
|
|
63
|
-
);
|
|
64
|
-
this._rectangle = new Rectangle(
|
|
65
|
-
southwest.longitude,
|
|
66
|
-
southwest.latitude,
|
|
67
|
-
northeast.longitude,
|
|
68
|
-
northeast.latitude,
|
|
69
|
-
);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
Object.defineProperties(WebMercatorTilingScheme.prototype, {
|
|
73
100
|
/**
|
|
74
101
|
* Gets the ellipsoid that is tiled by this tiling scheme.
|
|
75
|
-
* @memberof WebMercatorTilingScheme.prototype
|
|
76
102
|
* @type {Ellipsoid}
|
|
77
103
|
*/
|
|
78
|
-
ellipsoid
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
},
|
|
82
|
-
},
|
|
104
|
+
get ellipsoid() {
|
|
105
|
+
return this._ellipsoid;
|
|
106
|
+
}
|
|
83
107
|
|
|
84
108
|
/**
|
|
85
109
|
* Gets the rectangle, in radians, covered by this tiling scheme.
|
|
86
|
-
* @memberof WebMercatorTilingScheme.prototype
|
|
87
110
|
* @type {Rectangle}
|
|
88
111
|
*/
|
|
89
|
-
rectangle
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
},
|
|
93
|
-
},
|
|
112
|
+
get rectangle() {
|
|
113
|
+
return this._rectangle;
|
|
114
|
+
}
|
|
94
115
|
|
|
95
116
|
/**
|
|
96
117
|
* Gets the map projection used by this tiling scheme.
|
|
97
|
-
* @memberof WebMercatorTilingScheme.prototype
|
|
98
118
|
* @type {MapProjection}
|
|
99
119
|
*/
|
|
100
|
-
projection
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
});
|
|
120
|
+
get projection() {
|
|
121
|
+
return this._projection;
|
|
122
|
+
}
|
|
106
123
|
|
|
107
|
-
/**
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
}
|
|
124
|
+
/**
|
|
125
|
+
* Gets the total number of tiles in the X direction at a specified level-of-detail.
|
|
126
|
+
*
|
|
127
|
+
* @param {number} level The level-of-detail.
|
|
128
|
+
* @returns {number} The number of tiles in the X direction at the given level.
|
|
129
|
+
*/
|
|
130
|
+
getNumberOfXTilesAtLevel(level) {
|
|
131
|
+
return this._numberOfLevelZeroTilesX << level;
|
|
132
|
+
}
|
|
116
133
|
|
|
117
|
-
/**
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
134
|
+
/**
|
|
135
|
+
* Gets the total number of tiles in the Y direction at a specified level-of-detail.
|
|
136
|
+
*
|
|
137
|
+
* @param {number} level The level-of-detail.
|
|
138
|
+
* @returns {number} The number of tiles in the Y direction at the given level.
|
|
139
|
+
*/
|
|
140
|
+
getNumberOfYTilesAtLevel(level) {
|
|
141
|
+
return this._numberOfLevelZeroTilesY << level;
|
|
142
|
+
}
|
|
126
143
|
|
|
127
|
-
/**
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
)
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
144
|
+
/**
|
|
145
|
+
* Transforms a rectangle specified in geodetic radians to the native coordinate system
|
|
146
|
+
* of this tiling scheme.
|
|
147
|
+
*
|
|
148
|
+
* @param {Rectangle} rectangle The rectangle to transform.
|
|
149
|
+
* @param {Rectangle} [result] The instance to which to copy the result, or undefined if a new instance
|
|
150
|
+
* should be created.
|
|
151
|
+
* @returns {Rectangle} The specified 'result', or a new object containing the native rectangle if 'result'
|
|
152
|
+
* is undefined.
|
|
153
|
+
*/
|
|
154
|
+
rectangleToNativeRectangle(rectangle, result) {
|
|
155
|
+
const projection = this._projection;
|
|
156
|
+
const southwest = projection.project(Rectangle.southwest(rectangle));
|
|
157
|
+
const northeast = projection.project(Rectangle.northeast(rectangle));
|
|
158
|
+
|
|
159
|
+
if (!defined(result)) {
|
|
160
|
+
return new Rectangle(southwest.x, southwest.y, northeast.x, northeast.y);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
result.west = southwest.x;
|
|
164
|
+
result.south = southwest.y;
|
|
165
|
+
result.east = northeast.x;
|
|
166
|
+
result.north = northeast.y;
|
|
167
|
+
return result;
|
|
147
168
|
}
|
|
148
169
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}
|
|
170
|
+
/**
|
|
171
|
+
* Converts tile x, y coordinates and level to a rectangle expressed in the native coordinates
|
|
172
|
+
* of the tiling scheme.
|
|
173
|
+
*
|
|
174
|
+
* @param {number} x The integer x coordinate of the tile.
|
|
175
|
+
* @param {number} y The integer y coordinate of the tile.
|
|
176
|
+
* @param {number} level The tile level-of-detail. Zero is the least detailed.
|
|
177
|
+
* @param {Rectangle} [result] The instance to which to copy the result, or undefined if a new instance
|
|
178
|
+
* should be created.
|
|
179
|
+
* @returns {Rectangle} The specified 'result', or a new object containing the rectangle
|
|
180
|
+
* if 'result' is undefined.
|
|
181
|
+
*/
|
|
182
|
+
tileXYToNativeRectangle(x, y, level, result) {
|
|
183
|
+
const xTiles = this.getNumberOfXTilesAtLevel(level);
|
|
184
|
+
const yTiles = this.getNumberOfYTilesAtLevel(level);
|
|
155
185
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
xTiles;
|
|
180
|
-
const west = this._rectangleSouthwestInMeters.x + x * xTileWidth;
|
|
181
|
-
const east = this._rectangleSouthwestInMeters.x + (x + 1) * xTileWidth;
|
|
182
|
-
|
|
183
|
-
const yTileHeight =
|
|
184
|
-
(this._rectangleNortheastInMeters.y - this._rectangleSouthwestInMeters.y) /
|
|
185
|
-
yTiles;
|
|
186
|
-
const north = this._rectangleNortheastInMeters.y - y * yTileHeight;
|
|
187
|
-
const south = this._rectangleNortheastInMeters.y - (y + 1) * yTileHeight;
|
|
188
|
-
|
|
189
|
-
if (!defined(result)) {
|
|
190
|
-
return new Rectangle(west, south, east, north);
|
|
186
|
+
const xTileWidth =
|
|
187
|
+
(this._rectangleNortheastInMeters.x -
|
|
188
|
+
this._rectangleSouthwestInMeters.x) /
|
|
189
|
+
xTiles;
|
|
190
|
+
const west = this._rectangleSouthwestInMeters.x + x * xTileWidth;
|
|
191
|
+
const east = this._rectangleSouthwestInMeters.x + (x + 1) * xTileWidth;
|
|
192
|
+
|
|
193
|
+
const yTileHeight =
|
|
194
|
+
(this._rectangleNortheastInMeters.y -
|
|
195
|
+
this._rectangleSouthwestInMeters.y) /
|
|
196
|
+
yTiles;
|
|
197
|
+
const north = this._rectangleNortheastInMeters.y - y * yTileHeight;
|
|
198
|
+
const south = this._rectangleNortheastInMeters.y - (y + 1) * yTileHeight;
|
|
199
|
+
|
|
200
|
+
if (!defined(result)) {
|
|
201
|
+
return new Rectangle(west, south, east, north);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
result.west = west;
|
|
205
|
+
result.south = south;
|
|
206
|
+
result.east = east;
|
|
207
|
+
result.north = north;
|
|
208
|
+
return result;
|
|
191
209
|
}
|
|
192
210
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
}
|
|
211
|
+
/**
|
|
212
|
+
* Converts tile x, y coordinates and level to a cartographic rectangle in radians.
|
|
213
|
+
*
|
|
214
|
+
* @param {number} x The integer x coordinate of the tile.
|
|
215
|
+
* @param {number} y The integer y coordinate of the tile.
|
|
216
|
+
* @param {number} level The tile level-of-detail. Zero is the least detailed.
|
|
217
|
+
* @param {Rectangle} [result] The instance to which to copy the result, or undefined if a new instance
|
|
218
|
+
* should be created.
|
|
219
|
+
* @returns {Rectangle} The specified 'result', or a new object containing the rectangle
|
|
220
|
+
* if 'result' is undefined.
|
|
221
|
+
*/
|
|
222
|
+
tileXYToRectangle(x, y, level, result) {
|
|
223
|
+
const nativeRectangle = this.tileXYToNativeRectangle(x, y, level, result);
|
|
199
224
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
* should be created.
|
|
208
|
-
* @returns {Rectangle} The specified 'result', or a new object containing the rectangle
|
|
209
|
-
* if 'result' is undefined.
|
|
210
|
-
*/
|
|
211
|
-
WebMercatorTilingScheme.prototype.tileXYToRectangle = function (
|
|
212
|
-
x,
|
|
213
|
-
y,
|
|
214
|
-
level,
|
|
215
|
-
result,
|
|
216
|
-
) {
|
|
217
|
-
const nativeRectangle = this.tileXYToNativeRectangle(x, y, level, result);
|
|
218
|
-
|
|
219
|
-
const projection = this._projection;
|
|
220
|
-
const southwest = projection.unproject(
|
|
221
|
-
new Cartesian2(nativeRectangle.west, nativeRectangle.south),
|
|
222
|
-
);
|
|
223
|
-
const northeast = projection.unproject(
|
|
224
|
-
new Cartesian2(nativeRectangle.east, nativeRectangle.north),
|
|
225
|
-
);
|
|
226
|
-
|
|
227
|
-
nativeRectangle.west = southwest.longitude;
|
|
228
|
-
nativeRectangle.south = southwest.latitude;
|
|
229
|
-
nativeRectangle.east = northeast.longitude;
|
|
230
|
-
nativeRectangle.north = northeast.latitude;
|
|
231
|
-
return nativeRectangle;
|
|
232
|
-
};
|
|
225
|
+
const projection = this._projection;
|
|
226
|
+
const southwest = projection.unproject(
|
|
227
|
+
new Cartesian3(nativeRectangle.west, nativeRectangle.south),
|
|
228
|
+
);
|
|
229
|
+
const northeast = projection.unproject(
|
|
230
|
+
new Cartesian3(nativeRectangle.east, nativeRectangle.north),
|
|
231
|
+
);
|
|
233
232
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
* @param {number} level The tile level-of-detail. Zero is the least detailed.
|
|
240
|
-
* @param {Cartesian2} [result] The instance to which to copy the result, or undefined if a new instance
|
|
241
|
-
* should be created.
|
|
242
|
-
* @returns {Cartesian2} The specified 'result', or a new object containing the tile x, y coordinates
|
|
243
|
-
* if 'result' is undefined.
|
|
244
|
-
*/
|
|
245
|
-
WebMercatorTilingScheme.prototype.positionToTileXY = function (
|
|
246
|
-
position,
|
|
247
|
-
level,
|
|
248
|
-
result,
|
|
249
|
-
) {
|
|
250
|
-
const rectangle = this._rectangle;
|
|
251
|
-
if (!Rectangle.contains(rectangle, position)) {
|
|
252
|
-
// outside the bounds of the tiling scheme
|
|
253
|
-
return undefined;
|
|
233
|
+
nativeRectangle.west = southwest.longitude;
|
|
234
|
+
nativeRectangle.south = southwest.latitude;
|
|
235
|
+
nativeRectangle.east = northeast.longitude;
|
|
236
|
+
nativeRectangle.north = northeast.latitude;
|
|
237
|
+
return nativeRectangle;
|
|
254
238
|
}
|
|
255
239
|
|
|
256
|
-
|
|
257
|
-
|
|
240
|
+
/**
|
|
241
|
+
* Calculates the tile x, y coordinates of the tile containing
|
|
242
|
+
* a given cartographic position.
|
|
243
|
+
*
|
|
244
|
+
* @param {Cartographic} position The position.
|
|
245
|
+
* @param {number} level The tile level-of-detail. Zero is the least detailed.
|
|
246
|
+
* @param {Cartesian2} [result] The instance to which to copy the result, or undefined if a new instance
|
|
247
|
+
* should be created.
|
|
248
|
+
* @returns {Cartesian2} The specified 'result', or a new object containing the tile x, y coordinates
|
|
249
|
+
* if 'result' is undefined.
|
|
250
|
+
*/
|
|
251
|
+
positionToTileXY(position, level, result) {
|
|
252
|
+
const rectangle = this._rectangle;
|
|
253
|
+
if (!Rectangle.contains(rectangle, position)) {
|
|
254
|
+
// outside the bounds of the tiling scheme
|
|
255
|
+
return undefined;
|
|
256
|
+
}
|
|
258
257
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
const xTileWidth = overallWidth / xTiles;
|
|
262
|
-
const overallHeight =
|
|
263
|
-
this._rectangleNortheastInMeters.y - this._rectangleSouthwestInMeters.y;
|
|
264
|
-
const yTileHeight = overallHeight / yTiles;
|
|
258
|
+
const xTiles = this.getNumberOfXTilesAtLevel(level);
|
|
259
|
+
const yTiles = this.getNumberOfYTilesAtLevel(level);
|
|
265
260
|
|
|
266
|
-
|
|
261
|
+
const overallWidth =
|
|
262
|
+
this._rectangleNortheastInMeters.x - this._rectangleSouthwestInMeters.x;
|
|
263
|
+
const xTileWidth = overallWidth / xTiles;
|
|
264
|
+
const overallHeight =
|
|
265
|
+
this._rectangleNortheastInMeters.y - this._rectangleSouthwestInMeters.y;
|
|
266
|
+
const yTileHeight = overallHeight / yTiles;
|
|
267
267
|
|
|
268
|
-
|
|
269
|
-
const distanceFromWest =
|
|
270
|
-
webMercatorPosition.x - this._rectangleSouthwestInMeters.x;
|
|
271
|
-
const distanceFromNorth =
|
|
272
|
-
this._rectangleNortheastInMeters.y - webMercatorPosition.y;
|
|
268
|
+
const projection = this._projection;
|
|
273
269
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
270
|
+
const webMercatorPosition = projection.project(position);
|
|
271
|
+
const distanceFromWest =
|
|
272
|
+
webMercatorPosition.x - this._rectangleSouthwestInMeters.x;
|
|
273
|
+
const distanceFromNorth =
|
|
274
|
+
this._rectangleNortheastInMeters.y - webMercatorPosition.y;
|
|
275
|
+
|
|
276
|
+
let xTileCoordinate = (distanceFromWest / xTileWidth) | 0;
|
|
277
|
+
if (xTileCoordinate >= xTiles) {
|
|
278
|
+
xTileCoordinate = xTiles - 1;
|
|
279
|
+
}
|
|
280
|
+
let yTileCoordinate = (distanceFromNorth / yTileHeight) | 0;
|
|
281
|
+
if (yTileCoordinate >= yTiles) {
|
|
282
|
+
yTileCoordinate = yTiles - 1;
|
|
283
|
+
}
|
|
282
284
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
+
if (!defined(result)) {
|
|
286
|
+
return new Cartesian2(xTileCoordinate, yTileCoordinate);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
result.x = xTileCoordinate;
|
|
290
|
+
result.y = yTileCoordinate;
|
|
291
|
+
return result;
|
|
285
292
|
}
|
|
293
|
+
}
|
|
286
294
|
|
|
287
|
-
result.x = xTileCoordinate;
|
|
288
|
-
result.y = yTileCoordinate;
|
|
289
|
-
return result;
|
|
290
|
-
};
|
|
291
295
|
export default WebMercatorTilingScheme;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
import DeveloperError from "./DeveloperError.js";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Checks that a condition is truthy, throwing a specified message if condition
|
|
7
|
+
* fails. The `asserts condition` return type allows TypeScript to narrow the
|
|
8
|
+
* types of the condition and enforce stricter types without further if/else
|
|
9
|
+
* checks or nullish coalescing.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* assert(object.optionalProperty, 'Missing .optionalProperty');
|
|
13
|
+
* object.optionalProperty.toString(); // safe; no type error.
|
|
14
|
+
*
|
|
15
|
+
* @function
|
|
16
|
+
*
|
|
17
|
+
* @param {*} condition
|
|
18
|
+
* @param {string} msg
|
|
19
|
+
* @ignore
|
|
20
|
+
*/
|
|
21
|
+
function assert(condition, msg) {
|
|
22
|
+
if (!condition) {
|
|
23
|
+
throw new DeveloperError(msg);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export default assert;
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
* @typedef {Float64ArrayConstructor|Float32ArrayConstructor|Uint32ArrayConstructor|Uint16ArrayConstructor|Uint8ArrayConstructor|Int32ArrayConstructor|Int16ArrayConstructor|Int8ArrayConstructor} TypedArrayConstructor
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* @typedef {{destroy: Function}} Destroyable
|
|
13
|
+
*/
|
|
14
|
+
|
|
11
15
|
/**
|
|
12
16
|
* This file is omitted from 'workspaceSourceFiles' in 'scripts/build.js', and
|
|
13
17
|
* must provide type-only exports exclusively, without runtime values.
|
|
@@ -3645,6 +3645,15 @@ function processPath(entity, packet, entityCollection, sourceUri) {
|
|
|
3645
3645
|
sourceUri,
|
|
3646
3646
|
entityCollection,
|
|
3647
3647
|
);
|
|
3648
|
+
processPacketData(
|
|
3649
|
+
String,
|
|
3650
|
+
path,
|
|
3651
|
+
"relativeTo",
|
|
3652
|
+
pathData.relativeTo,
|
|
3653
|
+
interval,
|
|
3654
|
+
sourceUri,
|
|
3655
|
+
entityCollection,
|
|
3656
|
+
);
|
|
3648
3657
|
}
|
|
3649
3658
|
|
|
3650
3659
|
function processPoint(entity, packet, entityCollection, sourceUri) {
|
|
@@ -17,6 +17,7 @@ import createPropertyDescriptor from "./createPropertyDescriptor.js";
|
|
|
17
17
|
* @property {Property | number} [resolution=60] A numeric Property specifying the maximum number of seconds to step when sampling the position.
|
|
18
18
|
* @property {MaterialProperty | Color} [material=Color.WHITE] A Property specifying the material used to draw the path.
|
|
19
19
|
* @property {Property | DistanceDisplayCondition} [distanceDisplayCondition] A Property specifying at what distance from the camera that this path will be displayed.
|
|
20
|
+
* @property {Property | string} [relativeTo] A Property specifying the frame in which to visualize the path. Use another entity's id to visualize the path relative to that entity, or use the string values "FIXED" or "INERTIAL" to visualize the path in those reference frames.
|
|
20
21
|
*/
|
|
21
22
|
|
|
22
23
|
/**
|
|
@@ -43,6 +44,8 @@ function PathGraphics(options) {
|
|
|
43
44
|
this._materialSubscription = undefined;
|
|
44
45
|
this._distanceDisplayCondition = undefined;
|
|
45
46
|
this._distanceDisplayConditionSubscription = undefined;
|
|
47
|
+
this._relativeTo = undefined;
|
|
48
|
+
this._relativeToSubscription = undefined;
|
|
46
49
|
|
|
47
50
|
this.merge(options ?? Frozen.EMPTY_OBJECT);
|
|
48
51
|
}
|
|
@@ -114,6 +117,14 @@ Object.defineProperties(PathGraphics.prototype, {
|
|
|
114
117
|
distanceDisplayCondition: createPropertyDescriptor(
|
|
115
118
|
"distanceDisplayCondition",
|
|
116
119
|
),
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Gets or sets the frame in which to visualize the path. Use another entity's id to visualize the path relative to that entity, or use the string values "FIXED" or "INERTIAL" to visualize the path in those reference frames.
|
|
123
|
+
* @memberof PathGraphics.prototype
|
|
124
|
+
* @type {Property|undefined}
|
|
125
|
+
* @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
|
|
126
|
+
*/
|
|
127
|
+
relativeTo: createPropertyDescriptor("relativeTo"),
|
|
117
128
|
});
|
|
118
129
|
|
|
119
130
|
/**
|
|
@@ -133,6 +144,7 @@ PathGraphics.prototype.clone = function (result) {
|
|
|
133
144
|
result.resolution = this.resolution;
|
|
134
145
|
result.material = this.material;
|
|
135
146
|
result.distanceDisplayCondition = this.distanceDisplayCondition;
|
|
147
|
+
result.relativeTo = this.relativeTo;
|
|
136
148
|
return result;
|
|
137
149
|
};
|
|
138
150
|
|
|
@@ -157,5 +169,6 @@ PathGraphics.prototype.merge = function (source) {
|
|
|
157
169
|
this.material = this.material ?? source.material;
|
|
158
170
|
this.distanceDisplayCondition =
|
|
159
171
|
this.distanceDisplayCondition ?? source.distanceDisplayCondition;
|
|
172
|
+
this.relativeTo = this.relativeTo ?? source.relativeTo;
|
|
160
173
|
};
|
|
161
174
|
export default PathGraphics;
|