@cesium/engine 26.1.0 → 26.2.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/ThirdParty/Workers/zip-web-worker.js +586 -480
- package/Build/Workers/chunk-27FWRTJI.js +454 -0
- package/Build/Workers/chunk-2H5264K7.js +1284 -0
- package/Build/Workers/chunk-2H73KDBM.js +511 -0
- package/Build/Workers/chunk-2RGJPWQX.js +1284 -0
- package/Build/Workers/chunk-2Z4ZLVOD.js +352 -0
- package/Build/Workers/chunk-2ZKH2QZB.js +387 -0
- package/Build/Workers/chunk-36NI5E6W.js +3820 -0
- package/Build/Workers/chunk-37SW7SYS.js +778 -0
- package/Build/Workers/chunk-3GHVJ3SO.js +455 -0
- package/Build/Workers/chunk-3LB4UVPU.js +387 -0
- package/Build/Workers/chunk-3PONLKEL.js +778 -0
- package/Build/Workers/chunk-3PSS3T43.js +102 -0
- package/Build/Workers/chunk-3QR662HH.js +3820 -0
- package/Build/Workers/chunk-3SX2WYSO.js +973 -0
- package/Build/Workers/chunk-3UDN6LYX.js +476 -0
- package/Build/Workers/chunk-47MCBSXI.js +9237 -0
- package/Build/Workers/chunk-4E626OCE.js +1067 -0
- package/Build/Workers/chunk-4NW2MJKH.js +455 -0
- package/Build/Workers/chunk-52YK5BSN.js +198 -0
- package/Build/Workers/chunk-5RNAQZK6.js +9234 -0
- package/Build/Workers/chunk-5YPQBFRD.js +519 -0
- package/Build/Workers/chunk-6FHT43QR.js +140 -0
- package/Build/Workers/chunk-6FZDPMTO.js +455 -0
- package/Build/Workers/chunk-6R5X2GUA.js +1284 -0
- package/Build/Workers/chunk-7A2OGDHT.js +305 -0
- package/Build/Workers/chunk-7CGEQUM2.js +305 -0
- package/Build/Workers/chunk-7I325HV6.js +1344 -0
- package/Build/Workers/chunk-7MM3N2VE.js +1067 -0
- package/Build/Workers/chunk-7TKLTCZW.js +219 -0
- package/Build/Workers/chunk-7UUKBDH6.js +1054 -0
- package/Build/Workers/chunk-7W6DUHAB.js +693 -0
- package/Build/Workers/chunk-7XM5JK5F.js +162 -0
- package/Build/Workers/chunk-7YG3ND3P.js +454 -0
- package/Build/Workers/chunk-A62YI6S6.js +305 -0
- package/Build/Workers/chunk-A7TTWVTF.js +2719 -0
- package/Build/Workers/chunk-ACTVJHSP.js +519 -0
- package/Build/Workers/chunk-ADX3CBKD.js +9234 -0
- package/Build/Workers/chunk-AF7DTMJ7.js +398 -0
- package/Build/Workers/chunk-AJSFRY4U.js +1344 -0
- package/Build/Workers/chunk-ARZICEEP.js +301 -0
- package/Build/Workers/chunk-B3QHNA4A.js +147 -0
- package/Build/Workers/chunk-BKPQFCXH.js +511 -0
- package/Build/Workers/chunk-BSPCI2LO.js +959 -0
- package/Build/Workers/chunk-BUJWSX5S.js +301 -0
- package/Build/Workers/chunk-C7QDUNI3.js +138 -0
- package/Build/Workers/chunk-CIV5DJOQ.js +778 -0
- package/Build/Workers/chunk-CQNFIAZU.js +56 -0
- package/Build/Workers/chunk-CRCGE4J4.js +9237 -0
- package/Build/Workers/chunk-CUTRKXUQ.js +288 -0
- package/Build/Workers/chunk-D6AY775A.js +3201 -0
- package/Build/Workers/chunk-DSGLDRTI.js +278 -0
- package/Build/Workers/chunk-DZBQUULR.js +138 -0
- package/Build/Workers/chunk-DZUFEE4L.js +140 -0
- package/Build/Workers/chunk-E2NKV5YT.js +3820 -0
- package/Build/Workers/chunk-EB3Y5P3A.js +368 -0
- package/Build/Workers/chunk-ELE6SC2C.js +837 -0
- package/Build/Workers/chunk-EOWDZN5S.js +288 -0
- package/Build/Workers/chunk-ERKUET22.js +3201 -0
- package/Build/Workers/chunk-EZGQPOIG.js +162 -0
- package/Build/Workers/chunk-F2IMBMZY.js +241 -0
- package/Build/Workers/chunk-F4CSNRZO.js +219 -0
- package/Build/Workers/chunk-FBP4DUQJ.js +693 -0
- package/Build/Workers/chunk-FJWZMGOQ.js +1992 -0
- package/Build/Workers/chunk-FQ42MT7M.js +58 -0
- package/Build/Workers/chunk-FU4BGABC.js +398 -0
- package/Build/Workers/chunk-FX3VEAIU.js +2719 -0
- package/Build/Workers/chunk-GGNWQWSB.js +301 -0
- package/Build/Workers/chunk-GHXVQVUM.js +1344 -0
- package/Build/Workers/chunk-GNKXEN4C.js +682 -0
- package/Build/Workers/chunk-GVA7XQI2.js +368 -0
- package/Build/Workers/chunk-GXDHRC4J.js +1344 -0
- package/Build/Workers/chunk-GYSYP6PC.js +1067 -0
- package/Build/Workers/chunk-H2WCFXLP.js +241 -0
- package/Build/Workers/chunk-HDL4HOXZ.js +778 -0
- package/Build/Workers/chunk-HLW2ZRVK.js +368 -0
- package/Build/Workers/chunk-HT6FASOT.js +973 -0
- package/Build/Workers/chunk-I74ZH5LK.js +959 -0
- package/Build/Workers/chunk-IDVHUDZT.js +352 -0
- package/Build/Workers/chunk-IJZJMIUY.js +789 -0
- package/Build/Workers/chunk-IMBVP57H.js +44 -0
- package/Build/Workers/chunk-IOO7Z2AV.js +57 -0
- package/Build/Workers/chunk-IUIFLOYO.js +44 -0
- package/Build/Workers/chunk-J73T2VOY.js +171 -0
- package/Build/Workers/chunk-JALGQYDY.js +288 -0
- package/Build/Workers/chunk-JXYLJCTC.js +124 -0
- package/Build/Workers/chunk-K27QOAW6.js +97 -0
- package/Build/Workers/chunk-KMV25A63.js +789 -0
- package/Build/Workers/chunk-KP5QD7WU.js +693 -0
- package/Build/Workers/chunk-KZWFWJML.js +2719 -0
- package/Build/Workers/chunk-LCXRRALY.js +387 -0
- package/Build/Workers/chunk-LDRQSYBN.js +1800 -0
- package/Build/Workers/chunk-M4JZ6TSZ.js +959 -0
- package/Build/Workers/chunk-M6QKXVAU.js +1054 -0
- package/Build/Workers/chunk-MAAHFYPC.js +198 -0
- package/Build/Workers/chunk-MCJDRDJQ.js +102 -0
- package/Build/Workers/chunk-MEENMEAH.js +198 -0
- package/Build/Workers/chunk-NAWU5RF4.js +162 -0
- package/Build/Workers/chunk-NCL22ZUX.js +56 -0
- package/Build/Workers/chunk-NEFDMMLY.js +241 -0
- package/Build/Workers/chunk-NJVBJG63.js +124 -0
- package/Build/Workers/chunk-NLLCQBX3.js +73 -0
- package/Build/Workers/chunk-NSKZ6SBK.js +1483 -0
- package/Build/Workers/chunk-NXGQBQWE.js +837 -0
- package/Build/Workers/chunk-O3DKEX7Q.js +352 -0
- package/Build/Workers/chunk-O3XFXGPZ.js +476 -0
- package/Build/Workers/chunk-OA6MYL2C.js +837 -0
- package/Build/Workers/chunk-OHP4ELS7.js +198 -0
- package/Build/Workers/chunk-OZGPS7FB.js +138 -0
- package/Build/Workers/chunk-PCL3Y7H5.js +82 -0
- package/Build/Workers/chunk-PD4GK4EM.js +57 -0
- package/Build/Workers/chunk-PEDU33QG.js +2342 -0
- package/Build/Workers/chunk-PRWUMCXF.js +682 -0
- package/Build/Workers/chunk-PVTSNNVI.js +288 -0
- package/Build/Workers/chunk-QFSSCLLZ.js +973 -0
- package/Build/Workers/chunk-QHPZH22L.js +241 -0
- package/Build/Workers/chunk-QIZDWZK6.js +301 -0
- package/Build/Workers/chunk-QV6DG2YX.js +1483 -0
- package/Build/Workers/chunk-R4K7EHOU.js +171 -0
- package/Build/Workers/chunk-R7JGHDD6.js +789 -0
- package/Build/Workers/chunk-RASQEYD4.js +1483 -0
- package/Build/Workers/chunk-RW6ITX7Q.js +3820 -0
- package/Build/Workers/chunk-RYSQVJR6.js +398 -0
- package/Build/Workers/chunk-S6RJU5NM.js +1054 -0
- package/Build/Workers/chunk-SA2A2AN5.js +2342 -0
- package/Build/Workers/chunk-SDFHDNS4.js +147 -0
- package/Build/Workers/chunk-SJYSIOEM.js +414 -0
- package/Build/Workers/chunk-SMTGMFBL.js +97 -0
- package/Build/Workers/chunk-SXSP3JHS.js +38 -0
- package/Build/Workers/chunk-TN35HP5B.js +1067 -0
- package/Build/Workers/chunk-TNWKJNUZ.js +454 -0
- package/Build/Workers/chunk-TOAF47AQ.js +102 -0
- package/Build/Workers/chunk-TQ4QCOXT.js +2719 -0
- package/Build/Workers/chunk-TSDSILQB.js +124 -0
- package/Build/Workers/chunk-U5LV3F3Z.js +1054 -0
- package/Build/Workers/chunk-UAZUP4I5.js +1992 -0
- package/Build/Workers/chunk-UF46SZEZ.js +789 -0
- package/Build/Workers/chunk-UNRTMCET.js +398 -0
- package/Build/Workers/chunk-UTB7U3O6.js +1992 -0
- package/Build/Workers/chunk-V46YGZE6.js +352 -0
- package/Build/Workers/chunk-VDGOCROW.js +57 -0
- package/Build/Workers/chunk-VFWSSBPT.js +511 -0
- package/Build/Workers/chunk-VVYMXI3I.js +1284 -0
- package/Build/Workers/chunk-VXWHPYQM.js +837 -0
- package/Build/Workers/chunk-VXYUBRSB.js +219 -0
- package/Build/Workers/chunk-VZLDLEWI.js +387 -0
- package/Build/Workers/chunk-W5OCKMPJ.js +101 -0
- package/Build/Workers/chunk-WN3F4CVG.js +3201 -0
- package/Build/Workers/chunk-WPRUWXGV.js +693 -0
- package/Build/Workers/chunk-WTO2ERBP.js +414 -0
- package/Build/Workers/chunk-WVHMDVG4.js +959 -0
- package/Build/Workers/chunk-XCBZVTIV.js +280 -0
- package/Build/Workers/chunk-XGA23TAX.js +73 -0
- package/Build/Workers/chunk-XLQZNQ4Z.js +163 -0
- package/Build/Workers/chunk-XQH66YJC.js +147 -0
- package/Build/Workers/chunk-XTA7BXJG.js +682 -0
- package/Build/Workers/chunk-XTIDAFRS.js +476 -0
- package/Build/Workers/chunk-XUEDWBUD.js +682 -0
- package/Build/Workers/chunk-XYFLRH3H.js +124 -0
- package/Build/Workers/chunk-Y7JRTRTO.js +305 -0
- package/Build/Workers/chunk-Y7QSMDCJ.js +352 -0
- package/Build/Workers/chunk-YCB5TYTR.js +1483 -0
- package/Build/Workers/chunk-YEYOSTJX.js +219 -0
- package/Build/Workers/chunk-YGFVAGYF.js +630 -0
- package/Build/Workers/chunk-YIIACKQO.js +368 -0
- package/Build/Workers/chunk-YJGSP6PE.js +511 -0
- package/Build/Workers/chunk-Z4LR5EHE.js +454 -0
- package/Build/Workers/chunk-Z66EVE2A.js +44 -0
- package/Build/Workers/chunk-ZHIHHHTB.js +414 -0
- package/Build/Workers/chunk-ZNWHFSLE.js +171 -0
- package/Build/Workers/chunk-ZQLZG4IN.js +2342 -0
- package/Build/Workers/chunk-ZRTSMUZ2.js +414 -0
- package/Build/Workers/chunk-ZZUVT5BM.js +476 -0
- package/Build/Workers/combineGeometry.js +16 -16
- package/Build/Workers/createBoxGeometry.js +10 -10
- package/Build/Workers/createBoxOutlineGeometry.js +8 -8
- package/Build/Workers/createCircleGeometry.js +18 -18
- package/Build/Workers/createCircleOutlineGeometry.js +11 -11
- package/Build/Workers/createCoplanarPolygonGeometry.js +27 -27
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +23 -23
- package/Build/Workers/createCorridorGeometry.js +23 -25
- package/Build/Workers/createCorridorOutlineGeometry.js +21 -23
- package/Build/Workers/createCylinderGeometry.js +12 -12
- package/Build/Workers/createCylinderOutlineGeometry.js +10 -10
- package/Build/Workers/createEllipseGeometry.js +18 -18
- package/Build/Workers/createEllipseOutlineGeometry.js +11 -11
- package/Build/Workers/createEllipsoidGeometry.js +11 -11
- package/Build/Workers/createEllipsoidOutlineGeometry.js +10 -10
- package/Build/Workers/createFrustumGeometry.js +11 -11
- package/Build/Workers/createFrustumOutlineGeometry.js +11 -11
- package/Build/Workers/createGeometry.js +16 -16
- package/Build/Workers/createGroundPolylineGeometry.js +16 -16
- package/Build/Workers/createPlaneGeometry.js +9 -9
- package/Build/Workers/createPlaneOutlineGeometry.js +8 -8
- package/Build/Workers/createPolygonGeometry.js +25 -25
- package/Build/Workers/createPolygonOutlineGeometry.js +22 -22
- package/Build/Workers/createPolylineGeometry.js +18 -18
- package/Build/Workers/createPolylineVolumeGeometry.js +24 -24
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +20 -20
- package/Build/Workers/createRectangleGeometry.js +19 -19
- package/Build/Workers/createRectangleOutlineGeometry.js +13 -13
- package/Build/Workers/createSimplePolylineGeometry.js +16 -16
- package/Build/Workers/createSphereGeometry.js +11 -11
- package/Build/Workers/createSphereOutlineGeometry.js +10 -10
- package/Build/Workers/createVectorTileClampedPolylines.js +7 -7
- package/Build/Workers/createVectorTileGeometries.js +15 -15
- package/Build/Workers/createVectorTilePoints.js +6 -6
- package/Build/Workers/createVectorTilePolygons.js +14 -14
- package/Build/Workers/createVectorTilePolylines.js +7 -7
- package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +17 -17
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +14 -14
- package/Build/Workers/createVerticesFromHeightmap.js +14 -14
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +12 -12
- package/Build/Workers/createWallGeometry.js +17 -17
- package/Build/Workers/createWallOutlineGeometry.js +17 -17
- package/Build/Workers/decodeDraco.js +2 -2
- package/Build/Workers/decodeI3S.js +5 -5
- package/Build/Workers/incrementallyBuildTerrainPicker.js +4 -4
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +14 -14
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +17 -17
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +1 -5
- package/Source/Core/BoundingSphere.js +0 -3
- package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +3 -4
- package/Source/Core/CoplanarPolygonGeometry.js +2 -2
- package/Source/Core/CorridorGeometry.js +2 -4
- package/Source/Core/CorridorOutlineGeometry.js +1 -3
- package/Source/Core/EarthOrientationParameters.js +2 -2
- package/Source/Core/EllipseGeometryLibrary.js +2 -2
- package/Source/Core/EllipsoidGeodesic.js +3 -3
- package/Source/Core/EllipsoidRhumbLine.js +1 -1
- package/Source/Core/GroundPolylineGeometry.js +2 -2
- package/Source/Core/Heap.js +1 -1
- package/Source/Core/HermitePolynomialApproximation.js +215 -179
- package/Source/Core/InterpolationAlgorithm.js +1 -0
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/JulianDate.js +1 -1
- package/Source/Core/LagrangePolynomialApproximation.js +55 -52
- package/Source/Core/LinearApproximation.js +69 -66
- package/Source/Core/Math.js +59 -0
- package/Source/Core/Matrix2.js +2 -2
- package/Source/Core/Matrix3.js +2 -2
- package/Source/Core/OrthographicFrustum.js +1 -1
- package/Source/Core/PerspectiveFrustum.js +1 -1
- package/Source/Core/PolygonGeometry.js +2 -2
- package/Source/Core/PolygonGeometryLibrary.js +1 -1
- package/Source/Core/PolygonOutlineGeometry.js +1 -1
- package/Source/Core/PolylineGeometry.js +1 -1
- package/Source/Core/PolylineVolumeGeometryLibrary.js +1 -1
- package/Source/Core/Rectangle.js +7 -1
- package/Source/Core/RectangleOutlineGeometry.js +1 -1
- package/Source/Core/SimplePolylineGeometry.js +1 -1
- package/Source/Core/TerrainEncoding.js +2 -2
- package/Source/Core/TerrainPicker.js +179 -168
- package/Source/Core/TimeIntervalCollection.js +1 -3
- package/Source/Core/Tipsify.js +1 -1
- package/Source/Core/Transforms.js +5 -1
- package/Source/Core/VectorPipeline.js +1117 -0
- package/Source/Core/VectorProvider.js +429 -0
- package/Source/Core/WallOutlineGeometry.js +1 -1
- package/Source/Core/getTimestamp.js +4 -2
- package/Source/DataSources/CompositeEntityCollection.js +0 -1
- package/Source/DataSources/CzmlDataSource.js +2 -0
- package/Source/DataSources/DataSourceDisplay.js +1 -1
- package/Source/DataSources/GeoJsonDataSource.js +0 -1
- package/Source/DataSources/GeometryVisualizer.js +1 -1
- package/Source/DataSources/KmlDataSource.js +1 -2
- package/Source/DataSources/PolylineVisualizer.js +1 -1
- package/Source/DataSources/StaticOutlineGeometryBatch.js +1 -1
- package/Source/Renderer/AutomaticUniforms.js +23 -0
- package/Source/Renderer/Context.js +9 -3
- package/Source/Renderer/DrawCommand.js +22 -0
- package/Source/Renderer/Framebuffer.js +4 -0
- package/Source/Renderer/Pass.js +11 -10
- package/Source/Renderer/Texture.js +11 -0
- package/Source/Renderer/UniformState.js +7 -0
- package/Source/Renderer/VertexArray.js +0 -1
- package/Source/Scene/ArcGisMapServerImageryProvider.js +0 -5
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/Billboard.js +2 -1
- package/Source/Scene/BillboardCollection.js +7 -3
- package/Source/Scene/BufferPrimitiveCollection.js +27 -5
- package/Source/Scene/Camera.js +71 -5
- package/Source/Scene/Cesium3DTileset.js +1 -1
- package/Source/Scene/ClippingPlaneCollection.js +2 -2
- package/Source/Scene/Controllers/Controller.js +63 -0
- package/Source/Scene/Controllers/ControllerHost.js +78 -0
- package/Source/Scene/Controllers/HybridScreenSpacePanCameraController.js +106 -0
- package/Source/Scene/Controllers/MouseButton.js +32 -0
- package/Source/Scene/Controllers/ScreenSpaceElevatorCameraController.js +295 -0
- package/Source/Scene/Controllers/ScreenSpaceInputBindings.js +154 -0
- package/Source/Scene/Controllers/ScreenSpaceMapCameraController.js +310 -0
- package/Source/Scene/Controllers/ScreenSpaceTiltOrbitCameraController.js +642 -0
- package/Source/Scene/Controllers/ScreenSpaceZoomCameraController.js +431 -0
- package/Source/Scene/Controllers/defaultPickWorldPosition.js +84 -0
- package/Source/Scene/DerivedCommand.js +94 -0
- package/Source/Scene/EdgeFramebuffer.js +1 -5
- package/Source/Scene/FrameState.js +17 -0
- package/Source/Scene/Globe.js +20 -0
- package/Source/Scene/GlobeDepth.js +27 -1
- package/Source/Scene/GlobeSurfaceShaderSet.js +12 -2
- package/Source/Scene/GlobeSurfaceTile.js +48 -10
- package/Source/Scene/GlobeSurfaceTileProvider.js +121 -3
- package/Source/Scene/GltfLoader.js +32 -3
- package/Source/Scene/GltfSpzLoader.js +1 -1
- package/Source/Scene/GltfVertexBufferLoader.js +6 -3
- package/Source/Scene/I3SDataProvider.js +1 -1
- package/Source/Scene/I3SLayer.js +1 -1
- package/Source/Scene/I3SNode.js +2 -2
- package/Source/Scene/ImageryLayerCollection.js +188 -4
- package/Source/Scene/IonImageryProvider.js +1 -5
- package/Source/Scene/Label.js +4 -4
- package/Source/Scene/LabelCollection.js +1 -1
- package/Source/Scene/MVTDataProvider.js +2 -0
- package/Source/Scene/Model/B3dmLoader.js +1 -2
- package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +10 -8
- package/Source/Scene/Model/I3dmLoader.js +1 -1
- package/Source/Scene/Model/InstancingPipelineStage.js +4 -7
- package/Source/Scene/Model/MaterialPipelineStage.js +124 -1
- package/Source/Scene/Model/Model.js +8 -10
- package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +28 -1
- package/Source/Scene/Model/ModelDrawCommand.js +160 -16
- package/Source/Scene/Model/ModelDrawCommands.js +4 -0
- package/Source/Scene/Model/ModelSceneGraph.js +21 -0
- package/Source/Scene/Model/PickingPipelineStage.js +29 -0
- package/Source/Scene/Model/PrimitiveRenderResources.js +24 -0
- package/Source/Scene/ModelComponents.js +71 -0
- package/Source/Scene/Picking.js +16 -5
- package/Source/Scene/PlanarFillIdFramebuffer.js +172 -0
- package/Source/Scene/PntsParser.js +0 -1
- package/Source/Scene/PolylineCollection.js +1 -1
- package/Source/Scene/PostProcessStage.js +4 -2
- package/Source/Scene/ResourceCache.js +7 -4
- package/Source/Scene/ResourceCacheKey.js +16 -13
- package/Source/Scene/Scene.js +202 -5
- package/Source/Scene/ScreenSpaceCameraController.js +1 -2
- package/Source/Scene/ShadowMap.js +9 -3
- package/Source/Scene/ShadowMapShader.js +50 -2
- package/Source/Scene/SnapFramebuffer.js +121 -0
- package/Source/Scene/Snapping.js +184 -0
- package/Source/Scene/TerrainFillMesh.js +3 -2
- package/Source/Scene/UrlTemplate3DTilesDataProvider.js +1 -1
- package/Source/Scene/Vector3DTileContent.js +2 -3
- package/Source/Scene/VectorGltf3DTileContent.js +23 -3
- package/Source/Scene/View.js +10 -8
- package/Source/Scene/VoxelTraversal.js +1 -1
- package/Source/Scene/createElevationBandMaterial.js +1 -1
- package/Source/Scene/renderBufferPointCollection.js +1 -2
- package/Source/Scene/renderBufferPolygonCollection.js +1 -2
- package/Source/Scene/renderBufferPolylineCollection.js +1 -2
- package/Source/Shaders/Builtin/Constants/passCesium3DTile.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTile.js +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.js +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.js +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.js +11 -0
- package/Source/Shaders/Builtin/Constants/passClassification.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passClassification.js +1 -1
- package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passGaussianSplats.js +1 -1
- package/Source/Shaders/Builtin/Constants/passOpaque.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passOpaque.js +1 -1
- package/Source/Shaders/Builtin/Constants/passTranslucent.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passTranslucent.js +1 -1
- package/Source/Shaders/Builtin/Constants/passVoxels.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passVoxels.js +1 -1
- package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
- package/Source/Shaders/GlobeFS.glsl +10 -5
- package/Source/Shaders/GlobeFS.js +9 -5
- package/Source/Shaders/Materials/PolylineGlowMaterial.glsl +1 -1
- package/Source/Shaders/Materials/PolylineGlowMaterial.js +1 -1
- package/Source/Shaders/Model/MaterialStageFS.glsl +8 -2
- package/Source/Shaders/Model/MaterialStageFS.js +8 -2
- package/Source/Shaders/Model/ModelFS.glsl +105 -0
- package/Source/Shaders/Model/ModelFS.js +105 -0
- package/Source/Shaders/VectorCommon.glsl +178 -0
- package/Source/Shaders/VectorCommon.js +75 -0
- package/Source/ThirdParty/Workers/zip-web-worker.js +1 -1
- package/Source/ThirdParty/zip-module.wasm +0 -0
- package/Source/Widget/CesiumWidget.js +30 -0
- package/index.d.ts +770 -10
- package/index.js +177 -160
- package/package.json +1 -1
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import Cartesian2 from "../../Core/Cartesian2.js";
|
|
2
|
+
import Cartesian3 from "../../Core/Cartesian3.js";
|
|
3
|
+
import defined from "../../Core/defined.js";
|
|
4
|
+
import Frozen from "../../Core/Frozen.js";
|
|
5
|
+
import getTimestamp from "../../Core/getTimestamp.js";
|
|
6
|
+
import CesiumMath from "../../Core/Math.js";
|
|
7
|
+
import ScreenSpaceEventHandler from "../../Core/ScreenSpaceEventHandler.js";
|
|
8
|
+
import TimeConstants from "../../Core/TimeConstants.js";
|
|
9
|
+
import defaultPickWorldPosition from "./defaultPickWorldPosition.js";
|
|
10
|
+
import ScreenSpaceInputBindings from "./ScreenSpaceInputBindings.js";
|
|
11
|
+
import MouseButton from "./MouseButton.js";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @typedef {object} ControllerOptions
|
|
15
|
+
* @memberof ScreenSpaceElevatorCameraController
|
|
16
|
+
* @property {ScreenSpaceInputBindings.InputBinding[]} [dragInputs] The drag input bindings that control panning.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* A camera controller that allows panning the camera tangential to the ellipsoid, i.e., up and down relative to the ellipsoid normal, in screen space
|
|
21
|
+
* by clicking and dragging the mouse.
|
|
22
|
+
* @class
|
|
23
|
+
* @implements Controller
|
|
24
|
+
* @example
|
|
25
|
+
* viewer.scene.screenSpaceCameraController.enableInputs = false;
|
|
26
|
+
* viewer.scene.screenSpaceCameraController.enableCollisionDetection = false;
|
|
27
|
+
*
|
|
28
|
+
* const elevatorCameraController = new Cesium.ScreenSpaceElevatorCameraController();
|
|
29
|
+
* viewer.addController(elevatorCameraController);
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* // Configure the controller to use the right mouse button for panning instead of the default left mouse button.
|
|
33
|
+
* const elevatorCameraController = new Cesium.ScreenSpaceElevatorCameraController({
|
|
34
|
+
* dragInputs: [{ button: Cesium.MouseButton.RIGHT}]
|
|
35
|
+
* });
|
|
36
|
+
* viewer.addController(elevatorCameraController);
|
|
37
|
+
*/
|
|
38
|
+
class ScreenSpaceElevatorCameraController {
|
|
39
|
+
/**
|
|
40
|
+
* @private
|
|
41
|
+
* @returns {ScreenSpaceInputBindings.InputBinding[]} The default drag input bindings.
|
|
42
|
+
*/
|
|
43
|
+
static _getDefaultDragInputs() {
|
|
44
|
+
return [
|
|
45
|
+
Object.freeze({
|
|
46
|
+
button: MouseButton.LEFT,
|
|
47
|
+
}),
|
|
48
|
+
];
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Creates an instance of a ScreenSpaceElevatorCameraController.
|
|
53
|
+
* @param {ScreenSpaceElevatorCameraController.ControllerOptions} [options] The options for configuring the controller.
|
|
54
|
+
*/
|
|
55
|
+
constructor(options = Frozen.EMPTY_OBJECT) {
|
|
56
|
+
this._enabled = true;
|
|
57
|
+
this._handler = undefined;
|
|
58
|
+
this._lastUpdateTime = undefined;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* The drag input bindings that control vertical panning. Each binding is a combination of the mouse button
|
|
62
|
+
* and an optional keyboard modifier.
|
|
63
|
+
* @type {ScreenSpaceInputBindings.InputBinding[]}
|
|
64
|
+
* @see ScreenSpaceEventHandler
|
|
65
|
+
*/
|
|
66
|
+
this.dragInputs =
|
|
67
|
+
options.dragInputs ??
|
|
68
|
+
ScreenSpaceElevatorCameraController._getDefaultDragInputs();
|
|
69
|
+
|
|
70
|
+
this._dragInputState = undefined;
|
|
71
|
+
this._panDelta = new Cartesian2();
|
|
72
|
+
this._panPosition = new Cartesian2();
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* A callback function used to pick the world position from which to pan. The function is called with {@link Scene}, the {@link Cartesian2} screen space position, and a {@link Cartesian3} instance to store the result. The function should return the {@link Cartesian3} world position from which to pan, or <code>undefined</code> if no position could be picked. If <code>undefined</code> is returned, the camera will pan relative to the ellipsoid surface below the camera.
|
|
76
|
+
* @type {Function(Scene, Cartesian2, Cartesian3): Cartesian3|undefined}
|
|
77
|
+
* @default defaultPickWorldPosition
|
|
78
|
+
* @example
|
|
79
|
+
* const elevatorCameraController = new Cesium.ScreenSpaceElevatorCameraController();
|
|
80
|
+
* elevatorCameraController.pickWorldPosition = function (scene, windowPosition, result) {
|
|
81
|
+
* // Pick the world position from the depth buffer
|
|
82
|
+
* return scene.pickPosition(windowPosition, result);
|
|
83
|
+
* };
|
|
84
|
+
* viewer.addController(elevatorCameraController);
|
|
85
|
+
*/
|
|
86
|
+
this.pickWorldPosition = defaultPickWorldPosition;
|
|
87
|
+
|
|
88
|
+
this._ellipsoidNormal = new Cartesian3();
|
|
89
|
+
this._ellipsoidSurfacePosition = new Cartesian3();
|
|
90
|
+
this._panDirectionX = new Cartesian3();
|
|
91
|
+
this._panDirectionY = new Cartesian3();
|
|
92
|
+
this._pixelSize = new Cartesian2();
|
|
93
|
+
this._panVelocity = new Cartesian2();
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* The speed in meters per pixel at which the camera pans.
|
|
97
|
+
* @type {number}
|
|
98
|
+
* @default 1.0
|
|
99
|
+
*/
|
|
100
|
+
this.panSpeed = 1.0;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Enable or disable inertia when panning. When enabled, the camera will continue to move after the user stops dragging, gradually slowing down based on {@link ScreenSpaceMapCameraController#inertialDecay}.
|
|
104
|
+
* @type {boolean}
|
|
105
|
+
* @default true
|
|
106
|
+
*/
|
|
107
|
+
this.inertiaEnabled = true;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* The rate at which the camera's pan velocity decays over time.
|
|
111
|
+
* @type {number}
|
|
112
|
+
* @default 6.0
|
|
113
|
+
*/
|
|
114
|
+
this.inertialDecay = 6.0;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* A parameter in the range <code>[0, 1)</code> used to limit the range
|
|
118
|
+
* of inputs to a percentage of the window width/height per animation frame.
|
|
119
|
+
* This helps keep the camera under control in low-frame-rate situations.
|
|
120
|
+
* @type {number}
|
|
121
|
+
* @default 0.1
|
|
122
|
+
*/
|
|
123
|
+
this.maximumMovementRatio = 0.1;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* @inheritdoc
|
|
128
|
+
*/
|
|
129
|
+
get enabled() {
|
|
130
|
+
return this._enabled;
|
|
131
|
+
}
|
|
132
|
+
set enabled(value) {
|
|
133
|
+
this._enabled = value;
|
|
134
|
+
|
|
135
|
+
if (value) {
|
|
136
|
+
this._lastUpdateTime = getTimestamp();
|
|
137
|
+
this._panDelta.x = 0;
|
|
138
|
+
this._panDelta.y = 0;
|
|
139
|
+
} else if (defined(this._dragInputState)) {
|
|
140
|
+
this._dragInputState.isDragging = false;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* @private
|
|
146
|
+
* @type {boolean}
|
|
147
|
+
*/
|
|
148
|
+
get isDragging() {
|
|
149
|
+
return defined(this._dragInputState) && this._dragInputState.isDragging;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* @inheritdoc
|
|
154
|
+
* @param {HTMLElement} element The DOM element containing the Cesium scene.
|
|
155
|
+
*/
|
|
156
|
+
connectedCallback(element) {
|
|
157
|
+
const handler = new ScreenSpaceEventHandler(element);
|
|
158
|
+
this._handler = handler;
|
|
159
|
+
|
|
160
|
+
this._dragInputState = ScreenSpaceInputBindings.registerDragInputBindings(
|
|
161
|
+
handler,
|
|
162
|
+
this.dragInputs,
|
|
163
|
+
{
|
|
164
|
+
start: this._handleStartPan.bind(this),
|
|
165
|
+
change: this._handlePan.bind(this),
|
|
166
|
+
},
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* @inheritdoc
|
|
172
|
+
* @param {HTMLElement} element The DOM element containing the Cesium scene.
|
|
173
|
+
*/
|
|
174
|
+
disconnectedCallback(element) {
|
|
175
|
+
const handler = this._handler;
|
|
176
|
+
if (defined(handler) && !handler.isDestroyed()) {
|
|
177
|
+
handler.destroy();
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* @inheritdoc
|
|
183
|
+
*/
|
|
184
|
+
firstUpdate() {
|
|
185
|
+
this._lastUpdateTime = getTimestamp();
|
|
186
|
+
this._panDelta.x = 0;
|
|
187
|
+
this._panDelta.y = 0;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* @inheritdoc
|
|
192
|
+
* @param {any} scene
|
|
193
|
+
*/
|
|
194
|
+
update(scene) {
|
|
195
|
+
const dt =
|
|
196
|
+
(getTimestamp() - this._lastUpdateTime) *
|
|
197
|
+
TimeConstants.SECONDS_PER_MILLISECOND;
|
|
198
|
+
|
|
199
|
+
const { camera, ellipsoid, canvas } = scene;
|
|
200
|
+
|
|
201
|
+
let dx = -this._panDelta.x;
|
|
202
|
+
let dy = this._panDelta.y;
|
|
203
|
+
|
|
204
|
+
if (this.inertiaEnabled && !this.isDragging) {
|
|
205
|
+
const damping = Math.exp(-this.inertialDecay * dt);
|
|
206
|
+
this._panVelocity.x *= damping;
|
|
207
|
+
this._panVelocity.y *= damping;
|
|
208
|
+
|
|
209
|
+
dx = this._panVelocity.x * dt;
|
|
210
|
+
dy = this._panVelocity.y * dt;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
const { clientWidth, clientHeight } = canvas;
|
|
214
|
+
if (
|
|
215
|
+
dt === 0 ||
|
|
216
|
+
clientWidth === 0 ||
|
|
217
|
+
clientHeight === 0 ||
|
|
218
|
+
(Math.abs(dx) <= CesiumMath.EPSILON3 &&
|
|
219
|
+
Math.abs(dy) <= CesiumMath.EPSILON3)
|
|
220
|
+
) {
|
|
221
|
+
// Reset for next frame
|
|
222
|
+
this._lastUpdateTime = getTimestamp();
|
|
223
|
+
this._panDelta.x = 0;
|
|
224
|
+
this._panDelta.y = 0;
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
const windowPosition = this._panPosition;
|
|
229
|
+
let surface = this.pickWorldPosition(
|
|
230
|
+
scene,
|
|
231
|
+
windowPosition,
|
|
232
|
+
this._ellipsoidSurfacePosition,
|
|
233
|
+
);
|
|
234
|
+
|
|
235
|
+
if (!defined(surface)) {
|
|
236
|
+
surface = ellipsoid.scaleToGeodeticSurface(
|
|
237
|
+
camera.positionWC,
|
|
238
|
+
this._ellipsoidSurfacePosition,
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
let xAxis = Cartesian3.clone(camera.rightWC, this._panDirectionX);
|
|
243
|
+
xAxis = Cartesian3.normalize(xAxis, this._panDirectionX);
|
|
244
|
+
const zAxis = Cartesian3.normalize(surface, this._panDirectionY);
|
|
245
|
+
|
|
246
|
+
const distance = Cartesian3.distance(camera.positionWC, surface);
|
|
247
|
+
const { drawingBufferWidth, drawingBufferHeight, pixelRatio } = scene;
|
|
248
|
+
const pixelSize = camera.frustum.getPixelDimensions(
|
|
249
|
+
drawingBufferWidth,
|
|
250
|
+
drawingBufferHeight,
|
|
251
|
+
distance,
|
|
252
|
+
pixelRatio,
|
|
253
|
+
this._pixelSize,
|
|
254
|
+
);
|
|
255
|
+
|
|
256
|
+
const maxPixels =
|
|
257
|
+
this.maximumMovementRatio * Math.max(clientWidth, clientHeight);
|
|
258
|
+
dx = CesiumMath.clamp(dx, -maxPixels, maxPixels);
|
|
259
|
+
this._panVelocity.x = dx / dt;
|
|
260
|
+
dx *= this.panSpeed * pixelSize.x;
|
|
261
|
+
|
|
262
|
+
dy = CesiumMath.clamp(dy, -maxPixels, maxPixels);
|
|
263
|
+
this._panVelocity.y = dy / dt;
|
|
264
|
+
dy *= this.panSpeed * pixelSize.y;
|
|
265
|
+
|
|
266
|
+
camera.move(xAxis, dx);
|
|
267
|
+
camera.move(zAxis, dy);
|
|
268
|
+
|
|
269
|
+
// Reset for next frame
|
|
270
|
+
this._lastUpdateTime = getTimestamp();
|
|
271
|
+
this._panDelta.x = 0;
|
|
272
|
+
this._panDelta.y = 0;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
_handleStartPan() {
|
|
276
|
+
if (!this.enabled) {
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
this._panDelta.x = 0;
|
|
281
|
+
this._panDelta.y = 0;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* @private
|
|
286
|
+
*/
|
|
287
|
+
_handlePan(event) {
|
|
288
|
+
this._panDelta.x += event.endPosition.x - event.startPosition.x;
|
|
289
|
+
this._panDelta.y += event.endPosition.y - event.startPosition.y;
|
|
290
|
+
this._panPosition.x = event.endPosition.x;
|
|
291
|
+
this._panPosition.y = event.endPosition.y;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
export default ScreenSpaceElevatorCameraController;
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import Check from "../../Core/Check.js";
|
|
2
|
+
import defined from "../../Core/defined.js";
|
|
3
|
+
import ScreenSpaceEventType from "../../Core/ScreenSpaceEventType.js";
|
|
4
|
+
import MouseButton from "./MouseButton.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {object} InputBinding
|
|
8
|
+
* @memberof ScreenSpaceInputBindings
|
|
9
|
+
* @property {MouseButton} button The mouse button used for drag start/stop.
|
|
10
|
+
* @property {number} [modifier] The optional keyboard modifier to register.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @typedef {object} DragInputActions
|
|
15
|
+
* @memberof ScreenSpaceInputBindings
|
|
16
|
+
* @property {Function} [start] Called on drag start.
|
|
17
|
+
* @property {Function} [end] Called on drag stop.
|
|
18
|
+
* @property {Function} [change] Called on drag move.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @typedef {object} DragInputState
|
|
23
|
+
* @memberof ScreenSpaceInputBindings
|
|
24
|
+
* @property {boolean} isDragging True if a drag is in progress, false otherwise.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @private
|
|
29
|
+
* @param {MouseButton} button The mouse button.
|
|
30
|
+
* @returns {ScreenSpaceEventType|undefined} The corresponding down event type.
|
|
31
|
+
*/
|
|
32
|
+
function getDownEventType(button) {
|
|
33
|
+
if (button === MouseButton.LEFT) {
|
|
34
|
+
return ScreenSpaceEventType.LEFT_DOWN;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (button === MouseButton.MIDDLE) {
|
|
38
|
+
return ScreenSpaceEventType.MIDDLE_DOWN;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (button === MouseButton.RIGHT) {
|
|
42
|
+
return ScreenSpaceEventType.RIGHT_DOWN;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @private
|
|
50
|
+
* @param {MouseButton} button The mouse button.
|
|
51
|
+
* @returns {ScreenSpaceEventType|undefined} The corresponding down event type.
|
|
52
|
+
*/
|
|
53
|
+
function getUpEventType(button) {
|
|
54
|
+
if (button === MouseButton.LEFT) {
|
|
55
|
+
return ScreenSpaceEventType.LEFT_UP;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (button === MouseButton.MIDDLE) {
|
|
59
|
+
return ScreenSpaceEventType.MIDDLE_UP;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (button === MouseButton.RIGHT) {
|
|
63
|
+
return ScreenSpaceEventType.RIGHT_UP;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @namespace
|
|
71
|
+
*/
|
|
72
|
+
class ScreenSpaceInputBindings {
|
|
73
|
+
/**
|
|
74
|
+
* Registers drag input bindings on a screen space event handler.
|
|
75
|
+
* @param {ScreenSpaceEventHandler} handler The screen space event handler.
|
|
76
|
+
* @param {InputBinding[]} inputBindings The drag bindings to register.
|
|
77
|
+
* @param {DragInputActions} dragInputActions The callbacks to invoke for drag actions.
|
|
78
|
+
* @returns {DragInputState} The drag input state.
|
|
79
|
+
*/
|
|
80
|
+
static registerDragInputBindings(handler, inputBindings, dragInputActions) {
|
|
81
|
+
//>>includeStart('debug', pragmas.debug);
|
|
82
|
+
Check.typeOf.object("handler", handler);
|
|
83
|
+
Check.defined("inputBindings", inputBindings);
|
|
84
|
+
Check.typeOf.object("dragInputActions", dragInputActions);
|
|
85
|
+
//>>includeEnd('debug');
|
|
86
|
+
|
|
87
|
+
const changeModifiers = new Set();
|
|
88
|
+
const dragInputState = {
|
|
89
|
+
isDragging: false,
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
for (const binding of inputBindings) {
|
|
93
|
+
dragInputState.isDragging = false;
|
|
94
|
+
const downEventType = getDownEventType(binding.button);
|
|
95
|
+
const upEventType = getUpEventType(binding.button);
|
|
96
|
+
|
|
97
|
+
if (defined(downEventType)) {
|
|
98
|
+
handler.setInputAction(
|
|
99
|
+
(...e) => {
|
|
100
|
+
dragInputState.isDragging = true;
|
|
101
|
+
if (defined(dragInputActions.start)) {
|
|
102
|
+
dragInputActions.start(...e);
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
downEventType,
|
|
106
|
+
binding.modifier,
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (defined(upEventType)) {
|
|
111
|
+
handler.setInputAction(
|
|
112
|
+
(...e) => {
|
|
113
|
+
if (dragInputState.isDragging) {
|
|
114
|
+
dragInputState.isDragging = false;
|
|
115
|
+
if (defined(dragInputActions.end)) {
|
|
116
|
+
dragInputActions.end(...e);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
upEventType,
|
|
121
|
+
binding.modifier,
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
// Register a global up event to ensure that the drag end callback is called even if the mouse is released outside of the canvas or the modifier key is released before the mouse button.
|
|
125
|
+
handler.setInputAction((...e) => {
|
|
126
|
+
if (dragInputState.isDragging) {
|
|
127
|
+
dragInputState.isDragging = false;
|
|
128
|
+
if (defined(dragInputActions.end)) {
|
|
129
|
+
dragInputActions.end(...e);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}, upEventType);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
changeModifiers.add(binding.modifier);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
for (const modifier of changeModifiers) {
|
|
139
|
+
handler.setInputAction(
|
|
140
|
+
(...e) => {
|
|
141
|
+
if (dragInputState.isDragging && defined(dragInputActions.change)) {
|
|
142
|
+
dragInputActions.change(...e);
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
ScreenSpaceEventType.MOUSE_MOVE,
|
|
146
|
+
modifier,
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
return dragInputState;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export default ScreenSpaceInputBindings;
|