@cesium/engine 11.0.0 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Build/Workers/{chunk-HFPMX5L2.js → chunk-2B5H7KIN.js} +1 -1
- package/Build/Workers/{chunk-KKAEXHDY.js → chunk-2RHMHHJH.js} +2 -2
- package/Build/Workers/{chunk-AI3O7UN2.js → chunk-3OHDXGFC.js} +6 -6
- package/Build/Workers/{chunk-TTI2SUWJ.js → chunk-3OM5QZSI.js} +2 -2
- package/Build/Workers/{chunk-2EDC3QGH.js → chunk-3UJV3W4Y.js} +1 -1
- package/Build/Workers/{chunk-N3BIL6WA.js → chunk-3X2LXRHU.js} +13 -13
- package/Build/Workers/{chunk-FJT3ERV7.js → chunk-4ESQ3DN2.js} +9 -9
- package/Build/Workers/{chunk-HO2NTC7I.js → chunk-4IQPX22D.js} +6 -6
- package/Build/Workers/{chunk-L6FARMF6.js → chunk-4XPGN5Y7.js} +11 -11
- package/Build/Workers/{chunk-4NBRIKB3.js → chunk-56LALJCU.js} +2 -2
- package/Build/Workers/{chunk-HC7RYWPZ.js → chunk-5FSKL7US.js} +12 -12
- package/Build/Workers/{chunk-54VC7SCM.js → chunk-5YKJKOFE.js} +7 -7
- package/Build/Workers/{chunk-6ZREIBKS.js → chunk-62YGXNGC.js} +7 -7
- package/Build/Workers/{chunk-BH5ZEN4I.js → chunk-6DYMJ57Z.js} +10 -10
- package/Build/Workers/{chunk-AS7P4BHI.js → chunk-7DSVCRFD.js} +6 -6
- package/Build/Workers/{chunk-6FFGOENI.js → chunk-7OISMGQF.js} +46 -23
- package/Build/Workers/{chunk-BJ3WF5RW.js → chunk-AL7BHP36.js} +6 -6
- package/Build/Workers/{chunk-WQRXRDCZ.js → chunk-AOCENJVH.js} +11 -11
- package/Build/Workers/{chunk-2MKRG7L7.js → chunk-ARTM66DL.js} +5 -5
- package/Build/Workers/{chunk-VSFFJGTA.js → chunk-B4AZL6Q4.js} +5 -5
- package/Build/Workers/{chunk-5IY5BXCT.js → chunk-BQNTN4CC.js} +83 -79
- package/Build/Workers/{chunk-AUM45VEG.js → chunk-C4IAULHW.js} +15 -15
- package/Build/Workers/{chunk-6PJIHPQB.js → chunk-ES6Q5HWK.js} +13 -13
- package/Build/Workers/{chunk-DVAIU7A4.js → chunk-GKBICLGC.js} +19 -23
- package/Build/Workers/{chunk-IBG5FVXC.js → chunk-GMGUR5GM.js} +4 -4
- package/Build/Workers/{chunk-OOA6GXKD.js → chunk-GUW6BS72.js} +7 -7
- package/Build/Workers/{chunk-KFW4UNQH.js → chunk-GYHHNFW5.js} +15 -25
- package/Build/Workers/{chunk-GOHDOWU5.js → chunk-GZG526CC.js} +14 -14
- package/Build/Workers/{chunk-BZXF3GNX.js → chunk-HILBDZUP.js} +2 -2
- package/Build/Workers/{chunk-BBO6BGLC.js → chunk-HYUTWUXN.js} +13 -13
- package/Build/Workers/{chunk-HA6TZ3XT.js → chunk-IL6SMMDD.js} +4 -4
- package/Build/Workers/{chunk-T4MB73MC.js → chunk-IT6AWHFV.js} +2 -2
- package/Build/Workers/{chunk-SRZJCF7G.js → chunk-J64XIF5C.js} +10 -36
- package/Build/Workers/{chunk-BUOFSNFW.js → chunk-JGGZ3H4W.js} +1 -1
- package/Build/Workers/{chunk-SIZXFNJY.js → chunk-JRULXFCC.js} +5 -5
- package/Build/Workers/{chunk-QGT2GMOK.js → chunk-MSY2AAW2.js} +4 -4
- package/Build/Workers/{chunk-XLCZE6DD.js → chunk-QXBRZZQS.js} +10 -10
- package/Build/Workers/{chunk-JYUCC5NV.js → chunk-SXJ37VUC.js} +7 -7
- package/Build/Workers/{chunk-OC4MYPVW.js → chunk-T6FZFMTF.js} +2 -2
- package/Build/Workers/{chunk-OSCHEWSG.js → chunk-TQK4D4AR.js} +7 -7
- package/Build/Workers/{chunk-2RZYNSMR.js → chunk-US3L7FXC.js} +7 -9
- package/Build/Workers/{chunk-RFQYEYAL.js → chunk-VGT4ONMC.js} +18 -20
- package/Build/Workers/{chunk-VHJ5ESXF.js → chunk-VJVTWBXB.js} +1 -1
- package/Build/Workers/{chunk-RJF5ZP76.js → chunk-VQZNBD3T.js} +4 -4
- package/Build/Workers/{chunk-WXDGOYTT.js → chunk-VUCVRDLD.js} +7 -7
- package/Build/Workers/{chunk-DJXXI7UF.js → chunk-W2Q2F7JS.js} +5 -5
- package/Build/Workers/{chunk-HZPMWR4H.js → chunk-WQCX7U65.js} +7 -7
- package/Build/Workers/{chunk-HFMJM3SX.js → chunk-WW5RTJ72.js} +1 -1
- package/Build/Workers/{chunk-IXLNNST6.js → chunk-X67KKHI7.js} +4 -4
- package/Build/Workers/{chunk-4TK5YR6Q.js → chunk-X7VRF25X.js} +5 -5
- package/Build/Workers/{chunk-O5SSW3B3.js → chunk-YANQEHO5.js} +6 -6
- package/Build/Workers/{chunk-HBZSCVZC.js → chunk-ZZNBFQL5.js} +11 -11
- package/Build/Workers/combineGeometry.js +23 -25
- package/Build/Workers/createBoxGeometry.js +16 -16
- package/Build/Workers/createBoxOutlineGeometry.js +14 -14
- package/Build/Workers/createCircleGeometry.js +24 -24
- package/Build/Workers/createCircleOutlineGeometry.js +17 -17
- package/Build/Workers/createCoplanarPolygonGeometry.js +31 -31
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +29 -29
- package/Build/Workers/createCorridorGeometry.js +27 -27
- package/Build/Workers/createCorridorOutlineGeometry.js +26 -26
- package/Build/Workers/createCylinderGeometry.js +18 -18
- package/Build/Workers/createCylinderOutlineGeometry.js +16 -16
- package/Build/Workers/createEllipseGeometry.js +24 -24
- package/Build/Workers/createEllipseOutlineGeometry.js +17 -17
- package/Build/Workers/createEllipsoidGeometry.js +17 -17
- package/Build/Workers/createEllipsoidOutlineGeometry.js +16 -16
- package/Build/Workers/createFrustumGeometry.js +16 -16
- package/Build/Workers/createFrustumOutlineGeometry.js +16 -16
- package/Build/Workers/createGeometry.js +25 -26
- package/Build/Workers/createGroundPolylineGeometry.js +20 -20
- package/Build/Workers/createPlaneGeometry.js +14 -14
- package/Build/Workers/createPlaneOutlineGeometry.js +13 -13
- package/Build/Workers/createPolygonGeometry.js +36 -40
- package/Build/Workers/createPolygonOutlineGeometry.js +40 -48
- package/Build/Workers/createPolylineGeometry.js +23 -23
- package/Build/Workers/createPolylineVolumeGeometry.js +32 -31
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +25 -25
- package/Build/Workers/createRectangleGeometry.js +28 -30
- package/Build/Workers/createRectangleOutlineGeometry.js +19 -19
- package/Build/Workers/createSimplePolylineGeometry.js +21 -21
- package/Build/Workers/createSphereGeometry.js +17 -17
- package/Build/Workers/createSphereOutlineGeometry.js +16 -16
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +13 -13
- package/Build/Workers/createVectorTileGeometries.js +22 -22
- package/Build/Workers/createVectorTilePoints.js +12 -12
- package/Build/Workers/createVectorTilePolygons.js +20 -20
- package/Build/Workers/createVectorTilePolylines.js +13 -13
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -26
- package/Build/Workers/createVerticesFromHeightmap.js +22 -26
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +42 -32
- package/Build/Workers/createWallGeometry.js +22 -22
- package/Build/Workers/createWallOutlineGeometry.js +21 -21
- package/Build/Workers/decodeDraco.js +11 -11
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +10 -10
- package/Build/Workers/transcodeKTX2.js +7 -7
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +20 -20
- package/Source/Core/ApproximateTerrainHeights.js +15 -15
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +33 -35
- package/Source/Core/AttributeCompression.js +12 -12
- package/Source/Core/AxisAlignedBoundingBox.js +2 -2
- package/Source/Core/BingMapsGeocoderService.js +1 -1
- package/Source/Core/BoundingRectangle.js +3 -3
- package/Source/Core/BoundingSphere.js +45 -45
- package/Source/Core/BoxGeometry.js +6 -6
- package/Source/Core/BoxOutlineGeometry.js +3 -3
- package/Source/Core/Cartesian2.js +7 -7
- package/Source/Core/Cartesian3.js +20 -20
- package/Source/Core/Cartesian4.js +8 -8
- package/Source/Core/Cartographic.js +6 -6
- package/Source/Core/CatmullRomSpline.js +6 -6
- package/Source/Core/CesiumTerrainProvider.js +66 -68
- package/Source/Core/Check.d.ts +3 -3
- package/Source/Core/Check.js +11 -11
- package/Source/Core/CircleGeometry.js +6 -6
- package/Source/Core/CircleOutlineGeometry.js +4 -4
- package/Source/Core/Clock.js +4 -4
- package/Source/Core/Color.js +12 -9
- package/Source/Core/ColorGeometryInstanceAttribute.js +1 -1
- package/Source/Core/ComponentDatatype.js +4 -4
- package/Source/Core/CompressedTextureBuffer.js +2 -2
- package/Source/Core/ConstantSpline.js +1 -1
- package/Source/Core/CoplanarPolygonGeometry.js +44 -41
- package/Source/Core/CoplanarPolygonGeometryLibrary.js +5 -5
- package/Source/Core/CoplanarPolygonOutlineGeometry.js +6 -6
- package/Source/Core/CorridorGeometry.js +77 -77
- package/Source/Core/CorridorGeometryLibrary.js +48 -48
- package/Source/Core/CorridorOutlineGeometry.js +16 -16
- package/Source/Core/CullingVolume.js +4 -4
- package/Source/Core/CustomHeightmapTerrainProvider.js +13 -13
- package/Source/Core/CylinderGeometry.js +8 -8
- package/Source/Core/CylinderGeometryLibrary.js +1 -1
- package/Source/Core/CylinderOutlineGeometry.js +4 -4
- package/Source/Core/DeveloperError.js +1 -1
- package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +20 -21
- package/Source/Core/DoubleEndedPriorityQueue.js +2 -2
- package/Source/Core/EarthOrientationParameters.js +21 -25
- package/Source/Core/EarthOrientationParametersSample.js +1 -1
- package/Source/Core/EllipseGeometry.js +55 -56
- package/Source/Core/EllipseGeometryLibrary.js +12 -12
- package/Source/Core/EllipseOutlineGeometry.js +19 -19
- package/Source/Core/Ellipsoid.js +25 -33
- package/Source/Core/EllipsoidGeodesic.js +18 -17
- package/Source/Core/EllipsoidGeometry.js +9 -8
- package/Source/Core/EllipsoidOutlineGeometry.js +4 -4
- package/Source/Core/EllipsoidRhumbLine.js +33 -32
- package/Source/Core/EllipsoidTangentPlane.js +16 -16
- package/Source/Core/EllipsoidTerrainProvider.js +11 -10
- package/Source/Core/EllipsoidalOccluder.js +110 -130
- package/Source/Core/FeatureDetection.js +4 -4
- package/Source/Core/FrustumGeometry.js +15 -15
- package/Source/Core/FrustumOutlineGeometry.js +4 -4
- package/Source/Core/GeographicTilingScheme.js +6 -6
- package/Source/Core/Geometry.js +15 -17
- package/Source/Core/GeometryAttribute.js +4 -9
- package/Source/Core/GeometryAttributes.js +6 -6
- package/Source/Core/GeometryInstance.js +3 -4
- package/Source/Core/GeometryInstanceAttribute.js +1 -6
- package/Source/Core/GeometryPipeline.js +133 -137
- package/Source/Core/GoogleEarthEnterpriseMetadata.js +19 -20
- package/Source/Core/GoogleEarthEnterpriseTerrainData.js +25 -24
- package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +17 -21
- package/Source/Core/GoogleEarthEnterpriseTileInformation.js +2 -2
- package/Source/Core/GoogleMaps.js +1 -1
- package/Source/Core/GregorianDate.js +4 -4
- package/Source/Core/GroundPolylineGeometry.js +104 -104
- package/Source/Core/HeadingPitchRoll.js +7 -7
- package/Source/Core/HeightmapTerrainData.js +58 -54
- package/Source/Core/HeightmapTessellator.js +22 -23
- package/Source/Core/HermitePolynomialApproximation.js +8 -8
- package/Source/Core/HermiteSpline.js +11 -11
- package/Source/Core/HilbertOrder.js +1 -1
- package/Source/Core/Iau2006XysData.js +6 -6
- package/Source/Core/IauOrientationAxes.js +2 -2
- package/Source/Core/IauOrientationParameters.js +1 -1
- package/Source/Core/IndexDatatype.js +5 -5
- package/Source/Core/IntersectionTests.js +36 -78
- package/Source/Core/Intersections2D.js +3 -3
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonGeocoderService.js +2 -2
- package/Source/Core/IonResource.js +5 -5
- package/Source/Core/Iso8601.js +3 -3
- package/Source/Core/JulianDate.js +23 -33
- package/Source/Core/KTX2Transcoder.js +2 -2
- package/Source/Core/LagrangePolynomialApproximation.js +1 -1
- package/Source/Core/LinearApproximation.js +4 -4
- package/Source/Core/LinearSpline.js +2 -2
- package/Source/Core/Math.js +6 -4
- package/Source/Core/Matrix2.js +3 -3
- package/Source/Core/Matrix3.js +16 -16
- package/Source/Core/Matrix4.js +31 -31
- package/Source/Core/MorphWeightSpline.js +2 -2
- package/Source/Core/NearFarScalar.js +1 -1
- package/Source/Core/Occluder.js +52 -56
- package/Source/Core/OpenCageGeocoderService.js +2 -2
- package/Source/Core/OrientedBoundingBox.js +52 -51
- package/Source/Core/OrthographicFrustum.js +11 -11
- package/Source/Core/OrthographicOffCenterFrustum.js +17 -17
- package/Source/Core/PeliasGeocoderService.js +1 -1
- package/Source/Core/PerspectiveFrustum.js +61 -55
- package/Source/Core/PerspectiveOffCenterFrustum.js +58 -59
- package/Source/Core/PinBuilder.js +1 -1
- package/Source/Core/PixelFormat.js +6 -6
- package/Source/Core/Plane.js +9 -9
- package/Source/Core/PlaneGeometry.js +1 -1
- package/Source/Core/PolygonGeometry.js +95 -94
- package/Source/Core/PolygonGeometryLibrary.js +49 -51
- package/Source/Core/PolygonOutlineGeometry.js +49 -51
- package/Source/Core/PolygonPipeline.js +31 -31
- package/Source/Core/PolylineGeometry.js +10 -10
- package/Source/Core/PolylinePipeline.js +25 -25
- package/Source/Core/PolylineVolumeGeometry.js +9 -9
- package/Source/Core/PolylineVolumeGeometryLibrary.js +53 -53
- package/Source/Core/PolylineVolumeOutlineGeometry.js +6 -6
- package/Source/Core/QuadraticRealPolynomial.js +1 -1
- package/Source/Core/QuantizedMeshTerrainData.js +28 -28
- package/Source/Core/QuarticRealPolynomial.js +1 -1
- package/Source/Core/Quaternion.js +19 -19
- package/Source/Core/QuaternionSpline.js +2 -2
- package/Source/Core/Rectangle.js +34 -13
- package/Source/Core/RectangleCollisionChecker.js +3 -3
- package/Source/Core/RectangleGeometry.js +55 -56
- package/Source/Core/RectangleGeometryLibrary.js +8 -8
- package/Source/Core/RectangleOutlineGeometry.js +20 -20
- package/Source/Core/RequestScheduler.js +6 -6
- package/Source/Core/Resource.js +24 -24
- package/Source/Core/S2Cell.js +16 -80
- package/Source/Core/ScreenSpaceEventHandler.js +54 -53
- package/Source/Core/Simon1994PlanetaryPositions.js +13 -13
- package/Source/Core/SimplePolylineGeometry.js +7 -7
- package/Source/Core/SphereGeometry.js +2 -2
- package/Source/Core/SphereOutlineGeometry.js +3 -3
- package/Source/Core/Spline.js +1 -1
- package/Source/Core/SteppedSpline.js +1 -1
- package/Source/Core/Stereographic.js +9 -9
- package/Source/Core/TaskProcessor.js +13 -13
- package/Source/Core/TerrainEncoding.js +33 -38
- package/Source/Core/TerrainMesh.js +1 -1
- package/Source/Core/TerrainProvider.js +12 -12
- package/Source/Core/TileAvailability.js +28 -28
- package/Source/Core/TileProviderError.js +5 -5
- package/Source/Core/TilingScheme.js +1 -1
- package/Source/Core/TimeInterval.js +4 -4
- package/Source/Core/TimeIntervalCollection.js +16 -15
- package/Source/Core/Tipsify.js +2 -2
- package/Source/Core/Transforms.js +52 -54
- package/Source/Core/TranslationRotationScale.js +1 -1
- package/Source/Core/TridiagonalSystemSolver.js +4 -4
- package/Source/Core/VRTheWorldTerrainProvider.js +28 -26
- package/Source/Core/VertexFormat.js +6 -6
- package/Source/Core/VerticalExaggeration.js +4 -4
- package/Source/Core/VideoSynchronizer.js +1 -1
- package/Source/Core/WallGeometry.js +18 -18
- package/Source/Core/WallGeometryLibrary.js +7 -7
- package/Source/Core/WallOutlineGeometry.js +8 -8
- package/Source/Core/WebMercatorProjection.js +5 -6
- package/Source/Core/WebMercatorTilingScheme.js +13 -13
- package/Source/Core/WireframeIndexGenerator.js +8 -8
- package/Source/Core/arrayRemoveDuplicates.js +1 -1
- package/Source/Core/buildModuleUrl.js +2 -2
- package/Source/Core/decodeGoogleEarthEnterpriseData.js +4 -4
- package/Source/Core/decodeVectorPolylinePositions.js +4 -4
- package/Source/Core/destroyObject.js +1 -1
- package/Source/Core/getJsonFromTypedArray.js +1 -1
- package/Source/Core/getMagic.js +1 -1
- package/Source/Core/loadImageFromTypedArray.js +2 -2
- package/Source/Core/loadKTX2.js +1 -1
- package/Source/Core/pointInsideTriangle.js +1 -1
- package/Source/Core/resizeImageToNextPowerOfTwo.js +1 -1
- package/Source/Core/sampleTerrain.js +7 -7
- package/Source/Core/sampleTerrainMostDetailed.js +7 -7
- package/Source/Core/scaleToGeodeticSurface.js +3 -3
- package/Source/Core/srgbToLinear.js +1 -1
- package/Source/Core/writeTextToCanvas.js +1 -1
- package/Source/DataSources/BillboardGraphics.js +13 -13
- package/Source/DataSources/BillboardVisualizer.js +24 -24
- package/Source/DataSources/BoxGeometryUpdater.js +33 -32
- package/Source/DataSources/BoxGraphics.js +3 -3
- package/Source/DataSources/CallbackPositionProperty.js +173 -0
- package/Source/DataSources/Cesium3DTilesetGraphics.js +1 -1
- package/Source/DataSources/Cesium3DTilesetVisualizer.js +6 -6
- package/Source/DataSources/CheckerboardMaterialProperty.js +2 -2
- package/Source/DataSources/ColorMaterialProperty.js +1 -1
- package/Source/DataSources/CompositeEntityCollection.js +14 -15
- package/Source/DataSources/CompositeMaterialProperty.js +5 -7
- package/Source/DataSources/CompositePositionProperty.js +4 -5
- package/Source/DataSources/CompositeProperty.js +2 -2
- package/Source/DataSources/ConstantPositionProperty.js +2 -2
- package/Source/DataSources/CorridorGeometryUpdater.js +61 -56
- package/Source/DataSources/CorridorGraphics.js +6 -6
- package/Source/DataSources/CylinderGeometryUpdater.js +42 -40
- package/Source/DataSources/CylinderGraphics.js +4 -4
- package/Source/DataSources/CzmlDataSource.js +365 -368
- package/Source/DataSources/DataSourceCollection.js +1 -1
- package/Source/DataSources/DataSourceDisplay.js +24 -24
- package/Source/DataSources/DynamicGeometryBatch.js +2 -2
- package/Source/DataSources/DynamicGeometryUpdater.js +14 -18
- package/Source/DataSources/EllipseGeometryUpdater.js +67 -63
- package/Source/DataSources/EllipseGraphics.js +7 -7
- package/Source/DataSources/EllipsoidGeometryUpdater.js +88 -86
- package/Source/DataSources/EllipsoidGraphics.js +5 -5
- package/Source/DataSources/Entity.js +13 -13
- package/Source/DataSources/EntityCluster.js +29 -27
- package/Source/DataSources/EntityCollection.js +7 -7
- package/Source/DataSources/EntityView.js +23 -23
- package/Source/DataSources/GeoJsonDataSource.js +25 -25
- package/Source/DataSources/GeometryUpdater.js +9 -10
- package/Source/DataSources/GeometryUpdaterSet.js +3 -3
- package/Source/DataSources/GeometryVisualizer.js +65 -71
- package/Source/DataSources/GpxDataSource.js +10 -10
- package/Source/DataSources/GridMaterialProperty.js +5 -5
- package/Source/DataSources/GroundGeometryUpdater.js +6 -6
- package/Source/DataSources/ImageMaterialProperty.js +2 -2
- package/Source/DataSources/KmlDataSource.js +212 -212
- package/Source/DataSources/LabelGraphics.js +14 -14
- package/Source/DataSources/LabelVisualizer.js +24 -24
- package/Source/DataSources/ModelGraphics.js +38 -17
- package/Source/DataSources/ModelVisualizer.js +41 -32
- package/Source/DataSources/NodeTransformationProperty.js +3 -3
- package/Source/DataSources/PathGraphics.js +2 -2
- package/Source/DataSources/PathVisualizer.js +99 -35
- package/Source/DataSources/PlaneGeometryUpdater.js +38 -37
- package/Source/DataSources/PlaneGraphics.js +2 -2
- package/Source/DataSources/PointGraphics.js +8 -8
- package/Source/DataSources/PointVisualizer.js +29 -29
- package/Source/DataSources/PolygonGeometryUpdater.js +68 -64
- package/Source/DataSources/PolygonGraphics.js +9 -9
- package/Source/DataSources/PolylineArrowMaterialProperty.js +1 -1
- package/Source/DataSources/PolylineDashMaterialProperty.js +4 -4
- package/Source/DataSources/PolylineGeometryUpdater.js +39 -44
- package/Source/DataSources/PolylineGlowMaterialProperty.js +3 -3
- package/Source/DataSources/PolylineGraphics.js +4 -4
- package/Source/DataSources/PolylineOutlineMaterialProperty.js +3 -3
- package/Source/DataSources/PolylineVisualizer.js +39 -43
- package/Source/DataSources/PolylineVolumeGeometryUpdater.js +70 -68
- package/Source/DataSources/PolylineVolumeGraphics.js +2 -2
- package/Source/DataSources/PositionProperty.js +4 -3
- package/Source/DataSources/PositionPropertyArray.js +3 -3
- package/Source/DataSources/Property.js +1 -1
- package/Source/DataSources/PropertyArray.js +1 -1
- package/Source/DataSources/PropertyBag.js +5 -5
- package/Source/DataSources/RectangleGeometryUpdater.js +68 -63
- package/Source/DataSources/RectangleGraphics.js +6 -6
- package/Source/DataSources/ReferenceProperty.js +6 -6
- package/Source/DataSources/Rotation.js +2 -2
- package/Source/DataSources/SampledPositionProperty.js +6 -6
- package/Source/DataSources/SampledProperty.js +16 -16
- package/Source/DataSources/ScaledPositionProperty.js +2 -2
- package/Source/DataSources/StaticGeometryColorBatch.js +41 -41
- package/Source/DataSources/StaticGeometryPerMaterialBatch.js +40 -40
- package/Source/DataSources/StaticGroundGeometryColorBatch.js +26 -27
- package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +46 -44
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +44 -43
- package/Source/DataSources/StaticOutlineGeometryBatch.js +28 -29
- package/Source/DataSources/StripeMaterialProperty.js +2 -2
- package/Source/DataSources/TerrainOffsetProperty.js +11 -11
- package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +28 -30
- package/Source/DataSources/TimeIntervalCollectionProperty.js +1 -1
- package/Source/DataSources/VelocityOrientationProperty.js +3 -3
- package/Source/DataSources/VelocityVectorProperty.js +4 -4
- package/Source/DataSources/WallGeometryUpdater.js +25 -25
- package/Source/DataSources/WallGraphics.js +4 -4
- package/Source/DataSources/createPropertyDescriptor.js +3 -3
- package/Source/DataSources/exportKml.js +90 -86
- package/Source/DataSources/getElement.js +1 -1
- package/Source/DataSources/heightReferenceOnEntityPropertyChanged.js +4 -4
- package/Source/Renderer/AutomaticUniforms.js +14 -1
- package/Source/Renderer/Buffer.js +18 -18
- package/Source/Renderer/ClearCommand.js +1 -1
- package/Source/Renderer/ComputeEngine.js +1 -1
- package/Source/Renderer/Context.js +40 -40
- package/Source/Renderer/CubeMap.js +109 -32
- package/Source/Renderer/CubeMapFace.js +109 -32
- package/Source/Renderer/DrawCommand.js +50 -5
- package/Source/Renderer/Framebuffer.js +48 -49
- package/Source/Renderer/FramebufferManager.js +40 -34
- package/Source/Renderer/MultisampleFramebuffer.js +35 -14
- package/Source/Renderer/RenderState.js +36 -36
- package/Source/Renderer/Renderbuffer.js +3 -3
- package/Source/Renderer/Sampler.js +2 -2
- package/Source/Renderer/ShaderBuilder.js +8 -8
- package/Source/Renderer/ShaderCache.js +11 -15
- package/Source/Renderer/ShaderFunction.js +1 -1
- package/Source/Renderer/ShaderProgram.js +15 -15
- package/Source/Renderer/ShaderSource.js +40 -40
- package/Source/Renderer/Texture.js +74 -63
- package/Source/Renderer/UniformState.js +78 -58
- package/Source/Renderer/VertexArray.js +20 -20
- package/Source/Renderer/VertexArrayFacade.js +15 -16
- package/Source/Renderer/createUniform.js +1 -1
- package/Source/Renderer/createUniformArray.js +4 -4
- package/Source/Renderer/demodernizeShader.js +5 -5
- package/Source/Renderer/loadCubeMap.js +1 -1
- package/Source/Scene/ArcGisMapServerImageryProvider.js +39 -45
- package/Source/Scene/ArcGisMapService.js +4 -7
- package/Source/Scene/Atmosphere.js +22 -0
- package/Source/Scene/AutoExposure.js +4 -5
- package/Source/Scene/Axis.js +6 -6
- package/Source/Scene/B3dmParser.js +9 -9
- package/Source/Scene/BatchTable.js +7 -7
- package/Source/Scene/BatchTableHierarchy.js +62 -59
- package/Source/Scene/BatchTexture.js +2 -2
- package/Source/Scene/Billboard.js +45 -43
- package/Source/Scene/BillboardCollection.js +81 -83
- package/Source/Scene/BingMapsImageryProvider.js +13 -13
- package/Source/Scene/BoundingVolumeSemantics.js +10 -10
- package/Source/Scene/BoxEmitter.js +1 -1
- package/Source/Scene/BufferLoader.js +1 -1
- package/Source/Scene/Camera.js +161 -164
- package/Source/Scene/CameraEventAggregator.js +18 -18
- package/Source/Scene/CameraFlightPath.js +25 -25
- package/Source/Scene/Cesium3DTile.js +89 -95
- package/Source/Scene/Cesium3DTileBatchTable.js +61 -61
- package/Source/Scene/Cesium3DTileContentFactory.js +7 -7
- package/Source/Scene/Cesium3DTileFeature.js +1 -1
- package/Source/Scene/Cesium3DTileFeatureTable.js +8 -8
- package/Source/Scene/Cesium3DTileOptimizations.js +1 -1
- package/Source/Scene/Cesium3DTilePointFeature.js +11 -11
- package/Source/Scene/Cesium3DTileStyle.js +26 -24
- package/Source/Scene/Cesium3DTilesVoxelProvider.js +14 -20
- package/Source/Scene/Cesium3DTileset.js +120 -83
- package/Source/Scene/Cesium3DTilesetBaseTraversal.js +8 -16
- package/Source/Scene/Cesium3DTilesetCache.js +2 -2
- package/Source/Scene/Cesium3DTilesetHeatmap.js +5 -5
- package/Source/Scene/Cesium3DTilesetMetadata.js +2 -2
- package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +2 -2
- package/Source/Scene/Cesium3DTilesetSkipTraversal.js +8 -12
- package/Source/Scene/Cesium3DTilesetStatistics.js +1 -1
- package/Source/Scene/Cesium3DTilesetTraversal.js +8 -10
- package/Source/Scene/ClassificationPrimitive.js +70 -69
- package/Source/Scene/ClippingPlaneCollection.js +39 -41
- package/Source/Scene/ClippingPolygon.js +8 -8
- package/Source/Scene/ClippingPolygonCollection.js +62 -63
- package/Source/Scene/CloudCollection.js +3 -10
- package/Source/Scene/Composite3DTileContent.js +6 -6
- package/Source/Scene/ConditionsExpression.js +5 -5
- package/Source/Scene/ContentMetadata.js +4 -4
- package/Source/Scene/CreditDisplay.js +8 -8
- package/Source/Scene/CumulusCloud.js +4 -4
- package/Source/Scene/DebugAppearance.js +2 -2
- package/Source/Scene/DebugCameraPrimitive.js +2 -2
- package/Source/Scene/DebugInspector.js +3 -3
- package/Source/Scene/DebugModelMatrixPrimitive.js +4 -4
- package/Source/Scene/DepthPlane.js +7 -7
- package/Source/Scene/DerivedCommand.js +422 -238
- package/Source/Scene/DiscardMissingTileImagePolicy.js +1 -1
- package/Source/Scene/DracoLoader.js +3 -3
- package/Source/Scene/DynamicEnvironmentMapManager.js +852 -0
- package/Source/Scene/EllipsoidPrimitive.js +7 -7
- package/Source/Scene/EllipsoidSurfaceAppearance.js +3 -3
- package/Source/Scene/Empty3DTileContent.js +1 -1
- package/Source/Scene/Expression.js +91 -91
- package/Source/Scene/Fog.js +76 -116
- package/Source/Scene/FrameRateMonitor.js +22 -22
- package/Source/Scene/FrameState.js +36 -3
- package/Source/Scene/Geometry3DTileContent.js +20 -20
- package/Source/Scene/GetFeatureInfoFormat.js +15 -14
- package/Source/Scene/Globe.js +32 -27
- package/Source/Scene/GlobeDepth.js +95 -66
- package/Source/Scene/GlobeSurfaceShaderSet.js +12 -10
- package/Source/Scene/GlobeSurfaceTile.js +33 -33
- package/Source/Scene/GlobeSurfaceTileProvider.js +127 -124
- package/Source/Scene/GlobeTranslucency.js +4 -4
- package/Source/Scene/GlobeTranslucencyFramebuffer.js +9 -9
- package/Source/Scene/GlobeTranslucencyState.js +53 -55
- package/Source/Scene/GltfBufferViewLoader.js +2 -2
- package/Source/Scene/GltfIndexBufferLoader.js +5 -5
- package/Source/Scene/GltfJsonLoader.js +2 -2
- package/Source/Scene/GltfLoader.js +177 -100
- package/Source/Scene/GltfStructuralMetadataLoader.js +9 -8
- package/Source/Scene/GltfTextureLoader.js +5 -5
- package/Source/Scene/GltfVertexBufferLoader.js +12 -13
- package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +9 -9
- package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +9 -9
- package/Source/Scene/GridImageryProvider.js +2 -2
- package/Source/Scene/GroundPolylinePrimitive.js +38 -39
- package/Source/Scene/GroundPrimitive.js +47 -45
- package/Source/Scene/GroupMetadata.js +4 -4
- package/Source/Scene/I3SDataProvider.js +12 -12
- package/Source/Scene/I3SDecoder.js +7 -8
- package/Source/Scene/I3SField.js +8 -8
- package/Source/Scene/I3SGeometry.js +14 -14
- package/Source/Scene/I3SLayer.js +26 -20
- package/Source/Scene/I3SNode.js +17 -17
- package/Source/Scene/I3SSublayer.js +4 -4
- package/Source/Scene/I3SSymbology.js +8 -8
- package/Source/Scene/I3dmParser.js +9 -9
- package/Source/Scene/ImageBasedLighting.js +32 -87
- package/Source/Scene/Imagery.js +3 -3
- package/Source/Scene/ImageryLayer.js +64 -66
- package/Source/Scene/ImageryLayerCollection.js +13 -15
- package/Source/Scene/ImageryLayerFeatureInfo.js +19 -20
- package/Source/Scene/ImageryProvider.js +1 -1
- package/Source/Scene/Implicit3DTileContent.js +34 -37
- package/Source/Scene/ImplicitAvailabilityBitstream.js +2 -2
- package/Source/Scene/ImplicitMetadataView.js +2 -2
- package/Source/Scene/ImplicitSubtree.js +29 -30
- package/Source/Scene/ImplicitSubtreeCache.js +1 -1
- package/Source/Scene/ImplicitSubtreeMetadata.js +5 -5
- package/Source/Scene/ImplicitTileCoordinates.js +11 -11
- package/Source/Scene/ImplicitTileset.js +2 -2
- package/Source/Scene/InvertClassification.js +7 -7
- package/Source/Scene/IonImageryProvider.js +6 -6
- package/Source/Scene/JobScheduler.js +4 -4
- package/Source/Scene/Label.js +29 -29
- package/Source/Scene/LabelCollection.js +17 -15
- package/Source/Scene/MapboxImageryProvider.js +3 -3
- package/Source/Scene/MapboxStyleImageryProvider.js +4 -4
- package/Source/Scene/Material.js +26 -27
- package/Source/Scene/MaterialAppearance.js +4 -4
- package/Source/Scene/Megatexture.js +21 -24
- package/Source/Scene/MetadataClassProperty.js +11 -11
- package/Source/Scene/MetadataComponentType.js +1 -1
- package/Source/Scene/MetadataEntity.js +8 -8
- package/Source/Scene/MetadataEnum.js +1 -1
- package/Source/Scene/MetadataPicking.js +305 -0
- package/Source/Scene/MetadataSchemaLoader.js +1 -1
- package/Source/Scene/MetadataTable.js +2 -2
- package/Source/Scene/MetadataTableProperty.js +22 -22
- package/Source/Scene/Model/AlphaPipelineStage.js +2 -2
- package/Source/Scene/Model/AtmospherePipelineStage.js +13 -8
- package/Source/Scene/Model/B3dmLoader.js +8 -8
- package/Source/Scene/Model/BatchTexturePipelineStage.js +2 -2
- package/Source/Scene/Model/CPUStylingPipelineStage.js +4 -4
- package/Source/Scene/Model/ClassificationModelDrawCommand.js +8 -8
- package/Source/Scene/Model/ClassificationPipelineStage.js +5 -5
- package/Source/Scene/Model/CustomShader.js +9 -9
- package/Source/Scene/Model/CustomShaderPipelineStage.js +37 -38
- package/Source/Scene/Model/DequantizationPipelineStage.js +5 -5
- package/Source/Scene/Model/Extensions/Gpm/AnchorPointDirect.js +61 -0
- package/Source/Scene/Model/Extensions/Gpm/AnchorPointIndirect.js +77 -0
- package/Source/Scene/Model/Extensions/Gpm/CorrelationGroup.js +81 -0
- package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +248 -0
- package/Source/Scene/Model/Extensions/Gpm/GltfGpmLocal.js +179 -0
- package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +548 -0
- package/Source/Scene/Model/Extensions/Gpm/MeshPrimitiveGpmLocal.js +28 -0
- package/Source/Scene/Model/Extensions/Gpm/PpeMetadata.js +79 -0
- package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +75 -0
- package/Source/Scene/Model/Extensions/Gpm/PpeTexture.js +127 -0
- package/Source/Scene/Model/Extensions/Gpm/Spdcf.js +103 -0
- package/Source/Scene/Model/Extensions/Gpm/StorageType.js +30 -0
- package/Source/Scene/Model/FeatureIdPipelineStage.js +40 -40
- package/Source/Scene/Model/GeoJsonLoader.js +17 -17
- package/Source/Scene/Model/GeometryPipelineStage.js +23 -24
- package/Source/Scene/Model/I3dmLoader.js +36 -36
- package/Source/Scene/Model/ImageBasedLightingPipelineStage.js +56 -34
- package/Source/Scene/Model/InstancingPipelineStage.js +86 -86
- package/Source/Scene/Model/LightingPipelineStage.js +4 -4
- package/Source/Scene/Model/MaterialPipelineStage.js +78 -93
- package/Source/Scene/Model/MetadataPickingPipelineStage.js +96 -0
- package/Source/Scene/Model/MetadataPipelineStage.js +39 -47
- package/Source/Scene/Model/Model.js +228 -75
- package/Source/Scene/Model/Model3DTileContent.js +37 -13
- package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
- package/Source/Scene/Model/ModelAnimationCollection.js +9 -9
- package/Source/Scene/Model/ModelArticulation.js +2 -2
- package/Source/Scene/Model/ModelArticulationStage.js +4 -4
- package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +11 -11
- package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +6 -6
- package/Source/Scene/Model/ModelColorPipelineStage.js +12 -13
- package/Source/Scene/Model/ModelDrawCommand.js +5 -5
- package/Source/Scene/Model/{buildDrawCommand.js → ModelDrawCommands.js} +85 -28
- package/Source/Scene/Model/ModelFeatureTable.js +5 -5
- package/Source/Scene/Model/ModelMatrixUpdateStage.js +24 -12
- package/Source/Scene/Model/ModelRenderResources.js +1 -1
- package/Source/Scene/Model/ModelRuntimeNode.js +15 -15
- package/Source/Scene/Model/ModelRuntimePrimitive.js +8 -5
- package/Source/Scene/Model/ModelSceneGraph.js +43 -43
- package/Source/Scene/Model/ModelSilhouettePipelineStage.js +4 -4
- package/Source/Scene/Model/ModelSkin.js +4 -4
- package/Source/Scene/Model/ModelSplitterPipelineStage.js +8 -9
- package/Source/Scene/Model/ModelUtility.js +5 -5
- package/Source/Scene/Model/MorphTargetsPipelineStage.js +18 -18
- package/Source/Scene/Model/NodeRenderResources.js +1 -1
- package/Source/Scene/Model/NodeStatisticsPipelineStage.js +1 -1
- package/Source/Scene/Model/PickingPipelineStage.js +5 -5
- package/Source/Scene/Model/PntsLoader.js +7 -7
- package/Source/Scene/Model/PointCloudStylingPipelineStage.js +22 -23
- package/Source/Scene/Model/PrimitiveOutlineGenerator.js +6 -6
- package/Source/Scene/Model/PrimitiveOutlinePipelineStage.js +7 -7
- package/Source/Scene/Model/PrimitiveRenderResources.js +3 -3
- package/Source/Scene/Model/PrimitiveStatisticsPipelineStage.js +1 -1
- package/Source/Scene/Model/SceneMode2DPipelineStage.js +23 -23
- package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +10 -14
- package/Source/Scene/Model/SkinningPipelineStage.js +5 -5
- package/Source/Scene/Model/StyleCommandsNeeded.js +1 -1
- package/Source/Scene/Model/TextureManager.js +2 -2
- package/Source/Scene/Model/TextureUniform.js +3 -3
- package/Source/Scene/Model/TilesetPipelineStage.js +2 -2
- package/Source/Scene/Model/VerticalExaggerationPipelineStage.js +4 -4
- package/Source/Scene/Model/WireframePipelineStage.js +7 -7
- package/Source/Scene/Model/pickModel.js +26 -26
- package/Source/Scene/ModelComponents.js +13 -4
- package/Source/Scene/Moon.js +6 -5
- package/Source/Scene/Multiple3DTileContent.js +15 -14
- package/Source/Scene/OIT.js +48 -97
- package/Source/Scene/OpenStreetMapImageryProvider.js +8 -7
- package/Source/Scene/OrderedGroundPrimitiveCollection.js +2 -2
- package/Source/Scene/Particle.js +3 -3
- package/Source/Scene/ParticleEmitter.js +1 -1
- package/Source/Scene/ParticleSystem.js +32 -32
- package/Source/Scene/PerInstanceColorAppearance.js +1 -1
- package/Source/Scene/PickDepth.js +16 -4
- package/Source/Scene/PickDepthFramebuffer.js +1 -1
- package/Source/Scene/PickFramebuffer.js +24 -12
- package/Source/Scene/PickedMetadataInfo.js +39 -0
- package/Source/Scene/Picking.js +270 -120
- package/Source/Scene/PntsParser.js +28 -28
- package/Source/Scene/PointCloud.js +39 -38
- package/Source/Scene/PointCloudEyeDomeLighting.js +6 -6
- package/Source/Scene/PointCloudShading.js +3 -3
- package/Source/Scene/PointPrimitive.js +31 -28
- package/Source/Scene/PointPrimitiveCollection.js +34 -33
- package/Source/Scene/Polyline.js +9 -9
- package/Source/Scene/PolylineCollection.js +55 -57
- package/Source/Scene/PolylineColorAppearance.js +3 -3
- package/Source/Scene/PolylineMaterialAppearance.js +3 -3
- package/Source/Scene/PostProcessStage.js +95 -115
- package/Source/Scene/PostProcessStageCollection.js +35 -41
- package/Source/Scene/PostProcessStageComposite.js +2 -2
- package/Source/Scene/PostProcessStageLibrary.js +5 -5
- package/Source/Scene/PostProcessStageTextureCache.js +10 -10
- package/Source/Scene/Primitive.js +93 -93
- package/Source/Scene/PrimitiveCollection.js +1 -1
- package/Source/Scene/PrimitiveLoadPlan.js +1 -1
- package/Source/Scene/PrimitivePipeline.js +30 -30
- package/Source/Scene/PropertyTable.js +5 -5
- package/Source/Scene/PropertyTextureProperty.js +36 -7
- package/Source/Scene/QuadtreePrimitive.js +56 -58
- package/Source/Scene/QuadtreeTile.js +4 -4
- package/Source/Scene/QuadtreeTileProvider.js +1 -1
- package/Source/Scene/ResourceCache.js +7 -7
- package/Source/Scene/ResourceCacheKey.js +15 -15
- package/Source/Scene/Scene.js +879 -657
- package/Source/Scene/SceneFramebuffer.js +2 -2
- package/Source/Scene/SceneTransforms.js +30 -30
- package/Source/Scene/SceneTransitioner.js +47 -47
- package/Source/Scene/ScreenSpaceCameraController.js +180 -154
- package/Source/Scene/SensorVolumePortionToDisplay.js +1 -1
- package/Source/Scene/ShadowMap.js +71 -72
- package/Source/Scene/ShadowMapShader.js +9 -9
- package/Source/Scene/ShadowVolumeAppearance.js +39 -39
- package/Source/Scene/SingleTileImageryProvider.js +3 -3
- package/Source/Scene/SkyAtmosphere.js +8 -8
- package/Source/Scene/SkyBox.js +7 -8
- package/Source/Scene/SpatialNode.js +13 -13
- package/Source/Scene/SphereEmitter.js +1 -1
- package/Source/Scene/StructuralMetadata.js +1 -1
- package/Source/Scene/StyleExpression.js +1 -1
- package/Source/Scene/Sun.js +11 -7
- package/Source/Scene/SunPostProcess.js +6 -6
- package/Source/Scene/TerrainFillMesh.js +157 -156
- package/Source/Scene/TextureAtlas.js +11 -11
- package/Source/Scene/TileBoundingRegion.js +31 -31
- package/Source/Scene/TileBoundingS2Cell.js +37 -40
- package/Source/Scene/TileBoundingSphere.js +2 -2
- package/Source/Scene/TileCoordinatesImageryProvider.js +3 -3
- package/Source/Scene/TileImagery.js +7 -11
- package/Source/Scene/TileMapServiceImageryProvider.js +26 -25
- package/Source/Scene/TileMetadata.js +4 -4
- package/Source/Scene/TileOrientedBoundingBox.js +6 -6
- package/Source/Scene/Tileset3DTileContent.js +1 -1
- package/Source/Scene/TilesetMetadata.js +4 -4
- package/Source/Scene/TimeDynamicImagery.js +3 -3
- package/Source/Scene/TimeDynamicPointCloud.js +9 -9
- package/Source/Scene/TranslucentTileClassification.js +48 -58
- package/Source/Scene/TweenCollection.js +9 -9
- package/Source/Scene/UrlTemplateImageryProvider.js +23 -23
- package/Source/Scene/Vector3DTileClampedPolylines.js +21 -21
- package/Source/Scene/Vector3DTileContent.js +38 -39
- package/Source/Scene/Vector3DTileGeometry.js +11 -8
- package/Source/Scene/Vector3DTilePoints.js +18 -22
- package/Source/Scene/Vector3DTilePolygons.js +6 -6
- package/Source/Scene/Vector3DTilePolylines.js +8 -8
- package/Source/Scene/Vector3DTilePrimitive.js +30 -31
- package/Source/Scene/View.js +111 -80
- package/Source/Scene/VoxelBoxShape.js +34 -34
- package/Source/Scene/VoxelCell.js +7 -7
- package/Source/Scene/VoxelContent.js +1 -1
- package/Source/Scene/VoxelCylinderShape.js +48 -48
- package/Source/Scene/VoxelEllipsoidShape.js +83 -97
- package/Source/Scene/VoxelPrimitive.js +80 -80
- package/Source/Scene/VoxelRenderResources.js +13 -13
- package/Source/Scene/VoxelTraversal.js +41 -41
- package/Source/Scene/WebMapServiceImageryProvider.js +12 -12
- package/Source/Scene/WebMapTileServiceImageryProvider.js +8 -8
- package/Source/Scene/buildVoxelDrawCommands.js +10 -14
- package/Source/Scene/computeFlyToLocationForRectangle.js +7 -5
- package/Source/Scene/createBillboardPointCallback.js +2 -2
- package/Source/Scene/createElevationBandMaterial.js +8 -8
- package/Source/Scene/createGooglePhotorealistic3DTileset.js +1 -1
- package/Source/Scene/createOsmBuildingsAsync.js +1 -1
- package/Source/Scene/createTangentSpaceDebugPrimitive.js +7 -7
- package/Source/Scene/findContentMetadata.js +2 -2
- package/Source/Scene/findTileMetadata.js +2 -2
- package/Source/Scene/getBinaryAccessor.js +1 -1
- package/Source/Scene/getClipAndStyleCode.js +1 -1
- package/Source/Scene/getClippingFunction.js +1 -1
- package/Source/Scene/getMetadataClassProperty.js +43 -0
- package/Source/Scene/parseBatchTable.js +21 -24
- package/Source/Scene/parseFeatureMetadataLegacy.js +3 -3
- package/Source/Scene/parseStructuralMetadata.js +3 -3
- package/Source/Scene/processVoxelProperties.js +28 -33
- package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.glsl +44 -0
- package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.js +44 -0
- package/Source/Shaders/Builtin/Functions/computeScattering.glsl +0 -1
- package/Source/Shaders/Builtin/Functions/computeScattering.js +0 -1
- package/Source/Shaders/Builtin/Functions/packDepth.glsl +2 -2
- package/Source/Shaders/Builtin/Functions/packDepth.js +2 -2
- package/Source/Shaders/Builtin/Functions/sphericalHarmonics.glsl +3 -1
- package/Source/Shaders/Builtin/Functions/sphericalHarmonics.js +3 -1
- package/Source/Shaders/Builtin/Functions/unpackDepth.glsl +3 -3
- package/Source/Shaders/Builtin/Functions/unpackDepth.js +3 -3
- package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl +1 -1
- package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.js +1 -1
- package/Source/Shaders/Builtin/Functions/writeLogDepth.glsl +2 -2
- package/Source/Shaders/Builtin/Functions/writeLogDepth.js +2 -2
- package/Source/Shaders/ComputeIrradianceFS.glsl +103 -0
- package/Source/Shaders/ComputeIrradianceFS.js +105 -0
- package/Source/Shaders/ComputeRadianceMapFS.glsl +107 -0
- package/Source/Shaders/ComputeRadianceMapFS.js +109 -0
- package/Source/Shaders/ConvolveSpecularMapFS.glsl +70 -0
- package/Source/Shaders/ConvolveSpecularMapFS.js +72 -0
- package/Source/Shaders/ConvolveSpecularMapVS.glsl +24 -0
- package/Source/Shaders/ConvolveSpecularMapVS.js +26 -0
- package/Source/Shaders/DepthPlaneVS.glsl +1 -1
- package/Source/Shaders/DepthPlaneVS.js +1 -1
- package/Source/Shaders/GlobeFS.glsl +1 -2
- package/Source/Shaders/GlobeFS.js +1 -2
- package/Source/Shaders/Model/AtmosphereStageFS.glsl +1 -4
- package/Source/Shaders/Model/AtmosphereStageFS.js +1 -4
- package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +2 -155
- package/Source/Shaders/Model/ImageBasedLightingStageFS.js +3 -156
- package/Source/Shaders/Model/LightingStageFS.glsl +3 -22
- package/Source/Shaders/Model/LightingStageFS.js +3 -22
- package/Source/Shaders/Model/ModelFS.glsl +26 -0
- package/Source/Shaders/Model/ModelFS.js +26 -0
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +59 -59
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +60 -60
- package/Source/Shaders/SkyBoxVS.glsl +0 -1
- package/Source/Shaders/SkyBoxVS.js +0 -1
- package/Source/Widget/CesiumWidget.js +785 -9
- package/Source/Workers/combineGeometry.js +3 -4
- package/Source/Workers/createCircleGeometry.js +2 -2
- package/Source/Workers/createCircleOutlineGeometry.js +2 -2
- package/Source/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
- package/Source/Workers/createCorridorOutlineGeometry.js +2 -2
- package/Source/Workers/createEllipsoidOutlineGeometry.js +1 -1
- package/Source/Workers/createGeometry.js +4 -5
- package/Source/Workers/createGroundPolylineGeometry.js +1 -1
- package/Source/Workers/createPolylineVolumeGeometry.js +2 -2
- package/Source/Workers/createPolylineVolumeOutlineGeometry.js +4 -4
- package/Source/Workers/createRectangleOutlineGeometry.js +1 -1
- package/Source/Workers/createSimplePolylineGeometry.js +2 -2
- package/Source/Workers/createTaskProcessorWorker.js +1 -1
- package/Source/Workers/createVectorTileClampedPolylines.js +30 -30
- package/Source/Workers/createVectorTileGeometries.js +18 -18
- package/Source/Workers/createVectorTilePoints.js +3 -3
- package/Source/Workers/createVectorTilePolygons.js +11 -11
- package/Source/Workers/createVectorTilePolylines.js +7 -7
- package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +29 -30
- package/Source/Workers/createVerticesFromQuantizedTerrainMesh.js +60 -60
- package/Source/Workers/decodeDraco.js +23 -23
- package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +4 -4
- package/Source/Workers/decodeI3S.js +53 -53
- package/Source/Workers/transcodeKTX2.js +9 -9
- package/Source/Workers/transferTypedArrayTest.js +1 -1
- package/Source/Workers/upsampleQuantizedTerrainMesh.js +37 -36
- package/index.d.ts +769 -47
- package/index.js +73 -51
- package/package.json +3 -3
|
@@ -2,6 +2,8 @@ import defined from "../Core/defined.js";
|
|
|
2
2
|
import DrawCommand from "../Renderer/DrawCommand.js";
|
|
3
3
|
import RenderState from "../Renderer/RenderState.js";
|
|
4
4
|
import ShaderSource from "../Renderer/ShaderSource.js";
|
|
5
|
+
import MetadataType from "./MetadataType.js";
|
|
6
|
+
import MetadataPickingPipelineStage from "./Model/MetadataPickingPipelineStage.js";
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
9
|
* @private
|
|
@@ -12,89 +14,80 @@ const fragDepthRegex = /\bgl_FragDepth\b/;
|
|
|
12
14
|
const discardRegex = /\bdiscard\b/;
|
|
13
15
|
|
|
14
16
|
function getDepthOnlyShaderProgram(context, shaderProgram) {
|
|
15
|
-
|
|
17
|
+
const cachedShader = context.shaderCache.getDerivedShaderProgram(
|
|
16
18
|
shaderProgram,
|
|
17
|
-
"depthOnly"
|
|
19
|
+
"depthOnly",
|
|
18
20
|
);
|
|
19
|
-
if (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
let i;
|
|
24
|
-
let writesDepthOrDiscards = false;
|
|
25
|
-
const sources = fs.sources;
|
|
26
|
-
let length = sources.length;
|
|
27
|
-
for (i = 0; i < length; ++i) {
|
|
28
|
-
if (fragDepthRegex.test(sources[i]) || discardRegex.test(sources[i])) {
|
|
29
|
-
writesDepthOrDiscards = true;
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
21
|
+
if (defined(cachedShader)) {
|
|
22
|
+
return cachedShader;
|
|
23
|
+
}
|
|
33
24
|
|
|
34
|
-
|
|
35
|
-
const defines = fs.defines;
|
|
36
|
-
length = defines.length;
|
|
37
|
-
for (i = 0; i < length; ++i) {
|
|
38
|
-
if (defines[i] === "LOG_DEPTH") {
|
|
39
|
-
usesLogDepth = true;
|
|
40
|
-
break;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
25
|
+
let fs = shaderProgram.fragmentShaderSource;
|
|
43
26
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
"} \n";
|
|
51
|
-
fs = new ShaderSource({
|
|
52
|
-
sources: [source],
|
|
53
|
-
});
|
|
54
|
-
} else if (!writesDepthOrDiscards && usesLogDepth) {
|
|
55
|
-
source =
|
|
56
|
-
"void main() \n" +
|
|
57
|
-
"{ \n" +
|
|
58
|
-
" out_FragColor = vec4(1.0); \n" +
|
|
59
|
-
" czm_writeLogDepth(); \n" +
|
|
60
|
-
"} \n";
|
|
61
|
-
fs = new ShaderSource({
|
|
62
|
-
defines: ["LOG_DEPTH"],
|
|
63
|
-
sources: [source],
|
|
64
|
-
});
|
|
27
|
+
let writesDepthOrDiscards = false;
|
|
28
|
+
const sources = fs.sources;
|
|
29
|
+
for (let i = 0; i < sources.length; ++i) {
|
|
30
|
+
if (fragDepthRegex.test(sources[i]) || discardRegex.test(sources[i])) {
|
|
31
|
+
writesDepthOrDiscards = true;
|
|
32
|
+
break;
|
|
65
33
|
}
|
|
34
|
+
}
|
|
66
35
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
36
|
+
const usesLogDepth = fs.defines.indexOf("LOG_DEPTH") >= 0;
|
|
37
|
+
|
|
38
|
+
if (!writesDepthOrDiscards && !usesLogDepth) {
|
|
39
|
+
const source = `void main()
|
|
40
|
+
{
|
|
41
|
+
out_FragColor = vec4(1.0);
|
|
42
|
+
}
|
|
43
|
+
`;
|
|
44
|
+
fs = new ShaderSource({
|
|
45
|
+
sources: [source],
|
|
46
|
+
});
|
|
47
|
+
} else if (!writesDepthOrDiscards && usesLogDepth) {
|
|
48
|
+
const source = `void main()
|
|
49
|
+
{
|
|
50
|
+
out_FragColor = vec4(1.0);
|
|
51
|
+
czm_writeLogDepth();
|
|
52
|
+
}
|
|
53
|
+
`;
|
|
54
|
+
fs = new ShaderSource({
|
|
55
|
+
defines: ["LOG_DEPTH"],
|
|
56
|
+
sources: [source],
|
|
57
|
+
});
|
|
76
58
|
}
|
|
77
59
|
|
|
78
|
-
return
|
|
60
|
+
return context.shaderCache.createDerivedShaderProgram(
|
|
61
|
+
shaderProgram,
|
|
62
|
+
"depthOnly",
|
|
63
|
+
{
|
|
64
|
+
vertexShaderSource: shaderProgram.vertexShaderSource,
|
|
65
|
+
fragmentShaderSource: fs,
|
|
66
|
+
attributeLocations: shaderProgram._attributeLocations,
|
|
67
|
+
},
|
|
68
|
+
);
|
|
79
69
|
}
|
|
80
70
|
|
|
81
71
|
function getDepthOnlyRenderState(scene, renderState) {
|
|
82
72
|
const cache = scene._depthOnlyRenderStateCache;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
rs.colorMask = {
|
|
88
|
-
red: false,
|
|
89
|
-
green: false,
|
|
90
|
-
blue: false,
|
|
91
|
-
alpha: false,
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
depthOnlyState = RenderState.fromCache(rs);
|
|
95
|
-
cache[renderState.id] = depthOnlyState;
|
|
73
|
+
|
|
74
|
+
const cachedDepthOnlyState = cache[renderState.id];
|
|
75
|
+
if (defined(cachedDepthOnlyState)) {
|
|
76
|
+
return cachedDepthOnlyState;
|
|
96
77
|
}
|
|
97
78
|
|
|
79
|
+
const rs = RenderState.getState(renderState);
|
|
80
|
+
rs.depthMask = true;
|
|
81
|
+
rs.colorMask = {
|
|
82
|
+
red: false,
|
|
83
|
+
green: false,
|
|
84
|
+
blue: false,
|
|
85
|
+
alpha: false,
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
const depthOnlyState = RenderState.fromCache(rs);
|
|
89
|
+
cache[renderState.id] = depthOnlyState;
|
|
90
|
+
|
|
98
91
|
return depthOnlyState;
|
|
99
92
|
}
|
|
100
93
|
|
|
@@ -102,7 +95,7 @@ DerivedCommand.createDepthOnlyDerivedCommand = function (
|
|
|
102
95
|
scene,
|
|
103
96
|
command,
|
|
104
97
|
context,
|
|
105
|
-
result
|
|
98
|
+
result,
|
|
106
99
|
) {
|
|
107
100
|
// For a depth only pass, we bind a framebuffer with only a depth attachment (no color attachments),
|
|
108
101
|
// do not write color, and write depth. If the fragment shader doesn't modify the fragment depth
|
|
@@ -113,26 +106,22 @@ DerivedCommand.createDepthOnlyDerivedCommand = function (
|
|
|
113
106
|
result = {};
|
|
114
107
|
}
|
|
115
108
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if (defined(result.depthOnlyCommand)) {
|
|
119
|
-
shader = result.depthOnlyCommand.shaderProgram;
|
|
120
|
-
renderState = result.depthOnlyCommand.renderState;
|
|
121
|
-
}
|
|
109
|
+
const shader = result.depthOnlyCommand?.shaderProgram;
|
|
110
|
+
const renderState = result.depthOnlyCommand?.renderState;
|
|
122
111
|
|
|
123
112
|
result.depthOnlyCommand = DrawCommand.shallowClone(
|
|
124
113
|
command,
|
|
125
|
-
result.depthOnlyCommand
|
|
114
|
+
result.depthOnlyCommand,
|
|
126
115
|
);
|
|
127
116
|
|
|
128
117
|
if (!defined(shader) || result.shaderProgramId !== command.shaderProgram.id) {
|
|
129
118
|
result.depthOnlyCommand.shaderProgram = getDepthOnlyShaderProgram(
|
|
130
119
|
context,
|
|
131
|
-
command.shaderProgram
|
|
120
|
+
command.shaderProgram,
|
|
132
121
|
);
|
|
133
122
|
result.depthOnlyCommand.renderState = getDepthOnlyRenderState(
|
|
134
123
|
scene,
|
|
135
|
-
command.renderState
|
|
124
|
+
command.renderState,
|
|
136
125
|
);
|
|
137
126
|
result.shaderProgramId = command.shaderProgram.id;
|
|
138
127
|
} else {
|
|
@@ -154,91 +143,88 @@ function getLogDepthShaderProgram(context, shaderProgram) {
|
|
|
154
143
|
return shaderProgram;
|
|
155
144
|
}
|
|
156
145
|
|
|
157
|
-
|
|
146
|
+
const cachedShader = context.shaderCache.getDerivedShaderProgram(
|
|
158
147
|
shaderProgram,
|
|
159
|
-
"logDepth"
|
|
148
|
+
"logDepth",
|
|
160
149
|
);
|
|
161
|
-
if (
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
const fs = shaderProgram.fragmentShaderSource.clone();
|
|
165
|
-
|
|
166
|
-
vs.defines = defined(vs.defines) ? vs.defines.slice(0) : [];
|
|
167
|
-
vs.defines.push("LOG_DEPTH");
|
|
168
|
-
fs.defines = defined(fs.defines) ? fs.defines.slice(0) : [];
|
|
169
|
-
fs.defines.push("LOG_DEPTH");
|
|
170
|
-
|
|
171
|
-
let i;
|
|
172
|
-
let logMain;
|
|
173
|
-
let writesLogDepth = false;
|
|
174
|
-
let sources = vs.sources;
|
|
175
|
-
let length = sources.length;
|
|
176
|
-
for (i = 0; i < length; ++i) {
|
|
177
|
-
if (vertexlogDepthRegex.test(sources[i])) {
|
|
178
|
-
writesLogDepth = true;
|
|
179
|
-
break;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
150
|
+
if (defined(cachedShader)) {
|
|
151
|
+
return cachedShader;
|
|
152
|
+
}
|
|
182
153
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
logMain =
|
|
189
|
-
"\n\n" +
|
|
190
|
-
"void main() \n" +
|
|
191
|
-
"{ \n" +
|
|
192
|
-
" czm_log_depth_main(); \n" +
|
|
193
|
-
" czm_vertexLogDepth(); \n" +
|
|
194
|
-
"} \n";
|
|
195
|
-
sources.push(logMain);
|
|
196
|
-
}
|
|
154
|
+
const attributeLocations = shaderProgram._attributeLocations;
|
|
155
|
+
const vs = shaderProgram.vertexShaderSource.clone();
|
|
156
|
+
const fs = shaderProgram.fragmentShaderSource.clone();
|
|
197
157
|
|
|
198
|
-
|
|
199
|
-
|
|
158
|
+
vs.defines = defined(vs.defines) ? vs.defines.slice(0) : [];
|
|
159
|
+
vs.defines.push("LOG_DEPTH");
|
|
160
|
+
fs.defines = defined(fs.defines) ? fs.defines.slice(0) : [];
|
|
161
|
+
fs.defines.push("LOG_DEPTH");
|
|
200
162
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
// This define indicates that a log depth value is written by the shader but doesn't use czm_writeLogDepth.
|
|
208
|
-
if (fs.defines.indexOf("LOG_DEPTH_WRITE") !== -1) {
|
|
163
|
+
let writesLogDepth = false;
|
|
164
|
+
let sources = vs.sources;
|
|
165
|
+
for (let i = 0; i < sources.length; ++i) {
|
|
166
|
+
if (vertexlogDepthRegex.test(sources[i])) {
|
|
209
167
|
writesLogDepth = true;
|
|
168
|
+
break;
|
|
210
169
|
}
|
|
170
|
+
}
|
|
211
171
|
|
|
212
|
-
|
|
172
|
+
if (!writesLogDepth) {
|
|
173
|
+
for (let i = 0; i < sources.length; ++i) {
|
|
174
|
+
sources[i] = ShaderSource.replaceMain(sources[i], "czm_log_depth_main");
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
const logMain = `
|
|
213
178
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
179
|
+
void main()
|
|
180
|
+
{
|
|
181
|
+
czm_log_depth_main();
|
|
182
|
+
czm_vertexLogDepth();
|
|
183
|
+
}
|
|
184
|
+
`;
|
|
185
|
+
sources.push(logMain);
|
|
186
|
+
}
|
|
218
187
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
"} \n";
|
|
188
|
+
sources = fs.sources;
|
|
189
|
+
|
|
190
|
+
writesLogDepth = false;
|
|
191
|
+
for (let i = 0; i < sources.length; ++i) {
|
|
192
|
+
if (writeLogDepthRegex.test(sources[i])) {
|
|
193
|
+
writesLogDepth = true;
|
|
226
194
|
}
|
|
195
|
+
}
|
|
196
|
+
// This define indicates that a log depth value is written by the shader but doesn't use czm_writeLogDepth.
|
|
197
|
+
if (fs.defines.indexOf("LOG_DEPTH_WRITE") !== -1) {
|
|
198
|
+
writesLogDepth = true;
|
|
199
|
+
}
|
|
227
200
|
|
|
228
|
-
|
|
201
|
+
let logSource = "";
|
|
229
202
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
"
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
);
|
|
203
|
+
if (!writesLogDepth) {
|
|
204
|
+
for (let i = 0; i < sources.length; i++) {
|
|
205
|
+
sources[i] = ShaderSource.replaceMain(sources[i], "czm_log_depth_main");
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
logSource = `
|
|
209
|
+
void main()
|
|
210
|
+
{
|
|
211
|
+
czm_log_depth_main();
|
|
212
|
+
czm_writeLogDepth();
|
|
213
|
+
}
|
|
214
|
+
`;
|
|
239
215
|
}
|
|
240
216
|
|
|
241
|
-
|
|
217
|
+
sources.push(logSource);
|
|
218
|
+
|
|
219
|
+
return context.shaderCache.createDerivedShaderProgram(
|
|
220
|
+
shaderProgram,
|
|
221
|
+
"logDepth",
|
|
222
|
+
{
|
|
223
|
+
vertexShaderSource: vs,
|
|
224
|
+
fragmentShaderSource: fs,
|
|
225
|
+
attributeLocations: attributeLocations,
|
|
226
|
+
},
|
|
227
|
+
);
|
|
242
228
|
}
|
|
243
229
|
|
|
244
230
|
DerivedCommand.createLogDepthCommand = function (command, context, result) {
|
|
@@ -246,17 +232,14 @@ DerivedCommand.createLogDepthCommand = function (command, context, result) {
|
|
|
246
232
|
result = {};
|
|
247
233
|
}
|
|
248
234
|
|
|
249
|
-
|
|
250
|
-
if (defined(result.command)) {
|
|
251
|
-
shader = result.command.shaderProgram;
|
|
252
|
-
}
|
|
235
|
+
const shader = result.command?.shaderProgram;
|
|
253
236
|
|
|
254
237
|
result.command = DrawCommand.shallowClone(command, result.command);
|
|
255
238
|
|
|
256
239
|
if (!defined(shader) || result.shaderProgramId !== command.shaderProgram.id) {
|
|
257
240
|
result.command.shaderProgram = getLogDepthShaderProgram(
|
|
258
241
|
context,
|
|
259
|
-
command.shaderProgram
|
|
242
|
+
command.shaderProgram,
|
|
260
243
|
);
|
|
261
244
|
result.shaderProgramId = command.shaderProgram.id;
|
|
262
245
|
} else {
|
|
@@ -267,24 +250,20 @@ DerivedCommand.createLogDepthCommand = function (command, context, result) {
|
|
|
267
250
|
};
|
|
268
251
|
|
|
269
252
|
function getPickShaderProgram(context, shaderProgram, pickId) {
|
|
270
|
-
|
|
253
|
+
const cachedShader = context.shaderCache.getDerivedShaderProgram(
|
|
271
254
|
shaderProgram,
|
|
272
|
-
"pick"
|
|
255
|
+
"pick",
|
|
273
256
|
);
|
|
274
|
-
if (
|
|
275
|
-
|
|
276
|
-
|
|
257
|
+
if (defined(cachedShader)) {
|
|
258
|
+
return cachedShader;
|
|
259
|
+
}
|
|
277
260
|
|
|
278
|
-
|
|
279
|
-
|
|
261
|
+
const attributeLocations = shaderProgram._attributeLocations;
|
|
262
|
+
const { sources, defines } = shaderProgram.fragmentShaderSource;
|
|
280
263
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
const outputColorVariable = hasFragData
|
|
285
|
-
? "out_FragData_0"
|
|
286
|
-
: "out_FragColor";
|
|
287
|
-
const newMain = `void main ()
|
|
264
|
+
const hasFragData = sources.some((source) => source.includes("out_FragData"));
|
|
265
|
+
const outputColorVariable = hasFragData ? "out_FragData_0" : "out_FragColor";
|
|
266
|
+
const newMain = `void main ()
|
|
288
267
|
{
|
|
289
268
|
czm_non_pick_main();
|
|
290
269
|
if (${outputColorVariable}.a == 0.0) {
|
|
@@ -293,47 +272,42 @@ function getPickShaderProgram(context, shaderProgram, pickId) {
|
|
|
293
272
|
${outputColorVariable} = ${pickId};
|
|
294
273
|
} `;
|
|
295
274
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
newSources[length] = newMain;
|
|
301
|
-
fs = new ShaderSource({
|
|
302
|
-
sources: newSources,
|
|
303
|
-
defines: fs.defines,
|
|
304
|
-
});
|
|
305
|
-
shader = context.shaderCache.createDerivedShaderProgram(
|
|
306
|
-
shaderProgram,
|
|
307
|
-
"pick",
|
|
308
|
-
{
|
|
309
|
-
vertexShaderSource: shaderProgram.vertexShaderSource,
|
|
310
|
-
fragmentShaderSource: fs,
|
|
311
|
-
attributeLocations: attributeLocations,
|
|
312
|
-
}
|
|
313
|
-
);
|
|
275
|
+
const length = sources.length;
|
|
276
|
+
const newSources = new Array(length + 1);
|
|
277
|
+
for (let i = 0; i < length; ++i) {
|
|
278
|
+
newSources[i] = ShaderSource.replaceMain(sources[i], "czm_non_pick_main");
|
|
314
279
|
}
|
|
315
|
-
|
|
316
|
-
|
|
280
|
+
newSources[length] = newMain;
|
|
281
|
+
const fragmentShaderSource = new ShaderSource({
|
|
282
|
+
sources: newSources,
|
|
283
|
+
defines: defines,
|
|
284
|
+
});
|
|
285
|
+
return context.shaderCache.createDerivedShaderProgram(shaderProgram, "pick", {
|
|
286
|
+
vertexShaderSource: shaderProgram.vertexShaderSource,
|
|
287
|
+
fragmentShaderSource: fragmentShaderSource,
|
|
288
|
+
attributeLocations: attributeLocations,
|
|
289
|
+
});
|
|
317
290
|
}
|
|
318
291
|
|
|
319
292
|
function getPickRenderState(scene, renderState) {
|
|
320
293
|
const cache = scene.picking.pickRenderStateCache;
|
|
321
|
-
|
|
322
|
-
if (
|
|
323
|
-
|
|
324
|
-
rs.blending.enabled = false;
|
|
325
|
-
|
|
326
|
-
// Turns on depth writing for opaque and translucent passes
|
|
327
|
-
// Overlapping translucent geometry on the globe surface may exhibit z-fighting
|
|
328
|
-
// during the pick pass which may not match the rendered scene. Once
|
|
329
|
-
// terrain is on by default and ground primitives are used instead
|
|
330
|
-
// this will become less of a problem.
|
|
331
|
-
rs.depthMask = true;
|
|
332
|
-
|
|
333
|
-
pickState = RenderState.fromCache(rs);
|
|
334
|
-
cache[renderState.id] = pickState;
|
|
294
|
+
const cachedPickState = cache[renderState.id];
|
|
295
|
+
if (defined(cachedPickState)) {
|
|
296
|
+
return cachedPickState;
|
|
335
297
|
}
|
|
336
298
|
|
|
299
|
+
const rs = RenderState.getState(renderState);
|
|
300
|
+
rs.blending.enabled = false;
|
|
301
|
+
|
|
302
|
+
// Turns on depth writing for opaque and translucent passes
|
|
303
|
+
// Overlapping translucent geometry on the globe surface may exhibit z-fighting
|
|
304
|
+
// during the pick pass which may not match the rendered scene. Once
|
|
305
|
+
// terrain is on by default and ground primitives are used instead
|
|
306
|
+
// this will become less of a problem.
|
|
307
|
+
rs.depthMask = true;
|
|
308
|
+
|
|
309
|
+
const pickState = RenderState.fromCache(rs);
|
|
310
|
+
cache[renderState.id] = pickState;
|
|
337
311
|
return pickState;
|
|
338
312
|
}
|
|
339
313
|
|
|
@@ -341,18 +315,14 @@ DerivedCommand.createPickDerivedCommand = function (
|
|
|
341
315
|
scene,
|
|
342
316
|
command,
|
|
343
317
|
context,
|
|
344
|
-
result
|
|
318
|
+
result,
|
|
345
319
|
) {
|
|
346
320
|
if (!defined(result)) {
|
|
347
321
|
result = {};
|
|
348
322
|
}
|
|
349
323
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
if (defined(result.pickCommand)) {
|
|
353
|
-
shader = result.pickCommand.shaderProgram;
|
|
354
|
-
renderState = result.pickCommand.renderState;
|
|
355
|
-
}
|
|
324
|
+
const shader = result.pickCommand?.shaderProgram;
|
|
325
|
+
const renderState = result.pickCommand?.renderState;
|
|
356
326
|
|
|
357
327
|
result.pickCommand = DrawCommand.shallowClone(command, result.pickCommand);
|
|
358
328
|
|
|
@@ -360,11 +330,11 @@ DerivedCommand.createPickDerivedCommand = function (
|
|
|
360
330
|
result.pickCommand.shaderProgram = getPickShaderProgram(
|
|
361
331
|
context,
|
|
362
332
|
command.shaderProgram,
|
|
363
|
-
command.pickId
|
|
333
|
+
command.pickId,
|
|
364
334
|
);
|
|
365
335
|
result.pickCommand.renderState = getPickRenderState(
|
|
366
336
|
scene,
|
|
367
|
-
command.renderState
|
|
337
|
+
command.renderState,
|
|
368
338
|
);
|
|
369
339
|
result.shaderProgramId = command.shaderProgram.id;
|
|
370
340
|
} else {
|
|
@@ -375,33 +345,250 @@ DerivedCommand.createPickDerivedCommand = function (
|
|
|
375
345
|
return result;
|
|
376
346
|
};
|
|
377
347
|
|
|
348
|
+
/**
|
|
349
|
+
* Replaces the value of the specified 'define' directive identifier
|
|
350
|
+
* with the given value.
|
|
351
|
+
*
|
|
352
|
+
* The given defines are the parts of the define directives that are
|
|
353
|
+
* stored in the `ShaderSource`. For example, the defines may be
|
|
354
|
+
* `["EXAMPLE", "EXAMPLE_VALUE 123"]`
|
|
355
|
+
*
|
|
356
|
+
* Calling `replaceDefine(defines, "EXAMPLE", 999)` will result in
|
|
357
|
+
* the defines being
|
|
358
|
+
* `["EXAMPLE 999", "EXAMPLE_VALUE 123"]`
|
|
359
|
+
*
|
|
360
|
+
* @param {string[]} defines The define directive identifiers
|
|
361
|
+
* @param {string} defineName The name (identifier) of the define directive
|
|
362
|
+
* @param {any} newDefineValue The new value whose string representation
|
|
363
|
+
* will become the token string for the define directive
|
|
364
|
+
* @private
|
|
365
|
+
*/
|
|
366
|
+
function replaceDefine(defines, defineName, newDefineValue) {
|
|
367
|
+
const n = defines.length;
|
|
368
|
+
for (let i = 0; i < n; i++) {
|
|
369
|
+
const define = defines[i];
|
|
370
|
+
const tokens = define.trimStart().split(/\s+/);
|
|
371
|
+
if (tokens[0] === defineName) {
|
|
372
|
+
defines[i] = `${defineName} ${newDefineValue}`;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* Returns the component count for the given class property, or
|
|
379
|
+
* its array length if it is an array.
|
|
380
|
+
*
|
|
381
|
+
* This will be
|
|
382
|
+
* `[1, 2, 3, 4]` for `[SCALAR, VEC2, VEC3, VEC4`] types,
|
|
383
|
+
* or the array length if it is an array.
|
|
384
|
+
*
|
|
385
|
+
* @param {MetadataClassProperty} classProperty The class property
|
|
386
|
+
* @returns {number} The component count
|
|
387
|
+
* @private
|
|
388
|
+
*/
|
|
389
|
+
function getComponentCount(classProperty) {
|
|
390
|
+
if (!classProperty.isArray) {
|
|
391
|
+
return MetadataType.getComponentCount(classProperty.type);
|
|
392
|
+
}
|
|
393
|
+
return classProperty.arrayLength;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
/**
|
|
397
|
+
* Returns the type that the given class property has in a GLSL shader.
|
|
398
|
+
*
|
|
399
|
+
* It returns the same string as `PropertyTextureProperty.prototype.getGlslType`
|
|
400
|
+
* for a property texture property with the given class property
|
|
401
|
+
*
|
|
402
|
+
* @param {MetadataClassProperty} classProperty The class property
|
|
403
|
+
* @returns {string} The GLSL shader type string for the property
|
|
404
|
+
*/
|
|
405
|
+
function getGlslType(classProperty) {
|
|
406
|
+
const componentCount = getComponentCount(classProperty);
|
|
407
|
+
if (classProperty.normalized) {
|
|
408
|
+
if (componentCount === 1) {
|
|
409
|
+
return "float";
|
|
410
|
+
}
|
|
411
|
+
return `vec${componentCount}`;
|
|
412
|
+
}
|
|
413
|
+
if (componentCount === 1) {
|
|
414
|
+
return "int";
|
|
415
|
+
}
|
|
416
|
+
return `ivec${componentCount}`;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
/**
|
|
420
|
+
* Creates a new `ShaderProgram` from the given input that renders metadata
|
|
421
|
+
* values into the frame buffer, according to the given picked metadata info.
|
|
422
|
+
*
|
|
423
|
+
* This will update the `defines` of the fragment shader of the given shader
|
|
424
|
+
* program, by setting `METADATA_PICKING_ENABLED`, and updating the
|
|
425
|
+
* `METADATA_PICKING_VALUE_*` defines so that they reflect the components
|
|
426
|
+
* of the metadata that should be written into the RGBA (vec4) that
|
|
427
|
+
* ends up as the 'color' in the frame buffer.
|
|
428
|
+
*
|
|
429
|
+
* The RGBA values will eventually be converted back into an actual metadata
|
|
430
|
+
* value in `Picking.js`, by calling `MetadataPicking.decodeMetadataValues`.
|
|
431
|
+
*
|
|
432
|
+
* @param {Context} context The context
|
|
433
|
+
* @param {ShaderProgram} shaderProgram The shader program
|
|
434
|
+
* @param {PickedMetadataInfo} pickedMetadataInfo The picked metadata info
|
|
435
|
+
* @returns {ShaderProgram} The new shader program
|
|
436
|
+
* @private
|
|
437
|
+
*/
|
|
438
|
+
function getPickMetadataShaderProgram(
|
|
439
|
+
context,
|
|
440
|
+
shaderProgram,
|
|
441
|
+
pickedMetadataInfo,
|
|
442
|
+
) {
|
|
443
|
+
const schemaId = pickedMetadataInfo.schemaId;
|
|
444
|
+
const className = pickedMetadataInfo.className;
|
|
445
|
+
const propertyName = pickedMetadataInfo.propertyName;
|
|
446
|
+
const keyword = `pickMetadata-${schemaId}-${className}-${propertyName}`;
|
|
447
|
+
const shader = context.shaderCache.getDerivedShaderProgram(
|
|
448
|
+
shaderProgram,
|
|
449
|
+
keyword,
|
|
450
|
+
);
|
|
451
|
+
if (defined(shader)) {
|
|
452
|
+
return shader;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
const classProperty = pickedMetadataInfo.classProperty;
|
|
456
|
+
const glslType = getGlslType(classProperty);
|
|
457
|
+
|
|
458
|
+
// Define the components that will go into the output `metadataValues`.
|
|
459
|
+
// By default, all of them are 0.0.
|
|
460
|
+
const sourceValueStrings = ["0.0", "0.0", "0.0", "0.0"];
|
|
461
|
+
const componentCount = getComponentCount(classProperty);
|
|
462
|
+
if (componentCount === 1) {
|
|
463
|
+
// When the property is a scalar, store its value directly
|
|
464
|
+
// in `metadataValues.x`
|
|
465
|
+
sourceValueStrings[0] = `float(value)`;
|
|
466
|
+
} else {
|
|
467
|
+
// When the property is an array, store the array elements
|
|
468
|
+
// in `metadataValues.x/y/z/w`
|
|
469
|
+
const components = ["x", "y", "z", "w"];
|
|
470
|
+
for (let i = 0; i < componentCount; i++) {
|
|
471
|
+
const component = components[i];
|
|
472
|
+
const valueString = `value.${component}`;
|
|
473
|
+
sourceValueStrings[i] = `float(${valueString})`;
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
// Make sure that the `metadataValues` components are all in
|
|
478
|
+
// the range [0, 1] (which will result in RGBA components
|
|
479
|
+
// in [0, 255] during rendering)
|
|
480
|
+
if (!classProperty.normalized) {
|
|
481
|
+
for (let i = 0; i < componentCount; i++) {
|
|
482
|
+
sourceValueStrings[i] += " / 255.0";
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
const newDefines = shaderProgram.fragmentShaderSource.defines.slice();
|
|
487
|
+
newDefines.push(MetadataPickingPipelineStage.METADATA_PICKING_ENABLED);
|
|
488
|
+
|
|
489
|
+
// Replace the defines of the shader, using the type, property
|
|
490
|
+
// access, and value components that have been determined
|
|
491
|
+
replaceDefine(
|
|
492
|
+
newDefines,
|
|
493
|
+
MetadataPickingPipelineStage.METADATA_PICKING_VALUE_TYPE,
|
|
494
|
+
glslType,
|
|
495
|
+
);
|
|
496
|
+
replaceDefine(
|
|
497
|
+
newDefines,
|
|
498
|
+
MetadataPickingPipelineStage.METADATA_PICKING_VALUE_STRING,
|
|
499
|
+
`metadata.${propertyName}`,
|
|
500
|
+
);
|
|
501
|
+
replaceDefine(
|
|
502
|
+
newDefines,
|
|
503
|
+
MetadataPickingPipelineStage.METADATA_PICKING_VALUE_COMPONENT_X,
|
|
504
|
+
sourceValueStrings[0],
|
|
505
|
+
);
|
|
506
|
+
replaceDefine(
|
|
507
|
+
newDefines,
|
|
508
|
+
MetadataPickingPipelineStage.METADATA_PICKING_VALUE_COMPONENT_Y,
|
|
509
|
+
sourceValueStrings[1],
|
|
510
|
+
);
|
|
511
|
+
replaceDefine(
|
|
512
|
+
newDefines,
|
|
513
|
+
MetadataPickingPipelineStage.METADATA_PICKING_VALUE_COMPONENT_Z,
|
|
514
|
+
sourceValueStrings[2],
|
|
515
|
+
);
|
|
516
|
+
replaceDefine(
|
|
517
|
+
newDefines,
|
|
518
|
+
MetadataPickingPipelineStage.METADATA_PICKING_VALUE_COMPONENT_W,
|
|
519
|
+
sourceValueStrings[3],
|
|
520
|
+
);
|
|
521
|
+
|
|
522
|
+
const newFragmentShaderSource = new ShaderSource({
|
|
523
|
+
sources: shaderProgram.fragmentShaderSource.sources,
|
|
524
|
+
defines: newDefines,
|
|
525
|
+
});
|
|
526
|
+
const newShader = context.shaderCache.createDerivedShaderProgram(
|
|
527
|
+
shaderProgram,
|
|
528
|
+
keyword,
|
|
529
|
+
{
|
|
530
|
+
vertexShaderSource: shaderProgram.vertexShaderSource,
|
|
531
|
+
fragmentShaderSource: newFragmentShaderSource,
|
|
532
|
+
attributeLocations: shaderProgram._attributeLocations,
|
|
533
|
+
},
|
|
534
|
+
);
|
|
535
|
+
return newShader;
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* @private
|
|
540
|
+
*/
|
|
541
|
+
DerivedCommand.createPickMetadataDerivedCommand = function (
|
|
542
|
+
scene,
|
|
543
|
+
command,
|
|
544
|
+
context,
|
|
545
|
+
result,
|
|
546
|
+
) {
|
|
547
|
+
if (!defined(result)) {
|
|
548
|
+
result = {};
|
|
549
|
+
}
|
|
550
|
+
result.pickMetadataCommand = DrawCommand.shallowClone(
|
|
551
|
+
command,
|
|
552
|
+
result.pickMetadataCommand,
|
|
553
|
+
);
|
|
554
|
+
|
|
555
|
+
result.pickMetadataCommand.shaderProgram = getPickMetadataShaderProgram(
|
|
556
|
+
context,
|
|
557
|
+
command.shaderProgram,
|
|
558
|
+
command.pickedMetadataInfo,
|
|
559
|
+
);
|
|
560
|
+
result.pickMetadataCommand.renderState = getPickRenderState(
|
|
561
|
+
scene,
|
|
562
|
+
command.renderState,
|
|
563
|
+
);
|
|
564
|
+
result.shaderProgramId = command.shaderProgram.id;
|
|
565
|
+
|
|
566
|
+
return result;
|
|
567
|
+
};
|
|
568
|
+
|
|
378
569
|
function getHdrShaderProgram(context, shaderProgram) {
|
|
379
|
-
|
|
570
|
+
const cachedShader = context.shaderCache.getDerivedShaderProgram(
|
|
380
571
|
shaderProgram,
|
|
381
|
-
"HDR"
|
|
572
|
+
"HDR",
|
|
382
573
|
);
|
|
383
|
-
if (
|
|
384
|
-
|
|
385
|
-
const vs = shaderProgram.vertexShaderSource.clone();
|
|
386
|
-
const fs = shaderProgram.fragmentShaderSource.clone();
|
|
387
|
-
|
|
388
|
-
vs.defines = defined(vs.defines) ? vs.defines.slice(0) : [];
|
|
389
|
-
vs.defines.push("HDR");
|
|
390
|
-
fs.defines = defined(fs.defines) ? fs.defines.slice(0) : [];
|
|
391
|
-
fs.defines.push("HDR");
|
|
392
|
-
|
|
393
|
-
shader = context.shaderCache.createDerivedShaderProgram(
|
|
394
|
-
shaderProgram,
|
|
395
|
-
"HDR",
|
|
396
|
-
{
|
|
397
|
-
vertexShaderSource: vs,
|
|
398
|
-
fragmentShaderSource: fs,
|
|
399
|
-
attributeLocations: attributeLocations,
|
|
400
|
-
}
|
|
401
|
-
);
|
|
574
|
+
if (defined(cachedShader)) {
|
|
575
|
+
return cachedShader;
|
|
402
576
|
}
|
|
403
577
|
|
|
404
|
-
|
|
578
|
+
const attributeLocations = shaderProgram._attributeLocations;
|
|
579
|
+
const vs = shaderProgram.vertexShaderSource.clone();
|
|
580
|
+
const fs = shaderProgram.fragmentShaderSource.clone();
|
|
581
|
+
|
|
582
|
+
vs.defines = defined(vs.defines) ? vs.defines.slice(0) : [];
|
|
583
|
+
vs.defines.push("HDR");
|
|
584
|
+
fs.defines = defined(fs.defines) ? fs.defines.slice(0) : [];
|
|
585
|
+
fs.defines.push("HDR");
|
|
586
|
+
|
|
587
|
+
return context.shaderCache.createDerivedShaderProgram(shaderProgram, "HDR", {
|
|
588
|
+
vertexShaderSource: vs,
|
|
589
|
+
fragmentShaderSource: fs,
|
|
590
|
+
attributeLocations: attributeLocations,
|
|
591
|
+
});
|
|
405
592
|
}
|
|
406
593
|
|
|
407
594
|
DerivedCommand.createHdrCommand = function (command, context, result) {
|
|
@@ -409,17 +596,14 @@ DerivedCommand.createHdrCommand = function (command, context, result) {
|
|
|
409
596
|
result = {};
|
|
410
597
|
}
|
|
411
598
|
|
|
412
|
-
|
|
413
|
-
if (defined(result.command)) {
|
|
414
|
-
shader = result.command.shaderProgram;
|
|
415
|
-
}
|
|
599
|
+
const shader = result.command?.shaderProgram;
|
|
416
600
|
|
|
417
601
|
result.command = DrawCommand.shallowClone(command, result.command);
|
|
418
602
|
|
|
419
603
|
if (!defined(shader) || result.shaderProgramId !== command.shaderProgram.id) {
|
|
420
604
|
result.command.shaderProgram = getHdrShaderProgram(
|
|
421
605
|
context,
|
|
422
|
-
command.shaderProgram
|
|
606
|
+
command.shaderProgram,
|
|
423
607
|
);
|
|
424
608
|
result.shaderProgramId = command.shaderProgram.id;
|
|
425
609
|
} else {
|