@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,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Frozen from "../Core/Frozen.js";
|
|
2
2
|
import defined from "../Core/defined.js";
|
|
3
3
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
4
4
|
import GeographicTilingScheme from "../Core/GeographicTilingScheme.js";
|
|
@@ -101,7 +101,7 @@ const excludesReverseAxis = [
|
|
|
101
101
|
* viewer.imageryLayers.add(imageryLayer);
|
|
102
102
|
*/
|
|
103
103
|
function WebMapServiceImageryProvider(options) {
|
|
104
|
-
options =
|
|
104
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
105
105
|
|
|
106
106
|
//>>includeStart('debug', pragmas.debug);
|
|
107
107
|
if (!defined(options.url)) {
|
|
@@ -129,10 +129,7 @@ function WebMapServiceImageryProvider(options) {
|
|
|
129
129
|
this._defaultMinificationFilter = undefined;
|
|
130
130
|
this._defaultMagnificationFilter = undefined;
|
|
131
131
|
|
|
132
|
-
this._getFeatureInfoUrl =
|
|
133
|
-
options.getFeatureInfoUrl,
|
|
134
|
-
options.url,
|
|
135
|
-
);
|
|
132
|
+
this._getFeatureInfoUrl = options.getFeatureInfoUrl ?? options.url;
|
|
136
133
|
|
|
137
134
|
const resource = Resource.createIfNeeded(options.url);
|
|
138
135
|
const pickFeatureResource = Resource.createIfNeeded(this._getFeatureInfoUrl);
|
|
@@ -185,13 +182,12 @@ function WebMapServiceImageryProvider(options) {
|
|
|
185
182
|
// Use CRS with 1.3.0 and going forward.
|
|
186
183
|
// For GeographicTilingScheme, use CRS:84 vice EPSG:4326 to specify lon, lat (x, y) ordering for
|
|
187
184
|
// bbox requests.
|
|
188
|
-
parameters.crs =
|
|
189
|
-
options.crs
|
|
190
|
-
options.tilingScheme &&
|
|
191
|
-
|
|
185
|
+
parameters.crs =
|
|
186
|
+
options.crs ??
|
|
187
|
+
(options.tilingScheme &&
|
|
188
|
+
options.tilingScheme.projection instanceof WebMercatorProjection
|
|
192
189
|
? "EPSG:3857"
|
|
193
|
-
: "CRS:84"
|
|
194
|
-
);
|
|
190
|
+
: "CRS:84");
|
|
195
191
|
|
|
196
192
|
// The axis order in previous versions of the WMS specifications was to always use easting (x or lon ) and northing (y or
|
|
197
193
|
// lat). WMS 1.3.0 specifies that, depending on the particular CRS, the x axis may or may not be oriented West-to-East,
|
|
@@ -213,13 +209,12 @@ function WebMapServiceImageryProvider(options) {
|
|
|
213
209
|
}
|
|
214
210
|
} else {
|
|
215
211
|
// SRS for WMS 1.1.0 or 1.1.1.
|
|
216
|
-
parameters.srs =
|
|
217
|
-
options.srs
|
|
218
|
-
options.tilingScheme &&
|
|
219
|
-
|
|
212
|
+
parameters.srs =
|
|
213
|
+
options.srs ??
|
|
214
|
+
(options.tilingScheme &&
|
|
215
|
+
options.tilingScheme.projection instanceof WebMercatorProjection
|
|
220
216
|
? "EPSG:3857"
|
|
221
|
-
: "EPSG:4326"
|
|
222
|
-
);
|
|
217
|
+
: "EPSG:4326");
|
|
223
218
|
}
|
|
224
219
|
|
|
225
220
|
resource.setQueryParameters(parameters, true);
|
|
@@ -247,10 +242,9 @@ function WebMapServiceImageryProvider(options) {
|
|
|
247
242
|
this._tileProvider = new UrlTemplateImageryProvider({
|
|
248
243
|
url: resource,
|
|
249
244
|
pickFeaturesUrl: pickFeatureResource,
|
|
250
|
-
tilingScheme:
|
|
251
|
-
options.tilingScheme
|
|
245
|
+
tilingScheme:
|
|
246
|
+
options.tilingScheme ??
|
|
252
247
|
new GeographicTilingScheme({ ellipsoid: options.ellipsoid }),
|
|
253
|
-
),
|
|
254
248
|
rectangle: options.rectangle,
|
|
255
249
|
tileWidth: options.tileWidth,
|
|
256
250
|
tileHeight: options.tileHeight,
|
|
@@ -259,10 +253,9 @@ function WebMapServiceImageryProvider(options) {
|
|
|
259
253
|
subdomains: options.subdomains,
|
|
260
254
|
tileDiscardPolicy: options.tileDiscardPolicy,
|
|
261
255
|
credit: options.credit,
|
|
262
|
-
getFeatureInfoFormats:
|
|
263
|
-
options.getFeatureInfoFormats
|
|
256
|
+
getFeatureInfoFormats:
|
|
257
|
+
options.getFeatureInfoFormats ??
|
|
264
258
|
WebMapServiceImageryProvider.DefaultGetFeatureInfoFormats,
|
|
265
|
-
),
|
|
266
259
|
enablePickFeatures: options.enablePickFeatures,
|
|
267
260
|
});
|
|
268
261
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import combine from "../Core/combine.js";
|
|
2
2
|
import Credit from "../Core/Credit.js";
|
|
3
|
-
import
|
|
3
|
+
import Frozen from "../Core/Frozen.js";
|
|
4
4
|
import defined from "../Core/defined.js";
|
|
5
5
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
6
6
|
import Event from "../Core/Event.js";
|
|
@@ -114,7 +114,7 @@ const defaultParameters = Object.freeze({
|
|
|
114
114
|
* @see UrlTemplateImageryProvider
|
|
115
115
|
*/
|
|
116
116
|
function WebMapTileServiceImageryProvider(options) {
|
|
117
|
-
options =
|
|
117
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
118
118
|
|
|
119
119
|
//>>includeStart('debug', pragmas.debug);
|
|
120
120
|
if (!defined(options.url)) {
|
|
@@ -176,22 +176,19 @@ function WebMapTileServiceImageryProvider(options) {
|
|
|
176
176
|
this._style = style;
|
|
177
177
|
this._tileMatrixSetID = tileMatrixSetID;
|
|
178
178
|
this._tileMatrixLabels = options.tileMatrixLabels;
|
|
179
|
-
this._format =
|
|
179
|
+
this._format = options.format ?? "image/jpeg";
|
|
180
180
|
this._tileDiscardPolicy = options.tileDiscardPolicy;
|
|
181
181
|
|
|
182
182
|
this._tilingScheme = defined(options.tilingScheme)
|
|
183
183
|
? options.tilingScheme
|
|
184
184
|
: new WebMercatorTilingScheme({ ellipsoid: options.ellipsoid });
|
|
185
|
-
this._tileWidth =
|
|
186
|
-
this._tileHeight =
|
|
185
|
+
this._tileWidth = options.tileWidth ?? 256;
|
|
186
|
+
this._tileHeight = options.tileHeight ?? 256;
|
|
187
187
|
|
|
188
|
-
this._minimumLevel =
|
|
188
|
+
this._minimumLevel = options.minimumLevel ?? 0;
|
|
189
189
|
this._maximumLevel = options.maximumLevel;
|
|
190
190
|
|
|
191
|
-
this._rectangle =
|
|
192
|
-
options.rectangle,
|
|
193
|
-
this._tilingScheme.rectangle,
|
|
194
|
-
);
|
|
191
|
+
this._rectangle = options.rectangle ?? this._tilingScheme.rectangle;
|
|
195
192
|
this._dimensions = options.dimensions;
|
|
196
193
|
|
|
197
194
|
const that = this;
|
|
@@ -2,7 +2,7 @@ import Cartesian4 from "../Core/Cartesian4.js";
|
|
|
2
2
|
import CesiumMath from "../Core/Math.js";
|
|
3
3
|
import Check from "../Core/Check.js";
|
|
4
4
|
import Color from "../Core/Color.js";
|
|
5
|
-
import
|
|
5
|
+
import Frozen from "../Core/Frozen.js";
|
|
6
6
|
import defined from "../Core/defined.js";
|
|
7
7
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
8
8
|
import mergeSort from "../Core/mergeSort.js";
|
|
@@ -159,8 +159,8 @@ function preprocess(layers) {
|
|
|
159
159
|
});
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
let extendDownwards =
|
|
163
|
-
let extendUpwards =
|
|
162
|
+
let extendDownwards = layer.extendDownwards ?? false;
|
|
163
|
+
let extendUpwards = layer.extendUpwards ?? false;
|
|
164
164
|
|
|
165
165
|
// Interpret a single entry to extend all the way up and down.
|
|
166
166
|
if (entries.length === 1 && !extendDownwards && !extendUpwards) {
|
|
@@ -462,7 +462,7 @@ function createLayeredEntries(layers) {
|
|
|
462
462
|
* });
|
|
463
463
|
*/
|
|
464
464
|
function createElevationBandMaterial(options) {
|
|
465
|
-
const { scene, layers } =
|
|
465
|
+
const { scene, layers } = options ?? Frozen.EMPTY_OBJECT;
|
|
466
466
|
|
|
467
467
|
//>>includeStart('debug', pragmas.debug);
|
|
468
468
|
Check.typeOf.object("options.scene", scene);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Cesium3DTileset from "./Cesium3DTileset.js";
|
|
2
2
|
import Check from "../Core/Check.js";
|
|
3
|
-
import
|
|
3
|
+
import Frozen from "../Core/Frozen.js";
|
|
4
4
|
import defined from "../Core/defined.js";
|
|
5
5
|
import IonResource from "../Core/IonResource.js";
|
|
6
6
|
import GoogleMaps from "../Core/GoogleMaps.js";
|
|
@@ -58,21 +58,13 @@ import oneTimeWarning from "../Core/oneTimeWarning.js";
|
|
|
58
58
|
* }
|
|
59
59
|
*/
|
|
60
60
|
async function createGooglePhotorealistic3DTileset(apiOptions, tilesetOptions) {
|
|
61
|
-
tilesetOptions =
|
|
62
|
-
tilesetOptions.cacheBytes =
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
tilesetOptions.maximumCacheOverflowBytes = defaultValue(
|
|
67
|
-
tilesetOptions.maximumCacheOverflowBytes,
|
|
68
|
-
1024 * 1024 * 1024,
|
|
69
|
-
);
|
|
70
|
-
tilesetOptions.enableCollision = defaultValue(
|
|
71
|
-
tilesetOptions.enableCollision,
|
|
72
|
-
true,
|
|
73
|
-
);
|
|
61
|
+
tilesetOptions = tilesetOptions ?? {};
|
|
62
|
+
tilesetOptions.cacheBytes = tilesetOptions.cacheBytes ?? 1536 * 1024 * 1024;
|
|
63
|
+
tilesetOptions.maximumCacheOverflowBytes =
|
|
64
|
+
tilesetOptions.maximumCacheOverflowBytes ?? 1024 * 1024 * 1024;
|
|
65
|
+
tilesetOptions.enableCollision = tilesetOptions.enableCollision ?? true;
|
|
74
66
|
|
|
75
|
-
apiOptions =
|
|
67
|
+
apiOptions = apiOptions ?? Frozen.EMPTY_OBJECT;
|
|
76
68
|
//>>includeStart('debug', pragmas.debug);
|
|
77
69
|
Check.typeOf.object("apiOptions", apiOptions);
|
|
78
70
|
//>>includeEnd('debug');
|
|
@@ -84,7 +76,7 @@ async function createGooglePhotorealistic3DTileset(apiOptions, tilesetOptions) {
|
|
|
84
76
|
);
|
|
85
77
|
}
|
|
86
78
|
|
|
87
|
-
const key =
|
|
79
|
+
const key = apiOptions.key ?? GoogleMaps.defaultApiKey;
|
|
88
80
|
if (!defined(key)) {
|
|
89
81
|
return requestCachedIonTileset(tilesetOptions);
|
|
90
82
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Color from "../Core/Color.js";
|
|
2
|
-
import
|
|
2
|
+
import Frozen from "../Core/Frozen.js";
|
|
3
3
|
import defined from "../Core/defined.js";
|
|
4
4
|
import Cesium3DTileset from "./Cesium3DTileset.js";
|
|
5
5
|
import Cesium3DTileStyle from "./Cesium3DTileStyle.js";
|
|
@@ -60,15 +60,12 @@ import Cesium3DTileStyle from "./Cesium3DTileStyle.js";
|
|
|
60
60
|
async function createOsmBuildingsAsync(options) {
|
|
61
61
|
const tileset = await Cesium3DTileset.fromIonAssetId(96188, options);
|
|
62
62
|
|
|
63
|
-
options =
|
|
63
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
64
64
|
|
|
65
65
|
let style = options.style;
|
|
66
66
|
|
|
67
67
|
if (!defined(style)) {
|
|
68
|
-
const color =
|
|
69
|
-
options.defaultColor,
|
|
70
|
-
Color.WHITE,
|
|
71
|
-
).toCssColorString();
|
|
68
|
+
const color = (options.defaultColor ?? Color.WHITE).toCssColorString();
|
|
72
69
|
style = new Cesium3DTileStyle({
|
|
73
70
|
color: `Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${color}`,
|
|
74
71
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import ColorGeometryInstanceAttribute from "../Core/ColorGeometryInstanceAttribute.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 GeometryInstance from "../Core/GeometryInstance.js";
|
|
@@ -30,7 +30,7 @@ import Primitive from "./Primitive.js";
|
|
|
30
30
|
* }));
|
|
31
31
|
*/
|
|
32
32
|
function createTangentSpaceDebugPrimitive(options) {
|
|
33
|
-
options =
|
|
33
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
34
34
|
const instances = [];
|
|
35
35
|
let geometry = options.geometry;
|
|
36
36
|
|
|
@@ -47,10 +47,8 @@ function createTangentSpaceDebugPrimitive(options) {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
const attributes = geometry.attributes;
|
|
50
|
-
const modelMatrix = Matrix4.clone(
|
|
51
|
-
|
|
52
|
-
);
|
|
53
|
-
const length = defaultValue(options.length, 10000.0);
|
|
50
|
+
const modelMatrix = Matrix4.clone(options.modelMatrix ?? Matrix4.IDENTITY);
|
|
51
|
+
const length = options.length ?? 10000.0;
|
|
54
52
|
|
|
55
53
|
if (defined(attributes.normal)) {
|
|
56
54
|
instances.push(
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Frozen from "../Core/Frozen.js";
|
|
2
2
|
import IonImageryProvider from "./IonImageryProvider.js";
|
|
3
3
|
import IonWorldImageryStyle from "./IonWorldImageryStyle.js";
|
|
4
4
|
|
|
@@ -32,8 +32,8 @@ import IonWorldImageryStyle from "./IonWorldImageryStyle.js";
|
|
|
32
32
|
* }
|
|
33
33
|
*/
|
|
34
34
|
function createWorldImageryAsync(options) {
|
|
35
|
-
options =
|
|
36
|
-
const style =
|
|
35
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
36
|
+
const style = options.style ?? IonWorldImageryStyle.AERIAL;
|
|
37
37
|
return IonImageryProvider.fromAssetId(style);
|
|
38
38
|
}
|
|
39
39
|
export default createWorldImageryAsync;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import ContentMetadata from "./ContentMetadata.js";
|
|
2
|
-
import
|
|
2
|
+
import Frozen from "../Core/Frozen.js";
|
|
3
3
|
import defined from "../Core/defined.js";
|
|
4
4
|
import hasExtension from "./hasExtension.js";
|
|
5
5
|
import oneTimeWarning from "../Core/oneTimeWarning.js";
|
|
@@ -34,10 +34,7 @@ function findContentMetadata(tileset, contentHeader) {
|
|
|
34
34
|
return undefined;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
const classes =
|
|
38
|
-
tileset.schema.classes,
|
|
39
|
-
defaultValue.EMPTY_OBJECT,
|
|
40
|
-
);
|
|
37
|
+
const classes = tileset.schema.classes ?? Frozen.EMPTY_OBJECT;
|
|
41
38
|
if (defined(metadataJson.class)) {
|
|
42
39
|
const contentClass = classes[metadataJson.class];
|
|
43
40
|
return new ContentMetadata({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Frozen from "../Core/Frozen.js";
|
|
2
2
|
import defined from "../Core/defined.js";
|
|
3
3
|
import hasExtension from "./hasExtension.js";
|
|
4
4
|
import TileMetadata from "./TileMetadata.js";
|
|
@@ -36,10 +36,7 @@ function findTileMetadata(tileset, tileHeader) {
|
|
|
36
36
|
return undefined;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
const classes =
|
|
40
|
-
tileset.schema.classes,
|
|
41
|
-
defaultValue.EMPTY_OBJECT,
|
|
42
|
-
);
|
|
39
|
+
const classes = tileset.schema.classes ?? Frozen.EMPTY_OBJECT;
|
|
43
40
|
if (defined(metadataJson.class)) {
|
|
44
41
|
const tileClass = classes[metadataJson.class];
|
|
45
42
|
return new TileMetadata({
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import Check from "../Core/Check.js";
|
|
2
2
|
import ComponentDatatype from "../Core/ComponentDatatype.js";
|
|
3
3
|
import defined from "../Core/defined.js";
|
|
4
|
-
import defaultValue from "../Core/defaultValue.js";
|
|
5
4
|
import deprecationWarning from "../Core/deprecationWarning.js";
|
|
6
5
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
7
6
|
import RuntimeError from "../Core/RuntimeError.js";
|
|
@@ -45,10 +44,7 @@ function parseBatchTable(options) {
|
|
|
45
44
|
const featureCount = options.count;
|
|
46
45
|
const batchTable = options.batchTable;
|
|
47
46
|
const binaryBody = options.binaryBody;
|
|
48
|
-
const parseAsPropertyAttributes =
|
|
49
|
-
options.parseAsPropertyAttributes,
|
|
50
|
-
false,
|
|
51
|
-
);
|
|
47
|
+
const parseAsPropertyAttributes = options.parseAsPropertyAttributes ?? false;
|
|
52
48
|
const customAttributeOutput = options.customAttributeOutput;
|
|
53
49
|
|
|
54
50
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Check from "../Core/Check.js";
|
|
2
2
|
import combine from "../Core/combine.js";
|
|
3
|
-
import
|
|
3
|
+
import Frozen from "../Core/Frozen.js";
|
|
4
4
|
import defined from "../Core/defined.js";
|
|
5
5
|
import PropertyTable from "./PropertyTable.js";
|
|
6
6
|
import PropertyTexture from "./PropertyTexture.js";
|
|
@@ -21,7 +21,7 @@ import MetadataTable from "./MetadataTable.js";
|
|
|
21
21
|
* @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.
|
|
22
22
|
*/
|
|
23
23
|
function parseFeatureMetadataLegacy(options) {
|
|
24
|
-
options =
|
|
24
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
25
25
|
const extension = options.extension;
|
|
26
26
|
|
|
27
27
|
// The calling code is responsible for loading the schema.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Check from "../Core/Check.js";
|
|
2
|
-
import
|
|
2
|
+
import Frozen from "../Core/Frozen.js";
|
|
3
3
|
import defined from "../Core/defined.js";
|
|
4
4
|
import PropertyTable from "./PropertyTable.js";
|
|
5
5
|
import PropertyTexture from "./PropertyTexture.js";
|
|
@@ -21,7 +21,7 @@ import MetadataTable from "./MetadataTable.js";
|
|
|
21
21
|
* @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.
|
|
22
22
|
*/
|
|
23
23
|
function parseStructuralMetadata(options) {
|
|
24
|
-
options =
|
|
24
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
25
25
|
const extension = options.extension;
|
|
26
26
|
|
|
27
27
|
// The calling code is responsible for loading the schema.
|
|
@@ -310,6 +310,9 @@ function processVoxelProperties(renderResources, primitive) {
|
|
|
310
310
|
const glslField = getGlslField(type, j);
|
|
311
311
|
const minimumValue = minimumValues[i][j];
|
|
312
312
|
const maximumValue = maximumValues[i][j];
|
|
313
|
+
if (!defined(minimumValue) || !defined(maximumValue)) {
|
|
314
|
+
continue;
|
|
315
|
+
}
|
|
313
316
|
shaderBuilder.addFunctionLines(functionId, [
|
|
314
317
|
`${statisticsFieldName}.${name}.min${glslField} = ${getGlslNumberAsFloat(
|
|
315
318
|
minimumValue,
|
|
@@ -285,7 +285,16 @@ vec3 computeEllipsoidPosition()
|
|
|
285
285
|
vec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0);
|
|
286
286
|
xy *= czm_viewport.zw * mpp * 0.5;
|
|
287
287
|
|
|
288
|
-
vec3 direction
|
|
288
|
+
vec3 direction;
|
|
289
|
+
if (czm_orthographicIn3D == 1.0)
|
|
290
|
+
{
|
|
291
|
+
direction = vec3(0.0, 0.0, -1.0);
|
|
292
|
+
}
|
|
293
|
+
else
|
|
294
|
+
{
|
|
295
|
+
direction = normalize(vec3(xy, -czm_currentFrustum.x));
|
|
296
|
+
}
|
|
297
|
+
|
|
289
298
|
czm_ray ray = czm_ray(vec3(0.0), direction);
|
|
290
299
|
|
|
291
300
|
vec3 ellipsoid_center = czm_view[3].xyz;
|
|
@@ -286,7 +286,16 @@ vec3 computeEllipsoidPosition()\n\
|
|
|
286
286
|
vec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0);\n\
|
|
287
287
|
xy *= czm_viewport.zw * mpp * 0.5;\n\
|
|
288
288
|
\n\
|
|
289
|
-
vec3 direction
|
|
289
|
+
vec3 direction;\n\
|
|
290
|
+
if (czm_orthographicIn3D == 1.0)\n\
|
|
291
|
+
{\n\
|
|
292
|
+
direction = vec3(0.0, 0.0, -1.0);\n\
|
|
293
|
+
}\n\
|
|
294
|
+
else\n\
|
|
295
|
+
{\n\
|
|
296
|
+
direction = normalize(vec3(xy, -czm_currentFrustum.x));\n\
|
|
297
|
+
}\n\
|
|
298
|
+
\n\
|
|
290
299
|
czm_ray ray = czm_ray(vec3(0.0), direction);\n\
|
|
291
300
|
\n\
|
|
292
301
|
vec3 ellipsoid_center = czm_view[3].xyz;\n\
|
|
@@ -12,12 +12,6 @@ uniform vec2 u_megatextureVoxelSizeUv;
|
|
|
12
12
|
uniform vec2 u_megatextureSliceSizeUv;
|
|
13
13
|
uniform vec2 u_megatextureTileSizeUv;
|
|
14
14
|
|
|
15
|
-
uniform ivec3 u_dimensions; // does not include padding
|
|
16
|
-
#if defined(PADDING)
|
|
17
|
-
uniform ivec3 u_paddingBefore;
|
|
18
|
-
uniform ivec3 u_paddingAfter;
|
|
19
|
-
#endif
|
|
20
|
-
|
|
21
15
|
// Integer min, max, clamp: For WebGL1 only
|
|
22
16
|
int intMin(int a, int b) {
|
|
23
17
|
return a <= b ? a : b;
|
|
@@ -72,14 +66,8 @@ vec2 index1DTo2DTexcoord(int index, ivec2 dimensions, vec2 uvScale)
|
|
|
72
66
|
|
|
73
67
|
Properties getPropertiesFromMegatexture(in SampleData sampleData) {
|
|
74
68
|
int tileIndex = sampleData.megatextureIndex;
|
|
75
|
-
vec3 voxelCoord = sampleData.tileUv * vec3(u_dimensions);
|
|
76
|
-
ivec3 voxelDimensions = u_dimensions;
|
|
77
|
-
|
|
78
|
-
#if defined(PADDING)
|
|
79
|
-
voxelDimensions += u_paddingBefore + u_paddingAfter;
|
|
80
|
-
voxelCoord += vec3(u_paddingBefore);
|
|
81
|
-
#endif
|
|
82
69
|
|
|
70
|
+
vec3 voxelCoord = sampleData.inputCoordinate;
|
|
83
71
|
#if defined(NEAREST_SAMPLING)
|
|
84
72
|
// Round to the center of the nearest voxel
|
|
85
73
|
voxelCoord = floor(voxelCoord) + vec3(0.5);
|
|
@@ -91,11 +79,11 @@ Properties getPropertiesFromMegatexture(in SampleData sampleData) {
|
|
|
91
79
|
// Slice location
|
|
92
80
|
float slice = voxelCoord.z - 0.5;
|
|
93
81
|
int sliceIndex = int(floor(slice));
|
|
94
|
-
int sliceIndex0 = intClamp(sliceIndex, 0,
|
|
82
|
+
int sliceIndex0 = intClamp(sliceIndex, 0, u_inputDimensions.z - 1);
|
|
95
83
|
vec2 sliceUvOffset0 = index1DTo2DTexcoord(sliceIndex0, u_megatextureSliceDimensions, u_megatextureSliceSizeUv);
|
|
96
84
|
|
|
97
85
|
// Voxel location
|
|
98
|
-
vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(
|
|
86
|
+
vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(u_inputDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv;
|
|
99
87
|
|
|
100
88
|
// Final location in the megatexture
|
|
101
89
|
vec2 uv0 = tileUvOffset + sliceUvOffset0 + voxelUvOffset;
|
|
@@ -104,7 +92,7 @@ Properties getPropertiesFromMegatexture(in SampleData sampleData) {
|
|
|
104
92
|
return getPropertiesFromMegatextureAtUv(uv0);
|
|
105
93
|
#else
|
|
106
94
|
float sliceLerp = fract(slice);
|
|
107
|
-
int sliceIndex1 = intMin(sliceIndex + 1,
|
|
95
|
+
int sliceIndex1 = intMin(sliceIndex + 1, u_inputDimensions.z - 1);
|
|
108
96
|
vec2 sliceUvOffset1 = index1DTo2DTexcoord(sliceIndex1, u_megatextureSliceDimensions, u_megatextureSliceSizeUv);
|
|
109
97
|
vec2 uv1 = tileUvOffset + sliceUvOffset1 + voxelUvOffset;
|
|
110
98
|
Properties properties0 = getPropertiesFromMegatextureAtUv(uv0);
|
|
@@ -13,12 +13,6 @@ uniform vec2 u_megatextureVoxelSizeUv;\n\
|
|
|
13
13
|
uniform vec2 u_megatextureSliceSizeUv;\n\
|
|
14
14
|
uniform vec2 u_megatextureTileSizeUv;\n\
|
|
15
15
|
\n\
|
|
16
|
-
uniform ivec3 u_dimensions; // does not include padding\n\
|
|
17
|
-
#if defined(PADDING)\n\
|
|
18
|
-
uniform ivec3 u_paddingBefore;\n\
|
|
19
|
-
uniform ivec3 u_paddingAfter;\n\
|
|
20
|
-
#endif\n\
|
|
21
|
-
\n\
|
|
22
16
|
// Integer min, max, clamp: For WebGL1 only\n\
|
|
23
17
|
int intMin(int a, int b) {\n\
|
|
24
18
|
return a <= b ? a : b;\n\
|
|
@@ -73,14 +67,8 @@ vec2 index1DTo2DTexcoord(int index, ivec2 dimensions, vec2 uvScale)\n\
|
|
|
73
67
|
\n\
|
|
74
68
|
Properties getPropertiesFromMegatexture(in SampleData sampleData) {\n\
|
|
75
69
|
int tileIndex = sampleData.megatextureIndex;\n\
|
|
76
|
-
vec3 voxelCoord = sampleData.tileUv * vec3(u_dimensions);\n\
|
|
77
|
-
ivec3 voxelDimensions = u_dimensions;\n\
|
|
78
|
-
\n\
|
|
79
|
-
#if defined(PADDING)\n\
|
|
80
|
-
voxelDimensions += u_paddingBefore + u_paddingAfter;\n\
|
|
81
|
-
voxelCoord += vec3(u_paddingBefore);\n\
|
|
82
|
-
#endif\n\
|
|
83
70
|
\n\
|
|
71
|
+
vec3 voxelCoord = sampleData.inputCoordinate;\n\
|
|
84
72
|
#if defined(NEAREST_SAMPLING)\n\
|
|
85
73
|
// Round to the center of the nearest voxel\n\
|
|
86
74
|
voxelCoord = floor(voxelCoord) + vec3(0.5);\n\
|
|
@@ -92,11 +80,11 @@ Properties getPropertiesFromMegatexture(in SampleData sampleData) {\n\
|
|
|
92
80
|
// Slice location\n\
|
|
93
81
|
float slice = voxelCoord.z - 0.5;\n\
|
|
94
82
|
int sliceIndex = int(floor(slice));\n\
|
|
95
|
-
int sliceIndex0 = intClamp(sliceIndex, 0,
|
|
83
|
+
int sliceIndex0 = intClamp(sliceIndex, 0, u_inputDimensions.z - 1);\n\
|
|
96
84
|
vec2 sliceUvOffset0 = index1DTo2DTexcoord(sliceIndex0, u_megatextureSliceDimensions, u_megatextureSliceSizeUv);\n\
|
|
97
85
|
\n\
|
|
98
86
|
// Voxel location\n\
|
|
99
|
-
vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(
|
|
87
|
+
vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(u_inputDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv;\n\
|
|
100
88
|
\n\
|
|
101
89
|
// Final location in the megatexture\n\
|
|
102
90
|
vec2 uv0 = tileUvOffset + sliceUvOffset0 + voxelUvOffset;\n\
|
|
@@ -105,7 +93,7 @@ Properties getPropertiesFromMegatexture(in SampleData sampleData) {\n\
|
|
|
105
93
|
return getPropertiesFromMegatextureAtUv(uv0);\n\
|
|
106
94
|
#else\n\
|
|
107
95
|
float sliceLerp = fract(slice);\n\
|
|
108
|
-
int sliceIndex1 = intMin(sliceIndex + 1,
|
|
96
|
+
int sliceIndex1 = intMin(sliceIndex + 1, u_inputDimensions.z - 1);\n\
|
|
109
97
|
vec2 sliceUvOffset1 = index1DTo2DTexcoord(sliceIndex1, u_megatextureSliceDimensions, u_megatextureSliceSizeUv);\n\
|
|
110
98
|
vec2 uv1 = tileUvOffset + sliceUvOffset1 + voxelUvOffset;\n\
|
|
111
99
|
Properties properties0 = getPropertiesFromMegatextureAtUv(uv0);\n\
|
|
@@ -13,6 +13,11 @@ uniform sampler2D u_octreeLeafNodeTexture;
|
|
|
13
13
|
uniform vec2 u_octreeLeafNodeTexelSizeUv;
|
|
14
14
|
uniform int u_octreeLeafNodeTilesPerRow;
|
|
15
15
|
#endif
|
|
16
|
+
uniform ivec3 u_dimensions; // does not include padding, and is in the z-up orientation
|
|
17
|
+
uniform ivec3 u_inputDimensions; // includes padding, and is in the orientation of the input data
|
|
18
|
+
#if defined(PADDING)
|
|
19
|
+
uniform ivec3 u_paddingBefore;
|
|
20
|
+
#endif
|
|
16
21
|
|
|
17
22
|
struct OctreeNodeData {
|
|
18
23
|
int data;
|
|
@@ -28,6 +33,7 @@ struct SampleData {
|
|
|
28
33
|
int megatextureIndex;
|
|
29
34
|
ivec4 tileCoords;
|
|
30
35
|
vec3 tileUv;
|
|
36
|
+
vec3 inputCoordinate;
|
|
31
37
|
#if (SAMPLE_COUNT > 1)
|
|
32
38
|
float weight;
|
|
33
39
|
#endif
|
|
@@ -88,6 +94,37 @@ vec3 getClampedTileUv(in vec3 shapePosition, in ivec4 octreeCoords) {
|
|
|
88
94
|
return clamp(tileUv, vec3(0.0), vec3(1.0));
|
|
89
95
|
}
|
|
90
96
|
|
|
97
|
+
void addSampleCoordinates(in vec3 shapePosition, inout SampleData sampleData) {
|
|
98
|
+
vec3 tileUv = getClampedTileUv(shapePosition, sampleData.tileCoords);
|
|
99
|
+
|
|
100
|
+
vec3 inputCoordinate = tileUv * vec3(u_dimensions);
|
|
101
|
+
#if defined(PADDING)
|
|
102
|
+
inputCoordinate += vec3(u_paddingBefore);
|
|
103
|
+
#endif
|
|
104
|
+
#if defined(Y_UP_METADATA_ORDER)
|
|
105
|
+
#if defined(SHAPE_BOX)
|
|
106
|
+
float inputY = inputCoordinate.y;
|
|
107
|
+
inputCoordinate.y = float(u_inputDimensions.y) - inputCoordinate.z;
|
|
108
|
+
inputCoordinate.z = inputY;
|
|
109
|
+
#elif defined(SHAPE_CYLINDER)
|
|
110
|
+
float angle = inputCoordinate.y;
|
|
111
|
+
float height = inputCoordinate.z;
|
|
112
|
+
#if (!defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE))
|
|
113
|
+
// Account for the different 0-angle convention in glTF vs 3DTiles
|
|
114
|
+
if (sampleData.tileCoords.w == 0) {
|
|
115
|
+
float angleCount = float(u_inputDimensions.z);
|
|
116
|
+
angle = mod(angle + angleCount / 2.0, angleCount);
|
|
117
|
+
}
|
|
118
|
+
#endif
|
|
119
|
+
inputCoordinate.y = height;
|
|
120
|
+
inputCoordinate.z = angle;
|
|
121
|
+
#endif
|
|
122
|
+
#endif
|
|
123
|
+
|
|
124
|
+
sampleData.tileUv = tileUv;
|
|
125
|
+
sampleData.inputCoordinate = inputCoordinate;
|
|
126
|
+
}
|
|
127
|
+
|
|
91
128
|
void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) {
|
|
92
129
|
sampleData.megatextureIndex = data.data;
|
|
93
130
|
sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT)
|
|
@@ -172,11 +209,11 @@ void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traver
|
|
|
172
209
|
|
|
173
210
|
#if (SAMPLE_COUNT == 1)
|
|
174
211
|
getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);
|
|
175
|
-
|
|
212
|
+
addSampleCoordinates(shapePosition, sampleDatas[0]);
|
|
176
213
|
#else
|
|
177
214
|
getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);
|
|
178
|
-
|
|
179
|
-
|
|
215
|
+
addSampleCoordinates(shapePosition, sampleDatas[0]);
|
|
216
|
+
addSampleCoordinates(shapePosition, sampleDatas[1]);
|
|
180
217
|
#endif
|
|
181
218
|
}
|
|
182
219
|
|
|
@@ -194,7 +231,7 @@ bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) {
|
|
|
194
231
|
void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) {
|
|
195
232
|
if (insideTile(shapePosition, traversalData.octreeCoords)) {
|
|
196
233
|
for (int i = 0; i < SAMPLE_COUNT; i++) {
|
|
197
|
-
|
|
234
|
+
addSampleCoordinates(shapePosition, sampleDatas[i]);
|
|
198
235
|
}
|
|
199
236
|
return;
|
|
200
237
|
}
|
|
@@ -216,10 +253,10 @@ void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData trave
|
|
|
216
253
|
|
|
217
254
|
#if (SAMPLE_COUNT == 1)
|
|
218
255
|
getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);
|
|
219
|
-
|
|
256
|
+
addSampleCoordinates(shapePosition, sampleDatas[0]);
|
|
220
257
|
#else
|
|
221
258
|
getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);
|
|
222
|
-
|
|
223
|
-
|
|
259
|
+
addSampleCoordinates(shapePosition, sampleDatas[0]);
|
|
260
|
+
addSampleCoordinates(shapePosition, sampleDatas[1]);
|
|
224
261
|
#endif
|
|
225
262
|
}
|