@cesium/engine 11.0.0 → 12.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-HFPMX5L2.js → chunk-2B5H7KIN.js} +1 -1
- package/Build/Workers/{chunk-KKAEXHDY.js → chunk-2RHMHHJH.js} +2 -2
- package/Build/Workers/{chunk-AI3O7UN2.js → chunk-3OHDXGFC.js} +6 -6
- package/Build/Workers/{chunk-TTI2SUWJ.js → chunk-3OM5QZSI.js} +2 -2
- package/Build/Workers/{chunk-2EDC3QGH.js → chunk-3UJV3W4Y.js} +1 -1
- package/Build/Workers/{chunk-N3BIL6WA.js → chunk-3X2LXRHU.js} +13 -13
- package/Build/Workers/{chunk-FJT3ERV7.js → chunk-4ESQ3DN2.js} +9 -9
- package/Build/Workers/{chunk-HO2NTC7I.js → chunk-4IQPX22D.js} +6 -6
- package/Build/Workers/{chunk-L6FARMF6.js → chunk-4XPGN5Y7.js} +11 -11
- package/Build/Workers/{chunk-4NBRIKB3.js → chunk-56LALJCU.js} +2 -2
- package/Build/Workers/{chunk-HC7RYWPZ.js → chunk-5FSKL7US.js} +12 -12
- package/Build/Workers/{chunk-54VC7SCM.js → chunk-5YKJKOFE.js} +7 -7
- package/Build/Workers/{chunk-6ZREIBKS.js → chunk-62YGXNGC.js} +7 -7
- package/Build/Workers/{chunk-BH5ZEN4I.js → chunk-6DYMJ57Z.js} +10 -10
- package/Build/Workers/{chunk-AS7P4BHI.js → chunk-7DSVCRFD.js} +6 -6
- package/Build/Workers/{chunk-6FFGOENI.js → chunk-7OISMGQF.js} +46 -23
- package/Build/Workers/{chunk-BJ3WF5RW.js → chunk-AL7BHP36.js} +6 -6
- package/Build/Workers/{chunk-WQRXRDCZ.js → chunk-AOCENJVH.js} +11 -11
- package/Build/Workers/{chunk-2MKRG7L7.js → chunk-ARTM66DL.js} +5 -5
- package/Build/Workers/{chunk-VSFFJGTA.js → chunk-B4AZL6Q4.js} +5 -5
- package/Build/Workers/{chunk-5IY5BXCT.js → chunk-BQNTN4CC.js} +83 -79
- package/Build/Workers/{chunk-AUM45VEG.js → chunk-C4IAULHW.js} +15 -15
- package/Build/Workers/{chunk-6PJIHPQB.js → chunk-ES6Q5HWK.js} +13 -13
- package/Build/Workers/{chunk-DVAIU7A4.js → chunk-GKBICLGC.js} +19 -23
- package/Build/Workers/{chunk-IBG5FVXC.js → chunk-GMGUR5GM.js} +4 -4
- package/Build/Workers/{chunk-OOA6GXKD.js → chunk-GUW6BS72.js} +7 -7
- package/Build/Workers/{chunk-KFW4UNQH.js → chunk-GYHHNFW5.js} +15 -25
- package/Build/Workers/{chunk-GOHDOWU5.js → chunk-GZG526CC.js} +14 -14
- package/Build/Workers/{chunk-BZXF3GNX.js → chunk-HILBDZUP.js} +2 -2
- package/Build/Workers/{chunk-BBO6BGLC.js → chunk-HYUTWUXN.js} +13 -13
- package/Build/Workers/{chunk-HA6TZ3XT.js → chunk-IL6SMMDD.js} +4 -4
- package/Build/Workers/{chunk-T4MB73MC.js → chunk-IT6AWHFV.js} +2 -2
- package/Build/Workers/{chunk-SRZJCF7G.js → chunk-J64XIF5C.js} +10 -36
- package/Build/Workers/{chunk-BUOFSNFW.js → chunk-JGGZ3H4W.js} +1 -1
- package/Build/Workers/{chunk-SIZXFNJY.js → chunk-JRULXFCC.js} +5 -5
- package/Build/Workers/{chunk-QGT2GMOK.js → chunk-MSY2AAW2.js} +4 -4
- package/Build/Workers/{chunk-XLCZE6DD.js → chunk-QXBRZZQS.js} +10 -10
- package/Build/Workers/{chunk-JYUCC5NV.js → chunk-SXJ37VUC.js} +7 -7
- package/Build/Workers/{chunk-OC4MYPVW.js → chunk-T6FZFMTF.js} +2 -2
- package/Build/Workers/{chunk-OSCHEWSG.js → chunk-TQK4D4AR.js} +7 -7
- package/Build/Workers/{chunk-2RZYNSMR.js → chunk-US3L7FXC.js} +7 -9
- package/Build/Workers/{chunk-RFQYEYAL.js → chunk-VGT4ONMC.js} +18 -20
- package/Build/Workers/{chunk-VHJ5ESXF.js → chunk-VJVTWBXB.js} +1 -1
- package/Build/Workers/{chunk-RJF5ZP76.js → chunk-VQZNBD3T.js} +4 -4
- package/Build/Workers/{chunk-WXDGOYTT.js → chunk-VUCVRDLD.js} +7 -7
- package/Build/Workers/{chunk-DJXXI7UF.js → chunk-W2Q2F7JS.js} +5 -5
- package/Build/Workers/{chunk-HZPMWR4H.js → chunk-WQCX7U65.js} +7 -7
- package/Build/Workers/{chunk-HFMJM3SX.js → chunk-WW5RTJ72.js} +1 -1
- package/Build/Workers/{chunk-IXLNNST6.js → chunk-X67KKHI7.js} +4 -4
- package/Build/Workers/{chunk-4TK5YR6Q.js → chunk-X7VRF25X.js} +5 -5
- package/Build/Workers/{chunk-O5SSW3B3.js → chunk-YANQEHO5.js} +6 -6
- package/Build/Workers/{chunk-HBZSCVZC.js → chunk-ZZNBFQL5.js} +11 -11
- package/Build/Workers/combineGeometry.js +23 -25
- package/Build/Workers/createBoxGeometry.js +16 -16
- package/Build/Workers/createBoxOutlineGeometry.js +14 -14
- package/Build/Workers/createCircleGeometry.js +24 -24
- package/Build/Workers/createCircleOutlineGeometry.js +17 -17
- package/Build/Workers/createCoplanarPolygonGeometry.js +31 -31
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +29 -29
- package/Build/Workers/createCorridorGeometry.js +27 -27
- package/Build/Workers/createCorridorOutlineGeometry.js +26 -26
- package/Build/Workers/createCylinderGeometry.js +18 -18
- package/Build/Workers/createCylinderOutlineGeometry.js +16 -16
- package/Build/Workers/createEllipseGeometry.js +24 -24
- package/Build/Workers/createEllipseOutlineGeometry.js +17 -17
- package/Build/Workers/createEllipsoidGeometry.js +17 -17
- package/Build/Workers/createEllipsoidOutlineGeometry.js +16 -16
- package/Build/Workers/createFrustumGeometry.js +16 -16
- package/Build/Workers/createFrustumOutlineGeometry.js +16 -16
- package/Build/Workers/createGeometry.js +25 -26
- package/Build/Workers/createGroundPolylineGeometry.js +20 -20
- package/Build/Workers/createPlaneGeometry.js +14 -14
- package/Build/Workers/createPlaneOutlineGeometry.js +13 -13
- package/Build/Workers/createPolygonGeometry.js +36 -40
- package/Build/Workers/createPolygonOutlineGeometry.js +40 -48
- package/Build/Workers/createPolylineGeometry.js +23 -23
- package/Build/Workers/createPolylineVolumeGeometry.js +32 -31
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +25 -25
- package/Build/Workers/createRectangleGeometry.js +28 -30
- package/Build/Workers/createRectangleOutlineGeometry.js +19 -19
- package/Build/Workers/createSimplePolylineGeometry.js +21 -21
- package/Build/Workers/createSphereGeometry.js +17 -17
- package/Build/Workers/createSphereOutlineGeometry.js +16 -16
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +13 -13
- package/Build/Workers/createVectorTileGeometries.js +22 -22
- package/Build/Workers/createVectorTilePoints.js +12 -12
- package/Build/Workers/createVectorTilePolygons.js +20 -20
- package/Build/Workers/createVectorTilePolylines.js +13 -13
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -26
- package/Build/Workers/createVerticesFromHeightmap.js +22 -26
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +42 -32
- package/Build/Workers/createWallGeometry.js +22 -22
- package/Build/Workers/createWallOutlineGeometry.js +21 -21
- package/Build/Workers/decodeDraco.js +11 -11
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +10 -10
- package/Build/Workers/transcodeKTX2.js +7 -7
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +20 -20
- package/Source/Core/ApproximateTerrainHeights.js +15 -15
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +33 -35
- package/Source/Core/AttributeCompression.js +12 -12
- package/Source/Core/AxisAlignedBoundingBox.js +2 -2
- package/Source/Core/BingMapsGeocoderService.js +1 -1
- package/Source/Core/BoundingRectangle.js +3 -3
- package/Source/Core/BoundingSphere.js +45 -45
- package/Source/Core/BoxGeometry.js +6 -6
- package/Source/Core/BoxOutlineGeometry.js +3 -3
- package/Source/Core/Cartesian2.js +7 -7
- package/Source/Core/Cartesian3.js +20 -20
- package/Source/Core/Cartesian4.js +8 -8
- package/Source/Core/Cartographic.js +6 -6
- package/Source/Core/CatmullRomSpline.js +6 -6
- package/Source/Core/CesiumTerrainProvider.js +66 -68
- package/Source/Core/Check.d.ts +3 -3
- package/Source/Core/Check.js +11 -11
- package/Source/Core/CircleGeometry.js +6 -6
- package/Source/Core/CircleOutlineGeometry.js +4 -4
- package/Source/Core/Clock.js +4 -4
- package/Source/Core/Color.js +12 -9
- package/Source/Core/ColorGeometryInstanceAttribute.js +1 -1
- package/Source/Core/ComponentDatatype.js +4 -4
- package/Source/Core/CompressedTextureBuffer.js +2 -2
- package/Source/Core/ConstantSpline.js +1 -1
- package/Source/Core/CoplanarPolygonGeometry.js +44 -41
- package/Source/Core/CoplanarPolygonGeometryLibrary.js +5 -5
- package/Source/Core/CoplanarPolygonOutlineGeometry.js +6 -6
- package/Source/Core/CorridorGeometry.js +77 -77
- package/Source/Core/CorridorGeometryLibrary.js +48 -48
- package/Source/Core/CorridorOutlineGeometry.js +16 -16
- package/Source/Core/CullingVolume.js +4 -4
- package/Source/Core/CustomHeightmapTerrainProvider.js +13 -13
- package/Source/Core/CylinderGeometry.js +8 -8
- package/Source/Core/CylinderGeometryLibrary.js +1 -1
- package/Source/Core/CylinderOutlineGeometry.js +4 -4
- package/Source/Core/DeveloperError.js +1 -1
- package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +20 -21
- package/Source/Core/DoubleEndedPriorityQueue.js +2 -2
- package/Source/Core/EarthOrientationParameters.js +21 -25
- package/Source/Core/EarthOrientationParametersSample.js +1 -1
- package/Source/Core/EllipseGeometry.js +55 -56
- package/Source/Core/EllipseGeometryLibrary.js +12 -12
- package/Source/Core/EllipseOutlineGeometry.js +19 -19
- package/Source/Core/Ellipsoid.js +25 -33
- package/Source/Core/EllipsoidGeodesic.js +18 -17
- package/Source/Core/EllipsoidGeometry.js +9 -8
- package/Source/Core/EllipsoidOutlineGeometry.js +4 -4
- package/Source/Core/EllipsoidRhumbLine.js +33 -32
- package/Source/Core/EllipsoidTangentPlane.js +16 -16
- package/Source/Core/EllipsoidTerrainProvider.js +11 -10
- package/Source/Core/EllipsoidalOccluder.js +110 -130
- package/Source/Core/FeatureDetection.js +4 -4
- package/Source/Core/FrustumGeometry.js +15 -15
- package/Source/Core/FrustumOutlineGeometry.js +4 -4
- package/Source/Core/GeographicTilingScheme.js +6 -6
- package/Source/Core/Geometry.js +15 -17
- package/Source/Core/GeometryAttribute.js +4 -9
- package/Source/Core/GeometryAttributes.js +6 -6
- package/Source/Core/GeometryInstance.js +3 -4
- package/Source/Core/GeometryInstanceAttribute.js +1 -6
- package/Source/Core/GeometryPipeline.js +133 -137
- package/Source/Core/GoogleEarthEnterpriseMetadata.js +19 -20
- package/Source/Core/GoogleEarthEnterpriseTerrainData.js +25 -24
- package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +17 -21
- package/Source/Core/GoogleEarthEnterpriseTileInformation.js +2 -2
- package/Source/Core/GoogleMaps.js +1 -1
- package/Source/Core/GregorianDate.js +4 -4
- package/Source/Core/GroundPolylineGeometry.js +104 -104
- package/Source/Core/HeadingPitchRoll.js +7 -7
- package/Source/Core/HeightmapTerrainData.js +58 -54
- package/Source/Core/HeightmapTessellator.js +22 -23
- package/Source/Core/HermitePolynomialApproximation.js +8 -8
- package/Source/Core/HermiteSpline.js +11 -11
- package/Source/Core/HilbertOrder.js +1 -1
- package/Source/Core/Iau2006XysData.js +6 -6
- package/Source/Core/IauOrientationAxes.js +2 -2
- package/Source/Core/IauOrientationParameters.js +1 -1
- package/Source/Core/IndexDatatype.js +5 -5
- package/Source/Core/IntersectionTests.js +36 -78
- package/Source/Core/Intersections2D.js +3 -3
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonGeocoderService.js +2 -2
- package/Source/Core/IonResource.js +5 -5
- package/Source/Core/Iso8601.js +3 -3
- package/Source/Core/JulianDate.js +23 -33
- package/Source/Core/KTX2Transcoder.js +2 -2
- package/Source/Core/LagrangePolynomialApproximation.js +1 -1
- package/Source/Core/LinearApproximation.js +4 -4
- package/Source/Core/LinearSpline.js +2 -2
- package/Source/Core/Math.js +6 -4
- package/Source/Core/Matrix2.js +3 -3
- package/Source/Core/Matrix3.js +16 -16
- package/Source/Core/Matrix4.js +31 -31
- package/Source/Core/MorphWeightSpline.js +2 -2
- package/Source/Core/NearFarScalar.js +1 -1
- package/Source/Core/Occluder.js +52 -56
- package/Source/Core/OpenCageGeocoderService.js +2 -2
- package/Source/Core/OrientedBoundingBox.js +52 -51
- package/Source/Core/OrthographicFrustum.js +11 -11
- package/Source/Core/OrthographicOffCenterFrustum.js +17 -17
- package/Source/Core/PeliasGeocoderService.js +1 -1
- package/Source/Core/PerspectiveFrustum.js +61 -55
- package/Source/Core/PerspectiveOffCenterFrustum.js +58 -59
- package/Source/Core/PinBuilder.js +1 -1
- package/Source/Core/PixelFormat.js +6 -6
- package/Source/Core/Plane.js +9 -9
- package/Source/Core/PlaneGeometry.js +1 -1
- package/Source/Core/PolygonGeometry.js +95 -94
- package/Source/Core/PolygonGeometryLibrary.js +49 -51
- package/Source/Core/PolygonOutlineGeometry.js +49 -51
- package/Source/Core/PolygonPipeline.js +31 -31
- package/Source/Core/PolylineGeometry.js +10 -10
- package/Source/Core/PolylinePipeline.js +25 -25
- package/Source/Core/PolylineVolumeGeometry.js +9 -9
- package/Source/Core/PolylineVolumeGeometryLibrary.js +53 -53
- package/Source/Core/PolylineVolumeOutlineGeometry.js +6 -6
- package/Source/Core/QuadraticRealPolynomial.js +1 -1
- package/Source/Core/QuantizedMeshTerrainData.js +28 -28
- package/Source/Core/QuarticRealPolynomial.js +1 -1
- package/Source/Core/Quaternion.js +19 -19
- package/Source/Core/QuaternionSpline.js +2 -2
- package/Source/Core/Rectangle.js +34 -13
- package/Source/Core/RectangleCollisionChecker.js +3 -3
- package/Source/Core/RectangleGeometry.js +55 -56
- package/Source/Core/RectangleGeometryLibrary.js +8 -8
- package/Source/Core/RectangleOutlineGeometry.js +20 -20
- package/Source/Core/RequestScheduler.js +6 -6
- package/Source/Core/Resource.js +24 -24
- package/Source/Core/S2Cell.js +16 -80
- package/Source/Core/ScreenSpaceEventHandler.js +54 -53
- package/Source/Core/Simon1994PlanetaryPositions.js +13 -13
- package/Source/Core/SimplePolylineGeometry.js +7 -7
- package/Source/Core/SphereGeometry.js +2 -2
- package/Source/Core/SphereOutlineGeometry.js +3 -3
- package/Source/Core/Spline.js +1 -1
- package/Source/Core/SteppedSpline.js +1 -1
- package/Source/Core/Stereographic.js +9 -9
- package/Source/Core/TaskProcessor.js +13 -13
- package/Source/Core/TerrainEncoding.js +33 -38
- package/Source/Core/TerrainMesh.js +1 -1
- package/Source/Core/TerrainProvider.js +12 -12
- package/Source/Core/TileAvailability.js +28 -28
- package/Source/Core/TileProviderError.js +5 -5
- package/Source/Core/TilingScheme.js +1 -1
- package/Source/Core/TimeInterval.js +4 -4
- package/Source/Core/TimeIntervalCollection.js +16 -15
- package/Source/Core/Tipsify.js +2 -2
- package/Source/Core/Transforms.js +52 -54
- package/Source/Core/TranslationRotationScale.js +1 -1
- package/Source/Core/TridiagonalSystemSolver.js +4 -4
- package/Source/Core/VRTheWorldTerrainProvider.js +28 -26
- package/Source/Core/VertexFormat.js +6 -6
- package/Source/Core/VerticalExaggeration.js +4 -4
- package/Source/Core/VideoSynchronizer.js +1 -1
- package/Source/Core/WallGeometry.js +18 -18
- package/Source/Core/WallGeometryLibrary.js +7 -7
- package/Source/Core/WallOutlineGeometry.js +8 -8
- package/Source/Core/WebMercatorProjection.js +5 -6
- package/Source/Core/WebMercatorTilingScheme.js +13 -13
- package/Source/Core/WireframeIndexGenerator.js +8 -8
- package/Source/Core/arrayRemoveDuplicates.js +1 -1
- package/Source/Core/buildModuleUrl.js +2 -2
- package/Source/Core/decodeGoogleEarthEnterpriseData.js +4 -4
- package/Source/Core/decodeVectorPolylinePositions.js +4 -4
- package/Source/Core/destroyObject.js +1 -1
- package/Source/Core/getJsonFromTypedArray.js +1 -1
- package/Source/Core/getMagic.js +1 -1
- package/Source/Core/loadImageFromTypedArray.js +2 -2
- package/Source/Core/loadKTX2.js +1 -1
- package/Source/Core/pointInsideTriangle.js +1 -1
- package/Source/Core/resizeImageToNextPowerOfTwo.js +1 -1
- package/Source/Core/sampleTerrain.js +7 -7
- package/Source/Core/sampleTerrainMostDetailed.js +7 -7
- package/Source/Core/scaleToGeodeticSurface.js +3 -3
- package/Source/Core/srgbToLinear.js +1 -1
- package/Source/Core/writeTextToCanvas.js +1 -1
- package/Source/DataSources/BillboardGraphics.js +13 -13
- package/Source/DataSources/BillboardVisualizer.js +24 -24
- package/Source/DataSources/BoxGeometryUpdater.js +33 -32
- package/Source/DataSources/BoxGraphics.js +3 -3
- package/Source/DataSources/CallbackPositionProperty.js +173 -0
- package/Source/DataSources/Cesium3DTilesetGraphics.js +1 -1
- package/Source/DataSources/Cesium3DTilesetVisualizer.js +6 -6
- package/Source/DataSources/CheckerboardMaterialProperty.js +2 -2
- package/Source/DataSources/ColorMaterialProperty.js +1 -1
- package/Source/DataSources/CompositeEntityCollection.js +14 -15
- package/Source/DataSources/CompositeMaterialProperty.js +5 -7
- package/Source/DataSources/CompositePositionProperty.js +4 -5
- package/Source/DataSources/CompositeProperty.js +2 -2
- package/Source/DataSources/ConstantPositionProperty.js +2 -2
- package/Source/DataSources/CorridorGeometryUpdater.js +61 -56
- package/Source/DataSources/CorridorGraphics.js +6 -6
- package/Source/DataSources/CylinderGeometryUpdater.js +42 -40
- package/Source/DataSources/CylinderGraphics.js +4 -4
- package/Source/DataSources/CzmlDataSource.js +365 -368
- package/Source/DataSources/DataSourceCollection.js +1 -1
- package/Source/DataSources/DataSourceDisplay.js +24 -24
- package/Source/DataSources/DynamicGeometryBatch.js +2 -2
- package/Source/DataSources/DynamicGeometryUpdater.js +14 -18
- package/Source/DataSources/EllipseGeometryUpdater.js +67 -63
- package/Source/DataSources/EllipseGraphics.js +7 -7
- package/Source/DataSources/EllipsoidGeometryUpdater.js +88 -86
- package/Source/DataSources/EllipsoidGraphics.js +5 -5
- package/Source/DataSources/Entity.js +13 -13
- package/Source/DataSources/EntityCluster.js +29 -27
- package/Source/DataSources/EntityCollection.js +7 -7
- package/Source/DataSources/EntityView.js +23 -23
- package/Source/DataSources/GeoJsonDataSource.js +25 -25
- package/Source/DataSources/GeometryUpdater.js +9 -10
- package/Source/DataSources/GeometryUpdaterSet.js +3 -3
- package/Source/DataSources/GeometryVisualizer.js +65 -71
- package/Source/DataSources/GpxDataSource.js +10 -10
- package/Source/DataSources/GridMaterialProperty.js +5 -5
- package/Source/DataSources/GroundGeometryUpdater.js +6 -6
- package/Source/DataSources/ImageMaterialProperty.js +2 -2
- package/Source/DataSources/KmlDataSource.js +212 -212
- package/Source/DataSources/LabelGraphics.js +14 -14
- package/Source/DataSources/LabelVisualizer.js +24 -24
- package/Source/DataSources/ModelGraphics.js +38 -17
- package/Source/DataSources/ModelVisualizer.js +41 -32
- package/Source/DataSources/NodeTransformationProperty.js +3 -3
- package/Source/DataSources/PathGraphics.js +2 -2
- package/Source/DataSources/PathVisualizer.js +99 -35
- package/Source/DataSources/PlaneGeometryUpdater.js +38 -37
- package/Source/DataSources/PlaneGraphics.js +2 -2
- package/Source/DataSources/PointGraphics.js +8 -8
- package/Source/DataSources/PointVisualizer.js +29 -29
- package/Source/DataSources/PolygonGeometryUpdater.js +68 -64
- package/Source/DataSources/PolygonGraphics.js +9 -9
- package/Source/DataSources/PolylineArrowMaterialProperty.js +1 -1
- package/Source/DataSources/PolylineDashMaterialProperty.js +4 -4
- package/Source/DataSources/PolylineGeometryUpdater.js +39 -44
- package/Source/DataSources/PolylineGlowMaterialProperty.js +3 -3
- package/Source/DataSources/PolylineGraphics.js +4 -4
- package/Source/DataSources/PolylineOutlineMaterialProperty.js +3 -3
- package/Source/DataSources/PolylineVisualizer.js +39 -43
- package/Source/DataSources/PolylineVolumeGeometryUpdater.js +70 -68
- package/Source/DataSources/PolylineVolumeGraphics.js +2 -2
- package/Source/DataSources/PositionProperty.js +4 -3
- package/Source/DataSources/PositionPropertyArray.js +3 -3
- package/Source/DataSources/Property.js +1 -1
- package/Source/DataSources/PropertyArray.js +1 -1
- package/Source/DataSources/PropertyBag.js +5 -5
- package/Source/DataSources/RectangleGeometryUpdater.js +68 -63
- package/Source/DataSources/RectangleGraphics.js +6 -6
- package/Source/DataSources/ReferenceProperty.js +6 -6
- package/Source/DataSources/Rotation.js +2 -2
- package/Source/DataSources/SampledPositionProperty.js +6 -6
- package/Source/DataSources/SampledProperty.js +16 -16
- package/Source/DataSources/ScaledPositionProperty.js +2 -2
- package/Source/DataSources/StaticGeometryColorBatch.js +41 -41
- package/Source/DataSources/StaticGeometryPerMaterialBatch.js +40 -40
- package/Source/DataSources/StaticGroundGeometryColorBatch.js +26 -27
- package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +46 -44
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +44 -43
- package/Source/DataSources/StaticOutlineGeometryBatch.js +28 -29
- package/Source/DataSources/StripeMaterialProperty.js +2 -2
- package/Source/DataSources/TerrainOffsetProperty.js +11 -11
- package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +28 -30
- package/Source/DataSources/TimeIntervalCollectionProperty.js +1 -1
- package/Source/DataSources/VelocityOrientationProperty.js +3 -3
- package/Source/DataSources/VelocityVectorProperty.js +4 -4
- package/Source/DataSources/WallGeometryUpdater.js +25 -25
- package/Source/DataSources/WallGraphics.js +4 -4
- package/Source/DataSources/createPropertyDescriptor.js +3 -3
- package/Source/DataSources/exportKml.js +90 -86
- package/Source/DataSources/getElement.js +1 -1
- package/Source/DataSources/heightReferenceOnEntityPropertyChanged.js +4 -4
- package/Source/Renderer/AutomaticUniforms.js +14 -1
- package/Source/Renderer/Buffer.js +18 -18
- package/Source/Renderer/ClearCommand.js +1 -1
- package/Source/Renderer/ComputeEngine.js +1 -1
- package/Source/Renderer/Context.js +40 -40
- package/Source/Renderer/CubeMap.js +109 -32
- package/Source/Renderer/CubeMapFace.js +109 -32
- package/Source/Renderer/DrawCommand.js +50 -5
- package/Source/Renderer/Framebuffer.js +48 -49
- package/Source/Renderer/FramebufferManager.js +40 -34
- package/Source/Renderer/MultisampleFramebuffer.js +35 -14
- package/Source/Renderer/RenderState.js +36 -36
- package/Source/Renderer/Renderbuffer.js +3 -3
- package/Source/Renderer/Sampler.js +2 -2
- package/Source/Renderer/ShaderBuilder.js +8 -8
- package/Source/Renderer/ShaderCache.js +11 -15
- package/Source/Renderer/ShaderFunction.js +1 -1
- package/Source/Renderer/ShaderProgram.js +15 -15
- package/Source/Renderer/ShaderSource.js +40 -40
- package/Source/Renderer/Texture.js +74 -63
- package/Source/Renderer/UniformState.js +78 -58
- package/Source/Renderer/VertexArray.js +20 -20
- package/Source/Renderer/VertexArrayFacade.js +15 -16
- package/Source/Renderer/createUniform.js +1 -1
- package/Source/Renderer/createUniformArray.js +4 -4
- package/Source/Renderer/demodernizeShader.js +5 -5
- package/Source/Renderer/loadCubeMap.js +1 -1
- package/Source/Scene/ArcGisMapServerImageryProvider.js +39 -45
- package/Source/Scene/ArcGisMapService.js +4 -7
- package/Source/Scene/Atmosphere.js +22 -0
- package/Source/Scene/AutoExposure.js +4 -5
- package/Source/Scene/Axis.js +6 -6
- package/Source/Scene/B3dmParser.js +9 -9
- package/Source/Scene/BatchTable.js +7 -7
- package/Source/Scene/BatchTableHierarchy.js +62 -59
- package/Source/Scene/BatchTexture.js +2 -2
- package/Source/Scene/Billboard.js +45 -43
- package/Source/Scene/BillboardCollection.js +81 -83
- package/Source/Scene/BingMapsImageryProvider.js +13 -13
- package/Source/Scene/BoundingVolumeSemantics.js +10 -10
- package/Source/Scene/BoxEmitter.js +1 -1
- package/Source/Scene/BufferLoader.js +1 -1
- package/Source/Scene/Camera.js +161 -164
- package/Source/Scene/CameraEventAggregator.js +18 -18
- package/Source/Scene/CameraFlightPath.js +25 -25
- package/Source/Scene/Cesium3DTile.js +89 -95
- package/Source/Scene/Cesium3DTileBatchTable.js +61 -61
- package/Source/Scene/Cesium3DTileContentFactory.js +7 -7
- package/Source/Scene/Cesium3DTileFeature.js +1 -1
- package/Source/Scene/Cesium3DTileFeatureTable.js +8 -8
- package/Source/Scene/Cesium3DTileOptimizations.js +1 -1
- package/Source/Scene/Cesium3DTilePointFeature.js +11 -11
- package/Source/Scene/Cesium3DTileStyle.js +26 -24
- package/Source/Scene/Cesium3DTilesVoxelProvider.js +14 -20
- package/Source/Scene/Cesium3DTileset.js +120 -83
- package/Source/Scene/Cesium3DTilesetBaseTraversal.js +8 -16
- package/Source/Scene/Cesium3DTilesetCache.js +2 -2
- package/Source/Scene/Cesium3DTilesetHeatmap.js +5 -5
- package/Source/Scene/Cesium3DTilesetMetadata.js +2 -2
- package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +2 -2
- package/Source/Scene/Cesium3DTilesetSkipTraversal.js +8 -12
- package/Source/Scene/Cesium3DTilesetStatistics.js +1 -1
- package/Source/Scene/Cesium3DTilesetTraversal.js +8 -10
- package/Source/Scene/ClassificationPrimitive.js +70 -69
- package/Source/Scene/ClippingPlaneCollection.js +39 -41
- package/Source/Scene/ClippingPolygon.js +8 -8
- package/Source/Scene/ClippingPolygonCollection.js +62 -63
- package/Source/Scene/CloudCollection.js +3 -10
- package/Source/Scene/Composite3DTileContent.js +6 -6
- package/Source/Scene/ConditionsExpression.js +5 -5
- package/Source/Scene/ContentMetadata.js +4 -4
- package/Source/Scene/CreditDisplay.js +8 -8
- package/Source/Scene/CumulusCloud.js +4 -4
- package/Source/Scene/DebugAppearance.js +2 -2
- package/Source/Scene/DebugCameraPrimitive.js +2 -2
- package/Source/Scene/DebugInspector.js +3 -3
- package/Source/Scene/DebugModelMatrixPrimitive.js +4 -4
- package/Source/Scene/DepthPlane.js +7 -7
- package/Source/Scene/DerivedCommand.js +422 -238
- package/Source/Scene/DiscardMissingTileImagePolicy.js +1 -1
- package/Source/Scene/DracoLoader.js +3 -3
- package/Source/Scene/DynamicEnvironmentMapManager.js +852 -0
- package/Source/Scene/EllipsoidPrimitive.js +7 -7
- package/Source/Scene/EllipsoidSurfaceAppearance.js +3 -3
- package/Source/Scene/Empty3DTileContent.js +1 -1
- package/Source/Scene/Expression.js +91 -91
- package/Source/Scene/Fog.js +76 -116
- package/Source/Scene/FrameRateMonitor.js +22 -22
- package/Source/Scene/FrameState.js +36 -3
- package/Source/Scene/Geometry3DTileContent.js +20 -20
- package/Source/Scene/GetFeatureInfoFormat.js +15 -14
- package/Source/Scene/Globe.js +32 -27
- package/Source/Scene/GlobeDepth.js +95 -66
- package/Source/Scene/GlobeSurfaceShaderSet.js +12 -10
- package/Source/Scene/GlobeSurfaceTile.js +33 -33
- package/Source/Scene/GlobeSurfaceTileProvider.js +127 -124
- package/Source/Scene/GlobeTranslucency.js +4 -4
- package/Source/Scene/GlobeTranslucencyFramebuffer.js +9 -9
- package/Source/Scene/GlobeTranslucencyState.js +53 -55
- package/Source/Scene/GltfBufferViewLoader.js +2 -2
- package/Source/Scene/GltfIndexBufferLoader.js +5 -5
- package/Source/Scene/GltfJsonLoader.js +2 -2
- package/Source/Scene/GltfLoader.js +177 -100
- package/Source/Scene/GltfStructuralMetadataLoader.js +9 -8
- package/Source/Scene/GltfTextureLoader.js +5 -5
- package/Source/Scene/GltfVertexBufferLoader.js +12 -13
- package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +9 -9
- package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +9 -9
- package/Source/Scene/GridImageryProvider.js +2 -2
- package/Source/Scene/GroundPolylinePrimitive.js +38 -39
- package/Source/Scene/GroundPrimitive.js +47 -45
- package/Source/Scene/GroupMetadata.js +4 -4
- package/Source/Scene/I3SDataProvider.js +12 -12
- package/Source/Scene/I3SDecoder.js +7 -8
- package/Source/Scene/I3SField.js +8 -8
- package/Source/Scene/I3SGeometry.js +14 -14
- package/Source/Scene/I3SLayer.js +26 -20
- package/Source/Scene/I3SNode.js +17 -17
- package/Source/Scene/I3SSublayer.js +4 -4
- package/Source/Scene/I3SSymbology.js +8 -8
- package/Source/Scene/I3dmParser.js +9 -9
- package/Source/Scene/ImageBasedLighting.js +32 -87
- package/Source/Scene/Imagery.js +3 -3
- package/Source/Scene/ImageryLayer.js +64 -66
- package/Source/Scene/ImageryLayerCollection.js +13 -15
- package/Source/Scene/ImageryLayerFeatureInfo.js +19 -20
- package/Source/Scene/ImageryProvider.js +1 -1
- package/Source/Scene/Implicit3DTileContent.js +34 -37
- package/Source/Scene/ImplicitAvailabilityBitstream.js +2 -2
- package/Source/Scene/ImplicitMetadataView.js +2 -2
- package/Source/Scene/ImplicitSubtree.js +29 -30
- package/Source/Scene/ImplicitSubtreeCache.js +1 -1
- package/Source/Scene/ImplicitSubtreeMetadata.js +5 -5
- package/Source/Scene/ImplicitTileCoordinates.js +11 -11
- package/Source/Scene/ImplicitTileset.js +2 -2
- package/Source/Scene/InvertClassification.js +7 -7
- package/Source/Scene/IonImageryProvider.js +6 -6
- package/Source/Scene/JobScheduler.js +4 -4
- package/Source/Scene/Label.js +29 -29
- package/Source/Scene/LabelCollection.js +17 -15
- package/Source/Scene/MapboxImageryProvider.js +3 -3
- package/Source/Scene/MapboxStyleImageryProvider.js +4 -4
- package/Source/Scene/Material.js +26 -27
- package/Source/Scene/MaterialAppearance.js +4 -4
- package/Source/Scene/Megatexture.js +21 -24
- package/Source/Scene/MetadataClassProperty.js +11 -11
- package/Source/Scene/MetadataComponentType.js +1 -1
- package/Source/Scene/MetadataEntity.js +8 -8
- package/Source/Scene/MetadataEnum.js +1 -1
- package/Source/Scene/MetadataPicking.js +305 -0
- package/Source/Scene/MetadataSchemaLoader.js +1 -1
- package/Source/Scene/MetadataTable.js +2 -2
- package/Source/Scene/MetadataTableProperty.js +22 -22
- package/Source/Scene/Model/AlphaPipelineStage.js +2 -2
- package/Source/Scene/Model/AtmospherePipelineStage.js +13 -8
- package/Source/Scene/Model/B3dmLoader.js +8 -8
- package/Source/Scene/Model/BatchTexturePipelineStage.js +2 -2
- package/Source/Scene/Model/CPUStylingPipelineStage.js +4 -4
- package/Source/Scene/Model/ClassificationModelDrawCommand.js +8 -8
- package/Source/Scene/Model/ClassificationPipelineStage.js +5 -5
- package/Source/Scene/Model/CustomShader.js +9 -9
- package/Source/Scene/Model/CustomShaderPipelineStage.js +37 -38
- package/Source/Scene/Model/DequantizationPipelineStage.js +5 -5
- package/Source/Scene/Model/Extensions/Gpm/AnchorPointDirect.js +61 -0
- package/Source/Scene/Model/Extensions/Gpm/AnchorPointIndirect.js +77 -0
- package/Source/Scene/Model/Extensions/Gpm/CorrelationGroup.js +81 -0
- package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +248 -0
- package/Source/Scene/Model/Extensions/Gpm/GltfGpmLocal.js +179 -0
- package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +548 -0
- package/Source/Scene/Model/Extensions/Gpm/MeshPrimitiveGpmLocal.js +28 -0
- package/Source/Scene/Model/Extensions/Gpm/PpeMetadata.js +79 -0
- package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +75 -0
- package/Source/Scene/Model/Extensions/Gpm/PpeTexture.js +127 -0
- package/Source/Scene/Model/Extensions/Gpm/Spdcf.js +103 -0
- package/Source/Scene/Model/Extensions/Gpm/StorageType.js +30 -0
- package/Source/Scene/Model/FeatureIdPipelineStage.js +40 -40
- package/Source/Scene/Model/GeoJsonLoader.js +17 -17
- package/Source/Scene/Model/GeometryPipelineStage.js +23 -24
- package/Source/Scene/Model/I3dmLoader.js +36 -36
- package/Source/Scene/Model/ImageBasedLightingPipelineStage.js +56 -34
- package/Source/Scene/Model/InstancingPipelineStage.js +86 -86
- package/Source/Scene/Model/LightingPipelineStage.js +4 -4
- package/Source/Scene/Model/MaterialPipelineStage.js +78 -93
- package/Source/Scene/Model/MetadataPickingPipelineStage.js +96 -0
- package/Source/Scene/Model/MetadataPipelineStage.js +39 -47
- package/Source/Scene/Model/Model.js +228 -75
- package/Source/Scene/Model/Model3DTileContent.js +37 -13
- package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
- package/Source/Scene/Model/ModelAnimationCollection.js +9 -9
- package/Source/Scene/Model/ModelArticulation.js +2 -2
- package/Source/Scene/Model/ModelArticulationStage.js +4 -4
- package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +11 -11
- package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +6 -6
- package/Source/Scene/Model/ModelColorPipelineStage.js +12 -13
- package/Source/Scene/Model/ModelDrawCommand.js +5 -5
- package/Source/Scene/Model/{buildDrawCommand.js → ModelDrawCommands.js} +85 -28
- package/Source/Scene/Model/ModelFeatureTable.js +5 -5
- package/Source/Scene/Model/ModelMatrixUpdateStage.js +24 -12
- package/Source/Scene/Model/ModelRenderResources.js +1 -1
- package/Source/Scene/Model/ModelRuntimeNode.js +15 -15
- package/Source/Scene/Model/ModelRuntimePrimitive.js +8 -5
- package/Source/Scene/Model/ModelSceneGraph.js +43 -43
- package/Source/Scene/Model/ModelSilhouettePipelineStage.js +4 -4
- package/Source/Scene/Model/ModelSkin.js +4 -4
- package/Source/Scene/Model/ModelSplitterPipelineStage.js +8 -9
- package/Source/Scene/Model/ModelUtility.js +5 -5
- package/Source/Scene/Model/MorphTargetsPipelineStage.js +18 -18
- package/Source/Scene/Model/NodeRenderResources.js +1 -1
- package/Source/Scene/Model/NodeStatisticsPipelineStage.js +1 -1
- package/Source/Scene/Model/PickingPipelineStage.js +5 -5
- package/Source/Scene/Model/PntsLoader.js +7 -7
- package/Source/Scene/Model/PointCloudStylingPipelineStage.js +22 -23
- package/Source/Scene/Model/PrimitiveOutlineGenerator.js +6 -6
- package/Source/Scene/Model/PrimitiveOutlinePipelineStage.js +7 -7
- package/Source/Scene/Model/PrimitiveRenderResources.js +3 -3
- package/Source/Scene/Model/PrimitiveStatisticsPipelineStage.js +1 -1
- package/Source/Scene/Model/SceneMode2DPipelineStage.js +23 -23
- package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +10 -14
- package/Source/Scene/Model/SkinningPipelineStage.js +5 -5
- package/Source/Scene/Model/StyleCommandsNeeded.js +1 -1
- package/Source/Scene/Model/TextureManager.js +2 -2
- package/Source/Scene/Model/TextureUniform.js +3 -3
- package/Source/Scene/Model/TilesetPipelineStage.js +2 -2
- package/Source/Scene/Model/VerticalExaggerationPipelineStage.js +4 -4
- package/Source/Scene/Model/WireframePipelineStage.js +7 -7
- package/Source/Scene/Model/pickModel.js +26 -26
- package/Source/Scene/ModelComponents.js +13 -4
- package/Source/Scene/Moon.js +6 -5
- package/Source/Scene/Multiple3DTileContent.js +15 -14
- package/Source/Scene/OIT.js +48 -97
- package/Source/Scene/OpenStreetMapImageryProvider.js +8 -7
- package/Source/Scene/OrderedGroundPrimitiveCollection.js +2 -2
- package/Source/Scene/Particle.js +3 -3
- package/Source/Scene/ParticleEmitter.js +1 -1
- package/Source/Scene/ParticleSystem.js +32 -32
- package/Source/Scene/PerInstanceColorAppearance.js +1 -1
- package/Source/Scene/PickDepth.js +16 -4
- package/Source/Scene/PickDepthFramebuffer.js +1 -1
- package/Source/Scene/PickFramebuffer.js +24 -12
- package/Source/Scene/PickedMetadataInfo.js +39 -0
- package/Source/Scene/Picking.js +270 -120
- package/Source/Scene/PntsParser.js +28 -28
- package/Source/Scene/PointCloud.js +39 -38
- package/Source/Scene/PointCloudEyeDomeLighting.js +6 -6
- package/Source/Scene/PointCloudShading.js +3 -3
- package/Source/Scene/PointPrimitive.js +31 -28
- package/Source/Scene/PointPrimitiveCollection.js +34 -33
- package/Source/Scene/Polyline.js +9 -9
- package/Source/Scene/PolylineCollection.js +55 -57
- package/Source/Scene/PolylineColorAppearance.js +3 -3
- package/Source/Scene/PolylineMaterialAppearance.js +3 -3
- package/Source/Scene/PostProcessStage.js +95 -115
- package/Source/Scene/PostProcessStageCollection.js +35 -41
- package/Source/Scene/PostProcessStageComposite.js +2 -2
- package/Source/Scene/PostProcessStageLibrary.js +5 -5
- package/Source/Scene/PostProcessStageTextureCache.js +10 -10
- package/Source/Scene/Primitive.js +93 -93
- package/Source/Scene/PrimitiveCollection.js +1 -1
- package/Source/Scene/PrimitiveLoadPlan.js +1 -1
- package/Source/Scene/PrimitivePipeline.js +30 -30
- package/Source/Scene/PropertyTable.js +5 -5
- package/Source/Scene/PropertyTextureProperty.js +36 -7
- package/Source/Scene/QuadtreePrimitive.js +56 -58
- package/Source/Scene/QuadtreeTile.js +4 -4
- package/Source/Scene/QuadtreeTileProvider.js +1 -1
- package/Source/Scene/ResourceCache.js +7 -7
- package/Source/Scene/ResourceCacheKey.js +15 -15
- package/Source/Scene/Scene.js +879 -657
- package/Source/Scene/SceneFramebuffer.js +2 -2
- package/Source/Scene/SceneTransforms.js +30 -30
- package/Source/Scene/SceneTransitioner.js +47 -47
- package/Source/Scene/ScreenSpaceCameraController.js +180 -154
- package/Source/Scene/SensorVolumePortionToDisplay.js +1 -1
- package/Source/Scene/ShadowMap.js +71 -72
- package/Source/Scene/ShadowMapShader.js +9 -9
- package/Source/Scene/ShadowVolumeAppearance.js +39 -39
- package/Source/Scene/SingleTileImageryProvider.js +3 -3
- package/Source/Scene/SkyAtmosphere.js +8 -8
- package/Source/Scene/SkyBox.js +7 -8
- package/Source/Scene/SpatialNode.js +13 -13
- package/Source/Scene/SphereEmitter.js +1 -1
- package/Source/Scene/StructuralMetadata.js +1 -1
- package/Source/Scene/StyleExpression.js +1 -1
- package/Source/Scene/Sun.js +11 -7
- package/Source/Scene/SunPostProcess.js +6 -6
- package/Source/Scene/TerrainFillMesh.js +157 -156
- package/Source/Scene/TextureAtlas.js +11 -11
- package/Source/Scene/TileBoundingRegion.js +31 -31
- package/Source/Scene/TileBoundingS2Cell.js +37 -40
- package/Source/Scene/TileBoundingSphere.js +2 -2
- package/Source/Scene/TileCoordinatesImageryProvider.js +3 -3
- package/Source/Scene/TileImagery.js +7 -11
- package/Source/Scene/TileMapServiceImageryProvider.js +26 -25
- package/Source/Scene/TileMetadata.js +4 -4
- package/Source/Scene/TileOrientedBoundingBox.js +6 -6
- package/Source/Scene/Tileset3DTileContent.js +1 -1
- package/Source/Scene/TilesetMetadata.js +4 -4
- package/Source/Scene/TimeDynamicImagery.js +3 -3
- package/Source/Scene/TimeDynamicPointCloud.js +9 -9
- package/Source/Scene/TranslucentTileClassification.js +48 -58
- package/Source/Scene/TweenCollection.js +9 -9
- package/Source/Scene/UrlTemplateImageryProvider.js +23 -23
- package/Source/Scene/Vector3DTileClampedPolylines.js +21 -21
- package/Source/Scene/Vector3DTileContent.js +38 -39
- package/Source/Scene/Vector3DTileGeometry.js +11 -8
- package/Source/Scene/Vector3DTilePoints.js +18 -22
- package/Source/Scene/Vector3DTilePolygons.js +6 -6
- package/Source/Scene/Vector3DTilePolylines.js +8 -8
- package/Source/Scene/Vector3DTilePrimitive.js +30 -31
- package/Source/Scene/View.js +111 -80
- package/Source/Scene/VoxelBoxShape.js +34 -34
- package/Source/Scene/VoxelCell.js +7 -7
- package/Source/Scene/VoxelContent.js +1 -1
- package/Source/Scene/VoxelCylinderShape.js +48 -48
- package/Source/Scene/VoxelEllipsoidShape.js +83 -97
- package/Source/Scene/VoxelPrimitive.js +80 -80
- package/Source/Scene/VoxelRenderResources.js +13 -13
- package/Source/Scene/VoxelTraversal.js +41 -41
- package/Source/Scene/WebMapServiceImageryProvider.js +12 -12
- package/Source/Scene/WebMapTileServiceImageryProvider.js +8 -8
- package/Source/Scene/buildVoxelDrawCommands.js +10 -14
- package/Source/Scene/computeFlyToLocationForRectangle.js +7 -5
- package/Source/Scene/createBillboardPointCallback.js +2 -2
- package/Source/Scene/createElevationBandMaterial.js +8 -8
- package/Source/Scene/createGooglePhotorealistic3DTileset.js +1 -1
- package/Source/Scene/createOsmBuildingsAsync.js +1 -1
- package/Source/Scene/createTangentSpaceDebugPrimitive.js +7 -7
- package/Source/Scene/findContentMetadata.js +2 -2
- package/Source/Scene/findTileMetadata.js +2 -2
- package/Source/Scene/getBinaryAccessor.js +1 -1
- package/Source/Scene/getClipAndStyleCode.js +1 -1
- package/Source/Scene/getClippingFunction.js +1 -1
- package/Source/Scene/getMetadataClassProperty.js +43 -0
- package/Source/Scene/parseBatchTable.js +21 -24
- package/Source/Scene/parseFeatureMetadataLegacy.js +3 -3
- package/Source/Scene/parseStructuralMetadata.js +3 -3
- package/Source/Scene/processVoxelProperties.js +28 -33
- package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.glsl +44 -0
- package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.js +44 -0
- package/Source/Shaders/Builtin/Functions/computeScattering.glsl +0 -1
- package/Source/Shaders/Builtin/Functions/computeScattering.js +0 -1
- package/Source/Shaders/Builtin/Functions/packDepth.glsl +2 -2
- package/Source/Shaders/Builtin/Functions/packDepth.js +2 -2
- package/Source/Shaders/Builtin/Functions/sphericalHarmonics.glsl +3 -1
- package/Source/Shaders/Builtin/Functions/sphericalHarmonics.js +3 -1
- package/Source/Shaders/Builtin/Functions/unpackDepth.glsl +3 -3
- package/Source/Shaders/Builtin/Functions/unpackDepth.js +3 -3
- package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl +1 -1
- package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.js +1 -1
- package/Source/Shaders/Builtin/Functions/writeLogDepth.glsl +2 -2
- package/Source/Shaders/Builtin/Functions/writeLogDepth.js +2 -2
- package/Source/Shaders/ComputeIrradianceFS.glsl +103 -0
- package/Source/Shaders/ComputeIrradianceFS.js +105 -0
- package/Source/Shaders/ComputeRadianceMapFS.glsl +107 -0
- package/Source/Shaders/ComputeRadianceMapFS.js +109 -0
- package/Source/Shaders/ConvolveSpecularMapFS.glsl +70 -0
- package/Source/Shaders/ConvolveSpecularMapFS.js +72 -0
- package/Source/Shaders/ConvolveSpecularMapVS.glsl +24 -0
- package/Source/Shaders/ConvolveSpecularMapVS.js +26 -0
- package/Source/Shaders/DepthPlaneVS.glsl +1 -1
- package/Source/Shaders/DepthPlaneVS.js +1 -1
- package/Source/Shaders/GlobeFS.glsl +1 -2
- package/Source/Shaders/GlobeFS.js +1 -2
- package/Source/Shaders/Model/AtmosphereStageFS.glsl +1 -4
- package/Source/Shaders/Model/AtmosphereStageFS.js +1 -4
- package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +2 -155
- package/Source/Shaders/Model/ImageBasedLightingStageFS.js +3 -156
- package/Source/Shaders/Model/LightingStageFS.glsl +3 -22
- package/Source/Shaders/Model/LightingStageFS.js +3 -22
- package/Source/Shaders/Model/ModelFS.glsl +26 -0
- package/Source/Shaders/Model/ModelFS.js +26 -0
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +59 -59
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +60 -60
- package/Source/Shaders/SkyBoxVS.glsl +0 -1
- package/Source/Shaders/SkyBoxVS.js +0 -1
- package/Source/Widget/CesiumWidget.js +785 -9
- package/Source/Workers/combineGeometry.js +3 -4
- package/Source/Workers/createCircleGeometry.js +2 -2
- package/Source/Workers/createCircleOutlineGeometry.js +2 -2
- package/Source/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
- package/Source/Workers/createCorridorOutlineGeometry.js +2 -2
- package/Source/Workers/createEllipsoidOutlineGeometry.js +1 -1
- package/Source/Workers/createGeometry.js +4 -5
- package/Source/Workers/createGroundPolylineGeometry.js +1 -1
- package/Source/Workers/createPolylineVolumeGeometry.js +2 -2
- package/Source/Workers/createPolylineVolumeOutlineGeometry.js +4 -4
- package/Source/Workers/createRectangleOutlineGeometry.js +1 -1
- package/Source/Workers/createSimplePolylineGeometry.js +2 -2
- package/Source/Workers/createTaskProcessorWorker.js +1 -1
- package/Source/Workers/createVectorTileClampedPolylines.js +30 -30
- package/Source/Workers/createVectorTileGeometries.js +18 -18
- package/Source/Workers/createVectorTilePoints.js +3 -3
- package/Source/Workers/createVectorTilePolygons.js +11 -11
- package/Source/Workers/createVectorTilePolylines.js +7 -7
- package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +29 -30
- package/Source/Workers/createVerticesFromQuantizedTerrainMesh.js +60 -60
- package/Source/Workers/decodeDraco.js +23 -23
- package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +4 -4
- package/Source/Workers/decodeI3S.js +53 -53
- package/Source/Workers/transcodeKTX2.js +9 -9
- package/Source/Workers/transferTypedArrayTest.js +1 -1
- package/Source/Workers/upsampleQuantizedTerrainMesh.js +37 -36
- package/index.d.ts +769 -47
- package/index.js +73 -51
- package/package.json +3 -3
|
@@ -1,13 +1,26 @@
|
|
|
1
|
+
import BoundingSphere from "../Core/BoundingSphere.js";
|
|
1
2
|
import Cartesian3 from "../Core/Cartesian3.js";
|
|
3
|
+
import Cartographic from "../Core/Cartographic.js";
|
|
2
4
|
import Clock from "../Core/Clock.js";
|
|
3
5
|
import defaultValue from "../Core/defaultValue.js";
|
|
4
6
|
import defined from "../Core/defined.js";
|
|
5
7
|
import destroyObject from "../Core/destroyObject.js";
|
|
6
8
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
7
9
|
import Ellipsoid from "../Core/Ellipsoid.js";
|
|
10
|
+
import Event from "../Core/Event.js";
|
|
11
|
+
import EventHelper from "../Core/EventHelper.js";
|
|
8
12
|
import FeatureDetection from "../Core/FeatureDetection.js";
|
|
9
13
|
import formatError from "../Core/formatError.js";
|
|
14
|
+
import HeadingPitchRange from "../Core/HeadingPitchRange.js";
|
|
15
|
+
import Matrix4 from "../Core/Matrix4.js";
|
|
16
|
+
import BoundingSphereState from "../DataSources/BoundingSphereState.js";
|
|
17
|
+
import DataSourceCollection from "../DataSources/DataSourceCollection.js";
|
|
18
|
+
import DataSourceDisplay from "../DataSources/DataSourceDisplay.js";
|
|
19
|
+
import EntityView from "../DataSources/EntityView.js";
|
|
10
20
|
import getElement from "../DataSources/getElement.js";
|
|
21
|
+
import Property from "../DataSources/Property.js";
|
|
22
|
+
import Cesium3DTileset from "../Scene/Cesium3DTileset.js";
|
|
23
|
+
import computeFlyToLocationForRectangle from "../Scene/computeFlyToLocationForRectangle.js";
|
|
11
24
|
import Globe from "../Scene/Globe.js";
|
|
12
25
|
import ImageryLayer from "../Scene/ImageryLayer.js";
|
|
13
26
|
import Moon from "../Scene/Moon.js";
|
|
@@ -18,6 +31,17 @@ import ShadowMode from "../Scene/ShadowMode.js";
|
|
|
18
31
|
import SkyAtmosphere from "../Scene/SkyAtmosphere.js";
|
|
19
32
|
import SkyBox from "../Scene/SkyBox.js";
|
|
20
33
|
import Sun from "../Scene/Sun.js";
|
|
34
|
+
import TimeDynamicPointCloud from "../Scene/TimeDynamicPointCloud.js";
|
|
35
|
+
import VoxelPrimitive from "../Scene/VoxelPrimitive.js";
|
|
36
|
+
|
|
37
|
+
function trackDataSourceClock(clock, dataSource) {
|
|
38
|
+
if (defined(dataSource)) {
|
|
39
|
+
const dataSourceClock = dataSource.clock;
|
|
40
|
+
if (defined(dataSourceClock)) {
|
|
41
|
+
dataSourceClock.getValue(clock);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
21
45
|
|
|
22
46
|
function startRenderLoop(widget) {
|
|
23
47
|
widget._renderLoopRunning = true;
|
|
@@ -118,6 +142,7 @@ function configureCameraFrustum(widget) {
|
|
|
118
142
|
* @param {Element|string} container The DOM element or ID that will contain the widget.
|
|
119
143
|
* @param {object} [options] Object with the following properties:
|
|
120
144
|
* @param {Clock} [options.clock=new Clock()] The clock to use to control current time.
|
|
145
|
+
* @param {boolean} [options.shouldAnimate=false] <code>true</code> if the clock should attempt to advance simulation time by default, <code>false</code> otherwise.
|
|
121
146
|
* @param {Ellipsoid} [options.ellipsoid=Ellipsoid.default] The default ellipsoid.
|
|
122
147
|
* @param {ImageryLayer|false} [options.baseLayer=ImageryLayer.fromWorldImagery()] The bottommost imagery layer applied to the globe. If set to <code>false</code>, no imagery provider will be added.
|
|
123
148
|
* @param {TerrainProvider} [options.terrainProvider=new EllipsoidTerrainProvider(options.ellipsoid)] The terrain provider.
|
|
@@ -133,14 +158,17 @@ function configureCameraFrustum(widget) {
|
|
|
133
158
|
* @param {boolean} [options.useBrowserRecommendedResolution=true] If true, render at the browser's recommended resolution and ignore <code>window.devicePixelRatio</code>.
|
|
134
159
|
* @param {number} [options.targetFrameRate] The target frame rate when using the default render loop.
|
|
135
160
|
* @param {boolean} [options.showRenderLoopErrors=true] If true, this widget will automatically display an HTML panel to the user containing the error, if a render loop error occurs.
|
|
161
|
+
* @param {boolean} [options.automaticallyTrackDataSourceClocks=true] If true, this widget will automatically track the clock settings of newly added DataSources, updating if the DataSource's clock changes. Set this to false if you want to configure the clock independently.
|
|
136
162
|
* @param {ContextOptions} [options.contextOptions] Context and WebGL creation properties passed to {@link Scene}.
|
|
137
163
|
* @param {Element|string} [options.creditContainer] The DOM element or ID that will contain the {@link CreditDisplay}. If not specified, the credits are added
|
|
138
164
|
* to the bottom of the widget itself.
|
|
139
165
|
* @param {Element|string} [options.creditViewport] The DOM element or ID that will contain the credit pop up created by the {@link CreditDisplay}. If not specified, it will appear over the widget itself.
|
|
166
|
+
* @param {DataSourceCollection} [options.dataSources=new DataSourceCollection()] The collection of data sources visualized by the widget. If this parameter is provided,
|
|
167
|
+
* the instance is assumed to be owned by the caller and will not be destroyed when the widget is destroyed.
|
|
140
168
|
* @param {boolean} [options.shadows=false] Determines if shadows are cast by light sources.
|
|
141
169
|
* @param {ShadowMode} [options.terrainShadows=ShadowMode.RECEIVE_ONLY] Determines if the terrain casts or receives shadows from light sources.
|
|
142
170
|
* @param {MapMode2D} [options.mapMode2D=MapMode2D.INFINITE_SCROLL] Determines if the 2D map is rotatable or can be scrolled infinitely in the horizontal direction.
|
|
143
|
-
* @param {boolean} [options.blurActiveElementOnCanvasFocus=true] If true, the active element will blur when the
|
|
171
|
+
* @param {boolean} [options.blurActiveElementOnCanvasFocus=true] If true, the active element will blur when the widget's canvas is clicked. Setting this to false is useful for cases when the canvas is clicked only for retrieving position or an entity data without actually meaning to set the canvas to be the active element.
|
|
144
172
|
* @param {boolean} [options.requestRenderMode=false] If true, rendering a frame will only occur when needed as determined by changes within the scene. Enabling improves performance of the application, but requires using {@link Scene#requestRender} to render a new frame explicitly in this mode. This will be necessary in many cases after making changes to the scene in other parts of the API. See {@link https://cesium.com/blog/2018/01/24/cesium-scene-rendering-performance/|Improving Performance with Explicit Rendering}.
|
|
145
173
|
* @param {number} [options.maximumRenderTimeChange=0.0] If requestRenderMode is true, this value defines the maximum change in simulation time allowed before a render is requested. See {@link https://cesium.com/blog/2018/01/24/cesium-scene-rendering-performance/|Improving Performance with Explicit Rendering}.
|
|
146
174
|
* @param {number} [options.msaaSamples=4] If provided, this value controls the rate of multisample antialiasing. Typical multisampling rates are 2, 4, and sometimes 8 samples per pixel. Higher sampling rates of MSAA may impact performance in exchange for improved visual quality. This value only applies to WebGL2 contexts that support multisample render targets. Set to 1 to disable MSAA.
|
|
@@ -192,7 +220,8 @@ function CesiumWidget(container, options) {
|
|
|
192
220
|
container.appendChild(element);
|
|
193
221
|
|
|
194
222
|
const canvas = document.createElement("canvas");
|
|
195
|
-
const supportsImageRenderingPixelated =
|
|
223
|
+
const supportsImageRenderingPixelated =
|
|
224
|
+
FeatureDetection.supportsImageRenderingPixelated();
|
|
196
225
|
this._supportsImageRenderingPixelated = supportsImageRenderingPixelated;
|
|
197
226
|
if (supportsImageRenderingPixelated) {
|
|
198
227
|
canvas.style.imageRendering = FeatureDetection.imageRenderingValue();
|
|
@@ -221,7 +250,7 @@ function CesiumWidget(container, options) {
|
|
|
221
250
|
|
|
222
251
|
const blurActiveElementOnCanvasFocus = defaultValue(
|
|
223
252
|
options.blurActiveElementOnCanvasFocus,
|
|
224
|
-
true
|
|
253
|
+
true,
|
|
225
254
|
);
|
|
226
255
|
|
|
227
256
|
if (blurActiveElementOnCanvasFocus) {
|
|
@@ -247,7 +276,7 @@ function CesiumWidget(container, options) {
|
|
|
247
276
|
|
|
248
277
|
const useBrowserRecommendedResolution = defaultValue(
|
|
249
278
|
options.useBrowserRecommendedResolution,
|
|
250
|
-
true
|
|
279
|
+
true,
|
|
251
280
|
);
|
|
252
281
|
|
|
253
282
|
this._element = element;
|
|
@@ -265,8 +294,23 @@ function CesiumWidget(container, options) {
|
|
|
265
294
|
this._resolutionScale = 1.0;
|
|
266
295
|
this._useBrowserRecommendedResolution = useBrowserRecommendedResolution;
|
|
267
296
|
this._forceResize = false;
|
|
297
|
+
this._entityView = undefined;
|
|
298
|
+
this._clockTrackedDataSource = undefined;
|
|
299
|
+
this._trackedEntity = undefined;
|
|
300
|
+
this._needTrackedEntityUpdate = false;
|
|
301
|
+
this._zoomIsFlight = false;
|
|
302
|
+
this._zoomTarget = undefined;
|
|
303
|
+
this._zoomPromise = undefined;
|
|
304
|
+
this._zoomOptions = undefined;
|
|
305
|
+
this._trackedEntityChanged = new Event();
|
|
306
|
+
this._allowDataSourcesToSuspendAnimation = true;
|
|
307
|
+
|
|
268
308
|
this._clock = defined(options.clock) ? options.clock : new Clock();
|
|
269
309
|
|
|
310
|
+
if (defined(options.shouldAnimate)) {
|
|
311
|
+
this._clock.shouldAnimate = options.shouldAnimate;
|
|
312
|
+
}
|
|
313
|
+
|
|
270
314
|
configureCanvasSize(this);
|
|
271
315
|
|
|
272
316
|
try {
|
|
@@ -303,7 +347,7 @@ function CesiumWidget(container, options) {
|
|
|
303
347
|
scene.globe = globe;
|
|
304
348
|
scene.globe.shadows = defaultValue(
|
|
305
349
|
options.terrainShadows,
|
|
306
|
-
ShadowMode.RECEIVE_ONLY
|
|
350
|
+
ShadowMode.RECEIVE_ONLY,
|
|
307
351
|
);
|
|
308
352
|
}
|
|
309
353
|
|
|
@@ -348,7 +392,7 @@ function CesiumWidget(container, options) {
|
|
|
348
392
|
//>>includeStart('debug', pragmas.debug);
|
|
349
393
|
if (defined(options.terrainProvider)) {
|
|
350
394
|
throw new DeveloperError(
|
|
351
|
-
"Specify either options.terrainProvider or options.terrain."
|
|
395
|
+
"Specify either options.terrainProvider or options.terrain.",
|
|
352
396
|
);
|
|
353
397
|
}
|
|
354
398
|
//>>includeEnd('debug')
|
|
@@ -370,7 +414,7 @@ function CesiumWidget(container, options) {
|
|
|
370
414
|
this._useDefaultRenderLoop = undefined;
|
|
371
415
|
this.useDefaultRenderLoop = defaultValue(
|
|
372
416
|
options.useDefaultRenderLoop,
|
|
373
|
-
true
|
|
417
|
+
true,
|
|
374
418
|
);
|
|
375
419
|
|
|
376
420
|
this._targetFrameRate = undefined;
|
|
@@ -387,6 +431,71 @@ function CesiumWidget(container, options) {
|
|
|
387
431
|
}
|
|
388
432
|
};
|
|
389
433
|
scene.renderError.addEventListener(this._onRenderError);
|
|
434
|
+
|
|
435
|
+
let dataSourceCollection = options.dataSources;
|
|
436
|
+
let destroyDataSourceCollection = false;
|
|
437
|
+
if (!defined(dataSourceCollection)) {
|
|
438
|
+
dataSourceCollection = new DataSourceCollection();
|
|
439
|
+
destroyDataSourceCollection = true;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
const dataSourceDisplay = new DataSourceDisplay({
|
|
443
|
+
scene: scene,
|
|
444
|
+
dataSourceCollection: dataSourceCollection,
|
|
445
|
+
});
|
|
446
|
+
|
|
447
|
+
const eventHelper = new EventHelper();
|
|
448
|
+
this._dataSourceChangedListeners = {};
|
|
449
|
+
this._automaticallyTrackDataSourceClocks =
|
|
450
|
+
options.automaticallyTrackDataSourceClocks ?? true;
|
|
451
|
+
|
|
452
|
+
this._dataSourceCollection = dataSourceCollection;
|
|
453
|
+
this._destroyDataSourceCollection = destroyDataSourceCollection;
|
|
454
|
+
this._dataSourceDisplay = dataSourceDisplay;
|
|
455
|
+
this._eventHelper = eventHelper;
|
|
456
|
+
this._canAnimateUpdateCallback = this._updateCanAnimate;
|
|
457
|
+
|
|
458
|
+
eventHelper.add(this._clock.onTick, CesiumWidget.prototype._onTick, this);
|
|
459
|
+
eventHelper.add(
|
|
460
|
+
scene.morphStart,
|
|
461
|
+
CesiumWidget.prototype._clearTrackedObject,
|
|
462
|
+
this,
|
|
463
|
+
);
|
|
464
|
+
|
|
465
|
+
//Listen to data source events in order to track clock changes.
|
|
466
|
+
eventHelper.add(
|
|
467
|
+
dataSourceCollection.dataSourceAdded,
|
|
468
|
+
CesiumWidget.prototype._onDataSourceAdded,
|
|
469
|
+
this,
|
|
470
|
+
);
|
|
471
|
+
eventHelper.add(
|
|
472
|
+
dataSourceCollection.dataSourceRemoved,
|
|
473
|
+
CesiumWidget.prototype._onDataSourceRemoved,
|
|
474
|
+
this,
|
|
475
|
+
);
|
|
476
|
+
|
|
477
|
+
eventHelper.add(scene.postRender, CesiumWidget.prototype._postRender, this);
|
|
478
|
+
|
|
479
|
+
// We need to subscribe to the data sources and collections so that we can clear the
|
|
480
|
+
// tracked object when it is removed from the scene.
|
|
481
|
+
// Subscribe to current data sources
|
|
482
|
+
const dataSourceLength = dataSourceCollection.length;
|
|
483
|
+
for (let i = 0; i < dataSourceLength; i++) {
|
|
484
|
+
this._dataSourceAdded(dataSourceCollection, dataSourceCollection.get(i));
|
|
485
|
+
}
|
|
486
|
+
this._dataSourceAdded(undefined, dataSourceDisplay.defaultDataSource);
|
|
487
|
+
|
|
488
|
+
// Hook up events so that we can subscribe to future sources.
|
|
489
|
+
eventHelper.add(
|
|
490
|
+
dataSourceCollection.dataSourceAdded,
|
|
491
|
+
CesiumWidget.prototype._dataSourceAdded,
|
|
492
|
+
this,
|
|
493
|
+
);
|
|
494
|
+
eventHelper.add(
|
|
495
|
+
dataSourceCollection.dataSourceRemoved,
|
|
496
|
+
CesiumWidget.prototype._dataSourceRemoved,
|
|
497
|
+
this,
|
|
498
|
+
);
|
|
390
499
|
} catch (error) {
|
|
391
500
|
if (showRenderLoopErrors) {
|
|
392
501
|
const title = "Error constructing CesiumWidget.";
|
|
@@ -504,6 +613,43 @@ Object.defineProperties(CesiumWidget.prototype, {
|
|
|
504
613
|
},
|
|
505
614
|
},
|
|
506
615
|
|
|
616
|
+
/**
|
|
617
|
+
* Gets the display used for {@link DataSource} visualization.
|
|
618
|
+
* @memberof CesiumWidget.prototype
|
|
619
|
+
* @type {DataSourceDisplay}
|
|
620
|
+
* @readonly
|
|
621
|
+
*/
|
|
622
|
+
dataSourceDisplay: {
|
|
623
|
+
get: function () {
|
|
624
|
+
return this._dataSourceDisplay;
|
|
625
|
+
},
|
|
626
|
+
},
|
|
627
|
+
|
|
628
|
+
/**
|
|
629
|
+
* Gets the collection of entities not tied to a particular data source.
|
|
630
|
+
* This is a shortcut to [dataSourceDisplay.defaultDataSource.entities]{@link CesiumWidget#dataSourceDisplay}.
|
|
631
|
+
* @memberof CesiumWidget.prototype
|
|
632
|
+
* @type {EntityCollection}
|
|
633
|
+
* @readonly
|
|
634
|
+
*/
|
|
635
|
+
entities: {
|
|
636
|
+
get: function () {
|
|
637
|
+
return this._dataSourceDisplay.defaultDataSource.entities;
|
|
638
|
+
},
|
|
639
|
+
},
|
|
640
|
+
|
|
641
|
+
/**
|
|
642
|
+
* Gets the set of {@link DataSource} instances to be visualized.
|
|
643
|
+
* @memberof CesiumWidget.prototype
|
|
644
|
+
* @type {DataSourceCollection}
|
|
645
|
+
* @readonly
|
|
646
|
+
*/
|
|
647
|
+
dataSources: {
|
|
648
|
+
get: function () {
|
|
649
|
+
return this._dataSourceCollection;
|
|
650
|
+
},
|
|
651
|
+
},
|
|
652
|
+
|
|
507
653
|
/**
|
|
508
654
|
* Gets the camera.
|
|
509
655
|
* @memberof CesiumWidget.prototype
|
|
@@ -573,7 +719,7 @@ Object.defineProperties(CesiumWidget.prototype, {
|
|
|
573
719
|
//>>includeStart('debug', pragmas.debug);
|
|
574
720
|
if (value <= 0) {
|
|
575
721
|
throw new DeveloperError(
|
|
576
|
-
"targetFrameRate must be greater than 0, or undefined."
|
|
722
|
+
"targetFrameRate must be greater than 0, or undefined.",
|
|
577
723
|
);
|
|
578
724
|
}
|
|
579
725
|
//>>includeEnd('debug');
|
|
@@ -661,6 +807,104 @@ Object.defineProperties(CesiumWidget.prototype, {
|
|
|
661
807
|
}
|
|
662
808
|
},
|
|
663
809
|
},
|
|
810
|
+
|
|
811
|
+
/**
|
|
812
|
+
* Gets or sets whether or not data sources can temporarily pause
|
|
813
|
+
* animation in order to avoid showing an incomplete picture to the user.
|
|
814
|
+
* For example, if asynchronous primitives are being processed in the
|
|
815
|
+
* background, the clock will not advance until the geometry is ready.
|
|
816
|
+
*
|
|
817
|
+
* @memberof CesiumWidget.prototype
|
|
818
|
+
*
|
|
819
|
+
* @type {boolean}
|
|
820
|
+
*/
|
|
821
|
+
allowDataSourcesToSuspendAnimation: {
|
|
822
|
+
get: function () {
|
|
823
|
+
return this._allowDataSourcesToSuspendAnimation;
|
|
824
|
+
},
|
|
825
|
+
set: function (value) {
|
|
826
|
+
this._allowDataSourcesToSuspendAnimation = value;
|
|
827
|
+
},
|
|
828
|
+
},
|
|
829
|
+
|
|
830
|
+
/**
|
|
831
|
+
* Gets or sets the Entity instance currently being tracked by the camera.
|
|
832
|
+
* @memberof CesiumWidget.prototype
|
|
833
|
+
* @type {Entity | undefined}
|
|
834
|
+
*/
|
|
835
|
+
trackedEntity: {
|
|
836
|
+
get: function () {
|
|
837
|
+
return this._trackedEntity;
|
|
838
|
+
},
|
|
839
|
+
set: function (value) {
|
|
840
|
+
if (this._trackedEntity !== value) {
|
|
841
|
+
this._trackedEntity = value;
|
|
842
|
+
|
|
843
|
+
//Cancel any pending zoom
|
|
844
|
+
cancelZoom(this);
|
|
845
|
+
|
|
846
|
+
const scene = this.scene;
|
|
847
|
+
const sceneMode = scene.mode;
|
|
848
|
+
|
|
849
|
+
//Stop tracking
|
|
850
|
+
if (!defined(value) || !defined(value.position)) {
|
|
851
|
+
this._needTrackedEntityUpdate = false;
|
|
852
|
+
if (
|
|
853
|
+
sceneMode === SceneMode.COLUMBUS_VIEW ||
|
|
854
|
+
sceneMode === SceneMode.SCENE2D
|
|
855
|
+
) {
|
|
856
|
+
scene.screenSpaceCameraController.enableTranslate = true;
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
if (
|
|
860
|
+
sceneMode === SceneMode.COLUMBUS_VIEW ||
|
|
861
|
+
sceneMode === SceneMode.SCENE3D
|
|
862
|
+
) {
|
|
863
|
+
scene.screenSpaceCameraController.enableTilt = true;
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
this._entityView = undefined;
|
|
867
|
+
this.camera.lookAtTransform(Matrix4.IDENTITY);
|
|
868
|
+
} else {
|
|
869
|
+
//We can't start tracking immediately, so we set a flag and start tracking
|
|
870
|
+
//when the bounding sphere is ready (most likely next frame).
|
|
871
|
+
this._needTrackedEntityUpdate = true;
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
this._trackedEntityChanged.raiseEvent(value);
|
|
875
|
+
this.scene.requestRender();
|
|
876
|
+
}
|
|
877
|
+
},
|
|
878
|
+
},
|
|
879
|
+
|
|
880
|
+
/**
|
|
881
|
+
* Gets the event that is raised when the tracked entity changes.
|
|
882
|
+
* @memberof CesiumWidget.prototype
|
|
883
|
+
* @type {Event}
|
|
884
|
+
* @readonly
|
|
885
|
+
*/
|
|
886
|
+
trackedEntityChanged: {
|
|
887
|
+
get: function () {
|
|
888
|
+
return this._trackedEntityChanged;
|
|
889
|
+
},
|
|
890
|
+
},
|
|
891
|
+
|
|
892
|
+
/**
|
|
893
|
+
* Gets or sets the data source to track with the widget's clock.
|
|
894
|
+
* @memberof CesiumWidget.prototype
|
|
895
|
+
* @type {DataSource}
|
|
896
|
+
*/
|
|
897
|
+
clockTrackedDataSource: {
|
|
898
|
+
get: function () {
|
|
899
|
+
return this._clockTrackedDataSource;
|
|
900
|
+
},
|
|
901
|
+
set: function (value) {
|
|
902
|
+
if (this._clockTrackedDataSource !== value) {
|
|
903
|
+
this._clockTrackedDataSource = value;
|
|
904
|
+
trackDataSourceClock(this.clock, value);
|
|
905
|
+
}
|
|
906
|
+
},
|
|
907
|
+
},
|
|
664
908
|
});
|
|
665
909
|
|
|
666
910
|
/**
|
|
@@ -693,7 +937,7 @@ CesiumWidget.prototype.showErrorPanel = function (title, message, error) {
|
|
|
693
937
|
function resizeCallback() {
|
|
694
938
|
errorPanelScroller.style.maxHeight = `${Math.max(
|
|
695
939
|
Math.round(element.clientHeight * 0.9 - 100),
|
|
696
|
-
30
|
|
940
|
+
30,
|
|
697
941
|
)}px`;
|
|
698
942
|
}
|
|
699
943
|
resizeCallback();
|
|
@@ -784,12 +1028,29 @@ CesiumWidget.prototype.isDestroyed = function () {
|
|
|
784
1028
|
* removing the widget from layout.
|
|
785
1029
|
*/
|
|
786
1030
|
CesiumWidget.prototype.destroy = function () {
|
|
1031
|
+
// Unsubscribe from data sources
|
|
1032
|
+
const dataSources = this.dataSources;
|
|
1033
|
+
const dataSourceLength = dataSources.length;
|
|
1034
|
+
for (let i = 0; i < dataSourceLength; i++) {
|
|
1035
|
+
this._dataSourceRemoved(dataSources, dataSources.get(i));
|
|
1036
|
+
}
|
|
1037
|
+
this._dataSourceRemoved(undefined, this._dataSourceDisplay.defaultDataSource);
|
|
1038
|
+
|
|
1039
|
+
this._dataSourceDisplay = this._dataSourceDisplay.destroy();
|
|
1040
|
+
|
|
787
1041
|
if (defined(this._scene)) {
|
|
788
1042
|
this._scene.renderError.removeEventListener(this._onRenderError);
|
|
789
1043
|
this._scene = this._scene.destroy();
|
|
790
1044
|
}
|
|
791
1045
|
this._container.removeChild(this._element);
|
|
792
1046
|
this._creditContainer.removeChild(this._innerCreditContainer);
|
|
1047
|
+
|
|
1048
|
+
this._eventHelper.removeAll();
|
|
1049
|
+
|
|
1050
|
+
if (this._destroyDataSourceCollection) {
|
|
1051
|
+
this._dataSourceCollection = this._dataSourceCollection.destroy();
|
|
1052
|
+
}
|
|
1053
|
+
|
|
793
1054
|
destroyObject(this);
|
|
794
1055
|
};
|
|
795
1056
|
|
|
@@ -829,4 +1090,519 @@ CesiumWidget.prototype.render = function () {
|
|
|
829
1090
|
this._clock.tick();
|
|
830
1091
|
}
|
|
831
1092
|
};
|
|
1093
|
+
|
|
1094
|
+
/**
|
|
1095
|
+
* @private
|
|
1096
|
+
*/
|
|
1097
|
+
CesiumWidget.prototype._dataSourceAdded = function (
|
|
1098
|
+
dataSourceCollection,
|
|
1099
|
+
dataSource,
|
|
1100
|
+
) {
|
|
1101
|
+
const entityCollection = dataSource.entities;
|
|
1102
|
+
entityCollection.collectionChanged.addEventListener(
|
|
1103
|
+
CesiumWidget.prototype._onEntityCollectionChanged,
|
|
1104
|
+
this,
|
|
1105
|
+
);
|
|
1106
|
+
};
|
|
1107
|
+
|
|
1108
|
+
/**
|
|
1109
|
+
* @private
|
|
1110
|
+
*/
|
|
1111
|
+
CesiumWidget.prototype._dataSourceRemoved = function (
|
|
1112
|
+
dataSourceCollection,
|
|
1113
|
+
dataSource,
|
|
1114
|
+
) {
|
|
1115
|
+
const entityCollection = dataSource.entities;
|
|
1116
|
+
entityCollection.collectionChanged.removeEventListener(
|
|
1117
|
+
CesiumWidget.prototype._onEntityCollectionChanged,
|
|
1118
|
+
this,
|
|
1119
|
+
);
|
|
1120
|
+
|
|
1121
|
+
if (defined(this.trackedEntity)) {
|
|
1122
|
+
if (
|
|
1123
|
+
entityCollection.getById(this.trackedEntity.id) === this.trackedEntity
|
|
1124
|
+
) {
|
|
1125
|
+
this.trackedEntity = undefined;
|
|
1126
|
+
}
|
|
1127
|
+
}
|
|
1128
|
+
};
|
|
1129
|
+
|
|
1130
|
+
/**
|
|
1131
|
+
* @private
|
|
1132
|
+
*/
|
|
1133
|
+
CesiumWidget.prototype._updateCanAnimate = function (isUpdated) {
|
|
1134
|
+
this._clock.canAnimate = isUpdated;
|
|
1135
|
+
};
|
|
1136
|
+
|
|
1137
|
+
const boundingSphereScratch = new BoundingSphere();
|
|
1138
|
+
|
|
1139
|
+
/**
|
|
1140
|
+
* @private
|
|
1141
|
+
*/
|
|
1142
|
+
CesiumWidget.prototype._onTick = function (clock) {
|
|
1143
|
+
const time = clock.currentTime;
|
|
1144
|
+
|
|
1145
|
+
const isUpdated = this._dataSourceDisplay.update(time);
|
|
1146
|
+
if (this._allowDataSourcesToSuspendAnimation) {
|
|
1147
|
+
this._canAnimateUpdateCallback(isUpdated);
|
|
1148
|
+
}
|
|
1149
|
+
|
|
1150
|
+
const entityView = this._entityView;
|
|
1151
|
+
if (defined(entityView)) {
|
|
1152
|
+
const trackedEntity = this._trackedEntity;
|
|
1153
|
+
const trackedState = this._dataSourceDisplay.getBoundingSphere(
|
|
1154
|
+
trackedEntity,
|
|
1155
|
+
true,
|
|
1156
|
+
boundingSphereScratch,
|
|
1157
|
+
);
|
|
1158
|
+
if (trackedState === BoundingSphereState.DONE) {
|
|
1159
|
+
entityView.update(time, boundingSphereScratch);
|
|
1160
|
+
}
|
|
1161
|
+
}
|
|
1162
|
+
};
|
|
1163
|
+
|
|
1164
|
+
/**
|
|
1165
|
+
* @private
|
|
1166
|
+
*/
|
|
1167
|
+
CesiumWidget.prototype._onEntityCollectionChanged = function (
|
|
1168
|
+
collection,
|
|
1169
|
+
added,
|
|
1170
|
+
removed,
|
|
1171
|
+
) {
|
|
1172
|
+
const length = removed.length;
|
|
1173
|
+
for (let i = 0; i < length; i++) {
|
|
1174
|
+
const removedObject = removed[i];
|
|
1175
|
+
if (this.trackedEntity === removedObject) {
|
|
1176
|
+
this.trackedEntity = undefined;
|
|
1177
|
+
}
|
|
1178
|
+
}
|
|
1179
|
+
};
|
|
1180
|
+
|
|
1181
|
+
/**
|
|
1182
|
+
* @private
|
|
1183
|
+
*/
|
|
1184
|
+
CesiumWidget.prototype._clearTrackedObject = function () {
|
|
1185
|
+
this.trackedEntity = undefined;
|
|
1186
|
+
};
|
|
1187
|
+
|
|
1188
|
+
/**
|
|
1189
|
+
* @private
|
|
1190
|
+
*/
|
|
1191
|
+
CesiumWidget.prototype._onDataSourceChanged = function (dataSource) {
|
|
1192
|
+
if (this.clockTrackedDataSource === dataSource) {
|
|
1193
|
+
trackDataSourceClock(this.clock, dataSource);
|
|
1194
|
+
}
|
|
1195
|
+
};
|
|
1196
|
+
|
|
1197
|
+
/**
|
|
1198
|
+
* @private
|
|
1199
|
+
*/
|
|
1200
|
+
CesiumWidget.prototype._onDataSourceAdded = function (
|
|
1201
|
+
dataSourceCollection,
|
|
1202
|
+
dataSource,
|
|
1203
|
+
) {
|
|
1204
|
+
if (this._automaticallyTrackDataSourceClocks) {
|
|
1205
|
+
this.clockTrackedDataSource = dataSource;
|
|
1206
|
+
}
|
|
1207
|
+
const id = dataSource.entities.id;
|
|
1208
|
+
const removalFunc = this._eventHelper.add(
|
|
1209
|
+
dataSource.changedEvent,
|
|
1210
|
+
CesiumWidget.prototype._onDataSourceChanged,
|
|
1211
|
+
this,
|
|
1212
|
+
);
|
|
1213
|
+
this._dataSourceChangedListeners[id] = removalFunc;
|
|
1214
|
+
};
|
|
1215
|
+
|
|
1216
|
+
/**
|
|
1217
|
+
* @private
|
|
1218
|
+
*/
|
|
1219
|
+
CesiumWidget.prototype._onDataSourceRemoved = function (
|
|
1220
|
+
dataSourceCollection,
|
|
1221
|
+
dataSource,
|
|
1222
|
+
) {
|
|
1223
|
+
const resetClock = this.clockTrackedDataSource === dataSource;
|
|
1224
|
+
const id = dataSource.entities.id;
|
|
1225
|
+
this._dataSourceChangedListeners[id]();
|
|
1226
|
+
this._dataSourceChangedListeners[id] = undefined;
|
|
1227
|
+
if (resetClock) {
|
|
1228
|
+
const numDataSources = dataSourceCollection.length;
|
|
1229
|
+
if (this._automaticallyTrackDataSourceClocks && numDataSources > 0) {
|
|
1230
|
+
this.clockTrackedDataSource = dataSourceCollection.get(
|
|
1231
|
+
numDataSources - 1,
|
|
1232
|
+
);
|
|
1233
|
+
} else {
|
|
1234
|
+
this.clockTrackedDataSource = undefined;
|
|
1235
|
+
}
|
|
1236
|
+
}
|
|
1237
|
+
};
|
|
1238
|
+
|
|
1239
|
+
/**
|
|
1240
|
+
* Asynchronously sets the camera to view the provided entity, entities, or data source.
|
|
1241
|
+
* If the data source is still in the process of loading or the visualization is otherwise still loading,
|
|
1242
|
+
* this method waits for the data to be ready before performing the zoom.
|
|
1243
|
+
*
|
|
1244
|
+
* <p>The offset is heading/pitch/range in the local east-north-up reference frame centered at the center of the bounding sphere.
|
|
1245
|
+
* The heading and the pitch angles are defined in the local east-north-up reference frame.
|
|
1246
|
+
* The heading is the angle from y axis and increasing towards the x axis. Pitch is the rotation from the xy-plane. Positive pitch
|
|
1247
|
+
* angles are above the plane. Negative pitch angles are below the plane. The range is the distance from the center. If the range is
|
|
1248
|
+
* zero, a range will be computed such that the whole bounding sphere is visible.</p>
|
|
1249
|
+
*
|
|
1250
|
+
* <p>In 2D, there must be a top down view. The camera will be placed above the target looking down. The height above the
|
|
1251
|
+
* target will be the range. The heading will be determined from the offset. If the heading cannot be
|
|
1252
|
+
* determined from the offset, the heading will be north.</p>
|
|
1253
|
+
*
|
|
1254
|
+
* @param {Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|Promise<Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|VoxelPrimitive>} target The entity, array of entities, entity collection, data source, Cesium3DTileset, point cloud, or imagery layer to view. You can also pass a promise that resolves to one of the previously mentioned types.
|
|
1255
|
+
* @param {HeadingPitchRange} [offset] The offset from the center of the entity in the local east-north-up reference frame.
|
|
1256
|
+
* @returns {Promise<boolean>} A Promise that resolves to true if the zoom was successful or false if the target is not currently visualized in the scene or the zoom was cancelled.
|
|
1257
|
+
*/
|
|
1258
|
+
CesiumWidget.prototype.zoomTo = function (target, offset) {
|
|
1259
|
+
const options = {
|
|
1260
|
+
offset: offset,
|
|
1261
|
+
};
|
|
1262
|
+
return zoomToOrFly(this, target, options, false);
|
|
1263
|
+
};
|
|
1264
|
+
|
|
1265
|
+
/**
|
|
1266
|
+
* Flies the camera to the provided entity, entities, or data source.
|
|
1267
|
+
* If the data source is still in the process of loading or the visualization is otherwise still loading,
|
|
1268
|
+
* this method waits for the data to be ready before performing the flight.
|
|
1269
|
+
*
|
|
1270
|
+
* <p>The offset is heading/pitch/range in the local east-north-up reference frame centered at the center of the bounding sphere.
|
|
1271
|
+
* The heading and the pitch angles are defined in the local east-north-up reference frame.
|
|
1272
|
+
* The heading is the angle from y axis and increasing towards the x axis. Pitch is the rotation from the xy-plane. Positive pitch
|
|
1273
|
+
* angles are above the plane. Negative pitch angles are below the plane. The range is the distance from the center. If the range is
|
|
1274
|
+
* zero, a range will be computed such that the whole bounding sphere is visible.</p>
|
|
1275
|
+
*
|
|
1276
|
+
* <p>In 2D, there must be a top down view. The camera will be placed above the target looking down. The height above the
|
|
1277
|
+
* target will be the range. The heading will be determined from the offset. If the heading cannot be
|
|
1278
|
+
* determined from the offset, the heading will be north.</p>
|
|
1279
|
+
*
|
|
1280
|
+
* @param {Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|Promise<Entity|Entity[]|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|VoxelPrimitive>} target The entity, array of entities, entity collection, data source, Cesium3DTileset, point cloud, or imagery layer to view. You can also pass a promise that resolves to one of the previously mentioned types.
|
|
1281
|
+
* @param {object} [options] Object with the following properties:
|
|
1282
|
+
* @param {number} [options.duration=3.0] The duration of the flight in seconds.
|
|
1283
|
+
* @param {number} [options.maximumHeight] The maximum height at the peak of the flight.
|
|
1284
|
+
* @param {HeadingPitchRange} [options.offset] The offset from the target in the local east-north-up reference frame centered at the target.
|
|
1285
|
+
* @returns {Promise<boolean>} A Promise that resolves to true if the flight was successful or false if the target is not currently visualized in the scene or the flight was cancelled. //TODO: Cleanup entity mentions
|
|
1286
|
+
*/
|
|
1287
|
+
CesiumWidget.prototype.flyTo = function (target, options) {
|
|
1288
|
+
return zoomToOrFly(this, target, options, true);
|
|
1289
|
+
};
|
|
1290
|
+
|
|
1291
|
+
function zoomToOrFly(that, zoomTarget, options, isFlight) {
|
|
1292
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1293
|
+
if (!defined(zoomTarget)) {
|
|
1294
|
+
throw new DeveloperError("zoomTarget is required.");
|
|
1295
|
+
}
|
|
1296
|
+
//>>includeEnd('debug');
|
|
1297
|
+
|
|
1298
|
+
cancelZoom(that);
|
|
1299
|
+
|
|
1300
|
+
//We can't actually perform the zoom until all visualization is ready and
|
|
1301
|
+
//bounding spheres have been computed. Therefore we create and return
|
|
1302
|
+
//a deferred which will be resolved as part of the post-render step in the
|
|
1303
|
+
//frame that actually performs the zoom.
|
|
1304
|
+
const zoomPromise = new Promise((resolve) => {
|
|
1305
|
+
that._completeZoom = function (value) {
|
|
1306
|
+
resolve(value);
|
|
1307
|
+
};
|
|
1308
|
+
});
|
|
1309
|
+
that._zoomPromise = zoomPromise;
|
|
1310
|
+
that._zoomIsFlight = isFlight;
|
|
1311
|
+
that._zoomOptions = options;
|
|
1312
|
+
|
|
1313
|
+
Promise.resolve(zoomTarget).then(function (zoomTarget) {
|
|
1314
|
+
//Only perform the zoom if it wasn't cancelled before the promise resolved.
|
|
1315
|
+
if (that._zoomPromise !== zoomPromise) {
|
|
1316
|
+
return;
|
|
1317
|
+
}
|
|
1318
|
+
|
|
1319
|
+
//If the zoom target is a rectangular imagery in an ImageLayer
|
|
1320
|
+
if (zoomTarget instanceof ImageryLayer) {
|
|
1321
|
+
let rectanglePromise;
|
|
1322
|
+
|
|
1323
|
+
if (defined(zoomTarget.imageryProvider)) {
|
|
1324
|
+
rectanglePromise = Promise.resolve(zoomTarget.getImageryRectangle());
|
|
1325
|
+
} else {
|
|
1326
|
+
rectanglePromise = new Promise((resolve) => {
|
|
1327
|
+
const removeListener = zoomTarget.readyEvent.addEventListener(() => {
|
|
1328
|
+
removeListener();
|
|
1329
|
+
resolve(zoomTarget.getImageryRectangle());
|
|
1330
|
+
});
|
|
1331
|
+
});
|
|
1332
|
+
}
|
|
1333
|
+
rectanglePromise
|
|
1334
|
+
.then(function (rectangle) {
|
|
1335
|
+
return computeFlyToLocationForRectangle(rectangle, that.scene);
|
|
1336
|
+
})
|
|
1337
|
+
.then(function (position) {
|
|
1338
|
+
//Only perform the zoom if it wasn't cancelled before the promise was resolved
|
|
1339
|
+
if (that._zoomPromise === zoomPromise) {
|
|
1340
|
+
that._zoomTarget = position;
|
|
1341
|
+
}
|
|
1342
|
+
});
|
|
1343
|
+
return;
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
if (
|
|
1347
|
+
zoomTarget instanceof Cesium3DTileset ||
|
|
1348
|
+
zoomTarget instanceof TimeDynamicPointCloud ||
|
|
1349
|
+
zoomTarget instanceof VoxelPrimitive
|
|
1350
|
+
) {
|
|
1351
|
+
that._zoomTarget = zoomTarget;
|
|
1352
|
+
return;
|
|
1353
|
+
}
|
|
1354
|
+
|
|
1355
|
+
//If the zoom target is a data source, and it's in the middle of loading, wait for it to finish loading.
|
|
1356
|
+
if (zoomTarget.isLoading && defined(zoomTarget.loadingEvent)) {
|
|
1357
|
+
const removeEvent = zoomTarget.loadingEvent.addEventListener(function () {
|
|
1358
|
+
removeEvent();
|
|
1359
|
+
|
|
1360
|
+
//Only perform the zoom if it wasn't cancelled before the data source finished.
|
|
1361
|
+
if (that._zoomPromise === zoomPromise) {
|
|
1362
|
+
that._zoomTarget = zoomTarget.entities.values.slice(0);
|
|
1363
|
+
}
|
|
1364
|
+
});
|
|
1365
|
+
return;
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
//Zoom target is already an array, just copy it and return.
|
|
1369
|
+
if (Array.isArray(zoomTarget)) {
|
|
1370
|
+
that._zoomTarget = zoomTarget.slice(0);
|
|
1371
|
+
return;
|
|
1372
|
+
}
|
|
1373
|
+
|
|
1374
|
+
//If zoomTarget is an EntityCollection, this will retrieve the array
|
|
1375
|
+
zoomTarget = zoomTarget.values ?? zoomTarget;
|
|
1376
|
+
|
|
1377
|
+
//If zoomTarget is a DataSource, this will retrieve the array.
|
|
1378
|
+
if (defined(zoomTarget.entities)) {
|
|
1379
|
+
zoomTarget = zoomTarget.entities.values;
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
//Zoom target is already an array, just copy it and return.
|
|
1383
|
+
if (Array.isArray(zoomTarget)) {
|
|
1384
|
+
that._zoomTarget = zoomTarget.slice(0);
|
|
1385
|
+
} else {
|
|
1386
|
+
//Single entity
|
|
1387
|
+
that._zoomTarget = [zoomTarget];
|
|
1388
|
+
}
|
|
1389
|
+
});
|
|
1390
|
+
|
|
1391
|
+
that.scene.requestRender();
|
|
1392
|
+
return zoomPromise;
|
|
1393
|
+
}
|
|
1394
|
+
|
|
1395
|
+
function clearZoom(widget) {
|
|
1396
|
+
widget._zoomPromise = undefined;
|
|
1397
|
+
widget._zoomTarget = undefined;
|
|
1398
|
+
widget._zoomOptions = undefined;
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
function cancelZoom(widget) {
|
|
1402
|
+
const zoomPromise = widget._zoomPromise;
|
|
1403
|
+
if (defined(zoomPromise)) {
|
|
1404
|
+
clearZoom(widget);
|
|
1405
|
+
widget._completeZoom(false);
|
|
1406
|
+
}
|
|
1407
|
+
}
|
|
1408
|
+
|
|
1409
|
+
/**
|
|
1410
|
+
* @private
|
|
1411
|
+
*/
|
|
1412
|
+
CesiumWidget.prototype._postRender = function () {
|
|
1413
|
+
updateZoomTarget(this);
|
|
1414
|
+
updateTrackedEntity(this);
|
|
1415
|
+
};
|
|
1416
|
+
|
|
1417
|
+
function updateZoomTarget(widget) {
|
|
1418
|
+
const target = widget._zoomTarget;
|
|
1419
|
+
if (!defined(target) || widget.scene.mode === SceneMode.MORPHING) {
|
|
1420
|
+
return;
|
|
1421
|
+
}
|
|
1422
|
+
|
|
1423
|
+
const scene = widget.scene;
|
|
1424
|
+
const camera = scene.camera;
|
|
1425
|
+
const zoomOptions = widget._zoomOptions ?? {};
|
|
1426
|
+
let options;
|
|
1427
|
+
function zoomToBoundingSphere(boundingSphere) {
|
|
1428
|
+
// If offset was originally undefined then give it base value instead of empty object
|
|
1429
|
+
if (!defined(zoomOptions.offset)) {
|
|
1430
|
+
zoomOptions.offset = new HeadingPitchRange(
|
|
1431
|
+
0.0,
|
|
1432
|
+
-0.5,
|
|
1433
|
+
boundingSphere.radius,
|
|
1434
|
+
);
|
|
1435
|
+
}
|
|
1436
|
+
|
|
1437
|
+
options = {
|
|
1438
|
+
offset: zoomOptions.offset,
|
|
1439
|
+
duration: zoomOptions.duration,
|
|
1440
|
+
maximumHeight: zoomOptions.maximumHeight,
|
|
1441
|
+
complete: function () {
|
|
1442
|
+
widget._completeZoom(true);
|
|
1443
|
+
},
|
|
1444
|
+
cancel: function () {
|
|
1445
|
+
widget._completeZoom(false);
|
|
1446
|
+
},
|
|
1447
|
+
};
|
|
1448
|
+
|
|
1449
|
+
if (widget._zoomIsFlight) {
|
|
1450
|
+
camera.flyToBoundingSphere(target.boundingSphere, options);
|
|
1451
|
+
} else {
|
|
1452
|
+
camera.viewBoundingSphere(boundingSphere, zoomOptions.offset);
|
|
1453
|
+
camera.lookAtTransform(Matrix4.IDENTITY);
|
|
1454
|
+
|
|
1455
|
+
// Finish the promise
|
|
1456
|
+
widget._completeZoom(true);
|
|
1457
|
+
}
|
|
1458
|
+
|
|
1459
|
+
clearZoom(widget);
|
|
1460
|
+
}
|
|
1461
|
+
|
|
1462
|
+
if (target instanceof TimeDynamicPointCloud) {
|
|
1463
|
+
if (defined(target.boundingSphere)) {
|
|
1464
|
+
zoomToBoundingSphere(target.boundingSphere);
|
|
1465
|
+
return;
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1468
|
+
// Otherwise, the first "frame" needs to have been rendered
|
|
1469
|
+
const removeEventListener = target.frameChanged.addEventListener(
|
|
1470
|
+
function (timeDynamicPointCloud) {
|
|
1471
|
+
zoomToBoundingSphere(timeDynamicPointCloud.boundingSphere);
|
|
1472
|
+
removeEventListener();
|
|
1473
|
+
},
|
|
1474
|
+
);
|
|
1475
|
+
return;
|
|
1476
|
+
}
|
|
1477
|
+
|
|
1478
|
+
if (target instanceof Cesium3DTileset || target instanceof VoxelPrimitive) {
|
|
1479
|
+
zoomToBoundingSphere(target.boundingSphere);
|
|
1480
|
+
return;
|
|
1481
|
+
}
|
|
1482
|
+
|
|
1483
|
+
// If zoomTarget was an ImageryLayer
|
|
1484
|
+
if (target instanceof Cartographic) {
|
|
1485
|
+
options = {
|
|
1486
|
+
destination: scene.ellipsoid.cartographicToCartesian(target),
|
|
1487
|
+
duration: zoomOptions.duration,
|
|
1488
|
+
maximumHeight: zoomOptions.maximumHeight,
|
|
1489
|
+
complete: function () {
|
|
1490
|
+
widget._completeZoom(true);
|
|
1491
|
+
},
|
|
1492
|
+
cancel: function () {
|
|
1493
|
+
widget._completeZoom(false);
|
|
1494
|
+
},
|
|
1495
|
+
};
|
|
1496
|
+
|
|
1497
|
+
if (widget._zoomIsFlight) {
|
|
1498
|
+
camera.flyTo(options);
|
|
1499
|
+
} else {
|
|
1500
|
+
camera.setView(options);
|
|
1501
|
+
widget._completeZoom(true);
|
|
1502
|
+
}
|
|
1503
|
+
clearZoom(widget);
|
|
1504
|
+
return;
|
|
1505
|
+
}
|
|
1506
|
+
|
|
1507
|
+
const entities = target;
|
|
1508
|
+
|
|
1509
|
+
const boundingSpheres = [];
|
|
1510
|
+
for (let i = 0, len = entities.length; i < len; i++) {
|
|
1511
|
+
const state = widget._dataSourceDisplay.getBoundingSphere(
|
|
1512
|
+
entities[i],
|
|
1513
|
+
false,
|
|
1514
|
+
boundingSphereScratch,
|
|
1515
|
+
);
|
|
1516
|
+
|
|
1517
|
+
if (state === BoundingSphereState.PENDING) {
|
|
1518
|
+
return;
|
|
1519
|
+
} else if (state !== BoundingSphereState.FAILED) {
|
|
1520
|
+
boundingSpheres.push(BoundingSphere.clone(boundingSphereScratch));
|
|
1521
|
+
}
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
if (boundingSpheres.length === 0) {
|
|
1525
|
+
cancelZoom(widget);
|
|
1526
|
+
return;
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
// Stop tracking the current entity.
|
|
1530
|
+
widget.trackedEntity = undefined;
|
|
1531
|
+
|
|
1532
|
+
const boundingSphere = BoundingSphere.fromBoundingSpheres(boundingSpheres);
|
|
1533
|
+
|
|
1534
|
+
if (!widget._zoomIsFlight) {
|
|
1535
|
+
camera.viewBoundingSphere(boundingSphere, zoomOptions.offset);
|
|
1536
|
+
camera.lookAtTransform(Matrix4.IDENTITY);
|
|
1537
|
+
clearZoom(widget);
|
|
1538
|
+
widget._completeZoom(true);
|
|
1539
|
+
} else {
|
|
1540
|
+
clearZoom(widget);
|
|
1541
|
+
camera.flyToBoundingSphere(boundingSphere, {
|
|
1542
|
+
duration: zoomOptions.duration,
|
|
1543
|
+
maximumHeight: zoomOptions.maximumHeight,
|
|
1544
|
+
complete: function () {
|
|
1545
|
+
widget._completeZoom(true);
|
|
1546
|
+
},
|
|
1547
|
+
cancel: function () {
|
|
1548
|
+
widget._completeZoom(false);
|
|
1549
|
+
},
|
|
1550
|
+
offset: zoomOptions.offset,
|
|
1551
|
+
});
|
|
1552
|
+
}
|
|
1553
|
+
}
|
|
1554
|
+
|
|
1555
|
+
function updateTrackedEntity(widget) {
|
|
1556
|
+
if (!widget._needTrackedEntityUpdate) {
|
|
1557
|
+
return;
|
|
1558
|
+
}
|
|
1559
|
+
|
|
1560
|
+
const trackedEntity = widget._trackedEntity;
|
|
1561
|
+
const currentTime = widget.clock.currentTime;
|
|
1562
|
+
|
|
1563
|
+
//Verify we have a current position at this time. This is only triggered if a position
|
|
1564
|
+
//has become undefined after trackedEntity is set but before the boundingSphere has been
|
|
1565
|
+
//computed. In this case, we will track the entity once it comes back into existence.
|
|
1566
|
+
const currentPosition = Property.getValueOrUndefined(
|
|
1567
|
+
trackedEntity.position,
|
|
1568
|
+
currentTime,
|
|
1569
|
+
);
|
|
1570
|
+
|
|
1571
|
+
if (!defined(currentPosition)) {
|
|
1572
|
+
return;
|
|
1573
|
+
}
|
|
1574
|
+
|
|
1575
|
+
const scene = widget.scene;
|
|
1576
|
+
|
|
1577
|
+
const state = widget._dataSourceDisplay.getBoundingSphere(
|
|
1578
|
+
trackedEntity,
|
|
1579
|
+
false,
|
|
1580
|
+
boundingSphereScratch,
|
|
1581
|
+
);
|
|
1582
|
+
if (state === BoundingSphereState.PENDING) {
|
|
1583
|
+
return;
|
|
1584
|
+
}
|
|
1585
|
+
|
|
1586
|
+
const sceneMode = scene.mode;
|
|
1587
|
+
if (
|
|
1588
|
+
sceneMode === SceneMode.COLUMBUS_VIEW ||
|
|
1589
|
+
sceneMode === SceneMode.SCENE2D
|
|
1590
|
+
) {
|
|
1591
|
+
scene.screenSpaceCameraController.enableTranslate = false;
|
|
1592
|
+
}
|
|
1593
|
+
|
|
1594
|
+
if (
|
|
1595
|
+
sceneMode === SceneMode.COLUMBUS_VIEW ||
|
|
1596
|
+
sceneMode === SceneMode.SCENE3D
|
|
1597
|
+
) {
|
|
1598
|
+
scene.screenSpaceCameraController.enableTilt = false;
|
|
1599
|
+
}
|
|
1600
|
+
|
|
1601
|
+
const bs =
|
|
1602
|
+
state !== BoundingSphereState.FAILED ? boundingSphereScratch : undefined;
|
|
1603
|
+
widget._entityView = new EntityView(trackedEntity, scene, scene.ellipsoid);
|
|
1604
|
+
widget._entityView.update(currentTime, bs);
|
|
1605
|
+
widget._needTrackedEntityUpdate = false;
|
|
1606
|
+
}
|
|
1607
|
+
|
|
832
1608
|
export default CesiumWidget;
|