@cesium/engine 15.0.0 → 17.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-XED3RXKO.js → chunk-236N6BJN.js} +4 -4
- package/Build/Workers/{chunk-TU6ZXHVU.js → chunk-2BJXFXD7.js} +46 -42
- package/Build/Workers/{chunk-3LHBH4TC.js → chunk-37PA7GZW.js} +7 -7
- package/Build/Workers/{chunk-FMZ5CX6V.js → chunk-4BGKMM7J.js} +1 -1
- package/Build/Workers/{chunk-L5SO4Y5V.js → chunk-4TIR5UPL.js} +1 -1
- package/Build/Workers/{chunk-NAGMYRDW.js → chunk-5PC577K7.js} +17 -20
- package/Build/Workers/{chunk-XDHM4G3P.js → chunk-5RPUEFSA.js} +129 -146
- package/Build/Workers/{chunk-ZVDLC3T4.js → chunk-5YEFZMMM.js} +25 -30
- package/Build/Workers/{chunk-VMVPONIV.js → chunk-77MDEA47.js} +5 -5
- package/Build/Workers/{chunk-QTEX3Y4V.js → chunk-7IIMO7ZZ.js} +33 -41
- package/Build/Workers/{chunk-Q5BHMNKU.js → chunk-7PHT4JHA.js} +27 -29
- package/Build/Workers/{chunk-25TOENEE.js → chunk-C5DCX2YQ.js} +9 -12
- package/Build/Workers/{chunk-B2Y4ZS6X.js → chunk-CAKU6ZPR.js} +9 -12
- package/Build/Workers/{chunk-RRN6LRDX.js → chunk-CBFJVM6I.js} +26 -28
- package/Build/Workers/{chunk-GGV2XJHE.js → chunk-CC2WKHIW.js} +13 -16
- package/Build/Workers/{chunk-K5G2WELR.js → chunk-CQMXZF4A.js} +12 -17
- package/Build/Workers/{chunk-67ONR44K.js → chunk-DRMXU674.js} +7 -10
- package/Build/Workers/{chunk-3LZF23RY.js → chunk-E7SMO47Q.js} +7 -10
- package/Build/Workers/{chunk-PUTA3AE2.js → chunk-G6JUXZUO.js} +4 -4
- package/Build/Workers/{chunk-CHX2K5AC.js → chunk-GO3RZX2R.js} +14 -17
- package/Build/Workers/{chunk-7ITUZTFH.js → chunk-HBNWBMAM.js} +1 -1
- package/Build/Workers/{chunk-3JZGPJMZ.js → chunk-HGEGZ67N.js} +6 -6
- package/Build/Workers/{chunk-GK4QU6QI.js → chunk-IFIS4CVK.js} +2 -2
- package/Build/Workers/{chunk-DYJHEP3B.js → chunk-IKDQX7DY.js} +6 -12
- package/Build/Workers/{chunk-FRAWHNSR.js → chunk-J2HTPGC7.js} +2 -2
- package/Build/Workers/{chunk-YNYCGTQH.js → chunk-K5JTWJPE.js} +5 -8
- package/Build/Workers/{chunk-6EDBC234.js → chunk-KE45DUDH.js} +18 -20
- package/Build/Workers/{chunk-TFCOEX3W.js → chunk-LPGOAMYH.js} +2 -2
- package/Build/Workers/{chunk-WPXU45PH.js → chunk-LVGYWPEX.js} +4 -4
- package/Build/Workers/{chunk-B2UQN3DH.js → chunk-MAIKDIBS.js} +6 -6
- package/Build/Workers/{chunk-MWJW37I7.js → chunk-MS5NWDHH.js} +2 -2
- package/Build/Workers/{chunk-2AVIUB5H.js → chunk-NZSBSY5K.js} +2 -2
- package/Build/Workers/{chunk-OYO6TKMU.js → chunk-OBHLT34A.js} +7 -7
- package/Build/Workers/{chunk-RO2Z3LCR.js → chunk-P2N5IDWU.js} +21 -23
- package/Build/Workers/{chunk-BD2TPFGC.js → chunk-P57PR3WM.js} +9 -11
- package/Build/Workers/{chunk-HYPB7FAV.js → chunk-PM4Q36WX.js} +15 -24
- package/Build/Workers/{chunk-CJGVEABL.js → chunk-PS3OKVOQ.js} +16 -19
- package/Build/Workers/{chunk-SLIA3GQP.js → chunk-QJTIOB2Z.js} +19 -22
- package/Build/Workers/{chunk-EZNAJPP5.js → chunk-QUFN3GEO.js} +18 -21
- package/Build/Workers/{chunk-ARVZCY6X.js → chunk-RX65FA7X.js} +7 -7
- package/Build/Workers/{chunk-E3H7AVMK.js → chunk-SQKTLDSD.js} +39 -41
- package/Build/Workers/{chunk-Z4SI54EB.js → chunk-SSLK4U3V.js} +14 -14
- package/Build/Workers/{chunk-IGINOLDX.js → chunk-UC7KH56Y.js} +6 -9
- package/Build/Workers/{chunk-VJ2PDF64.js → chunk-UFV3YUIN.js} +6 -9
- package/Build/Workers/{chunk-LCMJQVIF.js → chunk-UX5JWAC7.js} +17 -26
- package/Build/Workers/{chunk-ISQSYLZY.js → chunk-UZ6KXWCA.js} +4 -4
- package/Build/Workers/{chunk-JZAMRL5I.js → chunk-VXAKU6EV.js} +34 -36
- package/Build/Workers/{chunk-6EV4VOET.js → chunk-WP3IJYLC.js} +16 -19
- package/Build/Workers/{chunk-5S2B46UQ.js → chunk-XYGBWBD5.js} +1 -1
- package/Build/Workers/{chunk-F7ZI463G.js → chunk-YE6MDFDA.js} +21 -23
- package/Build/Workers/{chunk-I4HO2ED2.js → chunk-ZTBZMRQT.js} +9 -12
- package/Build/Workers/combineGeometry.js +21 -22
- package/Build/Workers/createBoxGeometry.js +15 -16
- package/Build/Workers/createBoxOutlineGeometry.js +20 -25
- package/Build/Workers/createCircleGeometry.js +26 -28
- package/Build/Workers/createCircleOutlineGeometry.js +19 -21
- package/Build/Workers/createCoplanarPolygonGeometry.js +38 -42
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +34 -36
- package/Build/Workers/createCorridorGeometry.js +42 -49
- package/Build/Workers/createCorridorOutlineGeometry.js +36 -43
- package/Build/Workers/createCylinderGeometry.js +17 -18
- package/Build/Workers/createCylinderOutlineGeometry.js +23 -25
- package/Build/Workers/createEllipseGeometry.js +23 -24
- package/Build/Workers/createEllipseOutlineGeometry.js +16 -17
- package/Build/Workers/createEllipsoidGeometry.js +16 -17
- package/Build/Workers/createEllipsoidOutlineGeometry.js +15 -16
- package/Build/Workers/createFrustumGeometry.js +15 -16
- package/Build/Workers/createFrustumOutlineGeometry.js +18 -21
- package/Build/Workers/createGeometry.js +22 -25
- package/Build/Workers/createGroundPolylineGeometry.js +34 -42
- package/Build/Workers/createPlaneGeometry.js +19 -21
- package/Build/Workers/createPlaneOutlineGeometry.js +12 -13
- package/Build/Workers/createPolygonGeometry.js +45 -50
- package/Build/Workers/createPolygonOutlineGeometry.js +39 -44
- package/Build/Workers/createPolylineGeometry.js +33 -40
- package/Build/Workers/createPolylineVolumeGeometry.js +37 -44
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +32 -39
- package/Build/Workers/createRectangleGeometry.js +41 -51
- package/Build/Workers/createRectangleOutlineGeometry.js +28 -33
- package/Build/Workers/createSimplePolylineGeometry.js +29 -34
- package/Build/Workers/createSphereGeometry.js +17 -20
- package/Build/Workers/createSphereOutlineGeometry.js +16 -19
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +12 -13
- package/Build/Workers/createVectorTileGeometries.js +21 -22
- package/Build/Workers/createVectorTilePoints.js +11 -12
- package/Build/Workers/createVectorTilePolygons.js +19 -20
- package/Build/Workers/createVectorTilePolylines.js +12 -13
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +20 -23
- package/Build/Workers/createVerticesFromHeightmap.js +31 -58
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +17 -18
- package/Build/Workers/createWallGeometry.js +30 -35
- package/Build/Workers/createWallOutlineGeometry.js +28 -33
- package/Build/Workers/decodeDraco.js +10 -11
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +10 -16
- package/Build/Workers/transcodeKTX2.js +7 -10
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +19 -20
- package/Source/Core/ApproximateTerrainHeights.js +2 -3
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +6 -6
- package/Source/Core/AxisAlignedBoundingBox.js +2 -3
- package/Source/Core/BingMapsGeocoderService.js +2 -2
- package/Source/Core/BoundingRectangle.js +7 -8
- package/Source/Core/BoundingSphere.js +10 -11
- package/Source/Core/BoxGeometry.js +7 -7
- package/Source/Core/BoxOutlineGeometry.js +7 -9
- package/Source/Core/Cartesian2.js +4 -5
- package/Source/Core/Cartesian3.js +7 -8
- package/Source/Core/Cartesian4.js +6 -7
- package/Source/Core/Cartographic.js +5 -6
- package/Source/Core/CatmullRomSpline.js +2 -2
- package/Source/Core/CesiumTerrainProvider.js +11 -14
- package/Source/Core/Check.d.ts +4 -1
- package/Source/Core/CircleGeometry.js +2 -2
- package/Source/Core/CircleOutlineGeometry.js +2 -2
- package/Source/Core/Clock.js +7 -10
- package/Source/Core/Color.js +28 -28
- package/Source/Core/ColorGeometryInstanceAttribute.js +4 -5
- package/Source/Core/ComponentDatatype.js +4 -6
- package/Source/Core/CoplanarPolygonGeometry.js +8 -10
- package/Source/Core/CoplanarPolygonOutlineGeometry.js +5 -5
- package/Source/Core/CorridorGeometry.js +15 -20
- package/Source/Core/CorridorOutlineGeometry.js +10 -15
- package/Source/Core/Credit.js +1 -2
- package/Source/Core/CullingVolume.js +1 -2
- package/Source/Core/CustomHeightmapTerrainProvider.js +3 -3
- package/Source/Core/CylinderGeometry.js +7 -7
- package/Source/Core/CylinderOutlineGeometry.js +7 -7
- package/Source/Core/DistanceDisplayCondition.js +4 -5
- package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +2 -3
- package/Source/Core/EarthOrientationParameters.js +4 -4
- package/Source/Core/EllipseGeometry.js +17 -23
- package/Source/Core/EllipseOutlineGeometry.js +12 -15
- package/Source/Core/Ellipsoid.js +7 -8
- package/Source/Core/EllipsoidGeodesic.js +1 -2
- package/Source/Core/EllipsoidGeometry.js +15 -15
- package/Source/Core/EllipsoidOutlineGeometry.js +15 -15
- package/Source/Core/EllipsoidRhumbLine.js +2 -3
- package/Source/Core/EllipsoidTangentPlane.js +1 -2
- package/Source/Core/EllipsoidTerrainProvider.js +4 -4
- package/Source/Core/EllipsoidalOccluder.js +2 -3
- package/Source/Core/FeatureDetection.js +1 -2
- package/Source/Core/Frozen.js +24 -0
- package/Source/Core/FrustumGeometry.js +7 -8
- package/Source/Core/FrustumOutlineGeometry.js +3 -4
- package/Source/Core/GeographicProjection.js +1 -2
- package/Source/Core/GeographicTilingScheme.js +6 -12
- package/Source/Core/Geometry.js +4 -7
- package/Source/Core/GeometryAttribute.js +3 -3
- package/Source/Core/GeometryAttributes.js +2 -2
- package/Source/Core/GeometryInstance.js +4 -6
- package/Source/Core/GeometryInstanceAttribute.js +3 -3
- package/Source/Core/GeometryPipeline.js +3 -4
- package/Source/Core/GoogleEarthEnterpriseMetadata.js +13 -24
- package/Source/Core/GoogleEarthEnterpriseTerrainData.js +9 -12
- package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +3 -3
- package/Source/Core/GoogleGeocoderService.js +2 -2
- package/Source/Core/GregorianDate.js +8 -9
- package/Source/Core/GroundPolylineGeometry.js +8 -8
- package/Source/Core/HeadingPitchRange.js +3 -4
- package/Source/Core/HeadingPitchRoll.js +3 -4
- package/Source/Core/Heap.js +3 -4
- package/Source/Core/HeightmapTerrainData.js +22 -38
- package/Source/Core/HeightmapTessellator.js +21 -37
- package/Source/Core/HermitePolynomialApproximation.js +1 -2
- package/Source/Core/HermiteSpline.js +5 -5
- package/Source/Core/ITwinPlatform.js +72 -15
- package/Source/Core/Iau2006XysData.js +8 -10
- package/Source/Core/IntersectionTests.js +1 -2
- package/Source/Core/Interval.js +2 -4
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonGeocoderService.js +6 -10
- package/Source/Core/IonResource.js +6 -6
- package/Source/Core/JulianDate.js +11 -12
- package/Source/Core/LinearSpline.js +2 -2
- package/Source/Core/ManagedArray.js +2 -3
- package/Source/Core/Math.js +36 -27
- package/Source/Core/Matrix2.js +7 -8
- package/Source/Core/Matrix3.js +12 -13
- package/Source/Core/Matrix4.js +28 -28
- package/Source/Core/MorphWeightSpline.js +2 -2
- package/Source/Core/NearFarScalar.js +6 -7
- package/Source/Core/Occluder.js +1 -2
- package/Source/Core/OffsetGeometryInstanceAttribute.js +3 -4
- package/Source/Core/OpenCageGeocoderService.js +1 -2
- package/Source/Core/OrientedBoundingBox.js +7 -8
- package/Source/Core/OrthographicFrustum.js +6 -6
- package/Source/Core/OrthographicOffCenterFrustum.js +4 -4
- package/Source/Core/PerspectiveFrustum.js +8 -8
- package/Source/Core/PerspectiveOffCenterFrustum.js +4 -4
- package/Source/Core/PlaneGeometry.js +5 -5
- package/Source/Core/PolygonGeometry.js +17 -19
- package/Source/Core/PolygonGeometryLibrary.js +1 -2
- package/Source/Core/PolygonOutlineGeometry.js +11 -14
- package/Source/Core/PolygonPipeline.js +5 -6
- package/Source/Core/PolylineGeometry.js +10 -15
- package/Source/Core/PolylinePipeline.js +7 -14
- package/Source/Core/PolylineVolumeGeometry.js +8 -13
- package/Source/Core/PolylineVolumeOutlineGeometry.js +7 -12
- package/Source/Core/QuantizedMeshTerrainData.js +12 -16
- package/Source/Core/Quaternion.js +7 -8
- package/Source/Core/QuaternionSpline.js +2 -2
- package/Source/Core/Ray.js +2 -3
- package/Source/Core/Rectangle.js +18 -19
- package/Source/Core/RectangleGeometry.js +17 -25
- package/Source/Core/RectangleGeometryLibrary.js +1 -1
- package/Source/Core/RectangleOutlineGeometry.js +11 -14
- package/Source/Core/Request.js +6 -6
- package/Source/Core/RequestScheduler.js +4 -6
- package/Source/Core/Resource.js +13 -16
- package/Source/Core/S2Cell.js +2 -3
- package/Source/Core/ScreenSpaceEventHandler.js +1 -2
- package/Source/Core/ShowGeometryInstanceAttribute.js +1 -2
- package/Source/Core/Simon1994PlanetaryPositions.js +9 -9
- package/Source/Core/SimplePolylineGeometry.js +8 -11
- package/Source/Core/SphereGeometry.js +1 -2
- package/Source/Core/SphereOutlineGeometry.js +1 -2
- package/Source/Core/Spherical.js +4 -5
- package/Source/Core/Spline.js +1 -2
- package/Source/Core/SteppedSpline.js +2 -2
- package/Source/Core/TaskProcessor.js +2 -9
- package/Source/Core/TerrainData.js +1 -1
- package/Source/Core/TerrainEncoding.js +4 -11
- package/Source/Core/TerrainMesh.js +1 -3
- package/Source/Core/TerrainProvider.js +1 -1
- package/Source/Core/TileProviderError.js +1 -2
- package/Source/Core/TimeInterval.js +7 -7
- package/Source/Core/TimeIntervalCollection.js +7 -7
- package/Source/Core/Tipsify.js +5 -5
- package/Source/Core/Transforms.js +10 -15
- package/Source/Core/TranslationRotationScale.js +3 -6
- package/Source/Core/VRTheWorldTerrainProvider.js +5 -5
- package/Source/Core/VertexFormat.js +10 -10
- package/Source/Core/VerticalExaggeration.js +1 -1
- package/Source/Core/VideoSynchronizer.js +6 -6
- package/Source/Core/WallGeometry.js +8 -11
- package/Source/Core/WallOutlineGeometry.js +7 -10
- package/Source/Core/WebMercatorProjection.js +1 -2
- package/Source/Core/WebMercatorTilingScheme.js +5 -11
- package/Source/Core/arrayRemoveDuplicates.js +1 -2
- package/Source/Core/clone.js +1 -3
- package/Source/Core/combine.js +1 -2
- package/Source/Core/createWorldBathymetryAsync.js +3 -3
- package/Source/Core/createWorldTerrainAsync.js +4 -4
- package/Source/Core/defaultValue.js +20 -1
- package/Source/Core/destroyObject.js +1 -5
- package/Source/Core/getAbsoluteUri.js +1 -2
- package/Source/Core/getMagic.js +1 -2
- package/Source/Core/getStringFromTypedArray.js +2 -3
- package/Source/Core/loadImageFromTypedArray.js +2 -6
- package/Source/Core/oneTimeWarning.js +1 -2
- package/Source/Core/writeTextToCanvas.js +10 -13
- package/Source/DataSources/BillboardGraphics.js +27 -53
- package/Source/DataSources/BoxGraphics.js +13 -18
- package/Source/DataSources/CallbackPositionProperty.js +1 -2
- package/Source/DataSources/Cesium3DTilesetGraphics.js +6 -8
- package/Source/DataSources/CheckerboardMaterialProperty.js +2 -2
- package/Source/DataSources/CompositePositionProperty.js +1 -2
- package/Source/DataSources/ConstantPositionProperty.js +1 -2
- package/Source/DataSources/CorridorGraphics.js +23 -35
- package/Source/DataSources/CylinderGraphics.js +18 -25
- package/Source/DataSources/CzmlDataSource.js +34 -60
- package/Source/DataSources/DataSourceClock.js +12 -13
- package/Source/DataSources/DataSourceCollection.js +2 -3
- package/Source/DataSources/DataSourceDisplay.js +2 -5
- package/Source/DataSources/EllipseGraphics.js +26 -40
- package/Source/DataSources/EllipsoidGeometryUpdater.js +1 -2
- package/Source/DataSources/EllipsoidGraphics.js +21 -32
- package/Source/DataSources/Entity.js +7 -9
- package/Source/DataSources/EntityCluster.js +9 -9
- package/Source/DataSources/EntityView.js +1 -2
- package/Source/DataSources/GeoJsonDataSource.js +12 -12
- package/Source/DataSources/GeometryUpdater.js +12 -17
- package/Source/DataSources/GeometryVisualizer.js +2 -3
- package/Source/DataSources/GpxDataSource.js +4 -7
- package/Source/DataSources/GridMaterialProperty.js +2 -2
- package/Source/DataSources/GroundGeometryUpdater.js +1 -2
- package/Source/DataSources/ImageMaterialProperty.js +2 -2
- package/Source/DataSources/KmlDataSource.js +84 -158
- package/Source/DataSources/LabelGraphics.js +27 -56
- package/Source/DataSources/LabelVisualizer.js +1 -2
- package/Source/DataSources/ModelGraphics.js +29 -63
- package/Source/DataSources/ModelVisualizer.js +1 -2
- package/Source/DataSources/NodeTransformationProperty.js +2 -2
- package/Source/DataSources/PathGraphics.js +10 -12
- package/Source/DataSources/PlaneGraphics.js +13 -15
- package/Source/DataSources/PointGraphics.js +17 -32
- package/Source/DataSources/PolygonGraphics.js +28 -45
- package/Source/DataSources/PolylineDashMaterialProperty.js +2 -2
- package/Source/DataSources/PolylineGeometryUpdater.js +9 -14
- package/Source/DataSources/PolylineGlowMaterialProperty.js +2 -2
- package/Source/DataSources/PolylineGraphics.js +16 -23
- package/Source/DataSources/PolylineOutlineMaterialProperty.js +2 -2
- package/Source/DataSources/PolylineVisualizer.js +2 -3
- package/Source/DataSources/PolylineVolumeGraphics.js +15 -17
- package/Source/DataSources/PositionPropertyArray.js +1 -2
- package/Source/DataSources/Property.js +1 -2
- package/Source/DataSources/PropertyBag.js +1 -2
- package/Source/DataSources/RectangleGraphics.js +23 -35
- package/Source/DataSources/Rotation.js +4 -5
- package/Source/DataSources/SampledPositionProperty.js +2 -3
- package/Source/DataSources/SampledProperty.js +6 -11
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -2
- package/Source/DataSources/StripeMaterialProperty.js +2 -2
- package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +1 -2
- package/Source/DataSources/VelocityOrientationProperty.js +1 -2
- package/Source/DataSources/VelocityVectorProperty.js +1 -2
- package/Source/DataSources/WallGraphics.js +15 -23
- package/Source/DataSources/createPropertyDescriptor.js +2 -3
- package/Source/DataSources/exportKml.js +11 -14
- package/Source/Renderer/Buffer.js +5 -5
- package/Source/Renderer/ClearCommand.js +2 -2
- package/Source/Renderer/ComputeCommand.js +3 -3
- package/Source/Renderer/Context.js +22 -33
- package/Source/Renderer/CubeMap.js +6 -6
- package/Source/Renderer/CubeMapFace.js +11 -12
- package/Source/Renderer/DrawCommand.js +14 -25
- package/Source/Renderer/Framebuffer.js +3 -3
- package/Source/Renderer/FramebufferManager.js +25 -39
- package/Source/Renderer/MultisampleFramebuffer.js +2 -2
- package/Source/Renderer/RenderState.js +63 -92
- package/Source/Renderer/Renderbuffer.js +4 -4
- package/Source/Renderer/Sampler.js +2 -2
- package/Source/Renderer/ShaderBuilder.js +2 -3
- package/Source/Renderer/ShaderProgram.js +3 -3
- package/Source/Renderer/ShaderSource.js +3 -3
- package/Source/Renderer/Texture.js +10 -10
- package/Source/Renderer/TextureAtlas.js +4 -4
- package/Source/Renderer/UniformState.js +6 -11
- package/Source/Renderer/VertexArray.js +14 -23
- package/Source/Renderer/VertexArrayFacade.js +7 -11
- package/Source/Scene/Appearance.js +4 -4
- package/Source/Scene/ArcGisMapServerImageryProvider.js +23 -37
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/B3dmParser.js +2 -3
- package/Source/Scene/BatchTableHierarchy.js +6 -13
- package/Source/Scene/Billboard.js +22 -44
- package/Source/Scene/BillboardCollection.js +8 -22
- package/Source/Scene/BingMapsImageryProvider.js +6 -6
- package/Source/Scene/BoxEmitter.js +1 -2
- package/Source/Scene/BufferLoader.js +2 -2
- package/Source/Scene/Camera.js +43 -62
- package/Source/Scene/CameraFlightPath.js +6 -6
- package/Source/Scene/Cesium3DContentGroup.js +2 -2
- package/Source/Scene/Cesium3DTile.js +3 -4
- package/Source/Scene/Cesium3DTileBatchTable.js +6 -49
- package/Source/Scene/Cesium3DTileFeatureTable.js +2 -3
- package/Source/Scene/Cesium3DTilePointFeature.js +10 -18
- package/Source/Scene/Cesium3DTileStyle.js +4 -7
- package/Source/Scene/Cesium3DTilesVoxelProvider.js +57 -34
- package/Source/Scene/Cesium3DTileset.js +77 -143
- package/Source/Scene/Cesium3DTilesetMetadata.js +3 -3
- package/Source/Scene/CircleEmitter.js +2 -3
- package/Source/Scene/ClassificationPrimitive.js +15 -26
- package/Source/Scene/ClippingPlaneCollection.js +7 -12
- package/Source/Scene/ClippingPolygon.js +1 -2
- package/Source/Scene/ClippingPolygonCollection.js +4 -4
- package/Source/Scene/CloudCollection.js +9 -11
- package/Source/Scene/Composite3DTileContent.js +1 -2
- package/Source/Scene/ConeEmitter.js +1 -2
- package/Source/Scene/ContentMetadata.js +2 -2
- package/Source/Scene/CreditDisplay.js +5 -9
- package/Source/Scene/CumulusCloud.js +9 -15
- package/Source/Scene/DebugAppearance.js +7 -7
- package/Source/Scene/DebugCameraPrimitive.js +5 -5
- package/Source/Scene/DebugModelMatrixPrimitive.js +6 -8
- package/Source/Scene/DepthPlane.js +1 -2
- package/Source/Scene/DirectionalLight.js +2 -3
- package/Source/Scene/DiscardMissingTileImagePolicy.js +2 -2
- package/Source/Scene/DynamicEnvironmentMapManager.js +15 -24
- package/Source/Scene/EllipsoidPrimitive.js +11 -19
- package/Source/Scene/EllipsoidSurfaceAppearance.js +11 -15
- package/Source/Scene/FrameRateMonitor.js +12 -21
- package/Source/Scene/FrustumCommands.js +2 -3
- package/Source/Scene/Geometry3DTileContent.js +9 -16
- package/Source/Scene/Globe.js +3 -4
- package/Source/Scene/GlobeSurfaceTileProvider.js +9 -18
- package/Source/Scene/GlobeTranslucencyState.js +12 -25
- package/Source/Scene/GltfBufferViewLoader.js +4 -4
- package/Source/Scene/GltfDracoLoader.js +2 -2
- package/Source/Scene/GltfImageLoader.js +2 -2
- package/Source/Scene/GltfIndexBufferLoader.js +5 -5
- package/Source/Scene/GltfJsonLoader.js +2 -2
- package/Source/Scene/GltfLoader.js +17 -30
- package/Source/Scene/GltfLoaderUtil.js +11 -11
- package/Source/Scene/GltfPipeline/addDefaults.js +37 -64
- package/Source/Scene/GltfPipeline/addToArray.js +1 -3
- package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +2 -5
- package/Source/Scene/GltfPipeline/parseGlb.js +1 -5
- package/Source/Scene/GltfPipeline/removeUnusedElements.js +1 -2
- package/Source/Scene/GltfPipeline/updateVersion.js +28 -49
- package/Source/Scene/GltfStructuralMetadataLoader.js +5 -6
- package/Source/Scene/GltfTextureLoader.js +3 -3
- package/Source/Scene/GltfVertexBufferLoader.js +5 -5
- package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +2 -2
- package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +3 -4
- package/Source/Scene/GridImageryProvider.js +10 -13
- package/Source/Scene/GroundPolylinePrimitive.js +11 -22
- package/Source/Scene/GroundPrimitive.js +13 -24
- package/Source/Scene/GroupMetadata.js +2 -2
- package/Source/Scene/I3SDataProvider.js +10 -15
- package/Source/Scene/I3SNode.js +1 -6
- package/Source/Scene/I3SSublayer.js +1 -2
- package/Source/Scene/I3SSymbology.js +2 -3
- package/Source/Scene/I3dmParser.js +1 -2
- package/Source/Scene/ITwinData.js +11 -6
- package/Source/Scene/ImageBasedLighting.js +2 -2
- package/Source/Scene/ImageryLayer.js +44 -73
- package/Source/Scene/ImageryLayerCollection.js +2 -3
- package/Source/Scene/Implicit3DTileContent.js +3 -4
- package/Source/Scene/ImplicitAvailabilityBitstream.js +2 -5
- package/Source/Scene/ImplicitMetadataView.js +2 -2
- package/Source/Scene/ImplicitSubtree.js +8 -15
- package/Source/Scene/ImplicitSubtreeCache.js +3 -3
- package/Source/Scene/ImplicitSubtreeMetadata.js +2 -2
- package/Source/Scene/InstanceAttributeSemantic.js +1 -1
- package/Source/Scene/IonImageryProvider.js +3 -3
- package/Source/Scene/Label.js +19 -36
- package/Source/Scene/LabelCollection.js +6 -14
- package/Source/Scene/MapboxImageryProvider.js +4 -4
- package/Source/Scene/MapboxStyleImageryProvider.js +5 -5
- package/Source/Scene/Material.js +14 -20
- package/Source/Scene/MaterialAppearance.js +12 -18
- package/Source/Scene/Megatexture.js +1 -2
- package/Source/Scene/MetadataClass.js +4 -4
- package/Source/Scene/MetadataClassProperty.js +11 -14
- package/Source/Scene/MetadataEnum.js +4 -7
- package/Source/Scene/MetadataEnumValue.js +2 -2
- package/Source/Scene/MetadataSchema.js +4 -4
- package/Source/Scene/MetadataSchemaLoader.js +2 -2
- package/Source/Scene/MetadataTable.js +2 -2
- package/Source/Scene/MetadataTableProperty.js +17 -31
- package/Source/Scene/Model/AlphaPipelineStage.js +1 -2
- package/Source/Scene/Model/B3dmLoader.js +15 -26
- package/Source/Scene/Model/BatchTexturePipelineStage.js +1 -2
- package/Source/Scene/Model/ClassificationModelDrawCommand.js +2 -2
- package/Source/Scene/Model/CustomShader.js +10 -12
- package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +3 -3
- package/Source/Scene/Model/FeatureIdPipelineStage.js +1 -5
- package/Source/Scene/Model/GeoJsonLoader.js +5 -8
- package/Source/Scene/Model/I3dmLoader.js +13 -21
- package/Source/Scene/Model/MaterialPipelineStage.js +1 -2
- package/Source/Scene/Model/Model.js +40 -62
- package/Source/Scene/Model/ModelAnimation.js +5 -6
- package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
- package/Source/Scene/Model/ModelAnimationCollection.js +4 -4
- package/Source/Scene/Model/ModelArticulation.js +2 -2
- package/Source/Scene/Model/ModelArticulationStage.js +2 -2
- package/Source/Scene/Model/ModelDrawCommand.js +3 -3
- package/Source/Scene/Model/ModelFeatureTable.js +3 -9
- package/Source/Scene/Model/ModelLightingOptions.js +3 -3
- package/Source/Scene/Model/ModelNode.js +1 -1
- package/Source/Scene/Model/ModelRuntimeNode.js +2 -2
- package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -2
- package/Source/Scene/Model/ModelSceneGraph.js +2 -2
- package/Source/Scene/Model/ModelSkin.js +2 -2
- package/Source/Scene/Model/PickingPipelineStage.js +1 -2
- package/Source/Scene/Model/PntsLoader.js +6 -6
- package/Source/Scene/Model/PointCloudStylingPipelineStage.js +1 -5
- package/Source/Scene/Model/PrimitiveOutlineGenerator.js +2 -2
- package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +2 -3
- package/Source/Scene/Model/TextureUniform.js +5 -8
- package/Source/Scene/Model/VaryingType.js +2 -2
- package/Source/Scene/Model/pickModel.js +4 -5
- package/Source/Scene/Moon.js +5 -5
- package/Source/Scene/OpenStreetMapImageryProvider.js +7 -7
- package/Source/Scene/OrderedGroundPrimitiveCollection.js +1 -2
- package/Source/Scene/Particle.js +11 -17
- package/Source/Scene/ParticleBurst.js +5 -5
- package/Source/Scene/ParticleSystem.js +24 -54
- package/Source/Scene/PerInstanceColorAppearance.js +8 -8
- package/Source/Scene/PerformanceDisplay.js +3 -3
- package/Source/Scene/PickFramebuffer.js +4 -5
- package/Source/Scene/Picking.js +3 -4
- package/Source/Scene/PntsParser.js +1 -2
- package/Source/Scene/PointCloud.js +6 -12
- package/Source/Scene/PointCloudShading.js +9 -18
- package/Source/Scene/PointPrimitive.js +11 -21
- package/Source/Scene/PointPrimitiveCollection.js +6 -14
- package/Source/Scene/Polyline.js +5 -5
- package/Source/Scene/PolylineCollection.js +5 -10
- package/Source/Scene/PolylineColorAppearance.js +7 -11
- package/Source/Scene/PolylineMaterialAppearance.js +7 -11
- package/Source/Scene/PostProcessStage.js +2 -2
- package/Source/Scene/PostProcessStageComposite.js +3 -6
- package/Source/Scene/Primitive.js +21 -42
- package/Source/Scene/PrimitiveCollection.js +4 -4
- package/Source/Scene/PrimitivePipeline.js +1 -2
- package/Source/Scene/PropertyAttribute.js +2 -2
- package/Source/Scene/PropertyAttributeProperty.js +4 -4
- package/Source/Scene/PropertyTable.js +2 -2
- package/Source/Scene/PropertyTexture.js +2 -2
- package/Source/Scene/PropertyTextureProperty.js +4 -4
- package/Source/Scene/QuadtreePrimitive.js +89 -67
- package/Source/Scene/QuadtreeTile.js +170 -0
- package/Source/Scene/ResourceCache.js +11 -11
- package/Source/Scene/ResourceCacheKey.js +11 -11
- package/Source/Scene/Scene.js +27 -25
- package/Source/Scene/ScreenSpaceCameraController.js +10 -12
- package/Source/Scene/ShadowMap.js +15 -15
- package/Source/Scene/ShadowVolumeAppearance.js +1 -2
- package/Source/Scene/SingleTileImageryProvider.js +4 -4
- package/Source/Scene/SkyAtmosphere.js +1 -2
- package/Source/Scene/SkyBox.js +1 -2
- package/Source/Scene/SphereEmitter.js +2 -3
- package/Source/Scene/StructuralMetadata.js +2 -2
- package/Source/Scene/SunLight.js +4 -4
- package/Source/Scene/SupportedImageFormats.js +4 -4
- package/Source/Scene/TileBoundingRegion.js +4 -5
- package/Source/Scene/TileBoundingS2Cell.js +3 -4
- package/Source/Scene/TileCoordinatesImageryProvider.js +5 -5
- package/Source/Scene/TileMapServiceImageryProvider.js +18 -27
- package/Source/Scene/TileMetadata.js +2 -2
- package/Source/Scene/TilesetMetadata.js +2 -2
- package/Source/Scene/TimeDynamicImagery.js +2 -2
- package/Source/Scene/TimeDynamicPointCloud.js +8 -10
- package/Source/Scene/TweenCollection.js +13 -16
- package/Source/Scene/UrlTemplateImageryProvider.js +11 -15
- package/Source/Scene/Vector3DTileClampedPolylines.js +1 -2
- package/Source/Scene/Vector3DTileContent.js +16 -20
- package/Source/Scene/Vector3DTileGeometry.js +1 -2
- package/Source/Scene/Vector3DTilePolygons.js +2 -3
- package/Source/Scene/Vector3DTilePolylines.js +1 -2
- package/Source/Scene/Vector3DTilePrimitive.js +9 -13
- package/Source/Scene/VoxelBoxShape.js +38 -82
- package/Source/Scene/VoxelCylinderShape.js +130 -271
- package/Source/Scene/VoxelEllipsoidShape.js +2 -3
- package/Source/Scene/VoxelMetadataOrder.js +14 -2
- package/Source/Scene/VoxelPrimitive.js +17 -30
- package/Source/Scene/VoxelProvider.js +0 -12
- package/Source/Scene/VoxelRenderResources.js +17 -21
- package/Source/Scene/VoxelTraversal.js +2 -6
- package/Source/Scene/WebMapServiceImageryProvider.js +17 -24
- package/Source/Scene/WebMapTileServiceImageryProvider.js +7 -10
- package/Source/Scene/createElevationBandMaterial.js +4 -4
- package/Source/Scene/createGooglePhotorealistic3DTileset.js +8 -16
- package/Source/Scene/createOsmBuildingsAsync.js +3 -6
- package/Source/Scene/createTangentSpaceDebugPrimitive.js +4 -6
- package/Source/Scene/createWorldImageryAsync.js +3 -3
- package/Source/Scene/findContentMetadata.js +2 -5
- package/Source/Scene/findTileMetadata.js +2 -5
- package/Source/Scene/parseBatchTable.js +1 -5
- package/Source/Scene/parseFeatureMetadataLegacy.js +2 -2
- package/Source/Scene/parseStructuralMetadata.js +2 -2
- package/Source/Shaders/PolylineCommon.glsl +1 -1
- package/Source/Shaders/PolylineCommon.js +1 -1
- package/Source/Shaders/Voxels/Octree.glsl +1 -1
- package/Source/Shaders/Voxels/Octree.js +1 -1
- package/Source/Widget/CesiumWidget.js +17 -25
- package/Source/Workers/createGeometry.js +1 -2
- package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -2
- package/Source/Workers/decodeI3S.js +1 -5
- package/Source/Workers/transcodeKTX2.js +1 -2
- package/index.d.ts +83 -37
- package/index.js +179 -178
- package/package.json +2 -2
- package/Build/Workers/chunk-QZKN2RXM.js +0 -39
|
@@ -4,6 +4,45 @@ import Rectangle from "../Core/Rectangle.js";
|
|
|
4
4
|
import QuadtreeTileLoadState from "./QuadtreeTileLoadState.js";
|
|
5
5
|
import TileSelectionResult from "./TileSelectionResult.js";
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* A simple Least Recently Used (LRU) cache implementation.
|
|
9
|
+
*/
|
|
10
|
+
class LRUCache {
|
|
11
|
+
constructor(maxSize) {
|
|
12
|
+
this.maxSize = maxSize;
|
|
13
|
+
this.cache = new Map();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
get(key) {
|
|
17
|
+
if (!this.cache.has(key)) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
// Move accessed item to the end (most recently used)
|
|
21
|
+
const value = this.cache.get(key);
|
|
22
|
+
this.cache.delete(key);
|
|
23
|
+
this.cache.set(key, value);
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
set(key, value) {
|
|
28
|
+
if (this.cache.has(key)) {
|
|
29
|
+
this.cache.delete(key);
|
|
30
|
+
} else if (this.cache.size >= this.maxSize) {
|
|
31
|
+
// Remove the least recently used (first entry)
|
|
32
|
+
const firstKey = this.cache.keys().next().value;
|
|
33
|
+
this.cache.delete(firstKey);
|
|
34
|
+
}
|
|
35
|
+
this.cache.set(key, value);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
clear() {
|
|
39
|
+
this.cache.clear();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Maximum cache entries per tile
|
|
44
|
+
const MAX_CACHE_ENTRIES = 1000;
|
|
45
|
+
|
|
7
46
|
/**
|
|
8
47
|
* A single tile in a {@link QuadtreePrimitive}.
|
|
9
48
|
*
|
|
@@ -74,6 +113,9 @@ function QuadtreeTile(options) {
|
|
|
74
113
|
this._lastSelectionResultFrame = undefined;
|
|
75
114
|
this._loadedCallbacks = {};
|
|
76
115
|
|
|
116
|
+
// Cache for storing computed position values per tile to avoid redundant calculations
|
|
117
|
+
this._positionCache = new LRUCache(MAX_CACHE_ENTRIES);
|
|
118
|
+
|
|
77
119
|
/**
|
|
78
120
|
* Gets or sets the current state of the tile in the tile load pipeline.
|
|
79
121
|
* @type {QuadtreeTileLoadState}
|
|
@@ -143,6 +185,132 @@ QuadtreeTile.createLevelZeroTiles = function (tilingScheme) {
|
|
|
143
185
|
return result;
|
|
144
186
|
};
|
|
145
187
|
|
|
188
|
+
/**
|
|
189
|
+
* Creates a spatial hash key for the given longitude, latitude, and tile level.
|
|
190
|
+
* The precision is adjusted based on the tile level and extent to achieve finer precision at higher levels.
|
|
191
|
+
*
|
|
192
|
+
* This function calculates the spatial hash key by first determining the precision at the given tile for the current maximum screenspace error (MAX_ERROR_PX),
|
|
193
|
+
* and then rounding the longitude and latitude to that precision for consistency.
|
|
194
|
+
*
|
|
195
|
+
* The steps for computing the level precision are as follows:
|
|
196
|
+
*
|
|
197
|
+
* 1. Compute the resolution (meters per pixel) at the given level:
|
|
198
|
+
* level_resolution_m = (2 * PI * RADIUS) / (2^level * TILE_SIZE)
|
|
199
|
+
*
|
|
200
|
+
* 2. Compute the target precision in meters:
|
|
201
|
+
* level_precision_m = level_resolution_m * MAX_ERROR_PX
|
|
202
|
+
*
|
|
203
|
+
* 3. Compute the target precision to radians:
|
|
204
|
+
* level_precision_rad = level_precision_m / BODY_RADIUS
|
|
205
|
+
*
|
|
206
|
+
* This simplifies to:
|
|
207
|
+
* level_precision_rad = (2 * PI * MAX_ERROR_PX) / (2^level * TILE_SIZE)
|
|
208
|
+
* which can also be written as:
|
|
209
|
+
* level_precision_rad = (PI * MAX_ERROR_PX) / (2^(level-1) * TILE_SIZE)
|
|
210
|
+
*
|
|
211
|
+
* The computed level_precision_rad is then used to round the input longitude and latitude,
|
|
212
|
+
* ensuring that positions that fall within the same spatial bin produce the same hash key.
|
|
213
|
+
*
|
|
214
|
+
* The constants below are computed once since they are fixed for the given configuration.
|
|
215
|
+
*
|
|
216
|
+
* @param {number} longitude - The longitude in radians.
|
|
217
|
+
* @param {number} latitude - The latitude in radians.
|
|
218
|
+
* @param {Rectangle} rectangle - The quadtree tile extents.
|
|
219
|
+
* @returns {string} A string representing the spatial hash key.
|
|
220
|
+
*/
|
|
221
|
+
const TILE_SIZE = 256;
|
|
222
|
+
|
|
223
|
+
function createSpatialHashKey(
|
|
224
|
+
longitude,
|
|
225
|
+
latitude,
|
|
226
|
+
rectangle,
|
|
227
|
+
maximumScreenSpaceError,
|
|
228
|
+
) {
|
|
229
|
+
// Adjust precision based on quadtree level - higher levels get finer precision
|
|
230
|
+
const maxError = (rectangle.width / TILE_SIZE) * maximumScreenSpaceError;
|
|
231
|
+
// Round to the grid precision
|
|
232
|
+
const lonGrid = Math.floor(longitude / maxError) * maxError;
|
|
233
|
+
const latGrid = Math.floor(latitude / maxError) * maxError;
|
|
234
|
+
return `${lonGrid.toFixed(10)},${latGrid.toFixed(10)}`;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Generates a unique cache key for a given cartographic position.
|
|
239
|
+
* @memberof QuadtreeTile
|
|
240
|
+
*
|
|
241
|
+
* @param {Cartographic} cartographic The cartographic coordinates.
|
|
242
|
+
* @param {number} maximumScreenSpaceError The maximum screen-space error, in pixels, that is allowed.
|
|
243
|
+
* A higher maximum error will render fewer tiles and improve performance, while a lower
|
|
244
|
+
* value will improve visual quality.
|
|
245
|
+
* @returns {string} A string representing the spatial hash key.
|
|
246
|
+
*/
|
|
247
|
+
QuadtreeTile.prototype._getCacheKey = function (
|
|
248
|
+
cartographic,
|
|
249
|
+
maximumScreenSpaceError,
|
|
250
|
+
) {
|
|
251
|
+
return createSpatialHashKey(
|
|
252
|
+
cartographic.longitude,
|
|
253
|
+
cartographic.latitude,
|
|
254
|
+
this._rectangle,
|
|
255
|
+
maximumScreenSpaceError,
|
|
256
|
+
);
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Retrieves a cached position for the specified cartographic position.
|
|
261
|
+
*
|
|
262
|
+
* @memberof QuadtreeTile
|
|
263
|
+
*
|
|
264
|
+
* @param {Cartographic} cartographic - The cartographic coordinates.
|
|
265
|
+
* @param {number} maximumScreenSpaceError The maximum screen-space error, in pixels, that is allowed.
|
|
266
|
+
* A higher maximum error will render fewer tiles and improve performance, while a lower
|
|
267
|
+
* value will improve visual quality.
|
|
268
|
+
* @returns {Object|undefined} The cached position data or undefined if not found.
|
|
269
|
+
*/
|
|
270
|
+
QuadtreeTile.prototype.getPositionCacheEntry = function (
|
|
271
|
+
cartographic,
|
|
272
|
+
maximumScreenSpaceError,
|
|
273
|
+
) {
|
|
274
|
+
return this._positionCache.get(
|
|
275
|
+
this._getCacheKey(cartographic, maximumScreenSpaceError),
|
|
276
|
+
);
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Sets a position on the cache for this tile.
|
|
281
|
+
*
|
|
282
|
+
* @memberof QuadtreeTile
|
|
283
|
+
*
|
|
284
|
+
* @param {Cartographic} cartographic - The cartographic coordinates.
|
|
285
|
+
* @param {number} maximumScreenSpaceError The maximum screen-space error, in pixels, that is allowed.
|
|
286
|
+
* A higher maximum error will render fewer tiles and improve performance, while a lower
|
|
287
|
+
* value will improve visual quality.
|
|
288
|
+
* @param {Object} value - The object to be cached.
|
|
289
|
+
*/
|
|
290
|
+
QuadtreeTile.prototype.setPositionCacheEntry = function (
|
|
291
|
+
cartographic,
|
|
292
|
+
maximumScreenSpaceError,
|
|
293
|
+
value,
|
|
294
|
+
) {
|
|
295
|
+
this._positionCache.set(
|
|
296
|
+
this._getCacheKey(cartographic, maximumScreenSpaceError),
|
|
297
|
+
value,
|
|
298
|
+
);
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Clears the position cache for this tile.
|
|
303
|
+
* This function removes all cached positions that were previously stored
|
|
304
|
+
* to optimize height computations.
|
|
305
|
+
*
|
|
306
|
+
* @memberof QuadtreeTile
|
|
307
|
+
*/
|
|
308
|
+
QuadtreeTile.prototype.clearPositionCache = function () {
|
|
309
|
+
if (this._positionCache.size > 0) {
|
|
310
|
+
this._positionCache.clear();
|
|
311
|
+
}
|
|
312
|
+
};
|
|
313
|
+
|
|
146
314
|
QuadtreeTile.prototype._updateCustomData = function (
|
|
147
315
|
frameNumber,
|
|
148
316
|
added,
|
|
@@ -513,6 +681,8 @@ QuadtreeTile.prototype.findTileToNorth = function (levelZeroTiles) {
|
|
|
513
681
|
* @memberof QuadtreeTile
|
|
514
682
|
*/
|
|
515
683
|
QuadtreeTile.prototype.freeResources = function () {
|
|
684
|
+
// Clears cached heights when the tile is freed
|
|
685
|
+
this.clearPositionCache();
|
|
516
686
|
this.state = QuadtreeTileLoadState.START;
|
|
517
687
|
this.renderable = false;
|
|
518
688
|
this.upsampledFromParent = false;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Check from "../Core/Check.js";
|
|
2
|
-
import
|
|
2
|
+
import Frozen from "../Core/Frozen.js";
|
|
3
3
|
import defined from "../Core/defined.js";
|
|
4
4
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
5
5
|
import BufferLoader from "./BufferLoader.js";
|
|
@@ -145,7 +145,7 @@ ResourceCache.unload = function (resourceLoader) {
|
|
|
145
145
|
* @private
|
|
146
146
|
*/
|
|
147
147
|
ResourceCache.getSchemaLoader = function (options) {
|
|
148
|
-
options =
|
|
148
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
149
149
|
const { schema, resource } = options;
|
|
150
150
|
|
|
151
151
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -187,7 +187,7 @@ ResourceCache.getSchemaLoader = function (options) {
|
|
|
187
187
|
* @private
|
|
188
188
|
*/
|
|
189
189
|
ResourceCache.getEmbeddedBufferLoader = function (options) {
|
|
190
|
-
options =
|
|
190
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
191
191
|
const { parentResource, bufferId, typedArray } = options;
|
|
192
192
|
|
|
193
193
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -227,7 +227,7 @@ ResourceCache.getEmbeddedBufferLoader = function (options) {
|
|
|
227
227
|
* @private
|
|
228
228
|
*/
|
|
229
229
|
ResourceCache.getExternalBufferLoader = function (options) {
|
|
230
|
-
options =
|
|
230
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
231
231
|
const { resource } = options;
|
|
232
232
|
|
|
233
233
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -264,7 +264,7 @@ ResourceCache.getExternalBufferLoader = function (options) {
|
|
|
264
264
|
* @private
|
|
265
265
|
*/
|
|
266
266
|
ResourceCache.getGltfJsonLoader = function (options) {
|
|
267
|
-
options =
|
|
267
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
268
268
|
const { gltfResource, baseResource, typedArray, gltfJson } = options;
|
|
269
269
|
|
|
270
270
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -306,7 +306,7 @@ ResourceCache.getGltfJsonLoader = function (options) {
|
|
|
306
306
|
* @private
|
|
307
307
|
*/
|
|
308
308
|
ResourceCache.getBufferViewLoader = function (options) {
|
|
309
|
-
options =
|
|
309
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
310
310
|
const { gltf, bufferViewId, gltfResource, baseResource } = options;
|
|
311
311
|
|
|
312
312
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -354,7 +354,7 @@ ResourceCache.getBufferViewLoader = function (options) {
|
|
|
354
354
|
* @private
|
|
355
355
|
*/
|
|
356
356
|
ResourceCache.getDracoLoader = function (options) {
|
|
357
|
-
options =
|
|
357
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
358
358
|
const { gltf, primitive, draco, gltfResource, baseResource } = options;
|
|
359
359
|
|
|
360
360
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -415,7 +415,7 @@ ResourceCache.getDracoLoader = function (options) {
|
|
|
415
415
|
* @private
|
|
416
416
|
*/
|
|
417
417
|
ResourceCache.getVertexBufferLoader = function (options) {
|
|
418
|
-
options =
|
|
418
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
419
419
|
const {
|
|
420
420
|
gltf,
|
|
421
421
|
gltfResource,
|
|
@@ -544,7 +544,7 @@ function hasDracoCompression(draco, semantic) {
|
|
|
544
544
|
* @private
|
|
545
545
|
*/
|
|
546
546
|
ResourceCache.getIndexBufferLoader = function (options) {
|
|
547
|
-
options =
|
|
547
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
548
548
|
const {
|
|
549
549
|
gltf,
|
|
550
550
|
accessorId,
|
|
@@ -617,7 +617,7 @@ ResourceCache.getIndexBufferLoader = function (options) {
|
|
|
617
617
|
* @private
|
|
618
618
|
*/
|
|
619
619
|
ResourceCache.getImageLoader = function (options) {
|
|
620
|
-
options =
|
|
620
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
621
621
|
const { gltf, imageId, gltfResource, baseResource } = options;
|
|
622
622
|
|
|
623
623
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -667,7 +667,7 @@ ResourceCache.getImageLoader = function (options) {
|
|
|
667
667
|
* @private
|
|
668
668
|
*/
|
|
669
669
|
ResourceCache.getTextureLoader = function (options) {
|
|
670
|
-
options =
|
|
670
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
671
671
|
const {
|
|
672
672
|
gltf,
|
|
673
673
|
textureInfo,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Check from "../Core/Check.js";
|
|
2
|
-
import
|
|
2
|
+
import Frozen from "../Core/Frozen.js";
|
|
3
3
|
import defined from "../Core/defined.js";
|
|
4
4
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
5
5
|
import getAbsoluteUri from "../Core/getAbsoluteUri.js";
|
|
@@ -24,7 +24,7 @@ function getBufferViewCacheKey(bufferView) {
|
|
|
24
24
|
|
|
25
25
|
if (hasExtension(bufferView, "EXT_meshopt_compression")) {
|
|
26
26
|
const meshopt = bufferView.extensions.EXT_meshopt_compression;
|
|
27
|
-
byteOffset =
|
|
27
|
+
byteOffset = meshopt.byteOffset ?? 0;
|
|
28
28
|
byteLength = meshopt.byteLength;
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -148,7 +148,7 @@ ResourceCacheKey.getSchemaCacheKey = function (options) {
|
|
|
148
148
|
* @private
|
|
149
149
|
*/
|
|
150
150
|
ResourceCacheKey.getExternalBufferCacheKey = function (options) {
|
|
151
|
-
options =
|
|
151
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
152
152
|
const { resource } = options;
|
|
153
153
|
|
|
154
154
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -169,7 +169,7 @@ ResourceCacheKey.getExternalBufferCacheKey = function (options) {
|
|
|
169
169
|
* @private
|
|
170
170
|
*/
|
|
171
171
|
ResourceCacheKey.getEmbeddedBufferCacheKey = function (options) {
|
|
172
|
-
options =
|
|
172
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
173
173
|
const { parentResource, bufferId } = options;
|
|
174
174
|
|
|
175
175
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -193,7 +193,7 @@ ResourceCacheKey.getEmbeddedBufferCacheKey = function (options) {
|
|
|
193
193
|
* @private
|
|
194
194
|
*/
|
|
195
195
|
ResourceCacheKey.getGltfCacheKey = function (options) {
|
|
196
|
-
options =
|
|
196
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
197
197
|
const { gltfResource } = options;
|
|
198
198
|
|
|
199
199
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -216,7 +216,7 @@ ResourceCacheKey.getGltfCacheKey = function (options) {
|
|
|
216
216
|
* @private
|
|
217
217
|
*/
|
|
218
218
|
ResourceCacheKey.getBufferViewCacheKey = function (options) {
|
|
219
|
-
options =
|
|
219
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
220
220
|
const { gltf, bufferViewId, gltfResource, baseResource } = options;
|
|
221
221
|
|
|
222
222
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -259,7 +259,7 @@ ResourceCacheKey.getBufferViewCacheKey = function (options) {
|
|
|
259
259
|
* @private
|
|
260
260
|
*/
|
|
261
261
|
ResourceCacheKey.getDracoCacheKey = function (options) {
|
|
262
|
-
options =
|
|
262
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
263
263
|
const { gltf, draco, gltfResource, baseResource } = options;
|
|
264
264
|
|
|
265
265
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -293,7 +293,7 @@ ResourceCacheKey.getDracoCacheKey = function (options) {
|
|
|
293
293
|
* @private
|
|
294
294
|
*/
|
|
295
295
|
ResourceCacheKey.getVertexBufferCacheKey = function (options) {
|
|
296
|
-
options =
|
|
296
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
297
297
|
const {
|
|
298
298
|
gltf,
|
|
299
299
|
gltfResource,
|
|
@@ -406,7 +406,7 @@ function hasDracoCompression(draco, semantic) {
|
|
|
406
406
|
* @private
|
|
407
407
|
*/
|
|
408
408
|
ResourceCacheKey.getIndexBufferCacheKey = function (options) {
|
|
409
|
-
options =
|
|
409
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
410
410
|
const {
|
|
411
411
|
gltf,
|
|
412
412
|
accessorId,
|
|
@@ -483,7 +483,7 @@ ResourceCacheKey.getIndexBufferCacheKey = function (options) {
|
|
|
483
483
|
* @private
|
|
484
484
|
*/
|
|
485
485
|
ResourceCacheKey.getImageCacheKey = function (options) {
|
|
486
|
-
options =
|
|
486
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
487
487
|
const { gltf, imageId, gltfResource, baseResource } = options;
|
|
488
488
|
|
|
489
489
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -518,7 +518,7 @@ ResourceCacheKey.getImageCacheKey = function (options) {
|
|
|
518
518
|
* @private
|
|
519
519
|
*/
|
|
520
520
|
ResourceCacheKey.getTextureCacheKey = function (options) {
|
|
521
|
-
options =
|
|
521
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
522
522
|
const {
|
|
523
523
|
gltf,
|
|
524
524
|
textureInfo,
|
package/Source/Scene/Scene.js
CHANGED
|
@@ -9,7 +9,7 @@ import Color from "../Core/Color.js";
|
|
|
9
9
|
import ColorGeometryInstanceAttribute from "../Core/ColorGeometryInstanceAttribute.js";
|
|
10
10
|
import createGuid from "../Core/createGuid.js";
|
|
11
11
|
import CullingVolume from "../Core/CullingVolume.js";
|
|
12
|
-
import
|
|
12
|
+
import Frozen from "../Core/Frozen.js";
|
|
13
13
|
import defined from "../Core/defined.js";
|
|
14
14
|
import destroyObject from "../Core/destroyObject.js";
|
|
15
15
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
@@ -127,7 +127,7 @@ const requestRenderAfterFrame = function (scene) {
|
|
|
127
127
|
* });
|
|
128
128
|
*/
|
|
129
129
|
function Scene(options) {
|
|
130
|
-
options =
|
|
130
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
131
131
|
const canvas = options.canvas;
|
|
132
132
|
let creditContainer = options.creditContainer;
|
|
133
133
|
let creditViewport = options.creditViewport;
|
|
@@ -162,7 +162,7 @@ function Scene(options) {
|
|
|
162
162
|
new CreditDisplay(creditContainer, "•", creditViewport),
|
|
163
163
|
this._jobScheduler,
|
|
164
164
|
);
|
|
165
|
-
this._frameState.scene3DOnly =
|
|
165
|
+
this._frameState.scene3DOnly = options.scene3DOnly ?? false;
|
|
166
166
|
this._removeCreditContainer = !hasCreditContainer;
|
|
167
167
|
this._creditContainer = creditContainer;
|
|
168
168
|
|
|
@@ -170,7 +170,7 @@ function Scene(options) {
|
|
|
170
170
|
this._context = context;
|
|
171
171
|
this._computeEngine = new ComputeEngine(context);
|
|
172
172
|
|
|
173
|
-
this._ellipsoid =
|
|
173
|
+
this._ellipsoid = options.ellipsoid ?? Ellipsoid.default;
|
|
174
174
|
this._globe = undefined;
|
|
175
175
|
this._globeTranslucencyState = new GlobeTranslucencyState();
|
|
176
176
|
this._primitives = new PrimitiveCollection();
|
|
@@ -193,7 +193,7 @@ function Scene(options) {
|
|
|
193
193
|
this._computeCommandList = [];
|
|
194
194
|
this._overlayCommandList = [];
|
|
195
195
|
|
|
196
|
-
this._useOIT =
|
|
196
|
+
this._useOIT = options.orderIndependentTranslucency ?? true;
|
|
197
197
|
/**
|
|
198
198
|
* The function that will be used for executing translucent commands when
|
|
199
199
|
* useOIT is true. This is created once in
|
|
@@ -237,7 +237,7 @@ function Scene(options) {
|
|
|
237
237
|
this._minimumDisableDepthTestDistance = 0.0;
|
|
238
238
|
this._debugInspector = new DebugInspector();
|
|
239
239
|
|
|
240
|
-
this._msaaSamples =
|
|
240
|
+
this._msaaSamples = options.msaaSamples ?? 4;
|
|
241
241
|
|
|
242
242
|
/**
|
|
243
243
|
* Exceptions occurring in <code>render</code> are always caught in order to raise the
|
|
@@ -569,7 +569,7 @@ function Scene(options) {
|
|
|
569
569
|
this.shadowMap = new ShadowMap({
|
|
570
570
|
context: context,
|
|
571
571
|
lightCamera: this._shadowMapCamera,
|
|
572
|
-
enabled:
|
|
572
|
+
enabled: options.shadows ?? false,
|
|
573
573
|
});
|
|
574
574
|
|
|
575
575
|
/**
|
|
@@ -619,7 +619,7 @@ function Scene(options) {
|
|
|
619
619
|
|
|
620
620
|
this._screenSpaceCameraController = new ScreenSpaceCameraController(this);
|
|
621
621
|
this._cameraUnderground = false;
|
|
622
|
-
this._mapMode2D =
|
|
622
|
+
this._mapMode2D = options.mapMode2D ?? MapMode2D.INFINITE_SCROLL;
|
|
623
623
|
|
|
624
624
|
// Keeps track of the state of a frame. FrameState is the state across
|
|
625
625
|
// the primitives of the scene. This state is for internally keeping track
|
|
@@ -667,7 +667,7 @@ function Scene(options) {
|
|
|
667
667
|
* @type {boolean}
|
|
668
668
|
* @default false
|
|
669
669
|
*/
|
|
670
|
-
this.requestRenderMode =
|
|
670
|
+
this.requestRenderMode = options.requestRenderMode ?? false;
|
|
671
671
|
this._renderRequested = true;
|
|
672
672
|
|
|
673
673
|
/**
|
|
@@ -684,10 +684,7 @@ function Scene(options) {
|
|
|
684
684
|
* @type {number}
|
|
685
685
|
* @default 0.0
|
|
686
686
|
*/
|
|
687
|
-
this.maximumRenderTimeChange =
|
|
688
|
-
options.maximumRenderTimeChange,
|
|
689
|
-
0.0,
|
|
690
|
-
);
|
|
687
|
+
this.maximumRenderTimeChange = options.maximumRenderTimeChange ?? 0.0;
|
|
691
688
|
this._lastRenderTime = undefined;
|
|
692
689
|
this._frameRateMonitor = undefined;
|
|
693
690
|
|
|
@@ -3105,8 +3102,8 @@ function executeWebVRCommands(scene, passState) {
|
|
|
3105
3102
|
savedCamera.frustum = camera.frustum;
|
|
3106
3103
|
|
|
3107
3104
|
const near = camera.frustum.near;
|
|
3108
|
-
const fo = near *
|
|
3109
|
-
const eyeSeparation =
|
|
3105
|
+
const fo = near * (scene.focalLength ?? 5.0);
|
|
3106
|
+
const eyeSeparation = scene.eyeSeparation ?? fo / 30.0;
|
|
3110
3107
|
const eyeTranslation = Cartesian3.multiplyByScalar(
|
|
3111
3108
|
savedCamera.right,
|
|
3112
3109
|
eyeSeparation * 0.5,
|
|
@@ -3769,9 +3766,8 @@ Scene.prototype.resolveFramebuffers = function (passState) {
|
|
|
3769
3766
|
const postProcess = this.postProcessStages;
|
|
3770
3767
|
const colorTexture = inputFramebuffer.getColorTexture(0);
|
|
3771
3768
|
const idTexture = idFramebuffer.getColorTexture(0);
|
|
3772
|
-
const depthTexture =
|
|
3773
|
-
globeFramebuffer
|
|
3774
|
-
sceneFramebuffer,
|
|
3769
|
+
const depthTexture = (
|
|
3770
|
+
globeFramebuffer ?? sceneFramebuffer
|
|
3775
3771
|
).getDepthStencilTexture();
|
|
3776
3772
|
postProcess.execute(context, colorTexture, depthTexture, idTexture);
|
|
3777
3773
|
postProcess.copy(context, originalFramebuffer);
|
|
@@ -3909,10 +3905,17 @@ Scene.prototype.updateHeight = function (
|
|
|
3909
3905
|
Check.typeOf.func("callback", callback);
|
|
3910
3906
|
//>>includeEnd('debug');
|
|
3911
3907
|
|
|
3912
|
-
const
|
|
3908
|
+
const ellipsoid = this._ellipsoid;
|
|
3909
|
+
const callbackWrapper = (clampedCartographic) => {
|
|
3913
3910
|
Cartographic.clone(cartographic, updateHeightScratchCartographic);
|
|
3914
3911
|
|
|
3915
|
-
|
|
3912
|
+
let height;
|
|
3913
|
+
if (defined(clampedCartographic)) {
|
|
3914
|
+
height = clampedCartographic.height;
|
|
3915
|
+
}
|
|
3916
|
+
if (!defined(height)) {
|
|
3917
|
+
height = this.getHeight(cartographic, heightReference);
|
|
3918
|
+
}
|
|
3916
3919
|
if (defined(height)) {
|
|
3917
3920
|
updateHeightScratchCartographic.height = height;
|
|
3918
3921
|
callback(updateHeightScratchCartographic);
|
|
@@ -3936,7 +3939,6 @@ Scene.prototype.updateHeight = function (
|
|
|
3936
3939
|
}
|
|
3937
3940
|
|
|
3938
3941
|
let tilesetRemoveCallbacks = {};
|
|
3939
|
-
const ellipsoid = this._ellipsoid;
|
|
3940
3942
|
const createPrimitiveEventListener = (primitive) => {
|
|
3941
3943
|
if (
|
|
3942
3944
|
ignore3dTiles ||
|
|
@@ -4126,7 +4128,7 @@ function render(scene) {
|
|
|
4126
4128
|
frameState.passes.postProcess = scene.postProcessStages.hasSelected;
|
|
4127
4129
|
frameState.tilesetPassState = renderTilesetPassState;
|
|
4128
4130
|
|
|
4129
|
-
let backgroundColor =
|
|
4131
|
+
let backgroundColor = scene.backgroundColor ?? Color.BLACK;
|
|
4130
4132
|
if (scene._hdr) {
|
|
4131
4133
|
backgroundColor = Color.clone(backgroundColor, scratchBackgroundColor);
|
|
4132
4134
|
backgroundColor.red = Math.pow(backgroundColor.red, scene.gamma);
|
|
@@ -4919,7 +4921,7 @@ Scene.prototype.completeMorph = function () {
|
|
|
4919
4921
|
* @param {number} [duration=2.0] The amount of time, in seconds, for transition animations to complete.
|
|
4920
4922
|
*/
|
|
4921
4923
|
Scene.prototype.morphTo2D = function (duration) {
|
|
4922
|
-
duration =
|
|
4924
|
+
duration = duration ?? 2.0;
|
|
4923
4925
|
this._transitioner.morphTo2D(duration, this._ellipsoid);
|
|
4924
4926
|
};
|
|
4925
4927
|
|
|
@@ -4928,7 +4930,7 @@ Scene.prototype.morphTo2D = function (duration) {
|
|
|
4928
4930
|
* @param {number} [duration=2.0] The amount of time, in seconds, for transition animations to complete.
|
|
4929
4931
|
*/
|
|
4930
4932
|
Scene.prototype.morphToColumbusView = function (duration) {
|
|
4931
|
-
duration =
|
|
4933
|
+
duration = duration ?? 2.0;
|
|
4932
4934
|
this._transitioner.morphToColumbusView(duration, this._ellipsoid);
|
|
4933
4935
|
};
|
|
4934
4936
|
|
|
@@ -4937,7 +4939,7 @@ Scene.prototype.morphToColumbusView = function (duration) {
|
|
|
4937
4939
|
* @param {number} [duration=2.0] The amount of time, in seconds, for transition animations to complete.
|
|
4938
4940
|
*/
|
|
4939
4941
|
Scene.prototype.morphTo3D = function (duration) {
|
|
4940
|
-
duration =
|
|
4942
|
+
duration = duration ?? 2.0;
|
|
4941
4943
|
this._transitioner.morphTo3D(duration, this._ellipsoid);
|
|
4942
4944
|
};
|
|
4943
4945
|
|
|
@@ -2,7 +2,6 @@ import Cartesian2 from "../Core/Cartesian2.js";
|
|
|
2
2
|
import Cartesian3 from "../Core/Cartesian3.js";
|
|
3
3
|
import Cartesian4 from "../Core/Cartesian4.js";
|
|
4
4
|
import Cartographic from "../Core/Cartographic.js";
|
|
5
|
-
import defaultValue from "../Core/defaultValue.js";
|
|
6
5
|
import defined from "../Core/defined.js";
|
|
7
6
|
import destroyObject from "../Core/destroyObject.js";
|
|
8
7
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
@@ -225,7 +224,7 @@ function ScreenSpaceCameraController(scene) {
|
|
|
225
224
|
modifier: KeyboardEventModifier.SHIFT,
|
|
226
225
|
};
|
|
227
226
|
|
|
228
|
-
const ellipsoid =
|
|
227
|
+
const ellipsoid = scene.ellipsoid ?? Ellipsoid.default;
|
|
229
228
|
|
|
230
229
|
/**
|
|
231
230
|
* The minimum height the camera must be before picking the terrain or scene content instead of the ellipsoid. Defaults to scene.ellipsoid.minimumRadius * 0.025 when another ellipsoid than WGS84 is used.
|
|
@@ -623,10 +622,9 @@ function handleZoom(
|
|
|
623
622
|
orientation.pitch = camera.pitch;
|
|
624
623
|
orientation.roll = camera.roll;
|
|
625
624
|
|
|
626
|
-
const sameStartPosition =
|
|
627
|
-
movement.inertiaEnabled
|
|
628
|
-
Cartesian2.equals(startPosition, object._zoomMouseStart)
|
|
629
|
-
);
|
|
625
|
+
const sameStartPosition =
|
|
626
|
+
movement.inertiaEnabled ??
|
|
627
|
+
Cartesian2.equals(startPosition, object._zoomMouseStart);
|
|
630
628
|
let zoomingOnVector = object._zoomingOnVector;
|
|
631
629
|
let rotatingZoom = object._rotatingZoom;
|
|
632
630
|
let pickedPosition;
|
|
@@ -1202,7 +1200,7 @@ function getDistanceFromSurface(controller) {
|
|
|
1202
1200
|
} else {
|
|
1203
1201
|
height = camera.position.z;
|
|
1204
1202
|
}
|
|
1205
|
-
const globeHeight =
|
|
1203
|
+
const globeHeight = controller._scene.globeHeight ?? 0.0;
|
|
1206
1204
|
const distanceFromSurface = Math.abs(globeHeight - height);
|
|
1207
1205
|
return distanceFromSurface;
|
|
1208
1206
|
}
|
|
@@ -2030,8 +2028,8 @@ function rotate3D(
|
|
|
2030
2028
|
rotateOnlyVertical,
|
|
2031
2029
|
rotateOnlyHorizontal,
|
|
2032
2030
|
) {
|
|
2033
|
-
rotateOnlyVertical =
|
|
2034
|
-
rotateOnlyHorizontal =
|
|
2031
|
+
rotateOnlyVertical = rotateOnlyVertical ?? false;
|
|
2032
|
+
rotateOnlyHorizontal = rotateOnlyHorizontal ?? false;
|
|
2035
2033
|
|
|
2036
2034
|
const scene = controller._scene;
|
|
2037
2035
|
const camera = scene.camera;
|
|
@@ -2818,7 +2816,7 @@ function look3D(controller, startPosition, movement, rotationAxis) {
|
|
|
2818
2816
|
}
|
|
2819
2817
|
angle = movement.startPosition.y > movement.endPosition.y ? -angle : angle;
|
|
2820
2818
|
|
|
2821
|
-
rotationAxis =
|
|
2819
|
+
rotationAxis = rotationAxis ?? horizontalRotationAxis;
|
|
2822
2820
|
if (defined(rotationAxis)) {
|
|
2823
2821
|
const direction = camera.direction;
|
|
2824
2822
|
const negativeRotationAxis = Cartesian3.negate(
|
|
@@ -2905,7 +2903,7 @@ function adjustHeightForTerrain(controller, cameraChanged) {
|
|
|
2905
2903
|
}
|
|
2906
2904
|
|
|
2907
2905
|
const camera = scene.camera;
|
|
2908
|
-
const ellipsoid =
|
|
2906
|
+
const ellipsoid = scene.ellipsoid ?? Ellipsoid.WGS84;
|
|
2909
2907
|
const projection = scene.mapProjection;
|
|
2910
2908
|
|
|
2911
2909
|
let transform;
|
|
@@ -3004,7 +3002,7 @@ ScreenSpaceCameraController.prototype.update = function () {
|
|
|
3004
3002
|
this._ellipsoid = Ellipsoid.UNIT_SPHERE;
|
|
3005
3003
|
} else {
|
|
3006
3004
|
this._globe = globe;
|
|
3007
|
-
this._ellipsoid =
|
|
3005
|
+
this._ellipsoid = scene.ellipsoid ?? Ellipsoid.default;
|
|
3008
3006
|
}
|
|
3009
3007
|
|
|
3010
3008
|
const { verticalExaggeration, verticalExaggerationRelativeHeight } = scene;
|