@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,8 +1,10 @@
|
|
|
1
1
|
import AssociativeArray from "../Core/AssociativeArray.js";
|
|
2
2
|
import Cartesian3 from "../Core/Cartesian3.js";
|
|
3
|
+
import CesiumMath from "../Core/Math.js";
|
|
3
4
|
import defined from "../Core/defined.js";
|
|
4
5
|
import destroyObject from "../Core/destroyObject.js";
|
|
5
6
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
7
|
+
import Entity from "./Entity.js";
|
|
6
8
|
import JulianDate from "../Core/JulianDate.js";
|
|
7
9
|
import Matrix3 from "../Core/Matrix3.js";
|
|
8
10
|
import Matrix4 from "../Core/Matrix4.js";
|
|
@@ -20,6 +22,183 @@ import ReferenceProperty from "./ReferenceProperty.js";
|
|
|
20
22
|
import SampledPositionProperty from "./SampledPositionProperty.js";
|
|
21
23
|
import ScaledPositionProperty from "./ScaledPositionProperty.js";
|
|
22
24
|
import TimeIntervalCollectionPositionProperty from "./TimeIntervalCollectionPositionProperty.js";
|
|
25
|
+
import Quaternion from "../Core/Quaternion.js";
|
|
26
|
+
|
|
27
|
+
const update3DMatrix3Scratch1 = new Matrix3();
|
|
28
|
+
const update3DMatrix3Scratch2 = new Matrix3();
|
|
29
|
+
const update3DMatrix3Scratch3 = new Matrix3();
|
|
30
|
+
const update3DCartesian3Scratch0 = new Cartesian3();
|
|
31
|
+
const update3DCartesian3Scratch1 = new Cartesian3();
|
|
32
|
+
const update3DCartesian3Scratch2 = new Cartesian3();
|
|
33
|
+
const update3DCartesian3Scratch3 = new Cartesian3();
|
|
34
|
+
|
|
35
|
+
const transformOrientationScratch = new Quaternion();
|
|
36
|
+
const transformVvlhScratch = new Matrix4();
|
|
37
|
+
const transformRotationScratch = new Matrix3();
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Transforms a path entity's position into the local frame of the reference entity.
|
|
41
|
+
* If the reference entity has an orientation, uses that orientation to define the local frame.
|
|
42
|
+
* Otherwise, falls back to a VVLH (Vehicle Velocity Local Horizontal) frame derived from the reference entity's velocity.
|
|
43
|
+
*
|
|
44
|
+
* @param {JulianDate} time The time at which to evaluate the orientation or VVLH frame.
|
|
45
|
+
* @param {Cartesian3} pathEntityPos The position of the path entity in the FIXED reference frame.
|
|
46
|
+
* @param {Cartesian3} refEntityPos The position of the reference entity in the FIXED reference frame.
|
|
47
|
+
* @param {Entity} refEntity The reference entity whose frame to transform into.
|
|
48
|
+
* @param {Cartesian3} result The object onto which to store the result.
|
|
49
|
+
* @returns {Cartesian3 | undefined} The transformed position in the reference entity's local frame, or undefined if either input position is undefined.
|
|
50
|
+
*/
|
|
51
|
+
function transformToEntityFrame(
|
|
52
|
+
time,
|
|
53
|
+
pathEntityPos,
|
|
54
|
+
refEntityPos,
|
|
55
|
+
refEntity,
|
|
56
|
+
result,
|
|
57
|
+
) {
|
|
58
|
+
if (!defined(pathEntityPos) || !defined(refEntityPos)) {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
Cartesian3.subtract(pathEntityPos, refEntityPos, result);
|
|
63
|
+
if (defined(refEntity.orientation)) {
|
|
64
|
+
if (refEntity.orientation.getValue(time, transformOrientationScratch)) {
|
|
65
|
+
Quaternion.conjugate(
|
|
66
|
+
transformOrientationScratch,
|
|
67
|
+
transformOrientationScratch,
|
|
68
|
+
);
|
|
69
|
+
Matrix3.fromQuaternion(
|
|
70
|
+
transformOrientationScratch,
|
|
71
|
+
transformRotationScratch,
|
|
72
|
+
);
|
|
73
|
+
Matrix3.multiplyByVector(transformRotationScratch, result, result);
|
|
74
|
+
}
|
|
75
|
+
} else if (
|
|
76
|
+
defined(
|
|
77
|
+
computeVvlhTransform(time, refEntity.position, transformVvlhScratch),
|
|
78
|
+
)
|
|
79
|
+
) {
|
|
80
|
+
Matrix4.inverse(transformVvlhScratch, transformVvlhScratch);
|
|
81
|
+
Matrix4.getRotation(transformVvlhScratch, transformRotationScratch);
|
|
82
|
+
Matrix3.multiplyByVector(transformRotationScratch, result, result);
|
|
83
|
+
} else {
|
|
84
|
+
// If neither ref entity's orientation nor VVLH are defined, return undefined
|
|
85
|
+
// This could happen if, for a given position of the entity we are drawing the path for,
|
|
86
|
+
// the ref entity doesn't have a position defined
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Compute the vehicle velocity, local horizontal (VVLH) transform for a position property at a given time.
|
|
95
|
+
* The VVLH axes is defined based on the motion of the provided position point as follows:
|
|
96
|
+
* - The X axis is directed toward the point's velocity vector, in the direction of motion.
|
|
97
|
+
* - The Y axis is along the angular momentum vector.
|
|
98
|
+
* - The Z axis is along the position vector.
|
|
99
|
+
*
|
|
100
|
+
* @param {JulianDate} time The time at which to compute the VVLH transform.
|
|
101
|
+
* @param {PositionProperty} positionProperty The position to compute the VVLH frame for.
|
|
102
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
103
|
+
* @returns {Matrix4} The VVLH transform.
|
|
104
|
+
*/
|
|
105
|
+
function computeVvlhTransform(time, positionProperty, result) {
|
|
106
|
+
const cartesian = positionProperty.getValue(time, update3DCartesian3Scratch0);
|
|
107
|
+
if (defined(cartesian)) {
|
|
108
|
+
// The time delta was determined based on how fast satellites move compared to vehicles near the surface.
|
|
109
|
+
// Slower moving vehicles will most likely default to east-north-up, while faster ones will be LVLH.
|
|
110
|
+
const deltaTime = JulianDate.addSeconds(time, 0.01, new JulianDate());
|
|
111
|
+
const deltaCartesian = positionProperty.getValue(
|
|
112
|
+
deltaTime,
|
|
113
|
+
update3DCartesian3Scratch1,
|
|
114
|
+
);
|
|
115
|
+
if (
|
|
116
|
+
defined(deltaCartesian) &&
|
|
117
|
+
!Cartesian3.equalsEpsilon(cartesian, deltaCartesian, CesiumMath.EPSILON16)
|
|
118
|
+
) {
|
|
119
|
+
let toInertial = Transforms.computeFixedToIcrfMatrix(
|
|
120
|
+
time,
|
|
121
|
+
update3DMatrix3Scratch1,
|
|
122
|
+
);
|
|
123
|
+
let toInertialDelta = Transforms.computeFixedToIcrfMatrix(
|
|
124
|
+
deltaTime,
|
|
125
|
+
update3DMatrix3Scratch2,
|
|
126
|
+
);
|
|
127
|
+
let toFixed;
|
|
128
|
+
|
|
129
|
+
if (!defined(toInertial) || !defined(toInertialDelta)) {
|
|
130
|
+
toFixed = Transforms.computeTemeToPseudoFixedMatrix(
|
|
131
|
+
time,
|
|
132
|
+
update3DMatrix3Scratch3,
|
|
133
|
+
);
|
|
134
|
+
toInertial = Matrix3.transpose(toFixed, update3DMatrix3Scratch1);
|
|
135
|
+
toInertialDelta = Transforms.computeTemeToPseudoFixedMatrix(
|
|
136
|
+
deltaTime,
|
|
137
|
+
update3DMatrix3Scratch2,
|
|
138
|
+
);
|
|
139
|
+
Matrix3.transpose(toInertialDelta, toInertialDelta);
|
|
140
|
+
} else {
|
|
141
|
+
toFixed = Matrix3.transpose(toInertial, update3DMatrix3Scratch3);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// Z along the position
|
|
145
|
+
const zBasis = update3DCartesian3Scratch2;
|
|
146
|
+
Cartesian3.normalize(cartesian, zBasis);
|
|
147
|
+
Cartesian3.normalize(deltaCartesian, deltaCartesian);
|
|
148
|
+
|
|
149
|
+
Matrix3.multiplyByVector(toInertial, zBasis, zBasis);
|
|
150
|
+
Matrix3.multiplyByVector(toInertialDelta, deltaCartesian, deltaCartesian);
|
|
151
|
+
|
|
152
|
+
// Y is along the angular momentum vector (e.g. "orbit normal")
|
|
153
|
+
const yBasis = Cartesian3.cross(
|
|
154
|
+
zBasis,
|
|
155
|
+
deltaCartesian,
|
|
156
|
+
update3DCartesian3Scratch3,
|
|
157
|
+
);
|
|
158
|
+
if (
|
|
159
|
+
!Cartesian3.equalsEpsilon(yBasis, Cartesian3.ZERO, CesiumMath.EPSILON16)
|
|
160
|
+
) {
|
|
161
|
+
// X is along the cross of y and z (right handed basis / in the direction of motion)
|
|
162
|
+
const xBasis = Cartesian3.cross(
|
|
163
|
+
yBasis,
|
|
164
|
+
zBasis,
|
|
165
|
+
update3DCartesian3Scratch1,
|
|
166
|
+
);
|
|
167
|
+
|
|
168
|
+
Matrix3.multiplyByVector(toFixed, xBasis, xBasis);
|
|
169
|
+
Matrix3.multiplyByVector(toFixed, yBasis, yBasis);
|
|
170
|
+
Matrix3.multiplyByVector(toFixed, zBasis, zBasis);
|
|
171
|
+
|
|
172
|
+
Cartesian3.normalize(xBasis, xBasis);
|
|
173
|
+
Cartesian3.normalize(yBasis, yBasis);
|
|
174
|
+
Cartesian3.normalize(zBasis, zBasis);
|
|
175
|
+
|
|
176
|
+
if (!defined(result)) {
|
|
177
|
+
result = new Matrix4();
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
result[0] = xBasis.x;
|
|
181
|
+
result[1] = xBasis.y;
|
|
182
|
+
result[2] = xBasis.z;
|
|
183
|
+
result[3] = 0.0;
|
|
184
|
+
result[4] = yBasis.x;
|
|
185
|
+
result[5] = yBasis.y;
|
|
186
|
+
result[6] = yBasis.z;
|
|
187
|
+
result[7] = 0.0;
|
|
188
|
+
result[8] = zBasis.x;
|
|
189
|
+
result[9] = zBasis.y;
|
|
190
|
+
result[10] = zBasis.z;
|
|
191
|
+
result[11] = 0.0;
|
|
192
|
+
result[12] = cartesian.x;
|
|
193
|
+
result[13] = cartesian.y;
|
|
194
|
+
result[14] = cartesian.z;
|
|
195
|
+
result[15] = 1.0;
|
|
196
|
+
return result;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
23
202
|
|
|
24
203
|
const defaultResolution = 60.0;
|
|
25
204
|
const defaultWidth = 1.0;
|
|
@@ -35,6 +214,7 @@ function EntityData(entity) {
|
|
|
35
214
|
this.updater = undefined;
|
|
36
215
|
}
|
|
37
216
|
|
|
217
|
+
const sampleScratch = new Cartesian3();
|
|
38
218
|
function subSampleSampledProperty(
|
|
39
219
|
property,
|
|
40
220
|
start,
|
|
@@ -46,12 +226,38 @@ function subSampleSampledProperty(
|
|
|
46
226
|
startingIndex,
|
|
47
227
|
result,
|
|
48
228
|
) {
|
|
229
|
+
let refEntity;
|
|
230
|
+
let refPosition;
|
|
231
|
+
|
|
232
|
+
let entityFrame = false;
|
|
233
|
+
if (referenceFrame instanceof Entity) {
|
|
234
|
+
refEntity = referenceFrame;
|
|
235
|
+
refPosition = refEntity.position;
|
|
236
|
+
referenceFrame = ReferenceFrame.FIXED;
|
|
237
|
+
entityFrame = true;
|
|
238
|
+
}
|
|
239
|
+
|
|
49
240
|
let r = startingIndex;
|
|
50
241
|
//Always step exactly on start (but only use it if it exists.)
|
|
51
242
|
let tmp;
|
|
243
|
+
let tmp2;
|
|
52
244
|
tmp = property.getValueInReferenceFrame(start, referenceFrame, result[r]);
|
|
53
|
-
if (
|
|
54
|
-
|
|
245
|
+
if (!entityFrame) {
|
|
246
|
+
if (defined(tmp)) {
|
|
247
|
+
result[r++] = tmp;
|
|
248
|
+
}
|
|
249
|
+
} else {
|
|
250
|
+
tmp2 = refPosition.getValueInReferenceFrame(
|
|
251
|
+
start,
|
|
252
|
+
referenceFrame,
|
|
253
|
+
sampleScratch,
|
|
254
|
+
);
|
|
255
|
+
|
|
256
|
+
// Transform to frame of reference - either reference entity's orientation, or VVLH
|
|
257
|
+
tmp = transformToEntityFrame(start, tmp, tmp2, refEntity, tmp);
|
|
258
|
+
if (defined(tmp)) {
|
|
259
|
+
result[r++] = tmp;
|
|
260
|
+
}
|
|
55
261
|
}
|
|
56
262
|
|
|
57
263
|
let steppedOnNow =
|
|
@@ -78,8 +284,22 @@ function subSampleSampledProperty(
|
|
|
78
284
|
referenceFrame,
|
|
79
285
|
result[r],
|
|
80
286
|
);
|
|
81
|
-
if (
|
|
82
|
-
|
|
287
|
+
if (!entityFrame) {
|
|
288
|
+
if (defined(tmp)) {
|
|
289
|
+
result[r++] = tmp;
|
|
290
|
+
}
|
|
291
|
+
} else {
|
|
292
|
+
tmp2 = refPosition.getValueInReferenceFrame(
|
|
293
|
+
updateTime,
|
|
294
|
+
referenceFrame,
|
|
295
|
+
sampleScratch,
|
|
296
|
+
);
|
|
297
|
+
if (defined(tmp) && defined(tmp2)) {
|
|
298
|
+
tmp = transformToEntityFrame(updateTime, tmp, tmp2, refEntity, tmp);
|
|
299
|
+
if (defined(tmp)) {
|
|
300
|
+
result[r++] = tmp;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
83
303
|
}
|
|
84
304
|
steppedOnNow = true;
|
|
85
305
|
}
|
|
@@ -93,8 +313,22 @@ function subSampleSampledProperty(
|
|
|
93
313
|
referenceFrame,
|
|
94
314
|
result[r],
|
|
95
315
|
);
|
|
96
|
-
if (
|
|
97
|
-
|
|
316
|
+
if (!entityFrame) {
|
|
317
|
+
if (defined(tmp)) {
|
|
318
|
+
result[r++] = tmp;
|
|
319
|
+
}
|
|
320
|
+
} else {
|
|
321
|
+
tmp2 = refPosition.getValueInReferenceFrame(
|
|
322
|
+
current,
|
|
323
|
+
referenceFrame,
|
|
324
|
+
sampleScratch,
|
|
325
|
+
);
|
|
326
|
+
if (defined(tmp) && defined(tmp2)) {
|
|
327
|
+
tmp = transformToEntityFrame(current, tmp, tmp2, refEntity, tmp);
|
|
328
|
+
if (defined(tmp)) {
|
|
329
|
+
result[r++] = tmp;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
98
332
|
}
|
|
99
333
|
}
|
|
100
334
|
|
|
@@ -129,8 +363,22 @@ function subSampleSampledProperty(
|
|
|
129
363
|
|
|
130
364
|
//Always step exactly on stop (but only use it if it exists.)
|
|
131
365
|
tmp = property.getValueInReferenceFrame(stop, referenceFrame, result[r]);
|
|
132
|
-
if (
|
|
133
|
-
|
|
366
|
+
if (!entityFrame) {
|
|
367
|
+
if (defined(tmp)) {
|
|
368
|
+
result[r++] = tmp;
|
|
369
|
+
}
|
|
370
|
+
} else {
|
|
371
|
+
tmp2 = refPosition.getValueInReferenceFrame(
|
|
372
|
+
stop,
|
|
373
|
+
referenceFrame,
|
|
374
|
+
sampleScratch,
|
|
375
|
+
);
|
|
376
|
+
if (defined(tmp) && defined(tmp2)) {
|
|
377
|
+
tmp = transformToEntityFrame(stop, tmp, tmp2, refEntity, tmp);
|
|
378
|
+
if (defined(tmp)) {
|
|
379
|
+
result[r++] = tmp;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
134
382
|
}
|
|
135
383
|
|
|
136
384
|
return r;
|
|
@@ -484,6 +732,8 @@ function subSample(
|
|
|
484
732
|
}
|
|
485
733
|
|
|
486
734
|
const toFixedScratch = new Matrix3();
|
|
735
|
+
const updateOrientationScratch = new Quaternion();
|
|
736
|
+
const updateRotationScratch = new Matrix3();
|
|
487
737
|
function PolylineUpdater(scene, referenceFrame) {
|
|
488
738
|
this._unusedIndexes = [];
|
|
489
739
|
this._polylineCollection = new PolylineCollection();
|
|
@@ -493,16 +743,38 @@ function PolylineUpdater(scene, referenceFrame) {
|
|
|
493
743
|
}
|
|
494
744
|
|
|
495
745
|
PolylineUpdater.prototype.update = function (time) {
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
746
|
+
const frame = this._referenceFrame;
|
|
747
|
+
if (frame === ReferenceFrame.INERTIAL) {
|
|
748
|
+
let toFixed = Transforms.computeIcrfToFixedMatrix(time, toFixedScratch);
|
|
749
|
+
if (!defined(toFixed)) {
|
|
750
|
+
toFixed = Transforms.computeTemeToPseudoFixedMatrix(time, toFixedScratch);
|
|
751
|
+
}
|
|
501
752
|
Matrix4.fromRotationTranslation(
|
|
502
753
|
toFixed,
|
|
503
754
|
Cartesian3.ZERO,
|
|
504
755
|
this._polylineCollection.modelMatrix,
|
|
505
756
|
);
|
|
757
|
+
} else if (frame instanceof Entity) {
|
|
758
|
+
const position = frame.position.getValue(time);
|
|
759
|
+
|
|
760
|
+
// Use the reference frame entity's orientation if it has one
|
|
761
|
+
if (defined(frame.orientation)) {
|
|
762
|
+
if (defined(frame.orientation.getValue(time, updateOrientationScratch))) {
|
|
763
|
+
// Calculate the model matrix that places the body-frame path points into the world
|
|
764
|
+
Matrix3.fromQuaternion(updateOrientationScratch, updateRotationScratch);
|
|
765
|
+
Matrix4.fromRotationTranslation(
|
|
766
|
+
updateRotationScratch,
|
|
767
|
+
position,
|
|
768
|
+
this._polylineCollection.modelMatrix,
|
|
769
|
+
);
|
|
770
|
+
}
|
|
771
|
+
} else {
|
|
772
|
+
computeVvlhTransform(
|
|
773
|
+
time,
|
|
774
|
+
frame.position,
|
|
775
|
+
this._polylineCollection.modelMatrix,
|
|
776
|
+
);
|
|
777
|
+
}
|
|
506
778
|
}
|
|
507
779
|
};
|
|
508
780
|
|
|
@@ -597,8 +869,7 @@ PolylineUpdater.prototype.updateObject = function (time, item) {
|
|
|
597
869
|
defaultResolution,
|
|
598
870
|
);
|
|
599
871
|
|
|
600
|
-
|
|
601
|
-
polyline.positions = subSample(
|
|
872
|
+
const positions = subSample(
|
|
602
873
|
positionProperty,
|
|
603
874
|
sampleStart,
|
|
604
875
|
sampleStop,
|
|
@@ -607,6 +878,16 @@ PolylineUpdater.prototype.updateObject = function (time, item) {
|
|
|
607
878
|
resolution,
|
|
608
879
|
polyline.positions.slice(),
|
|
609
880
|
);
|
|
881
|
+
|
|
882
|
+
// If the path only has one point, don't show it
|
|
883
|
+
// This can happen if the position is sampled at a time when it is only defined at a single point
|
|
884
|
+
if (positions.length < 2) {
|
|
885
|
+
polyline.show = false;
|
|
886
|
+
return;
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
polyline.show = true;
|
|
890
|
+
polyline.positions = positions;
|
|
610
891
|
polyline.material = MaterialProperty.getValue(
|
|
611
892
|
time,
|
|
612
893
|
pathGraphics._material,
|
|
@@ -710,15 +991,40 @@ PathVisualizer.prototype.update = function (time) {
|
|
|
710
991
|
const item = items[i];
|
|
711
992
|
const entity = item.entity;
|
|
712
993
|
const positionProperty = entity._position;
|
|
994
|
+
const pathGraphics = entity._path;
|
|
713
995
|
|
|
714
996
|
const lastUpdater = item.updater;
|
|
715
997
|
|
|
998
|
+
let isRelative = false;
|
|
999
|
+
|
|
716
1000
|
let frameToVisualize = ReferenceFrame.FIXED;
|
|
1001
|
+
let frameToVisualizeKey = frameToVisualize.toString();
|
|
717
1002
|
if (this._scene.mode === SceneMode.SCENE3D) {
|
|
718
|
-
|
|
1003
|
+
const relativeTo = Property.getValueOrUndefined(
|
|
1004
|
+
pathGraphics.relativeTo,
|
|
1005
|
+
time,
|
|
1006
|
+
);
|
|
1007
|
+
if (defined(relativeTo)) {
|
|
1008
|
+
if (relativeTo === "FIXED") {
|
|
1009
|
+
frameToVisualize = ReferenceFrame.FIXED;
|
|
1010
|
+
frameToVisualizeKey = frameToVisualize.toString();
|
|
1011
|
+
} else if (relativeTo === "INERTIAL") {
|
|
1012
|
+
frameToVisualize = ReferenceFrame.INERTIAL;
|
|
1013
|
+
frameToVisualizeKey = frameToVisualize.toString();
|
|
1014
|
+
} else {
|
|
1015
|
+
// Path should be relative to entity
|
|
1016
|
+
// Current implementation uses VVLH, ignores entity orientation
|
|
1017
|
+
isRelative = true;
|
|
1018
|
+
frameToVisualize = this._entityCollection.getById(relativeTo);
|
|
1019
|
+
frameToVisualizeKey = relativeTo;
|
|
1020
|
+
}
|
|
1021
|
+
} else {
|
|
1022
|
+
frameToVisualize = positionProperty.referenceFrame;
|
|
1023
|
+
frameToVisualizeKey = frameToVisualize.toString();
|
|
1024
|
+
}
|
|
719
1025
|
}
|
|
720
1026
|
|
|
721
|
-
let currentUpdater = this._updaters[
|
|
1027
|
+
let currentUpdater = this._updaters[frameToVisualizeKey];
|
|
722
1028
|
|
|
723
1029
|
if (lastUpdater === currentUpdater && defined(currentUpdater)) {
|
|
724
1030
|
currentUpdater.updateObject(time, item);
|
|
@@ -729,10 +1035,14 @@ PathVisualizer.prototype.update = function (time) {
|
|
|
729
1035
|
lastUpdater.removeObject(item);
|
|
730
1036
|
}
|
|
731
1037
|
|
|
1038
|
+
if (isRelative && !defined(frameToVisualize)) {
|
|
1039
|
+
continue;
|
|
1040
|
+
}
|
|
1041
|
+
|
|
732
1042
|
if (!defined(currentUpdater)) {
|
|
733
1043
|
currentUpdater = new PolylineUpdater(this._scene, frameToVisualize);
|
|
734
1044
|
currentUpdater.update(time);
|
|
735
|
-
this._updaters[
|
|
1045
|
+
this._updaters[frameToVisualizeKey] = currentUpdater;
|
|
736
1046
|
}
|
|
737
1047
|
|
|
738
1048
|
item.updater = currentUpdater;
|
|
@@ -820,4 +1130,6 @@ PathVisualizer.prototype._onCollectionChanged = function (
|
|
|
820
1130
|
|
|
821
1131
|
//for testing
|
|
822
1132
|
PathVisualizer._subSample = subSample;
|
|
1133
|
+
PathVisualizer._computeVvlhTransform = computeVvlhTransform;
|
|
1134
|
+
PathVisualizer._transformToEntityFrame = transformToEntityFrame;
|
|
823
1135
|
export default PathVisualizer;
|
|
@@ -147,18 +147,23 @@ Batch.prototype.update = function (time) {
|
|
|
147
147
|
this.depthFailMaterial,
|
|
148
148
|
);
|
|
149
149
|
}
|
|
150
|
-
|
|
150
|
+
|
|
151
|
+
const DepthFailAppearanceType = this.depthFailAppearanceType;
|
|
152
|
+
|
|
153
|
+
depthFailAppearance = new DepthFailAppearanceType({
|
|
151
154
|
material: this.depthFailMaterial,
|
|
152
155
|
translucent: this.translucent,
|
|
153
156
|
closed: this.closed,
|
|
154
157
|
});
|
|
155
158
|
}
|
|
156
159
|
|
|
160
|
+
const AppearanceType = this.appearanceType;
|
|
161
|
+
|
|
157
162
|
primitive = new Primitive({
|
|
158
163
|
show: false,
|
|
159
164
|
asynchronous: true,
|
|
160
165
|
geometryInstances: geometries.slice(),
|
|
161
|
-
appearance: new
|
|
166
|
+
appearance: new AppearanceType({
|
|
162
167
|
translucent: this.translucent,
|
|
163
168
|
closed: this.closed,
|
|
164
169
|
}),
|
|
@@ -154,18 +154,23 @@ Batch.prototype.update = function (time) {
|
|
|
154
154
|
this.depthFailMaterialProperty,
|
|
155
155
|
this.depthFailMaterial,
|
|
156
156
|
);
|
|
157
|
-
|
|
157
|
+
|
|
158
|
+
const DepthFailAppearanceType = this.depthFailAppearanceType;
|
|
159
|
+
|
|
160
|
+
depthFailAppearance = new DepthFailAppearanceType({
|
|
158
161
|
material: this.depthFailMaterial,
|
|
159
162
|
translucent: this.depthFailMaterial.isTranslucent(),
|
|
160
163
|
closed: this.closed,
|
|
161
164
|
});
|
|
162
165
|
}
|
|
163
166
|
|
|
167
|
+
const AppearanceType = this.appearanceType;
|
|
168
|
+
|
|
164
169
|
primitive = new Primitive({
|
|
165
170
|
show: false,
|
|
166
171
|
asynchronous: true,
|
|
167
172
|
geometryInstances: geometries.slice(),
|
|
168
|
-
appearance: new
|
|
173
|
+
appearance: new AppearanceType({
|
|
169
174
|
material: this.material,
|
|
170
175
|
translucent: this.material.isTranslucent(),
|
|
171
176
|
closed: this.closed,
|
|
@@ -118,6 +118,7 @@ Batch.prototype.remove = function (updater) {
|
|
|
118
118
|
if (defined(unsubscribe)) {
|
|
119
119
|
unsubscribe();
|
|
120
120
|
this.subscriptions.remove(id);
|
|
121
|
+
this.showsUpdated.remove(id);
|
|
121
122
|
}
|
|
122
123
|
return true;
|
|
123
124
|
}
|
|
@@ -157,11 +158,13 @@ Batch.prototype.update = function (time) {
|
|
|
157
158
|
this.material,
|
|
158
159
|
);
|
|
159
160
|
|
|
161
|
+
const AppearanceType = this.appearanceType;
|
|
162
|
+
|
|
160
163
|
primitive = new GroundPrimitive({
|
|
161
164
|
show: false,
|
|
162
165
|
asynchronous: true,
|
|
163
166
|
geometryInstances: geometries.slice(),
|
|
164
|
-
appearance: new
|
|
167
|
+
appearance: new AppearanceType({
|
|
165
168
|
material: this.material,
|
|
166
169
|
// translucent and closed properties overridden
|
|
167
170
|
}),
|
|
@@ -113,6 +113,7 @@ Batch.prototype.remove = function (updater) {
|
|
|
113
113
|
if (defined(unsubscribe)) {
|
|
114
114
|
unsubscribe();
|
|
115
115
|
this.subscriptions.remove(id);
|
|
116
|
+
this.showsUpdated.remove(id);
|
|
116
117
|
}
|
|
117
118
|
return true;
|
|
118
119
|
}
|
|
@@ -139,11 +140,13 @@ Batch.prototype.update = function (time) {
|
|
|
139
140
|
}
|
|
140
141
|
}
|
|
141
142
|
|
|
143
|
+
const AppearanceType = this.appearanceType;
|
|
144
|
+
|
|
142
145
|
primitive = new GroundPolylinePrimitive({
|
|
143
146
|
show: false,
|
|
144
147
|
asynchronous: this._asynchronous,
|
|
145
148
|
geometryInstances: geometries.slice(),
|
|
146
|
-
appearance: new
|
|
149
|
+
appearance: new AppearanceType(),
|
|
147
150
|
classificationType: this.classificationType,
|
|
148
151
|
});
|
|
149
152
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Defined the orientation of stripes in {@link StripeMaterialProperty}.
|
|
3
5
|
*
|
|
@@ -16,4 +18,7 @@ const StripeOrientation = {
|
|
|
16
18
|
*/
|
|
17
19
|
VERTICAL: 1,
|
|
18
20
|
};
|
|
19
|
-
|
|
21
|
+
|
|
22
|
+
Object.freeze(StripeOrientation);
|
|
23
|
+
|
|
24
|
+
export default StripeOrientation;
|
|
@@ -1,21 +1,32 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
1
3
|
import WebGLConstants from "../Core/WebGLConstants.js";
|
|
2
4
|
|
|
3
5
|
/**
|
|
4
6
|
* @private
|
|
7
|
+
* @enum {number}
|
|
5
8
|
*/
|
|
6
9
|
const BufferUsage = {
|
|
7
10
|
STREAM_DRAW: WebGLConstants.STREAM_DRAW,
|
|
8
11
|
STATIC_DRAW: WebGLConstants.STATIC_DRAW,
|
|
9
12
|
DYNAMIC_DRAW: WebGLConstants.DYNAMIC_DRAW,
|
|
10
13
|
DYNAMIC_READ: WebGLConstants.DYNAMIC_READ,
|
|
14
|
+
};
|
|
11
15
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
/**
|
|
17
|
+
* @private
|
|
18
|
+
* @param {BufferUsage} bufferUsage
|
|
19
|
+
*/
|
|
20
|
+
// @ts-expect-error https://github.com/CesiumGS/cesium/issues/13420
|
|
21
|
+
BufferUsage.validate = function (bufferUsage) {
|
|
22
|
+
return (
|
|
23
|
+
bufferUsage === BufferUsage.STREAM_DRAW ||
|
|
24
|
+
bufferUsage === BufferUsage.STATIC_DRAW ||
|
|
25
|
+
bufferUsage === BufferUsage.DYNAMIC_DRAW ||
|
|
26
|
+
bufferUsage === BufferUsage.DYNAMIC_READ
|
|
27
|
+
);
|
|
20
28
|
};
|
|
21
|
-
|
|
29
|
+
|
|
30
|
+
Object.freeze(BufferUsage);
|
|
31
|
+
|
|
32
|
+
export default BufferUsage;
|
|
@@ -22,6 +22,7 @@ import ContextLimits from "./ContextLimits.js";
|
|
|
22
22
|
import CubeMap from "./CubeMap.js";
|
|
23
23
|
import DrawCommand from "./DrawCommand.js";
|
|
24
24
|
import PassState from "./PassState.js";
|
|
25
|
+
import PickId from "./PickId.js";
|
|
25
26
|
import PixelDatatype from "./PixelDatatype.js";
|
|
26
27
|
import RenderState from "./RenderState.js";
|
|
27
28
|
import ShaderCache from "./ShaderCache.js";
|
|
@@ -1657,41 +1658,13 @@ Context.prototype.getObjectByPickColor = function (pickColor) {
|
|
|
1657
1658
|
return this._pickObjects.get(pickColor);
|
|
1658
1659
|
};
|
|
1659
1660
|
|
|
1660
|
-
/**
|
|
1661
|
-
*
|
|
1662
|
-
* @param {Map<number, object>} pickObjects
|
|
1663
|
-
* @param {number} key
|
|
1664
|
-
* @param {Color} color
|
|
1665
|
-
*/
|
|
1666
|
-
function PickId(pickObjects, key, color) {
|
|
1667
|
-
this._pickObjects = pickObjects;
|
|
1668
|
-
this.key = key;
|
|
1669
|
-
this.color = color;
|
|
1670
|
-
}
|
|
1671
|
-
|
|
1672
|
-
Object.defineProperties(PickId.prototype, {
|
|
1673
|
-
object: {
|
|
1674
|
-
get: function () {
|
|
1675
|
-
return this._pickObjects.get(this.key);
|
|
1676
|
-
},
|
|
1677
|
-
set: function (value) {
|
|
1678
|
-
this._pickObjects.set(this.key, value);
|
|
1679
|
-
},
|
|
1680
|
-
},
|
|
1681
|
-
});
|
|
1682
|
-
|
|
1683
|
-
PickId.prototype.destroy = function () {
|
|
1684
|
-
this._pickObjects.delete(this.key);
|
|
1685
|
-
return undefined;
|
|
1686
|
-
};
|
|
1687
|
-
|
|
1688
1661
|
/**
|
|
1689
1662
|
* Creates a unique ID associated with the input object for use with color-buffer picking.
|
|
1690
1663
|
* The ID has an RGBA color value unique to this context. You must call destroy()
|
|
1691
1664
|
* on the pick ID when destroying the input object.
|
|
1692
1665
|
*
|
|
1693
1666
|
* @param {object} object The object to associate with the pick ID.
|
|
1694
|
-
* @returns {
|
|
1667
|
+
* @returns {PickId} A PickId object with a <code>color</code> property.
|
|
1695
1668
|
*
|
|
1696
1669
|
* @exception {RuntimeError} Out of unique Pick IDs.
|
|
1697
1670
|
*
|