@cesium/engine 1.0.0 → 2.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/{AttributeCompression-4589338a.js → AttributeCompression-b646d393.js} +1 -1
- package/Build/Workers/{AxisAlignedBoundingBox-bfb1234f.js → AxisAlignedBoundingBox-47525601.js} +1 -1
- package/Build/Workers/{BoundingRectangle-7ffc2153.js → BoundingRectangle-93b263ac.js} +1 -1
- package/Build/Workers/{BoxGeometry-93f344a3.js → BoxGeometry-8c4b4125.js} +1 -1
- package/Build/Workers/{Color-0c5aaf47.js → Color-52c60ed7.js} +1 -1
- package/Build/Workers/{CoplanarPolygonGeometryLibrary-6597982a.js → CoplanarPolygonGeometryLibrary-33c4c1f8.js} +1 -1
- package/Build/Workers/{CorridorGeometryLibrary-2119580e.js → CorridorGeometryLibrary-5039cd8e.js} +1 -1
- package/Build/Workers/{CylinderGeometry-f9503c6d.js → CylinderGeometry-3ac44974.js} +1 -1
- package/Build/Workers/{EllipseGeometry-fedf72d5.js → EllipseGeometry-a9c9b3be.js} +1 -1
- package/Build/Workers/{EllipseGeometryLibrary-4ea68687.js → EllipseGeometryLibrary-855d4681.js} +1 -1
- package/Build/Workers/{EllipseOutlineGeometry-e2ae6a35.js → EllipseOutlineGeometry-017a5929.js} +1 -1
- package/Build/Workers/{EllipsoidGeodesic-16de63ea.js → EllipsoidGeodesic-98c62a56.js} +1 -1
- package/Build/Workers/{EllipsoidGeometry-95c0330e.js → EllipsoidGeometry-826e7bce.js} +1 -1
- package/Build/Workers/{EllipsoidOutlineGeometry-d6d2ceec.js → EllipsoidOutlineGeometry-784dcdb5.js} +1 -1
- package/Build/Workers/{EllipsoidRhumbLine-ae5e65e0.js → EllipsoidRhumbLine-19756602.js} +1 -1
- package/Build/Workers/{EllipsoidTangentPlane-bfc674bf.js → EllipsoidTangentPlane-ed9443a1.js} +1 -1
- package/Build/Workers/{EncodedCartesian3-f473ea18.js → EncodedCartesian3-81f70735.js} +1 -1
- package/Build/Workers/{FrustumGeometry-3bf2e4eb.js → FrustumGeometry-9f1ee4d8.js} +1 -1
- package/Build/Workers/{GeometryAttribute-df5f473e.js → GeometryAttribute-334718f8.js} +1 -1
- package/Build/Workers/{GeometryInstance-aa75b4cf.js → GeometryInstance-451dc1cd.js} +1 -1
- package/Build/Workers/{GeometryPipeline-f0e46c42.js → GeometryPipeline-8fb0db69.js} +1 -1
- package/Build/Workers/{IntersectionTests-9de29d51.js → IntersectionTests-27d49265.js} +1 -1
- package/Build/Workers/{Matrix2-ce637455.js → Matrix2-13178034.js} +4 -2
- package/Build/Workers/{Matrix3-4f4df527.js → Matrix3-315394f6.js} +2 -1
- package/Build/Workers/{OrientedBoundingBox-d3ff3d4d.js → OrientedBoundingBox-79ee7cbb.js} +5 -5
- package/Build/Workers/{Plane-b81241c2.js → Plane-900aa728.js} +1 -1
- package/Build/Workers/{PolygonGeometryLibrary-6f4937bb.js → PolygonGeometryLibrary-6b5a29e9.js} +1 -1
- package/Build/Workers/PolygonPipeline-21668b3f.js +1345 -0
- package/Build/Workers/{PolylinePipeline-2e2b015c.js → PolylinePipeline-5e2e1b21.js} +1 -1
- package/Build/Workers/{PolylineVolumeGeometryLibrary-7ee1d449.js → PolylineVolumeGeometryLibrary-97f0b94e.js} +1 -1
- package/Build/Workers/{PrimitivePipeline-a9b7aae0.js → PrimitivePipeline-5640850a.js} +1 -1
- package/Build/Workers/{RectangleGeometryLibrary-9aa6c8f6.js → RectangleGeometryLibrary-d5457f7b.js} +1 -1
- package/Build/Workers/{TerrainEncoding-b52dcfc5.js → TerrainEncoding-bfdf2021.js} +1 -1
- package/Build/Workers/{Transforms-2f755df8.js → Transforms-a05e5e6e.js} +114 -83
- package/Build/Workers/{WallGeometryLibrary-ab19a93d.js → WallGeometryLibrary-6db0ebb6.js} +1 -1
- package/Build/Workers/{WebMercatorProjection-9f25de49.js → WebMercatorProjection-13a90d41.js} +1 -1
- package/Build/Workers/cesiumWorkerBootstrapper.js +92 -2
- package/Build/Workers/combineGeometry.js +1 -1
- package/Build/Workers/createBoxGeometry.js +1 -1
- package/Build/Workers/createBoxOutlineGeometry.js +1 -1
- package/Build/Workers/createCircleGeometry.js +1 -1
- package/Build/Workers/createCircleOutlineGeometry.js +1 -1
- package/Build/Workers/createCoplanarPolygonGeometry.js +1 -1
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
- package/Build/Workers/createCorridorGeometry.js +1 -1
- package/Build/Workers/createCorridorOutlineGeometry.js +1 -1
- package/Build/Workers/createCylinderGeometry.js +1 -1
- package/Build/Workers/createCylinderOutlineGeometry.js +1 -1
- package/Build/Workers/createEllipseGeometry.js +1 -1
- package/Build/Workers/createEllipseOutlineGeometry.js +1 -1
- package/Build/Workers/createEllipsoidGeometry.js +1 -1
- package/Build/Workers/createEllipsoidOutlineGeometry.js +1 -1
- package/Build/Workers/createFrustumGeometry.js +1 -1
- package/Build/Workers/createFrustumOutlineGeometry.js +1 -1
- package/Build/Workers/createGeometry.js +1 -1
- package/Build/Workers/createGroundPolylineGeometry.js +1 -1
- package/Build/Workers/createPlaneGeometry.js +1 -1
- package/Build/Workers/createPlaneOutlineGeometry.js +1 -1
- package/Build/Workers/createPolygonGeometry.js +1 -1
- package/Build/Workers/createPolygonOutlineGeometry.js +1 -1
- package/Build/Workers/createPolylineGeometry.js +1 -1
- package/Build/Workers/createPolylineVolumeGeometry.js +1 -1
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +1 -1
- package/Build/Workers/createRectangleGeometry.js +1 -1
- package/Build/Workers/createRectangleOutlineGeometry.js +1 -1
- package/Build/Workers/createSimplePolylineGeometry.js +1 -1
- package/Build/Workers/createSphereGeometry.js +1 -1
- package/Build/Workers/createSphereOutlineGeometry.js +1 -1
- package/Build/Workers/createVectorTileClampedPolylines.js +1 -1
- package/Build/Workers/createVectorTileGeometries.js +1 -1
- package/Build/Workers/createVectorTilePoints.js +1 -1
- package/Build/Workers/createVectorTilePolygons.js +1 -1
- package/Build/Workers/createVectorTilePolylines.js +1 -1
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
- package/Build/Workers/createVerticesFromHeightmap.js +7 -3
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +1 -1
- package/Build/Workers/createWallGeometry.js +1 -1
- package/Build/Workers/createWallOutlineGeometry.js +1 -1
- package/Build/Workers/decodeDraco.js +9 -1
- package/Build/Workers/decodeI3S.js +1 -1
- package/Build/Workers/package.js +25 -1
- package/Build/Workers/transcodeKTX2.js +22 -2
- package/Build/Workers/transferTypedArrayTest.js +25 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +1 -1
- package/README.md +14 -16
- package/Source/Core/EarthOrientationParameters.js +67 -63
- package/Source/Core/FeatureDetection.js +18 -0
- package/Source/Core/Ion.js +1 -2
- package/Source/Core/Matrix2.js +2 -1
- package/Source/Core/Matrix3.js +2 -1
- package/Source/Core/Matrix4.js +1 -0
- package/Source/Core/OrientedBoundingBox.js +4 -4
- package/Source/Core/PixelFormat.js +22 -2
- package/Source/Core/S2Cell.js +3 -3
- package/Source/Core/Transforms.js +3 -7
- package/Source/Core/sampleTerrain.js +5 -0
- package/Source/DataSources/GpxDataSource.js +4 -6
- package/Source/DataSources/KmlDataSource.js +3 -5
- package/Source/Renderer/AutomaticUniforms.js +3 -3
- package/Source/Renderer/Context.js +20 -12
- package/Source/Renderer/Pass.js +3 -2
- package/Source/Renderer/ShaderBuilder.js +13 -12
- package/Source/Renderer/ShaderSource.js +31 -26
- package/Source/Renderer/demodernizeShader.js +76 -0
- package/Source/Scene/AutoExposure.js +5 -5
- package/Source/Scene/BatchTable.js +5 -5
- package/Source/Scene/BillboardCollection.js +2 -2
- package/Source/Scene/BingMapsImageryProvider.js +1 -1
- package/Source/Scene/Cesium3DTile.js +8 -2
- package/Source/Scene/Cesium3DTileBatchTable.js +28 -28
- package/Source/Scene/Cesium3DTileContentType.js +19 -0
- package/Source/Scene/Cesium3DTilesVoxelProvider.js +494 -0
- package/Source/Scene/Cesium3DTileset.js +6 -1
- package/Source/Scene/Cesium3DTilesetMetadata.js +2 -2
- package/Source/Scene/ClassificationPrimitive.js +3 -8
- package/Source/Scene/ContentMetadata.js +2 -2
- package/Source/Scene/DebugAppearance.js +7 -9
- package/Source/Scene/DebugInspector.js +5 -5
- package/Source/Scene/DepthPlane.js +0 -6
- package/Source/Scene/DerivedCommand.js +15 -22
- package/Source/Scene/EllipsoidPrimitive.js +0 -7
- package/Source/Scene/Expression.js +1 -1
- package/Source/Scene/Globe.js +10 -0
- package/Source/Scene/GlobeSurfaceTileProvider.js +7 -0
- package/Source/Scene/GlobeTranslucencyState.js +6 -6
- package/Source/Scene/GltfImageLoader.js +1 -1
- package/Source/Scene/GltfVertexBufferLoader.js +10 -2
- package/Source/Scene/GroundPolylinePrimitive.js +2 -4
- package/Source/Scene/GroupMetadata.js +2 -2
- package/Source/Scene/ImplicitMetadataView.js +2 -2
- package/Source/Scene/ImplicitSubtreeCache.js +127 -0
- package/Source/Scene/ImplicitSubtreeMetadata.js +2 -2
- package/Source/Scene/ImplicitTileset.js +3 -2
- package/Source/Scene/InvertClassification.js +9 -10
- package/Source/Scene/KeyframeNode.js +47 -0
- package/Source/Scene/Material.js +6 -6
- package/Source/Scene/Megatexture.js +490 -0
- package/Source/Scene/MetadataClass.js +60 -25
- package/Source/Scene/MetadataClassProperty.js +132 -68
- package/Source/Scene/MetadataComponentType.js +78 -57
- package/Source/Scene/MetadataEnum.js +59 -23
- package/Source/Scene/MetadataEnumValue.js +49 -15
- package/Source/Scene/MetadataSchema.js +53 -24
- package/Source/Scene/MetadataSchemaLoader.js +2 -2
- package/Source/Scene/MetadataSemantic.js +8 -0
- package/Source/Scene/MetadataTableProperty.js +2 -2
- package/Source/Scene/MetadataType.js +6 -14
- package/Source/Scene/Model/CustomShader.js +1 -1
- package/Source/Scene/Model/FeatureIdPipelineStage.js +4 -4
- package/Source/Scene/Model/GeoJsonLoader.js +1 -1
- package/Source/Scene/Model/LightingModel.js +1 -1
- package/Source/Scene/Model/MetadataPipelineStage.js +1 -1
- package/Source/Scene/Model/Model.js +2 -3
- package/Source/Scene/Model/PickingPipelineStage.js +1 -1
- package/Source/Scene/Model/buildDrawCommand.js +19 -11
- package/Source/Scene/OIT.js +211 -119
- package/Source/Scene/PickDepth.js +2 -2
- package/Source/Scene/PointCloud.js +12 -12
- package/Source/Scene/PointCloudEyeDomeLighting.js +9 -4
- package/Source/Scene/PolylineCollection.js +2 -7
- package/Source/Scene/PolylineMaterialAppearance.js +2 -3
- package/Source/Scene/PostProcessStage.js +13 -13
- package/Source/Scene/PostProcessStageLibrary.js +3 -3
- package/Source/Scene/Primitive.js +22 -31
- package/Source/Scene/PropertyAttribute.js +2 -2
- package/Source/Scene/PropertyAttributeProperty.js +2 -2
- package/Source/Scene/PropertyTable.js +2 -2
- package/Source/Scene/PropertyTexture.js +2 -2
- package/Source/Scene/PropertyTextureProperty.js +2 -2
- package/Source/Scene/ResourceCache.js +9 -1
- package/Source/Scene/ResourceCacheKey.js +9 -1
- package/Source/Scene/Scene.js +17 -0
- package/Source/Scene/ShadowMap.js +7 -7
- package/Source/Scene/ShadowMapShader.js +9 -9
- package/Source/Scene/ShadowVolumeAppearance.js +1 -1
- package/Source/Scene/SpatialNode.js +375 -0
- package/Source/Scene/StructuralMetadata.js +2 -2
- package/Source/Scene/TextureAtlas.js +5 -3
- package/Source/Scene/TileMetadata.js +2 -2
- package/Source/Scene/TilesetMetadata.js +2 -2
- package/Source/Scene/Vector3DTilePolylines.js +1 -1
- package/Source/Scene/Vector3DTilePrimitive.js +2 -2
- package/Source/Scene/VoxelBoxShape.js +527 -0
- package/Source/Scene/VoxelContent.js +169 -0
- package/Source/Scene/VoxelCylinderShape.js +937 -0
- package/Source/Scene/VoxelEllipsoidShape.js +945 -0
- package/Source/Scene/VoxelPrimitive.js +1919 -0
- package/Source/Scene/VoxelProvider.js +255 -0
- package/Source/Scene/VoxelRenderResources.js +224 -0
- package/Source/Scene/VoxelShape.js +152 -0
- package/Source/Scene/VoxelShapeType.js +105 -0
- package/Source/Scene/VoxelTraversal.js +1144 -0
- package/Source/Scene/buildVoxelDrawCommands.js +116 -0
- package/Source/Scene/computeFlyToLocationForRectangle.js +10 -1
- package/Source/Scene/createElevationBandMaterial.js +10 -15
- package/Source/Scene/getClipAndStyleCode.js +1 -1
- package/Source/Scene/getClippingFunction.js +3 -3
- package/Source/Scene/parseBatchTable.js +18 -2
- package/Source/Scene/preprocess3DTileContent.js +8 -0
- package/Source/Scene/processVoxelProperties.js +455 -0
- package/Source/Shaders/AdjustTranslucentFS.glsl +9 -6
- package/Source/Shaders/AdjustTranslucentFS.js +9 -6
- package/Source/Shaders/Appearances/AllMaterialAppearanceFS.glsl +7 -7
- package/Source/Shaders/Appearances/AllMaterialAppearanceFS.js +7 -7
- package/Source/Shaders/Appearances/AllMaterialAppearanceVS.glsl +12 -12
- package/Source/Shaders/Appearances/AllMaterialAppearanceVS.js +12 -12
- package/Source/Shaders/Appearances/BasicMaterialAppearanceFS.glsl +4 -4
- package/Source/Shaders/Appearances/BasicMaterialAppearanceFS.js +4 -4
- package/Source/Shaders/Appearances/BasicMaterialAppearanceVS.glsl +6 -6
- package/Source/Shaders/Appearances/BasicMaterialAppearanceVS.js +6 -6
- package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.glsl +5 -5
- package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.js +5 -5
- package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.glsl +7 -7
- package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.js +7 -7
- package/Source/Shaders/Appearances/PerInstanceColorAppearanceFS.glsl +4 -4
- package/Source/Shaders/Appearances/PerInstanceColorAppearanceFS.js +4 -4
- package/Source/Shaders/Appearances/PerInstanceColorAppearanceVS.glsl +8 -8
- package/Source/Shaders/Appearances/PerInstanceColorAppearanceVS.js +8 -8
- package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.glsl +2 -2
- package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.js +2 -2
- package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.glsl +5 -5
- package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.js +5 -5
- package/Source/Shaders/Appearances/PolylineColorAppearanceVS.glsl +10 -10
- package/Source/Shaders/Appearances/PolylineColorAppearanceVS.js +10 -10
- package/Source/Shaders/Appearances/PolylineMaterialAppearanceVS.glsl +12 -12
- package/Source/Shaders/Appearances/PolylineMaterialAppearanceVS.js +12 -12
- package/Source/Shaders/Appearances/TexturedMaterialAppearanceFS.glsl +5 -5
- package/Source/Shaders/Appearances/TexturedMaterialAppearanceFS.js +5 -5
- package/Source/Shaders/Appearances/TexturedMaterialAppearanceVS.glsl +8 -8
- package/Source/Shaders/Appearances/TexturedMaterialAppearanceVS.js +8 -8
- package/Source/Shaders/BillboardCollectionFS.glsl +15 -15
- package/Source/Shaders/BillboardCollectionFS.js +15 -15
- package/Source/Shaders/BillboardCollectionVS.glsl +24 -24
- package/Source/Shaders/BillboardCollectionVS.js +24 -24
- package/Source/Shaders/BrdfLutGeneratorFS.glsl +2 -2
- package/Source/Shaders/BrdfLutGeneratorFS.js +2 -2
- package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
- package/Source/Shaders/Builtin/Constants/passVoxels.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passVoxels.js +11 -0
- package/Source/Shaders/Builtin/CzmBuiltins.js +19 -15
- package/Source/Shaders/Builtin/Functions/depthClamp.glsl +3 -3
- package/Source/Shaders/Builtin/Functions/depthClamp.js +3 -3
- package/Source/Shaders/Builtin/Functions/getWaterNoise.glsl +4 -4
- package/Source/Shaders/Builtin/Functions/getWaterNoise.js +4 -4
- package/Source/Shaders/Builtin/Functions/phong.glsl +1 -1
- package/Source/Shaders/Builtin/Functions/phong.js +1 -1
- package/Source/Shaders/Builtin/Functions/readDepth.glsl +1 -1
- package/Source/Shaders/Builtin/Functions/readDepth.js +1 -1
- package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.glsl +5 -5
- package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.js +5 -5
- package/Source/Shaders/Builtin/Functions/shadowDepthCompare.glsl +3 -3
- package/Source/Shaders/Builtin/Functions/shadowDepthCompare.js +3 -3
- package/Source/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.glsl +1 -1
- package/Source/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.js +1 -1
- package/Source/Shaders/Builtin/Functions/textureCube.glsl +17 -0
- package/Source/Shaders/Builtin/Functions/textureCube.js +18 -0
- package/Source/Shaders/Builtin/Functions/translateRelativeToEye.glsl +2 -2
- package/Source/Shaders/Builtin/Functions/translateRelativeToEye.js +2 -2
- package/Source/Shaders/Builtin/Functions/vertexLogDepth.glsl +2 -2
- package/Source/Shaders/Builtin/Functions/vertexLogDepth.js +2 -2
- package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl +55 -43
- package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.js +55 -43
- package/Source/Shaders/Builtin/Functions/writeDepthClamp.glsl +5 -8
- package/Source/Shaders/Builtin/Functions/writeDepthClamp.js +5 -8
- package/Source/Shaders/Builtin/Functions/writeLogDepth.glsl +6 -6
- package/Source/Shaders/Builtin/Functions/writeLogDepth.js +6 -6
- package/Source/Shaders/CloudCollectionFS.glsl +18 -18
- package/Source/Shaders/CloudCollectionFS.js +18 -18
- package/Source/Shaders/CloudCollectionVS.glsl +11 -11
- package/Source/Shaders/CloudCollectionVS.js +11 -11
- package/Source/Shaders/CloudNoiseFS.glsl +5 -5
- package/Source/Shaders/CloudNoiseFS.js +5 -5
- package/Source/Shaders/CloudNoiseVS.glsl +2 -2
- package/Source/Shaders/CloudNoiseVS.js +2 -2
- package/Source/Shaders/CompareAndPackTranslucentDepth.glsl +4 -4
- package/Source/Shaders/CompareAndPackTranslucentDepth.js +4 -4
- package/Source/Shaders/CompositeOITFS.glsl +6 -6
- package/Source/Shaders/CompositeOITFS.js +6 -6
- package/Source/Shaders/DepthPlaneFS.glsl +2 -2
- package/Source/Shaders/DepthPlaneFS.js +2 -2
- package/Source/Shaders/DepthPlaneVS.glsl +2 -2
- package/Source/Shaders/DepthPlaneVS.js +2 -2
- package/Source/Shaders/EllipsoidFS.glsl +5 -13
- package/Source/Shaders/EllipsoidFS.js +6 -14
- package/Source/Shaders/EllipsoidVS.glsl +2 -2
- package/Source/Shaders/EllipsoidVS.js +2 -2
- package/Source/Shaders/FXAA3_11.glsl +4 -4
- package/Source/Shaders/FXAA3_11.js +4 -4
- package/Source/Shaders/GlobeFS.glsl +17 -16
- package/Source/Shaders/GlobeFS.js +17 -16
- package/Source/Shaders/GlobeVS.glsl +17 -17
- package/Source/Shaders/GlobeVS.js +17 -17
- package/Source/Shaders/Materials/AspectRampMaterial.glsl +1 -1
- package/Source/Shaders/Materials/AspectRampMaterial.js +1 -1
- package/Source/Shaders/Materials/BumpMapMaterial.glsl +3 -3
- package/Source/Shaders/Materials/BumpMapMaterial.js +3 -3
- package/Source/Shaders/Materials/ElevationBandMaterial.glsl +3 -3
- package/Source/Shaders/Materials/ElevationBandMaterial.js +3 -3
- package/Source/Shaders/Materials/ElevationContourMaterial.glsl +2 -1
- package/Source/Shaders/Materials/ElevationContourMaterial.js +2 -1
- package/Source/Shaders/Materials/ElevationRampMaterial.glsl +1 -1
- package/Source/Shaders/Materials/ElevationRampMaterial.js +1 -1
- package/Source/Shaders/Materials/GridMaterial.glsl +3 -2
- package/Source/Shaders/Materials/GridMaterial.js +3 -2
- package/Source/Shaders/Materials/NormalMapMaterial.glsl +1 -1
- package/Source/Shaders/Materials/NormalMapMaterial.js +1 -1
- package/Source/Shaders/Materials/PolylineArrowMaterial.glsl +3 -2
- package/Source/Shaders/Materials/PolylineArrowMaterial.js +3 -2
- package/Source/Shaders/Materials/PolylineDashMaterial.glsl +1 -1
- package/Source/Shaders/Materials/PolylineDashMaterial.js +1 -1
- package/Source/Shaders/Materials/PolylineOutlineMaterial.glsl +1 -1
- package/Source/Shaders/Materials/PolylineOutlineMaterial.js +1 -1
- package/Source/Shaders/Materials/SlopeRampMaterial.glsl +1 -1
- package/Source/Shaders/Materials/SlopeRampMaterial.js +1 -1
- package/Source/Shaders/Materials/Water.glsl +1 -1
- package/Source/Shaders/Materials/Water.js +1 -1
- package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +3 -3
- package/Source/Shaders/Model/ImageBasedLightingStageFS.js +3 -3
- package/Source/Shaders/Model/MaterialStageFS.glsl +10 -10
- package/Source/Shaders/Model/MaterialStageFS.js +10 -10
- package/Source/Shaders/Model/ModelClippingPlanesStageFS.glsl +3 -3
- package/Source/Shaders/Model/ModelClippingPlanesStageFS.js +3 -3
- package/Source/Shaders/Model/ModelFS.glsl +1 -1
- package/Source/Shaders/Model/ModelFS.js +1 -1
- package/Source/Shaders/Model/PrimitiveOutlineStageFS.glsl +3 -3
- package/Source/Shaders/Model/PrimitiveOutlineStageFS.js +3 -3
- package/Source/Shaders/Model/SelectedFeatureIdStageCommon.glsl +1 -1
- package/Source/Shaders/Model/SelectedFeatureIdStageCommon.js +1 -1
- package/Source/Shaders/OctahedralProjectionAtlasFS.glsl +8 -8
- package/Source/Shaders/OctahedralProjectionAtlasFS.js +8 -8
- package/Source/Shaders/OctahedralProjectionFS.glsl +4 -4
- package/Source/Shaders/OctahedralProjectionFS.js +4 -4
- package/Source/Shaders/OctahedralProjectionVS.glsl +3 -3
- package/Source/Shaders/OctahedralProjectionVS.js +3 -3
- package/Source/Shaders/PointPrimitiveCollectionFS.glsl +6 -6
- package/Source/Shaders/PointPrimitiveCollectionFS.js +6 -6
- package/Source/Shaders/PointPrimitiveCollectionVS.glsl +17 -14
- package/Source/Shaders/PointPrimitiveCollectionVS.js +17 -14
- package/Source/Shaders/PolylineFS.glsl +3 -3
- package/Source/Shaders/PolylineFS.js +3 -3
- package/Source/Shaders/PolylineShadowVolumeFS.glsl +12 -16
- package/Source/Shaders/PolylineShadowVolumeFS.js +12 -16
- package/Source/Shaders/PolylineShadowVolumeMorphFS.glsl +8 -8
- package/Source/Shaders/PolylineShadowVolumeMorphFS.js +8 -8
- package/Source/Shaders/PolylineShadowVolumeMorphVS.glsl +20 -20
- package/Source/Shaders/PolylineShadowVolumeMorphVS.js +20 -20
- package/Source/Shaders/PolylineShadowVolumeVS.glsl +20 -20
- package/Source/Shaders/PolylineShadowVolumeVS.js +20 -20
- package/Source/Shaders/PolylineVS.glsl +17 -17
- package/Source/Shaders/PolylineVS.js +17 -17
- package/Source/Shaders/PostProcessStages/AcesTonemappingStage.glsl +4 -4
- package/Source/Shaders/PostProcessStages/AcesTonemappingStage.js +4 -4
- package/Source/Shaders/PostProcessStages/AdditiveBlend.glsl +4 -4
- package/Source/Shaders/PostProcessStages/AdditiveBlend.js +4 -4
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +4 -4
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +4 -4
- package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.glsl +4 -4
- package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.js +4 -4
- package/Source/Shaders/PostProcessStages/BlackAndWhite.glsl +4 -4
- package/Source/Shaders/PostProcessStages/BlackAndWhite.js +4 -4
- package/Source/Shaders/PostProcessStages/BloomComposite.glsl +5 -5
- package/Source/Shaders/PostProcessStages/BloomComposite.js +5 -5
- package/Source/Shaders/PostProcessStages/BrightPass.glsl +3 -3
- package/Source/Shaders/PostProcessStages/BrightPass.js +3 -3
- package/Source/Shaders/PostProcessStages/Brightness.glsl +3 -3
- package/Source/Shaders/PostProcessStages/Brightness.js +3 -3
- package/Source/Shaders/PostProcessStages/CompositeTranslucentClassification.glsl +5 -5
- package/Source/Shaders/PostProcessStages/CompositeTranslucentClassification.js +5 -5
- package/Source/Shaders/PostProcessStages/ContrastBias.glsl +3 -3
- package/Source/Shaders/PostProcessStages/ContrastBias.js +3 -3
- package/Source/Shaders/PostProcessStages/DepthOfField.glsl +2 -2
- package/Source/Shaders/PostProcessStages/DepthOfField.js +2 -2
- package/Source/Shaders/PostProcessStages/DepthView.glsl +2 -2
- package/Source/Shaders/PostProcessStages/DepthView.js +2 -2
- package/Source/Shaders/PostProcessStages/DepthViewPacked.glsl +3 -3
- package/Source/Shaders/PostProcessStages/DepthViewPacked.js +3 -3
- package/Source/Shaders/PostProcessStages/EdgeDetection.glsl +7 -7
- package/Source/Shaders/PostProcessStages/EdgeDetection.js +7 -7
- package/Source/Shaders/PostProcessStages/FXAA.glsl +3 -3
- package/Source/Shaders/PostProcessStages/FXAA.js +3 -3
- package/Source/Shaders/PostProcessStages/FilmicTonemapping.glsl +4 -4
- package/Source/Shaders/PostProcessStages/FilmicTonemapping.js +4 -4
- package/Source/Shaders/PostProcessStages/GaussianBlur1D.glsl +5 -5
- package/Source/Shaders/PostProcessStages/GaussianBlur1D.js +5 -5
- package/Source/Shaders/PostProcessStages/LensFlare.glsl +13 -13
- package/Source/Shaders/PostProcessStages/LensFlare.js +13 -13
- package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.glsl +4 -4
- package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.js +4 -4
- package/Source/Shaders/PostProcessStages/NightVision.glsl +3 -3
- package/Source/Shaders/PostProcessStages/NightVision.js +3 -3
- package/Source/Shaders/PostProcessStages/PassThrough.glsl +2 -2
- package/Source/Shaders/PostProcessStages/PassThrough.js +2 -2
- package/Source/Shaders/PostProcessStages/PassThroughDepth.glsl +2 -2
- package/Source/Shaders/PostProcessStages/PassThroughDepth.js +2 -2
- package/Source/Shaders/PostProcessStages/PointCloudEyeDomeLighting.glsl +7 -9
- package/Source/Shaders/PostProcessStages/PointCloudEyeDomeLighting.js +8 -10
- package/Source/Shaders/PostProcessStages/ReinhardTonemapping.glsl +4 -4
- package/Source/Shaders/PostProcessStages/ReinhardTonemapping.js +4 -4
- package/Source/Shaders/PostProcessStages/Silhouette.glsl +4 -4
- package/Source/Shaders/PostProcessStages/Silhouette.js +4 -4
- package/Source/Shaders/ReprojectWebMercatorFS.glsl +2 -2
- package/Source/Shaders/ReprojectWebMercatorFS.js +2 -2
- package/Source/Shaders/ReprojectWebMercatorVS.glsl +3 -3
- package/Source/Shaders/ReprojectWebMercatorVS.js +3 -3
- package/Source/Shaders/ShadowVolumeAppearanceFS.glsl +19 -23
- package/Source/Shaders/ShadowVolumeAppearanceFS.js +20 -24
- package/Source/Shaders/ShadowVolumeAppearanceVS.glsl +12 -12
- package/Source/Shaders/ShadowVolumeAppearanceVS.js +12 -12
- package/Source/Shaders/ShadowVolumeFS.glsl +2 -6
- package/Source/Shaders/ShadowVolumeFS.js +3 -7
- package/Source/Shaders/SkyAtmosphereFS.glsl +6 -6
- package/Source/Shaders/SkyAtmosphereFS.js +6 -6
- package/Source/Shaders/SkyAtmosphereVS.glsl +6 -6
- package/Source/Shaders/SkyAtmosphereVS.js +6 -6
- package/Source/Shaders/SkyBoxFS.glsl +3 -3
- package/Source/Shaders/SkyBoxFS.js +3 -3
- package/Source/Shaders/SkyBoxVS.glsl +2 -2
- package/Source/Shaders/SkyBoxVS.js +2 -2
- package/Source/Shaders/SunFS.glsl +3 -3
- package/Source/Shaders/SunFS.js +3 -3
- package/Source/Shaders/SunTextureFS.glsl +2 -2
- package/Source/Shaders/SunTextureFS.js +2 -2
- package/Source/Shaders/SunVS.glsl +2 -2
- package/Source/Shaders/SunVS.js +2 -2
- package/Source/Shaders/Vector3DTileClampedPolylinesFS.glsl +9 -13
- package/Source/Shaders/Vector3DTileClampedPolylinesFS.js +9 -13
- package/Source/Shaders/Vector3DTileClampedPolylinesVS.glsl +12 -12
- package/Source/Shaders/Vector3DTileClampedPolylinesVS.js +12 -12
- package/Source/Shaders/Vector3DTilePolylinesVS.glsl +5 -5
- package/Source/Shaders/Vector3DTilePolylinesVS.js +5 -5
- package/Source/Shaders/VectorTileVS.glsl +2 -2
- package/Source/Shaders/VectorTileVS.js +2 -2
- package/Source/Shaders/ViewportQuadFS.glsl +2 -2
- package/Source/Shaders/ViewportQuadFS.js +2 -2
- package/Source/Shaders/ViewportQuadVS.glsl +3 -3
- package/Source/Shaders/ViewportQuadVS.js +3 -3
- package/Source/Shaders/Voxels/IntersectBox.glsl +79 -0
- package/Source/Shaders/Voxels/IntersectBox.js +81 -0
- package/Source/Shaders/Voxels/IntersectClippingPlanes.glsl +70 -0
- package/Source/Shaders/Voxels/IntersectClippingPlanes.js +72 -0
- package/Source/Shaders/Voxels/IntersectCylinder.glsl +273 -0
- package/Source/Shaders/Voxels/IntersectCylinder.js +275 -0
- package/Source/Shaders/Voxels/IntersectDepth.glsl +23 -0
- package/Source/Shaders/Voxels/IntersectDepth.js +25 -0
- package/Source/Shaders/Voxels/IntersectEllipsoid.glsl +347 -0
- package/Source/Shaders/Voxels/IntersectEllipsoid.js +349 -0
- package/Source/Shaders/Voxels/Intersection.glsl +54 -0
- package/Source/Shaders/Voxels/Intersection.js +56 -0
- package/Source/Shaders/Voxels/IntersectionUtils.glsl +151 -0
- package/Source/Shaders/Voxels/IntersectionUtils.js +153 -0
- package/Source/Shaders/Voxels/Megatexture.glsl +136 -0
- package/Source/Shaders/Voxels/Megatexture.js +138 -0
- package/Source/Shaders/Voxels/Octree.glsl +221 -0
- package/Source/Shaders/Voxels/Octree.js +223 -0
- package/Source/Shaders/Voxels/VoxelFS.glsl +150 -0
- package/Source/Shaders/Voxels/VoxelFS.js +152 -0
- package/Source/Shaders/Voxels/VoxelVS.glsl +11 -0
- package/Source/Shaders/Voxels/VoxelVS.js +13 -0
- package/Source/Shaders/Voxels/convertUvToBox.glsl +16 -0
- package/Source/Shaders/Voxels/convertUvToBox.js +18 -0
- package/Source/Shaders/Voxels/convertUvToCylinder.glsl +75 -0
- package/Source/Shaders/Voxels/convertUvToCylinder.js +77 -0
- package/Source/Shaders/Voxels/convertUvToEllipsoid.glsl +130 -0
- package/Source/Shaders/Voxels/convertUvToEllipsoid.js +132 -0
- package/Source/ThirdParty/Workers/z-worker-pako.js +0 -0
- package/Source/WorkersES6/decodeDraco.js +9 -1
- package/index.d.ts +3148 -2297
- package/index.js +1118 -1085
- package/package.json +3 -4
- package/Build/Workers/PolygonPipeline-774a8aaf.js +0 -1341
- package/Source/Renderer/modernizeShader.js +0 -242
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
import binarySearch from "../Core/binarySearch.js";
|
|
2
|
+
import Cartesian3 from "../Core/Cartesian3.js";
|
|
3
|
+
import CesiumMath from "../Core/Math.js";
|
|
4
|
+
import defined from "../Core/defined.js";
|
|
5
|
+
import DeveloperError from "../Core/DeveloperError.js";
|
|
6
|
+
import KeyframeNode from "./KeyframeNode.js";
|
|
7
|
+
import Matrix3 from "../Core/Matrix3.js";
|
|
8
|
+
import OrientedBoundingBox from "../Core/OrientedBoundingBox.js";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @alias SpatialNode
|
|
12
|
+
* @constructor
|
|
13
|
+
*
|
|
14
|
+
* @param {Number} level
|
|
15
|
+
* @param {Number} x
|
|
16
|
+
* @param {Number} y
|
|
17
|
+
* @param {Number} z
|
|
18
|
+
* @param {SpatialNode} parent
|
|
19
|
+
* @param {VoxelShapeType} shape
|
|
20
|
+
* @param {Cartesian3} voxelDimensions
|
|
21
|
+
*
|
|
22
|
+
* @private
|
|
23
|
+
*/
|
|
24
|
+
function SpatialNode(level, x, y, z, parent, shape, voxelDimensions) {
|
|
25
|
+
/**
|
|
26
|
+
* @ignore
|
|
27
|
+
* @type {SpatialNode[]}
|
|
28
|
+
*/
|
|
29
|
+
this.children = undefined;
|
|
30
|
+
this.parent = parent;
|
|
31
|
+
|
|
32
|
+
this.level = level;
|
|
33
|
+
this.x = x;
|
|
34
|
+
this.y = y;
|
|
35
|
+
this.z = z;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @ignore
|
|
39
|
+
* @type {KeyframeNode[]}
|
|
40
|
+
*/
|
|
41
|
+
this.keyframeNodes = [];
|
|
42
|
+
/**
|
|
43
|
+
* @ignore
|
|
44
|
+
* @type {KeyframeNode[]}
|
|
45
|
+
*/
|
|
46
|
+
this.renderableKeyframeNodes = [];
|
|
47
|
+
|
|
48
|
+
this.renderableKeyframeNodeLerp = 0.0;
|
|
49
|
+
/**
|
|
50
|
+
* @ignore
|
|
51
|
+
* @type {KeyframeNode}
|
|
52
|
+
*/
|
|
53
|
+
this.renderableKeyframeNodePrevious = undefined;
|
|
54
|
+
/**
|
|
55
|
+
* @ignore
|
|
56
|
+
* @type {KeyframeNode}
|
|
57
|
+
*/
|
|
58
|
+
this.renderableKeyframeNodeNext = undefined;
|
|
59
|
+
|
|
60
|
+
this.orientedBoundingBox = new OrientedBoundingBox();
|
|
61
|
+
this.approximateVoxelSize = 0.0;
|
|
62
|
+
this.screenSpaceError = 0.0;
|
|
63
|
+
this.visitedFrameNumber = -1;
|
|
64
|
+
|
|
65
|
+
this.computeBoundingVolumes(shape, voxelDimensions);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* @param {SpatialNode} a
|
|
70
|
+
* @param {SpatialNode} b
|
|
71
|
+
* @returns {Boolean}
|
|
72
|
+
*/
|
|
73
|
+
SpatialNode.spatialComparator = function (a, b) {
|
|
74
|
+
// The higher of the two screen space errors is prioritized
|
|
75
|
+
return b.screenSpaceError - a.screenSpaceError;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const scratchObbHalfScale = new Cartesian3();
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* @param {VoxelShape} shape
|
|
82
|
+
* @param {Cartesian3} voxelDimensions
|
|
83
|
+
*/
|
|
84
|
+
SpatialNode.prototype.computeBoundingVolumes = function (
|
|
85
|
+
shape,
|
|
86
|
+
voxelDimensions
|
|
87
|
+
) {
|
|
88
|
+
this.orientedBoundingBox = shape.computeOrientedBoundingBoxForTile(
|
|
89
|
+
this.level,
|
|
90
|
+
this.x,
|
|
91
|
+
this.y,
|
|
92
|
+
this.z,
|
|
93
|
+
this.orientedBoundingBox
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
const halfScale = Matrix3.getScale(
|
|
97
|
+
this.orientedBoundingBox.halfAxes,
|
|
98
|
+
scratchObbHalfScale
|
|
99
|
+
);
|
|
100
|
+
const maximumScale = 2.0 * Cartesian3.maximumComponent(halfScale);
|
|
101
|
+
this.approximateVoxelSize =
|
|
102
|
+
maximumScale / Cartesian3.minimumComponent(voxelDimensions);
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* @param {FrameState} frameState
|
|
107
|
+
* @param {Number} visibilityPlaneMask
|
|
108
|
+
* @returns {Number} A plane mask as described in {@link CullingVolume#computeVisibilityWithPlaneMask}.
|
|
109
|
+
*/
|
|
110
|
+
SpatialNode.prototype.visibility = function (frameState, visibilityPlaneMask) {
|
|
111
|
+
const obb = this.orientedBoundingBox;
|
|
112
|
+
const cullingVolume = frameState.cullingVolume;
|
|
113
|
+
return cullingVolume.computeVisibilityWithPlaneMask(obb, visibilityPlaneMask);
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* @param {Cartesian3} cameraPosition
|
|
118
|
+
* @param {Number} screenSpaceErrorMultiplier
|
|
119
|
+
*/
|
|
120
|
+
SpatialNode.prototype.computeScreenSpaceError = function (
|
|
121
|
+
cameraPosition,
|
|
122
|
+
screenSpaceErrorMultiplier
|
|
123
|
+
) {
|
|
124
|
+
const obb = this.orientedBoundingBox;
|
|
125
|
+
|
|
126
|
+
let distance = Math.sqrt(obb.distanceSquaredTo(cameraPosition));
|
|
127
|
+
// Avoid divide-by-zero when viewer is inside the tile.
|
|
128
|
+
distance = Math.max(distance, CesiumMath.EPSILON7);
|
|
129
|
+
const approximateVoxelSize = this.approximateVoxelSize;
|
|
130
|
+
const error = screenSpaceErrorMultiplier * (approximateVoxelSize / distance);
|
|
131
|
+
this.screenSpaceError = error;
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
// This object imitates a KeyframeNode. Only used for binary search function.
|
|
135
|
+
const scratchBinarySearchKeyframeNode = {
|
|
136
|
+
keyframe: 0,
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Find the index of a given key frame position within an array of KeyframeNodes,
|
|
141
|
+
* or the complement (~) of the index where it would be in the sorted array.
|
|
142
|
+
* @param {Number} keyframe
|
|
143
|
+
* @param {KeyframeNode[]} keyframeNodes
|
|
144
|
+
* @returns {Number}
|
|
145
|
+
* @private
|
|
146
|
+
*/
|
|
147
|
+
function findKeyframeIndex(keyframe, keyframeNodes) {
|
|
148
|
+
scratchBinarySearchKeyframeNode.keyframe = keyframe;
|
|
149
|
+
return binarySearch(
|
|
150
|
+
keyframeNodes,
|
|
151
|
+
scratchBinarySearchKeyframeNode,
|
|
152
|
+
KeyframeNode.searchComparator
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Computes the most suitable keyframes for rendering, balancing between temporal and visual quality.
|
|
158
|
+
*
|
|
159
|
+
* @param {Number} keyframeLocation
|
|
160
|
+
*/
|
|
161
|
+
SpatialNode.prototype.computeSurroundingRenderableKeyframeNodes = function (
|
|
162
|
+
keyframeLocation
|
|
163
|
+
) {
|
|
164
|
+
let spatialNode = this;
|
|
165
|
+
const startLevel = spatialNode.level;
|
|
166
|
+
|
|
167
|
+
const targetKeyframePrev = Math.floor(keyframeLocation);
|
|
168
|
+
const targetKeyframeNext = Math.ceil(keyframeLocation);
|
|
169
|
+
|
|
170
|
+
let bestKeyframeNodePrev;
|
|
171
|
+
let bestKeyframeNodeNext;
|
|
172
|
+
let minimumDistancePrev = +Number.MAX_VALUE;
|
|
173
|
+
let minimumDistanceNext = +Number.MAX_VALUE;
|
|
174
|
+
|
|
175
|
+
while (defined(spatialNode)) {
|
|
176
|
+
const renderableKeyframeNodes = spatialNode.renderableKeyframeNodes;
|
|
177
|
+
|
|
178
|
+
if (renderableKeyframeNodes.length >= 1) {
|
|
179
|
+
let keyframeNodeIndexPrev = findKeyframeIndex(
|
|
180
|
+
targetKeyframePrev,
|
|
181
|
+
renderableKeyframeNodes
|
|
182
|
+
);
|
|
183
|
+
if (keyframeNodeIndexPrev < 0) {
|
|
184
|
+
keyframeNodeIndexPrev = CesiumMath.clamp(
|
|
185
|
+
~keyframeNodeIndexPrev - 1,
|
|
186
|
+
0,
|
|
187
|
+
renderableKeyframeNodes.length - 1
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
const keyframeNodePrev = renderableKeyframeNodes[keyframeNodeIndexPrev];
|
|
191
|
+
const keyframePrev = keyframeNodePrev.keyframe;
|
|
192
|
+
|
|
193
|
+
let keyframeNodeNext;
|
|
194
|
+
if (
|
|
195
|
+
targetKeyframeNext === targetKeyframePrev ||
|
|
196
|
+
targetKeyframePrev < keyframePrev
|
|
197
|
+
) {
|
|
198
|
+
keyframeNodeNext = keyframeNodePrev;
|
|
199
|
+
} else {
|
|
200
|
+
const keyframeNodeIndexNext = Math.min(
|
|
201
|
+
keyframeNodeIndexPrev + 1,
|
|
202
|
+
renderableKeyframeNodes.length - 1
|
|
203
|
+
);
|
|
204
|
+
keyframeNodeNext = renderableKeyframeNodes[keyframeNodeIndexNext];
|
|
205
|
+
}
|
|
206
|
+
const keyframeNext = keyframeNodeNext.keyframe;
|
|
207
|
+
|
|
208
|
+
const keyframeDistancePrev = targetKeyframePrev - keyframePrev;
|
|
209
|
+
const keyframeDistanceNext = keyframeNext - targetKeyframeNext;
|
|
210
|
+
const levelDistance = startLevel - spatialNode.level;
|
|
211
|
+
|
|
212
|
+
// Balance temporal and visual quality
|
|
213
|
+
const levelWeight = Math.exp(levelDistance * 4.0);
|
|
214
|
+
const normalKeyframeWeight = 1.0;
|
|
215
|
+
const reverseKeyframeWeight = 200.0; // Keyframes on the opposite of the desired direction are deprioritized.
|
|
216
|
+
const distancePrev =
|
|
217
|
+
levelDistance * levelWeight +
|
|
218
|
+
(keyframeDistancePrev >= 0
|
|
219
|
+
? keyframeDistancePrev * normalKeyframeWeight
|
|
220
|
+
: -keyframeDistancePrev * reverseKeyframeWeight);
|
|
221
|
+
const distanceNext =
|
|
222
|
+
levelDistance * levelWeight +
|
|
223
|
+
(keyframeDistanceNext >= 0
|
|
224
|
+
? keyframeDistanceNext * normalKeyframeWeight
|
|
225
|
+
: -keyframeDistanceNext * reverseKeyframeWeight);
|
|
226
|
+
|
|
227
|
+
if (distancePrev < minimumDistancePrev) {
|
|
228
|
+
minimumDistancePrev = distancePrev;
|
|
229
|
+
bestKeyframeNodePrev = keyframeNodePrev;
|
|
230
|
+
}
|
|
231
|
+
if (distanceNext < minimumDistanceNext) {
|
|
232
|
+
minimumDistanceNext = distanceNext;
|
|
233
|
+
bestKeyframeNodeNext = keyframeNodeNext;
|
|
234
|
+
}
|
|
235
|
+
if (keyframeDistancePrev === 0 && keyframeDistanceNext === 0) {
|
|
236
|
+
// Nothing higher up will be better, so break early.
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
spatialNode = spatialNode.parent;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
this.renderableKeyframeNodePrevious = bestKeyframeNodePrev;
|
|
245
|
+
this.renderableKeyframeNodeNext = bestKeyframeNodeNext;
|
|
246
|
+
if (defined(bestKeyframeNodePrev) && defined(bestKeyframeNodeNext)) {
|
|
247
|
+
const bestKeyframePrev = bestKeyframeNodePrev.keyframe;
|
|
248
|
+
const bestKeyframeNext = bestKeyframeNodeNext.keyframe;
|
|
249
|
+
this.renderableKeyframeNodeLerp =
|
|
250
|
+
bestKeyframePrev === bestKeyframeNext
|
|
251
|
+
? 0.0
|
|
252
|
+
: CesiumMath.clamp(
|
|
253
|
+
(keyframeLocation - bestKeyframePrev) /
|
|
254
|
+
(bestKeyframeNext - bestKeyframePrev),
|
|
255
|
+
0.0,
|
|
256
|
+
1.0
|
|
257
|
+
);
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* @param {Number} frameNumber
|
|
263
|
+
* @returns {Boolean}
|
|
264
|
+
*/
|
|
265
|
+
SpatialNode.prototype.isVisited = function (frameNumber) {
|
|
266
|
+
return this.visitedFrameNumber === frameNumber;
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* @param {Number} keyframe
|
|
271
|
+
*/
|
|
272
|
+
SpatialNode.prototype.createKeyframeNode = function (keyframe) {
|
|
273
|
+
let index = findKeyframeIndex(keyframe, this.keyframeNodes);
|
|
274
|
+
if (index < 0) {
|
|
275
|
+
index = ~index; // convert to insertion index
|
|
276
|
+
const keyframeNode = new KeyframeNode(this, keyframe);
|
|
277
|
+
this.keyframeNodes.splice(index, 0, keyframeNode);
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* @param {KeyframeNode} keyframeNode
|
|
283
|
+
* @param {Megatexture[]} megatextures
|
|
284
|
+
*/
|
|
285
|
+
SpatialNode.prototype.destroyKeyframeNode = function (
|
|
286
|
+
keyframeNode,
|
|
287
|
+
megatextures
|
|
288
|
+
) {
|
|
289
|
+
const keyframe = keyframeNode.keyframe;
|
|
290
|
+
const keyframeIndex = findKeyframeIndex(keyframe, this.keyframeNodes);
|
|
291
|
+
if (keyframeIndex < 0) {
|
|
292
|
+
throw new DeveloperError("Keyframe node does not exist.");
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
this.keyframeNodes.splice(keyframeIndex, 1);
|
|
296
|
+
|
|
297
|
+
if (keyframeNode.megatextureIndex !== -1) {
|
|
298
|
+
for (let i = 0; i < megatextures.length; i++) {
|
|
299
|
+
megatextures[i].remove(keyframeNode.megatextureIndex);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
const renderableKeyframeNodeIndex = findKeyframeIndex(
|
|
303
|
+
keyframe,
|
|
304
|
+
this.renderableKeyframeNodes
|
|
305
|
+
);
|
|
306
|
+
if (renderableKeyframeNodeIndex < 0) {
|
|
307
|
+
throw new DeveloperError("Renderable keyframe node does not exist.");
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
this.renderableKeyframeNodes.splice(renderableKeyframeNodeIndex, 1);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
keyframeNode.spatialNode = undefined;
|
|
314
|
+
keyframeNode.state = KeyframeNode.LoadState.UNLOADED;
|
|
315
|
+
keyframeNode.metadatas = {};
|
|
316
|
+
keyframeNode.megatextureIndex = -1;
|
|
317
|
+
keyframeNode.priority = -Number.MAX_VALUE;
|
|
318
|
+
keyframeNode.highPriorityFrameNumber = -1;
|
|
319
|
+
};
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* @param {KeyframeNode} keyframeNode
|
|
323
|
+
* @param {Megatexture[]} megatextures
|
|
324
|
+
*/
|
|
325
|
+
SpatialNode.prototype.addKeyframeNodeToMegatextures = function (
|
|
326
|
+
keyframeNode,
|
|
327
|
+
megatextures
|
|
328
|
+
) {
|
|
329
|
+
if (
|
|
330
|
+
keyframeNode.state !== KeyframeNode.LoadState.RECEIVED ||
|
|
331
|
+
keyframeNode.megatextureIndex !== -1 ||
|
|
332
|
+
keyframeNode.metadatas.length !== megatextures.length
|
|
333
|
+
) {
|
|
334
|
+
throw new DeveloperError("Keyframe node cannot be added to megatexture");
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
for (let i = 0; i < megatextures.length; i++) {
|
|
338
|
+
const megatexture = megatextures[i];
|
|
339
|
+
keyframeNode.megatextureIndex = megatexture.add(keyframeNode.metadatas[i]);
|
|
340
|
+
keyframeNode.metadatas[i] = undefined; // data is in megatexture so no need to hold onto it
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
keyframeNode.state = KeyframeNode.LoadState.LOADED;
|
|
344
|
+
|
|
345
|
+
const renderableKeyframeNodes = this.renderableKeyframeNodes;
|
|
346
|
+
let renderableKeyframeNodeIndex = findKeyframeIndex(
|
|
347
|
+
keyframeNode.keyframe,
|
|
348
|
+
renderableKeyframeNodes
|
|
349
|
+
);
|
|
350
|
+
if (renderableKeyframeNodeIndex >= 0) {
|
|
351
|
+
throw new DeveloperError("Keyframe already renderable");
|
|
352
|
+
}
|
|
353
|
+
renderableKeyframeNodeIndex = ~renderableKeyframeNodeIndex;
|
|
354
|
+
renderableKeyframeNodes.splice(renderableKeyframeNodeIndex, 0, keyframeNode);
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* @param {Number} frameNumber
|
|
359
|
+
* @returns Boolean
|
|
360
|
+
*/
|
|
361
|
+
SpatialNode.prototype.isRenderable = function (frameNumber) {
|
|
362
|
+
const previousNode = this.renderableKeyframeNodePrevious;
|
|
363
|
+
const nextNode = this.renderableKeyframeNodeNext;
|
|
364
|
+
const level = this.level;
|
|
365
|
+
|
|
366
|
+
return (
|
|
367
|
+
defined(previousNode) &&
|
|
368
|
+
defined(nextNode) &&
|
|
369
|
+
(previousNode.spatialNode.level === level ||
|
|
370
|
+
nextNode.spatialNode.level === level) &&
|
|
371
|
+
this.visitedFrameNumber === frameNumber
|
|
372
|
+
);
|
|
373
|
+
};
|
|
374
|
+
|
|
375
|
+
export default SpatialNode;
|
|
@@ -76,7 +76,7 @@ Object.defineProperties(StructuralMetadata.prototype, {
|
|
|
76
76
|
},
|
|
77
77
|
|
|
78
78
|
/**
|
|
79
|
-
*
|
|
79
|
+
* Extra user-defined properties.
|
|
80
80
|
*
|
|
81
81
|
* @memberof StructuralMetadata.prototype
|
|
82
82
|
* @type {*}
|
|
@@ -90,7 +90,7 @@ Object.defineProperties(StructuralMetadata.prototype, {
|
|
|
90
90
|
},
|
|
91
91
|
|
|
92
92
|
/**
|
|
93
|
-
*
|
|
93
|
+
* An object containing extensions.
|
|
94
94
|
*
|
|
95
95
|
* @memberof StructuralMetadata.prototype
|
|
96
96
|
* @type {Object}
|
|
@@ -498,17 +498,19 @@ TextureAtlas.prototype.addSubRegion = function (id, subRegion) {
|
|
|
498
498
|
}
|
|
499
499
|
const atlasWidth = that._texture.width;
|
|
500
500
|
const atlasHeight = that._texture.height;
|
|
501
|
-
const numImages = that.numberOfImages;
|
|
502
501
|
|
|
503
502
|
const baseRegion = that._textureCoordinates[index];
|
|
504
503
|
const x = baseRegion.x + subRegion.x / atlasWidth;
|
|
505
504
|
const y = baseRegion.y + subRegion.y / atlasHeight;
|
|
506
505
|
const w = subRegion.width / atlasWidth;
|
|
507
506
|
const h = subRegion.height / atlasHeight;
|
|
508
|
-
|
|
507
|
+
const newIndex =
|
|
508
|
+
that._textureCoordinates.push(new BoundingRectangle(x, y, w, h)) - 1;
|
|
509
|
+
that._indexHash[id] = newIndex;
|
|
510
|
+
|
|
509
511
|
that._guid = createGuid();
|
|
510
512
|
|
|
511
|
-
return
|
|
513
|
+
return newIndex;
|
|
512
514
|
});
|
|
513
515
|
};
|
|
514
516
|
|
|
@@ -50,7 +50,7 @@ Object.defineProperties(TileMetadata.prototype, {
|
|
|
50
50
|
},
|
|
51
51
|
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
53
|
+
* Extra user-defined properties.
|
|
54
54
|
*
|
|
55
55
|
* @memberof TileMetadata.prototype
|
|
56
56
|
* @type {Object}
|
|
@@ -64,7 +64,7 @@ Object.defineProperties(TileMetadata.prototype, {
|
|
|
64
64
|
},
|
|
65
65
|
|
|
66
66
|
/**
|
|
67
|
-
*
|
|
67
|
+
* An object containing extensions.
|
|
68
68
|
*
|
|
69
69
|
* @memberof TileMetadata.prototype
|
|
70
70
|
* @type {Object}
|
|
@@ -52,7 +52,7 @@ Object.defineProperties(TilesetMetadata.prototype, {
|
|
|
52
52
|
},
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
55
|
+
* Extra user-defined properties.
|
|
56
56
|
*
|
|
57
57
|
* @memberof TilesetMetadata.prototype
|
|
58
58
|
* @type {*}
|
|
@@ -66,7 +66,7 @@ Object.defineProperties(TilesetMetadata.prototype, {
|
|
|
66
66
|
},
|
|
67
67
|
|
|
68
68
|
/**
|
|
69
|
-
*
|
|
69
|
+
* An object containing extensions.
|
|
70
70
|
*
|
|
71
71
|
* @memberof TilesetMetadata.prototype
|
|
72
72
|
* @type {Object}
|
|
@@ -283,7 +283,7 @@ function createShaders(primitive, context) {
|
|
|
283
283
|
`${fragmentShaderSource}void main() \n` +
|
|
284
284
|
`{ \n` +
|
|
285
285
|
` czm_non_pick_main(); \n` +
|
|
286
|
-
`
|
|
286
|
+
` out_FragColor = ${pickId}; \n` +
|
|
287
287
|
`} \n`;
|
|
288
288
|
primitive._spPick = ShaderProgram.fromCache({
|
|
289
289
|
context: context,
|
|
@@ -343,7 +343,7 @@ function createShaders(primitive, context) {
|
|
|
343
343
|
`void main() \n` +
|
|
344
344
|
`{ \n` +
|
|
345
345
|
` czm_non_pick_main(); \n` +
|
|
346
|
-
`
|
|
346
|
+
` out_FragColor = ${pickId}; \n` +
|
|
347
347
|
`} \n`;
|
|
348
348
|
|
|
349
349
|
const pickVS = new ShaderSource({
|