@cesium/engine 14.0.0 → 16.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-WVNLSTOF.js → chunk-2TQ64T4I.js} +2 -2
- package/Build/Workers/{chunk-ED6GLQTK.js → chunk-34EWMUFG.js} +1 -1
- package/Build/Workers/{chunk-HEZHXDYB.js → chunk-4LHK6E47.js} +1 -1
- package/Build/Workers/{chunk-7EO56M5R.js → chunk-5TN3LG2T.js} +2 -2
- package/Build/Workers/{chunk-7ZB2RVIQ.js → chunk-6B7KGA5P.js} +16 -19
- package/Build/Workers/{chunk-3QLSKXKF.js → chunk-B75OO2DU.js} +7 -10
- package/Build/Workers/{chunk-Q4ZVWJXX.js → chunk-COOLDICB.js} +9 -11
- package/Build/Workers/{chunk-3PIZQT3I.js → chunk-CQNYYX3N.js} +4 -4
- package/Build/Workers/{chunk-JPDKYBLF.js → chunk-CUJH7PS5.js} +27 -29
- package/Build/Workers/{chunk-CI2HEJFC.js → chunk-EAWYQ44R.js} +39 -41
- package/Build/Workers/{chunk-SDIDRZDG.js → chunk-EJJDBH5W.js} +7 -7
- package/Build/Workers/{chunk-5KWRW7YL.js → chunk-EO44CO62.js} +2 -2
- package/Build/Workers/{chunk-N2XAJBC6.js → chunk-EOIUWEAK.js} +26 -28
- package/Build/Workers/{chunk-YJX7X577.js → chunk-ERKJ7IWJ.js} +21 -23
- package/Build/Workers/{chunk-J7IH4EYI.js → chunk-ESED7XBA.js} +13 -16
- package/Build/Workers/{chunk-F4CUH4MR.js → chunk-FW2OX42E.js} +18 -21
- package/Build/Workers/{chunk-FX4R4MTH.js → chunk-GH6I7PBY.js} +6 -9
- package/Build/Workers/{chunk-FYGLNDKG.js → chunk-GQVSADCI.js} +19 -22
- package/Build/Workers/{chunk-TY4DKOWR.js → chunk-ICU72UPR.js} +4 -4
- package/Build/Workers/{chunk-DT5NFR5C.js → chunk-ILVAXLMC.js} +7 -7
- package/Build/Workers/{chunk-ZGFIT57T.js → chunk-KKV6XBF5.js} +27 -23
- package/Build/Workers/{chunk-HKHQ3EDR.js → chunk-KV6TEHXY.js} +4 -4
- package/Build/Workers/{chunk-B4GSRXE3.js → chunk-LCSH4ZOB.js} +7 -10
- package/Build/Workers/{chunk-LNSWJ43X.js → chunk-M5J3S3HY.js} +17 -26
- package/Build/Workers/{chunk-LJBJM6VI.js → chunk-NB6D74SQ.js} +6 -6
- package/Build/Workers/{chunk-4CHMVQTQ.js → chunk-NREPBWCX.js} +14 -14
- package/Build/Workers/{chunk-PWF4EY5P.js → chunk-OD4Q7HE5.js} +4 -4
- package/Build/Workers/{chunk-77XPS7ZA.js → chunk-OMFZ4IN6.js} +15 -24
- package/Build/Workers/{chunk-HUFQVUMY.js → chunk-OMZGZVHI.js} +12 -17
- package/Build/Workers/{chunk-LOZ4NKY3.js → chunk-ORIMMEHO.js} +18 -20
- package/Build/Workers/{chunk-5S5OOA6U.js → chunk-OWLBD6BL.js} +1 -1
- package/Build/Workers/{chunk-VCNOFQYH.js → chunk-PB6SE3SZ.js} +9 -12
- package/Build/Workers/{chunk-3JBEPBPL.js → chunk-PT6U7UNY.js} +25 -30
- package/Build/Workers/{chunk-G3BVMPWG.js → chunk-RWAFHSX3.js} +2 -2
- package/Build/Workers/{chunk-KHWLAQVA.js → chunk-S2NKKWYE.js} +1 -1
- package/Build/Workers/{chunk-FFBJDW4A.js → chunk-S3IQBSIB.js} +6 -6
- package/Build/Workers/{chunk-3LYROPON.js → chunk-SCUQTTCN.js} +16 -19
- package/Build/Workers/{chunk-ZMNLEL6W.js → chunk-TBSA4MNF.js} +5 -8
- package/Build/Workers/{chunk-EWDGNOJE.js → chunk-TEUGW455.js} +9 -12
- package/Build/Workers/{chunk-XK4OP6VA.js → chunk-TL5YKZJF.js} +33 -41
- package/Build/Workers/{chunk-KM6MITPF.js → chunk-V4Y7C25O.js} +46 -42
- package/Build/Workers/{chunk-OMXHEJTK.js → chunk-VNDECE6N.js} +2 -2
- package/Build/Workers/{chunk-LS3KVHYY.js → chunk-VVTAI2TN.js} +6 -9
- package/Build/Workers/{chunk-WEHZP4SE.js → chunk-VXAAIRJ7.js} +129 -146
- package/Build/Workers/{chunk-MVM4JV5U.js → chunk-WGIOUM2S.js} +9 -12
- package/Build/Workers/{chunk-JHBPC4LK.js → chunk-XF6EBVKV.js} +7 -7
- package/Build/Workers/{chunk-D7ZBZPHV.js → chunk-XMKE4XB2.js} +5 -5
- package/Build/Workers/{chunk-7UHKH6M3.js → chunk-YA4XALD5.js} +34 -36
- package/Build/Workers/{chunk-KSYBJA4M.js → chunk-YFXXUW6U.js} +6 -12
- package/Build/Workers/{chunk-Z3QWTHI7.js → chunk-YL26OJCG.js} +21 -23
- package/Build/Workers/{chunk-K4AH3TDT.js → chunk-ZLJDDRGB.js} +14 -17
- package/Build/Workers/combineGeometry.js +21 -22
- package/Build/Workers/createBoxGeometry.js +15 -16
- package/Build/Workers/createBoxOutlineGeometry.js +20 -25
- package/Build/Workers/createCircleGeometry.js +26 -28
- package/Build/Workers/createCircleOutlineGeometry.js +19 -21
- package/Build/Workers/createCoplanarPolygonGeometry.js +38 -42
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +34 -36
- package/Build/Workers/createCorridorGeometry.js +42 -49
- package/Build/Workers/createCorridorOutlineGeometry.js +36 -43
- package/Build/Workers/createCylinderGeometry.js +17 -18
- package/Build/Workers/createCylinderOutlineGeometry.js +23 -25
- package/Build/Workers/createEllipseGeometry.js +23 -24
- package/Build/Workers/createEllipseOutlineGeometry.js +16 -17
- package/Build/Workers/createEllipsoidGeometry.js +16 -17
- package/Build/Workers/createEllipsoidOutlineGeometry.js +15 -16
- package/Build/Workers/createFrustumGeometry.js +15 -16
- package/Build/Workers/createFrustumOutlineGeometry.js +18 -21
- package/Build/Workers/createGeometry.js +22 -25
- package/Build/Workers/createGroundPolylineGeometry.js +34 -42
- package/Build/Workers/createPlaneGeometry.js +19 -21
- package/Build/Workers/createPlaneOutlineGeometry.js +12 -13
- package/Build/Workers/createPolygonGeometry.js +45 -50
- package/Build/Workers/createPolygonOutlineGeometry.js +39 -44
- package/Build/Workers/createPolylineGeometry.js +33 -40
- package/Build/Workers/createPolylineVolumeGeometry.js +37 -44
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +32 -39
- package/Build/Workers/createRectangleGeometry.js +41 -51
- package/Build/Workers/createRectangleOutlineGeometry.js +28 -33
- package/Build/Workers/createSimplePolylineGeometry.js +29 -34
- package/Build/Workers/createSphereGeometry.js +17 -20
- package/Build/Workers/createSphereOutlineGeometry.js +16 -19
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +12 -13
- package/Build/Workers/createVectorTileGeometries.js +21 -22
- package/Build/Workers/createVectorTilePoints.js +11 -12
- package/Build/Workers/createVectorTilePolygons.js +19 -20
- package/Build/Workers/createVectorTilePolylines.js +12 -13
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +20 -23
- package/Build/Workers/createVerticesFromHeightmap.js +31 -58
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +17 -18
- package/Build/Workers/createWallGeometry.js +30 -35
- package/Build/Workers/createWallOutlineGeometry.js +28 -33
- package/Build/Workers/decodeDraco.js +10 -11
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +10 -16
- package/Build/Workers/transcodeKTX2.js +50 -46
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +19 -20
- package/Source/Core/ApproximateTerrainHeights.js +2 -3
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +6 -6
- package/Source/Core/AxisAlignedBoundingBox.js +2 -3
- package/Source/Core/BingMapsGeocoderService.js +2 -2
- package/Source/Core/BoundingRectangle.js +7 -8
- package/Source/Core/BoundingSphere.js +10 -11
- package/Source/Core/BoxGeometry.js +7 -7
- package/Source/Core/BoxOutlineGeometry.js +7 -9
- package/Source/Core/Cartesian2.js +4 -5
- package/Source/Core/Cartesian3.js +7 -8
- package/Source/Core/Cartesian4.js +6 -7
- package/Source/Core/Cartographic.js +5 -6
- package/Source/Core/CatmullRomSpline.js +2 -2
- package/Source/Core/CesiumTerrainProvider.js +11 -14
- package/Source/Core/CircleGeometry.js +2 -2
- package/Source/Core/CircleOutlineGeometry.js +2 -2
- package/Source/Core/Clock.js +7 -10
- package/Source/Core/Color.js +28 -28
- package/Source/Core/ColorGeometryInstanceAttribute.js +4 -5
- package/Source/Core/ComponentDatatype.js +4 -6
- package/Source/Core/CoplanarPolygonGeometry.js +8 -10
- package/Source/Core/CoplanarPolygonOutlineGeometry.js +5 -5
- package/Source/Core/CorridorGeometry.js +15 -20
- package/Source/Core/CorridorOutlineGeometry.js +10 -15
- package/Source/Core/Credit.js +1 -2
- package/Source/Core/CullingVolume.js +1 -2
- package/Source/Core/CustomHeightmapTerrainProvider.js +3 -3
- package/Source/Core/CylinderGeometry.js +7 -7
- package/Source/Core/CylinderOutlineGeometry.js +7 -7
- package/Source/Core/DistanceDisplayCondition.js +4 -5
- package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +2 -3
- package/Source/Core/EarthOrientationParameters.js +4 -4
- package/Source/Core/EllipseGeometry.js +17 -23
- package/Source/Core/EllipseOutlineGeometry.js +12 -15
- package/Source/Core/Ellipsoid.js +7 -8
- package/Source/Core/EllipsoidGeodesic.js +1 -2
- package/Source/Core/EllipsoidGeometry.js +15 -15
- package/Source/Core/EllipsoidOutlineGeometry.js +15 -15
- package/Source/Core/EllipsoidRhumbLine.js +3 -4
- package/Source/Core/EllipsoidTangentPlane.js +1 -2
- package/Source/Core/EllipsoidTerrainProvider.js +4 -4
- package/Source/Core/EllipsoidalOccluder.js +2 -3
- package/Source/Core/FeatureDetection.js +1 -2
- package/Source/Core/Frozen.js +24 -0
- package/Source/Core/FrustumGeometry.js +7 -8
- package/Source/Core/FrustumOutlineGeometry.js +3 -4
- package/Source/Core/GeographicProjection.js +1 -2
- package/Source/Core/GeographicTilingScheme.js +6 -12
- package/Source/Core/Geometry.js +4 -7
- package/Source/Core/GeometryAttribute.js +3 -3
- package/Source/Core/GeometryAttributes.js +2 -2
- package/Source/Core/GeometryInstance.js +4 -6
- package/Source/Core/GeometryInstanceAttribute.js +3 -3
- package/Source/Core/GeometryPipeline.js +3 -4
- package/Source/Core/GoogleEarthEnterpriseMetadata.js +13 -24
- package/Source/Core/GoogleEarthEnterpriseTerrainData.js +9 -12
- package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +3 -3
- package/Source/Core/GoogleGeocoderService.js +2 -2
- package/Source/Core/GregorianDate.js +8 -9
- package/Source/Core/GroundPolylineGeometry.js +8 -8
- package/Source/Core/HeadingPitchRange.js +3 -4
- package/Source/Core/HeadingPitchRoll.js +3 -4
- package/Source/Core/Heap.js +3 -4
- package/Source/Core/HeightmapTerrainData.js +22 -38
- package/Source/Core/HeightmapTessellator.js +21 -37
- package/Source/Core/HermitePolynomialApproximation.js +1 -2
- package/Source/Core/HermiteSpline.js +5 -5
- package/Source/Core/ITwinPlatform.js +66 -12
- package/Source/Core/Iau2006XysData.js +8 -10
- package/Source/Core/IntersectionTests.js +1 -2
- package/Source/Core/Interval.js +2 -4
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonGeocoderService.js +6 -10
- package/Source/Core/IonResource.js +6 -6
- package/Source/Core/JulianDate.js +11 -12
- package/Source/Core/LinearSpline.js +2 -2
- package/Source/Core/ManagedArray.js +2 -3
- package/Source/Core/Math.js +36 -27
- package/Source/Core/Matrix2.js +7 -8
- package/Source/Core/Matrix3.js +12 -13
- package/Source/Core/Matrix4.js +28 -28
- package/Source/Core/MorphWeightSpline.js +2 -2
- package/Source/Core/NearFarScalar.js +6 -7
- package/Source/Core/Occluder.js +1 -2
- package/Source/Core/OffsetGeometryInstanceAttribute.js +3 -4
- package/Source/Core/OpenCageGeocoderService.js +1 -2
- package/Source/Core/OrientedBoundingBox.js +7 -8
- package/Source/Core/OrthographicFrustum.js +6 -6
- package/Source/Core/OrthographicOffCenterFrustum.js +4 -4
- package/Source/Core/PerspectiveFrustum.js +8 -8
- package/Source/Core/PerspectiveOffCenterFrustum.js +4 -4
- package/Source/Core/PlaneGeometry.js +5 -5
- package/Source/Core/PolygonGeometry.js +16 -19
- package/Source/Core/PolygonGeometryLibrary.js +27 -6
- package/Source/Core/PolygonOutlineGeometry.js +11 -14
- package/Source/Core/PolygonPipeline.js +5 -6
- package/Source/Core/PolylineGeometry.js +10 -15
- package/Source/Core/PolylinePipeline.js +7 -14
- package/Source/Core/PolylineVolumeGeometry.js +8 -13
- package/Source/Core/PolylineVolumeOutlineGeometry.js +7 -12
- package/Source/Core/QuantizedMeshTerrainData.js +12 -16
- package/Source/Core/Quaternion.js +7 -8
- package/Source/Core/QuaternionSpline.js +2 -2
- package/Source/Core/Ray.js +2 -3
- package/Source/Core/Rectangle.js +18 -19
- package/Source/Core/RectangleGeometry.js +17 -25
- package/Source/Core/RectangleGeometryLibrary.js +1 -1
- package/Source/Core/RectangleOutlineGeometry.js +10 -13
- package/Source/Core/Request.js +6 -6
- package/Source/Core/RequestScheduler.js +4 -6
- package/Source/Core/Resource.js +13 -16
- package/Source/Core/S2Cell.js +2 -3
- package/Source/Core/ScreenSpaceEventHandler.js +1 -2
- package/Source/Core/ShowGeometryInstanceAttribute.js +1 -2
- package/Source/Core/Simon1994PlanetaryPositions.js +9 -9
- package/Source/Core/SimplePolylineGeometry.js +8 -11
- package/Source/Core/SphereGeometry.js +1 -2
- package/Source/Core/SphereOutlineGeometry.js +1 -2
- package/Source/Core/Spherical.js +4 -5
- package/Source/Core/Spline.js +1 -2
- package/Source/Core/SteppedSpline.js +2 -2
- package/Source/Core/TaskProcessor.js +2 -9
- package/Source/Core/TerrainData.js +1 -1
- package/Source/Core/TerrainEncoding.js +4 -11
- package/Source/Core/TerrainMesh.js +1 -3
- package/Source/Core/TerrainProvider.js +1 -1
- package/Source/Core/TexturePacker.js +166 -0
- package/Source/Core/TileProviderError.js +1 -2
- package/Source/Core/TimeInterval.js +7 -7
- package/Source/Core/TimeIntervalCollection.js +7 -7
- package/Source/Core/Tipsify.js +5 -5
- package/Source/Core/Transforms.js +10 -15
- package/Source/Core/TranslationRotationScale.js +3 -6
- package/Source/Core/VRTheWorldTerrainProvider.js +5 -5
- package/Source/Core/VertexFormat.js +10 -10
- package/Source/Core/VerticalExaggeration.js +1 -1
- package/Source/Core/VideoSynchronizer.js +6 -6
- package/Source/Core/WallGeometry.js +8 -11
- package/Source/Core/WallOutlineGeometry.js +7 -10
- package/Source/Core/WebMercatorProjection.js +1 -2
- package/Source/Core/WebMercatorTilingScheme.js +5 -11
- package/Source/Core/arrayRemoveDuplicates.js +1 -2
- package/Source/Core/clone.js +1 -3
- package/Source/Core/combine.js +1 -2
- package/Source/Core/createWorldBathymetryAsync.js +3 -3
- package/Source/Core/createWorldTerrainAsync.js +4 -4
- package/Source/Core/defaultValue.js +20 -1
- package/Source/Core/destroyObject.js +1 -5
- package/Source/Core/getAbsoluteUri.js +1 -2
- package/Source/Core/getMagic.js +1 -2
- package/Source/Core/getStringFromTypedArray.js +2 -3
- package/Source/Core/loadImageFromTypedArray.js +2 -6
- package/Source/Core/oneTimeWarning.js +1 -2
- package/Source/Core/writeTextToCanvas.js +10 -13
- package/Source/DataSources/BillboardGraphics.js +27 -53
- package/Source/DataSources/BillboardVisualizer.js +3 -3
- package/Source/DataSources/BoxGraphics.js +13 -18
- package/Source/DataSources/CallbackPositionProperty.js +1 -2
- package/Source/DataSources/Cesium3DTilesetGraphics.js +6 -8
- package/Source/DataSources/CheckerboardMaterialProperty.js +2 -2
- package/Source/DataSources/CompositePositionProperty.js +1 -2
- package/Source/DataSources/ConstantPositionProperty.js +1 -2
- package/Source/DataSources/CorridorGraphics.js +23 -35
- package/Source/DataSources/CylinderGraphics.js +18 -25
- package/Source/DataSources/CzmlDataSource.js +34 -60
- package/Source/DataSources/DataSourceClock.js +12 -13
- package/Source/DataSources/DataSourceCollection.js +2 -3
- package/Source/DataSources/DataSourceDisplay.js +2 -5
- package/Source/DataSources/EllipseGraphics.js +26 -40
- package/Source/DataSources/EllipsoidGeometryUpdater.js +1 -2
- package/Source/DataSources/EllipsoidGraphics.js +21 -32
- package/Source/DataSources/Entity.js +7 -9
- package/Source/DataSources/EntityCluster.js +53 -28
- package/Source/DataSources/EntityView.js +1 -2
- package/Source/DataSources/GeoJsonDataSource.js +12 -12
- package/Source/DataSources/GeometryUpdater.js +12 -17
- package/Source/DataSources/GeometryVisualizer.js +2 -3
- package/Source/DataSources/GpxDataSource.js +4 -7
- package/Source/DataSources/GridMaterialProperty.js +2 -2
- package/Source/DataSources/GroundGeometryUpdater.js +1 -2
- package/Source/DataSources/ImageMaterialProperty.js +2 -2
- package/Source/DataSources/KmlDataSource.js +84 -158
- package/Source/DataSources/LabelGraphics.js +27 -56
- package/Source/DataSources/LabelVisualizer.js +1 -2
- package/Source/DataSources/ModelGraphics.js +29 -63
- package/Source/DataSources/ModelVisualizer.js +1 -2
- package/Source/DataSources/NodeTransformationProperty.js +2 -2
- package/Source/DataSources/PathGraphics.js +10 -12
- package/Source/DataSources/PlaneGraphics.js +13 -15
- package/Source/DataSources/PointGraphics.js +17 -32
- package/Source/DataSources/PolygonGraphics.js +28 -45
- package/Source/DataSources/PolylineDashMaterialProperty.js +2 -2
- package/Source/DataSources/PolylineGeometryUpdater.js +9 -14
- package/Source/DataSources/PolylineGlowMaterialProperty.js +2 -2
- package/Source/DataSources/PolylineGraphics.js +16 -23
- package/Source/DataSources/PolylineOutlineMaterialProperty.js +2 -2
- package/Source/DataSources/PolylineVisualizer.js +2 -3
- package/Source/DataSources/PolylineVolumeGraphics.js +15 -17
- package/Source/DataSources/PositionPropertyArray.js +1 -2
- package/Source/DataSources/Property.js +1 -2
- package/Source/DataSources/PropertyBag.js +1 -2
- package/Source/DataSources/RectangleGraphics.js +23 -35
- package/Source/DataSources/Rotation.js +4 -5
- package/Source/DataSources/SampledPositionProperty.js +2 -3
- package/Source/DataSources/SampledProperty.js +6 -11
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -2
- package/Source/DataSources/StripeMaterialProperty.js +2 -2
- package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +1 -2
- package/Source/DataSources/VelocityOrientationProperty.js +1 -2
- package/Source/DataSources/VelocityVectorProperty.js +1 -2
- package/Source/DataSources/WallGraphics.js +15 -23
- package/Source/DataSources/createPropertyDescriptor.js +2 -3
- package/Source/DataSources/exportKml.js +11 -14
- package/Source/Renderer/Buffer.js +5 -5
- package/Source/Renderer/ClearCommand.js +2 -2
- package/Source/Renderer/ComputeCommand.js +3 -3
- package/Source/Renderer/Context.js +22 -37
- package/Source/Renderer/CubeMap.js +6 -6
- package/Source/Renderer/CubeMapFace.js +11 -12
- package/Source/Renderer/DrawCommand.js +14 -25
- package/Source/Renderer/Framebuffer.js +3 -3
- package/Source/Renderer/FramebufferManager.js +25 -39
- package/Source/Renderer/MultisampleFramebuffer.js +2 -2
- package/Source/Renderer/RenderState.js +63 -92
- package/Source/Renderer/Renderbuffer.js +4 -4
- package/Source/Renderer/Sampler.js +2 -2
- package/Source/Renderer/ShaderBuilder.js +2 -3
- package/Source/Renderer/ShaderProgram.js +3 -3
- package/Source/Renderer/ShaderSource.js +3 -3
- package/Source/Renderer/Texture.js +16 -15
- package/Source/Renderer/TextureAtlas.js +802 -0
- package/Source/Renderer/UniformState.js +6 -11
- package/Source/Renderer/VertexArray.js +14 -23
- package/Source/Renderer/VertexArrayFacade.js +7 -11
- package/Source/Scene/Appearance.js +4 -4
- package/Source/Scene/ArcGisMapServerImageryProvider.js +23 -37
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/B3dmParser.js +2 -3
- package/Source/Scene/BatchTableHierarchy.js +6 -13
- package/Source/Scene/Billboard.js +105 -182
- package/Source/Scene/BillboardCollection.js +140 -224
- package/Source/Scene/BillboardLoadState.js +44 -0
- package/Source/Scene/BillboardTexture.js +348 -0
- package/Source/Scene/BingMapsImageryProvider.js +6 -6
- package/Source/Scene/BoxEmitter.js +1 -2
- package/Source/Scene/BufferLoader.js +2 -2
- package/Source/Scene/Camera.js +45 -64
- package/Source/Scene/CameraFlightPath.js +6 -6
- package/Source/Scene/Cesium3DContentGroup.js +2 -2
- package/Source/Scene/Cesium3DTile.js +3 -4
- package/Source/Scene/Cesium3DTileBatchTable.js +6 -49
- package/Source/Scene/Cesium3DTileFeatureTable.js +2 -3
- package/Source/Scene/Cesium3DTilePointFeature.js +10 -18
- package/Source/Scene/Cesium3DTileStyle.js +4 -7
- package/Source/Scene/Cesium3DTilesVoxelProvider.js +419 -137
- package/Source/Scene/Cesium3DTileset.js +77 -143
- package/Source/Scene/Cesium3DTilesetMetadata.js +3 -3
- package/Source/Scene/Cesium3DTilesetStatistics.js +0 -1
- package/Source/Scene/CircleEmitter.js +2 -3
- package/Source/Scene/ClassificationPrimitive.js +15 -26
- package/Source/Scene/ClippingPlaneCollection.js +7 -12
- package/Source/Scene/ClippingPolygon.js +1 -2
- package/Source/Scene/ClippingPolygonCollection.js +4 -4
- package/Source/Scene/CloudCollection.js +9 -11
- package/Source/Scene/Composite3DTileContent.js +1 -2
- package/Source/Scene/ConeEmitter.js +1 -2
- package/Source/Scene/ContentMetadata.js +2 -2
- package/Source/Scene/CreditDisplay.js +5 -9
- package/Source/Scene/CumulusCloud.js +9 -15
- package/Source/Scene/DebugAppearance.js +7 -7
- package/Source/Scene/DebugCameraPrimitive.js +5 -5
- package/Source/Scene/DebugModelMatrixPrimitive.js +6 -8
- package/Source/Scene/DepthPlane.js +1 -2
- package/Source/Scene/DirectionalLight.js +2 -3
- package/Source/Scene/DiscardMissingTileImagePolicy.js +2 -2
- package/Source/Scene/DynamicEnvironmentMapManager.js +15 -24
- package/Source/Scene/EllipsoidPrimitive.js +11 -19
- package/Source/Scene/EllipsoidSurfaceAppearance.js +11 -15
- package/Source/Scene/Expression.js +1 -0
- package/Source/Scene/FrameRateMonitor.js +12 -21
- package/Source/Scene/FrustumCommands.js +2 -3
- package/Source/Scene/Geometry3DTileContent.js +9 -16
- package/Source/Scene/Globe.js +3 -4
- package/Source/Scene/GlobeSurfaceTileProvider.js +9 -18
- package/Source/Scene/GlobeTranslucencyState.js +12 -25
- package/Source/Scene/GltfBufferViewLoader.js +4 -4
- package/Source/Scene/GltfDracoLoader.js +2 -2
- package/Source/Scene/GltfImageLoader.js +2 -2
- package/Source/Scene/GltfIndexBufferLoader.js +5 -5
- package/Source/Scene/GltfJsonLoader.js +2 -2
- package/Source/Scene/GltfLoader.js +22 -37
- package/Source/Scene/GltfLoaderUtil.js +11 -11
- package/Source/Scene/GltfPipeline/addDefaults.js +37 -64
- package/Source/Scene/GltfPipeline/addToArray.js +1 -3
- package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +2 -5
- package/Source/Scene/GltfPipeline/parseGlb.js +1 -5
- package/Source/Scene/GltfPipeline/removeUnusedElements.js +1 -2
- package/Source/Scene/GltfPipeline/updateVersion.js +28 -49
- package/Source/Scene/GltfStructuralMetadataLoader.js +5 -6
- package/Source/Scene/GltfTextureLoader.js +3 -3
- package/Source/Scene/GltfVertexBufferLoader.js +5 -5
- package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +2 -2
- package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +3 -4
- package/Source/Scene/GridImageryProvider.js +10 -13
- package/Source/Scene/GroundPolylinePrimitive.js +11 -22
- package/Source/Scene/GroundPrimitive.js +13 -24
- package/Source/Scene/GroupMetadata.js +2 -2
- package/Source/Scene/I3SDataProvider.js +10 -15
- package/Source/Scene/I3SNode.js +1 -6
- package/Source/Scene/I3SSublayer.js +1 -2
- package/Source/Scene/I3SSymbology.js +2 -3
- package/Source/Scene/I3dmParser.js +1 -2
- package/Source/Scene/ITwinData.js +11 -6
- package/Source/Scene/ImageBasedLighting.js +2 -2
- package/Source/Scene/ImageryLayer.js +42 -71
- package/Source/Scene/ImageryLayerCollection.js +2 -3
- package/Source/Scene/Implicit3DTileContent.js +3 -4
- package/Source/Scene/ImplicitAvailabilityBitstream.js +2 -5
- package/Source/Scene/ImplicitMetadataView.js +2 -2
- package/Source/Scene/ImplicitSubtree.js +10 -15
- package/Source/Scene/ImplicitSubtreeCache.js +3 -3
- package/Source/Scene/ImplicitSubtreeMetadata.js +2 -2
- package/Source/Scene/InstanceAttributeSemantic.js +1 -1
- package/Source/Scene/IonImageryProvider.js +3 -3
- package/Source/Scene/KeyframeNode.js +16 -2
- package/Source/Scene/Label.js +19 -36
- package/Source/Scene/LabelCollection.js +218 -196
- package/Source/Scene/MapboxImageryProvider.js +4 -4
- package/Source/Scene/MapboxStyleImageryProvider.js +5 -5
- package/Source/Scene/Material.js +14 -20
- package/Source/Scene/MaterialAppearance.js +12 -18
- package/Source/Scene/Megatexture.js +145 -82
- package/Source/Scene/MetadataClass.js +4 -4
- package/Source/Scene/MetadataClassProperty.js +11 -14
- package/Source/Scene/MetadataEnum.js +4 -7
- package/Source/Scene/MetadataEnumValue.js +2 -2
- package/Source/Scene/MetadataSchema.js +4 -4
- package/Source/Scene/MetadataSchemaLoader.js +2 -2
- package/Source/Scene/MetadataTable.js +2 -2
- package/Source/Scene/MetadataTableProperty.js +17 -31
- package/Source/Scene/Model/AlphaPipelineStage.js +1 -2
- package/Source/Scene/Model/B3dmLoader.js +15 -26
- package/Source/Scene/Model/BatchTexturePipelineStage.js +1 -2
- package/Source/Scene/Model/ClassificationModelDrawCommand.js +2 -2
- package/Source/Scene/Model/CustomShader.js +10 -14
- package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +3 -3
- package/Source/Scene/Model/FeatureIdPipelineStage.js +1 -5
- package/Source/Scene/Model/GeoJsonLoader.js +5 -8
- package/Source/Scene/Model/I3dmLoader.js +13 -21
- package/Source/Scene/Model/MaterialPipelineStage.js +1 -2
- package/Source/Scene/Model/Model.js +41 -63
- package/Source/Scene/Model/ModelAnimation.js +5 -6
- package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
- package/Source/Scene/Model/ModelAnimationCollection.js +4 -4
- package/Source/Scene/Model/ModelArticulation.js +2 -2
- package/Source/Scene/Model/ModelArticulationStage.js +2 -2
- package/Source/Scene/Model/ModelDrawCommand.js +3 -3
- package/Source/Scene/Model/ModelFeatureTable.js +3 -9
- package/Source/Scene/Model/ModelLightingOptions.js +3 -3
- package/Source/Scene/Model/ModelNode.js +1 -1
- package/Source/Scene/Model/ModelRuntimeNode.js +2 -2
- package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -2
- package/Source/Scene/Model/ModelSceneGraph.js +2 -2
- package/Source/Scene/Model/ModelSkin.js +2 -2
- package/Source/Scene/Model/ModelUtility.js +5 -1
- package/Source/Scene/Model/PickingPipelineStage.js +1 -2
- package/Source/Scene/Model/PntsLoader.js +6 -6
- package/Source/Scene/Model/PointCloudStylingPipelineStage.js +1 -5
- package/Source/Scene/Model/PrimitiveOutlineGenerator.js +2 -2
- package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +2 -3
- package/Source/Scene/Model/TextureUniform.js +5 -8
- package/Source/Scene/Model/VaryingType.js +2 -2
- package/Source/Scene/Model/pickModel.js +4 -5
- package/Source/Scene/Moon.js +5 -5
- package/Source/Scene/OpenStreetMapImageryProvider.js +7 -7
- package/Source/Scene/OrderedGroundPrimitiveCollection.js +1 -2
- package/Source/Scene/Particle.js +11 -17
- package/Source/Scene/ParticleBurst.js +5 -5
- package/Source/Scene/ParticleSystem.js +24 -54
- package/Source/Scene/PerInstanceColorAppearance.js +8 -8
- package/Source/Scene/PerformanceDisplay.js +3 -3
- package/Source/Scene/PickFramebuffer.js +4 -5
- package/Source/Scene/Picking.js +3 -4
- package/Source/Scene/PntsParser.js +1 -2
- package/Source/Scene/PointCloud.js +6 -12
- package/Source/Scene/PointCloudShading.js +9 -18
- package/Source/Scene/PointPrimitive.js +11 -21
- package/Source/Scene/PointPrimitiveCollection.js +6 -14
- package/Source/Scene/Polyline.js +5 -5
- package/Source/Scene/PolylineCollection.js +5 -10
- package/Source/Scene/PolylineColorAppearance.js +7 -11
- package/Source/Scene/PolylineMaterialAppearance.js +7 -11
- package/Source/Scene/PostProcessStage.js +2 -2
- package/Source/Scene/PostProcessStageComposite.js +3 -6
- package/Source/Scene/Primitive.js +21 -42
- package/Source/Scene/PrimitiveCollection.js +4 -4
- package/Source/Scene/PrimitivePipeline.js +1 -2
- package/Source/Scene/PropertyAttribute.js +2 -2
- package/Source/Scene/PropertyAttributeProperty.js +4 -4
- package/Source/Scene/PropertyTable.js +2 -2
- package/Source/Scene/PropertyTexture.js +2 -2
- package/Source/Scene/PropertyTextureProperty.js +4 -4
- package/Source/Scene/QuadtreePrimitive.js +84 -66
- package/Source/Scene/QuadtreeTile.js +170 -0
- package/Source/Scene/ResourceCache.js +11 -11
- package/Source/Scene/ResourceCacheKey.js +11 -11
- package/Source/Scene/Scene.js +66 -40
- package/Source/Scene/ScreenSpaceCameraController.js +10 -20
- package/Source/Scene/ShadowMap.js +15 -15
- package/Source/Scene/ShadowVolumeAppearance.js +1 -2
- package/Source/Scene/SingleTileImageryProvider.js +4 -4
- package/Source/Scene/SkyAtmosphere.js +1 -2
- package/Source/Scene/SkyBox.js +1 -2
- package/Source/Scene/SpatialNode.js +4 -11
- package/Source/Scene/SphereEmitter.js +2 -3
- package/Source/Scene/StructuralMetadata.js +2 -2
- package/Source/Scene/SunLight.js +4 -4
- package/Source/Scene/SupportedImageFormats.js +4 -4
- package/Source/Scene/TileBoundingRegion.js +4 -5
- package/Source/Scene/TileBoundingS2Cell.js +3 -4
- package/Source/Scene/TileCoordinatesImageryProvider.js +5 -5
- package/Source/Scene/TileMapServiceImageryProvider.js +18 -27
- package/Source/Scene/TileMetadata.js +2 -2
- package/Source/Scene/TilesetMetadata.js +2 -2
- package/Source/Scene/TimeDynamicImagery.js +2 -2
- package/Source/Scene/TimeDynamicPointCloud.js +8 -10
- package/Source/Scene/TweenCollection.js +13 -16
- package/Source/Scene/UrlTemplateImageryProvider.js +11 -15
- package/Source/Scene/Vector3DTileClampedPolylines.js +1 -2
- package/Source/Scene/Vector3DTileContent.js +16 -20
- package/Source/Scene/Vector3DTileGeometry.js +1 -2
- package/Source/Scene/Vector3DTilePoints.js +2 -5
- package/Source/Scene/Vector3DTilePolygons.js +2 -3
- package/Source/Scene/Vector3DTilePolylines.js +1 -2
- package/Source/Scene/Vector3DTilePrimitive.js +9 -13
- package/Source/Scene/VoxelBoxShape.js +14 -8
- package/Source/Scene/VoxelCell.js +6 -5
- package/Source/Scene/VoxelContent.js +171 -107
- package/Source/Scene/VoxelCylinderShape.js +69 -69
- package/Source/Scene/VoxelEllipsoidShape.js +17 -8
- package/Source/Scene/VoxelMetadataOrder.js +24 -0
- package/Source/Scene/VoxelPrimitive.js +134 -79
- package/Source/Scene/VoxelProvider.js +22 -29
- package/Source/Scene/VoxelRenderResources.js +26 -7
- package/Source/Scene/VoxelShape.js +10 -3
- package/Source/Scene/VoxelTraversal.js +260 -180
- package/Source/Scene/WebMapServiceImageryProvider.js +17 -24
- package/Source/Scene/WebMapTileServiceImageryProvider.js +7 -10
- package/Source/Scene/createElevationBandMaterial.js +4 -4
- package/Source/Scene/createGooglePhotorealistic3DTileset.js +8 -16
- package/Source/Scene/createOsmBuildingsAsync.js +3 -6
- package/Source/Scene/createTangentSpaceDebugPrimitive.js +4 -6
- package/Source/Scene/createWorldImageryAsync.js +3 -3
- package/Source/Scene/findContentMetadata.js +2 -5
- package/Source/Scene/findTileMetadata.js +2 -5
- package/Source/Scene/parseBatchTable.js +1 -5
- package/Source/Scene/parseFeatureMetadataLegacy.js +2 -2
- package/Source/Scene/parseStructuralMetadata.js +2 -2
- package/Source/Scene/processVoxelProperties.js +3 -0
- package/Source/Shaders/GlobeFS.glsl +10 -1
- package/Source/Shaders/GlobeFS.js +10 -1
- package/Source/Shaders/Voxels/Megatexture.glsl +4 -16
- package/Source/Shaders/Voxels/Megatexture.js +4 -16
- package/Source/Shaders/Voxels/Octree.glsl +44 -7
- package/Source/Shaders/Voxels/Octree.js +44 -7
- package/Source/Shaders/Voxels/VoxelFS.glsl +9 -15
- package/Source/Shaders/Voxels/VoxelFS.js +9 -15
- package/Source/Shaders/Voxels/convertUvToCylinder.glsl +15 -15
- package/Source/Shaders/Voxels/convertUvToCylinder.js +15 -15
- package/Source/Widget/CesiumWidget.js +17 -25
- package/Source/Workers/createGeometry.js +1 -2
- package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -2
- package/Source/Workers/decodeI3S.js +1 -5
- package/Source/Workers/transcodeKTX2.js +1 -2
- package/index.d.ts +231 -92
- package/index.js +315 -310
- package/package.json +3 -3
- package/Build/Workers/chunk-TVL3F7IU.js +0 -39
- package/Source/Scene/TextureAtlas.js +0 -558
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import BoundingRectangle from "../Core/BoundingRectangle.js";
|
|
2
2
|
import Cartesian2 from "../Core/Cartesian2.js";
|
|
3
3
|
import Color from "../Core/Color.js";
|
|
4
|
-
import
|
|
4
|
+
import Frozen from "../Core/Frozen.js";
|
|
5
5
|
import defined from "../Core/defined.js";
|
|
6
6
|
import destroyObject from "../Core/destroyObject.js";
|
|
7
7
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
@@ -9,34 +9,43 @@ import Matrix4 from "../Core/Matrix4.js";
|
|
|
9
9
|
import writeTextToCanvas from "../Core/writeTextToCanvas.js";
|
|
10
10
|
import bitmapSDF from "bitmap-sdf";
|
|
11
11
|
import BillboardCollection from "./BillboardCollection.js";
|
|
12
|
+
import BillboardTexture from "./BillboardTexture.js";
|
|
12
13
|
import BlendOption from "./BlendOption.js";
|
|
13
14
|
import { isHeightReferenceClamp } from "./HeightReference.js";
|
|
14
15
|
import HorizontalOrigin from "./HorizontalOrigin.js";
|
|
15
16
|
import Label from "./Label.js";
|
|
16
17
|
import LabelStyle from "./LabelStyle.js";
|
|
17
18
|
import SDFSettings from "./SDFSettings.js";
|
|
18
|
-
import TextureAtlas from "
|
|
19
|
+
import TextureAtlas from "../Renderer/TextureAtlas.js";
|
|
19
20
|
import VerticalOrigin from "./VerticalOrigin.js";
|
|
20
21
|
import GraphemeSplitter from "grapheme-splitter";
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
/**
|
|
24
|
+
* A glyph represents a single character in label.
|
|
25
|
+
* @private
|
|
26
|
+
*/
|
|
26
27
|
function Glyph() {
|
|
27
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Object containing dimensions of the character as rendered to a canvas.
|
|
30
|
+
* @see {writeTextToCanvas}
|
|
31
|
+
* @type {object}
|
|
32
|
+
* @private
|
|
33
|
+
*/
|
|
28
34
|
this.dimensions = undefined;
|
|
29
|
-
this.billboard = undefined;
|
|
30
|
-
}
|
|
31
35
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
this.
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Reference to loaded image data for a single character, drawn in a particular style, shared and referenced across all labels.
|
|
38
|
+
* @type {BillboardTexture}
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
41
|
+
this.billboardTexture = undefined;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* The individual billboard used to render the glyph. This may be <code>undefined</code> if the associated character is whitespace.
|
|
45
|
+
* @type {Billboard|undefined}
|
|
46
|
+
* @private
|
|
47
|
+
*/
|
|
48
|
+
this.billboard = undefined;
|
|
40
49
|
}
|
|
41
50
|
|
|
42
51
|
// Traditionally, leading is %20 of the font size.
|
|
@@ -45,18 +54,38 @@ const whitePixelCanvasId = "ID_WHITE_PIXEL";
|
|
|
45
54
|
const whitePixelSize = new Cartesian2(4, 4);
|
|
46
55
|
const whitePixelBoundingRegion = new BoundingRectangle(1, 1, 1, 1);
|
|
47
56
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Create the background image and start loading it into a texture
|
|
59
|
+
* @private
|
|
60
|
+
* @param {BillboardCollection} billboardCollection
|
|
61
|
+
* @param {LabelCollection} labelCollection
|
|
62
|
+
* @returns {Billboard}
|
|
63
|
+
*/
|
|
64
|
+
function getWhitePixelBillboard(billboardCollection, labelCollection) {
|
|
65
|
+
const billboardTexture = labelCollection._backgroundBillboardTexture;
|
|
66
|
+
if (!billboardTexture.hasImage) {
|
|
67
|
+
const canvas = document.createElement("canvas");
|
|
68
|
+
canvas.width = whitePixelSize.x;
|
|
69
|
+
canvas.height = whitePixelSize.y;
|
|
70
|
+
|
|
71
|
+
const context2D = canvas.getContext("2d");
|
|
72
|
+
context2D.fillStyle = "#fff";
|
|
73
|
+
context2D.fillRect(0, 0, canvas.width, canvas.height);
|
|
74
|
+
|
|
75
|
+
billboardTexture.loadImage(whitePixelCanvasId, canvas);
|
|
76
|
+
billboardTexture.addImageSubRegion(
|
|
77
|
+
whitePixelCanvasId,
|
|
78
|
+
whitePixelBoundingRegion,
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const billboard = billboardCollection.add({
|
|
83
|
+
collection: labelCollection,
|
|
84
|
+
});
|
|
52
85
|
|
|
53
|
-
|
|
54
|
-
context2D.fillStyle = "#fff";
|
|
55
|
-
context2D.fillRect(0, 0, canvas.width, canvas.height);
|
|
86
|
+
billboard.setImageTexture(billboardTexture);
|
|
56
87
|
|
|
57
|
-
|
|
58
|
-
// but there's no need to wait on the promise before operation can continue
|
|
59
|
-
return textureAtlas.addImage(whitePixelCanvasId, canvas);
|
|
88
|
+
return billboard;
|
|
60
89
|
}
|
|
61
90
|
|
|
62
91
|
// reusable object for calling writeTextToCanvas
|
|
@@ -85,14 +114,10 @@ function createGlyphCanvas(
|
|
|
85
114
|
return writeTextToCanvas(character, writeTextToCanvasParameters);
|
|
86
115
|
}
|
|
87
116
|
|
|
88
|
-
function
|
|
89
|
-
glyph.textureInfo = undefined;
|
|
90
|
-
glyph.dimensions = undefined;
|
|
91
|
-
|
|
117
|
+
function unbindGlyphBillboard(labelCollection, glyph) {
|
|
92
118
|
const billboard = glyph.billboard;
|
|
93
119
|
if (defined(billboard)) {
|
|
94
120
|
billboard.show = false;
|
|
95
|
-
billboard.image = undefined;
|
|
96
121
|
if (defined(billboard._removeCallbackFunc)) {
|
|
97
122
|
billboard._removeCallbackFunc();
|
|
98
123
|
billboard._removeCallbackFunc = undefined;
|
|
@@ -102,11 +127,8 @@ function unbindGlyph(labelCollection, glyph) {
|
|
|
102
127
|
}
|
|
103
128
|
}
|
|
104
129
|
|
|
105
|
-
function addGlyphToTextureAtlas(textureAtlas, id, canvas, glyphTextureInfo) {
|
|
106
|
-
glyphTextureInfo.index = textureAtlas.addImageSync(id, canvas);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
130
|
const splitter = new GraphemeSplitter();
|
|
131
|
+
const whitespaceRegex = /\s/;
|
|
110
132
|
|
|
111
133
|
function rebindAllGlyphs(labelCollection, label) {
|
|
112
134
|
const text = label._renderedText;
|
|
@@ -115,17 +137,13 @@ function rebindAllGlyphs(labelCollection, label) {
|
|
|
115
137
|
const glyphs = label._glyphs;
|
|
116
138
|
const glyphsLength = glyphs.length;
|
|
117
139
|
|
|
118
|
-
let glyph;
|
|
119
|
-
let glyphIndex;
|
|
120
|
-
let textIndex;
|
|
121
|
-
|
|
122
140
|
// Compute a font size scale relative to the sdf font generated size.
|
|
123
141
|
label._relativeSize = label._fontSize / SDFSettings.FONT_SIZE;
|
|
124
142
|
|
|
125
143
|
// if we have more glyphs than needed, unbind the extras.
|
|
126
144
|
if (textLength < glyphsLength) {
|
|
127
|
-
for (glyphIndex = textLength; glyphIndex < glyphsLength; ++glyphIndex) {
|
|
128
|
-
|
|
145
|
+
for (let glyphIndex = textLength; glyphIndex < glyphsLength; ++glyphIndex) {
|
|
146
|
+
unbindGlyphBillboard(labelCollection, glyphs[glyphIndex]);
|
|
129
147
|
}
|
|
130
148
|
}
|
|
131
149
|
|
|
@@ -144,11 +162,10 @@ function rebindAllGlyphs(labelCollection, label) {
|
|
|
144
162
|
}
|
|
145
163
|
} else {
|
|
146
164
|
if (!defined(backgroundBillboard)) {
|
|
147
|
-
backgroundBillboard =
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
});
|
|
165
|
+
backgroundBillboard = getWhitePixelBillboard(
|
|
166
|
+
backgroundBillboardCollection,
|
|
167
|
+
labelCollection,
|
|
168
|
+
);
|
|
152
169
|
label._backgroundBillboard = backgroundBillboard;
|
|
153
170
|
}
|
|
154
171
|
|
|
@@ -174,11 +191,13 @@ function rebindAllGlyphs(labelCollection, label) {
|
|
|
174
191
|
backgroundBillboard.clusterShow = label.clusterShow;
|
|
175
192
|
}
|
|
176
193
|
|
|
177
|
-
const
|
|
194
|
+
const glyphBillboardCollection = labelCollection._glyphBillboardCollection;
|
|
195
|
+
const glyphTextureCache = glyphBillboardCollection.billboardTextureCache;
|
|
196
|
+
const textDimensionsCache = labelCollection._textDimensionsCache;
|
|
178
197
|
|
|
179
198
|
// walk the text looking for new characters (creating new glyphs for each)
|
|
180
199
|
// or changed characters (rebinding existing glyphs)
|
|
181
|
-
for (textIndex = 0; textIndex < textLength; ++textIndex) {
|
|
200
|
+
for (let textIndex = 0; textIndex < textLength; ++textIndex) {
|
|
182
201
|
const character = graphemes[textIndex];
|
|
183
202
|
const verticalOrigin = label._verticalOrigin;
|
|
184
203
|
|
|
@@ -190,8 +209,12 @@ function rebindAllGlyphs(labelCollection, label) {
|
|
|
190
209
|
+verticalOrigin,
|
|
191
210
|
]);
|
|
192
211
|
|
|
193
|
-
let
|
|
194
|
-
|
|
212
|
+
let dimensions = textDimensionsCache[id];
|
|
213
|
+
let glyphBillboardTexture = glyphTextureCache.get(id);
|
|
214
|
+
if (!defined(glyphBillboardTexture) || !defined(dimensions)) {
|
|
215
|
+
glyphBillboardTexture = new BillboardTexture(glyphBillboardCollection);
|
|
216
|
+
glyphTextureCache.set(id, glyphBillboardTexture);
|
|
217
|
+
|
|
195
218
|
const glyphFont = `${label._fontStyle} ${label._fontWeight} ${SDFSettings.FONT_SIZE}px ${label._fontFamily}`;
|
|
196
219
|
|
|
197
220
|
const canvas = createGlyphCanvas(
|
|
@@ -203,14 +226,14 @@ function rebindAllGlyphs(labelCollection, label) {
|
|
|
203
226
|
LabelStyle.FILL,
|
|
204
227
|
);
|
|
205
228
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
-1,
|
|
209
|
-
canvas.dimensions,
|
|
210
|
-
);
|
|
211
|
-
glyphTextureCache[id] = glyphTextureInfo;
|
|
229
|
+
dimensions = canvas.dimensions;
|
|
230
|
+
textDimensionsCache[id] = dimensions;
|
|
212
231
|
|
|
213
|
-
if (
|
|
232
|
+
if (
|
|
233
|
+
canvas.width > 0 &&
|
|
234
|
+
canvas.height > 0 &&
|
|
235
|
+
!whitespaceRegex.test(character)
|
|
236
|
+
) {
|
|
214
237
|
const sdfValues = bitmapSDF(canvas, {
|
|
215
238
|
cutoff: SDFSettings.CUTOFF,
|
|
216
239
|
radius: SDFSettings.RADIUS,
|
|
@@ -233,84 +256,76 @@ function rebindAllGlyphs(labelCollection, label) {
|
|
|
233
256
|
}
|
|
234
257
|
}
|
|
235
258
|
ctx.putImageData(imgData, 0, 0);
|
|
236
|
-
|
|
237
|
-
addGlyphToTextureAtlas(
|
|
238
|
-
labelCollection._textureAtlas,
|
|
239
|
-
id,
|
|
240
|
-
canvas,
|
|
241
|
-
glyphTextureInfo,
|
|
242
|
-
);
|
|
243
|
-
}
|
|
259
|
+
glyphBillboardTexture.loadImage(id, canvas);
|
|
244
260
|
}
|
|
245
261
|
}
|
|
246
262
|
|
|
247
|
-
glyph = glyphs[textIndex];
|
|
248
|
-
|
|
249
|
-
if (defined(glyph)) {
|
|
250
|
-
// clean up leftover information from the previous glyph
|
|
251
|
-
if (glyphTextureInfo.index === -1) {
|
|
252
|
-
// no texture, and therefore no billboard, for this glyph.
|
|
253
|
-
// so, completely unbind glyph.
|
|
254
|
-
unbindGlyph(labelCollection, glyph);
|
|
255
|
-
} else if (defined(glyph.textureInfo)) {
|
|
256
|
-
// we have a texture and billboard. If we had one before, release
|
|
257
|
-
// our reference to that texture info, but reuse the billboard.
|
|
258
|
-
glyph.textureInfo = undefined;
|
|
259
|
-
}
|
|
260
|
-
} else {
|
|
261
|
-
// create a glyph object
|
|
263
|
+
let glyph = glyphs[textIndex];
|
|
264
|
+
if (!defined(glyph)) {
|
|
262
265
|
glyph = new Glyph();
|
|
266
|
+
glyph.dimensions = dimensions;
|
|
267
|
+
glyph.billboardTexture = glyphBillboardTexture;
|
|
263
268
|
glyphs[textIndex] = glyph;
|
|
264
269
|
}
|
|
265
270
|
|
|
266
|
-
glyph.
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
});
|
|
280
|
-
billboard._labelDimensions = new Cartesian2();
|
|
281
|
-
billboard._labelTranslate = new Cartesian2();
|
|
282
|
-
}
|
|
283
|
-
glyph.billboard = billboard;
|
|
284
|
-
}
|
|
271
|
+
if (glyph.billboardTexture.id !== id) {
|
|
272
|
+
// This glyph has been mapped to a new texture. If we had one before, release
|
|
273
|
+
// our reference to that texture and dimensions, but reuse the billboard.
|
|
274
|
+
glyph.billboardTexture = glyphBillboardTexture;
|
|
275
|
+
glyph.dimensions = dimensions;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
if (!glyphBillboardTexture.hasImage) {
|
|
279
|
+
// No texture, and therefore no billboard, for this glyph.
|
|
280
|
+
// so, completely unbind glyph to free up the billboard for others
|
|
281
|
+
unbindGlyphBillboard(labelCollection, glyph);
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
285
284
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
billboard.pixelOffsetScaleByDistance = label._pixelOffsetScaleByDistance;
|
|
299
|
-
billboard.scaleByDistance = label._scaleByDistance;
|
|
300
|
-
billboard.distanceDisplayCondition = label._distanceDisplayCondition;
|
|
301
|
-
billboard.disableDepthTestDistance = label._disableDepthTestDistance;
|
|
302
|
-
billboard._batchIndex = label._batchIndex;
|
|
303
|
-
billboard.outlineColor = label.outlineColor;
|
|
304
|
-
if (label.style === LabelStyle.FILL_AND_OUTLINE) {
|
|
305
|
-
billboard.color = label._fillColor;
|
|
306
|
-
billboard.outlineWidth = label.outlineWidth;
|
|
307
|
-
} else if (label.style === LabelStyle.FILL) {
|
|
308
|
-
billboard.color = label._fillColor;
|
|
309
|
-
billboard.outlineWidth = 0.0;
|
|
310
|
-
} else if (label.style === LabelStyle.OUTLINE) {
|
|
311
|
-
billboard.color = Color.TRANSPARENT;
|
|
312
|
-
billboard.outlineWidth = label.outlineWidth;
|
|
285
|
+
// If we have a texture, configure the existing billboard, or obtain one
|
|
286
|
+
let billboard = glyph.billboard;
|
|
287
|
+
const spareBillboards = labelCollection._spareBillboards;
|
|
288
|
+
if (!defined(billboard)) {
|
|
289
|
+
if (spareBillboards.length > 0) {
|
|
290
|
+
billboard = spareBillboards.pop();
|
|
291
|
+
} else {
|
|
292
|
+
billboard = glyphBillboardCollection.add({
|
|
293
|
+
collection: labelCollection,
|
|
294
|
+
});
|
|
295
|
+
billboard._labelDimensions = new Cartesian2();
|
|
296
|
+
billboard._labelTranslate = new Cartesian2();
|
|
313
297
|
}
|
|
298
|
+
glyph.billboard = billboard;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
billboard.setImageTexture(glyphBillboardTexture);
|
|
302
|
+
|
|
303
|
+
billboard.show = label._show;
|
|
304
|
+
billboard.position = label._position;
|
|
305
|
+
billboard.eyeOffset = label._eyeOffset;
|
|
306
|
+
billboard.pixelOffset = label._pixelOffset;
|
|
307
|
+
billboard.horizontalOrigin = HorizontalOrigin.LEFT;
|
|
308
|
+
billboard.verticalOrigin = label._verticalOrigin;
|
|
309
|
+
billboard.heightReference = label._heightReference;
|
|
310
|
+
billboard.scale = label.totalScale;
|
|
311
|
+
billboard.pickPrimitive = label;
|
|
312
|
+
billboard.id = label._id;
|
|
313
|
+
billboard.translucencyByDistance = label._translucencyByDistance;
|
|
314
|
+
billboard.pixelOffsetScaleByDistance = label._pixelOffsetScaleByDistance;
|
|
315
|
+
billboard.scaleByDistance = label._scaleByDistance;
|
|
316
|
+
billboard.distanceDisplayCondition = label._distanceDisplayCondition;
|
|
317
|
+
billboard.disableDepthTestDistance = label._disableDepthTestDistance;
|
|
318
|
+
billboard._batchIndex = label._batchIndex;
|
|
319
|
+
billboard.outlineColor = label.outlineColor;
|
|
320
|
+
if (label.style === LabelStyle.FILL_AND_OUTLINE) {
|
|
321
|
+
billboard.color = label._fillColor;
|
|
322
|
+
billboard.outlineWidth = label.outlineWidth;
|
|
323
|
+
} else if (label.style === LabelStyle.FILL) {
|
|
324
|
+
billboard.color = label._fillColor;
|
|
325
|
+
billboard.outlineWidth = 0.0;
|
|
326
|
+
} else if (label.style === LabelStyle.OUTLINE) {
|
|
327
|
+
billboard.color = Color.TRANSPARENT;
|
|
328
|
+
billboard.outlineWidth = label.outlineWidth;
|
|
314
329
|
}
|
|
315
330
|
}
|
|
316
331
|
|
|
@@ -335,15 +350,12 @@ const scratchBackgroundPadding = new Cartesian2();
|
|
|
335
350
|
function repositionAllGlyphs(label) {
|
|
336
351
|
const glyphs = label._glyphs;
|
|
337
352
|
const text = label._renderedText;
|
|
338
|
-
let glyph;
|
|
339
|
-
let dimensions;
|
|
340
353
|
let lastLineWidth = 0;
|
|
341
354
|
let maxLineWidth = 0;
|
|
342
355
|
const lineWidths = [];
|
|
343
356
|
let maxGlyphDescent = Number.NEGATIVE_INFINITY;
|
|
344
357
|
let maxGlyphY = 0;
|
|
345
358
|
let numberOfLines = 1;
|
|
346
|
-
let glyphIndex;
|
|
347
359
|
const glyphLength = glyphs.length;
|
|
348
360
|
|
|
349
361
|
const backgroundBillboard = label._backgroundBillboard;
|
|
@@ -356,18 +368,21 @@ function repositionAllGlyphs(label) {
|
|
|
356
368
|
backgroundPadding.x /= label._relativeSize;
|
|
357
369
|
backgroundPadding.y /= label._relativeSize;
|
|
358
370
|
|
|
359
|
-
for (glyphIndex = 0; glyphIndex < glyphLength; ++glyphIndex) {
|
|
371
|
+
for (let glyphIndex = 0; glyphIndex < glyphLength; ++glyphIndex) {
|
|
360
372
|
if (text.charAt(glyphIndex) === "\n") {
|
|
361
373
|
lineWidths.push(lastLineWidth);
|
|
362
374
|
++numberOfLines;
|
|
363
375
|
lastLineWidth = 0;
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
376
|
+
continue;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
const glyph = glyphs[glyphIndex];
|
|
380
|
+
const dimensions = glyph.dimensions;
|
|
381
|
+
if (defined(dimensions)) {
|
|
367
382
|
maxGlyphY = Math.max(maxGlyphY, dimensions.height - dimensions.descent);
|
|
368
383
|
maxGlyphDescent = Math.max(maxGlyphDescent, dimensions.descent);
|
|
369
384
|
|
|
370
|
-
//Computing the line width must also account for the kerning that occurs between letters.
|
|
385
|
+
// Computing the line width must also account for the kerning that occurs between letters.
|
|
371
386
|
lastLineWidth += dimensions.width - dimensions.minx;
|
|
372
387
|
if (glyphIndex < glyphLength - 1) {
|
|
373
388
|
lastLineWidth += glyphs[glyphIndex + 1].dimensions.minx;
|
|
@@ -408,7 +423,7 @@ function repositionAllGlyphs(label) {
|
|
|
408
423
|
let firstCharOfLine = true;
|
|
409
424
|
|
|
410
425
|
let lineOffsetY = 0;
|
|
411
|
-
for (glyphIndex = 0; glyphIndex < glyphLength; ++glyphIndex) {
|
|
426
|
+
for (let glyphIndex = 0; glyphIndex < glyphLength; ++glyphIndex) {
|
|
412
427
|
if (text.charAt(glyphIndex) === "\n") {
|
|
413
428
|
++lineIndex;
|
|
414
429
|
lineOffsetY += lineSpacing;
|
|
@@ -420,10 +435,12 @@ function repositionAllGlyphs(label) {
|
|
|
420
435
|
);
|
|
421
436
|
glyphPixelOffset.x = widthOffset * scale;
|
|
422
437
|
firstCharOfLine = true;
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
dimensions = glyph.dimensions;
|
|
438
|
+
continue;
|
|
439
|
+
}
|
|
426
440
|
|
|
441
|
+
const glyph = glyphs[glyphIndex];
|
|
442
|
+
const dimensions = glyph.dimensions;
|
|
443
|
+
if (defined(dimensions)) {
|
|
427
444
|
if (verticalOrigin === VerticalOrigin.TOP) {
|
|
428
445
|
glyphPixelOffset.y =
|
|
429
446
|
dimensions.height - maxGlyphY - backgroundPadding.y;
|
|
@@ -500,8 +517,8 @@ function repositionAllGlyphs(label) {
|
|
|
500
517
|
}
|
|
501
518
|
|
|
502
519
|
if (isHeightReferenceClamp(label.heightReference)) {
|
|
503
|
-
for (glyphIndex = 0; glyphIndex < glyphLength; ++glyphIndex) {
|
|
504
|
-
glyph = glyphs[glyphIndex];
|
|
520
|
+
for (let glyphIndex = 0; glyphIndex < glyphLength; ++glyphIndex) {
|
|
521
|
+
const glyph = glyphs[glyphIndex];
|
|
505
522
|
const billboard = glyph.billboard;
|
|
506
523
|
if (defined(billboard)) {
|
|
507
524
|
billboard._labelTranslate = Cartesian2.clone(
|
|
@@ -516,7 +533,7 @@ function repositionAllGlyphs(label) {
|
|
|
516
533
|
function destroyLabel(labelCollection, label) {
|
|
517
534
|
const glyphs = label._glyphs;
|
|
518
535
|
for (let i = 0, len = glyphs.length; i < len; ++i) {
|
|
519
|
-
|
|
536
|
+
unbindGlyphBillboard(labelCollection, glyphs[i]);
|
|
520
537
|
}
|
|
521
538
|
if (defined(label._backgroundBillboard)) {
|
|
522
539
|
labelCollection._backgroundBillboardCollection.remove(
|
|
@@ -582,28 +599,30 @@ function destroyLabel(labelCollection, label) {
|
|
|
582
599
|
* });
|
|
583
600
|
*/
|
|
584
601
|
function LabelCollection(options) {
|
|
585
|
-
options =
|
|
602
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
586
603
|
|
|
587
604
|
this._scene = options.scene;
|
|
588
605
|
this._batchTable = options.batchTable;
|
|
589
606
|
|
|
590
|
-
|
|
591
|
-
this._backgroundTextureAtlas = undefined;
|
|
592
|
-
|
|
593
|
-
this._backgroundBillboardCollection = new BillboardCollection({
|
|
607
|
+
const backgroundBillboardCollection = new BillboardCollection({
|
|
594
608
|
scene: this._scene,
|
|
609
|
+
textureAtlas: new TextureAtlas({
|
|
610
|
+
initialSize: whitePixelSize,
|
|
611
|
+
}),
|
|
595
612
|
});
|
|
596
|
-
this._backgroundBillboardCollection
|
|
613
|
+
this._backgroundBillboardCollection = backgroundBillboardCollection;
|
|
614
|
+
this._backgroundBillboardTexture = new BillboardTexture(
|
|
615
|
+
backgroundBillboardCollection,
|
|
616
|
+
);
|
|
597
617
|
|
|
598
|
-
this.
|
|
618
|
+
this._glyphBillboardCollection = new BillboardCollection({
|
|
599
619
|
scene: this._scene,
|
|
600
620
|
batchTable: this._batchTable,
|
|
601
621
|
});
|
|
602
|
-
this.
|
|
603
|
-
this._billboardCollection._sdf = true;
|
|
622
|
+
this._glyphBillboardCollection._sdf = true;
|
|
604
623
|
|
|
605
624
|
this._spareBillboards = [];
|
|
606
|
-
this.
|
|
625
|
+
this._textDimensionsCache = {};
|
|
607
626
|
this._labels = [];
|
|
608
627
|
this._labelsToUpdate = [];
|
|
609
628
|
this._totalGlyphCount = 0;
|
|
@@ -616,7 +635,7 @@ function LabelCollection(options) {
|
|
|
616
635
|
* @type {boolean}
|
|
617
636
|
* @default true
|
|
618
637
|
*/
|
|
619
|
-
this.show =
|
|
638
|
+
this.show = options.show ?? true;
|
|
620
639
|
|
|
621
640
|
/**
|
|
622
641
|
* The 4x4 transformation matrix that transforms each label in this collection from model to world coordinates.
|
|
@@ -647,9 +666,7 @@ function LabelCollection(options) {
|
|
|
647
666
|
* text : 'Up'
|
|
648
667
|
* });
|
|
649
668
|
*/
|
|
650
|
-
this.modelMatrix = Matrix4.clone(
|
|
651
|
-
defaultValue(options.modelMatrix, Matrix4.IDENTITY),
|
|
652
|
-
);
|
|
669
|
+
this.modelMatrix = Matrix4.clone(options.modelMatrix ?? Matrix4.IDENTITY);
|
|
653
670
|
|
|
654
671
|
/**
|
|
655
672
|
* This property is for debugging only; it is not for production use nor is it optimized.
|
|
@@ -661,10 +678,7 @@ function LabelCollection(options) {
|
|
|
661
678
|
*
|
|
662
679
|
* @default false
|
|
663
680
|
*/
|
|
664
|
-
this.debugShowBoundingVolume =
|
|
665
|
-
options.debugShowBoundingVolume,
|
|
666
|
-
false,
|
|
667
|
-
);
|
|
681
|
+
this.debugShowBoundingVolume = options.debugShowBoundingVolume ?? false;
|
|
668
682
|
|
|
669
683
|
/**
|
|
670
684
|
* The label blending option. The default is used for rendering both opaque and translucent labels.
|
|
@@ -674,10 +688,7 @@ function LabelCollection(options) {
|
|
|
674
688
|
* @type {BlendOption}
|
|
675
689
|
* @default BlendOption.OPAQUE_AND_TRANSLUCENT
|
|
676
690
|
*/
|
|
677
|
-
this.blendOption =
|
|
678
|
-
options.blendOption,
|
|
679
|
-
BlendOption.OPAQUE_AND_TRANSLUCENT,
|
|
680
|
-
);
|
|
691
|
+
this.blendOption = options.blendOption ?? BlendOption.OPAQUE_AND_TRANSLUCENT;
|
|
681
692
|
}
|
|
682
693
|
|
|
683
694
|
Object.defineProperties(LabelCollection.prototype, {
|
|
@@ -687,12 +698,47 @@ Object.defineProperties(LabelCollection.prototype, {
|
|
|
687
698
|
* in the collection.
|
|
688
699
|
* @memberof LabelCollection.prototype
|
|
689
700
|
* @type {number}
|
|
701
|
+
* @readonly
|
|
690
702
|
*/
|
|
691
703
|
length: {
|
|
692
704
|
get: function () {
|
|
693
705
|
return this._labels.length;
|
|
694
706
|
},
|
|
695
707
|
},
|
|
708
|
+
|
|
709
|
+
/**
|
|
710
|
+
* Returns the size in bytes of the WebGL texture resources.
|
|
711
|
+
* @private
|
|
712
|
+
* @memberof LabelCollection.prototype
|
|
713
|
+
* @type {number}
|
|
714
|
+
* @readonly
|
|
715
|
+
*/
|
|
716
|
+
sizeInBytes: {
|
|
717
|
+
get: function () {
|
|
718
|
+
return (
|
|
719
|
+
this._glyphBillboardCollection.sizeInBytes +
|
|
720
|
+
this._backgroundBillboardCollection.sizeInBytes
|
|
721
|
+
);
|
|
722
|
+
},
|
|
723
|
+
},
|
|
724
|
+
|
|
725
|
+
/**
|
|
726
|
+
* True when all labels currently in the collection are ready for rendering.
|
|
727
|
+
* @private
|
|
728
|
+
* @memberof LabelCollection.prototype
|
|
729
|
+
* @type {boolean}
|
|
730
|
+
* @readonly
|
|
731
|
+
*/
|
|
732
|
+
ready: {
|
|
733
|
+
get: function () {
|
|
734
|
+
const backgroundBillboard = this._backgroundBillboardCollection.get(0);
|
|
735
|
+
if (defined(backgroundBillboard) && !backgroundBillboard.ready) {
|
|
736
|
+
return false;
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
return this._glyphBillboardCollection.ready;
|
|
740
|
+
},
|
|
741
|
+
},
|
|
696
742
|
});
|
|
697
743
|
|
|
698
744
|
/**
|
|
@@ -709,7 +755,6 @@ Object.defineProperties(LabelCollection.prototype, {
|
|
|
709
755
|
*
|
|
710
756
|
* @exception {DeveloperError} This object was destroyed, i.e., destroy() was called.
|
|
711
757
|
*
|
|
712
|
-
*
|
|
713
758
|
* @example
|
|
714
759
|
* // Example 1: Add a label, specifying all the default values.
|
|
715
760
|
* const l = labels.add({
|
|
@@ -872,42 +917,22 @@ LabelCollection.prototype.get = function (index) {
|
|
|
872
917
|
|
|
873
918
|
/**
|
|
874
919
|
* @private
|
|
875
|
-
*
|
|
876
920
|
*/
|
|
877
921
|
LabelCollection.prototype.update = function (frameState) {
|
|
878
922
|
if (!this.show) {
|
|
879
923
|
return;
|
|
880
924
|
}
|
|
881
925
|
|
|
882
|
-
const
|
|
926
|
+
const glyphBillboardCollection = this._glyphBillboardCollection;
|
|
883
927
|
const backgroundBillboardCollection = this._backgroundBillboardCollection;
|
|
884
928
|
|
|
885
|
-
|
|
886
|
-
|
|
929
|
+
glyphBillboardCollection.modelMatrix = this.modelMatrix;
|
|
930
|
+
glyphBillboardCollection.debugShowBoundingVolume =
|
|
931
|
+
this.debugShowBoundingVolume;
|
|
887
932
|
backgroundBillboardCollection.modelMatrix = this.modelMatrix;
|
|
888
933
|
backgroundBillboardCollection.debugShowBoundingVolume =
|
|
889
934
|
this.debugShowBoundingVolume;
|
|
890
935
|
|
|
891
|
-
const context = frameState.context;
|
|
892
|
-
|
|
893
|
-
if (!defined(this._textureAtlas)) {
|
|
894
|
-
this._textureAtlas = new TextureAtlas({
|
|
895
|
-
context: context,
|
|
896
|
-
});
|
|
897
|
-
billboardCollection.textureAtlas = this._textureAtlas;
|
|
898
|
-
}
|
|
899
|
-
|
|
900
|
-
if (!defined(this._backgroundTextureAtlas)) {
|
|
901
|
-
this._backgroundTextureAtlas = new TextureAtlas({
|
|
902
|
-
context: context,
|
|
903
|
-
initialSize: whitePixelSize,
|
|
904
|
-
});
|
|
905
|
-
backgroundBillboardCollection.textureAtlas = this._backgroundTextureAtlas;
|
|
906
|
-
|
|
907
|
-
// Request a new render in request render mode after the next frame renders
|
|
908
|
-
addWhitePixelCanvas(this._backgroundTextureAtlas);
|
|
909
|
-
}
|
|
910
|
-
|
|
911
936
|
const len = this._labelsToUpdate.length;
|
|
912
937
|
for (let i = 0; i < len; ++i) {
|
|
913
938
|
const label = this._labelsToUpdate[i];
|
|
@@ -935,15 +960,15 @@ LabelCollection.prototype.update = function (frameState) {
|
|
|
935
960
|
backgroundBillboardCollection.length > 0
|
|
936
961
|
? BlendOption.TRANSLUCENT
|
|
937
962
|
: this.blendOption;
|
|
938
|
-
|
|
963
|
+
glyphBillboardCollection.blendOption = blendOption;
|
|
939
964
|
backgroundBillboardCollection.blendOption = blendOption;
|
|
940
965
|
|
|
941
|
-
|
|
966
|
+
glyphBillboardCollection._highlightColor = this._highlightColor;
|
|
942
967
|
backgroundBillboardCollection._highlightColor = this._highlightColor;
|
|
943
968
|
|
|
944
969
|
this._labelsToUpdate.length = 0;
|
|
945
970
|
backgroundBillboardCollection.update(frameState);
|
|
946
|
-
|
|
971
|
+
glyphBillboardCollection.update(frameState);
|
|
947
972
|
};
|
|
948
973
|
|
|
949
974
|
/**
|
|
@@ -978,12 +1003,9 @@ LabelCollection.prototype.isDestroyed = function () {
|
|
|
978
1003
|
*/
|
|
979
1004
|
LabelCollection.prototype.destroy = function () {
|
|
980
1005
|
this.removeAll();
|
|
981
|
-
this.
|
|
982
|
-
this._textureAtlas = this._textureAtlas && this._textureAtlas.destroy();
|
|
1006
|
+
this._glyphBillboardCollection = this._glyphBillboardCollection.destroy();
|
|
983
1007
|
this._backgroundBillboardCollection =
|
|
984
1008
|
this._backgroundBillboardCollection.destroy();
|
|
985
|
-
this._backgroundTextureAtlas =
|
|
986
|
-
this._backgroundTextureAtlas && this._backgroundTextureAtlas.destroy();
|
|
987
1009
|
|
|
988
1010
|
return destroyObject(this);
|
|
989
1011
|
};
|