@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,14 +1,14 @@
|
|
|
1
1
|
import AttributeCompression from "../Core/AttributeCompression.js";
|
|
2
|
+
import BoundingRectangle from "../Core/BoundingRectangle.js";
|
|
2
3
|
import BoundingSphere from "../Core/BoundingSphere.js";
|
|
3
4
|
import Cartesian2 from "../Core/Cartesian2.js";
|
|
4
5
|
import Cartesian3 from "../Core/Cartesian3.js";
|
|
5
6
|
import Check from "../Core/Check.js";
|
|
6
7
|
import Color from "../Core/Color.js";
|
|
7
8
|
import ComponentDatatype from "../Core/ComponentDatatype.js";
|
|
8
|
-
import
|
|
9
|
+
import Frozen from "../Core/Frozen.js";
|
|
9
10
|
import defined from "../Core/defined.js";
|
|
10
11
|
import destroyObject from "../Core/destroyObject.js";
|
|
11
|
-
import DeveloperError from "../Core/DeveloperError.js";
|
|
12
12
|
import EncodedCartesian3 from "../Core/EncodedCartesian3.js";
|
|
13
13
|
import IndexDatatype from "../Core/IndexDatatype.js";
|
|
14
14
|
import CesiumMath from "../Core/Math.js";
|
|
@@ -32,7 +32,7 @@ import HeightReference, { isHeightReferenceClamp } from "./HeightReference.js";
|
|
|
32
32
|
import HorizontalOrigin from "./HorizontalOrigin.js";
|
|
33
33
|
import SceneMode from "./SceneMode.js";
|
|
34
34
|
import SDFSettings from "./SDFSettings.js";
|
|
35
|
-
import TextureAtlas from "
|
|
35
|
+
import TextureAtlas from "../Renderer/TextureAtlas.js";
|
|
36
36
|
import VerticalOrigin from "./VerticalOrigin.js";
|
|
37
37
|
|
|
38
38
|
const SHOW_INDEX = Billboard.SHOW_INDEX;
|
|
@@ -143,14 +143,20 @@ const attributeLocationsInstanced = {
|
|
|
143
143
|
* });
|
|
144
144
|
*/
|
|
145
145
|
function BillboardCollection(options) {
|
|
146
|
-
options =
|
|
146
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
147
147
|
|
|
148
148
|
this._scene = options.scene;
|
|
149
149
|
this._batchTable = options.batchTable;
|
|
150
150
|
|
|
151
|
-
|
|
152
|
-
|
|
151
|
+
let textureAtlas = options.textureAtlas; // Hidden option for internal use
|
|
152
|
+
if (!defined(textureAtlas)) {
|
|
153
|
+
textureAtlas = new TextureAtlas();
|
|
154
|
+
}
|
|
155
|
+
this._textureAtlas = textureAtlas;
|
|
156
|
+
this._textureAtlasGUID = textureAtlas.guid;
|
|
153
157
|
this._destroyTextureAtlas = true;
|
|
158
|
+
this._billboardTextureCache = new Map();
|
|
159
|
+
|
|
154
160
|
this._sp = undefined;
|
|
155
161
|
this._spTranslucent = undefined;
|
|
156
162
|
this._rsOpaque = undefined;
|
|
@@ -205,13 +211,15 @@ function BillboardCollection(options) {
|
|
|
205
211
|
|
|
206
212
|
this._colorCommands = [];
|
|
207
213
|
|
|
214
|
+
this._allBillboardsReady = false;
|
|
215
|
+
|
|
208
216
|
/**
|
|
209
217
|
* Determines if billboards in this collection will be shown.
|
|
210
218
|
*
|
|
211
219
|
* @type {boolean}
|
|
212
220
|
* @default true
|
|
213
221
|
*/
|
|
214
|
-
this.show =
|
|
222
|
+
this.show = options.show ?? true;
|
|
215
223
|
|
|
216
224
|
/**
|
|
217
225
|
* The 4x4 transformation matrix that transforms each billboard in this collection from model to world coordinates.
|
|
@@ -245,9 +253,7 @@ function BillboardCollection(options) {
|
|
|
245
253
|
*
|
|
246
254
|
* @see Transforms.eastNorthUpToFixedFrame
|
|
247
255
|
*/
|
|
248
|
-
this.modelMatrix = Matrix4.clone(
|
|
249
|
-
defaultValue(options.modelMatrix, Matrix4.IDENTITY),
|
|
250
|
-
);
|
|
256
|
+
this.modelMatrix = Matrix4.clone(options.modelMatrix ?? Matrix4.IDENTITY);
|
|
251
257
|
this._modelMatrix = Matrix4.clone(Matrix4.IDENTITY);
|
|
252
258
|
|
|
253
259
|
/**
|
|
@@ -260,10 +266,7 @@ function BillboardCollection(options) {
|
|
|
260
266
|
*
|
|
261
267
|
* @default false
|
|
262
268
|
*/
|
|
263
|
-
this.debugShowBoundingVolume =
|
|
264
|
-
options.debugShowBoundingVolume,
|
|
265
|
-
false,
|
|
266
|
-
);
|
|
269
|
+
this.debugShowBoundingVolume = options.debugShowBoundingVolume ?? false;
|
|
267
270
|
|
|
268
271
|
/**
|
|
269
272
|
* This property is for debugging only; it is not for production use nor is it optimized.
|
|
@@ -275,10 +278,7 @@ function BillboardCollection(options) {
|
|
|
275
278
|
*
|
|
276
279
|
* @default false
|
|
277
280
|
*/
|
|
278
|
-
this.debugShowTextureAtlas =
|
|
279
|
-
options.debugShowTextureAtlas,
|
|
280
|
-
false,
|
|
281
|
-
);
|
|
281
|
+
this.debugShowTextureAtlas = options.debugShowTextureAtlas ?? false;
|
|
282
282
|
|
|
283
283
|
/**
|
|
284
284
|
* The billboard blending option. The default is used for rendering both opaque and translucent billboards.
|
|
@@ -288,10 +288,7 @@ function BillboardCollection(options) {
|
|
|
288
288
|
* @type {BlendOption}
|
|
289
289
|
* @default BlendOption.OPAQUE_AND_TRANSLUCENT
|
|
290
290
|
*/
|
|
291
|
-
this.blendOption =
|
|
292
|
-
options.blendOption,
|
|
293
|
-
BlendOption.OPAQUE_AND_TRANSLUCENT,
|
|
294
|
-
);
|
|
291
|
+
this.blendOption = options.blendOption ?? BlendOption.OPAQUE_AND_TRANSLUCENT;
|
|
295
292
|
this._blendOption = undefined;
|
|
296
293
|
|
|
297
294
|
this._mode = SceneMode.SCENE3D;
|
|
@@ -319,13 +316,12 @@ function BillboardCollection(options) {
|
|
|
319
316
|
|
|
320
317
|
this._highlightColor = Color.clone(Color.WHITE); // Only used by Vector3DTilePoints
|
|
321
318
|
|
|
322
|
-
const that = this;
|
|
323
319
|
this._uniforms = {
|
|
324
|
-
u_atlas:
|
|
325
|
-
return
|
|
320
|
+
u_atlas: () => {
|
|
321
|
+
return this.textureAtlas.texture;
|
|
326
322
|
},
|
|
327
|
-
u_highlightColor:
|
|
328
|
-
return
|
|
323
|
+
u_highlightColor: () => {
|
|
324
|
+
return this._highlightColor;
|
|
329
325
|
},
|
|
330
326
|
};
|
|
331
327
|
|
|
@@ -353,6 +349,7 @@ Object.defineProperties(BillboardCollection.prototype, {
|
|
|
353
349
|
* in the collection.
|
|
354
350
|
* @memberof BillboardCollection.prototype
|
|
355
351
|
* @type {number}
|
|
352
|
+
* @readonly
|
|
356
353
|
*/
|
|
357
354
|
length: {
|
|
358
355
|
get: function () {
|
|
@@ -372,13 +369,16 @@ Object.defineProperties(BillboardCollection.prototype, {
|
|
|
372
369
|
return this._textureAtlas;
|
|
373
370
|
},
|
|
374
371
|
set: function (value) {
|
|
372
|
+
//>>includeStart('debug', pragmas.debug);
|
|
373
|
+
Check.defined("textureAtlas", value);
|
|
374
|
+
//>>includeEnd('debug');
|
|
375
|
+
|
|
375
376
|
if (this._textureAtlas !== value) {
|
|
376
377
|
this._textureAtlas =
|
|
377
378
|
this._destroyTextureAtlas &&
|
|
378
379
|
this._textureAtlas &&
|
|
379
380
|
this._textureAtlas.destroy();
|
|
380
381
|
this._textureAtlas = value;
|
|
381
|
-
this._createVertexArray = true; // New per-billboard texture coordinates
|
|
382
382
|
}
|
|
383
383
|
},
|
|
384
384
|
},
|
|
@@ -398,12 +398,10 @@ Object.defineProperties(BillboardCollection.prototype, {
|
|
|
398
398
|
* // Set destroyTextureAtlas
|
|
399
399
|
* // Destroy a billboard collection but not its texture atlas.
|
|
400
400
|
*
|
|
401
|
-
* const atlas = new TextureAtlas(
|
|
402
|
-
* scene : scene,
|
|
403
|
-
* images : images
|
|
404
|
-
* });
|
|
401
|
+
* const atlas = new TextureAtlas();
|
|
405
402
|
* billboards.textureAtlas = atlas;
|
|
406
403
|
* billboards.destroyTextureAtlas = false;
|
|
404
|
+
*
|
|
407
405
|
* billboards = billboards.destroy();
|
|
408
406
|
* console.log(atlas.isDestroyed()); // False
|
|
409
407
|
*/
|
|
@@ -415,6 +413,45 @@ Object.defineProperties(BillboardCollection.prototype, {
|
|
|
415
413
|
this._destroyTextureAtlas = value;
|
|
416
414
|
},
|
|
417
415
|
},
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* Returns the size in bytes of the WebGL texture resources.
|
|
419
|
+
* @private
|
|
420
|
+
* @memberof BillboardCollection.prototype
|
|
421
|
+
* @type {number}
|
|
422
|
+
* @readonly
|
|
423
|
+
*/
|
|
424
|
+
sizeInBytes: {
|
|
425
|
+
get: function () {
|
|
426
|
+
return this._textureAtlas.sizeInBytes;
|
|
427
|
+
},
|
|
428
|
+
},
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* True when all billboards currently in the collection are ready for rendering.
|
|
432
|
+
* @private
|
|
433
|
+
* @memberof BillboardCollection.prototype
|
|
434
|
+
* @type {boolean}
|
|
435
|
+
* @readonly
|
|
436
|
+
*/
|
|
437
|
+
ready: {
|
|
438
|
+
get: function () {
|
|
439
|
+
return this._allBillboardsReady;
|
|
440
|
+
},
|
|
441
|
+
},
|
|
442
|
+
|
|
443
|
+
/**
|
|
444
|
+
* Cache of loaded billboard images.
|
|
445
|
+
* @private
|
|
446
|
+
* @memberof BillboardCollection.prototype
|
|
447
|
+
* @type {Map<string, BillboardTexture>}
|
|
448
|
+
* @readonly
|
|
449
|
+
*/
|
|
450
|
+
billboardTextureCache: {
|
|
451
|
+
get: function () {
|
|
452
|
+
return this._billboardTextureCache;
|
|
453
|
+
},
|
|
454
|
+
},
|
|
418
455
|
});
|
|
419
456
|
|
|
420
457
|
function destroyBillboards(billboards) {
|
|
@@ -836,7 +873,6 @@ const writePositionScratch = new EncodedCartesian3();
|
|
|
836
873
|
function writePositionScaleAndRotation(
|
|
837
874
|
billboardCollection,
|
|
838
875
|
frameState,
|
|
839
|
-
textureAtlasCoordinates,
|
|
840
876
|
vafWriters,
|
|
841
877
|
billboard,
|
|
842
878
|
) {
|
|
@@ -909,10 +945,11 @@ const LOWER_RIGHT = 2.0;
|
|
|
909
945
|
const UPPER_RIGHT = 3.0;
|
|
910
946
|
const UPPER_LEFT = 1.0;
|
|
911
947
|
|
|
948
|
+
const scratchBoundingRectangle = new BoundingRectangle();
|
|
949
|
+
|
|
912
950
|
function writeCompressedAttrib0(
|
|
913
951
|
billboardCollection,
|
|
914
952
|
frameState,
|
|
915
|
-
textureAtlasCoordinates,
|
|
916
953
|
vafWriters,
|
|
917
954
|
billboard,
|
|
918
955
|
) {
|
|
@@ -958,15 +995,10 @@ function writeCompressedAttrib0(
|
|
|
958
995
|
let bottomLeftY = 0;
|
|
959
996
|
let width = 0;
|
|
960
997
|
let height = 0;
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
//>>includeStart('debug', pragmas.debug);
|
|
966
|
-
if (!defined(imageRectangle)) {
|
|
967
|
-
throw new DeveloperError(`Invalid billboard image index: ${index}`);
|
|
968
|
-
}
|
|
969
|
-
//>>includeEnd('debug');
|
|
998
|
+
if (billboard.ready) {
|
|
999
|
+
const imageRectangle = billboard.computeTextureCoordinates(
|
|
1000
|
+
scratchBoundingRectangle,
|
|
1001
|
+
);
|
|
970
1002
|
|
|
971
1003
|
bottomLeftX = imageRectangle.x;
|
|
972
1004
|
bottomLeftY = imageRectangle.y;
|
|
@@ -1057,7 +1089,6 @@ function writeCompressedAttrib0(
|
|
|
1057
1089
|
function writeCompressedAttrib1(
|
|
1058
1090
|
billboardCollection,
|
|
1059
1091
|
frameState,
|
|
1060
|
-
textureAtlasCoordinates,
|
|
1061
1092
|
vafWriters,
|
|
1062
1093
|
billboard,
|
|
1063
1094
|
) {
|
|
@@ -1087,24 +1118,7 @@ function writeCompressedAttrib1(
|
|
|
1087
1118
|
}
|
|
1088
1119
|
}
|
|
1089
1120
|
|
|
1090
|
-
|
|
1091
|
-
const index = billboard._imageIndex;
|
|
1092
|
-
if (index !== -1) {
|
|
1093
|
-
const imageRectangle = textureAtlasCoordinates[index];
|
|
1094
|
-
|
|
1095
|
-
//>>includeStart('debug', pragmas.debug);
|
|
1096
|
-
if (!defined(imageRectangle)) {
|
|
1097
|
-
throw new DeveloperError(`Invalid billboard image index: ${index}`);
|
|
1098
|
-
}
|
|
1099
|
-
//>>includeEnd('debug');
|
|
1100
|
-
|
|
1101
|
-
width = imageRectangle.width;
|
|
1102
|
-
}
|
|
1103
|
-
|
|
1104
|
-
const textureWidth = billboardCollection._textureAtlas.texture.width;
|
|
1105
|
-
const imageWidth = Math.round(
|
|
1106
|
-
defaultValue(billboard.width, textureWidth * width),
|
|
1107
|
-
);
|
|
1121
|
+
const imageWidth = billboard.width ?? 0;
|
|
1108
1122
|
billboardCollection._maxSize = Math.max(
|
|
1109
1123
|
billboardCollection._maxSize,
|
|
1110
1124
|
imageWidth,
|
|
@@ -1143,7 +1157,6 @@ function writeCompressedAttrib1(
|
|
|
1143
1157
|
function writeCompressedAttrib2(
|
|
1144
1158
|
billboardCollection,
|
|
1145
1159
|
frameState,
|
|
1146
|
-
textureAtlasCoordinates,
|
|
1147
1160
|
vafWriters,
|
|
1148
1161
|
billboard,
|
|
1149
1162
|
) {
|
|
@@ -1163,32 +1176,12 @@ function writeCompressedAttrib2(
|
|
|
1163
1176
|
billboardCollection._allSizedInMeters =
|
|
1164
1177
|
billboardCollection._allSizedInMeters && sizeInMeters === 1.0;
|
|
1165
1178
|
|
|
1166
|
-
|
|
1167
|
-
const index = billboard._imageIndex;
|
|
1168
|
-
if (index !== -1) {
|
|
1169
|
-
const imageRectangle = textureAtlasCoordinates[index];
|
|
1170
|
-
|
|
1171
|
-
//>>includeStart('debug', pragmas.debug);
|
|
1172
|
-
if (!defined(imageRectangle)) {
|
|
1173
|
-
throw new DeveloperError(`Invalid billboard image index: ${index}`);
|
|
1174
|
-
}
|
|
1175
|
-
//>>includeEnd('debug');
|
|
1176
|
-
|
|
1177
|
-
height = imageRectangle.height;
|
|
1178
|
-
}
|
|
1179
|
-
|
|
1180
|
-
const dimensions = billboardCollection._textureAtlas.texture.dimensions;
|
|
1181
|
-
const imageHeight = Math.round(
|
|
1182
|
-
defaultValue(billboard.height, dimensions.y * height),
|
|
1183
|
-
);
|
|
1179
|
+
const imageHeight = billboard.height ?? 0;
|
|
1184
1180
|
billboardCollection._maxSize = Math.max(
|
|
1185
1181
|
billboardCollection._maxSize,
|
|
1186
1182
|
imageHeight,
|
|
1187
1183
|
);
|
|
1188
|
-
let labelHorizontalOrigin =
|
|
1189
|
-
billboard._labelHorizontalOrigin,
|
|
1190
|
-
-2,
|
|
1191
|
-
);
|
|
1184
|
+
let labelHorizontalOrigin = billboard._labelHorizontalOrigin ?? -2;
|
|
1192
1185
|
labelHorizontalOrigin += 2;
|
|
1193
1186
|
const compressed3 = imageHeight * LEFT_SHIFT2 + labelHorizontalOrigin;
|
|
1194
1187
|
|
|
@@ -1222,7 +1215,6 @@ function writeCompressedAttrib2(
|
|
|
1222
1215
|
function writeEyeOffset(
|
|
1223
1216
|
billboardCollection,
|
|
1224
1217
|
frameState,
|
|
1225
|
-
textureAtlasCoordinates,
|
|
1226
1218
|
vafWriters,
|
|
1227
1219
|
billboard,
|
|
1228
1220
|
) {
|
|
@@ -1243,24 +1235,18 @@ function writeEyeOffset(
|
|
|
1243
1235
|
);
|
|
1244
1236
|
|
|
1245
1237
|
if (billboardCollection._instanced) {
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
const index = billboard._imageIndex;
|
|
1249
|
-
if (index !== -1) {
|
|
1250
|
-
const imageRectangle = textureAtlasCoordinates[index];
|
|
1238
|
+
scratchCartesian2.x = 0;
|
|
1239
|
+
scratchCartesian2.y = 0;
|
|
1251
1240
|
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
//>>includeEnd('debug');
|
|
1241
|
+
if (billboard.ready) {
|
|
1242
|
+
const imageRectangle = billboard.computeTextureCoordinates(
|
|
1243
|
+
scratchBoundingRectangle,
|
|
1244
|
+
);
|
|
1257
1245
|
|
|
1258
|
-
|
|
1259
|
-
|
|
1246
|
+
scratchCartesian2.x = imageRectangle.width;
|
|
1247
|
+
scratchCartesian2.y = imageRectangle.height;
|
|
1260
1248
|
}
|
|
1261
1249
|
|
|
1262
|
-
scratchCartesian2.x = width;
|
|
1263
|
-
scratchCartesian2.y = height;
|
|
1264
1250
|
const compressedTexCoordsRange =
|
|
1265
1251
|
AttributeCompression.compressTextureCoordinates(scratchCartesian2);
|
|
1266
1252
|
|
|
@@ -1278,7 +1264,6 @@ function writeEyeOffset(
|
|
|
1278
1264
|
function writeScaleByDistance(
|
|
1279
1265
|
billboardCollection,
|
|
1280
1266
|
frameState,
|
|
1281
|
-
textureAtlasCoordinates,
|
|
1282
1267
|
vafWriters,
|
|
1283
1268
|
billboard,
|
|
1284
1269
|
) {
|
|
@@ -1318,7 +1303,6 @@ function writeScaleByDistance(
|
|
|
1318
1303
|
function writePixelOffsetScaleByDistance(
|
|
1319
1304
|
billboardCollection,
|
|
1320
1305
|
frameState,
|
|
1321
|
-
textureAtlasCoordinates,
|
|
1322
1306
|
vafWriters,
|
|
1323
1307
|
billboard,
|
|
1324
1308
|
) {
|
|
@@ -1358,7 +1342,6 @@ function writePixelOffsetScaleByDistance(
|
|
|
1358
1342
|
function writeCompressedAttribute3(
|
|
1359
1343
|
billboardCollection,
|
|
1360
1344
|
frameState,
|
|
1361
|
-
textureAtlasCoordinates,
|
|
1362
1345
|
vafWriters,
|
|
1363
1346
|
billboard,
|
|
1364
1347
|
) {
|
|
@@ -1398,33 +1381,8 @@ function writeCompressedAttribute3(
|
|
|
1398
1381
|
let imageWidth;
|
|
1399
1382
|
|
|
1400
1383
|
if (!defined(billboard._labelDimensions)) {
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
const index = billboard._imageIndex;
|
|
1404
|
-
if (index !== -1) {
|
|
1405
|
-
const imageRectangle = textureAtlasCoordinates[index];
|
|
1406
|
-
|
|
1407
|
-
//>>includeStart('debug', pragmas.debug);
|
|
1408
|
-
if (!defined(imageRectangle)) {
|
|
1409
|
-
throw new DeveloperError(`Invalid billboard image index: ${index}`);
|
|
1410
|
-
}
|
|
1411
|
-
//>>includeEnd('debug');
|
|
1412
|
-
|
|
1413
|
-
height = imageRectangle.height;
|
|
1414
|
-
width = imageRectangle.width;
|
|
1415
|
-
}
|
|
1416
|
-
|
|
1417
|
-
imageHeight = Math.round(
|
|
1418
|
-
defaultValue(
|
|
1419
|
-
billboard.height,
|
|
1420
|
-
billboardCollection._textureAtlas.texture.dimensions.y * height,
|
|
1421
|
-
),
|
|
1422
|
-
);
|
|
1423
|
-
|
|
1424
|
-
const textureWidth = billboardCollection._textureAtlas.texture.width;
|
|
1425
|
-
imageWidth = Math.round(
|
|
1426
|
-
defaultValue(billboard.width, textureWidth * width),
|
|
1427
|
-
);
|
|
1384
|
+
imageWidth = billboard.width ?? 0;
|
|
1385
|
+
imageHeight = billboard.height ?? 0;
|
|
1428
1386
|
} else {
|
|
1429
1387
|
imageWidth = billboard._labelDimensions.x;
|
|
1430
1388
|
imageHeight = billboard._labelDimensions.y;
|
|
@@ -1449,7 +1407,6 @@ function writeCompressedAttribute3(
|
|
|
1449
1407
|
function writeTextureCoordinateBoundsOrLabelTranslate(
|
|
1450
1408
|
billboardCollection,
|
|
1451
1409
|
frameState,
|
|
1452
|
-
textureAtlasCoordinates,
|
|
1453
1410
|
vafWriters,
|
|
1454
1411
|
billboard,
|
|
1455
1412
|
) {
|
|
@@ -1489,20 +1446,15 @@ function writeTextureCoordinateBoundsOrLabelTranslate(
|
|
|
1489
1446
|
return;
|
|
1490
1447
|
}
|
|
1491
1448
|
|
|
1492
|
-
//
|
|
1449
|
+
// Write texture coordinate bounds, used by depth testing in fragment shader
|
|
1493
1450
|
let minX = 0;
|
|
1494
1451
|
let minY = 0;
|
|
1495
1452
|
let width = 0;
|
|
1496
1453
|
let height = 0;
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
//>>includeStart('debug', pragmas.debug);
|
|
1502
|
-
if (!defined(imageRectangle)) {
|
|
1503
|
-
throw new DeveloperError(`Invalid billboard image index: ${index}`);
|
|
1504
|
-
}
|
|
1505
|
-
//>>includeEnd('debug');
|
|
1454
|
+
if (billboard.ready) {
|
|
1455
|
+
const imageRectangle = billboard.computeTextureCoordinates(
|
|
1456
|
+
scratchBoundingRectangle,
|
|
1457
|
+
);
|
|
1506
1458
|
|
|
1507
1459
|
minX = imageRectangle.x;
|
|
1508
1460
|
minY = imageRectangle.y;
|
|
@@ -1524,13 +1476,7 @@ function writeTextureCoordinateBoundsOrLabelTranslate(
|
|
|
1524
1476
|
}
|
|
1525
1477
|
}
|
|
1526
1478
|
|
|
1527
|
-
function writeBatchId(
|
|
1528
|
-
billboardCollection,
|
|
1529
|
-
frameState,
|
|
1530
|
-
textureAtlasCoordinates,
|
|
1531
|
-
vafWriters,
|
|
1532
|
-
billboard,
|
|
1533
|
-
) {
|
|
1479
|
+
function writeBatchId(billboardCollection, frameState, vafWriters, billboard) {
|
|
1534
1480
|
if (!defined(billboardCollection._batchTable)) {
|
|
1535
1481
|
return;
|
|
1536
1482
|
}
|
|
@@ -1551,13 +1497,7 @@ function writeBatchId(
|
|
|
1551
1497
|
}
|
|
1552
1498
|
}
|
|
1553
1499
|
|
|
1554
|
-
function writeSDF(
|
|
1555
|
-
billboardCollection,
|
|
1556
|
-
frameState,
|
|
1557
|
-
textureAtlasCoordinates,
|
|
1558
|
-
vafWriters,
|
|
1559
|
-
billboard,
|
|
1560
|
-
) {
|
|
1500
|
+
function writeSDF(billboardCollection, frameState, vafWriters, billboard) {
|
|
1561
1501
|
if (!billboardCollection._sdf) {
|
|
1562
1502
|
return;
|
|
1563
1503
|
}
|
|
@@ -1594,7 +1534,6 @@ function writeSDF(
|
|
|
1594
1534
|
function writeSplitDirection(
|
|
1595
1535
|
billboardCollection,
|
|
1596
1536
|
frameState,
|
|
1597
|
-
textureAtlasCoordinates,
|
|
1598
1537
|
vafWriters,
|
|
1599
1538
|
billboard,
|
|
1600
1539
|
) {
|
|
@@ -1622,94 +1561,56 @@ function writeSplitDirection(
|
|
|
1622
1561
|
function writeBillboard(
|
|
1623
1562
|
billboardCollection,
|
|
1624
1563
|
frameState,
|
|
1625
|
-
textureAtlasCoordinates,
|
|
1626
1564
|
vafWriters,
|
|
1627
1565
|
billboard,
|
|
1628
1566
|
) {
|
|
1629
1567
|
writePositionScaleAndRotation(
|
|
1630
1568
|
billboardCollection,
|
|
1631
1569
|
frameState,
|
|
1632
|
-
textureAtlasCoordinates,
|
|
1633
1570
|
vafWriters,
|
|
1634
1571
|
billboard,
|
|
1635
1572
|
);
|
|
1636
1573
|
writeCompressedAttrib0(
|
|
1637
1574
|
billboardCollection,
|
|
1638
1575
|
frameState,
|
|
1639
|
-
textureAtlasCoordinates,
|
|
1640
1576
|
vafWriters,
|
|
1641
1577
|
billboard,
|
|
1642
1578
|
);
|
|
1643
1579
|
writeCompressedAttrib1(
|
|
1644
1580
|
billboardCollection,
|
|
1645
1581
|
frameState,
|
|
1646
|
-
textureAtlasCoordinates,
|
|
1647
1582
|
vafWriters,
|
|
1648
1583
|
billboard,
|
|
1649
1584
|
);
|
|
1650
1585
|
writeCompressedAttrib2(
|
|
1651
1586
|
billboardCollection,
|
|
1652
1587
|
frameState,
|
|
1653
|
-
textureAtlasCoordinates,
|
|
1654
|
-
vafWriters,
|
|
1655
|
-
billboard,
|
|
1656
|
-
);
|
|
1657
|
-
writeEyeOffset(
|
|
1658
|
-
billboardCollection,
|
|
1659
|
-
frameState,
|
|
1660
|
-
textureAtlasCoordinates,
|
|
1661
|
-
vafWriters,
|
|
1662
|
-
billboard,
|
|
1663
|
-
);
|
|
1664
|
-
writeScaleByDistance(
|
|
1665
|
-
billboardCollection,
|
|
1666
|
-
frameState,
|
|
1667
|
-
textureAtlasCoordinates,
|
|
1668
1588
|
vafWriters,
|
|
1669
1589
|
billboard,
|
|
1670
1590
|
);
|
|
1591
|
+
writeEyeOffset(billboardCollection, frameState, vafWriters, billboard);
|
|
1592
|
+
writeScaleByDistance(billboardCollection, frameState, vafWriters, billboard);
|
|
1671
1593
|
writePixelOffsetScaleByDistance(
|
|
1672
1594
|
billboardCollection,
|
|
1673
1595
|
frameState,
|
|
1674
|
-
textureAtlasCoordinates,
|
|
1675
1596
|
vafWriters,
|
|
1676
1597
|
billboard,
|
|
1677
1598
|
);
|
|
1678
1599
|
writeCompressedAttribute3(
|
|
1679
1600
|
billboardCollection,
|
|
1680
1601
|
frameState,
|
|
1681
|
-
textureAtlasCoordinates,
|
|
1682
1602
|
vafWriters,
|
|
1683
1603
|
billboard,
|
|
1684
1604
|
);
|
|
1685
1605
|
writeTextureCoordinateBoundsOrLabelTranslate(
|
|
1686
1606
|
billboardCollection,
|
|
1687
1607
|
frameState,
|
|
1688
|
-
textureAtlasCoordinates,
|
|
1689
|
-
vafWriters,
|
|
1690
|
-
billboard,
|
|
1691
|
-
);
|
|
1692
|
-
writeBatchId(
|
|
1693
|
-
billboardCollection,
|
|
1694
|
-
frameState,
|
|
1695
|
-
textureAtlasCoordinates,
|
|
1696
|
-
vafWriters,
|
|
1697
|
-
billboard,
|
|
1698
|
-
);
|
|
1699
|
-
writeSDF(
|
|
1700
|
-
billboardCollection,
|
|
1701
|
-
frameState,
|
|
1702
|
-
textureAtlasCoordinates,
|
|
1703
|
-
vafWriters,
|
|
1704
|
-
billboard,
|
|
1705
|
-
);
|
|
1706
|
-
writeSplitDirection(
|
|
1707
|
-
billboardCollection,
|
|
1708
|
-
frameState,
|
|
1709
|
-
textureAtlasCoordinates,
|
|
1710
1608
|
vafWriters,
|
|
1711
1609
|
billboard,
|
|
1712
1610
|
);
|
|
1611
|
+
writeBatchId(billboardCollection, frameState, vafWriters, billboard);
|
|
1612
|
+
writeSDF(billboardCollection, frameState, vafWriters, billboard);
|
|
1613
|
+
writeSplitDirection(billboardCollection, frameState, vafWriters, billboard);
|
|
1713
1614
|
}
|
|
1714
1615
|
|
|
1715
1616
|
function recomputeActualPositions(
|
|
@@ -1838,7 +1739,7 @@ function createDebugCommand(billboardCollection, context) {
|
|
|
1838
1739
|
const drawCommand = context.createViewportQuadCommand(fs, {
|
|
1839
1740
|
uniformMap: {
|
|
1840
1741
|
billboard_texture: function () {
|
|
1841
|
-
return billboardCollection.
|
|
1742
|
+
return billboardCollection.textureAtlas.texture;
|
|
1842
1743
|
},
|
|
1843
1744
|
},
|
|
1844
1745
|
});
|
|
@@ -1865,9 +1766,6 @@ BillboardCollection.prototype.update = function (frameState) {
|
|
|
1865
1766
|
return;
|
|
1866
1767
|
}
|
|
1867
1768
|
|
|
1868
|
-
let billboards = this._billboards;
|
|
1869
|
-
let billboardsLength = billboards.length;
|
|
1870
|
-
|
|
1871
1769
|
const context = frameState.context;
|
|
1872
1770
|
this._instanced = context.instancedArrays;
|
|
1873
1771
|
attributeLocations = this._instanced
|
|
@@ -1877,21 +1775,40 @@ BillboardCollection.prototype.update = function (frameState) {
|
|
|
1877
1775
|
? getIndexBufferInstanced
|
|
1878
1776
|
: getIndexBufferBatched;
|
|
1879
1777
|
|
|
1880
|
-
let
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1778
|
+
let billboards = this._billboards;
|
|
1779
|
+
let billboardsLength = billboards.length;
|
|
1780
|
+
let allBillboardsReady = true;
|
|
1781
|
+
for (let i = 0; i < billboardsLength; ++i) {
|
|
1782
|
+
const billboard = billboards[i];
|
|
1783
|
+
if (defined(billboard.loadError)) {
|
|
1784
|
+
console.error(
|
|
1785
|
+
`Error loading image for billboard: ${billboard.loadError}`,
|
|
1786
|
+
);
|
|
1787
|
+
billboard.image = undefined;
|
|
1788
|
+
}
|
|
1789
|
+
|
|
1790
|
+
if (billboard.textureDirty) {
|
|
1791
|
+
this._updateBillboard(billboard, IMAGE_INDEX_INDEX);
|
|
1792
|
+
}
|
|
1885
1793
|
|
|
1886
|
-
|
|
1887
|
-
|
|
1794
|
+
if (billboard.show) {
|
|
1795
|
+
allBillboardsReady = allBillboardsReady && billboard.ready;
|
|
1888
1796
|
}
|
|
1889
1797
|
}
|
|
1890
1798
|
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1799
|
+
// Queue any texture resource updates for after the frame is rendered
|
|
1800
|
+
const textureAtlas = this._textureAtlas;
|
|
1801
|
+
frameState.afterRender.push(() => {
|
|
1802
|
+
if (this.isDestroyed()) {
|
|
1803
|
+
return;
|
|
1804
|
+
}
|
|
1805
|
+
|
|
1806
|
+
return textureAtlas.update(frameState.context);
|
|
1807
|
+
});
|
|
1808
|
+
|
|
1809
|
+
if (!defined(textureAtlas.texture)) {
|
|
1810
|
+
// Can't write billboard vertices until the texture atlas
|
|
1811
|
+
// has been updated once
|
|
1895
1812
|
return;
|
|
1896
1813
|
}
|
|
1897
1814
|
|
|
@@ -1939,13 +1856,8 @@ BillboardCollection.prototype.update = function (frameState) {
|
|
|
1939
1856
|
for (let i = 0; i < billboardsLength; ++i) {
|
|
1940
1857
|
const billboard = this._billboards[i];
|
|
1941
1858
|
billboard._dirty = false; // In case it needed an update.
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
frameState,
|
|
1945
|
-
textureAtlasCoordinates,
|
|
1946
|
-
vafWriters,
|
|
1947
|
-
billboard,
|
|
1948
|
-
);
|
|
1859
|
+
billboard.textureDirty = false;
|
|
1860
|
+
writeBillboard(this, frameState, vafWriters, billboard);
|
|
1949
1861
|
}
|
|
1950
1862
|
|
|
1951
1863
|
// Different billboard collections share the same index buffer.
|
|
@@ -1992,7 +1904,7 @@ BillboardCollection.prototype.update = function (frameState) {
|
|
|
1992
1904
|
writers.push(writeCompressedAttrib2);
|
|
1993
1905
|
}
|
|
1994
1906
|
|
|
1995
|
-
if (properties[EYE_OFFSET_INDEX]) {
|
|
1907
|
+
if (properties[IMAGE_INDEX_INDEX] || properties[EYE_OFFSET_INDEX]) {
|
|
1996
1908
|
writers.push(writeEyeOffset);
|
|
1997
1909
|
}
|
|
1998
1910
|
|
|
@@ -2036,9 +1948,10 @@ BillboardCollection.prototype.update = function (frameState) {
|
|
|
2036
1948
|
for (let m = 0; m < billboardsToUpdateLength; ++m) {
|
|
2037
1949
|
const b = billboardsToUpdate[m];
|
|
2038
1950
|
b._dirty = false;
|
|
1951
|
+
b.textureDirty = false;
|
|
2039
1952
|
|
|
2040
1953
|
for (let n = 0; n < numWriters; ++n) {
|
|
2041
|
-
writers[n](this, frameState,
|
|
1954
|
+
writers[n](this, frameState, vafWriters, b);
|
|
2042
1955
|
}
|
|
2043
1956
|
}
|
|
2044
1957
|
this._vaf.commit(getIndexBuffer(context));
|
|
@@ -2046,9 +1959,10 @@ BillboardCollection.prototype.update = function (frameState) {
|
|
|
2046
1959
|
for (let h = 0; h < billboardsToUpdateLength; ++h) {
|
|
2047
1960
|
const bb = billboardsToUpdate[h];
|
|
2048
1961
|
bb._dirty = false;
|
|
1962
|
+
bb.textureDirty = false;
|
|
2049
1963
|
|
|
2050
1964
|
for (let o = 0; o < numWriters; ++o) {
|
|
2051
|
-
writers[o](this, frameState,
|
|
1965
|
+
writers[o](this, frameState, vafWriters, bb);
|
|
2052
1966
|
}
|
|
2053
1967
|
|
|
2054
1968
|
if (this._instanced) {
|
|
@@ -2412,6 +2326,8 @@ BillboardCollection.prototype.update = function (frameState) {
|
|
|
2412
2326
|
commandList.push(this.debugCommand);
|
|
2413
2327
|
}
|
|
2414
2328
|
}
|
|
2329
|
+
|
|
2330
|
+
this._allBillboardsReady = allBillboardsReady;
|
|
2415
2331
|
};
|
|
2416
2332
|
|
|
2417
2333
|
/**
|