@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,5 +1,5 @@
|
|
|
1
1
|
import Credit from "../Core/Credit.js";
|
|
2
|
-
import
|
|
2
|
+
import Frozen from "../Core/Frozen.js";
|
|
3
3
|
import defined from "../Core/defined.js";
|
|
4
4
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
5
5
|
import Resource from "../Core/Resource.js";
|
|
@@ -47,7 +47,7 @@ const defaultCredit = new Credit(
|
|
|
47
47
|
* @see {@link https://docs.mapbox.com/api/accounts/tokens/}
|
|
48
48
|
*/
|
|
49
49
|
function MapboxImageryProvider(options) {
|
|
50
|
-
options =
|
|
50
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
51
51
|
const mapId = options.mapId;
|
|
52
52
|
//>>includeStart('debug', pragmas.debug);
|
|
53
53
|
if (!defined(mapId)) {
|
|
@@ -74,13 +74,13 @@ function MapboxImageryProvider(options) {
|
|
|
74
74
|
this._defaultMagnificationFilter = undefined;
|
|
75
75
|
|
|
76
76
|
const resource = Resource.createIfNeeded(
|
|
77
|
-
|
|
77
|
+
options.url ?? "https://{s}.tiles.mapbox.com/v4/",
|
|
78
78
|
);
|
|
79
79
|
|
|
80
80
|
this._mapId = mapId;
|
|
81
81
|
this._accessToken = accessToken;
|
|
82
82
|
|
|
83
|
-
let format =
|
|
83
|
+
let format = options.format ?? "png";
|
|
84
84
|
if (!/\./.test(format)) {
|
|
85
85
|
format = `.${format}`;
|
|
86
86
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Credit from "../Core/Credit.js";
|
|
2
|
-
import
|
|
2
|
+
import Frozen from "../Core/Frozen.js";
|
|
3
3
|
import defined from "../Core/defined.js";
|
|
4
4
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
5
5
|
import Resource from "../Core/Resource.js";
|
|
@@ -49,7 +49,7 @@ const defaultCredit = new Credit(
|
|
|
49
49
|
* @see {@link https://docs.mapbox.com/api/#access-tokens-and-token-scopes}
|
|
50
50
|
*/
|
|
51
51
|
function MapboxStyleImageryProvider(options) {
|
|
52
|
-
options =
|
|
52
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
53
53
|
const styleId = options.styleId;
|
|
54
54
|
//>>includeStart('debug', pragmas.debug);
|
|
55
55
|
if (!defined(styleId)) {
|
|
@@ -76,16 +76,16 @@ function MapboxStyleImageryProvider(options) {
|
|
|
76
76
|
this._defaultMagnificationFilter = undefined;
|
|
77
77
|
|
|
78
78
|
const resource = Resource.createIfNeeded(
|
|
79
|
-
|
|
79
|
+
options.url ?? "https://api.mapbox.com/styles/v1/",
|
|
80
80
|
);
|
|
81
81
|
|
|
82
82
|
this._styleId = styleId;
|
|
83
83
|
this._accessToken = accessToken;
|
|
84
84
|
|
|
85
|
-
const tilesize =
|
|
85
|
+
const tilesize = options.tilesize ?? 512;
|
|
86
86
|
this._tilesize = tilesize;
|
|
87
87
|
|
|
88
|
-
const username =
|
|
88
|
+
const username = options.username ?? "mapbox";
|
|
89
89
|
this._username = username;
|
|
90
90
|
|
|
91
91
|
const scaleFactor = defined(options.scaleFactor) ? "@2x" : "";
|
package/Source/Scene/Material.js
CHANGED
|
@@ -3,7 +3,7 @@ import clone from "../Core/clone.js";
|
|
|
3
3
|
import Color from "../Core/Color.js";
|
|
4
4
|
import combine from "../Core/combine.js";
|
|
5
5
|
import createGuid from "../Core/createGuid.js";
|
|
6
|
-
import
|
|
6
|
+
import Frozen from "../Core/Frozen.js";
|
|
7
7
|
import defined from "../Core/defined.js";
|
|
8
8
|
import destroyObject from "../Core/destroyObject.js";
|
|
9
9
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
@@ -308,14 +308,10 @@ function Material(options) {
|
|
|
308
308
|
*/
|
|
309
309
|
this.translucent = undefined;
|
|
310
310
|
|
|
311
|
-
this._minificationFilter =
|
|
312
|
-
options.minificationFilter
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
this._magnificationFilter = defaultValue(
|
|
316
|
-
options.magnificationFilter,
|
|
317
|
-
TextureMagnificationFilter.LINEAR,
|
|
318
|
-
);
|
|
311
|
+
this._minificationFilter =
|
|
312
|
+
options.minificationFilter ?? TextureMinificationFilter.LINEAR;
|
|
313
|
+
this._magnificationFilter =
|
|
314
|
+
options.magnificationFilter ?? TextureMagnificationFilter.LINEAR;
|
|
319
315
|
|
|
320
316
|
this._strict = undefined;
|
|
321
317
|
this._template = undefined;
|
|
@@ -586,17 +582,15 @@ Material.prototype.destroy = function () {
|
|
|
586
582
|
};
|
|
587
583
|
|
|
588
584
|
function initializeMaterial(options, result) {
|
|
589
|
-
options =
|
|
590
|
-
result._strict =
|
|
591
|
-
result._count =
|
|
592
|
-
result._template = clone(
|
|
593
|
-
defaultValue(options.fabric, defaultValue.EMPTY_OBJECT),
|
|
594
|
-
);
|
|
585
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
586
|
+
result._strict = options.strict ?? false;
|
|
587
|
+
result._count = options.count ?? 0;
|
|
588
|
+
result._template = clone(options.fabric ?? Frozen.EMPTY_OBJECT);
|
|
595
589
|
result._template.uniforms = clone(
|
|
596
|
-
|
|
590
|
+
result._template.uniforms ?? Frozen.EMPTY_OBJECT,
|
|
597
591
|
);
|
|
598
592
|
result._template.materials = clone(
|
|
599
|
-
|
|
593
|
+
result._template.materials ?? Frozen.EMPTY_OBJECT,
|
|
600
594
|
);
|
|
601
595
|
|
|
602
596
|
result.type = defined(result._template.type)
|
|
@@ -633,8 +627,8 @@ function initializeMaterial(options, result) {
|
|
|
633
627
|
|
|
634
628
|
const defaultTranslucent =
|
|
635
629
|
result._translucentFunctions.length === 0 ? true : undefined;
|
|
636
|
-
translucent =
|
|
637
|
-
translucent =
|
|
630
|
+
translucent = translucent ?? defaultTranslucent;
|
|
631
|
+
translucent = options.translucent ?? translucent;
|
|
638
632
|
|
|
639
633
|
if (defined(translucent)) {
|
|
640
634
|
if (typeof translucent === "function") {
|
|
@@ -1185,7 +1179,7 @@ function createSubMaterials(material) {
|
|
|
1185
1179
|
// If excludePeriod is true, do not accept tokens that are preceded by periods.
|
|
1186
1180
|
// http://stackoverflow.com/questions/641407/javascript-negative-lookbehind-equivalent
|
|
1187
1181
|
function replaceToken(material, token, newToken, excludePeriod) {
|
|
1188
|
-
excludePeriod =
|
|
1182
|
+
excludePeriod = excludePeriod ?? true;
|
|
1189
1183
|
let count = 0;
|
|
1190
1184
|
const suffixChars = "([\\w])?";
|
|
1191
1185
|
const prefixChars = `([\\w${excludePeriod ? "." : ""}])?`;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Frozen from "../Core/Frozen.js";
|
|
2
2
|
import defined from "../Core/defined.js";
|
|
3
3
|
import VertexFormat from "../Core/VertexFormat.js";
|
|
4
4
|
import AllMaterialAppearanceFS from "../Shaders/Appearances/AllMaterialAppearanceFS.js";
|
|
@@ -47,14 +47,12 @@ import Material from "./Material.js";
|
|
|
47
47
|
* });
|
|
48
48
|
*/
|
|
49
49
|
function MaterialAppearance(options) {
|
|
50
|
-
options =
|
|
50
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
51
51
|
|
|
52
|
-
const translucent =
|
|
53
|
-
const closed =
|
|
54
|
-
const materialSupport =
|
|
55
|
-
options.materialSupport
|
|
56
|
-
MaterialAppearance.MaterialSupport.TEXTURED,
|
|
57
|
-
);
|
|
52
|
+
const translucent = options.translucent ?? true;
|
|
53
|
+
const closed = options.closed ?? false;
|
|
54
|
+
const materialSupport =
|
|
55
|
+
options.materialSupport ?? MaterialAppearance.MaterialSupport.TEXTURED;
|
|
58
56
|
|
|
59
57
|
/**
|
|
60
58
|
* The material used to determine the fragment color. Unlike other {@link MaterialAppearance}
|
|
@@ -79,14 +77,10 @@ function MaterialAppearance(options) {
|
|
|
79
77
|
*/
|
|
80
78
|
this.translucent = translucent;
|
|
81
79
|
|
|
82
|
-
this._vertexShaderSource =
|
|
83
|
-
options.vertexShaderSource
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
this._fragmentShaderSource = defaultValue(
|
|
87
|
-
options.fragmentShaderSource,
|
|
88
|
-
materialSupport.fragmentShaderSource,
|
|
89
|
-
);
|
|
80
|
+
this._vertexShaderSource =
|
|
81
|
+
options.vertexShaderSource ?? materialSupport.vertexShaderSource;
|
|
82
|
+
this._fragmentShaderSource =
|
|
83
|
+
options.fragmentShaderSource ?? materialSupport.fragmentShaderSource;
|
|
90
84
|
this._renderState = Appearance.getDefaultRenderState(
|
|
91
85
|
translucent,
|
|
92
86
|
closed,
|
|
@@ -98,8 +92,8 @@ function MaterialAppearance(options) {
|
|
|
98
92
|
|
|
99
93
|
this._materialSupport = materialSupport;
|
|
100
94
|
this._vertexFormat = materialSupport.vertexFormat;
|
|
101
|
-
this._flat =
|
|
102
|
-
this._faceForward =
|
|
95
|
+
this._flat = options.flat ?? false;
|
|
96
|
+
this._faceForward = options.faceForward ?? !closed;
|
|
103
97
|
}
|
|
104
98
|
|
|
105
99
|
Object.defineProperties(MaterialAppearance.prototype, {
|
|
@@ -2,7 +2,6 @@ import Cartesian2 from "../Core/Cartesian2.js";
|
|
|
2
2
|
import Cartesian3 from "../Core/Cartesian3.js";
|
|
3
3
|
import ComponentDatatype from "../Core/ComponentDatatype.js";
|
|
4
4
|
import ContextLimits from "../Renderer/ContextLimits.js";
|
|
5
|
-
import defaultValue from "../Core/defaultValue.js";
|
|
6
5
|
import defined from "../Core/defined.js";
|
|
7
6
|
import destroyObject from "../Core/destroyObject.js";
|
|
8
7
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
@@ -21,11 +20,11 @@ import TextureWrap from "../Renderer/TextureWrap.js";
|
|
|
21
20
|
* @alias Megatexture
|
|
22
21
|
* @constructor
|
|
23
22
|
*
|
|
24
|
-
* @param {Context} context
|
|
25
|
-
* @param {Cartesian3} dimensions
|
|
26
|
-
* @param {number} channelCount
|
|
27
|
-
* @param {MetadataComponentType} componentType
|
|
28
|
-
* @param {number} [
|
|
23
|
+
* @param {Context} context The context in which to create GPU resources.
|
|
24
|
+
* @param {Cartesian3} dimensions The number of voxels in each dimension of the tile.
|
|
25
|
+
* @param {number} channelCount The number of channels in the metadata.
|
|
26
|
+
* @param {MetadataComponentType} componentType The component type of the metadata.
|
|
27
|
+
* @param {number} [availableTextureMemoryBytes=134217728] An upper limit on the texture memory size in bytes.
|
|
29
28
|
*
|
|
30
29
|
* @private
|
|
31
30
|
*/
|
|
@@ -34,59 +33,35 @@ function Megatexture(
|
|
|
34
33
|
dimensions,
|
|
35
34
|
channelCount,
|
|
36
35
|
componentType,
|
|
37
|
-
|
|
36
|
+
availableTextureMemoryBytes,
|
|
38
37
|
) {
|
|
38
|
+
const maximumTextureMemoryByteLength = 512 * 1024 * 1024;
|
|
39
|
+
availableTextureMemoryBytes = Math.min(
|
|
40
|
+
availableTextureMemoryBytes ?? 128 * 1024 * 1024,
|
|
41
|
+
maximumTextureMemoryByteLength,
|
|
42
|
+
);
|
|
43
|
+
|
|
39
44
|
// TODO there are a lot of texture packing rules, see https://github.com/CesiumGS/cesium/issues/9572
|
|
40
45
|
// Unsigned short textures not allowed in webgl 1, so treat as float
|
|
41
46
|
if (componentType === MetadataComponentType.UNSIGNED_SHORT) {
|
|
42
47
|
componentType = MetadataComponentType.FLOAT32;
|
|
43
48
|
}
|
|
44
49
|
|
|
45
|
-
const supportsFloatingPointTexture = context.floatingPointTexture;
|
|
46
50
|
if (
|
|
47
51
|
componentType === MetadataComponentType.FLOAT32 &&
|
|
48
|
-
!
|
|
52
|
+
!context.floatingPointTexture
|
|
49
53
|
) {
|
|
50
54
|
throw new RuntimeError("Floating point texture not supported");
|
|
51
55
|
}
|
|
52
56
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (
|
|
56
|
-
componentType === MetadataComponentType.FLOAT32 ||
|
|
57
|
-
componentType === MetadataComponentType.FLOAT64
|
|
58
|
-
) {
|
|
59
|
-
pixelType = PixelDatatype.FLOAT;
|
|
60
|
-
} else if (componentType === MetadataComponentType.UINT8) {
|
|
61
|
-
pixelType = PixelDatatype.UNSIGNED_BYTE;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
let pixelFormat;
|
|
65
|
-
if (channelCount === 1) {
|
|
66
|
-
pixelFormat = context.webgl2 ? PixelFormat.RED : PixelFormat.LUMINANCE;
|
|
67
|
-
} else if (channelCount === 2) {
|
|
68
|
-
pixelFormat = context.webgl2 ? PixelFormat.RG : PixelFormat.LUMINANCE_ALPHA;
|
|
69
|
-
} else if (channelCount === 3) {
|
|
70
|
-
pixelFormat = PixelFormat.RGB;
|
|
71
|
-
} else if (channelCount === 4) {
|
|
72
|
-
pixelFormat = PixelFormat.RGBA;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const maximumTextureMemoryByteLength = 512 * 1024 * 1024;
|
|
76
|
-
const defaultTextureMemoryByteLength = 128 * 1024 * 1024;
|
|
77
|
-
textureMemoryByteLength = Math.min(
|
|
78
|
-
defaultValue(textureMemoryByteLength, defaultTextureMemoryByteLength),
|
|
79
|
-
maximumTextureMemoryByteLength,
|
|
80
|
-
);
|
|
81
|
-
const maximumTextureDimensionContext = ContextLimits.maximumTextureSize;
|
|
57
|
+
const pixelDataType = getPixelDataType(componentType);
|
|
58
|
+
const pixelFormat = getPixelFormat(channelCount, context.webgl2);
|
|
82
59
|
const componentTypeByteLength =
|
|
83
60
|
MetadataComponentType.getSizeInBytes(componentType);
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
maximumTextureDimensionContext,
|
|
89
|
-
CesiumMath.previousPowerOfTwo(Math.floor(Math.sqrt(texelCount))),
|
|
61
|
+
const textureDimension = getTextureDimension(
|
|
62
|
+
availableTextureMemoryBytes,
|
|
63
|
+
channelCount,
|
|
64
|
+
componentTypeByteLength,
|
|
90
65
|
);
|
|
91
66
|
|
|
92
67
|
const sliceCountPerRegionX = Math.ceil(Math.sqrt(dimensions.x));
|
|
@@ -116,6 +91,13 @@ function Megatexture(
|
|
|
116
91
|
*/
|
|
117
92
|
this.componentType = componentType;
|
|
118
93
|
|
|
94
|
+
/**
|
|
95
|
+
* @type {number}
|
|
96
|
+
* @readonly
|
|
97
|
+
*/
|
|
98
|
+
this.textureMemoryByteLength =
|
|
99
|
+
componentTypeByteLength * channelCount * textureDimension ** 2;
|
|
100
|
+
|
|
119
101
|
/**
|
|
120
102
|
* @type {Cartesian3}
|
|
121
103
|
* @readonly
|
|
@@ -190,7 +172,7 @@ function Megatexture(
|
|
|
190
172
|
this.texture = new Texture({
|
|
191
173
|
context: context,
|
|
192
174
|
pixelFormat: pixelFormat,
|
|
193
|
-
pixelDatatype:
|
|
175
|
+
pixelDatatype: pixelDataType,
|
|
194
176
|
flipY: false,
|
|
195
177
|
width: textureDimension,
|
|
196
178
|
height: textureDimension,
|
|
@@ -249,6 +231,73 @@ function Megatexture(
|
|
|
249
231
|
this.occupiedCount = 0;
|
|
250
232
|
}
|
|
251
233
|
|
|
234
|
+
/**
|
|
235
|
+
* Get the pixel data type to use in a megatexture.
|
|
236
|
+
* TODO support more
|
|
237
|
+
*
|
|
238
|
+
* @param {MetadataComponentType} componentType The component type of the metadata.
|
|
239
|
+
* @returns {PixelDatatype} The pixel datatype to use for a megatexture.
|
|
240
|
+
*
|
|
241
|
+
* @private
|
|
242
|
+
*/
|
|
243
|
+
function getPixelDataType(componentType) {
|
|
244
|
+
if (
|
|
245
|
+
componentType === MetadataComponentType.FLOAT32 ||
|
|
246
|
+
componentType === MetadataComponentType.FLOAT64
|
|
247
|
+
) {
|
|
248
|
+
return PixelDatatype.FLOAT;
|
|
249
|
+
} else if (componentType === MetadataComponentType.UINT8) {
|
|
250
|
+
return PixelDatatype.UNSIGNED_BYTE;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Get the pixel format to use for a megatexture.
|
|
256
|
+
*
|
|
257
|
+
* @param {number} channelCount The number of channels in the metadata. Must be 1 to 4.
|
|
258
|
+
* @param {boolean} webgl2 true if the context is using webgl2
|
|
259
|
+
* @returns {PixelFormat} The pixel format to use for a megatexture.
|
|
260
|
+
*
|
|
261
|
+
* @private
|
|
262
|
+
*/
|
|
263
|
+
function getPixelFormat(channelCount, webgl2) {
|
|
264
|
+
if (channelCount === 1) {
|
|
265
|
+
return webgl2 ? PixelFormat.RED : PixelFormat.LUMINANCE;
|
|
266
|
+
} else if (channelCount === 2) {
|
|
267
|
+
return webgl2 ? PixelFormat.RG : PixelFormat.LUMINANCE_ALPHA;
|
|
268
|
+
} else if (channelCount === 3) {
|
|
269
|
+
return PixelFormat.RGB;
|
|
270
|
+
} else if (channelCount === 4) {
|
|
271
|
+
return PixelFormat.RGBA;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Compute the largest size of a square texture that will fit in the available memory.
|
|
277
|
+
*
|
|
278
|
+
* @param {number} availableTextureMemoryBytes An upper limit on the texture memory size.
|
|
279
|
+
* @param {number} channelCount The number of metadata channels per texel.
|
|
280
|
+
* @param {number} componentByteLength The byte length of each component of the metadata.
|
|
281
|
+
* @returns {number} The dimension of the square texture to use for the megatexture.
|
|
282
|
+
*
|
|
283
|
+
* @private
|
|
284
|
+
*/
|
|
285
|
+
function getTextureDimension(
|
|
286
|
+
availableTextureMemoryBytes,
|
|
287
|
+
channelCount,
|
|
288
|
+
componentByteLength,
|
|
289
|
+
) {
|
|
290
|
+
// Compute how many texels will fit in the available memory
|
|
291
|
+
const texelCount = Math.floor(
|
|
292
|
+
availableTextureMemoryBytes / (channelCount * componentByteLength),
|
|
293
|
+
);
|
|
294
|
+
// Return the largest power of two texture size that will fit in memory
|
|
295
|
+
return Math.min(
|
|
296
|
+
ContextLimits.maximumTextureSize,
|
|
297
|
+
CesiumMath.previousPowerOfTwo(Math.floor(Math.sqrt(texelCount))),
|
|
298
|
+
);
|
|
299
|
+
}
|
|
300
|
+
|
|
252
301
|
/**
|
|
253
302
|
* @alias MegatextureNode
|
|
254
303
|
* @constructor
|
|
@@ -275,8 +324,9 @@ function MegatextureNode(index) {
|
|
|
275
324
|
}
|
|
276
325
|
|
|
277
326
|
/**
|
|
278
|
-
*
|
|
279
|
-
* @
|
|
327
|
+
* Add an array of tile metadata to the megatexture.
|
|
328
|
+
* @param {Array} data The data to be added.
|
|
329
|
+
* @returns {number} The index of the tile's location in the megatexture.
|
|
280
330
|
*/
|
|
281
331
|
Megatexture.prototype.add = function (data) {
|
|
282
332
|
if (this.isFull()) {
|
|
@@ -339,10 +389,10 @@ Megatexture.prototype.isFull = function () {
|
|
|
339
389
|
};
|
|
340
390
|
|
|
341
391
|
/**
|
|
342
|
-
* @param {number} tileCount
|
|
343
|
-
* @param {Cartesian3} dimensions
|
|
344
|
-
* @param {number} channelCount number of channels in the metadata.
|
|
345
|
-
* @param {MetadataComponentType} componentType
|
|
392
|
+
* @param {number} tileCount The total number of tiles in the tileset.
|
|
393
|
+
* @param {Cartesian3} dimensions The number of voxels in each dimension of the tile.
|
|
394
|
+
* @param {number} channelCount The number of channels in the metadata.
|
|
395
|
+
* @param {MetadataComponentType} componentType The type of one channel of the metadata.
|
|
346
396
|
* @returns {number}
|
|
347
397
|
*/
|
|
348
398
|
Megatexture.getApproximateTextureMemoryByteLength = function (
|
|
@@ -390,55 +440,52 @@ Megatexture.getApproximateTextureMemoryByteLength = function (
|
|
|
390
440
|
};
|
|
391
441
|
|
|
392
442
|
/**
|
|
393
|
-
*
|
|
394
|
-
* @param {
|
|
443
|
+
* Write an array of tile metadata to the megatexture.
|
|
444
|
+
* @param {number} index The index of the tile's location in the megatexture.
|
|
445
|
+
* @param {Float32Array|Uint16Array|Uint8Array} data The data to be written.
|
|
395
446
|
*/
|
|
396
447
|
Megatexture.prototype.writeDataToTexture = function (index, data) {
|
|
397
448
|
// Unsigned short textures not allowed in webgl 1, so treat as float
|
|
398
449
|
const tileData =
|
|
399
450
|
data.constructor === Uint16Array ? new Float32Array(data) : data;
|
|
400
451
|
|
|
401
|
-
const
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
452
|
+
const {
|
|
453
|
+
tileVoxelDataTemp,
|
|
454
|
+
voxelCountPerTile,
|
|
455
|
+
sliceCountPerRegion,
|
|
456
|
+
voxelCountPerRegion,
|
|
457
|
+
channelCount,
|
|
458
|
+
regionCountPerMegatexture,
|
|
459
|
+
} = this;
|
|
460
|
+
|
|
461
|
+
for (let z = 0; z < voxelCountPerTile.z; z++) {
|
|
462
|
+
const sliceVoxelOffsetX = (z % sliceCountPerRegion.x) * voxelCountPerTile.x;
|
|
410
463
|
const sliceVoxelOffsetY =
|
|
411
|
-
Math.floor(z /
|
|
412
|
-
for (let y = 0; y <
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
const writeIndex =
|
|
419
|
-
(sliceVoxelOffsetY + y) * voxelDimensionsPerRegion.x +
|
|
420
|
-
(sliceVoxelOffsetX + x);
|
|
464
|
+
Math.floor(z / sliceCountPerRegion.x) * voxelCountPerTile.y;
|
|
465
|
+
for (let y = 0; y < voxelCountPerTile.y; y++) {
|
|
466
|
+
const readOffset = getReadOffset(voxelCountPerTile, y, z);
|
|
467
|
+
const writeOffset =
|
|
468
|
+
(sliceVoxelOffsetY + y) * voxelCountPerRegion.x + sliceVoxelOffsetX;
|
|
469
|
+
for (let x = 0; x < voxelCountPerTile.x; x++) {
|
|
470
|
+
const readIndex = readOffset + x;
|
|
471
|
+
const writeIndex = writeOffset + x;
|
|
421
472
|
for (let c = 0; c < channelCount; c++) {
|
|
422
|
-
|
|
473
|
+
tileVoxelDataTemp[writeIndex * channelCount + c] =
|
|
423
474
|
tileData[readIndex * channelCount + c];
|
|
424
475
|
}
|
|
425
476
|
}
|
|
426
477
|
}
|
|
427
478
|
}
|
|
428
479
|
|
|
429
|
-
const regionDimensionsPerMegatexture = this.regionCountPerMegatexture;
|
|
430
|
-
const voxelWidth = voxelDimensionsPerRegion.x;
|
|
431
|
-
const voxelHeight = voxelDimensionsPerRegion.y;
|
|
432
480
|
const voxelOffsetX =
|
|
433
|
-
(index %
|
|
481
|
+
(index % regionCountPerMegatexture.x) * voxelCountPerRegion.x;
|
|
434
482
|
const voxelOffsetY =
|
|
435
|
-
Math.floor(index /
|
|
436
|
-
voxelDimensionsPerRegion.y;
|
|
483
|
+
Math.floor(index / regionCountPerMegatexture.x) * voxelCountPerRegion.y;
|
|
437
484
|
|
|
438
485
|
const source = {
|
|
439
|
-
arrayBufferView:
|
|
440
|
-
width:
|
|
441
|
-
height:
|
|
486
|
+
arrayBufferView: tileVoxelDataTemp,
|
|
487
|
+
width: voxelCountPerRegion.x,
|
|
488
|
+
height: voxelCountPerRegion.y,
|
|
442
489
|
};
|
|
443
490
|
|
|
444
491
|
const copyOptions = {
|
|
@@ -450,6 +497,22 @@ Megatexture.prototype.writeDataToTexture = function (index, data) {
|
|
|
450
497
|
this.texture.copyFrom(copyOptions);
|
|
451
498
|
};
|
|
452
499
|
|
|
500
|
+
/**
|
|
501
|
+
* Get the offset into the data array for a given row of contiguous voxel data.
|
|
502
|
+
*
|
|
503
|
+
* @param {Cartesian3} dimensions The number of voxels in each dimension of the tile.
|
|
504
|
+
* @param {number} y The y index of the voxel row
|
|
505
|
+
* @param {number} z The z index of the voxel row
|
|
506
|
+
* @returns {number} The offset into the data array
|
|
507
|
+
* @private
|
|
508
|
+
*/
|
|
509
|
+
function getReadOffset(dimensions, y, z) {
|
|
510
|
+
const voxelsPerInputSlice = dimensions.y * dimensions.x;
|
|
511
|
+
const sliceIndex = z;
|
|
512
|
+
const rowIndex = y;
|
|
513
|
+
return sliceIndex * voxelsPerInputSlice + rowIndex * dimensions.x;
|
|
514
|
+
}
|
|
515
|
+
|
|
453
516
|
/**
|
|
454
517
|
* Returns true if this object was destroyed; otherwise, false.
|
|
455
518
|
* <br /><br />
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Check from "../Core/Check.js";
|
|
2
2
|
import clone from "../Core/clone.js";
|
|
3
|
-
import
|
|
3
|
+
import Frozen from "../Core/Frozen.js";
|
|
4
4
|
import defined from "../Core/defined.js";
|
|
5
5
|
import MetadataClassProperty from "./MetadataClassProperty.js";
|
|
6
6
|
|
|
@@ -24,14 +24,14 @@ import MetadataClassProperty from "./MetadataClassProperty.js";
|
|
|
24
24
|
* @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
|
|
25
25
|
*/
|
|
26
26
|
function MetadataClass(options) {
|
|
27
|
-
options =
|
|
27
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
28
28
|
const id = options.id;
|
|
29
29
|
|
|
30
30
|
//>>includeStart('debug', pragmas.debug);
|
|
31
31
|
Check.typeOf.string("options.id", id);
|
|
32
32
|
//>>includeEnd('debug');
|
|
33
33
|
|
|
34
|
-
const properties =
|
|
34
|
+
const properties = options.properties ?? {};
|
|
35
35
|
const propertiesBySemantic = {};
|
|
36
36
|
for (const propertyId in properties) {
|
|
37
37
|
if (properties.hasOwnProperty(propertyId)) {
|
|
@@ -65,7 +65,7 @@ function MetadataClass(options) {
|
|
|
65
65
|
* @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
|
|
66
66
|
*/
|
|
67
67
|
MetadataClass.fromJson = function (options) {
|
|
68
|
-
options =
|
|
68
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
69
69
|
const id = options.id;
|
|
70
70
|
const classDefinition = options.class;
|
|
71
71
|
|
|
@@ -3,7 +3,7 @@ import Cartesian3 from "../Core/Cartesian3.js";
|
|
|
3
3
|
import Cartesian4 from "../Core/Cartesian4.js";
|
|
4
4
|
import Check from "../Core/Check.js";
|
|
5
5
|
import clone from "../Core/clone.js";
|
|
6
|
-
import
|
|
6
|
+
import Frozen from "../Core/Frozen.js";
|
|
7
7
|
import defined from "../Core/defined.js";
|
|
8
8
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
9
9
|
import Matrix2 from "../Core/Matrix2.js";
|
|
@@ -45,7 +45,7 @@ import MetadataComponentType from "./MetadataComponentType.js";
|
|
|
45
45
|
* @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
|
|
46
46
|
*/
|
|
47
47
|
function MetadataClassProperty(options) {
|
|
48
|
-
options =
|
|
48
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
49
49
|
const id = options.id;
|
|
50
50
|
const type = options.type;
|
|
51
51
|
|
|
@@ -60,7 +60,7 @@ function MetadataClassProperty(options) {
|
|
|
60
60
|
const normalized =
|
|
61
61
|
defined(componentType) &&
|
|
62
62
|
MetadataComponentType.isIntegerType(componentType) &&
|
|
63
|
-
|
|
63
|
+
(options.normalized ?? false);
|
|
64
64
|
|
|
65
65
|
// Basic information about this property
|
|
66
66
|
this._id = id;
|
|
@@ -78,11 +78,8 @@ function MetadataClassProperty(options) {
|
|
|
78
78
|
this._valueType = defined(enumType) ? enumType.valueType : componentType;
|
|
79
79
|
|
|
80
80
|
// Details about arrays
|
|
81
|
-
this._isArray =
|
|
82
|
-
this._isVariableLengthArray =
|
|
83
|
-
options.isVariableLengthArray,
|
|
84
|
-
false,
|
|
85
|
-
);
|
|
81
|
+
this._isArray = options.isArray ?? false;
|
|
82
|
+
this._isVariableLengthArray = options.isVariableLengthArray ?? false;
|
|
86
83
|
this._arrayLength = options.arrayLength;
|
|
87
84
|
|
|
88
85
|
// min and max allowed values
|
|
@@ -115,7 +112,7 @@ function MetadataClassProperty(options) {
|
|
|
115
112
|
// For vector and array types, this is stored as an array of values.
|
|
116
113
|
this._default = clone(options.default, true);
|
|
117
114
|
|
|
118
|
-
this._required =
|
|
115
|
+
this._required = options.required ?? true;
|
|
119
116
|
|
|
120
117
|
// extras and extensions
|
|
121
118
|
this._extras = clone(options.extras, true);
|
|
@@ -136,7 +133,7 @@ function MetadataClassProperty(options) {
|
|
|
136
133
|
* @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
|
|
137
134
|
*/
|
|
138
135
|
MetadataClassProperty.fromJson = function (options) {
|
|
139
|
-
options =
|
|
136
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
140
137
|
const id = options.id;
|
|
141
138
|
const property = options.property;
|
|
142
139
|
|
|
@@ -164,7 +161,7 @@ MetadataClassProperty.fromJson = function (options) {
|
|
|
164
161
|
} else if (isLegacyExtension) {
|
|
165
162
|
required = defined(property.optional) ? !property.optional : true;
|
|
166
163
|
} else {
|
|
167
|
-
required =
|
|
164
|
+
required = property.required ?? false;
|
|
168
165
|
}
|
|
169
166
|
|
|
170
167
|
return new MetadataClassProperty({
|
|
@@ -790,7 +787,7 @@ MetadataClassProperty.prototype.expandConstant = function (
|
|
|
790
787
|
constant,
|
|
791
788
|
enableNestedArrays,
|
|
792
789
|
) {
|
|
793
|
-
enableNestedArrays =
|
|
790
|
+
enableNestedArrays = enableNestedArrays ?? false;
|
|
794
791
|
const isArray = this._isArray;
|
|
795
792
|
const arrayLength = this._arrayLength;
|
|
796
793
|
const componentCount = MetadataType.getComponentCount(this._type);
|
|
@@ -881,7 +878,7 @@ MetadataClassProperty.prototype.unpackVectorAndMatrixTypes = function (
|
|
|
881
878
|
value,
|
|
882
879
|
enableNestedArrays,
|
|
883
880
|
) {
|
|
884
|
-
enableNestedArrays =
|
|
881
|
+
enableNestedArrays = enableNestedArrays ?? false;
|
|
885
882
|
const MathType = MetadataType.getMathType(this._type);
|
|
886
883
|
const isArray = this._isArray;
|
|
887
884
|
const componentCount = MetadataType.getComponentCount(this._type);
|
|
@@ -920,7 +917,7 @@ MetadataClassProperty.prototype.packVectorAndMatrixTypes = function (
|
|
|
920
917
|
value,
|
|
921
918
|
enableNestedArrays,
|
|
922
919
|
) {
|
|
923
|
-
enableNestedArrays =
|
|
920
|
+
enableNestedArrays = enableNestedArrays ?? false;
|
|
924
921
|
const MathType = MetadataType.getMathType(this._type);
|
|
925
922
|
const isArray = this._isArray;
|
|
926
923
|
const componentCount = MetadataType.getComponentCount(this._type);
|