@cesium/engine 2.0.0 → 2.2.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/{ArcType-ce2e50ab.js → ArcType-2d9abbbc.js} +4 -4
- package/Build/Workers/{AttributeCompression-b646d393.js → AttributeCompression-8a5a065e.js} +24 -24
- package/Build/Workers/{AxisAlignedBoundingBox-47525601.js → AxisAlignedBoundingBox-379015ef.js} +3 -3
- package/Build/Workers/{BoundingRectangle-93b263ac.js → BoundingRectangle-57f2b24f.js} +18 -18
- package/Build/Workers/{BoxGeometry-8c4b4125.js → BoxGeometry-ecabfc78.js} +9 -9
- package/Build/Workers/{Check-666ab1a0.js → Check-6ede7e26.js} +22 -22
- package/Build/Workers/{Color-52c60ed7.js → Color-14d1a36d.js} +59 -59
- package/Build/Workers/{ComponentDatatype-f7b11d02.js → ComponentDatatype-cf1fa08e.js} +16 -16
- package/Build/Workers/{CoplanarPolygonGeometryLibrary-33c4c1f8.js → CoplanarPolygonGeometryLibrary-048c3c14.js} +1 -1
- package/Build/Workers/{CorridorGeometryLibrary-5039cd8e.js → CorridorGeometryLibrary-520c8619.js} +1 -1
- package/Build/Workers/{CylinderGeometry-3ac44974.js → CylinderGeometry-119068b8.js} +12 -12
- package/Build/Workers/{CylinderGeometryLibrary-372c07d8.js → CylinderGeometryLibrary-135b0858.js} +1 -1
- package/Build/Workers/{EllipseGeometry-a9c9b3be.js → EllipseGeometry-2dfc3523.js} +20 -20
- package/Build/Workers/{EllipseGeometryLibrary-855d4681.js → EllipseGeometryLibrary-0a1e0170.js} +1 -1
- package/Build/Workers/{EllipseOutlineGeometry-017a5929.js → EllipseOutlineGeometry-c5251669.js} +15 -15
- package/Build/Workers/{EllipsoidGeodesic-98c62a56.js → EllipsoidGeodesic-dcff5cbd.js} +6 -6
- package/Build/Workers/{EllipsoidGeometry-826e7bce.js → EllipsoidGeometry-d10a5221.js} +14 -14
- package/Build/Workers/{EllipsoidOutlineGeometry-784dcdb5.js → EllipsoidOutlineGeometry-7039a0ae.js} +15 -15
- package/Build/Workers/{EllipsoidRhumbLine-19756602.js → EllipsoidRhumbLine-b672d507.js} +9 -9
- package/Build/Workers/{EllipsoidTangentPlane-ed9443a1.js → EllipsoidTangentPlane-857186be.js} +1 -1
- package/Build/Workers/{EncodedCartesian3-81f70735.js → EncodedCartesian3-e8bbca36.js} +6 -6
- package/Build/Workers/{FrustumGeometry-9f1ee4d8.js → FrustumGeometry-400fa1b7.js} +109 -109
- package/Build/Workers/{GeometryAttribute-334718f8.js → GeometryAttribute-7a2de5c6.js} +20 -20
- package/Build/Workers/{GeometryAttributes-f06a2792.js → GeometryAttributes-ad136444.js} +1 -1
- package/Build/Workers/{GeometryInstance-451dc1cd.js → GeometryInstance-3fb607b7.js} +6 -6
- package/Build/Workers/{GeometryPipeline-8fb0db69.js → GeometryPipeline-916636fa.js} +22 -22
- package/Build/Workers/{IndexDatatype-a55ceaa1.js → IndexDatatype-b8f3e09d.js} +13 -13
- package/Build/Workers/{IntersectionTests-27d49265.js → IntersectionTests-b4d02d4d.js} +37 -37
- package/Build/Workers/{Math-2dbd6b93.js → Math-dad82b4d.js} +137 -137
- package/Build/Workers/{Matrix2-13178034.js → Matrix2-1e403d0e.js} +256 -256
- package/Build/Workers/{Matrix3-315394f6.js → Matrix3-fa806b97.js} +150 -150
- package/Build/Workers/{OrientedBoundingBox-79ee7cbb.js → OrientedBoundingBox-96fe1752.js} +19 -17
- package/Build/Workers/{Plane-900aa728.js → Plane-c27e1ac6.js} +5 -5
- package/Build/Workers/{PolygonGeometryLibrary-6b5a29e9.js → PolygonGeometryLibrary-931f1ec6.js} +6 -6
- package/Build/Workers/{PolygonPipeline-21668b3f.js → PolygonPipeline-32fc92cc.js} +14 -14
- package/Build/Workers/{PolylinePipeline-5e2e1b21.js → PolylinePipeline-6d5c63e5.js} +16 -16
- package/Build/Workers/{PolylineVolumeGeometryLibrary-97f0b94e.js → PolylineVolumeGeometryLibrary-f068c1fb.js} +7 -7
- package/Build/Workers/{PrimitivePipeline-5640850a.js → PrimitivePipeline-879f996a.js} +6 -6
- package/Build/Workers/{RectangleGeometryLibrary-d5457f7b.js → RectangleGeometryLibrary-2d6f36f3.js} +1 -1
- package/Build/Workers/{RuntimeError-06c93819.js → RuntimeError-ef395448.js} +5 -5
- package/Build/Workers/{TerrainEncoding-bfdf2021.js → TerrainEncoding-82882059.js} +30 -30
- package/Build/Workers/{Transforms-a05e5e6e.js → Transforms-9052372a.js} +531 -530
- package/Build/Workers/{VertexFormat-6b480673.js → VertexFormat-030f11ff.js} +14 -14
- package/Build/Workers/{WallGeometryLibrary-6db0ebb6.js → WallGeometryLibrary-db7a64fb.js} +1 -1
- package/Build/Workers/{WebGLConstants-a8cc3e8c.js → WebGLConstants-0b1ce7ba.js} +1 -1
- package/Build/Workers/{WebMercatorProjection-13a90d41.js → WebMercatorProjection-76a3fcc0.js} +6 -6
- package/Build/Workers/{arrayRemoveDuplicates-c2038105.js → arrayRemoveDuplicates-fac118a8.js} +5 -5
- package/Build/Workers/cesiumWorkerBootstrapper.js +5 -5
- package/Build/Workers/{combine-ca22a614.js → combine-d9581036.js} +5 -5
- package/Build/Workers/combineGeometry.js +1 -1
- package/Build/Workers/createBoxGeometry.js +1 -1
- package/Build/Workers/createBoxOutlineGeometry.js +9 -9
- package/Build/Workers/createCircleGeometry.js +13 -13
- package/Build/Workers/createCircleOutlineGeometry.js +13 -13
- package/Build/Workers/createCoplanarPolygonGeometry.js +11 -11
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +9 -9
- package/Build/Workers/createCorridorGeometry.js +14 -14
- package/Build/Workers/createCorridorOutlineGeometry.js +12 -12
- package/Build/Workers/createCylinderGeometry.js +1 -1
- package/Build/Workers/createCylinderOutlineGeometry.js +13 -13
- 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 +8 -8
- package/Build/Workers/createGeometry.js +1 -1
- package/Build/Workers/createGroundPolylineGeometry.js +33 -33
- package/Build/Workers/createPlaneGeometry.js +8 -8
- package/Build/Workers/createPlaneOutlineGeometry.js +6 -6
- package/Build/Workers/createPolygonGeometry.js +25 -25
- package/Build/Workers/createPolygonOutlineGeometry.js +17 -17
- package/Build/Workers/createPolylineGeometry.js +11 -11
- package/Build/Workers/createPolylineVolumeGeometry.js +9 -9
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +9 -9
- package/Build/Workers/createRectangleGeometry.js +16 -16
- package/Build/Workers/createRectangleOutlineGeometry.js +12 -12
- package/Build/Workers/createSimplePolylineGeometry.js +10 -10
- package/Build/Workers/createSphereGeometry.js +11 -11
- package/Build/Workers/createSphereOutlineGeometry.js +12 -12
- package/Build/Workers/createTaskProcessorWorker.js +2 -2
- package/Build/Workers/createVectorTileClampedPolylines.js +1 -1
- package/Build/Workers/createVectorTileGeometries.js +8 -8
- 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 +23 -21
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +33 -38
- package/Build/Workers/createWallGeometry.js +14 -14
- package/Build/Workers/createWallOutlineGeometry.js +14 -14
- package/Build/Workers/decodeDraco.js +1 -1
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +15 -15
- package/Build/Workers/decodeI3S.js +1 -1
- package/Build/Workers/{defaultValue-0a909f67.js → defaultValue-fe22d8c0.js} +2 -2
- package/Build/Workers/package.js +1 -1
- package/Build/Workers/transcodeKTX2.js +26 -26
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +24 -24
- package/Source/Core/ApproximateTerrainHeights.js +3 -3
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +308 -208
- package/Source/Core/ArcType.js +4 -4
- package/Source/Core/ArticulationStageType.js +1 -1
- package/Source/Core/AssociativeArray.js +7 -7
- package/Source/Core/AttributeCompression.js +12 -12
- package/Source/Core/AxisAlignedBoundingBox.js +2 -2
- package/Source/Core/BingMapsGeocoderService.js +6 -6
- package/Source/Core/BoundingRectangle.js +17 -17
- package/Source/Core/BoundingSphere.js +25 -25
- package/Source/Core/BoxGeometry.js +8 -8
- package/Source/Core/BoxOutlineGeometry.js +8 -8
- package/Source/Core/Cartesian2.js +38 -38
- package/Source/Core/Cartesian3.js +50 -50
- package/Source/Core/Cartesian4.js +44 -44
- package/Source/Core/Cartographic.js +19 -19
- package/Source/Core/CartographicGeocoderService.js +1 -1
- package/Source/Core/CatmullRomSpline.js +10 -10
- package/Source/Core/CesiumTerrainProvider.js +598 -461
- package/Source/Core/Check.js +17 -17
- package/Source/Core/CircleGeometry.js +12 -12
- package/Source/Core/CircleOutlineGeometry.js +12 -12
- package/Source/Core/Clock.js +7 -7
- package/Source/Core/ClockRange.js +4 -4
- package/Source/Core/ClockStep.js +4 -4
- package/Source/Core/Color.js +58 -58
- package/Source/Core/ColorGeometryInstanceAttribute.js +7 -7
- package/Source/Core/ComponentDatatype.js +15 -15
- package/Source/Core/CompressedTextureBuffer.js +7 -7
- package/Source/Core/ConstantSpline.js +9 -9
- package/Source/Core/CoplanarPolygonGeometry.js +10 -10
- package/Source/Core/CoplanarPolygonOutlineGeometry.js +8 -8
- package/Source/Core/CornerType.js +4 -4
- package/Source/Core/CorridorGeometry.js +13 -13
- package/Source/Core/CorridorOutlineGeometry.js +11 -11
- package/Source/Core/Credit.js +7 -7
- package/Source/Core/CubicRealPolynomial.js +10 -10
- package/Source/Core/CullingVolume.js +7 -7
- package/Source/Core/CustomHeightmapTerrainProvider.js +40 -28
- package/Source/Core/CylinderGeometry.js +11 -11
- package/Source/Core/CylinderOutlineGeometry.js +12 -12
- package/Source/Core/DefaultProxy.js +3 -3
- package/Source/Core/DeveloperError.js +4 -4
- package/Source/Core/DistanceDisplayCondition.js +12 -12
- package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +5 -5
- package/Source/Core/DoubleEndedPriorityQueue.js +5 -5
- package/Source/Core/EarthOrientationParameters.js +6 -6
- package/Source/Core/EarthOrientationParametersSample.js +10 -10
- package/Source/Core/EasingFunction.js +2 -2
- package/Source/Core/EllipseGeometry.js +19 -19
- package/Source/Core/EllipseOutlineGeometry.js +14 -14
- package/Source/Core/Ellipsoid.js +20 -20
- package/Source/Core/EllipsoidGeodesic.js +5 -5
- package/Source/Core/EllipsoidGeometry.js +13 -13
- package/Source/Core/EllipsoidOutlineGeometry.js +14 -14
- package/Source/Core/EllipsoidRhumbLine.js +8 -8
- package/Source/Core/EllipsoidTerrainProvider.js +35 -28
- package/Source/Core/EllipsoidalOccluder.js +9 -9
- package/Source/Core/EncodedCartesian3.js +5 -5
- package/Source/Core/Event.js +4 -4
- package/Source/Core/EventHelper.js +1 -1
- package/Source/Core/ExtrapolationType.js +4 -4
- package/Source/Core/FeatureDetection.js +9 -9
- package/Source/Core/FrustumGeometry.js +8 -8
- package/Source/Core/FrustumOutlineGeometry.js +7 -7
- package/Source/Core/Fullscreen.js +8 -8
- package/Source/Core/GeocodeType.js +3 -3
- package/Source/Core/GeocoderService.js +3 -3
- package/Source/Core/GeographicTilingScheme.js +16 -16
- package/Source/Core/Geometry.js +5 -5
- package/Source/Core/GeometryAttribute.js +6 -6
- package/Source/Core/GeometryInstance.js +5 -5
- package/Source/Core/GeometryInstanceAttribute.js +7 -7
- package/Source/Core/GeometryPipeline.js +11 -11
- package/Source/Core/GoogleEarthEnterpriseMetadata.js +107 -55
- package/Source/Core/GoogleEarthEnterpriseTerrainData.js +29 -29
- package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +137 -100
- package/Source/Core/GoogleEarthEnterpriseTileInformation.js +14 -14
- package/Source/Core/GregorianDate.js +16 -16
- package/Source/Core/GroundPolylineGeometry.js +13 -13
- package/Source/Core/HeadingPitchRange.js +6 -6
- package/Source/Core/HeadingPitchRoll.js +18 -18
- package/Source/Core/Heap.js +7 -7
- package/Source/Core/HeightmapEncoding.js +3 -3
- package/Source/Core/HeightmapTerrainData.js +44 -44
- package/Source/Core/HeightmapTessellator.js +16 -16
- package/Source/Core/HermitePolynomialApproximation.js +17 -17
- package/Source/Core/HermiteSpline.js +17 -17
- package/Source/Core/HilbertOrder.js +7 -7
- package/Source/Core/Iau2006XysData.js +13 -13
- package/Source/Core/Iau2006XysSample.js +6 -6
- package/Source/Core/IauOrientationParameters.js +4 -4
- package/Source/Core/IndexDatatype.js +12 -12
- package/Source/Core/InterpolationAlgorithm.js +17 -17
- package/Source/Core/InterpolationType.js +1 -1
- package/Source/Core/Intersect.js +4 -4
- package/Source/Core/IntersectionTests.js +5 -5
- package/Source/Core/Intersections2D.js +23 -23
- package/Source/Core/Interval.js +4 -4
- package/Source/Core/Ion.js +3 -3
- package/Source/Core/IonGeocoderService.js +4 -4
- package/Source/Core/IonResource.js +20 -9
- package/Source/Core/JulianDate.js +27 -27
- package/Source/Core/KeyboardEventModifier.js +4 -4
- package/Source/Core/LagrangePolynomialApproximation.js +8 -8
- package/Source/Core/LeapSecond.js +2 -2
- package/Source/Core/LinearApproximation.js +8 -8
- package/Source/Core/LinearSpline.js +13 -13
- package/Source/Core/ManagedArray.js +8 -8
- package/Source/Core/Math.js +136 -136
- package/Source/Core/Matrix2.js +44 -44
- package/Source/Core/Matrix3.js +59 -59
- package/Source/Core/Matrix4.js +91 -91
- package/Source/Core/MorphWeightSpline.js +14 -14
- package/Source/Core/MortonOrder.js +21 -21
- package/Source/Core/NearFarScalar.js +16 -16
- package/Source/Core/Occluder.js +5 -5
- package/Source/Core/OffsetGeometryInstanceAttribute.js +5 -5
- package/Source/Core/OpenCageGeocoderService.js +18 -18
- package/Source/Core/OrientedBoundingBox.js +18 -16
- package/Source/Core/OrthographicFrustum.js +23 -23
- package/Source/Core/OrthographicOffCenterFrustum.js +21 -21
- package/Source/Core/Packable.js +7 -7
- package/Source/Core/PackableForInterpolation.js +11 -11
- package/Source/Core/PeliasGeocoderService.js +2 -2
- package/Source/Core/PerspectiveFrustum.js +28 -28
- package/Source/Core/PerspectiveOffCenterFrustum.js +21 -21
- package/Source/Core/PinBuilder.js +9 -9
- package/Source/Core/PixelFormat.js +23 -23
- package/Source/Core/Plane.js +4 -4
- package/Source/Core/PlaneGeometry.js +7 -7
- package/Source/Core/PlaneOutlineGeometry.js +5 -5
- package/Source/Core/PolygonGeometry.js +24 -24
- package/Source/Core/PolygonGeometryLibrary.js +4 -4
- package/Source/Core/PolygonOutlineGeometry.js +16 -16
- package/Source/Core/PolygonPipeline.js +10 -10
- package/Source/Core/PolylineGeometry.js +10 -10
- package/Source/Core/PolylinePipeline.js +15 -15
- package/Source/Core/PolylineVolumeGeometry.js +8 -8
- package/Source/Core/PolylineVolumeOutlineGeometry.js +8 -8
- package/Source/Core/PrimitiveType.js +8 -8
- package/Source/Core/Proxy.js +2 -2
- package/Source/Core/QuadraticRealPolynomial.js +8 -8
- package/Source/Core/QuantizedMeshTerrainData.js +37 -37
- package/Source/Core/QuarticRealPolynomial.js +12 -12
- package/Source/Core/Quaternion.js +42 -42
- package/Source/Core/QuaternionSpline.js +10 -10
- package/Source/Core/Queue.js +2 -2
- package/Source/Core/Ray.js +1 -1
- package/Source/Core/Rectangle.js +38 -38
- package/Source/Core/RectangleCollisionChecker.js +3 -3
- package/Source/Core/RectangleGeometry.js +15 -15
- package/Source/Core/RectangleOutlineGeometry.js +11 -11
- package/Source/Core/ReferenceFrame.js +3 -3
- package/Source/Core/Request.js +13 -13
- package/Source/Core/RequestErrorEvent.js +7 -7
- package/Source/Core/RequestScheduler.js +15 -15
- package/Source/Core/RequestState.js +7 -7
- package/Source/Core/RequestType.js +5 -5
- package/Source/Core/Resource.js +225 -225
- package/Source/Core/RuntimeError.js +4 -4
- package/Source/Core/S2Cell.js +15 -15
- package/Source/Core/ScreenSpaceEventHandler.js +7 -7
- package/Source/Core/ScreenSpaceEventType.js +16 -16
- package/Source/Core/ShowGeometryInstanceAttribute.js +4 -4
- package/Source/Core/SimplePolylineGeometry.js +9 -9
- package/Source/Core/SphereGeometry.js +10 -10
- package/Source/Core/SphereOutlineGeometry.js +11 -11
- package/Source/Core/Spherical.js +13 -13
- package/Source/Core/Spline.js +14 -14
- package/Source/Core/SteppedSpline.js +14 -14
- package/Source/Core/TaskProcessor.js +10 -10
- package/Source/Core/TerrainData.js +25 -25
- package/Source/Core/TerrainEncoding.js +14 -14
- package/Source/Core/TerrainExaggeration.js +3 -3
- package/Source/Core/TerrainMesh.js +18 -18
- package/Source/Core/TerrainProvider.js +32 -37
- package/Source/Core/TerrainQuantization.js +3 -3
- package/Source/Core/TileAvailability.js +16 -16
- package/Source/Core/TileProviderError.js +19 -19
- package/Source/Core/TilingScheme.js +13 -13
- package/Source/Core/TimeConstants.js +10 -10
- package/Source/Core/TimeInterval.js +23 -23
- package/Source/Core/TimeIntervalCollection.js +39 -39
- package/Source/Core/TimeStandard.js +3 -3
- package/Source/Core/Tipsify.js +10 -10
- package/Source/Core/Transforms.js +2 -2
- package/Source/Core/TranslationRotationScale.js +1 -1
- package/Source/Core/TridiagonalSystemSolver.js +3 -3
- package/Source/Core/TrustedServers.js +5 -5
- package/Source/Core/VRTheWorldTerrainProvider.js +210 -141
- package/Source/Core/VertexFormat.js +13 -13
- package/Source/Core/VideoSynchronizer.js +4 -4
- package/Source/Core/Visibility.js +4 -4
- package/Source/Core/VulkanConstants.js +1 -1
- package/Source/Core/WallGeometry.js +13 -13
- package/Source/Core/WallOutlineGeometry.js +13 -13
- package/Source/Core/WebGLConstants.js +1 -1
- package/Source/Core/WebMercatorProjection.js +5 -5
- package/Source/Core/WebMercatorTilingScheme.js +16 -16
- package/Source/Core/WindingOrder.js +3 -3
- package/Source/Core/WireframeIndexGenerator.js +3 -3
- package/Source/Core/arrayRemoveDuplicates.js +4 -4
- package/Source/Core/binarySearch.js +2 -2
- package/Source/Core/buildModuleUrl.js +8 -7
- package/Source/Core/clone.js +3 -3
- package/Source/Core/combine.js +4 -4
- package/Source/Core/createGuid.js +1 -1
- package/Source/Core/createWorldTerrain.js +23 -5
- package/Source/Core/createWorldTerrainAsync.js +48 -0
- package/Source/Core/defaultValue.js +1 -1
- package/Source/Core/defer.js +1 -1
- package/Source/Core/defined.js +1 -1
- package/Source/Core/deprecationWarning.js +2 -2
- package/Source/Core/destroyObject.js +2 -2
- package/Source/Core/formatError.js +1 -1
- package/Source/Core/getAbsoluteUri.js +3 -3
- package/Source/Core/getBaseUri.js +3 -3
- package/Source/Core/getExtensionFromUri.js +2 -2
- package/Source/Core/getFilenameFromUri.js +2 -2
- package/Source/Core/getImageFromTypedArray.js +2 -2
- package/Source/Core/getImagePixels.js +4 -3
- package/Source/Core/getJsonFromTypedArray.js +3 -3
- package/Source/Core/getStringFromTypedArray.js +3 -3
- package/Source/Core/getTimestamp.js +1 -1
- package/Source/Core/isBlobUri.js +2 -2
- package/Source/Core/isDataUri.js +2 -2
- package/Source/Core/isLeapYear.js +2 -2
- package/Source/Core/loadKTX2.js +8 -8
- package/Source/Core/mergeSort.js +1 -1
- package/Source/Core/objectToQuery.js +2 -2
- package/Source/Core/oneTimeWarning.js +2 -2
- package/Source/Core/parseResponseHeaders.js +2 -2
- package/Source/Core/pointInsideTriangle.js +1 -1
- package/Source/Core/queryToObject.js +2 -2
- package/Source/Core/sampleTerrain.js +16 -17
- package/Source/Core/sampleTerrainMostDetailed.js +67 -73
- package/Source/Core/scaleToGeodeticSurface.js +1 -1
- package/Source/Core/subdivideArray.js +1 -1
- package/Source/Core/writeTextToCanvas.js +10 -9
- package/Source/DataSources/BillboardGraphics.js +1 -1
- package/Source/DataSources/BillboardVisualizer.js +2 -2
- package/Source/DataSources/BoundingSphereState.js +1 -1
- package/Source/DataSources/BoxGraphics.js +1 -1
- package/Source/DataSources/CallbackProperty.js +8 -8
- package/Source/DataSources/Cesium3DTilesetGraphics.js +1 -1
- package/Source/DataSources/Cesium3DTilesetVisualizer.js +39 -28
- package/Source/DataSources/CheckerboardMaterialProperty.js +6 -6
- package/Source/DataSources/ColorMaterialProperty.js +5 -5
- package/Source/DataSources/CompositeEntityCollection.js +8 -8
- package/Source/DataSources/CompositeMaterialProperty.js +5 -5
- package/Source/DataSources/CompositePositionProperty.js +2 -2
- package/Source/DataSources/CompositeProperty.js +4 -4
- package/Source/DataSources/ConstantPositionProperty.js +4 -4
- package/Source/DataSources/ConstantProperty.js +5 -5
- package/Source/DataSources/CorridorGraphics.js +1 -1
- package/Source/DataSources/CustomDataSource.js +5 -5
- package/Source/DataSources/CylinderGraphics.js +1 -1
- package/Source/DataSources/CzmlDataSource.js +26 -26
- package/Source/DataSources/DataSource.js +4 -4
- package/Source/DataSources/DataSourceClock.js +2 -2
- package/Source/DataSources/DataSourceCollection.js +11 -11
- package/Source/DataSources/DataSourceDisplay.js +5 -5
- package/Source/DataSources/DynamicGeometryUpdater.js +1 -1
- package/Source/DataSources/EllipseGraphics.js +1 -1
- package/Source/DataSources/EllipsoidGeometryUpdater.js +2 -2
- package/Source/DataSources/EllipsoidGraphics.js +1 -1
- package/Source/DataSources/Entity.js +20 -15
- package/Source/DataSources/EntityCluster.js +16 -16
- package/Source/DataSources/EntityCollection.js +8 -8
- package/Source/DataSources/GeoJsonDataSource.js +27 -27
- package/Source/DataSources/GeometryUpdater.js +22 -22
- package/Source/DataSources/GeometryVisualizer.js +2 -2
- package/Source/DataSources/GpxDataSource.js +23 -23
- package/Source/DataSources/GridMaterialProperty.js +7 -7
- package/Source/DataSources/GroundGeometryUpdater.js +5 -5
- package/Source/DataSources/ImageMaterialProperty.js +8 -8
- package/Source/DataSources/KmlDataSource.js +32 -32
- package/Source/DataSources/KmlTour.js +7 -7
- package/Source/DataSources/KmlTourFlyTo.js +6 -6
- package/Source/DataSources/KmlTourWait.js +2 -2
- package/Source/DataSources/LabelGraphics.js +1 -1
- package/Source/DataSources/LabelVisualizer.js +2 -2
- package/Source/DataSources/MaterialProperty.js +5 -5
- package/Source/DataSources/ModelGraphics.js +3 -3
- package/Source/DataSources/ModelVisualizer.js +101 -33
- package/Source/DataSources/NodeTransformationProperty.js +3 -3
- package/Source/DataSources/PathGraphics.js +1 -1
- package/Source/DataSources/PathVisualizer.js +2 -2
- package/Source/DataSources/PlaneGraphics.js +1 -1
- package/Source/DataSources/PointGraphics.js +1 -1
- package/Source/DataSources/PointVisualizer.js +2 -2
- package/Source/DataSources/PolygonGraphics.js +4 -4
- package/Source/DataSources/PolylineArrowMaterialProperty.js +5 -5
- package/Source/DataSources/PolylineDashMaterialProperty.js +8 -8
- package/Source/DataSources/PolylineGeometryUpdater.js +13 -13
- package/Source/DataSources/PolylineGlowMaterialProperty.js +8 -8
- package/Source/DataSources/PolylineGraphics.js +2 -2
- package/Source/DataSources/PolylineOutlineMaterialProperty.js +7 -7
- package/Source/DataSources/PolylineVisualizer.js +2 -2
- package/Source/DataSources/PolylineVolumeGraphics.js +3 -3
- package/Source/DataSources/PositionProperty.js +2 -2
- package/Source/DataSources/PositionPropertyArray.js +2 -2
- package/Source/DataSources/Property.js +4 -4
- package/Source/DataSources/PropertyArray.js +2 -2
- package/Source/DataSources/PropertyBag.js +10 -10
- package/Source/DataSources/RectangleGraphics.js +1 -1
- package/Source/DataSources/ReferenceProperty.js +10 -10
- package/Source/DataSources/Rotation.js +14 -14
- package/Source/DataSources/SampledPositionProperty.js +11 -11
- package/Source/DataSources/SampledProperty.js +12 -12
- package/Source/DataSources/StripeMaterialProperty.js +8 -8
- package/Source/DataSources/StripeOrientation.js +3 -3
- package/Source/DataSources/TerrainOffsetProperty.js +1 -1
- package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +3 -3
- package/Source/DataSources/TimeIntervalCollectionProperty.js +4 -4
- package/Source/DataSources/VelocityOrientationProperty.js +2 -2
- package/Source/DataSources/VelocityVectorProperty.js +4 -4
- package/Source/DataSources/Visualizer.js +2 -2
- package/Source/DataSources/WallGraphics.js +4 -4
- package/Source/DataSources/exportKml.js +9 -9
- package/Source/Renderer/Buffer.js +4 -4
- package/Source/Renderer/ClearCommand.js +3 -3
- package/Source/Renderer/ComputeCommand.js +3 -3
- package/Source/Renderer/Context.js +46 -46
- package/Source/Renderer/ContextLimits.js +22 -22
- package/Source/Renderer/CubeMapFace.js +11 -11
- package/Source/Renderer/DrawCommand.js +15 -15
- package/Source/Renderer/Framebuffer.js +4 -4
- package/Source/Renderer/FramebufferManager.js +9 -9
- package/Source/Renderer/MultisampleFramebuffer.js +1 -1
- package/Source/Renderer/PassState.js +2 -2
- package/Source/Renderer/PixelDatatype.js +1 -1
- package/Source/Renderer/RenderState.js +1 -1
- package/Source/Renderer/ShaderBuilder.js +24 -24
- package/Source/Renderer/ShaderCache.js +8 -8
- package/Source/Renderer/ShaderDestination.js +2 -2
- package/Source/Renderer/ShaderFunction.js +3 -3
- package/Source/Renderer/ShaderSource.js +8 -8
- package/Source/Renderer/ShaderStruct.js +4 -4
- package/Source/Renderer/Texture.js +18 -18
- package/Source/Renderer/TextureMagnificationFilter.js +4 -4
- package/Source/Renderer/TextureMinificationFilter.js +8 -8
- package/Source/Renderer/UniformState.js +14 -14
- package/Source/Renderer/VertexArray.js +2 -2
- package/Source/Renderer/createUniform.js +12 -12
- package/Source/Renderer/createUniformArray.js +12 -12
- package/Source/Renderer/freezeRenderState.js +2 -2
- package/Source/Renderer/loadCubeMap.js +3 -3
- package/Source/Scene/AlphaMode.js +4 -4
- package/Source/Scene/Appearance.js +14 -14
- package/Source/Scene/ArcGisMapServerImageryProvider.js +585 -409
- package/Source/Scene/AttributeType.js +11 -11
- package/Source/Scene/AutoExposure.js +6 -6
- package/Source/Scene/Axis.js +6 -6
- package/Source/Scene/B3dmParser.js +2 -2
- package/Source/Scene/BatchTable.js +13 -13
- package/Source/Scene/BatchTableHierarchy.js +22 -22
- package/Source/Scene/BatchTexture.js +14 -14
- package/Source/Scene/Billboard.js +17 -17
- package/Source/Scene/BillboardCollection.js +13 -13
- package/Source/Scene/BingMapsImageryProvider.js +541 -335
- package/Source/Scene/BingMapsStyle.js +11 -11
- package/Source/Scene/BlendEquation.js +6 -6
- package/Source/Scene/BlendFunction.js +16 -16
- package/Source/Scene/BlendOption.js +4 -4
- package/Source/Scene/BlendingState.js +4 -4
- package/Source/Scene/BufferLoader.js +33 -38
- package/Source/Scene/Camera.js +57 -57
- package/Source/Scene/CameraEventAggregator.js +26 -16
- package/Source/Scene/CameraEventType.js +6 -6
- package/Source/Scene/Cesium3DContentGroup.js +1 -1
- package/Source/Scene/Cesium3DTile.js +409 -272
- package/Source/Scene/Cesium3DTileBatchTable.js +3 -3
- package/Source/Scene/Cesium3DTileColorBlendMode.js +4 -4
- package/Source/Scene/Cesium3DTileContent.js +31 -15
- package/Source/Scene/Cesium3DTileContentFactory.js +4 -4
- package/Source/Scene/Cesium3DTileContentType.js +17 -17
- package/Source/Scene/Cesium3DTileFeature.js +16 -16
- package/Source/Scene/Cesium3DTileOptimizationHint.js +1 -1
- package/Source/Scene/Cesium3DTileOptimizations.js +1 -1
- package/Source/Scene/Cesium3DTilePass.js +8 -11
- package/Source/Scene/Cesium3DTilePassState.js +1 -1
- package/Source/Scene/Cesium3DTilePointFeature.js +23 -23
- package/Source/Scene/Cesium3DTileRefine.js +3 -3
- package/Source/Scene/Cesium3DTileStyle.js +17 -17
- package/Source/Scene/Cesium3DTileStyleEngine.js +1 -1
- package/Source/Scene/Cesium3DTilesVoxelProvider.js +226 -118
- package/Source/Scene/Cesium3DTileset.js +817 -543
- package/Source/Scene/Cesium3DTilesetBaseTraversal.js +301 -0
- package/Source/Scene/Cesium3DTilesetHeatmap.js +4 -4
- package/Source/Scene/Cesium3DTilesetMetadata.js +5 -5
- package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +33 -46
- package/Source/Scene/Cesium3DTilesetSkipTraversal.js +421 -0
- package/Source/Scene/Cesium3DTilesetTraversal.js +219 -671
- package/Source/Scene/CircleEmitter.js +2 -2
- package/Source/Scene/ClassificationPrimitive.js +32 -25
- package/Source/Scene/ClassificationType.js +4 -4
- package/Source/Scene/ClippingPlane.js +2 -2
- package/Source/Scene/ClippingPlaneCollection.js +17 -17
- package/Source/Scene/CloudCollection.js +16 -16
- package/Source/Scene/CloudType.js +3 -3
- package/Source/Scene/ColorBlendMode.js +1 -1
- package/Source/Scene/Composite3DTileContent.js +69 -26
- package/Source/Scene/ConditionsExpression.js +11 -11
- package/Source/Scene/ConeEmitter.js +2 -2
- package/Source/Scene/ContentMetadata.js +16 -16
- package/Source/Scene/CreditDisplay.js +22 -6
- package/Source/Scene/CullFace.js +4 -4
- package/Source/Scene/CumulusCloud.js +3 -3
- package/Source/Scene/DebugAppearance.js +17 -17
- package/Source/Scene/DebugCameraPrimitive.js +7 -7
- package/Source/Scene/DebugModelMatrixPrimitive.js +9 -9
- package/Source/Scene/DepthFunction.js +9 -9
- package/Source/Scene/DepthPlane.js +1 -1
- package/Source/Scene/DeviceOrientationCameraController.js +1 -1
- package/Source/Scene/DirectionalLight.js +3 -3
- package/Source/Scene/DiscardEmptyTileImagePolicy.js +2 -2
- package/Source/Scene/DiscardMissingTileImagePolicy.js +5 -5
- package/Source/Scene/DracoLoader.js +4 -4
- package/Source/Scene/EllipsoidPrimitive.js +8 -8
- package/Source/Scene/EllipsoidSurfaceAppearance.js +19 -19
- package/Source/Scene/Empty3DTileContent.js +31 -1
- package/Source/Scene/Expression.js +14 -14
- package/Source/Scene/Fog.js +5 -5
- package/Source/Scene/FrameRateMonitor.js +14 -14
- package/Source/Scene/FrameState.js +36 -36
- package/Source/Scene/FrustumCommands.js +2 -2
- package/Source/Scene/Geometry3DTileContent.js +47 -7
- package/Source/Scene/GetFeatureInfoFormat.js +2 -2
- package/Source/Scene/Globe.js +39 -35
- package/Source/Scene/GlobeSurfaceTile.js +3 -2
- package/Source/Scene/GlobeSurfaceTileProvider.js +56 -33
- package/Source/Scene/GlobeTranslucency.js +3 -3
- package/Source/Scene/GltfBufferViewLoader.js +52 -96
- package/Source/Scene/GltfDracoLoader.js +117 -119
- package/Source/Scene/GltfImageLoader.js +77 -84
- package/Source/Scene/GltfIndexBufferLoader.js +118 -131
- package/Source/Scene/GltfJsonLoader.js +81 -80
- package/Source/Scene/GltfLoader.js +413 -301
- package/Source/Scene/GltfLoaderUtil.js +11 -11
- package/Source/Scene/GltfPipeline/addBuffer.js +2 -2
- package/Source/Scene/GltfPipeline/addDefaults.js +2 -2
- package/Source/Scene/GltfPipeline/addExtensionsRequired.js +2 -2
- package/Source/Scene/GltfPipeline/addExtensionsUsed.js +2 -2
- package/Source/Scene/GltfPipeline/addPipelineExtras.js +2 -2
- package/Source/Scene/GltfPipeline/addToArray.js +2 -2
- package/Source/Scene/GltfPipeline/findAccessorMinMax.js +2 -2
- package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +3 -3
- package/Source/Scene/GltfPipeline/getAccessorByteStride.js +3 -3
- package/Source/Scene/GltfPipeline/getComponentReader.js +5 -5
- package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +2 -2
- package/Source/Scene/GltfPipeline/moveTechniquesToExtension.js +2 -2
- package/Source/Scene/GltfPipeline/numberOfComponentsForType.js +2 -2
- package/Source/Scene/GltfPipeline/parseGlb.js +1 -1
- package/Source/Scene/GltfPipeline/readAccessorPacked.js +2 -2
- package/Source/Scene/GltfPipeline/removeExtension.js +2 -2
- package/Source/Scene/GltfPipeline/removeExtensionsRequired.js +2 -2
- package/Source/Scene/GltfPipeline/removeExtensionsUsed.js +2 -2
- package/Source/Scene/GltfPipeline/removePipelineExtras.js +2 -2
- package/Source/Scene/GltfPipeline/removeUnusedElements.js +2 -2
- package/Source/Scene/GltfPipeline/updateAccessorComponentTypes.js +2 -2
- package/Source/Scene/GltfPipeline/updateVersion.js +4 -4
- package/Source/Scene/GltfPipeline/usesExtension.js +3 -3
- package/Source/Scene/GltfStructuralMetadataLoader.js +117 -118
- package/Source/Scene/GltfTextureLoader.js +104 -103
- package/Source/Scene/GltfVertexBufferLoader.js +140 -145
- package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +377 -249
- package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +520 -360
- package/Source/Scene/GridImageryProvider.js +292 -129
- package/Source/Scene/GroundPolylinePrimitive.js +32 -21
- package/Source/Scene/GroundPrimitive.js +34 -27
- package/Source/Scene/GroupMetadata.js +17 -17
- package/Source/Scene/HeightReference.js +4 -4
- package/Source/Scene/HorizontalOrigin.js +4 -4
- package/Source/Scene/I3SDataProvider.js +221 -120
- package/Source/Scene/I3SFeature.js +8 -7
- package/Source/Scene/I3SField.js +5 -5
- package/Source/Scene/I3SGeometry.js +8 -8
- package/Source/Scene/I3SLayer.js +33 -44
- package/Source/Scene/I3SNode.js +65 -72
- package/Source/Scene/I3dmParser.js +2 -2
- package/Source/Scene/ImageBasedLighting.js +21 -17
- package/Source/Scene/Imagery.js +6 -1
- package/Source/Scene/ImageryLayer.js +324 -73
- package/Source/Scene/ImageryLayerCollection.js +37 -11
- package/Source/Scene/ImageryLayerFeatureInfo.js +6 -6
- package/Source/Scene/ImageryProvider.js +151 -133
- package/Source/Scene/Implicit3DTileContent.js +128 -79
- package/Source/Scene/ImplicitAvailabilityBitstream.js +10 -10
- package/Source/Scene/ImplicitMetadataView.js +16 -16
- package/Source/Scene/ImplicitSubdivisionScheme.js +4 -4
- package/Source/Scene/ImplicitSubtree.js +113 -92
- package/Source/Scene/ImplicitSubtreeCache.js +6 -6
- package/Source/Scene/ImplicitSubtreeMetadata.js +16 -16
- package/Source/Scene/ImplicitTileCoordinates.js +27 -27
- package/Source/Scene/ImplicitTileset.js +10 -10
- package/Source/Scene/InstanceAttributeSemantic.js +5 -5
- package/Source/Scene/IonImageryProvider.js +493 -286
- package/Source/Scene/IonWorldImageryStyle.js +4 -4
- package/Source/Scene/JsonMetadataTable.js +11 -11
- package/Source/Scene/KeyframeNode.js +1 -1
- package/Source/Scene/Label.js +14 -14
- package/Source/Scene/LabelCollection.js +12 -11
- package/Source/Scene/LabelStyle.js +4 -4
- package/Source/Scene/Light.js +1 -1
- package/Source/Scene/MapMode2D.js +3 -3
- package/Source/Scene/MapboxImageryProvider.js +301 -141
- package/Source/Scene/MapboxStyleImageryProvider.js +301 -142
- package/Source/Scene/Material.js +47 -47
- package/Source/Scene/MaterialAppearance.js +21 -21
- package/Source/Scene/Megatexture.js +15 -15
- package/Source/Scene/MetadataClass.js +16 -16
- package/Source/Scene/MetadataClassProperty.js +41 -41
- package/Source/Scene/MetadataComponentType.js +21 -21
- package/Source/Scene/MetadataEntity.js +31 -31
- package/Source/Scene/MetadataEnum.js +14 -14
- package/Source/Scene/MetadataEnumValue.js +10 -10
- package/Source/Scene/MetadataSchema.js +16 -16
- package/Source/Scene/MetadataSchemaLoader.js +31 -41
- package/Source/Scene/MetadataSemantic.js +17 -17
- package/Source/Scene/MetadataTable.js +24 -24
- package/Source/Scene/MetadataTableProperty.js +9 -9
- package/Source/Scene/MetadataType.js +15 -15
- package/Source/Scene/Model/B3dmLoader.js +54 -58
- package/Source/Scene/Model/ClassificationModelDrawCommand.js +3 -3
- package/Source/Scene/Model/CustomShader.js +18 -18
- package/Source/Scene/Model/CustomShaderMode.js +4 -4
- package/Source/Scene/Model/CustomShaderTranslucencyMode.js +4 -4
- package/Source/Scene/Model/GeoJsonLoader.js +12 -36
- package/Source/Scene/Model/I3dmLoader.js +58 -84
- package/Source/Scene/Model/LightingModel.js +3 -3
- package/Source/Scene/Model/MaterialPipelineStage.js +6 -6
- package/Source/Scene/Model/MetadataPipelineStage.js +25 -26
- package/Source/Scene/Model/Model.js +531 -193
- package/Source/Scene/Model/Model3DTileContent.js +83 -31
- package/Source/Scene/Model/ModelAlphaOptions.js +1 -1
- package/Source/Scene/Model/ModelAnimation.js +11 -11
- package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
- package/Source/Scene/Model/ModelAnimationCollection.js +21 -21
- package/Source/Scene/Model/ModelArticulation.js +4 -4
- package/Source/Scene/Model/ModelArticulationStage.js +5 -5
- package/Source/Scene/Model/ModelDrawCommand.js +18 -29
- package/Source/Scene/Model/ModelFeature.js +12 -12
- package/Source/Scene/Model/ModelFeatureTable.js +5 -5
- package/Source/Scene/Model/ModelLightingOptions.js +1 -1
- package/Source/Scene/Model/ModelNode.js +3 -3
- package/Source/Scene/Model/ModelRenderResources.js +4 -4
- package/Source/Scene/Model/ModelRuntimeNode.js +7 -7
- package/Source/Scene/Model/ModelRuntimePrimitive.js +3 -3
- package/Source/Scene/Model/ModelSceneGraph.js +11 -11
- package/Source/Scene/Model/ModelSilhouettePipelineStage.js +1 -1
- package/Source/Scene/Model/ModelSkin.js +1 -1
- package/Source/Scene/Model/ModelStatistics.js +7 -7
- package/Source/Scene/Model/ModelType.js +8 -8
- package/Source/Scene/Model/ModelUtility.js +26 -26
- package/Source/Scene/Model/NodeRenderResources.js +7 -7
- package/Source/Scene/Model/PntsLoader.js +32 -37
- package/Source/Scene/Model/PointCloudStylingPipelineStage.js +1 -1
- package/Source/Scene/Model/PrimitiveOutlineGenerator.js +28 -28
- package/Source/Scene/Model/PrimitiveRenderResources.js +10 -10
- package/Source/Scene/Model/StyleCommandsNeeded.js +1 -1
- package/Source/Scene/Model/TextureManager.js +3 -3
- package/Source/Scene/Model/TextureUniform.js +6 -6
- package/Source/Scene/Model/UniformType.js +17 -17
- package/Source/Scene/Model/VaryingType.js +8 -8
- package/Source/Scene/ModelAnimationLoop.js +4 -4
- package/Source/Scene/ModelComponents.js +61 -61
- package/Source/Scene/Moon.js +8 -8
- package/Source/Scene/Multiple3DTileContent.js +146 -127
- package/Source/Scene/NeverTileDiscardPolicy.js +2 -2
- package/Source/Scene/OIT.js +9 -9
- package/Source/Scene/OctahedralProjectedCubeMap.js +28 -39
- package/Source/Scene/OpenStreetMapImageryProvider.js +6 -6
- package/Source/Scene/OrderedGroundPrimitiveCollection.js +9 -9
- package/Source/Scene/Particle.js +13 -13
- package/Source/Scene/ParticleBurst.js +8 -8
- package/Source/Scene/ParticleSystem.js +41 -36
- package/Source/Scene/PerInstanceColorAppearance.js +18 -18
- package/Source/Scene/PerformanceDisplay.js +2 -2
- package/Source/Scene/PntsParser.js +1 -1
- package/Source/Scene/PointCloud.js +11 -19
- package/Source/Scene/PointCloudEyeDomeLighting.js +1 -1
- package/Source/Scene/PointCloudShading.js +20 -20
- package/Source/Scene/PointPrimitive.js +6 -6
- package/Source/Scene/PointPrimitiveCollection.js +11 -11
- package/Source/Scene/Polyline.js +9 -9
- package/Source/Scene/PolylineCollection.js +11 -11
- package/Source/Scene/PolylineColorAppearance.js +13 -13
- package/Source/Scene/PolylineMaterialAppearance.js +13 -13
- package/Source/Scene/PostProcessStage.js +15 -15
- package/Source/Scene/PostProcessStageCollection.js +10 -10
- package/Source/Scene/PostProcessStageComposite.js +13 -13
- package/Source/Scene/PostProcessStageLibrary.js +8 -8
- package/Source/Scene/PostProcessStageSampleMode.js +3 -3
- package/Source/Scene/PostProcessStageTextureCache.js +4 -4
- package/Source/Scene/Primitive.js +50 -30
- package/Source/Scene/PrimitiveCollection.js +20 -20
- package/Source/Scene/PrimitiveLoadPlan.js +6 -6
- package/Source/Scene/PropertyAttribute.js +9 -9
- package/Source/Scene/PropertyAttributeProperty.js +6 -6
- package/Source/Scene/PropertyTable.js +34 -34
- package/Source/Scene/PropertyTexture.js +9 -9
- package/Source/Scene/PropertyTextureProperty.js +8 -8
- package/Source/Scene/QuadtreePrimitive.js +11 -9
- package/Source/Scene/QuadtreeTile.js +11 -11
- package/Source/Scene/QuadtreeTileLoadState.js +1 -1
- package/Source/Scene/QuadtreeTileProvider.js +10 -14
- package/Source/Scene/ResourceCache.js +85 -143
- package/Source/Scene/ResourceCacheKey.js +42 -42
- package/Source/Scene/ResourceCacheStatistics.js +26 -60
- package/Source/Scene/ResourceLoader.js +9 -21
- package/Source/Scene/ResourceLoaderState.js +16 -8
- package/Source/Scene/SDFSettings.js +4 -4
- package/Source/Scene/Scene.js +153 -88
- package/Source/Scene/SceneMode.js +6 -6
- package/Source/Scene/SceneTransitioner.js +1 -1
- package/Source/Scene/ScreenSpaceCameraController.js +41 -23
- package/Source/Scene/ShadowMap.js +22 -22
- package/Source/Scene/ShadowMapShader.js +1 -1
- package/Source/Scene/ShadowMode.js +5 -5
- package/Source/Scene/ShadowVolumeAppearance.js +17 -17
- package/Source/Scene/SingleTileImageryProvider.js +403 -230
- package/Source/Scene/SkyAtmosphere.js +10 -10
- package/Source/Scene/SkyBox.js +6 -6
- package/Source/Scene/SpatialNode.js +103 -87
- package/Source/Scene/SphereEmitter.js +2 -2
- package/Source/Scene/SplitDirection.js +4 -4
- package/Source/Scene/Splitter.js +2 -2
- package/Source/Scene/StencilFunction.js +9 -9
- package/Source/Scene/StencilOperation.js +9 -9
- package/Source/Scene/StructuralMetadata.js +11 -11
- package/Source/Scene/StyleExpression.js +8 -8
- package/Source/Scene/Sun.js +3 -3
- package/Source/Scene/SunLight.js +3 -3
- package/Source/Scene/SupportedImageFormats.js +3 -3
- package/Source/Scene/Terrain.js +196 -0
- package/Source/Scene/TextureAtlas.js +16 -16
- package/Source/Scene/TileBoundingRegion.js +6 -6
- package/Source/Scene/TileBoundingS2Cell.js +6 -6
- package/Source/Scene/TileBoundingSphere.js +5 -5
- package/Source/Scene/TileBoundingVolume.js +2 -2
- package/Source/Scene/TileCoordinatesImageryProvider.js +289 -126
- package/Source/Scene/TileDiscardPolicy.js +2 -2
- package/Source/Scene/TileImagery.js +3 -3
- package/Source/Scene/TileMapServiceImageryProvider.js +185 -93
- package/Source/Scene/TileMetadata.js +16 -16
- package/Source/Scene/TileOrientedBoundingBox.js +2 -2
- package/Source/Scene/TileReplacementQueue.js +1 -1
- package/Source/Scene/TileSelectionResult.js +1 -1
- package/Source/Scene/Tileset3DTileContent.js +47 -5
- package/Source/Scene/TilesetMetadata.js +15 -15
- package/Source/Scene/TimeDynamicImagery.js +8 -8
- package/Source/Scene/TimeDynamicPointCloud.js +24 -11
- package/Source/Scene/Tonemapper.js +5 -5
- package/Source/Scene/TranslucentTileClassification.js +1 -1
- package/Source/Scene/TweenCollection.js +31 -31
- package/Source/Scene/UrlTemplateImageryProvider.js +380 -252
- package/Source/Scene/Vector3DTileBatch.js +7 -7
- package/Source/Scene/Vector3DTileClampedPolylines.js +105 -93
- package/Source/Scene/Vector3DTileContent.js +47 -22
- package/Source/Scene/Vector3DTileGeometry.js +65 -60
- package/Source/Scene/Vector3DTilePoints.js +79 -75
- package/Source/Scene/Vector3DTilePolygons.js +128 -127
- package/Source/Scene/Vector3DTilePolylines.js +95 -91
- package/Source/Scene/Vector3DTilePrimitive.js +8 -9
- package/Source/Scene/VertexAttributeSemantic.js +15 -15
- package/Source/Scene/VerticalOrigin.js +5 -5
- package/Source/Scene/ViewportQuad.js +2 -2
- package/Source/Scene/VoxelBoxShape.js +27 -118
- package/Source/Scene/VoxelContent.js +63 -65
- package/Source/Scene/VoxelCylinderShape.js +21 -21
- package/Source/Scene/VoxelEllipsoidShape.js +13 -13
- package/Source/Scene/VoxelPrimitive.js +83 -135
- package/Source/Scene/VoxelProvider.js +15 -15
- package/Source/Scene/VoxelRenderResources.js +6 -3
- package/Source/Scene/VoxelShape.js +9 -9
- package/Source/Scene/VoxelShapeType.js +4 -4
- package/Source/Scene/VoxelTraversal.js +86 -144
- package/Source/Scene/WebMapServiceImageryProvider.js +313 -152
- package/Source/Scene/WebMapTileServiceImageryProvider.js +305 -142
- package/Source/Scene/buildVoxelDrawCommands.js +1 -0
- package/Source/Scene/computeFlyToLocationForRectangle.js +33 -37
- package/Source/Scene/createBillboardPointCallback.js +5 -5
- package/Source/Scene/createElevationBandMaterial.js +5 -5
- package/Source/Scene/createOsmBuildings.js +9 -3
- package/Source/Scene/createOsmBuildingsAsync.js +82 -0
- package/Source/Scene/createTangentSpaceDebugPrimitive.js +2 -2
- package/Source/Scene/createWorldImagery.js +15 -6
- package/Source/Scene/createWorldImageryAsync.js +39 -0
- package/Source/Scene/findContentMetadata.js +1 -1
- package/Source/Scene/findGroupMetadata.js +1 -1
- package/Source/Scene/findTileMetadata.js +1 -1
- package/Source/Scene/getClipAndStyleCode.js +4 -4
- package/Source/Scene/getClippingFunction.js +1 -1
- package/Source/Scene/hasExtension.js +3 -3
- package/Source/Scene/parseBatchTable.js +14 -14
- package/Source/Scene/parseBoundingVolumeSemantics.js +7 -7
- package/Source/Scene/parseFeatureMetadataLegacy.js +4 -4
- package/Source/Scene/parseStructuralMetadata.js +4 -4
- package/Source/Scene/preprocess3DTileContent.js +2 -2
- package/Source/Scene/processVoxelProperties.js +8 -7
- package/Source/Shaders/Voxels/IntersectBox.glsl +52 -58
- package/Source/Shaders/Voxels/IntersectBox.js +52 -58
- package/Source/Shaders/Voxels/IntersectClippingPlanes.glsl +38 -30
- package/Source/Shaders/Voxels/IntersectClippingPlanes.js +38 -30
- package/Source/Shaders/Voxels/IntersectDepth.glsl +1 -1
- package/Source/Shaders/Voxels/IntersectDepth.js +1 -1
- package/Source/Shaders/Voxels/Intersection.glsl +10 -12
- package/Source/Shaders/Voxels/Intersection.js +10 -12
- package/Source/Shaders/Voxels/IntersectionUtils.glsl +52 -59
- package/Source/Shaders/Voxels/IntersectionUtils.js +52 -59
- package/Source/Shaders/Voxels/Octree.glsl +72 -73
- package/Source/Shaders/Voxels/Octree.js +72 -73
- package/Source/Shaders/Voxels/VoxelFS.glsl +42 -22
- package/Source/Shaders/Voxels/VoxelFS.js +42 -22
- package/Source/Shaders/Voxels/convertUvToBox.glsl +13 -5
- package/Source/Shaders/Voxels/convertUvToBox.js +13 -5
- package/Source/ThirdParty/Workers/draco_decoder_nodejs.js +91 -91
- package/Source/ThirdParty/draco_decoder.wasm +0 -0
- package/Source/Widget/CesiumWidget.js +78 -50
- package/Source/Workers/cesiumWorkerBootstrapper.js +18 -18
- package/Source/WorkersES6/createTaskProcessorWorker.js +3 -3
- package/index.d.ts +2172 -1432
- package/index.js +8 -3
- package/package.json +1 -1
- package/Source/Core/cancelAnimationFrame.js +0 -53
- package/Source/Core/requestAnimationFrame.js +0 -83
- /package/Build/Workers/{GeometryOffsetAttribute-04332ce7.js → GeometryOffsetAttribute-9ad0019c.js} +0 -0
|
@@ -4,59 +4,61 @@
|
|
|
4
4
|
|
|
5
5
|
#define NO_HIT (-czm_infinity)
|
|
6
6
|
#define INF_HIT (czm_infinity * 0.5)
|
|
7
|
+
#define RAY_SHIFT (0.000003163)
|
|
8
|
+
#define RAY_SCALE (1.003163)
|
|
7
9
|
|
|
8
10
|
struct Ray {
|
|
9
11
|
vec3 pos;
|
|
10
12
|
vec3 dir;
|
|
13
|
+
#if defined(SHAPE_BOX)
|
|
14
|
+
vec3 dInv;
|
|
15
|
+
#endif
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
struct RayShapeIntersection {
|
|
19
|
+
vec4 entry;
|
|
20
|
+
vec4 exit;
|
|
11
21
|
};
|
|
12
22
|
|
|
13
23
|
struct Intersections {
|
|
14
24
|
// Don't access these member variables directly - call the functions instead.
|
|
15
25
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
// Store an array of ray-surface intersections. Each intersection is composed of:
|
|
27
|
+
// .xyz for the surface normal at the intersection point
|
|
28
|
+
// .w for the T value
|
|
29
|
+
// The scale of the normal encodes the shape intersection type:
|
|
30
|
+
// length(intersection.xyz) = 1: positive shape entry
|
|
31
|
+
// length(intersection.xyz) = 2: positive shape exit
|
|
32
|
+
// length(intersection.xyz) = 3: negative shape entry
|
|
33
|
+
// length(intersection.xyz) = 4: negative shape exit
|
|
34
|
+
// INTERSECTION_COUNT is the number of ray-*shape* (volume) intersections,
|
|
35
|
+
// so we need twice as many to track ray-*surface* intersections
|
|
36
|
+
vec4 intersections[INTERSECTION_COUNT * 2];
|
|
26
37
|
|
|
38
|
+
#if (INTERSECTION_COUNT > 1)
|
|
27
39
|
// Maintain state for future nextIntersection calls
|
|
28
40
|
int index;
|
|
29
41
|
int surroundCount;
|
|
30
42
|
bool surroundIsPositive;
|
|
31
|
-
#else
|
|
32
|
-
// When there's only one positive shape intersection none of the extra stuff is needed.
|
|
33
|
-
float intersections[2];
|
|
34
43
|
#endif
|
|
35
44
|
};
|
|
36
45
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
#define getIntersection(/*inout Intersections*/ ix, /*int*/ index) (ix).intersections[(index)]
|
|
42
|
-
#endif
|
|
43
|
-
|
|
44
|
-
// Using a define instead of a real function because WebGL1 cannot access array with non-constant index.
|
|
45
|
-
#define getIntersectionPair(/*inout Intersections*/ ix, /*int*/ index) vec2(getIntersection((ix), (index) * 2 + 0), getIntersection((ix), (index) * 2 + 1))
|
|
46
|
+
RayShapeIntersection getFirstIntersection(in Intersections ix)
|
|
47
|
+
{
|
|
48
|
+
return RayShapeIntersection(ix.intersections[0], ix.intersections[1]);
|
|
49
|
+
}
|
|
46
50
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
#endif
|
|
51
|
+
vec4 encodeIntersectionType(vec4 intersection, int index, bool entry)
|
|
52
|
+
{
|
|
53
|
+
float scale = float(index > 0) * 2.0 + float(!entry) + 1.0;
|
|
54
|
+
return vec4(intersection.xyz * scale, intersection.w);
|
|
55
|
+
}
|
|
53
56
|
|
|
54
|
-
//
|
|
55
|
-
#
|
|
56
|
-
|
|
57
|
-
#
|
|
58
|
-
|
|
59
|
-
#endif
|
|
57
|
+
// Use defines instead of real functions because WebGL1 cannot access array with non-constant index.
|
|
58
|
+
#define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = vec4(0.0, float(!positive) * 2.0 + float(!enter) + 1.0, 0.0, (t))
|
|
59
|
+
#define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec4(0.0, float((index) > 0) * 2.0 + 1.0, 0.0, (entryExit).x); (ix).intersections[(index) * 2 + 1] = vec4(0.0, float((index) > 0) * 2.0 + 2.0, 0.0, (entryExit).y)
|
|
60
|
+
#define setSurfaceIntersection(/*inout Intersections*/ ix, /*int*/ index, /*vec4*/ intersection) (ix).intersections[(index)] = intersection;
|
|
61
|
+
#define setShapeIntersection(/*inout Intersections*/ ix, /*int*/ index, /*RayShapeIntersection*/ intersection) (ix).intersections[(index) * 2 + 0] = encodeIntersectionType((intersection).entry, (index), true); (ix).intersections[(index) * 2 + 1] = encodeIntersectionType((intersection).exit, (index), false)
|
|
60
62
|
|
|
61
63
|
#if (INTERSECTION_COUNT > 1)
|
|
62
64
|
void initializeIntersections(inout Intersections ix) {
|
|
@@ -70,21 +72,13 @@ void initializeIntersections(inout Intersections ix) {
|
|
|
70
72
|
// loop with non-constant condition, so it has to break early instead
|
|
71
73
|
if (i >= n) { break; }
|
|
72
74
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
float t0 = intersect0.x;
|
|
77
|
-
float t1 = intersect1.x;
|
|
78
|
-
float b0 = intersect0.y;
|
|
79
|
-
float b1 = intersect1.y;
|
|
75
|
+
vec4 intersect0 = ix.intersections[i + 0];
|
|
76
|
+
vec4 intersect1 = ix.intersections[i + 1];
|
|
80
77
|
|
|
81
|
-
|
|
82
|
-
float tmax = max(t0, t1);
|
|
83
|
-
float bmin = tmin == t0 ? b0 : b1;
|
|
84
|
-
float bmax = tmin == t0 ? b1 : b0;
|
|
78
|
+
bool inOrder = intersect0.w <= intersect1.w;
|
|
85
79
|
|
|
86
|
-
ix.intersections[i + 0] =
|
|
87
|
-
ix.intersections[i + 1] =
|
|
80
|
+
ix.intersections[i + 0] = inOrder ? intersect0 : intersect1;
|
|
81
|
+
ix.intersections[i + 1] = inOrder ? intersect1 : intersect0;
|
|
88
82
|
}
|
|
89
83
|
}
|
|
90
84
|
|
|
@@ -96,13 +90,14 @@ void initializeIntersections(inout Intersections ix) {
|
|
|
96
90
|
#endif
|
|
97
91
|
|
|
98
92
|
#if (INTERSECTION_COUNT > 1)
|
|
99
|
-
|
|
100
|
-
|
|
93
|
+
RayShapeIntersection nextIntersection(inout Intersections ix) {
|
|
94
|
+
vec4 surfaceIntersection = vec4(0.0, 0.0, 0.0, NO_HIT);
|
|
95
|
+
RayShapeIntersection shapeIntersection = RayShapeIntersection(surfaceIntersection, surfaceIntersection);
|
|
101
96
|
|
|
102
97
|
const int passCount = INTERSECTION_COUNT * 2;
|
|
103
98
|
|
|
104
99
|
if (ix.index == passCount) {
|
|
105
|
-
return
|
|
100
|
+
return shapeIntersection;
|
|
106
101
|
}
|
|
107
102
|
|
|
108
103
|
for (int i = 0; i < passCount; ++i) {
|
|
@@ -114,25 +109,24 @@ vec2 nextIntersection(inout Intersections ix) {
|
|
|
114
109
|
|
|
115
110
|
ix.index = i + 1;
|
|
116
111
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
bool currShapeIsPositive =
|
|
120
|
-
bool enter =
|
|
112
|
+
surfaceIntersection = ix.intersections[i];
|
|
113
|
+
int intersectionType = int(length(surfaceIntersection.xyz) - 0.5);
|
|
114
|
+
bool currShapeIsPositive = intersectionType < 2;
|
|
115
|
+
bool enter = intMod(intersectionType, 2) == 0;
|
|
121
116
|
|
|
122
117
|
ix.surroundCount += enter ? +1 : -1;
|
|
123
118
|
ix.surroundIsPositive = currShapeIsPositive ? enter : ix.surroundIsPositive;
|
|
124
119
|
|
|
125
120
|
// entering positive or exiting negative
|
|
126
121
|
if (ix.surroundCount == 1 && ix.surroundIsPositive && enter == currShapeIsPositive) {
|
|
127
|
-
|
|
122
|
+
shapeIntersection.entry = surfaceIntersection;
|
|
128
123
|
}
|
|
129
124
|
|
|
130
125
|
// exiting positive or entering negative after being inside positive
|
|
131
|
-
// TODO: Can this be simplified?
|
|
132
126
|
bool exitPositive = !enter && currShapeIsPositive && ix.surroundCount == 0;
|
|
133
127
|
bool enterNegativeFromPositive = enter && !currShapeIsPositive && ix.surroundCount == 2 && ix.surroundIsPositive;
|
|
134
128
|
if (exitPositive || enterNegativeFromPositive) {
|
|
135
|
-
|
|
129
|
+
shapeIntersection.exit = surfaceIntersection;
|
|
136
130
|
|
|
137
131
|
// entry and exit have been found, so the loop can stop
|
|
138
132
|
if (exitPositive) {
|
|
@@ -143,9 +137,8 @@ vec2 nextIntersection(inout Intersections ix) {
|
|
|
143
137
|
}
|
|
144
138
|
}
|
|
145
139
|
|
|
146
|
-
return
|
|
140
|
+
return shapeIntersection;
|
|
147
141
|
}
|
|
148
142
|
#endif
|
|
149
143
|
|
|
150
144
|
// NOTE: initializeIntersections, nextIntersection aren't even declared unless INTERSECTION_COUNT > 1
|
|
151
|
-
// export { NO_HIT, INF_HIT, Ray, Intersections, getIntersectionPair, setIntersectionPair, initializeIntersections, nextIntersection };
|
|
@@ -5,59 +5,61 @@ export default "/* Intersection defines\n\
|
|
|
5
5
|
\n\
|
|
6
6
|
#define NO_HIT (-czm_infinity)\n\
|
|
7
7
|
#define INF_HIT (czm_infinity * 0.5)\n\
|
|
8
|
+
#define RAY_SHIFT (0.000003163)\n\
|
|
9
|
+
#define RAY_SCALE (1.003163)\n\
|
|
8
10
|
\n\
|
|
9
11
|
struct Ray {\n\
|
|
10
12
|
vec3 pos;\n\
|
|
11
13
|
vec3 dir;\n\
|
|
14
|
+
#if defined(SHAPE_BOX)\n\
|
|
15
|
+
vec3 dInv;\n\
|
|
16
|
+
#endif\n\
|
|
17
|
+
};\n\
|
|
18
|
+
\n\
|
|
19
|
+
struct RayShapeIntersection {\n\
|
|
20
|
+
vec4 entry;\n\
|
|
21
|
+
vec4 exit;\n\
|
|
12
22
|
};\n\
|
|
13
23
|
\n\
|
|
14
24
|
struct Intersections {\n\
|
|
15
25
|
// Don't access these member variables directly - call the functions instead.\n\
|
|
16
26
|
\n\
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
// Store an array of ray-surface intersections. Each intersection is composed of:\n\
|
|
28
|
+
// .xyz for the surface normal at the intersection point\n\
|
|
29
|
+
// .w for the T value\n\
|
|
30
|
+
// The scale of the normal encodes the shape intersection type:\n\
|
|
31
|
+
// length(intersection.xyz) = 1: positive shape entry\n\
|
|
32
|
+
// length(intersection.xyz) = 2: positive shape exit\n\
|
|
33
|
+
// length(intersection.xyz) = 3: negative shape entry\n\
|
|
34
|
+
// length(intersection.xyz) = 4: negative shape exit\n\
|
|
35
|
+
// INTERSECTION_COUNT is the number of ray-*shape* (volume) intersections,\n\
|
|
36
|
+
// so we need twice as many to track ray-*surface* intersections\n\
|
|
37
|
+
vec4 intersections[INTERSECTION_COUNT * 2];\n\
|
|
27
38
|
\n\
|
|
39
|
+
#if (INTERSECTION_COUNT > 1)\n\
|
|
28
40
|
// Maintain state for future nextIntersection calls\n\
|
|
29
41
|
int index;\n\
|
|
30
42
|
int surroundCount;\n\
|
|
31
43
|
bool surroundIsPositive;\n\
|
|
32
|
-
#else\n\
|
|
33
|
-
// When there's only one positive shape intersection none of the extra stuff is needed.\n\
|
|
34
|
-
float intersections[2];\n\
|
|
35
44
|
#endif\n\
|
|
36
45
|
};\n\
|
|
37
46
|
\n\
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
#define getIntersection(/*inout Intersections*/ ix, /*int*/ index) (ix).intersections[(index)]\n\
|
|
43
|
-
#endif\n\
|
|
44
|
-
\n\
|
|
45
|
-
// Using a define instead of a real function because WebGL1 cannot access array with non-constant index.\n\
|
|
46
|
-
#define getIntersectionPair(/*inout Intersections*/ ix, /*int*/ index) vec2(getIntersection((ix), (index) * 2 + 0), getIntersection((ix), (index) * 2 + 1))\n\
|
|
47
|
+
RayShapeIntersection getFirstIntersection(in Intersections ix) \n\
|
|
48
|
+
{\n\
|
|
49
|
+
return RayShapeIntersection(ix.intersections[0], ix.intersections[1]);\n\
|
|
50
|
+
}\n\
|
|
47
51
|
\n\
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
#endif\n\
|
|
52
|
+
vec4 encodeIntersectionType(vec4 intersection, int index, bool entry)\n\
|
|
53
|
+
{\n\
|
|
54
|
+
float scale = float(index > 0) * 2.0 + float(!entry) + 1.0;\n\
|
|
55
|
+
return vec4(intersection.xyz * scale, intersection.w);\n\
|
|
56
|
+
}\n\
|
|
54
57
|
\n\
|
|
55
|
-
//
|
|
56
|
-
#
|
|
57
|
-
|
|
58
|
-
#
|
|
59
|
-
|
|
60
|
-
#endif\n\
|
|
58
|
+
// Use defines instead of real functions because WebGL1 cannot access array with non-constant index.\n\
|
|
59
|
+
#define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = vec4(0.0, float(!positive) * 2.0 + float(!enter) + 1.0, 0.0, (t))\n\
|
|
60
|
+
#define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec4(0.0, float((index) > 0) * 2.0 + 1.0, 0.0, (entryExit).x); (ix).intersections[(index) * 2 + 1] = vec4(0.0, float((index) > 0) * 2.0 + 2.0, 0.0, (entryExit).y)\n\
|
|
61
|
+
#define setSurfaceIntersection(/*inout Intersections*/ ix, /*int*/ index, /*vec4*/ intersection) (ix).intersections[(index)] = intersection;\n\
|
|
62
|
+
#define setShapeIntersection(/*inout Intersections*/ ix, /*int*/ index, /*RayShapeIntersection*/ intersection) (ix).intersections[(index) * 2 + 0] = encodeIntersectionType((intersection).entry, (index), true); (ix).intersections[(index) * 2 + 1] = encodeIntersectionType((intersection).exit, (index), false)\n\
|
|
61
63
|
\n\
|
|
62
64
|
#if (INTERSECTION_COUNT > 1)\n\
|
|
63
65
|
void initializeIntersections(inout Intersections ix) {\n\
|
|
@@ -71,21 +73,13 @@ void initializeIntersections(inout Intersections ix) {\n\
|
|
|
71
73
|
// loop with non-constant condition, so it has to break early instead\n\
|
|
72
74
|
if (i >= n) { break; }\n\
|
|
73
75
|
\n\
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
\n\
|
|
77
|
-
float t0 = intersect0.x;\n\
|
|
78
|
-
float t1 = intersect1.x;\n\
|
|
79
|
-
float b0 = intersect0.y;\n\
|
|
80
|
-
float b1 = intersect1.y;\n\
|
|
76
|
+
vec4 intersect0 = ix.intersections[i + 0];\n\
|
|
77
|
+
vec4 intersect1 = ix.intersections[i + 1];\n\
|
|
81
78
|
\n\
|
|
82
|
-
|
|
83
|
-
float tmax = max(t0, t1);\n\
|
|
84
|
-
float bmin = tmin == t0 ? b0 : b1;\n\
|
|
85
|
-
float bmax = tmin == t0 ? b1 : b0;\n\
|
|
79
|
+
bool inOrder = intersect0.w <= intersect1.w;\n\
|
|
86
80
|
\n\
|
|
87
|
-
ix.intersections[i + 0] =
|
|
88
|
-
ix.intersections[i + 1] =
|
|
81
|
+
ix.intersections[i + 0] = inOrder ? intersect0 : intersect1;\n\
|
|
82
|
+
ix.intersections[i + 1] = inOrder ? intersect1 : intersect0;\n\
|
|
89
83
|
}\n\
|
|
90
84
|
}\n\
|
|
91
85
|
\n\
|
|
@@ -97,13 +91,14 @@ void initializeIntersections(inout Intersections ix) {\n\
|
|
|
97
91
|
#endif\n\
|
|
98
92
|
\n\
|
|
99
93
|
#if (INTERSECTION_COUNT > 1)\n\
|
|
100
|
-
|
|
101
|
-
|
|
94
|
+
RayShapeIntersection nextIntersection(inout Intersections ix) {\n\
|
|
95
|
+
vec4 surfaceIntersection = vec4(0.0, 0.0, 0.0, NO_HIT);\n\
|
|
96
|
+
RayShapeIntersection shapeIntersection = RayShapeIntersection(surfaceIntersection, surfaceIntersection);\n\
|
|
102
97
|
\n\
|
|
103
98
|
const int passCount = INTERSECTION_COUNT * 2;\n\
|
|
104
99
|
\n\
|
|
105
100
|
if (ix.index == passCount) {\n\
|
|
106
|
-
return
|
|
101
|
+
return shapeIntersection;\n\
|
|
107
102
|
}\n\
|
|
108
103
|
\n\
|
|
109
104
|
for (int i = 0; i < passCount; ++i) {\n\
|
|
@@ -115,25 +110,24 @@ vec2 nextIntersection(inout Intersections ix) {\n\
|
|
|
115
110
|
\n\
|
|
116
111
|
ix.index = i + 1;\n\
|
|
117
112
|
\n\
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
bool currShapeIsPositive =
|
|
121
|
-
bool enter =
|
|
113
|
+
surfaceIntersection = ix.intersections[i];\n\
|
|
114
|
+
int intersectionType = int(length(surfaceIntersection.xyz) - 0.5);\n\
|
|
115
|
+
bool currShapeIsPositive = intersectionType < 2;\n\
|
|
116
|
+
bool enter = intMod(intersectionType, 2) == 0;\n\
|
|
122
117
|
\n\
|
|
123
118
|
ix.surroundCount += enter ? +1 : -1;\n\
|
|
124
119
|
ix.surroundIsPositive = currShapeIsPositive ? enter : ix.surroundIsPositive;\n\
|
|
125
120
|
\n\
|
|
126
121
|
// entering positive or exiting negative\n\
|
|
127
122
|
if (ix.surroundCount == 1 && ix.surroundIsPositive && enter == currShapeIsPositive) {\n\
|
|
128
|
-
|
|
123
|
+
shapeIntersection.entry = surfaceIntersection;\n\
|
|
129
124
|
}\n\
|
|
130
125
|
\n\
|
|
131
126
|
// exiting positive or entering negative after being inside positive\n\
|
|
132
|
-
// TODO: Can this be simplified?\n\
|
|
133
127
|
bool exitPositive = !enter && currShapeIsPositive && ix.surroundCount == 0;\n\
|
|
134
128
|
bool enterNegativeFromPositive = enter && !currShapeIsPositive && ix.surroundCount == 2 && ix.surroundIsPositive;\n\
|
|
135
129
|
if (exitPositive || enterNegativeFromPositive) {\n\
|
|
136
|
-
|
|
130
|
+
shapeIntersection.exit = surfaceIntersection;\n\
|
|
137
131
|
\n\
|
|
138
132
|
// entry and exit have been found, so the loop can stop\n\
|
|
139
133
|
if (exitPositive) {\n\
|
|
@@ -144,10 +138,9 @@ vec2 nextIntersection(inout Intersections ix) {\n\
|
|
|
144
138
|
}\n\
|
|
145
139
|
}\n\
|
|
146
140
|
\n\
|
|
147
|
-
return
|
|
141
|
+
return shapeIntersection;\n\
|
|
148
142
|
}\n\
|
|
149
143
|
#endif\n\
|
|
150
144
|
\n\
|
|
151
145
|
// NOTE: initializeIntersections, nextIntersection aren't even declared unless INTERSECTION_COUNT > 1\n\
|
|
152
|
-
// export { NO_HIT, INF_HIT, Ray, Intersections, getIntersectionPair, setIntersectionPair, initializeIntersections, nextIntersection };\n\
|
|
153
146
|
";
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
uniform sampler2D u_octreeInternalNodeTexture;
|
|
9
9
|
uniform vec2 u_octreeInternalNodeTexelSizeUv;
|
|
10
10
|
uniform int u_octreeInternalNodeTilesPerRow;
|
|
11
|
+
#if (SAMPLE_COUNT > 1)
|
|
11
12
|
uniform sampler2D u_octreeLeafNodeTexture;
|
|
12
13
|
uniform vec2 u_octreeLeafNodeTexelSizeUv;
|
|
13
14
|
uniform int u_octreeLeafNodeTilesPerRow;
|
|
14
|
-
|
|
15
|
-
uniform float u_stepSize;
|
|
15
|
+
#endif
|
|
16
16
|
|
|
17
17
|
struct OctreeNodeData {
|
|
18
18
|
int data;
|
|
@@ -20,14 +20,13 @@ struct OctreeNodeData {
|
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
struct TraversalData {
|
|
23
|
-
float stepT;
|
|
24
23
|
ivec4 octreeCoords;
|
|
25
24
|
int parentOctreeIndex;
|
|
26
25
|
};
|
|
27
26
|
|
|
28
27
|
struct SampleData {
|
|
29
28
|
int megatextureIndex;
|
|
30
|
-
|
|
29
|
+
ivec4 tileCoords;
|
|
31
30
|
vec3 tileUv;
|
|
32
31
|
#if (SAMPLE_COUNT > 1)
|
|
33
32
|
float weight;
|
|
@@ -79,52 +78,53 @@ int getOctreeParentIndex(in int octreeIndex) {
|
|
|
79
78
|
* into the uv-space of a tile within the tileset
|
|
80
79
|
*/
|
|
81
80
|
vec3 getTileUv(in vec3 shapePosition, in ivec4 octreeCoords) {
|
|
82
|
-
//
|
|
81
|
+
// PERFORMANCE_IDEA: use bit-shifting (only in WebGL2)
|
|
83
82
|
float dimAtLevel = pow(2.0, float(octreeCoords.w));
|
|
84
83
|
return shapePosition * dimAtLevel - vec3(octreeCoords.xyz);
|
|
85
84
|
}
|
|
86
85
|
|
|
87
|
-
void
|
|
88
|
-
|
|
86
|
+
void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) {
|
|
87
|
+
sampleData.megatextureIndex = data.data;
|
|
88
|
+
sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT)
|
|
89
89
|
? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)
|
|
90
90
|
: octreeCoords;
|
|
91
|
-
sampleData.tileUv = getTileUv(shapePosition, sampleCoords);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
void getOctreeLeafSampleData(in OctreeNodeData data, out SampleData sampleData) {
|
|
95
|
-
sampleData.megatextureIndex = data.data;
|
|
96
|
-
sampleData.usingParentMegatextureIndex = data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT;
|
|
97
91
|
}
|
|
98
92
|
|
|
99
93
|
#if (SAMPLE_COUNT > 1)
|
|
100
|
-
void getOctreeLeafSampleDatas(in OctreeNodeData data,
|
|
94
|
+
void getOctreeLeafSampleDatas(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleDatas[SAMPLE_COUNT]) {
|
|
101
95
|
int leafIndex = data.data;
|
|
102
96
|
int leafNodeTexelCount = 2;
|
|
103
97
|
// Adding 0.5 moves to the center of the texel
|
|
104
98
|
float leafCoordXStart = float(intMod(leafIndex, u_octreeLeafNodeTilesPerRow) * leafNodeTexelCount) + 0.5;
|
|
105
99
|
float leafCoordY = float(leafIndex / u_octreeLeafNodeTilesPerRow) + 0.5;
|
|
106
100
|
|
|
101
|
+
// Get an interpolation weight and a flag to determine whether to read the parent texture
|
|
107
102
|
vec2 leafUv0 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 0.0, leafCoordY);
|
|
108
|
-
vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY);
|
|
109
103
|
vec4 leafData0 = texture(u_octreeLeafNodeTexture, leafUv0);
|
|
110
|
-
vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1);
|
|
111
|
-
|
|
112
104
|
float lerp = normU8x2_toFloat(leafData0.xy);
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
sampleData1.megatextureIndex = normU8x2_toInt(leafData1.zw);
|
|
105
|
+
sampleDatas[0].weight = 1.0 - lerp;
|
|
106
|
+
sampleDatas[1].weight = lerp;
|
|
116
107
|
// TODO: this looks wrong? Should be comparing to OCTREE_FLAG_PACKED_LEAF_FROM_PARENT
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
108
|
+
sampleDatas[0].tileCoords = (normU8_toInt(leafData0.z) == 1)
|
|
109
|
+
? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)
|
|
110
|
+
: octreeCoords;
|
|
111
|
+
sampleDatas[1].tileCoords = (normU8_toInt(leafData0.w) == 1)
|
|
112
|
+
? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)
|
|
113
|
+
: octreeCoords;
|
|
114
|
+
|
|
115
|
+
// Get megatexture indices for both samples
|
|
116
|
+
vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY);
|
|
117
|
+
vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1);
|
|
118
|
+
sampleDatas[0].megatextureIndex = normU8x2_toInt(leafData1.xy);
|
|
119
|
+
sampleDatas[1].megatextureIndex = normU8x2_toInt(leafData1.zw);
|
|
121
120
|
}
|
|
122
121
|
#endif
|
|
123
122
|
|
|
124
|
-
|
|
123
|
+
OctreeNodeData traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData) {
|
|
125
124
|
float sizeAtLevel = 1.0 / pow(2.0, float(traversalData.octreeCoords.w));
|
|
126
125
|
vec3 start = vec3(traversalData.octreeCoords.xyz) * sizeAtLevel;
|
|
127
126
|
vec3 end = start + vec3(sizeAtLevel);
|
|
127
|
+
OctreeNodeData childData;
|
|
128
128
|
|
|
129
129
|
for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) {
|
|
130
130
|
// Find out which octree child contains the position
|
|
@@ -132,32 +132,24 @@ void traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversa
|
|
|
132
132
|
vec3 center = 0.5 * (start + end);
|
|
133
133
|
vec3 childCoord = step(center, shapePosition);
|
|
134
134
|
|
|
135
|
-
OctreeNodeData childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord));
|
|
136
|
-
|
|
137
135
|
// Get octree coords for the next level down
|
|
138
136
|
ivec4 octreeCoords = traversalData.octreeCoords;
|
|
139
137
|
traversalData.octreeCoords = ivec4(octreeCoords.xyz * 2 + ivec3(childCoord), octreeCoords.w + 1);
|
|
140
138
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
end = mix(center, end, childCoord);
|
|
145
|
-
traversalData.parentOctreeIndex = childData.data;
|
|
146
|
-
} else {
|
|
139
|
+
childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord));
|
|
140
|
+
|
|
141
|
+
if (childData.flag != OCTREE_FLAG_INTERNAL) {
|
|
147
142
|
// leaf tile - stop traversing
|
|
148
|
-
|
|
149
|
-
traversalData.stepT = u_stepSize / dimAtLevel;
|
|
150
|
-
#if (SAMPLE_COUNT == 1)
|
|
151
|
-
getOctreeLeafSampleData(childData, sampleDatas[0]);
|
|
152
|
-
setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);
|
|
153
|
-
#else
|
|
154
|
-
getOctreeLeafSampleDatas(childData, sampleDatas[0], sampleDatas[1]);
|
|
155
|
-
setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);
|
|
156
|
-
setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[1]);
|
|
157
|
-
#endif
|
|
158
|
-
return;
|
|
143
|
+
break;
|
|
159
144
|
}
|
|
145
|
+
|
|
146
|
+
// interior tile - keep going deeper
|
|
147
|
+
start = mix(start, center, childCoord);
|
|
148
|
+
end = mix(center, end, childCoord);
|
|
149
|
+
traversalData.parentOctreeIndex = childData.data;
|
|
160
150
|
}
|
|
151
|
+
|
|
152
|
+
return childData;
|
|
161
153
|
}
|
|
162
154
|
|
|
163
155
|
/**
|
|
@@ -168,21 +160,19 @@ void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traver
|
|
|
168
160
|
traversalData.octreeCoords = ivec4(0);
|
|
169
161
|
traversalData.parentOctreeIndex = 0;
|
|
170
162
|
|
|
171
|
-
OctreeNodeData
|
|
172
|
-
if (
|
|
173
|
-
|
|
174
|
-
traversalData.stepT = u_stepSize;
|
|
175
|
-
#if (SAMPLE_COUNT == 1)
|
|
176
|
-
getOctreeLeafSampleData(rootData, sampleDatas[0]);
|
|
177
|
-
setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);
|
|
178
|
-
#else
|
|
179
|
-
getOctreeLeafSampleDatas(rootData, sampleDatas[0], sampleDatas[1]);
|
|
180
|
-
setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);
|
|
181
|
-
setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[1]);
|
|
182
|
-
#endif
|
|
183
|
-
} else {
|
|
184
|
-
traverseOctreeDownwards(shapePosition, traversalData, sampleDatas);
|
|
163
|
+
OctreeNodeData nodeData = getOctreeNodeData(vec2(0.0));
|
|
164
|
+
if (nodeData.flag != OCTREE_FLAG_LEAF) {
|
|
165
|
+
nodeData = traverseOctreeDownwards(shapePosition, traversalData);
|
|
185
166
|
}
|
|
167
|
+
|
|
168
|
+
#if (SAMPLE_COUNT == 1)
|
|
169
|
+
getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);
|
|
170
|
+
sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);
|
|
171
|
+
#else
|
|
172
|
+
getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);
|
|
173
|
+
sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);
|
|
174
|
+
sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords);
|
|
175
|
+
#endif
|
|
186
176
|
}
|
|
187
177
|
|
|
188
178
|
bool inRange(in vec3 v, in vec3 minVal, in vec3 maxVal) {
|
|
@@ -199,23 +189,32 @@ bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) {
|
|
|
199
189
|
void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) {
|
|
200
190
|
if (insideTile(shapePosition, traversalData.octreeCoords)) {
|
|
201
191
|
for (int i = 0; i < SAMPLE_COUNT; i++) {
|
|
202
|
-
|
|
192
|
+
sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);
|
|
203
193
|
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
break;
|
|
215
|
-
}
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// Go up tree until we find a parent tile containing shapePosition
|
|
198
|
+
for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) {
|
|
199
|
+
traversalData.octreeCoords.xyz /= 2;
|
|
200
|
+
traversalData.octreeCoords.w -= 1;
|
|
201
|
+
|
|
202
|
+
if (insideTile(shapePosition, traversalData.octreeCoords)) {
|
|
203
|
+
break;
|
|
216
204
|
}
|
|
217
205
|
|
|
218
|
-
|
|
219
|
-
traverseOctreeDownwards(shapePosition, traversalData, sampleDatas);
|
|
206
|
+
traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex);
|
|
220
207
|
}
|
|
208
|
+
|
|
209
|
+
// Go down tree
|
|
210
|
+
OctreeNodeData nodeData = traverseOctreeDownwards(shapePosition, traversalData);
|
|
211
|
+
|
|
212
|
+
#if (SAMPLE_COUNT == 1)
|
|
213
|
+
getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);
|
|
214
|
+
sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);
|
|
215
|
+
#else
|
|
216
|
+
getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);
|
|
217
|
+
sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);
|
|
218
|
+
sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords);
|
|
219
|
+
#endif
|
|
221
220
|
}
|