@cesium/engine 0.1.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/ThirdParty/Workers/basis_transcoder.js +2233 -0
- package/Build/ThirdParty/Workers/draco_decoder_nodejs.js +1872 -0
- package/Build/ThirdParty/Workers/package.json +1 -0
- package/Build/ThirdParty/Workers/pako_deflate.min.js +589 -0
- package/Build/ThirdParty/Workers/pako_inflate.min.js +798 -0
- package/Build/ThirdParty/Workers/z-worker-pako.js +503 -0
- package/Build/ThirdParty/basis_transcoder.wasm +0 -0
- package/Build/ThirdParty/draco_decoder.wasm +0 -0
- package/Build/ThirdParty/google-earth-dbroot-parser.js +8019 -0
- package/Build/Widget/CesiumWidget.css +120 -0
- package/Build/Widget/lighter.css +13 -0
- package/Build/Workers/ArcType-ce2e50ab.js +37 -0
- package/Build/Workers/AttributeCompression-4589338a.js +716 -0
- package/Build/Workers/AxisAlignedBoundingBox-bfb1234f.js +258 -0
- package/Build/Workers/BoundingRectangle-7ffc2153.js +369 -0
- package/Build/Workers/BoxGeometry-93f344a3.js +884 -0
- package/Build/Workers/Check-666ab1a0.js +290 -0
- package/Build/Workers/Color-0c5aaf47.js +2262 -0
- package/Build/Workers/ComponentDatatype-f7b11d02.js +341 -0
- package/Build/Workers/CoplanarPolygonGeometryLibrary-6597982a.js +132 -0
- package/Build/Workers/CorridorGeometryLibrary-2119580e.js +498 -0
- package/Build/Workers/CylinderGeometry-f9503c6d.js +467 -0
- package/Build/Workers/CylinderGeometryLibrary-372c07d8.js +63 -0
- package/Build/Workers/EllipseGeometry-fedf72d5.js +1304 -0
- package/Build/Workers/EllipseGeometryLibrary-4ea68687.js +366 -0
- package/Build/Workers/EllipseOutlineGeometry-e2ae6a35.js +443 -0
- package/Build/Workers/EllipsoidGeodesic-16de63ea.js +520 -0
- package/Build/Workers/EllipsoidGeometry-95c0330e.js +637 -0
- package/Build/Workers/EllipsoidOutlineGeometry-d6d2ceec.js +454 -0
- package/Build/Workers/EllipsoidRhumbLine-ae5e65e0.js +741 -0
- package/Build/Workers/EllipsoidTangentPlane-bfc674bf.js +373 -0
- package/Build/Workers/EncodedCartesian3-f473ea18.js +171 -0
- package/Build/Workers/FrustumGeometry-3bf2e4eb.js +2512 -0
- package/Build/Workers/GeometryAttribute-df5f473e.js +619 -0
- package/Build/Workers/GeometryAttributes-f06a2792.js +91 -0
- package/Build/Workers/GeometryInstance-aa75b4cf.js +121 -0
- package/Build/Workers/GeometryOffsetAttribute-04332ce7.js +16 -0
- package/Build/Workers/GeometryPipeline-f0e46c42.js +3690 -0
- package/Build/Workers/IndexDatatype-a55ceaa1.js +200 -0
- package/Build/Workers/IntersectionTests-9de29d51.js +1836 -0
- package/Build/Workers/Math-2dbd6b93.js +1330 -0
- package/Build/Workers/Matrix2-ce637455.js +7084 -0
- package/Build/Workers/Matrix3-4f4df527.js +4282 -0
- package/Build/Workers/OrientedBoundingBox-d3ff3d4d.js +1257 -0
- package/Build/Workers/Plane-b81241c2.js +309 -0
- package/Build/Workers/PolygonGeometryLibrary-6f4937bb.js +1074 -0
- package/Build/Workers/PolygonPipeline-774a8aaf.js +1341 -0
- package/Build/Workers/PolylinePipeline-2e2b015c.js +573 -0
- package/Build/Workers/PolylineVolumeGeometryLibrary-7ee1d449.js +781 -0
- package/Build/Workers/PrimitivePipeline-a9b7aae0.js +966 -0
- package/Build/Workers/RectangleGeometryLibrary-9aa6c8f6.js +280 -0
- package/Build/Workers/RuntimeError-06c93819.js +68 -0
- package/Build/Workers/TerrainEncoding-b52dcfc5.js +1227 -0
- package/Build/Workers/Transforms-2f755df8.js +14683 -0
- package/Build/Workers/VertexFormat-6b480673.js +312 -0
- package/Build/Workers/WallGeometryLibrary-ab19a93d.js +211 -0
- package/Build/Workers/WebGLConstants-a8cc3e8c.js +620 -0
- package/Build/Workers/WebMercatorProjection-9f25de49.js +151 -0
- package/Build/Workers/arrayRemoveDuplicates-c2038105.js +129 -0
- package/Build/Workers/cesiumWorkerBootstrapper.js +1273 -0
- package/Build/Workers/combine-ca22a614.js +82 -0
- package/Build/Workers/combineGeometry.js +17 -0
- package/Build/Workers/createBoxGeometry.js +12 -0
- package/Build/Workers/createBoxOutlineGeometry.js +313 -0
- package/Build/Workers/createCircleGeometry.js +213 -0
- package/Build/Workers/createCircleOutlineGeometry.js +160 -0
- package/Build/Workers/createCoplanarPolygonGeometry.js +586 -0
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +236 -0
- package/Build/Workers/createCorridorGeometry.js +1407 -0
- package/Build/Workers/createCorridorOutlineGeometry.js +603 -0
- package/Build/Workers/createCylinderGeometry.js +12 -0
- package/Build/Workers/createCylinderOutlineGeometry.js +265 -0
- package/Build/Workers/createEllipseGeometry.js +14 -0
- package/Build/Workers/createEllipseOutlineGeometry.js +14 -0
- package/Build/Workers/createEllipsoidGeometry.js +12 -0
- package/Build/Workers/createEllipsoidOutlineGeometry.js +15 -0
- package/Build/Workers/createFrustumGeometry.js +12 -0
- package/Build/Workers/createFrustumOutlineGeometry.js +251 -0
- package/Build/Workers/createGeometry.js +55 -0
- package/Build/Workers/createGroundPolylineGeometry.js +2134 -0
- package/Build/Workers/createPlaneGeometry.js +250 -0
- package/Build/Workers/createPlaneOutlineGeometry.js +115 -0
- package/Build/Workers/createPolygonGeometry.js +1420 -0
- package/Build/Workers/createPolygonOutlineGeometry.js +683 -0
- package/Build/Workers/createPolylineGeometry.js +571 -0
- package/Build/Workers/createPolylineVolumeGeometry.js +411 -0
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +301 -0
- package/Build/Workers/createRectangleGeometry.js +1476 -0
- package/Build/Workers/createRectangleOutlineGeometry.js +535 -0
- package/Build/Workers/createSimplePolylineGeometry.js +458 -0
- package/Build/Workers/createSphereGeometry.js +123 -0
- package/Build/Workers/createSphereOutlineGeometry.js +126 -0
- package/Build/Workers/createTaskProcessorWorker.js +127 -0
- package/Build/Workers/createVectorTileClampedPolylines.js +535 -0
- package/Build/Workers/createVectorTileGeometries.js +445 -0
- package/Build/Workers/createVectorTilePoints.js +79 -0
- package/Build/Workers/createVectorTilePolygons.js +406 -0
- package/Build/Workers/createVectorTilePolylines.js +254 -0
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +640 -0
- package/Build/Workers/createVerticesFromHeightmap.js +2707 -0
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +994 -0
- package/Build/Workers/createWallGeometry.js +623 -0
- package/Build/Workers/createWallOutlineGeometry.js +432 -0
- package/Build/Workers/decodeDraco.js +381 -0
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +3668 -0
- package/Build/Workers/decodeI3S.js +1040 -0
- package/Build/Workers/defaultValue-0a909f67.js +51 -0
- package/Build/Workers/package.js +2 -0
- package/Build/Workers/transcodeKTX2.js +1516 -0
- package/Build/Workers/transferTypedArrayTest.js +18 -0
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +1023 -0
- package/LICENSE.md +933 -0
- package/README.md +58 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_0.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_1.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_10.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_11.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_12.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_13.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_14.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_15.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_16.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_17.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_18.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_19.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_2.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_20.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_21.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_22.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_23.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_24.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_25.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_26.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_27.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_3.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_4.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_5.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_6.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_7.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_8.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_9.json +1 -0
- package/Source/Assets/Images/bing_maps_credit.png +0 -0
- package/Source/Assets/Images/cesium_credit.png +0 -0
- package/Source/Assets/Images/google_earth_credit.png +0 -0
- package/Source/Assets/Images/ion-credit.png +0 -0
- package/Source/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
- package/Source/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/tilemapresource.xml +14 -0
- package/Source/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
- package/Source/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
- package/Source/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
- package/Source/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
- package/Source/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
- package/Source/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
- package/Source/Assets/Textures/maki/airfield.png +0 -0
- package/Source/Assets/Textures/maki/airport.png +0 -0
- package/Source/Assets/Textures/maki/alcohol-shop.png +0 -0
- package/Source/Assets/Textures/maki/america-football.png +0 -0
- package/Source/Assets/Textures/maki/art-gallery.png +0 -0
- package/Source/Assets/Textures/maki/bakery.png +0 -0
- package/Source/Assets/Textures/maki/bank.png +0 -0
- package/Source/Assets/Textures/maki/bar.png +0 -0
- package/Source/Assets/Textures/maki/baseball.png +0 -0
- package/Source/Assets/Textures/maki/basketball.png +0 -0
- package/Source/Assets/Textures/maki/beer.png +0 -0
- package/Source/Assets/Textures/maki/bicycle.png +0 -0
- package/Source/Assets/Textures/maki/building.png +0 -0
- package/Source/Assets/Textures/maki/bus.png +0 -0
- package/Source/Assets/Textures/maki/cafe.png +0 -0
- package/Source/Assets/Textures/maki/camera.png +0 -0
- package/Source/Assets/Textures/maki/campsite.png +0 -0
- package/Source/Assets/Textures/maki/car.png +0 -0
- package/Source/Assets/Textures/maki/cemetery.png +0 -0
- package/Source/Assets/Textures/maki/cesium.png +0 -0
- package/Source/Assets/Textures/maki/chemist.png +0 -0
- package/Source/Assets/Textures/maki/cinema.png +0 -0
- package/Source/Assets/Textures/maki/circle-stroked.png +0 -0
- package/Source/Assets/Textures/maki/circle.png +0 -0
- package/Source/Assets/Textures/maki/city.png +0 -0
- package/Source/Assets/Textures/maki/clothing-store.png +0 -0
- package/Source/Assets/Textures/maki/college.png +0 -0
- package/Source/Assets/Textures/maki/commercial.png +0 -0
- package/Source/Assets/Textures/maki/cricket.png +0 -0
- package/Source/Assets/Textures/maki/cross.png +0 -0
- package/Source/Assets/Textures/maki/dam.png +0 -0
- package/Source/Assets/Textures/maki/danger.png +0 -0
- package/Source/Assets/Textures/maki/disability.png +0 -0
- package/Source/Assets/Textures/maki/dog-park.png +0 -0
- package/Source/Assets/Textures/maki/embassy.png +0 -0
- package/Source/Assets/Textures/maki/emergency-telephone.png +0 -0
- package/Source/Assets/Textures/maki/entrance.png +0 -0
- package/Source/Assets/Textures/maki/farm.png +0 -0
- package/Source/Assets/Textures/maki/fast-food.png +0 -0
- package/Source/Assets/Textures/maki/ferry.png +0 -0
- package/Source/Assets/Textures/maki/fire-station.png +0 -0
- package/Source/Assets/Textures/maki/fuel.png +0 -0
- package/Source/Assets/Textures/maki/garden.png +0 -0
- package/Source/Assets/Textures/maki/gift.png +0 -0
- package/Source/Assets/Textures/maki/golf.png +0 -0
- package/Source/Assets/Textures/maki/grocery.png +0 -0
- package/Source/Assets/Textures/maki/hairdresser.png +0 -0
- package/Source/Assets/Textures/maki/harbor.png +0 -0
- package/Source/Assets/Textures/maki/heart.png +0 -0
- package/Source/Assets/Textures/maki/heliport.png +0 -0
- package/Source/Assets/Textures/maki/hospital.png +0 -0
- package/Source/Assets/Textures/maki/ice-cream.png +0 -0
- package/Source/Assets/Textures/maki/industrial.png +0 -0
- package/Source/Assets/Textures/maki/land-use.png +0 -0
- package/Source/Assets/Textures/maki/laundry.png +0 -0
- package/Source/Assets/Textures/maki/library.png +0 -0
- package/Source/Assets/Textures/maki/lighthouse.png +0 -0
- package/Source/Assets/Textures/maki/lodging.png +0 -0
- package/Source/Assets/Textures/maki/logging.png +0 -0
- package/Source/Assets/Textures/maki/london-underground.png +0 -0
- package/Source/Assets/Textures/maki/marker-stroked.png +0 -0
- package/Source/Assets/Textures/maki/marker.png +0 -0
- package/Source/Assets/Textures/maki/minefield.png +0 -0
- package/Source/Assets/Textures/maki/mobilephone.png +0 -0
- package/Source/Assets/Textures/maki/monument.png +0 -0
- package/Source/Assets/Textures/maki/museum.png +0 -0
- package/Source/Assets/Textures/maki/music.png +0 -0
- package/Source/Assets/Textures/maki/oil-well.png +0 -0
- package/Source/Assets/Textures/maki/park.png +0 -0
- package/Source/Assets/Textures/maki/park2.png +0 -0
- package/Source/Assets/Textures/maki/parking-garage.png +0 -0
- package/Source/Assets/Textures/maki/parking.png +0 -0
- package/Source/Assets/Textures/maki/pharmacy.png +0 -0
- package/Source/Assets/Textures/maki/pitch.png +0 -0
- package/Source/Assets/Textures/maki/place-of-worship.png +0 -0
- package/Source/Assets/Textures/maki/playground.png +0 -0
- package/Source/Assets/Textures/maki/police.png +0 -0
- package/Source/Assets/Textures/maki/polling-place.png +0 -0
- package/Source/Assets/Textures/maki/post.png +0 -0
- package/Source/Assets/Textures/maki/prison.png +0 -0
- package/Source/Assets/Textures/maki/rail-above.png +0 -0
- package/Source/Assets/Textures/maki/rail-light.png +0 -0
- package/Source/Assets/Textures/maki/rail-metro.png +0 -0
- package/Source/Assets/Textures/maki/rail-underground.png +0 -0
- package/Source/Assets/Textures/maki/rail.png +0 -0
- package/Source/Assets/Textures/maki/religious-christian.png +0 -0
- package/Source/Assets/Textures/maki/religious-jewish.png +0 -0
- package/Source/Assets/Textures/maki/religious-muslim.png +0 -0
- package/Source/Assets/Textures/maki/restaurant.png +0 -0
- package/Source/Assets/Textures/maki/roadblock.png +0 -0
- package/Source/Assets/Textures/maki/rocket.png +0 -0
- package/Source/Assets/Textures/maki/school.png +0 -0
- package/Source/Assets/Textures/maki/scooter.png +0 -0
- package/Source/Assets/Textures/maki/shop.png +0 -0
- package/Source/Assets/Textures/maki/skiing.png +0 -0
- package/Source/Assets/Textures/maki/slaughterhouse.png +0 -0
- package/Source/Assets/Textures/maki/soccer.png +0 -0
- package/Source/Assets/Textures/maki/square-stroked.png +0 -0
- package/Source/Assets/Textures/maki/square.png +0 -0
- package/Source/Assets/Textures/maki/star-stroked.png +0 -0
- package/Source/Assets/Textures/maki/star.png +0 -0
- package/Source/Assets/Textures/maki/suitcase.png +0 -0
- package/Source/Assets/Textures/maki/swimming.png +0 -0
- package/Source/Assets/Textures/maki/telephone.png +0 -0
- package/Source/Assets/Textures/maki/tennis.png +0 -0
- package/Source/Assets/Textures/maki/theatre.png +0 -0
- package/Source/Assets/Textures/maki/toilets.png +0 -0
- package/Source/Assets/Textures/maki/town-hall.png +0 -0
- package/Source/Assets/Textures/maki/town.png +0 -0
- package/Source/Assets/Textures/maki/triangle-stroked.png +0 -0
- package/Source/Assets/Textures/maki/triangle.png +0 -0
- package/Source/Assets/Textures/maki/village.png +0 -0
- package/Source/Assets/Textures/maki/warehouse.png +0 -0
- package/Source/Assets/Textures/maki/waste-basket.png +0 -0
- package/Source/Assets/Textures/maki/water.png +0 -0
- package/Source/Assets/Textures/maki/wetland.png +0 -0
- package/Source/Assets/Textures/maki/zoo.png +0 -0
- package/Source/Assets/Textures/moonSmall.jpg +0 -0
- package/Source/Assets/Textures/pin.svg +1 -0
- package/Source/Assets/Textures/waterNormals.jpg +0 -0
- package/Source/Assets/Textures/waterNormalsSmall.jpg +0 -0
- package/Source/Assets/approximateTerrainHeights.json +1 -0
- package/Source/Core/ApproximateTerrainHeights.js +256 -0
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +728 -0
- package/Source/Core/ArcType.js +31 -0
- package/Source/Core/ArticulationStageType.js +23 -0
- package/Source/Core/AssociativeArray.js +127 -0
- package/Source/Core/AttributeCompression.js +527 -0
- package/Source/Core/AxisAlignedBoundingBox.js +259 -0
- package/Source/Core/BingMapsGeocoderService.js +107 -0
- package/Source/Core/BoundingRectangle.js +373 -0
- package/Source/Core/BoundingSphere.js +1505 -0
- package/Source/Core/BoxGeometry.js +893 -0
- package/Source/Core/BoxOutlineGeometry.js +314 -0
- package/Source/Core/Cartesian2.js +824 -0
- package/Source/Core/Cartesian3.js +1218 -0
- package/Source/Core/Cartesian4.js +980 -0
- package/Source/Core/Cartographic.js +302 -0
- package/Source/Core/CartographicGeocoderService.js +58 -0
- package/Source/Core/CatmullRomSpline.js +324 -0
- package/Source/Core/CesiumTerrainProvider.js +1318 -0
- package/Source/Core/Check.js +213 -0
- package/Source/Core/CircleGeometry.js +203 -0
- package/Source/Core/CircleOutlineGeometry.js +149 -0
- package/Source/Core/Clock.js +319 -0
- package/Source/Core/ClockRange.js +39 -0
- package/Source/Core/ClockStep.js +38 -0
- package/Source/Core/Color.js +2263 -0
- package/Source/Core/ColorGeometryInstanceAttribute.js +182 -0
- package/Source/Core/ComponentDatatype.js +340 -0
- package/Source/Core/CompressedTextureBuffer.js +114 -0
- package/Source/Core/ConstantSpline.js +119 -0
- package/Source/Core/CoplanarPolygonGeometry.js +599 -0
- package/Source/Core/CoplanarPolygonGeometryLibrary.js +132 -0
- package/Source/Core/CoplanarPolygonOutlineGeometry.js +237 -0
- package/Source/Core/CornerType.js +37 -0
- package/Source/Core/CorridorGeometry.js +1416 -0
- package/Source/Core/CorridorGeometryLibrary.js +501 -0
- package/Source/Core/CorridorOutlineGeometry.js +604 -0
- package/Source/Core/Credit.js +166 -0
- package/Source/Core/CubicRealPolynomial.js +238 -0
- package/Source/Core/CullingVolume.js +217 -0
- package/Source/Core/CustomHeightmapTerrainProvider.js +299 -0
- package/Source/Core/CylinderGeometry.js +479 -0
- package/Source/Core/CylinderGeometryLibrary.js +59 -0
- package/Source/Core/CylinderOutlineGeometry.js +269 -0
- package/Source/Core/DefaultProxy.js +26 -0
- package/Source/Core/DeveloperError.js +75 -0
- package/Source/Core/DistanceDisplayCondition.js +172 -0
- package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +181 -0
- package/Source/Core/DoubleEndedPriorityQueue.js +405 -0
- package/Source/Core/DoublyLinkedList.js +112 -0
- package/Source/Core/EarthOrientationParameters.js +431 -0
- package/Source/Core/EarthOrientationParametersSample.js +52 -0
- package/Source/Core/EasingFunction.js +257 -0
- package/Source/Core/EllipseGeometry.js +1325 -0
- package/Source/Core/EllipseGeometryLibrary.js +365 -0
- package/Source/Core/EllipseOutlineGeometry.js +454 -0
- package/Source/Core/Ellipsoid.js +804 -0
- package/Source/Core/EllipsoidGeodesic.js +523 -0
- package/Source/Core/EllipsoidGeometry.js +649 -0
- package/Source/Core/EllipsoidOutlineGeometry.js +464 -0
- package/Source/Core/EllipsoidRhumbLine.js +745 -0
- package/Source/Core/EllipsoidTangentPlane.js +383 -0
- package/Source/Core/EllipsoidTerrainProvider.js +230 -0
- package/Source/Core/EllipsoidalOccluder.js +559 -0
- package/Source/Core/EncodedCartesian3.js +170 -0
- package/Source/Core/Event.js +164 -0
- package/Source/Core/EventHelper.js +74 -0
- package/Source/Core/ExtrapolationType.js +34 -0
- package/Source/Core/FeatureDetection.js +411 -0
- package/Source/Core/FrustumGeometry.js +583 -0
- package/Source/Core/FrustumOutlineGeometry.js +254 -0
- package/Source/Core/Fullscreen.js +249 -0
- package/Source/Core/GeocodeType.js +24 -0
- package/Source/Core/GeocoderService.js +29 -0
- package/Source/Core/GeographicProjection.js +105 -0
- package/Source/Core/GeographicTilingScheme.js +251 -0
- package/Source/Core/Geometry.js +376 -0
- package/Source/Core/GeometryAttribute.js +138 -0
- package/Source/Core/GeometryAttributes.js +88 -0
- package/Source/Core/GeometryFactory.js +25 -0
- package/Source/Core/GeometryInstance.js +121 -0
- package/Source/Core/GeometryInstanceAttribute.js +138 -0
- package/Source/Core/GeometryOffsetAttribute.js +10 -0
- package/Source/Core/GeometryPipeline.js +3296 -0
- package/Source/Core/GeometryType.js +10 -0
- package/Source/Core/GoogleEarthEnterpriseMetadata.js +597 -0
- package/Source/Core/GoogleEarthEnterpriseTerrainData.js +607 -0
- package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +641 -0
- package/Source/Core/GoogleEarthEnterpriseTileInformation.js +136 -0
- package/Source/Core/GregorianDate.js +69 -0
- package/Source/Core/GroundPolylineGeometry.js +1658 -0
- package/Source/Core/HeadingPitchRange.js +60 -0
- package/Source/Core/HeadingPitchRoll.js +236 -0
- package/Source/Core/Heap.js +234 -0
- package/Source/Core/HeightmapEncoding.js +25 -0
- package/Source/Core/HeightmapTerrainData.js +925 -0
- package/Source/Core/HeightmapTessellator.js +535 -0
- package/Source/Core/HermitePolynomialApproximation.js +342 -0
- package/Source/Core/HermiteSpline.js +620 -0
- package/Source/Core/HilbertOrder.js +118 -0
- package/Source/Core/Iau2000Orientation.js +167 -0
- package/Source/Core/Iau2006XysData.js +277 -0
- package/Source/Core/Iau2006XysSample.js +32 -0
- package/Source/Core/IauOrientationAxes.js +105 -0
- package/Source/Core/IauOrientationParameters.js +54 -0
- package/Source/Core/IndexDatatype.js +199 -0
- package/Source/Core/InterpolationAlgorithm.js +65 -0
- package/Source/Core/InterpolationType.js +14 -0
- package/Source/Core/Intersect.js +34 -0
- package/Source/Core/IntersectionTests.js +1047 -0
- package/Source/Core/Intersections2D.js +358 -0
- package/Source/Core/Interval.js +25 -0
- package/Source/Core/Ion.js +57 -0
- package/Source/Core/IonGeocoderService.js +64 -0
- package/Source/Core/IonResource.js +270 -0
- package/Source/Core/Iso8601.js +54 -0
- package/Source/Core/JulianDate.js +1233 -0
- package/Source/Core/KTX2Transcoder.js +95 -0
- package/Source/Core/KeyboardEventModifier.js +32 -0
- package/Source/Core/LagrangePolynomialApproximation.js +71 -0
- package/Source/Core/LeapSecond.js +24 -0
- package/Source/Core/LinearApproximation.js +83 -0
- package/Source/Core/LinearSpline.js +166 -0
- package/Source/Core/ManagedArray.js +163 -0
- package/Source/Core/MapProjection.js +62 -0
- package/Source/Core/Math.js +1119 -0
- package/Source/Core/Matrix2.js +1092 -0
- package/Source/Core/Matrix3.js +1838 -0
- package/Source/Core/Matrix4.js +3232 -0
- package/Source/Core/MorphWeightSpline.js +161 -0
- package/Source/Core/MortonOrder.js +214 -0
- package/Source/Core/NearFarScalar.js +174 -0
- package/Source/Core/Occluder.js +732 -0
- package/Source/Core/OffsetGeometryInstanceAttribute.js +126 -0
- package/Source/Core/OpenCageGeocoderService.js +118 -0
- package/Source/Core/OrientedBoundingBox.js +1270 -0
- package/Source/Core/OrthographicFrustum.js +338 -0
- package/Source/Core/OrthographicOffCenterFrustum.js +463 -0
- package/Source/Core/Packable.js +40 -0
- package/Source/Core/PackableForInterpolation.js +43 -0
- package/Source/Core/PeliasGeocoderService.js +93 -0
- package/Source/Core/PerspectiveFrustum.js +439 -0
- package/Source/Core/PerspectiveOffCenterFrustum.js +523 -0
- package/Source/Core/PinBuilder.js +234 -0
- package/Source/Core/PixelFormat.js +493 -0
- package/Source/Core/Plane.js +312 -0
- package/Source/Core/PlaneGeometry.js +250 -0
- package/Source/Core/PlaneOutlineGeometry.js +113 -0
- package/Source/Core/PolygonGeometry.js +1436 -0
- package/Source/Core/PolygonGeometryLibrary.js +981 -0
- package/Source/Core/PolygonHierarchy.js +25 -0
- package/Source/Core/PolygonOutlineGeometry.js +692 -0
- package/Source/Core/PolygonPipeline.js +633 -0
- package/Source/Core/PolylineGeometry.js +578 -0
- package/Source/Core/PolylinePipeline.js +580 -0
- package/Source/Core/PolylineVolumeGeometry.js +417 -0
- package/Source/Core/PolylineVolumeGeometryLibrary.js +701 -0
- package/Source/Core/PolylineVolumeOutlineGeometry.js +299 -0
- package/Source/Core/PrimitiveType.js +107 -0
- package/Source/Core/Proxy.js +24 -0
- package/Source/Core/QuadraticRealPolynomial.js +147 -0
- package/Source/Core/QuantizedMeshTerrainData.js +772 -0
- package/Source/Core/QuarticRealPolynomial.js +342 -0
- package/Source/Core/Quaternion.js +1142 -0
- package/Source/Core/QuaternionSpline.js +155 -0
- package/Source/Core/Queue.js +126 -0
- package/Source/Core/Ray.js +80 -0
- package/Source/Core/Rectangle.js +982 -0
- package/Source/Core/RectangleCollisionChecker.js +95 -0
- package/Source/Core/RectangleGeometry.js +1489 -0
- package/Source/Core/RectangleGeometryLibrary.js +283 -0
- package/Source/Core/RectangleOutlineGeometry.js +537 -0
- package/Source/Core/ReferenceFrame.js +23 -0
- package/Source/Core/Request.js +192 -0
- package/Source/Core/RequestErrorEvent.js +58 -0
- package/Source/Core/RequestScheduler.js +520 -0
- package/Source/Core/RequestState.js +55 -0
- package/Source/Core/RequestType.js +39 -0
- package/Source/Core/Resource.js +2307 -0
- package/Source/Core/RuntimeError.js +65 -0
- package/Source/Core/S2Cell.js +811 -0
- package/Source/Core/ScreenSpaceEventHandler.js +1140 -0
- package/Source/Core/ScreenSpaceEventType.js +127 -0
- package/Source/Core/ShowGeometryInstanceAttribute.js +123 -0
- package/Source/Core/Simon1994PlanetaryPositions.js +682 -0
- package/Source/Core/SimplePolylineGeometry.js +457 -0
- package/Source/Core/SphereGeometry.js +118 -0
- package/Source/Core/SphereOutlineGeometry.js +120 -0
- package/Source/Core/Spherical.js +184 -0
- package/Source/Core/Spline.js +189 -0
- package/Source/Core/SteppedSpline.js +160 -0
- package/Source/Core/TaskProcessor.js +377 -0
- package/Source/Core/TerrainData.js +125 -0
- package/Source/Core/TerrainEncoding.js +607 -0
- package/Source/Core/TerrainExaggeration.js +49 -0
- package/Source/Core/TerrainMesh.js +156 -0
- package/Source/Core/TerrainProvider.js +461 -0
- package/Source/Core/TerrainQuantization.js +25 -0
- package/Source/Core/TileAvailability.js +564 -0
- package/Source/Core/TileEdge.js +14 -0
- package/Source/Core/TileProviderError.js +171 -0
- package/Source/Core/TilingScheme.js +132 -0
- package/Source/Core/TimeConstants.js +83 -0
- package/Source/Core/TimeInterval.js +438 -0
- package/Source/Core/TimeIntervalCollection.js +1136 -0
- package/Source/Core/TimeStandard.js +30 -0
- package/Source/Core/Tipsify.js +314 -0
- package/Source/Core/Transforms.js +1132 -0
- package/Source/Core/TranslationRotationScale.js +60 -0
- package/Source/Core/TridiagonalSystemSolver.js +113 -0
- package/Source/Core/TrustedServers.js +146 -0
- package/Source/Core/VRTheWorldTerrainProvider.js +450 -0
- package/Source/Core/VertexFormat.js +311 -0
- package/Source/Core/VideoSynchronizer.js +222 -0
- package/Source/Core/Visibility.js +34 -0
- package/Source/Core/VulkanConstants.js +286 -0
- package/Source/Core/WallGeometry.js +626 -0
- package/Source/Core/WallGeometryLibrary.js +212 -0
- package/Source/Core/WallOutlineGeometry.js +434 -0
- package/Source/Core/WebGLConstants.js +614 -0
- package/Source/Core/WebMercatorProjection.js +154 -0
- package/Source/Core/WebMercatorTilingScheme.js +297 -0
- package/Source/Core/WindingOrder.js +36 -0
- package/Source/Core/WireframeIndexGenerator.js +238 -0
- package/Source/Core/appendForwardSlash.js +10 -0
- package/Source/Core/arrayRemoveDuplicates.js +130 -0
- package/Source/Core/barycentricCoordinates.js +109 -0
- package/Source/Core/binarySearch.js +67 -0
- package/Source/Core/buildModuleUrl.js +151 -0
- package/Source/Core/cancelAnimationFrame.js +53 -0
- package/Source/Core/clone.js +32 -0
- package/Source/Core/combine.js +80 -0
- package/Source/Core/createGuid.js +22 -0
- package/Source/Core/createWorldTerrain.js +42 -0
- package/Source/Core/decodeGoogleEarthEnterpriseData.js +93 -0
- package/Source/Core/decodeVectorPolylinePositions.js +51 -0
- package/Source/Core/defaultValue.js +29 -0
- package/Source/Core/defer.js +44 -0
- package/Source/Core/defined.js +17 -0
- package/Source/Core/deprecationWarning.js +53 -0
- package/Source/Core/destroyObject.js +57 -0
- package/Source/Core/formatError.js +30 -0
- package/Source/Core/getAbsoluteUri.js +47 -0
- package/Source/Core/getBaseUri.js +47 -0
- package/Source/Core/getExtensionFromUri.js +38 -0
- package/Source/Core/getFilenameFromUri.js +32 -0
- package/Source/Core/getImageFromTypedArray.js +24 -0
- package/Source/Core/getImagePixels.js +43 -0
- package/Source/Core/getJsonFromTypedArray.js +21 -0
- package/Source/Core/getMagic.js +15 -0
- package/Source/Core/getStringFromTypedArray.js +166 -0
- package/Source/Core/getTimestamp.js +26 -0
- package/Source/Core/isBitSet.js +7 -0
- package/Source/Core/isBlobUri.js +22 -0
- package/Source/Core/isCrossOriginUrl.js +30 -0
- package/Source/Core/isDataUri.js +22 -0
- package/Source/Core/isLeapYear.js +23 -0
- package/Source/Core/loadAndExecuteScript.js +27 -0
- package/Source/Core/loadImageFromTypedArray.js +64 -0
- package/Source/Core/loadKTX2.js +104 -0
- package/Source/Core/mergeSort.js +111 -0
- package/Source/Core/objectToQuery.js +57 -0
- package/Source/Core/oneTimeWarning.js +52 -0
- package/Source/Core/parseResponseHeaders.js +37 -0
- package/Source/Core/pointInsideTriangle.js +39 -0
- package/Source/Core/queryToObject.js +60 -0
- package/Source/Core/requestAnimationFrame.js +83 -0
- package/Source/Core/resizeImageToNextPowerOfTwo.js +31 -0
- package/Source/Core/sampleTerrain.js +257 -0
- package/Source/Core/sampleTerrainMostDetailed.js +117 -0
- package/Source/Core/scaleToGeodeticSurface.js +147 -0
- package/Source/Core/subdivideArray.js +35 -0
- package/Source/Core/webGLConstantToGlslType.js +25 -0
- package/Source/Core/wrapFunction.js +26 -0
- package/Source/Core/writeTextToCanvas.js +222 -0
- package/Source/DataSources/BillboardGraphics.js +429 -0
- package/Source/DataSources/BillboardVisualizer.js +341 -0
- package/Source/DataSources/BoundingSphereState.js +26 -0
- package/Source/DataSources/BoxGeometryUpdater.js +325 -0
- package/Source/DataSources/BoxGraphics.js +213 -0
- package/Source/DataSources/CallbackProperty.js +111 -0
- package/Source/DataSources/Cesium3DTilesetGraphics.js +113 -0
- package/Source/DataSources/Cesium3DTilesetVisualizer.js +249 -0
- package/Source/DataSources/CheckerboardMaterialProperty.js +151 -0
- package/Source/DataSources/ColorMaterialProperty.js +106 -0
- package/Source/DataSources/CompositeEntityCollection.js +592 -0
- package/Source/DataSources/CompositeMaterialProperty.js +129 -0
- package/Source/DataSources/CompositePositionProperty.js +149 -0
- package/Source/DataSources/CompositeProperty.js +154 -0
- package/Source/DataSources/ConstantPositionProperty.js +146 -0
- package/Source/DataSources/ConstantProperty.js +116 -0
- package/Source/DataSources/CorridorGeometryUpdater.js +404 -0
- package/Source/DataSources/CorridorGraphics.js +328 -0
- package/Source/DataSources/CustomDataSource.js +173 -0
- package/Source/DataSources/CylinderGeometryUpdater.js +373 -0
- package/Source/DataSources/CylinderGraphics.js +265 -0
- package/Source/DataSources/CzmlDataSource.js +5141 -0
- package/Source/DataSources/DataSource.js +121 -0
- package/Source/DataSources/DataSourceClock.js +165 -0
- package/Source/DataSources/DataSourceCollection.js +336 -0
- package/Source/DataSources/DataSourceDisplay.js +510 -0
- package/Source/DataSources/DynamicGeometryBatch.js +56 -0
- package/Source/DataSources/DynamicGeometryUpdater.js +274 -0
- package/Source/DataSources/EllipseGeometryUpdater.js +430 -0
- package/Source/DataSources/EllipseGraphics.js +357 -0
- package/Source/DataSources/EllipsoidGeometryUpdater.js +710 -0
- package/Source/DataSources/EllipsoidGraphics.js +323 -0
- package/Source/DataSources/Entity.js +752 -0
- package/Source/DataSources/EntityCluster.js +997 -0
- package/Source/DataSources/EntityCollection.js +440 -0
- package/Source/DataSources/EntityView.js +426 -0
- package/Source/DataSources/GeoJsonDataSource.js +1064 -0
- package/Source/DataSources/GeometryUpdater.js +545 -0
- package/Source/DataSources/GeometryVisualizer.js +620 -0
- package/Source/DataSources/GpxDataSource.js +1023 -0
- package/Source/DataSources/GridMaterialProperty.js +198 -0
- package/Source/DataSources/GroundGeometryUpdater.js +232 -0
- package/Source/DataSources/ImageMaterialProperty.js +166 -0
- package/Source/DataSources/KmlCamera.js +13 -0
- package/Source/DataSources/KmlDataSource.js +4326 -0
- package/Source/DataSources/KmlLookAt.js +12 -0
- package/Source/DataSources/KmlTour.js +176 -0
- package/Source/DataSources/KmlTourFlyTo.js +109 -0
- package/Source/DataSources/KmlTourWait.js +52 -0
- package/Source/DataSources/LabelGraphics.js +430 -0
- package/Source/DataSources/LabelVisualizer.js +360 -0
- package/Source/DataSources/MaterialProperty.js +105 -0
- package/Source/DataSources/ModelGraphics.js +447 -0
- package/Source/DataSources/ModelVisualizer.js +548 -0
- package/Source/DataSources/NodeTransformationProperty.js +144 -0
- package/Source/DataSources/PathGraphics.js +163 -0
- package/Source/DataSources/PathVisualizer.js +759 -0
- package/Source/DataSources/PlaneGeometryUpdater.js +384 -0
- package/Source/DataSources/PlaneGraphics.js +210 -0
- package/Source/DataSources/PointGraphics.js +221 -0
- package/Source/DataSources/PointVisualizer.js +426 -0
- package/Source/DataSources/PolygonGeometryUpdater.js +575 -0
- package/Source/DataSources/PolygonGraphics.js +400 -0
- package/Source/DataSources/PolylineArrowMaterialProperty.js +104 -0
- package/Source/DataSources/PolylineDashMaterialProperty.js +168 -0
- package/Source/DataSources/PolylineGeometryUpdater.js +886 -0
- package/Source/DataSources/PolylineGlowMaterialProperty.js +146 -0
- package/Source/DataSources/PolylineGraphics.js +248 -0
- package/Source/DataSources/PolylineOutlineMaterialProperty.js +152 -0
- package/Source/DataSources/PolylineVisualizer.js +414 -0
- package/Source/DataSources/PolylineVolumeGeometryUpdater.js +304 -0
- package/Source/DataSources/PolylineVolumeGraphics.js +237 -0
- package/Source/DataSources/PositionProperty.js +133 -0
- package/Source/DataSources/PositionPropertyArray.js +187 -0
- package/Source/DataSources/Property.js +138 -0
- package/Source/DataSources/PropertyArray.js +147 -0
- package/Source/DataSources/PropertyBag.js +275 -0
- package/Source/DataSources/RectangleGeometryUpdater.js +422 -0
- package/Source/DataSources/RectangleGraphics.js +329 -0
- package/Source/DataSources/ReferenceProperty.js +365 -0
- package/Source/DataSources/Rotation.js +156 -0
- package/Source/DataSources/SampledPositionProperty.js +325 -0
- package/Source/DataSources/SampledProperty.js +834 -0
- package/Source/DataSources/ScaledPositionProperty.js +97 -0
- package/Source/DataSources/StaticGeometryColorBatch.js +570 -0
- package/Source/DataSources/StaticGeometryPerMaterialBatch.js +488 -0
- package/Source/DataSources/StaticGroundGeometryColorBatch.js +395 -0
- package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +426 -0
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +434 -0
- package/Source/DataSources/StaticOutlineGeometryBatch.js +466 -0
- package/Source/DataSources/StripeMaterialProperty.js +187 -0
- package/Source/DataSources/StripeOrientation.js +19 -0
- package/Source/DataSources/TerrainOffsetProperty.js +246 -0
- package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +152 -0
- package/Source/DataSources/TimeIntervalCollectionProperty.js +136 -0
- package/Source/DataSources/VelocityOrientationProperty.js +154 -0
- package/Source/DataSources/VelocityVectorProperty.js +216 -0
- package/Source/DataSources/Visualizer.js +61 -0
- package/Source/DataSources/WallGeometryUpdater.js +275 -0
- package/Source/DataSources/WallGraphics.js +244 -0
- package/Source/DataSources/createMaterialPropertyDescriptor.js +35 -0
- package/Source/DataSources/createPropertyDescriptor.js +72 -0
- package/Source/DataSources/createRawPropertyDescriptor.js +13 -0
- package/Source/DataSources/exportKml.js +1519 -0
- package/Source/DataSources/getElement.js +26 -0
- package/Source/DataSources/heightReferenceOnEntityPropertyChanged.js +47 -0
- package/Source/Renderer/AutomaticUniforms.js +1625 -0
- package/Source/Renderer/Buffer.js +420 -0
- package/Source/Renderer/BufferUsage.js +19 -0
- package/Source/Renderer/ClearCommand.js +102 -0
- package/Source/Renderer/ComputeCommand.js +119 -0
- package/Source/Renderer/ComputeEngine.js +135 -0
- package/Source/Renderer/Context.js +1601 -0
- package/Source/Renderer/ContextLimits.js +297 -0
- package/Source/Renderer/CubeMap.js +631 -0
- package/Source/Renderer/CubeMapFace.js +361 -0
- package/Source/Renderer/DrawCommand.js +610 -0
- package/Source/Renderer/Framebuffer.js +448 -0
- package/Source/Renderer/FramebufferManager.js +497 -0
- package/Source/Renderer/MipmapHint.js +19 -0
- package/Source/Renderer/MultisampleFramebuffer.js +115 -0
- package/Source/Renderer/Pass.js +26 -0
- package/Source/Renderer/PassState.js +57 -0
- package/Source/Renderer/PixelDatatype.js +98 -0
- package/Source/Renderer/RenderState.js +996 -0
- package/Source/Renderer/Renderbuffer.js +103 -0
- package/Source/Renderer/RenderbufferFormat.js +42 -0
- package/Source/Renderer/Sampler.js +109 -0
- package/Source/Renderer/ShaderBuilder.js +593 -0
- package/Source/Renderer/ShaderCache.js +291 -0
- package/Source/Renderer/ShaderDestination.js +51 -0
- package/Source/Renderer/ShaderFunction.js +66 -0
- package/Source/Renderer/ShaderProgram.js +612 -0
- package/Source/Renderer/ShaderSource.js +519 -0
- package/Source/Renderer/ShaderStruct.js +55 -0
- package/Source/Renderer/Texture.js +1035 -0
- package/Source/Renderer/TextureCache.js +81 -0
- package/Source/Renderer/TextureMagnificationFilter.js +41 -0
- package/Source/Renderer/TextureMinificationFilter.js +94 -0
- package/Source/Renderer/TextureWrap.js +19 -0
- package/Source/Renderer/UniformState.js +1710 -0
- package/Source/Renderer/VertexArray.js +853 -0
- package/Source/Renderer/VertexArrayFacade.js +514 -0
- package/Source/Renderer/createUniform.js +419 -0
- package/Source/Renderer/createUniformArray.js +637 -0
- package/Source/Renderer/freezeRenderState.js +30 -0
- package/Source/Renderer/loadCubeMap.js +93 -0
- package/Source/Renderer/modernizeShader.js +242 -0
- package/Source/Scene/AlphaMode.js +33 -0
- package/Source/Scene/Appearance.js +204 -0
- package/Source/Scene/ArcGisMapServerImageryProvider.js +905 -0
- package/Source/Scene/AttributeType.js +200 -0
- package/Source/Scene/AutoExposure.js +387 -0
- package/Source/Scene/Axis.js +111 -0
- package/Source/Scene/B3dmParser.js +174 -0
- package/Source/Scene/BatchTable.js +636 -0
- package/Source/Scene/BatchTableHierarchy.js +556 -0
- package/Source/Scene/BatchTexture.js +574 -0
- package/Source/Scene/Billboard.js +1552 -0
- package/Source/Scene/BillboardCollection.js +2417 -0
- package/Source/Scene/BingMapsImageryProvider.js +855 -0
- package/Source/Scene/BingMapsStyle.js +93 -0
- package/Source/Scene/BlendEquation.js +53 -0
- package/Source/Scene/BlendFunction.js +129 -0
- package/Source/Scene/BlendOption.js +28 -0
- package/Source/Scene/BlendingState.js +73 -0
- package/Source/Scene/BoxEmitter.js +75 -0
- package/Source/Scene/BrdfLutGenerator.js +75 -0
- package/Source/Scene/BufferLoader.js +146 -0
- package/Source/Scene/Camera.js +3951 -0
- package/Source/Scene/CameraEventAggregator.js +565 -0
- package/Source/Scene/CameraEventType.js +47 -0
- package/Source/Scene/CameraFlightPath.js +576 -0
- package/Source/Scene/Cesium3DContentGroup.js +44 -0
- package/Source/Scene/Cesium3DTile.js +2115 -0
- package/Source/Scene/Cesium3DTileBatchTable.js +1176 -0
- package/Source/Scene/Cesium3DTileColorBlendMode.js +52 -0
- package/Source/Scene/Cesium3DTileContent.js +397 -0
- package/Source/Scene/Cesium3DTileContentFactory.js +104 -0
- package/Source/Scene/Cesium3DTileContentState.js +12 -0
- package/Source/Scene/Cesium3DTileContentType.js +160 -0
- package/Source/Scene/Cesium3DTileFeature.js +444 -0
- package/Source/Scene/Cesium3DTileFeatureTable.js +132 -0
- package/Source/Scene/Cesium3DTileOptimizationHint.js +13 -0
- package/Source/Scene/Cesium3DTileOptimizations.js +115 -0
- package/Source/Scene/Cesium3DTilePass.js +82 -0
- package/Source/Scene/Cesium3DTilePassState.js +52 -0
- package/Source/Scene/Cesium3DTilePointFeature.js +864 -0
- package/Source/Scene/Cesium3DTileRefine.js +29 -0
- package/Source/Scene/Cesium3DTileStyle.js +1475 -0
- package/Source/Scene/Cesium3DTileStyleEngine.js +78 -0
- package/Source/Scene/Cesium3DTileset.js +3158 -0
- package/Source/Scene/Cesium3DTilesetCache.js +82 -0
- package/Source/Scene/Cesium3DTilesetHeatmap.js +165 -0
- package/Source/Scene/Cesium3DTilesetMetadata.js +199 -0
- package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +144 -0
- package/Source/Scene/Cesium3DTilesetStatistics.js +129 -0
- package/Source/Scene/Cesium3DTilesetTraversal.js +773 -0
- package/Source/Scene/CircleEmitter.js +62 -0
- package/Source/Scene/ClassificationPrimitive.js +1433 -0
- package/Source/Scene/ClassificationType.js +35 -0
- package/Source/Scene/ClippingPlane.js +184 -0
- package/Source/Scene/ClippingPlaneCollection.js +771 -0
- package/Source/Scene/CloudCollection.js +1050 -0
- package/Source/Scene/CloudType.js +33 -0
- package/Source/Scene/ColorBlendMode.js +33 -0
- package/Source/Scene/Composite3DTileContent.js +346 -0
- package/Source/Scene/ConditionsExpression.js +218 -0
- package/Source/Scene/ConeEmitter.js +62 -0
- package/Source/Scene/ContentMetadata.js +184 -0
- package/Source/Scene/CreditDisplay.js +610 -0
- package/Source/Scene/CullFace.js +33 -0
- package/Source/Scene/CumulusCloud.js +353 -0
- package/Source/Scene/DebugAppearance.js +268 -0
- package/Source/Scene/DebugCameraPrimitive.js +257 -0
- package/Source/Scene/DebugInspector.js +151 -0
- package/Source/Scene/DebugModelMatrixPrimitive.js +222 -0
- package/Source/Scene/DepthFunction.js +73 -0
- package/Source/Scene/DepthPlane.js +245 -0
- package/Source/Scene/DerivedCommand.js +433 -0
- package/Source/Scene/DeviceOrientationCameraController.js +120 -0
- package/Source/Scene/DirectionalLight.js +50 -0
- package/Source/Scene/DiscardEmptyTileImagePolicy.js +54 -0
- package/Source/Scene/DiscardMissingTileImagePolicy.js +148 -0
- package/Source/Scene/DracoLoader.js +76 -0
- package/Source/Scene/EllipsoidPrimitive.js +511 -0
- package/Source/Scene/EllipsoidSurfaceAppearance.js +282 -0
- package/Source/Scene/Empty3DTileContent.js +151 -0
- package/Source/Scene/Expression.js +2232 -0
- package/Source/Scene/ExpressionNodeType.js +25 -0
- package/Source/Scene/Fog.js +205 -0
- package/Source/Scene/FrameRateMonitor.js +384 -0
- package/Source/Scene/FrameState.js +419 -0
- package/Source/Scene/FrustumCommands.js +30 -0
- package/Source/Scene/Geometry3DTileContent.js +526 -0
- package/Source/Scene/GetFeatureInfoFormat.js +395 -0
- package/Source/Scene/Globe.js +1121 -0
- package/Source/Scene/GlobeDepth.js +378 -0
- package/Source/Scene/GlobeSurfaceShaderSet.js +413 -0
- package/Source/Scene/GlobeSurfaceTile.js +997 -0
- package/Source/Scene/GlobeSurfaceTileProvider.js +2818 -0
- package/Source/Scene/GlobeTranslucency.js +239 -0
- package/Source/Scene/GlobeTranslucencyFramebuffer.js +201 -0
- package/Source/Scene/GlobeTranslucencyState.js +1117 -0
- package/Source/Scene/GltfBufferViewLoader.js +268 -0
- package/Source/Scene/GltfDracoLoader.js +250 -0
- package/Source/Scene/GltfImageLoader.js +327 -0
- package/Source/Scene/GltfIndexBufferLoader.js +429 -0
- package/Source/Scene/GltfJsonLoader.js +301 -0
- package/Source/Scene/GltfLoader.js +2663 -0
- package/Source/Scene/GltfLoaderUtil.js +201 -0
- package/Source/Scene/GltfPipeline/ForEach.js +424 -0
- package/Source/Scene/GltfPipeline/addBuffer.js +30 -0
- package/Source/Scene/GltfPipeline/addDefaults.js +236 -0
- package/Source/Scene/GltfPipeline/addExtensionsRequired.js +24 -0
- package/Source/Scene/GltfPipeline/addExtensionsUsed.js +22 -0
- package/Source/Scene/GltfPipeline/addPipelineExtras.js +36 -0
- package/Source/Scene/GltfPipeline/addToArray.js +25 -0
- package/Source/Scene/GltfPipeline/findAccessorMinMax.js +71 -0
- package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +139 -0
- package/Source/Scene/GltfPipeline/getAccessorByteStride.js +29 -0
- package/Source/Scene/GltfPipeline/getComponentReader.js +147 -0
- package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +138 -0
- package/Source/Scene/GltfPipeline/moveTechniquesToExtension.js +145 -0
- package/Source/Scene/GltfPipeline/numberOfComponentsForType.js +29 -0
- package/Source/Scene/GltfPipeline/parseGlb.js +122 -0
- package/Source/Scene/GltfPipeline/readAccessorPacked.js +54 -0
- package/Source/Scene/GltfPipeline/removeExtension.js +64 -0
- package/Source/Scene/GltfPipeline/removeExtensionsRequired.js +24 -0
- package/Source/Scene/GltfPipeline/removeExtensionsUsed.js +26 -0
- package/Source/Scene/GltfPipeline/removePipelineExtras.js +42 -0
- package/Source/Scene/GltfPipeline/removeUnusedElements.js +881 -0
- package/Source/Scene/GltfPipeline/updateAccessorComponentTypes.js +53 -0
- package/Source/Scene/GltfPipeline/updateVersion.js +1151 -0
- package/Source/Scene/GltfPipeline/usesExtension.js +18 -0
- package/Source/Scene/GltfStructuralMetadataLoader.js +504 -0
- package/Source/Scene/GltfTextureLoader.js +383 -0
- package/Source/Scene/GltfVertexBufferLoader.js +470 -0
- package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +758 -0
- package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +756 -0
- package/Source/Scene/GridImageryProvider.js +436 -0
- package/Source/Scene/GroundPolylinePrimitive.js +926 -0
- package/Source/Scene/GroundPrimitive.js +1040 -0
- package/Source/Scene/GroupMetadata.js +203 -0
- package/Source/Scene/HeightReference.js +28 -0
- package/Source/Scene/HorizontalOrigin.js +41 -0
- package/Source/Scene/I3SDataProvider.js +668 -0
- package/Source/Scene/I3SFeature.js +63 -0
- package/Source/Scene/I3SField.js +255 -0
- package/Source/Scene/I3SGeometry.js +409 -0
- package/Source/Scene/I3SLayer.js +365 -0
- package/Source/Scene/I3SNode.js +816 -0
- package/Source/Scene/I3dmParser.js +141 -0
- package/Source/Scene/ImageBasedLighting.js +510 -0
- package/Source/Scene/Imagery.js +120 -0
- package/Source/Scene/ImageryLayer.js +1541 -0
- package/Source/Scene/ImageryLayerCollection.js +621 -0
- package/Source/Scene/ImageryLayerFeatureInfo.js +112 -0
- package/Source/Scene/ImageryProvider.js +387 -0
- package/Source/Scene/ImageryState.js +14 -0
- package/Source/Scene/Implicit3DTileContent.js +1154 -0
- package/Source/Scene/ImplicitAvailabilityBitstream.js +137 -0
- package/Source/Scene/ImplicitMetadataView.js +178 -0
- package/Source/Scene/ImplicitSubdivisionScheme.js +48 -0
- package/Source/Scene/ImplicitSubtree.js +1146 -0
- package/Source/Scene/ImplicitSubtreeMetadata.js +191 -0
- package/Source/Scene/ImplicitTileCoordinates.js +647 -0
- package/Source/Scene/ImplicitTileset.js +263 -0
- package/Source/Scene/InstanceAttributeSemantic.js +79 -0
- package/Source/Scene/InvertClassification.js +382 -0
- package/Source/Scene/IonImageryProvider.js +555 -0
- package/Source/Scene/IonWorldImageryStyle.js +33 -0
- package/Source/Scene/JobScheduler.js +199 -0
- package/Source/Scene/JobType.js +10 -0
- package/Source/Scene/JsonMetadataTable.js +114 -0
- package/Source/Scene/Label.js +1588 -0
- package/Source/Scene/LabelCollection.js +994 -0
- package/Source/Scene/LabelStyle.js +33 -0
- package/Source/Scene/Light.js +34 -0
- package/Source/Scene/MapMode2D.js +23 -0
- package/Source/Scene/MapboxImageryProvider.js +448 -0
- package/Source/Scene/MapboxStyleImageryProvider.js +457 -0
- package/Source/Scene/Material.js +1742 -0
- package/Source/Scene/MaterialAppearance.js +334 -0
- package/Source/Scene/MetadataClass.js +167 -0
- package/Source/Scene/MetadataClassProperty.js +1104 -0
- package/Source/Scene/MetadataComponentType.js +448 -0
- package/Source/Scene/MetadataEntity.js +425 -0
- package/Source/Scene/MetadataEnum.js +186 -0
- package/Source/Scene/MetadataEnumValue.js +97 -0
- package/Source/Scene/MetadataSchema.js +173 -0
- package/Source/Scene/MetadataSchemaLoader.js +145 -0
- package/Source/Scene/MetadataSemantic.js +145 -0
- package/Source/Scene/MetadataTable.js +357 -0
- package/Source/Scene/MetadataTableProperty.js +859 -0
- package/Source/Scene/MetadataType.js +208 -0
- package/Source/Scene/Model/AlphaPipelineStage.js +52 -0
- package/Source/Scene/Model/B3dmLoader.js +379 -0
- package/Source/Scene/Model/BatchTexturePipelineStage.js +72 -0
- package/Source/Scene/Model/CPUStylingPipelineStage.js +77 -0
- package/Source/Scene/Model/ClassificationModelDrawCommand.js +533 -0
- package/Source/Scene/Model/ClassificationPipelineStage.js +132 -0
- package/Source/Scene/Model/CustomShader.js +473 -0
- package/Source/Scene/Model/CustomShaderMode.js +40 -0
- package/Source/Scene/Model/CustomShaderPipelineStage.js +654 -0
- package/Source/Scene/Model/CustomShaderTranslucencyMode.js +35 -0
- package/Source/Scene/Model/DequantizationPipelineStage.js +178 -0
- package/Source/Scene/Model/FeatureIdPipelineStage.js +504 -0
- package/Source/Scene/Model/GeoJsonLoader.js +722 -0
- package/Source/Scene/Model/GeometryPipelineStage.js +558 -0
- package/Source/Scene/Model/I3dmLoader.js +909 -0
- package/Source/Scene/Model/ImageBasedLightingPipelineStage.js +147 -0
- package/Source/Scene/Model/InstancingPipelineStage.js +1043 -0
- package/Source/Scene/Model/LightingModel.js +30 -0
- package/Source/Scene/Model/LightingPipelineStage.js +75 -0
- package/Source/Scene/Model/MaterialPipelineStage.js +510 -0
- package/Source/Scene/Model/MetadataPipelineStage.js +638 -0
- package/Source/Scene/Model/Model.js +2847 -0
- package/Source/Scene/Model/Model3DTileContent.js +451 -0
- package/Source/Scene/Model/ModelAlphaOptions.js +26 -0
- package/Source/Scene/Model/ModelAnimation.js +422 -0
- package/Source/Scene/Model/ModelAnimationChannel.js +293 -0
- package/Source/Scene/Model/ModelAnimationCollection.js +553 -0
- package/Source/Scene/Model/ModelArticulation.js +214 -0
- package/Source/Scene/Model/ModelArticulationStage.js +261 -0
- package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +126 -0
- package/Source/Scene/Model/ModelColorPipelineStage.js +99 -0
- package/Source/Scene/Model/ModelDrawCommand.js +864 -0
- package/Source/Scene/Model/ModelFeature.js +229 -0
- package/Source/Scene/Model/ModelFeatureTable.js +322 -0
- package/Source/Scene/Model/ModelLightingOptions.js +29 -0
- package/Source/Scene/Model/ModelMatrixUpdateStage.js +108 -0
- package/Source/Scene/Model/ModelNode.js +125 -0
- package/Source/Scene/Model/ModelRenderResources.js +106 -0
- package/Source/Scene/Model/ModelRuntimeNode.js +648 -0
- package/Source/Scene/Model/ModelRuntimePrimitive.js +340 -0
- package/Source/Scene/Model/ModelSceneGraph.js +968 -0
- package/Source/Scene/Model/ModelSilhouettePipelineStage.js +109 -0
- package/Source/Scene/Model/ModelSkin.js +180 -0
- package/Source/Scene/Model/ModelSplitterPipelineStage.js +66 -0
- package/Source/Scene/Model/ModelStatistics.js +197 -0
- package/Source/Scene/Model/ModelType.js +94 -0
- package/Source/Scene/Model/ModelUtility.js +386 -0
- package/Source/Scene/Model/MorphTargetsPipelineStage.js +249 -0
- package/Source/Scene/Model/NodeRenderResources.js +160 -0
- package/Source/Scene/Model/NodeStatisticsPipelineStage.js +75 -0
- package/Source/Scene/Model/PickingPipelineStage.js +219 -0
- package/Source/Scene/Model/PntsLoader.js +717 -0
- package/Source/Scene/Model/PointCloudStylingPipelineStage.js +396 -0
- package/Source/Scene/Model/PrimitiveOutlineGenerator.js +689 -0
- package/Source/Scene/Model/PrimitiveOutlinePipelineStage.js +99 -0
- package/Source/Scene/Model/PrimitiveRenderResources.js +297 -0
- package/Source/Scene/Model/PrimitiveStatisticsPipelineStage.js +253 -0
- package/Source/Scene/Model/SceneMode2DPipelineStage.js +301 -0
- package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +185 -0
- package/Source/Scene/Model/SkinningPipelineStage.js +118 -0
- package/Source/Scene/Model/StyleCommandsNeeded.js +29 -0
- package/Source/Scene/Model/TextureManager.js +244 -0
- package/Source/Scene/Model/TextureUniform.js +74 -0
- package/Source/Scene/Model/TilesetPipelineStage.js +73 -0
- package/Source/Scene/Model/UniformType.js +124 -0
- package/Source/Scene/Model/VaryingType.js +61 -0
- package/Source/Scene/Model/WireframePipelineStage.js +118 -0
- package/Source/Scene/Model/buildDrawCommand.js +153 -0
- package/Source/Scene/ModelAnimationLoop.js +33 -0
- package/Source/Scene/ModelAnimationState.js +9 -0
- package/Source/Scene/ModelComponents.js +1466 -0
- package/Source/Scene/Moon.js +174 -0
- package/Source/Scene/Multiple3DTileContent.js +674 -0
- package/Source/Scene/NeverTileDiscardPolicy.js +28 -0
- package/Source/Scene/OIT.js +893 -0
- package/Source/Scene/OctahedralProjectedCubeMap.js +456 -0
- package/Source/Scene/OpenStreetMapImageryProvider.js +124 -0
- package/Source/Scene/OrderedGroundPrimitiveCollection.js +219 -0
- package/Source/Scene/Particle.js +155 -0
- package/Source/Scene/ParticleBurst.js +51 -0
- package/Source/Scene/ParticleEmitter.js +36 -0
- package/Source/Scene/ParticleSystem.js +910 -0
- package/Source/Scene/PerInstanceColorAppearance.js +296 -0
- package/Source/Scene/PerformanceDisplay.js +120 -0
- package/Source/Scene/PickDepth.js +105 -0
- package/Source/Scene/PickDepthFramebuffer.js +79 -0
- package/Source/Scene/PickFramebuffer.js +125 -0
- package/Source/Scene/Picking.js +1316 -0
- package/Source/Scene/PntsParser.js +480 -0
- package/Source/Scene/PointCloud.js +1425 -0
- package/Source/Scene/PointCloudEyeDomeLighting.js +279 -0
- package/Source/Scene/PointCloudShading.js +113 -0
- package/Source/Scene/PointPrimitive.js +668 -0
- package/Source/Scene/PointPrimitiveCollection.js +1217 -0
- package/Source/Scene/Polyline.js +431 -0
- package/Source/Scene/PolylineCollection.js +1962 -0
- package/Source/Scene/PolylineColorAppearance.js +224 -0
- package/Source/Scene/PolylineMaterialAppearance.js +236 -0
- package/Source/Scene/PostProcessStage.js +1023 -0
- package/Source/Scene/PostProcessStageCollection.js +888 -0
- package/Source/Scene/PostProcessStageComposite.js +362 -0
- package/Source/Scene/PostProcessStageLibrary.js +838 -0
- package/Source/Scene/PostProcessStageSampleMode.js +22 -0
- package/Source/Scene/PostProcessStageTextureCache.js +454 -0
- package/Source/Scene/Primitive.js +2536 -0
- package/Source/Scene/PrimitiveCollection.js +467 -0
- package/Source/Scene/PrimitiveLoadPlan.js +280 -0
- package/Source/Scene/PrimitivePipeline.js +855 -0
- package/Source/Scene/PrimitiveState.js +13 -0
- package/Source/Scene/PropertyAttribute.js +160 -0
- package/Source/Scene/PropertyAttributeProperty.js +165 -0
- package/Source/Scene/PropertyTable.js +541 -0
- package/Source/Scene/PropertyTexture.js +162 -0
- package/Source/Scene/PropertyTextureProperty.js +263 -0
- package/Source/Scene/QuadtreeOccluders.js +30 -0
- package/Source/Scene/QuadtreePrimitive.js +1546 -0
- package/Source/Scene/QuadtreeTile.js +539 -0
- package/Source/Scene/QuadtreeTileLoadState.js +39 -0
- package/Source/Scene/QuadtreeTileProvider.js +226 -0
- package/Source/Scene/ResourceCache.js +810 -0
- package/Source/Scene/ResourceCacheKey.js +567 -0
- package/Source/Scene/ResourceCacheStatistics.js +183 -0
- package/Source/Scene/ResourceLoader.js +139 -0
- package/Source/Scene/ResourceLoaderState.js +48 -0
- package/Source/Scene/SDFSettings.js +39 -0
- package/Source/Scene/Scene.js +4498 -0
- package/Source/Scene/SceneFramebuffer.js +106 -0
- package/Source/Scene/SceneMode.js +56 -0
- package/Source/Scene/SceneTransforms.js +466 -0
- package/Source/Scene/SceneTransitioner.js +1111 -0
- package/Source/Scene/ScreenSpaceCameraController.js +2933 -0
- package/Source/Scene/ShadowMap.js +1958 -0
- package/Source/Scene/ShadowMapShader.js +395 -0
- package/Source/Scene/ShadowMode.js +78 -0
- package/Source/Scene/ShadowVolumeAppearance.js +937 -0
- package/Source/Scene/SingleTileImageryProvider.js +501 -0
- package/Source/Scene/SkyAtmosphere.js +402 -0
- package/Source/Scene/SkyBox.js +252 -0
- package/Source/Scene/SphereEmitter.js +66 -0
- package/Source/Scene/SplitDirection.js +34 -0
- package/Source/Scene/Splitter.js +49 -0
- package/Source/Scene/StencilConstants.js +37 -0
- package/Source/Scene/StencilFunction.js +73 -0
- package/Source/Scene/StencilOperation.js +73 -0
- package/Source/Scene/StructuralMetadata.js +243 -0
- package/Source/Scene/StyleExpression.js +86 -0
- package/Source/Scene/Sun.js +359 -0
- package/Source/Scene/SunLight.js +31 -0
- package/Source/Scene/SunPostProcess.js +288 -0
- package/Source/Scene/SupportedImageFormats.js +18 -0
- package/Source/Scene/TerrainFillMesh.js +2220 -0
- package/Source/Scene/TerrainState.js +13 -0
- package/Source/Scene/TextureAtlas.js +556 -0
- package/Source/Scene/TileBoundingRegion.js +490 -0
- package/Source/Scene/TileBoundingS2Cell.js +703 -0
- package/Source/Scene/TileBoundingSphere.js +167 -0
- package/Source/Scene/TileBoundingVolume.js +68 -0
- package/Source/Scene/TileCoordinatesImageryProvider.js +379 -0
- package/Source/Scene/TileDiscardPolicy.js +34 -0
- package/Source/Scene/TileImagery.js +130 -0
- package/Source/Scene/TileMapServiceImageryProvider.js +403 -0
- package/Source/Scene/TileMetadata.js +184 -0
- package/Source/Scene/TileOrientedBoundingBox.js +219 -0
- package/Source/Scene/TileReplacementQueue.js +119 -0
- package/Source/Scene/TileSelectionResult.js +80 -0
- package/Source/Scene/TileState.js +10 -0
- package/Source/Scene/Tileset3DTileContent.js +158 -0
- package/Source/Scene/TilesetMetadata.js +186 -0
- package/Source/Scene/TimeDynamicImagery.js +308 -0
- package/Source/Scene/TimeDynamicPointCloud.js +819 -0
- package/Source/Scene/Tonemapper.js +52 -0
- package/Source/Scene/TranslucentTileClassification.js +524 -0
- package/Source/Scene/TweenCollection.js +588 -0
- package/Source/Scene/UrlTemplateImageryProvider.js +1240 -0
- package/Source/Scene/Vector3DTileBatch.js +37 -0
- package/Source/Scene/Vector3DTileClampedPolylines.js +772 -0
- package/Source/Scene/Vector3DTileContent.js +774 -0
- package/Source/Scene/Vector3DTileGeometry.js +490 -0
- package/Source/Scene/Vector3DTilePoints.js +529 -0
- package/Source/Scene/Vector3DTilePolygons.js +479 -0
- package/Source/Scene/Vector3DTilePolylines.js +676 -0
- package/Source/Scene/Vector3DTilePrimitive.js +1282 -0
- package/Source/Scene/VertexAttributeSemantic.js +273 -0
- package/Source/Scene/VerticalOrigin.js +49 -0
- package/Source/Scene/View.js +431 -0
- package/Source/Scene/ViewportQuad.js +182 -0
- package/Source/Scene/WebMapServiceImageryProvider.js +768 -0
- package/Source/Scene/WebMapTileServiceImageryProvider.js +711 -0
- package/Source/Scene/computeFlyToLocationForRectangle.js +69 -0
- package/Source/Scene/createBillboardPointCallback.js +70 -0
- package/Source/Scene/createElevationBandMaterial.js +585 -0
- package/Source/Scene/createOsmBuildings.js +75 -0
- package/Source/Scene/createTangentSpaceDebugPrimitive.js +116 -0
- package/Source/Scene/createWorldImagery.js +38 -0
- package/Source/Scene/findContentMetadata.js +54 -0
- package/Source/Scene/findGroupMetadata.js +39 -0
- package/Source/Scene/findTileMetadata.js +56 -0
- package/Source/Scene/getBinaryAccessor.js +56 -0
- package/Source/Scene/getClipAndStyleCode.js +34 -0
- package/Source/Scene/getClippingFunction.js +163 -0
- package/Source/Scene/hasExtension.js +19 -0
- package/Source/Scene/parseBatchTable.js +439 -0
- package/Source/Scene/parseBoundingVolumeSemantics.js +121 -0
- package/Source/Scene/parseFeatureMetadataLegacy.js +139 -0
- package/Source/Scene/parseStructuralMetadata.js +102 -0
- package/Source/Scene/preprocess3DTileContent.js +94 -0
- package/Source/Shaders/AdjustTranslucentFS.glsl +24 -0
- package/Source/Shaders/AdjustTranslucentFS.js +26 -0
- package/Source/Shaders/Appearances/AllMaterialAppearanceFS.glsl +29 -0
- package/Source/Shaders/Appearances/AllMaterialAppearanceFS.js +31 -0
- package/Source/Shaders/Appearances/AllMaterialAppearanceVS.glsl +26 -0
- package/Source/Shaders/Appearances/AllMaterialAppearanceVS.js +28 -0
- package/Source/Shaders/Appearances/BasicMaterialAppearanceFS.glsl +23 -0
- package/Source/Shaders/Appearances/BasicMaterialAppearanceFS.js +25 -0
- package/Source/Shaders/Appearances/BasicMaterialAppearanceVS.glsl +17 -0
- package/Source/Shaders/Appearances/BasicMaterialAppearanceVS.js +19 -0
- package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.glsl +33 -0
- package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.js +35 -0
- package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.glsl +19 -0
- package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.js +21 -0
- package/Source/Shaders/Appearances/PerInstanceColorAppearanceFS.glsl +24 -0
- package/Source/Shaders/Appearances/PerInstanceColorAppearanceFS.js +26 -0
- package/Source/Shaders/Appearances/PerInstanceColorAppearanceVS.glsl +20 -0
- package/Source/Shaders/Appearances/PerInstanceColorAppearanceVS.js +22 -0
- package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.glsl +6 -0
- package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.js +8 -0
- package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.glsl +15 -0
- package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.js +17 -0
- package/Source/Shaders/Appearances/PolylineColorAppearanceVS.glsl +28 -0
- package/Source/Shaders/Appearances/PolylineColorAppearanceVS.js +30 -0
- package/Source/Shaders/Appearances/PolylineMaterialAppearanceVS.glsl +33 -0
- package/Source/Shaders/Appearances/PolylineMaterialAppearanceVS.js +35 -0
- package/Source/Shaders/Appearances/TexturedMaterialAppearanceFS.glsl +25 -0
- package/Source/Shaders/Appearances/TexturedMaterialAppearanceFS.js +27 -0
- package/Source/Shaders/Appearances/TexturedMaterialAppearanceVS.glsl +20 -0
- package/Source/Shaders/Appearances/TexturedMaterialAppearanceVS.js +22 -0
- package/Source/Shaders/AtmosphereCommon.glsl +152 -0
- package/Source/Shaders/AtmosphereCommon.js +154 -0
- package/Source/Shaders/BillboardCollectionFS.glsl +208 -0
- package/Source/Shaders/BillboardCollectionFS.js +210 -0
- package/Source/Shaders/BillboardCollectionVS.glsl +434 -0
- package/Source/Shaders/BillboardCollectionVS.js +436 -0
- package/Source/Shaders/BrdfLutGeneratorFS.glsl +83 -0
- package/Source/Shaders/BrdfLutGeneratorFS.js +85 -0
- package/Source/Shaders/Builtin/Constants/degreesPerRadian.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/degreesPerRadian.js +18 -0
- package/Source/Shaders/Builtin/Constants/depthRange.glsl +14 -0
- package/Source/Shaders/Builtin/Constants/depthRange.js +16 -0
- package/Source/Shaders/Builtin/Constants/epsilon1.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/epsilon1.js +9 -0
- package/Source/Shaders/Builtin/Constants/epsilon2.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/epsilon2.js +9 -0
- package/Source/Shaders/Builtin/Constants/epsilon3.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/epsilon3.js +9 -0
- package/Source/Shaders/Builtin/Constants/epsilon4.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/epsilon4.js +9 -0
- package/Source/Shaders/Builtin/Constants/epsilon5.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/epsilon5.js +9 -0
- package/Source/Shaders/Builtin/Constants/epsilon6.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/epsilon6.js +9 -0
- package/Source/Shaders/Builtin/Constants/epsilon7.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/epsilon7.js +9 -0
- package/Source/Shaders/Builtin/Constants/infinity.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/infinity.js +9 -0
- package/Source/Shaders/Builtin/Constants/oneOverPi.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/oneOverPi.js +18 -0
- package/Source/Shaders/Builtin/Constants/oneOverTwoPi.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/oneOverTwoPi.js +18 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTile.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTile.js +11 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.js +11 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.js +11 -0
- package/Source/Shaders/Builtin/Constants/passClassification.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passClassification.js +11 -0
- package/Source/Shaders/Builtin/Constants/passCompute.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCompute.js +11 -0
- package/Source/Shaders/Builtin/Constants/passEnvironment.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passEnvironment.js +11 -0
- package/Source/Shaders/Builtin/Constants/passGlobe.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passGlobe.js +11 -0
- package/Source/Shaders/Builtin/Constants/passOpaque.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passOpaque.js +11 -0
- package/Source/Shaders/Builtin/Constants/passOverlay.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passOverlay.js +11 -0
- package/Source/Shaders/Builtin/Constants/passTerrainClassification.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passTerrainClassification.js +11 -0
- package/Source/Shaders/Builtin/Constants/passTranslucent.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passTranslucent.js +11 -0
- package/Source/Shaders/Builtin/Constants/pi.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/pi.js +18 -0
- package/Source/Shaders/Builtin/Constants/piOverFour.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/piOverFour.js +18 -0
- package/Source/Shaders/Builtin/Constants/piOverSix.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/piOverSix.js +18 -0
- package/Source/Shaders/Builtin/Constants/piOverThree.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/piOverThree.js +18 -0
- package/Source/Shaders/Builtin/Constants/piOverTwo.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/piOverTwo.js +18 -0
- package/Source/Shaders/Builtin/Constants/radiansPerDegree.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/radiansPerDegree.js +18 -0
- package/Source/Shaders/Builtin/Constants/sceneMode2D.glsl +11 -0
- package/Source/Shaders/Builtin/Constants/sceneMode2D.js +13 -0
- package/Source/Shaders/Builtin/Constants/sceneMode3D.glsl +11 -0
- package/Source/Shaders/Builtin/Constants/sceneMode3D.js +13 -0
- package/Source/Shaders/Builtin/Constants/sceneModeColumbusView.glsl +11 -0
- package/Source/Shaders/Builtin/Constants/sceneModeColumbusView.js +13 -0
- package/Source/Shaders/Builtin/Constants/sceneModeMorphing.glsl +11 -0
- package/Source/Shaders/Builtin/Constants/sceneModeMorphing.js +13 -0
- package/Source/Shaders/Builtin/Constants/solarRadius.glsl +13 -0
- package/Source/Shaders/Builtin/Constants/solarRadius.js +15 -0
- package/Source/Shaders/Builtin/Constants/threePiOver2.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/threePiOver2.js +18 -0
- package/Source/Shaders/Builtin/Constants/twoPi.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/twoPi.js +18 -0
- package/Source/Shaders/Builtin/Constants/webMercatorMaxLatitude.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/webMercatorMaxLatitude.js +18 -0
- package/Source/Shaders/Builtin/CzmBuiltins.js +262 -0
- package/Source/Shaders/Builtin/Functions/HSBToRGB.glsl +24 -0
- package/Source/Shaders/Builtin/Functions/HSBToRGB.js +26 -0
- package/Source/Shaders/Builtin/Functions/HSLToRGB.glsl +31 -0
- package/Source/Shaders/Builtin/Functions/HSLToRGB.js +33 -0
- package/Source/Shaders/Builtin/Functions/RGBToHSB.glsl +27 -0
- package/Source/Shaders/Builtin/Functions/RGBToHSB.js +29 -0
- package/Source/Shaders/Builtin/Functions/RGBToHSL.glsl +34 -0
- package/Source/Shaders/Builtin/Functions/RGBToHSL.js +36 -0
- package/Source/Shaders/Builtin/Functions/RGBToXYZ.glsl +30 -0
- package/Source/Shaders/Builtin/Functions/RGBToXYZ.js +32 -0
- package/Source/Shaders/Builtin/Functions/XYZToRGB.glsl +30 -0
- package/Source/Shaders/Builtin/Functions/XYZToRGB.js +32 -0
- package/Source/Shaders/Builtin/Functions/acesTonemapping.glsl +16 -0
- package/Source/Shaders/Builtin/Functions/acesTonemapping.js +18 -0
- package/Source/Shaders/Builtin/Functions/alphaWeight.glsl +11 -0
- package/Source/Shaders/Builtin/Functions/alphaWeight.js +13 -0
- package/Source/Shaders/Builtin/Functions/antialias.glsl +39 -0
- package/Source/Shaders/Builtin/Functions/antialias.js +41 -0
- package/Source/Shaders/Builtin/Functions/approximateSphericalCoordinates.glsl +18 -0
- package/Source/Shaders/Builtin/Functions/approximateSphericalCoordinates.js +20 -0
- package/Source/Shaders/Builtin/Functions/backFacing.glsl +13 -0
- package/Source/Shaders/Builtin/Functions/backFacing.js +15 -0
- package/Source/Shaders/Builtin/Functions/branchFreeTernary.glsl +71 -0
- package/Source/Shaders/Builtin/Functions/branchFreeTernary.js +73 -0
- package/Source/Shaders/Builtin/Functions/cascadeColor.glsl +8 -0
- package/Source/Shaders/Builtin/Functions/cascadeColor.js +10 -0
- package/Source/Shaders/Builtin/Functions/cascadeDistance.glsl +7 -0
- package/Source/Shaders/Builtin/Functions/cascadeDistance.js +9 -0
- package/Source/Shaders/Builtin/Functions/cascadeMatrix.glsl +10 -0
- package/Source/Shaders/Builtin/Functions/cascadeMatrix.js +12 -0
- package/Source/Shaders/Builtin/Functions/cascadeWeights.glsl +10 -0
- package/Source/Shaders/Builtin/Functions/cascadeWeights.js +12 -0
- package/Source/Shaders/Builtin/Functions/columbusViewMorph.glsl +12 -0
- package/Source/Shaders/Builtin/Functions/columbusViewMorph.js +14 -0
- package/Source/Shaders/Builtin/Functions/computePosition.glsl +22 -0
- package/Source/Shaders/Builtin/Functions/computePosition.js +24 -0
- package/Source/Shaders/Builtin/Functions/cosineAndSine.glsl +211 -0
- package/Source/Shaders/Builtin/Functions/cosineAndSine.js +213 -0
- package/Source/Shaders/Builtin/Functions/decompressTextureCoordinates.glsl +17 -0
- package/Source/Shaders/Builtin/Functions/decompressTextureCoordinates.js +19 -0
- package/Source/Shaders/Builtin/Functions/defaultPbrMaterial.glsl +16 -0
- package/Source/Shaders/Builtin/Functions/defaultPbrMaterial.js +18 -0
- package/Source/Shaders/Builtin/Functions/depthClamp.glsl +47 -0
- package/Source/Shaders/Builtin/Functions/depthClamp.js +49 -0
- package/Source/Shaders/Builtin/Functions/eastNorthUpToEyeCoordinates.glsl +33 -0
- package/Source/Shaders/Builtin/Functions/eastNorthUpToEyeCoordinates.js +35 -0
- package/Source/Shaders/Builtin/Functions/ellipsoidContainsPoint.glsl +12 -0
- package/Source/Shaders/Builtin/Functions/ellipsoidContainsPoint.js +14 -0
- package/Source/Shaders/Builtin/Functions/ellipsoidWgs84TextureCoordinates.glsl +10 -0
- package/Source/Shaders/Builtin/Functions/ellipsoidWgs84TextureCoordinates.js +12 -0
- package/Source/Shaders/Builtin/Functions/equalsEpsilon.glsl +36 -0
- package/Source/Shaders/Builtin/Functions/equalsEpsilon.js +38 -0
- package/Source/Shaders/Builtin/Functions/eyeOffset.glsl +20 -0
- package/Source/Shaders/Builtin/Functions/eyeOffset.js +22 -0
- package/Source/Shaders/Builtin/Functions/eyeToWindowCoordinates.glsl +32 -0
- package/Source/Shaders/Builtin/Functions/eyeToWindowCoordinates.js +34 -0
- package/Source/Shaders/Builtin/Functions/fastApproximateAtan.glsl +55 -0
- package/Source/Shaders/Builtin/Functions/fastApproximateAtan.js +57 -0
- package/Source/Shaders/Builtin/Functions/fog.glsl +38 -0
- package/Source/Shaders/Builtin/Functions/fog.js +40 -0
- package/Source/Shaders/Builtin/Functions/gammaCorrect.glsl +22 -0
- package/Source/Shaders/Builtin/Functions/gammaCorrect.js +24 -0
- package/Source/Shaders/Builtin/Functions/geodeticSurfaceNormal.glsl +16 -0
- package/Source/Shaders/Builtin/Functions/geodeticSurfaceNormal.js +18 -0
- package/Source/Shaders/Builtin/Functions/getDefaultMaterial.glsl +27 -0
- package/Source/Shaders/Builtin/Functions/getDefaultMaterial.js +29 -0
- package/Source/Shaders/Builtin/Functions/getLambertDiffuse.glsl +22 -0
- package/Source/Shaders/Builtin/Functions/getLambertDiffuse.js +24 -0
- package/Source/Shaders/Builtin/Functions/getSpecular.glsl +29 -0
- package/Source/Shaders/Builtin/Functions/getSpecular.js +31 -0
- package/Source/Shaders/Builtin/Functions/getWaterNoise.glsl +37 -0
- package/Source/Shaders/Builtin/Functions/getWaterNoise.js +39 -0
- package/Source/Shaders/Builtin/Functions/hue.glsl +30 -0
- package/Source/Shaders/Builtin/Functions/hue.js +32 -0
- package/Source/Shaders/Builtin/Functions/inverseGamma.glsl +12 -0
- package/Source/Shaders/Builtin/Functions/inverseGamma.js +14 -0
- package/Source/Shaders/Builtin/Functions/isEmpty.glsl +19 -0
- package/Source/Shaders/Builtin/Functions/isEmpty.js +21 -0
- package/Source/Shaders/Builtin/Functions/isFull.glsl +19 -0
- package/Source/Shaders/Builtin/Functions/isFull.js +21 -0
- package/Source/Shaders/Builtin/Functions/latitudeToWebMercatorFraction.glsl +21 -0
- package/Source/Shaders/Builtin/Functions/latitudeToWebMercatorFraction.js +23 -0
- package/Source/Shaders/Builtin/Functions/lineDistance.glsl +14 -0
- package/Source/Shaders/Builtin/Functions/lineDistance.js +16 -0
- package/Source/Shaders/Builtin/Functions/linearToSrgb.glsl +16 -0
- package/Source/Shaders/Builtin/Functions/linearToSrgb.js +18 -0
- package/Source/Shaders/Builtin/Functions/luminance.glsl +20 -0
- package/Source/Shaders/Builtin/Functions/luminance.js +22 -0
- package/Source/Shaders/Builtin/Functions/metersPerPixel.glsl +61 -0
- package/Source/Shaders/Builtin/Functions/metersPerPixel.js +63 -0
- package/Source/Shaders/Builtin/Functions/modelToWindowCoordinates.glsl +37 -0
- package/Source/Shaders/Builtin/Functions/modelToWindowCoordinates.js +39 -0
- package/Source/Shaders/Builtin/Functions/multiplyWithColorBalance.glsl +18 -0
- package/Source/Shaders/Builtin/Functions/multiplyWithColorBalance.js +20 -0
- package/Source/Shaders/Builtin/Functions/nearFarScalar.glsl +26 -0
- package/Source/Shaders/Builtin/Functions/nearFarScalar.js +28 -0
- package/Source/Shaders/Builtin/Functions/octDecode.glsl +83 -0
- package/Source/Shaders/Builtin/Functions/octDecode.js +85 -0
- package/Source/Shaders/Builtin/Functions/packDepth.glsl +18 -0
- package/Source/Shaders/Builtin/Functions/packDepth.js +20 -0
- package/Source/Shaders/Builtin/Functions/pbrLighting.glsl +99 -0
- package/Source/Shaders/Builtin/Functions/pbrLighting.js +101 -0
- package/Source/Shaders/Builtin/Functions/pbrMetallicRoughnessMaterial.glsl +37 -0
- package/Source/Shaders/Builtin/Functions/pbrMetallicRoughnessMaterial.js +39 -0
- package/Source/Shaders/Builtin/Functions/pbrSpecularGlossinessMaterial.glsl +30 -0
- package/Source/Shaders/Builtin/Functions/pbrSpecularGlossinessMaterial.js +32 -0
- package/Source/Shaders/Builtin/Functions/phong.glsl +63 -0
- package/Source/Shaders/Builtin/Functions/phong.js +65 -0
- package/Source/Shaders/Builtin/Functions/planeDistance.glsl +28 -0
- package/Source/Shaders/Builtin/Functions/planeDistance.js +30 -0
- package/Source/Shaders/Builtin/Functions/pointAlongRay.glsl +19 -0
- package/Source/Shaders/Builtin/Functions/pointAlongRay.js +21 -0
- package/Source/Shaders/Builtin/Functions/rayEllipsoidIntersectionInterval.glsl +83 -0
- package/Source/Shaders/Builtin/Functions/rayEllipsoidIntersectionInterval.js +85 -0
- package/Source/Shaders/Builtin/Functions/raySphereIntersectionInterval.glsl +36 -0
- package/Source/Shaders/Builtin/Functions/raySphereIntersectionInterval.js +38 -0
- package/Source/Shaders/Builtin/Functions/readDepth.glsl +4 -0
- package/Source/Shaders/Builtin/Functions/readDepth.js +6 -0
- package/Source/Shaders/Builtin/Functions/readNonPerspective.glsl +31 -0
- package/Source/Shaders/Builtin/Functions/readNonPerspective.js +33 -0
- package/Source/Shaders/Builtin/Functions/reverseLogDepth.glsl +11 -0
- package/Source/Shaders/Builtin/Functions/reverseLogDepth.js +13 -0
- package/Source/Shaders/Builtin/Functions/round.glsl +22 -0
- package/Source/Shaders/Builtin/Functions/round.js +24 -0
- package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.glsl +78 -0
- package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.js +80 -0
- package/Source/Shaders/Builtin/Functions/saturation.glsl +22 -0
- package/Source/Shaders/Builtin/Functions/saturation.js +24 -0
- package/Source/Shaders/Builtin/Functions/shadowDepthCompare.glsl +24 -0
- package/Source/Shaders/Builtin/Functions/shadowDepthCompare.js +26 -0
- package/Source/Shaders/Builtin/Functions/shadowVisibility.glsl +66 -0
- package/Source/Shaders/Builtin/Functions/shadowVisibility.js +68 -0
- package/Source/Shaders/Builtin/Functions/signNotZero.glsl +29 -0
- package/Source/Shaders/Builtin/Functions/signNotZero.js +31 -0
- package/Source/Shaders/Builtin/Functions/sphericalHarmonics.glsl +42 -0
- package/Source/Shaders/Builtin/Functions/sphericalHarmonics.js +44 -0
- package/Source/Shaders/Builtin/Functions/srgbToLinear.glsl +16 -0
- package/Source/Shaders/Builtin/Functions/srgbToLinear.js +18 -0
- package/Source/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.glsl +25 -0
- package/Source/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.js +27 -0
- package/Source/Shaders/Builtin/Functions/transformPlane.glsl +15 -0
- package/Source/Shaders/Builtin/Functions/transformPlane.js +17 -0
- package/Source/Shaders/Builtin/Functions/translateRelativeToEye.glsl +40 -0
- package/Source/Shaders/Builtin/Functions/translateRelativeToEye.js +42 -0
- package/Source/Shaders/Builtin/Functions/translucentPhong.glsl +27 -0
- package/Source/Shaders/Builtin/Functions/translucentPhong.js +29 -0
- package/Source/Shaders/Builtin/Functions/transpose.glsl +45 -0
- package/Source/Shaders/Builtin/Functions/transpose.js +47 -0
- package/Source/Shaders/Builtin/Functions/unpackDepth.glsl +16 -0
- package/Source/Shaders/Builtin/Functions/unpackDepth.js +18 -0
- package/Source/Shaders/Builtin/Functions/unpackFloat.glsl +24 -0
- package/Source/Shaders/Builtin/Functions/unpackFloat.js +26 -0
- package/Source/Shaders/Builtin/Functions/unpackUint.glsl +31 -0
- package/Source/Shaders/Builtin/Functions/unpackUint.js +33 -0
- package/Source/Shaders/Builtin/Functions/valueTransform.glsl +38 -0
- package/Source/Shaders/Builtin/Functions/valueTransform.js +40 -0
- package/Source/Shaders/Builtin/Functions/vertexLogDepth.glsl +64 -0
- package/Source/Shaders/Builtin/Functions/vertexLogDepth.js +66 -0
- package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl +99 -0
- package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.js +101 -0
- package/Source/Shaders/Builtin/Functions/writeDepthClamp.glsl +27 -0
- package/Source/Shaders/Builtin/Functions/writeDepthClamp.js +29 -0
- package/Source/Shaders/Builtin/Functions/writeLogDepth.glsl +82 -0
- package/Source/Shaders/Builtin/Functions/writeLogDepth.js +84 -0
- package/Source/Shaders/Builtin/Functions/writeNonPerspective.glsl +32 -0
- package/Source/Shaders/Builtin/Functions/writeNonPerspective.js +34 -0
- package/Source/Shaders/Builtin/Structs/depthRangeStruct.glsl +9 -0
- package/Source/Shaders/Builtin/Structs/depthRangeStruct.js +11 -0
- package/Source/Shaders/Builtin/Structs/material.glsl +22 -0
- package/Source/Shaders/Builtin/Structs/material.js +24 -0
- package/Source/Shaders/Builtin/Structs/materialInput.glsl +28 -0
- package/Source/Shaders/Builtin/Structs/materialInput.js +30 -0
- package/Source/Shaders/Builtin/Structs/modelMaterial.glsl +29 -0
- package/Source/Shaders/Builtin/Structs/modelMaterial.js +31 -0
- package/Source/Shaders/Builtin/Structs/modelVertexOutput.glsl +16 -0
- package/Source/Shaders/Builtin/Structs/modelVertexOutput.js +18 -0
- package/Source/Shaders/Builtin/Structs/pbrParameters.glsl +16 -0
- package/Source/Shaders/Builtin/Structs/pbrParameters.js +18 -0
- package/Source/Shaders/Builtin/Structs/ray.glsl +11 -0
- package/Source/Shaders/Builtin/Structs/ray.js +13 -0
- package/Source/Shaders/Builtin/Structs/raySegment.glsl +27 -0
- package/Source/Shaders/Builtin/Structs/raySegment.js +29 -0
- package/Source/Shaders/Builtin/Structs/shadowParameters.glsl +15 -0
- package/Source/Shaders/Builtin/Structs/shadowParameters.js +17 -0
- package/Source/Shaders/CloudCollectionFS.glsl +263 -0
- package/Source/Shaders/CloudCollectionFS.js +265 -0
- package/Source/Shaders/CloudCollectionVS.glsl +48 -0
- package/Source/Shaders/CloudCollectionVS.js +50 -0
- package/Source/Shaders/CloudNoiseFS.glsl +92 -0
- package/Source/Shaders/CloudNoiseFS.js +94 -0
- package/Source/Shaders/CloudNoiseVS.glsl +18 -0
- package/Source/Shaders/CloudNoiseVS.js +20 -0
- package/Source/Shaders/CompareAndPackTranslucentDepth.glsl +12 -0
- package/Source/Shaders/CompareAndPackTranslucentDepth.js +14 -0
- package/Source/Shaders/CompositeOITFS.glsl +31 -0
- package/Source/Shaders/CompositeOITFS.js +33 -0
- package/Source/Shaders/DepthPlaneFS.glsl +36 -0
- package/Source/Shaders/DepthPlaneFS.js +38 -0
- package/Source/Shaders/DepthPlaneVS.glsl +11 -0
- package/Source/Shaders/DepthPlaneVS.js +13 -0
- package/Source/Shaders/EllipsoidFS.glsl +112 -0
- package/Source/Shaders/EllipsoidFS.js +114 -0
- package/Source/Shaders/EllipsoidVS.glsl +28 -0
- package/Source/Shaders/EllipsoidVS.js +30 -0
- package/Source/Shaders/FXAA3_11.glsl +648 -0
- package/Source/Shaders/FXAA3_11.js +678 -0
- package/Source/Shaders/GlobeFS.glsl +652 -0
- package/Source/Shaders/GlobeFS.js +654 -0
- package/Source/Shaders/GlobeVS.glsl +253 -0
- package/Source/Shaders/GlobeVS.js +255 -0
- package/Source/Shaders/GroundAtmosphere.glsl +18 -0
- package/Source/Shaders/GroundAtmosphere.js +20 -0
- package/Source/Shaders/Materials/AspectRampMaterial.glsl +11 -0
- package/Source/Shaders/Materials/AspectRampMaterial.js +13 -0
- package/Source/Shaders/Materials/BumpMapMaterial.glsl +29 -0
- package/Source/Shaders/Materials/BumpMapMaterial.js +31 -0
- package/Source/Shaders/Materials/CheckerboardMaterial.glsl +29 -0
- package/Source/Shaders/Materials/CheckerboardMaterial.js +31 -0
- package/Source/Shaders/Materials/DotMaterial.glsl +18 -0
- package/Source/Shaders/Materials/DotMaterial.js +20 -0
- package/Source/Shaders/Materials/ElevationBandMaterial.glsl +74 -0
- package/Source/Shaders/Materials/ElevationBandMaterial.js +76 -0
- package/Source/Shaders/Materials/ElevationContourMaterial.glsl +29 -0
- package/Source/Shaders/Materials/ElevationContourMaterial.js +31 -0
- package/Source/Shaders/Materials/ElevationRampMaterial.glsl +14 -0
- package/Source/Shaders/Materials/ElevationRampMaterial.js +16 -0
- package/Source/Shaders/Materials/FadeMaterial.glsl +37 -0
- package/Source/Shaders/Materials/FadeMaterial.js +39 -0
- package/Source/Shaders/Materials/GridMaterial.glsl +60 -0
- package/Source/Shaders/Materials/GridMaterial.js +62 -0
- package/Source/Shaders/Materials/NormalMapMaterial.glsl +19 -0
- package/Source/Shaders/Materials/NormalMapMaterial.js +21 -0
- package/Source/Shaders/Materials/PolylineArrowMaterial.glsl +66 -0
- package/Source/Shaders/Materials/PolylineArrowMaterial.js +68 -0
- package/Source/Shaders/Materials/PolylineDashMaterial.glsl +39 -0
- package/Source/Shaders/Materials/PolylineDashMaterial.js +41 -0
- package/Source/Shaders/Materials/PolylineGlowMaterial.glsl +25 -0
- package/Source/Shaders/Materials/PolylineGlowMaterial.js +27 -0
- package/Source/Shaders/Materials/PolylineOutlineMaterial.glsl +29 -0
- package/Source/Shaders/Materials/PolylineOutlineMaterial.js +31 -0
- package/Source/Shaders/Materials/RimLightingMaterial.glsl +21 -0
- package/Source/Shaders/Materials/RimLightingMaterial.js +23 -0
- package/Source/Shaders/Materials/SlopeRampMaterial.glsl +11 -0
- package/Source/Shaders/Materials/SlopeRampMaterial.js +13 -0
- package/Source/Shaders/Materials/StripeMaterial.glsl +24 -0
- package/Source/Shaders/Materials/StripeMaterial.js +26 -0
- package/Source/Shaders/Materials/Water.glsl +58 -0
- package/Source/Shaders/Materials/Water.js +60 -0
- package/Source/Shaders/Model/CPUStylingStageFS.glsl +49 -0
- package/Source/Shaders/Model/CPUStylingStageFS.js +51 -0
- package/Source/Shaders/Model/CPUStylingStageVS.glsl +30 -0
- package/Source/Shaders/Model/CPUStylingStageVS.js +32 -0
- package/Source/Shaders/Model/CustomShaderStageFS.glsl +18 -0
- package/Source/Shaders/Model/CustomShaderStageFS.js +20 -0
- package/Source/Shaders/Model/CustomShaderStageVS.glsl +19 -0
- package/Source/Shaders/Model/CustomShaderStageVS.js +21 -0
- package/Source/Shaders/Model/FeatureIdStageFS.glsl +4 -0
- package/Source/Shaders/Model/FeatureIdStageFS.js +6 -0
- package/Source/Shaders/Model/FeatureIdStageVS.glsl +6 -0
- package/Source/Shaders/Model/FeatureIdStageVS.js +8 -0
- package/Source/Shaders/Model/GeometryStageFS.glsl +25 -0
- package/Source/Shaders/Model/GeometryStageFS.js +27 -0
- package/Source/Shaders/Model/GeometryStageVS.glsl +42 -0
- package/Source/Shaders/Model/GeometryStageVS.js +44 -0
- package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +165 -0
- package/Source/Shaders/Model/ImageBasedLightingStageFS.js +166 -0
- package/Source/Shaders/Model/InstancingStageCommon.glsl +67 -0
- package/Source/Shaders/Model/InstancingStageCommon.js +69 -0
- package/Source/Shaders/Model/InstancingStageVS.glsl +18 -0
- package/Source/Shaders/Model/InstancingStageVS.js +20 -0
- package/Source/Shaders/Model/LegacyInstancingStageVS.glsl +20 -0
- package/Source/Shaders/Model/LegacyInstancingStageVS.js +22 -0
- package/Source/Shaders/Model/LightingStageFS.glsl +73 -0
- package/Source/Shaders/Model/LightingStageFS.js +75 -0
- package/Source/Shaders/Model/MaterialStageFS.glsl +226 -0
- package/Source/Shaders/Model/MaterialStageFS.js +228 -0
- package/Source/Shaders/Model/MetadataStageFS.glsl +9 -0
- package/Source/Shaders/Model/MetadataStageFS.js +11 -0
- package/Source/Shaders/Model/MetadataStageVS.glsl +10 -0
- package/Source/Shaders/Model/MetadataStageVS.js +12 -0
- package/Source/Shaders/Model/ModelClippingPlanesStageFS.glsl +88 -0
- package/Source/Shaders/Model/ModelClippingPlanesStageFS.js +90 -0
- package/Source/Shaders/Model/ModelColorStageFS.glsl +7 -0
- package/Source/Shaders/Model/ModelColorStageFS.js +8 -0
- package/Source/Shaders/Model/ModelFS.glsl +89 -0
- package/Source/Shaders/Model/ModelFS.js +91 -0
- package/Source/Shaders/Model/ModelSilhouetteStageFS.glsl +5 -0
- package/Source/Shaders/Model/ModelSilhouetteStageFS.js +6 -0
- package/Source/Shaders/Model/ModelSilhouetteStageVS.glsl +10 -0
- package/Source/Shaders/Model/ModelSilhouetteStageVS.js +12 -0
- package/Source/Shaders/Model/ModelSplitterStageFS.glsl +9 -0
- package/Source/Shaders/Model/ModelSplitterStageFS.js +11 -0
- package/Source/Shaders/Model/ModelVS.glsl +136 -0
- package/Source/Shaders/Model/ModelVS.js +138 -0
- package/Source/Shaders/Model/MorphTargetsStageVS.glsl +15 -0
- package/Source/Shaders/Model/MorphTargetsStageVS.js +16 -0
- package/Source/Shaders/Model/PointCloudStylingStageVS.glsl +45 -0
- package/Source/Shaders/Model/PointCloudStylingStageVS.js +46 -0
- package/Source/Shaders/Model/PrimitiveOutlineStageFS.glsl +16 -0
- package/Source/Shaders/Model/PrimitiveOutlineStageFS.js +18 -0
- package/Source/Shaders/Model/PrimitiveOutlineStageVS.glsl +3 -0
- package/Source/Shaders/Model/PrimitiveOutlineStageVS.js +5 -0
- package/Source/Shaders/Model/SelectedFeatureIdStageCommon.glsl +51 -0
- package/Source/Shaders/Model/SelectedFeatureIdStageCommon.js +53 -0
- package/Source/Shaders/Model/SkinningStageVS.glsl +18 -0
- package/Source/Shaders/Model/SkinningStageVS.js +19 -0
- package/Source/Shaders/OctahedralProjectionAtlasFS.glsl +89 -0
- package/Source/Shaders/OctahedralProjectionAtlasFS.js +91 -0
- package/Source/Shaders/OctahedralProjectionFS.glsl +14 -0
- package/Source/Shaders/OctahedralProjectionFS.js +16 -0
- package/Source/Shaders/OctahedralProjectionVS.glsl +10 -0
- package/Source/Shaders/OctahedralProjectionVS.js +12 -0
- package/Source/Shaders/PointPrimitiveCollectionFS.glsl +43 -0
- package/Source/Shaders/PointPrimitiveCollectionFS.js +45 -0
- package/Source/Shaders/PointPrimitiveCollectionVS.glsl +180 -0
- package/Source/Shaders/PointPrimitiveCollectionVS.js +182 -0
- package/Source/Shaders/PolylineCommon.glsl +176 -0
- package/Source/Shaders/PolylineCommon.js +178 -0
- package/Source/Shaders/PolylineFS.glsl +25 -0
- package/Source/Shaders/PolylineFS.js +27 -0
- package/Source/Shaders/PolylineShadowVolumeFS.glsl +90 -0
- package/Source/Shaders/PolylineShadowVolumeFS.js +92 -0
- package/Source/Shaders/PolylineShadowVolumeMorphFS.glsl +45 -0
- package/Source/Shaders/PolylineShadowVolumeMorphFS.js +47 -0
- package/Source/Shaders/PolylineShadowVolumeMorphVS.glsl +177 -0
- package/Source/Shaders/PolylineShadowVolumeMorphVS.js +179 -0
- package/Source/Shaders/PolylineShadowVolumeVS.glsl +168 -0
- package/Source/Shaders/PolylineShadowVolumeVS.js +170 -0
- package/Source/Shaders/PolylineVS.glsl +103 -0
- package/Source/Shaders/PolylineVS.js +105 -0
- package/Source/Shaders/PostProcessStages/AcesTonemappingStage.glsl +21 -0
- package/Source/Shaders/PostProcessStages/AcesTonemappingStage.js +23 -0
- package/Source/Shaders/PostProcessStages/AdditiveBlend.glsl +17 -0
- package/Source/Shaders/PostProcessStages/AdditiveBlend.js +19 -0
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +115 -0
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +117 -0
- package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.glsl +11 -0
- package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.js +13 -0
- package/Source/Shaders/PostProcessStages/BlackAndWhite.glsl +19 -0
- package/Source/Shaders/PostProcessStages/BlackAndWhite.js +21 -0
- package/Source/Shaders/PostProcessStages/BloomComposite.glsl +20 -0
- package/Source/Shaders/PostProcessStages/BloomComposite.js +22 -0
- package/Source/Shaders/PostProcessStages/BrightPass.glsl +30 -0
- package/Source/Shaders/PostProcessStages/BrightPass.js +32 -0
- package/Source/Shaders/PostProcessStages/Brightness.glsl +11 -0
- package/Source/Shaders/PostProcessStages/Brightness.js +13 -0
- package/Source/Shaders/PostProcessStages/CompositeTranslucentClassification.glsl +31 -0
- package/Source/Shaders/PostProcessStages/CompositeTranslucentClassification.js +33 -0
- package/Source/Shaders/PostProcessStages/ContrastBias.glsl +17 -0
- package/Source/Shaders/PostProcessStages/ContrastBias.js +19 -0
- package/Source/Shaders/PostProcessStages/DepthOfField.glsl +39 -0
- package/Source/Shaders/PostProcessStages/DepthOfField.js +41 -0
- package/Source/Shaders/PostProcessStages/DepthView.glsl +9 -0
- package/Source/Shaders/PostProcessStages/DepthView.js +11 -0
- package/Source/Shaders/PostProcessStages/DepthViewPacked.glsl +14 -0
- package/Source/Shaders/PostProcessStages/DepthViewPacked.js +16 -0
- package/Source/Shaders/PostProcessStages/EdgeDetection.glsl +60 -0
- package/Source/Shaders/PostProcessStages/EdgeDetection.js +62 -0
- package/Source/Shaders/PostProcessStages/FXAA.glsl +21 -0
- package/Source/Shaders/PostProcessStages/FXAA.js +23 -0
- package/Source/Shaders/PostProcessStages/FilmicTonemapping.glsl +36 -0
- package/Source/Shaders/PostProcessStages/FilmicTonemapping.js +38 -0
- package/Source/Shaders/PostProcessStages/GaussianBlur1D.glsl +47 -0
- package/Source/Shaders/PostProcessStages/GaussianBlur1D.js +49 -0
- package/Source/Shaders/PostProcessStages/LensFlare.glsl +153 -0
- package/Source/Shaders/PostProcessStages/LensFlare.js +155 -0
- package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.glsl +24 -0
- package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.js +26 -0
- package/Source/Shaders/PostProcessStages/NightVision.glsl +16 -0
- package/Source/Shaders/PostProcessStages/NightVision.js +18 -0
- package/Source/Shaders/PostProcessStages/PassThrough.glsl +8 -0
- package/Source/Shaders/PostProcessStages/PassThrough.js +10 -0
- package/Source/Shaders/PostProcessStages/PassThroughDepth.glsl +8 -0
- package/Source/Shaders/PostProcessStages/PassThroughDepth.js +10 -0
- package/Source/Shaders/PostProcessStages/PointCloudEyeDomeLighting.glsl +63 -0
- package/Source/Shaders/PostProcessStages/PointCloudEyeDomeLighting.js +65 -0
- package/Source/Shaders/PostProcessStages/ReinhardTonemapping.glsl +23 -0
- package/Source/Shaders/PostProcessStages/ReinhardTonemapping.js +25 -0
- package/Source/Shaders/PostProcessStages/Silhouette.glsl +11 -0
- package/Source/Shaders/PostProcessStages/Silhouette.js +13 -0
- package/Source/Shaders/ReprojectWebMercatorFS.glsl +8 -0
- package/Source/Shaders/ReprojectWebMercatorFS.js +10 -0
- package/Source/Shaders/ReprojectWebMercatorVS.glsl +12 -0
- package/Source/Shaders/ReprojectWebMercatorVS.js +14 -0
- package/Source/Shaders/ShadowVolumeAppearanceFS.glsl +165 -0
- package/Source/Shaders/ShadowVolumeAppearanceFS.js +167 -0
- package/Source/Shaders/ShadowVolumeAppearanceVS.glsl +101 -0
- package/Source/Shaders/ShadowVolumeAppearanceVS.js +103 -0
- package/Source/Shaders/ShadowVolumeFS.glsl +17 -0
- package/Source/Shaders/ShadowVolumeFS.js +19 -0
- package/Source/Shaders/SkyAtmosphereCommon.glsl +91 -0
- package/Source/Shaders/SkyAtmosphereCommon.js +93 -0
- package/Source/Shaders/SkyAtmosphereFS.glsl +64 -0
- package/Source/Shaders/SkyAtmosphereFS.js +66 -0
- package/Source/Shaders/SkyAtmosphereVS.glsl +30 -0
- package/Source/Shaders/SkyAtmosphereVS.js +32 -0
- package/Source/Shaders/SkyBoxFS.glsl +9 -0
- package/Source/Shaders/SkyBoxFS.js +11 -0
- package/Source/Shaders/SkyBoxVS.glsl +10 -0
- package/Source/Shaders/SkyBoxVS.js +12 -0
- package/Source/Shaders/SunFS.glsl +9 -0
- package/Source/Shaders/SunFS.js +11 -0
- package/Source/Shaders/SunTextureFS.glsl +55 -0
- package/Source/Shaders/SunTextureFS.js +57 -0
- package/Source/Shaders/SunVS.glsl +28 -0
- package/Source/Shaders/SunVS.js +30 -0
- package/Source/Shaders/Vector3DTileClampedPolylinesFS.glsl +52 -0
- package/Source/Shaders/Vector3DTileClampedPolylinesFS.js +54 -0
- package/Source/Shaders/Vector3DTileClampedPolylinesVS.glsl +85 -0
- package/Source/Shaders/Vector3DTileClampedPolylinesVS.js +87 -0
- package/Source/Shaders/Vector3DTilePolylinesVS.glsl +22 -0
- package/Source/Shaders/Vector3DTilePolylinesVS.js +24 -0
- package/Source/Shaders/VectorTileVS.glsl +9 -0
- package/Source/Shaders/VectorTileVS.js +11 -0
- package/Source/Shaders/ViewportQuadFS.glsl +16 -0
- package/Source/Shaders/ViewportQuadFS.js +18 -0
- package/Source/Shaders/ViewportQuadVS.glsl +10 -0
- package/Source/Shaders/ViewportQuadVS.js +12 -0
- package/Source/ThirdParty/Workers/basis_transcoder.js +21 -0
- package/Source/ThirdParty/Workers/draco_decoder_nodejs.js +118 -0
- package/Source/ThirdParty/Workers/package.json +1 -0
- package/Source/ThirdParty/Workers/pako_deflate.min.js +2 -0
- package/Source/ThirdParty/Workers/pako_inflate.min.js +2 -0
- package/Source/ThirdParty/Workers/z-worker-pako.js +1 -0
- package/Source/ThirdParty/basis_transcoder.wasm +0 -0
- package/Source/ThirdParty/draco_decoder.wasm +0 -0
- package/Source/ThirdParty/google-earth-dbroot-parser.js +8337 -0
- package/Source/Widget/CesiumWidget.css +124 -0
- package/Source/Widget/CesiumWidget.js +807 -0
- package/Source/Widget/lighter.css +14 -0
- package/Source/Workers/cesiumWorkerBootstrapper.js +2290 -0
- package/Source/Workers/package.json +1 -0
- package/Source/Workers/transferTypedArrayTest.js +22 -0
- package/Source/WorkersES6/combineGeometry.js +14 -0
- package/Source/WorkersES6/createBoxGeometry.js +10 -0
- package/Source/WorkersES6/createBoxOutlineGeometry.js +10 -0
- package/Source/WorkersES6/createCircleGeometry.js +18 -0
- package/Source/WorkersES6/createCircleOutlineGeometry.js +18 -0
- package/Source/WorkersES6/createCoplanarPolygonGeometry.js +10 -0
- package/Source/WorkersES6/createCoplanarPolygonOutlineGeometry.js +15 -0
- package/Source/WorkersES6/createCorridorGeometry.js +12 -0
- package/Source/WorkersES6/createCorridorOutlineGeometry.js +17 -0
- package/Source/WorkersES6/createCylinderGeometry.js +10 -0
- package/Source/WorkersES6/createCylinderOutlineGeometry.js +10 -0
- package/Source/WorkersES6/createEllipseGeometry.js +14 -0
- package/Source/WorkersES6/createEllipseOutlineGeometry.js +14 -0
- package/Source/WorkersES6/createEllipsoidGeometry.js +10 -0
- package/Source/WorkersES6/createEllipsoidOutlineGeometry.js +13 -0
- package/Source/WorkersES6/createFrustumGeometry.js +10 -0
- package/Source/WorkersES6/createFrustumOutlineGeometry.js +10 -0
- package/Source/WorkersES6/createGeometry.js +52 -0
- package/Source/WorkersES6/createGroundPolylineGeometry.js +16 -0
- package/Source/WorkersES6/createPlaneGeometry.js +10 -0
- package/Source/WorkersES6/createPlaneOutlineGeometry.js +10 -0
- package/Source/WorkersES6/createPolygonGeometry.js +12 -0
- package/Source/WorkersES6/createPolygonOutlineGeometry.js +12 -0
- package/Source/WorkersES6/createPolylineGeometry.js +12 -0
- package/Source/WorkersES6/createPolylineVolumeGeometry.js +17 -0
- package/Source/WorkersES6/createPolylineVolumeOutlineGeometry.js +22 -0
- package/Source/WorkersES6/createRectangleGeometry.js +14 -0
- package/Source/WorkersES6/createRectangleOutlineGeometry.js +17 -0
- package/Source/WorkersES6/createSimplePolylineGeometry.js +17 -0
- package/Source/WorkersES6/createSphereGeometry.js +10 -0
- package/Source/WorkersES6/createSphereOutlineGeometry.js +10 -0
- package/Source/WorkersES6/createTaskProcessorWorker.js +129 -0
- package/Source/WorkersES6/createVectorTileClampedPolylines.js +541 -0
- package/Source/WorkersES6/createVectorTileGeometries.js +414 -0
- package/Source/WorkersES6/createVectorTilePoints.js +81 -0
- package/Source/WorkersES6/createVectorTilePolygons.js +412 -0
- package/Source/WorkersES6/createVectorTilePolylines.js +210 -0
- package/Source/WorkersES6/createVerticesFromGoogleEarthEnterpriseBuffer.js +653 -0
- package/Source/WorkersES6/createVerticesFromHeightmap.js +53 -0
- package/Source/WorkersES6/createVerticesFromQuantizedTerrainMesh.js +549 -0
- package/Source/WorkersES6/createWallGeometry.js +12 -0
- package/Source/WorkersES6/createWallOutlineGeometry.js +12 -0
- package/Source/WorkersES6/decodeDraco.js +381 -0
- package/Source/WorkersES6/decodeGoogleEarthEnterprisePacket.js +268 -0
- package/Source/WorkersES6/decodeI3S.js +1044 -0
- package/Source/WorkersES6/transcodeKTX2.js +316 -0
- package/Source/WorkersES6/upsampleQuantizedTerrainMesh.js +680 -0
- package/index.d.ts +41767 -0
- package/index.js +1085 -0
- package/package.json +73 -0
|
@@ -0,0 +1,1546 @@
|
|
|
1
|
+
import Cartesian3 from "../Core/Cartesian3.js";
|
|
2
|
+
import Cartographic from "../Core/Cartographic.js";
|
|
3
|
+
import defaultValue from "../Core/defaultValue.js";
|
|
4
|
+
import defined from "../Core/defined.js";
|
|
5
|
+
import DeveloperError from "../Core/DeveloperError.js";
|
|
6
|
+
import Event from "../Core/Event.js";
|
|
7
|
+
import getTimestamp from "../Core/getTimestamp.js";
|
|
8
|
+
import CesiumMath from "../Core/Math.js";
|
|
9
|
+
import Matrix4 from "../Core/Matrix4.js";
|
|
10
|
+
import OrthographicFrustum from "../Core/OrthographicFrustum.js";
|
|
11
|
+
import OrthographicOffCenterFrustum from "../Core/OrthographicOffCenterFrustum.js";
|
|
12
|
+
import Ray from "../Core/Ray.js";
|
|
13
|
+
import Rectangle from "../Core/Rectangle.js";
|
|
14
|
+
import Visibility from "../Core/Visibility.js";
|
|
15
|
+
import QuadtreeOccluders from "./QuadtreeOccluders.js";
|
|
16
|
+
import QuadtreeTile from "./QuadtreeTile.js";
|
|
17
|
+
import QuadtreeTileLoadState from "./QuadtreeTileLoadState.js";
|
|
18
|
+
import SceneMode from "./SceneMode.js";
|
|
19
|
+
import TileReplacementQueue from "./TileReplacementQueue.js";
|
|
20
|
+
import TileSelectionResult from "./TileSelectionResult.js";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Renders massive sets of data by utilizing level-of-detail and culling. The globe surface is divided into
|
|
24
|
+
* a quadtree of tiles with large, low-detail tiles at the root and small, high-detail tiles at the leaves.
|
|
25
|
+
* The set of tiles to render is selected by projecting an estimate of the geometric error in a tile onto
|
|
26
|
+
* the screen to estimate screen-space error, in pixels, which must be below a user-specified threshold.
|
|
27
|
+
* The actual content of the tiles is arbitrary and is specified using a {@link QuadtreeTileProvider}.
|
|
28
|
+
*
|
|
29
|
+
* @alias QuadtreePrimitive
|
|
30
|
+
* @constructor
|
|
31
|
+
* @private
|
|
32
|
+
*
|
|
33
|
+
* @param {QuadtreeTileProvider} options.tileProvider The tile provider that loads, renders, and estimates
|
|
34
|
+
* the distance to individual tiles.
|
|
35
|
+
* @param {Number} [options.maximumScreenSpaceError=2] The maximum screen-space error, in pixels, that is allowed.
|
|
36
|
+
* A higher maximum error will render fewer tiles and improve performance, while a lower
|
|
37
|
+
* value will improve visual quality.
|
|
38
|
+
* @param {Number} [options.tileCacheSize=100] The maximum number of tiles that will be retained in the tile cache.
|
|
39
|
+
* Note that tiles will never be unloaded if they were used for rendering the last
|
|
40
|
+
* frame, so the actual number of resident tiles may be higher. The value of
|
|
41
|
+
* this property will not affect visual quality.
|
|
42
|
+
*/
|
|
43
|
+
function QuadtreePrimitive(options) {
|
|
44
|
+
//>>includeStart('debug', pragmas.debug);
|
|
45
|
+
if (!defined(options) || !defined(options.tileProvider)) {
|
|
46
|
+
throw new DeveloperError("options.tileProvider is required.");
|
|
47
|
+
}
|
|
48
|
+
if (defined(options.tileProvider.quadtree)) {
|
|
49
|
+
throw new DeveloperError(
|
|
50
|
+
"A QuadtreeTileProvider can only be used with a single QuadtreePrimitive"
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
//>>includeEnd('debug');
|
|
54
|
+
|
|
55
|
+
this._tileProvider = options.tileProvider;
|
|
56
|
+
this._tileProvider.quadtree = this;
|
|
57
|
+
|
|
58
|
+
this._debug = {
|
|
59
|
+
enableDebugOutput: false,
|
|
60
|
+
|
|
61
|
+
maxDepth: 0,
|
|
62
|
+
maxDepthVisited: 0,
|
|
63
|
+
tilesVisited: 0,
|
|
64
|
+
tilesCulled: 0,
|
|
65
|
+
tilesRendered: 0,
|
|
66
|
+
tilesWaitingForChildren: 0,
|
|
67
|
+
|
|
68
|
+
lastMaxDepth: -1,
|
|
69
|
+
lastMaxDepthVisited: -1,
|
|
70
|
+
lastTilesVisited: -1,
|
|
71
|
+
lastTilesCulled: -1,
|
|
72
|
+
lastTilesRendered: -1,
|
|
73
|
+
lastTilesWaitingForChildren: -1,
|
|
74
|
+
|
|
75
|
+
suspendLodUpdate: false,
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const tilingScheme = this._tileProvider.tilingScheme;
|
|
79
|
+
const ellipsoid = tilingScheme.ellipsoid;
|
|
80
|
+
|
|
81
|
+
this._tilesToRender = [];
|
|
82
|
+
this._tileLoadQueueHigh = []; // high priority tiles are preventing refinement
|
|
83
|
+
this._tileLoadQueueMedium = []; // medium priority tiles are being rendered
|
|
84
|
+
this._tileLoadQueueLow = []; // low priority tiles were refined past or are non-visible parts of quads.
|
|
85
|
+
this._tileReplacementQueue = new TileReplacementQueue();
|
|
86
|
+
this._levelZeroTiles = undefined;
|
|
87
|
+
this._loadQueueTimeSlice = 5.0;
|
|
88
|
+
this._tilesInvalidated = false;
|
|
89
|
+
|
|
90
|
+
this._addHeightCallbacks = [];
|
|
91
|
+
this._removeHeightCallbacks = [];
|
|
92
|
+
|
|
93
|
+
this._tileToUpdateHeights = [];
|
|
94
|
+
this._lastTileIndex = 0;
|
|
95
|
+
this._updateHeightsTimeSlice = 2.0;
|
|
96
|
+
|
|
97
|
+
// If a culled tile contains _cameraPositionCartographic or _cameraReferenceFrameOriginCartographic, it will be marked
|
|
98
|
+
// TileSelectionResult.CULLED_BUT_NEEDED and added to the list of tiles to update heights,
|
|
99
|
+
// even though it is not rendered.
|
|
100
|
+
// These are updated each frame in `selectTilesForRendering`.
|
|
101
|
+
this._cameraPositionCartographic = undefined;
|
|
102
|
+
this._cameraReferenceFrameOriginCartographic = undefined;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Gets or sets the maximum screen-space error, in pixels, that is allowed.
|
|
106
|
+
* A higher maximum error will render fewer tiles and improve performance, while a lower
|
|
107
|
+
* value will improve visual quality.
|
|
108
|
+
* @type {Number}
|
|
109
|
+
* @default 2
|
|
110
|
+
*/
|
|
111
|
+
this.maximumScreenSpaceError = defaultValue(
|
|
112
|
+
options.maximumScreenSpaceError,
|
|
113
|
+
2
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Gets or sets the maximum number of tiles that will be retained in the tile cache.
|
|
118
|
+
* Note that tiles will never be unloaded if they were used for rendering the last
|
|
119
|
+
* frame, so the actual number of resident tiles may be higher. The value of
|
|
120
|
+
* this property will not affect visual quality.
|
|
121
|
+
* @type {Number}
|
|
122
|
+
* @default 100
|
|
123
|
+
*/
|
|
124
|
+
this.tileCacheSize = defaultValue(options.tileCacheSize, 100);
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Gets or sets the number of loading descendant tiles that is considered "too many".
|
|
128
|
+
* If a tile has too many loading descendants, that tile will be loaded and rendered before any of
|
|
129
|
+
* its descendants are loaded and rendered. This means more feedback for the user that something
|
|
130
|
+
* is happening at the cost of a longer overall load time. Setting this to 0 will cause each
|
|
131
|
+
* tile level to be loaded successively, significantly increasing load time. Setting it to a large
|
|
132
|
+
* number (e.g. 1000) will minimize the number of tiles that are loaded but tend to make
|
|
133
|
+
* detail appear all at once after a long wait.
|
|
134
|
+
* @type {Number}
|
|
135
|
+
* @default 20
|
|
136
|
+
*/
|
|
137
|
+
this.loadingDescendantLimit = 20;
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Gets or sets a value indicating whether the ancestors of rendered tiles should be preloaded.
|
|
141
|
+
* Setting this to true optimizes the zoom-out experience and provides more detail in
|
|
142
|
+
* newly-exposed areas when panning. The down side is that it requires loading more tiles.
|
|
143
|
+
* @type {Boolean}
|
|
144
|
+
* @default true
|
|
145
|
+
*/
|
|
146
|
+
this.preloadAncestors = true;
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Gets or sets a value indicating whether the siblings of rendered tiles should be preloaded.
|
|
150
|
+
* Setting this to true causes tiles with the same parent as a rendered tile to be loaded, even
|
|
151
|
+
* if they are culled. Setting this to true may provide a better panning experience at the
|
|
152
|
+
* cost of loading more tiles.
|
|
153
|
+
* @type {Boolean}
|
|
154
|
+
* @default false
|
|
155
|
+
*/
|
|
156
|
+
this.preloadSiblings = false;
|
|
157
|
+
|
|
158
|
+
this._occluders = new QuadtreeOccluders({
|
|
159
|
+
ellipsoid: ellipsoid,
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
this._tileLoadProgressEvent = new Event();
|
|
163
|
+
this._lastTileLoadQueueLength = 0;
|
|
164
|
+
|
|
165
|
+
this._lastSelectionFrameNumber = undefined;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
Object.defineProperties(QuadtreePrimitive.prototype, {
|
|
169
|
+
/**
|
|
170
|
+
* Gets the provider of {@link QuadtreeTile} instances for this quadtree.
|
|
171
|
+
* @type {QuadtreeTile}
|
|
172
|
+
* @memberof QuadtreePrimitive.prototype
|
|
173
|
+
*/
|
|
174
|
+
tileProvider: {
|
|
175
|
+
get: function () {
|
|
176
|
+
return this._tileProvider;
|
|
177
|
+
},
|
|
178
|
+
},
|
|
179
|
+
/**
|
|
180
|
+
* Gets an event that's raised when the length of the tile load queue has changed since the last render frame. When the load queue is empty,
|
|
181
|
+
* all terrain and imagery for the current view have been loaded. The event passes the new length of the tile load queue.
|
|
182
|
+
*
|
|
183
|
+
* @memberof QuadtreePrimitive.prototype
|
|
184
|
+
* @type {Event}
|
|
185
|
+
*/
|
|
186
|
+
tileLoadProgressEvent: {
|
|
187
|
+
get: function () {
|
|
188
|
+
return this._tileLoadProgressEvent;
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
|
|
192
|
+
occluders: {
|
|
193
|
+
get: function () {
|
|
194
|
+
return this._occluders;
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Invalidates and frees all the tiles in the quadtree. The tiles must be reloaded
|
|
201
|
+
* before they can be displayed.
|
|
202
|
+
*
|
|
203
|
+
* @memberof QuadtreePrimitive
|
|
204
|
+
*/
|
|
205
|
+
QuadtreePrimitive.prototype.invalidateAllTiles = function () {
|
|
206
|
+
this._tilesInvalidated = true;
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
function invalidateAllTiles(primitive) {
|
|
210
|
+
// Clear the replacement queue
|
|
211
|
+
const replacementQueue = primitive._tileReplacementQueue;
|
|
212
|
+
replacementQueue.head = undefined;
|
|
213
|
+
replacementQueue.tail = undefined;
|
|
214
|
+
replacementQueue.count = 0;
|
|
215
|
+
|
|
216
|
+
clearTileLoadQueue(primitive);
|
|
217
|
+
|
|
218
|
+
// Free and recreate the level zero tiles.
|
|
219
|
+
const levelZeroTiles = primitive._levelZeroTiles;
|
|
220
|
+
if (defined(levelZeroTiles)) {
|
|
221
|
+
for (let i = 0; i < levelZeroTiles.length; ++i) {
|
|
222
|
+
const tile = levelZeroTiles[i];
|
|
223
|
+
const customData = tile.customData;
|
|
224
|
+
const customDataLength = customData.length;
|
|
225
|
+
|
|
226
|
+
for (let j = 0; j < customDataLength; ++j) {
|
|
227
|
+
const data = customData[j];
|
|
228
|
+
data.level = 0;
|
|
229
|
+
primitive._addHeightCallbacks.push(data);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
levelZeroTiles[i].freeResources();
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
primitive._levelZeroTiles = undefined;
|
|
237
|
+
|
|
238
|
+
primitive._tileProvider.cancelReprojections();
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Invokes a specified function for each {@link QuadtreeTile} that is partially
|
|
243
|
+
* or completely loaded.
|
|
244
|
+
*
|
|
245
|
+
* @param {Function} tileFunction The function to invoke for each loaded tile. The
|
|
246
|
+
* function is passed a reference to the tile as its only parameter.
|
|
247
|
+
*/
|
|
248
|
+
QuadtreePrimitive.prototype.forEachLoadedTile = function (tileFunction) {
|
|
249
|
+
let tile = this._tileReplacementQueue.head;
|
|
250
|
+
while (defined(tile)) {
|
|
251
|
+
if (tile.state !== QuadtreeTileLoadState.START) {
|
|
252
|
+
tileFunction(tile);
|
|
253
|
+
}
|
|
254
|
+
tile = tile.replacementNext;
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Invokes a specified function for each {@link QuadtreeTile} that was rendered
|
|
260
|
+
* in the most recent frame.
|
|
261
|
+
*
|
|
262
|
+
* @param {Function} tileFunction The function to invoke for each rendered tile. The
|
|
263
|
+
* function is passed a reference to the tile as its only parameter.
|
|
264
|
+
*/
|
|
265
|
+
QuadtreePrimitive.prototype.forEachRenderedTile = function (tileFunction) {
|
|
266
|
+
const tilesRendered = this._tilesToRender;
|
|
267
|
+
for (let i = 0, len = tilesRendered.length; i < len; ++i) {
|
|
268
|
+
tileFunction(tilesRendered[i]);
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* Calls the callback when a new tile is rendered that contains the given cartographic. The only parameter
|
|
274
|
+
* is the cartesian position on the tile.
|
|
275
|
+
*
|
|
276
|
+
* @param {Cartographic} cartographic The cartographic position.
|
|
277
|
+
* @param {Function} callback The function to be called when a new tile is loaded containing cartographic.
|
|
278
|
+
* @returns {Function} The function to remove this callback from the quadtree.
|
|
279
|
+
*/
|
|
280
|
+
QuadtreePrimitive.prototype.updateHeight = function (cartographic, callback) {
|
|
281
|
+
const primitive = this;
|
|
282
|
+
const object = {
|
|
283
|
+
positionOnEllipsoidSurface: undefined,
|
|
284
|
+
positionCartographic: cartographic,
|
|
285
|
+
level: -1,
|
|
286
|
+
callback: callback,
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
object.removeFunc = function () {
|
|
290
|
+
const addedCallbacks = primitive._addHeightCallbacks;
|
|
291
|
+
const length = addedCallbacks.length;
|
|
292
|
+
for (let i = 0; i < length; ++i) {
|
|
293
|
+
if (addedCallbacks[i] === object) {
|
|
294
|
+
addedCallbacks.splice(i, 1);
|
|
295
|
+
break;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
primitive._removeHeightCallbacks.push(object);
|
|
299
|
+
if (object.callback) {
|
|
300
|
+
object.callback = undefined;
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
primitive._addHeightCallbacks.push(object);
|
|
305
|
+
return object.removeFunc;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Updates the tile provider imagery and continues to process the tile load queue.
|
|
310
|
+
* @private
|
|
311
|
+
*/
|
|
312
|
+
QuadtreePrimitive.prototype.update = function (frameState) {
|
|
313
|
+
if (defined(this._tileProvider.update)) {
|
|
314
|
+
this._tileProvider.update(frameState);
|
|
315
|
+
}
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
function clearTileLoadQueue(primitive) {
|
|
319
|
+
const debug = primitive._debug;
|
|
320
|
+
debug.maxDepth = 0;
|
|
321
|
+
debug.maxDepthVisited = 0;
|
|
322
|
+
debug.tilesVisited = 0;
|
|
323
|
+
debug.tilesCulled = 0;
|
|
324
|
+
debug.tilesRendered = 0;
|
|
325
|
+
debug.tilesWaitingForChildren = 0;
|
|
326
|
+
|
|
327
|
+
primitive._tileLoadQueueHigh.length = 0;
|
|
328
|
+
primitive._tileLoadQueueMedium.length = 0;
|
|
329
|
+
primitive._tileLoadQueueLow.length = 0;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* Initializes values for a new render frame and prepare the tile load queue.
|
|
334
|
+
* @private
|
|
335
|
+
*/
|
|
336
|
+
QuadtreePrimitive.prototype.beginFrame = function (frameState) {
|
|
337
|
+
const passes = frameState.passes;
|
|
338
|
+
if (!passes.render) {
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
if (this._tilesInvalidated) {
|
|
343
|
+
invalidateAllTiles(this);
|
|
344
|
+
this._tilesInvalidated = false;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// Gets commands for any texture re-projections
|
|
348
|
+
this._tileProvider.initialize(frameState);
|
|
349
|
+
|
|
350
|
+
clearTileLoadQueue(this);
|
|
351
|
+
|
|
352
|
+
if (this._debug.suspendLodUpdate) {
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
this._tileReplacementQueue.markStartOfRenderFrame();
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* Selects new tiles to load based on the frame state and creates render commands.
|
|
361
|
+
* @private
|
|
362
|
+
*/
|
|
363
|
+
QuadtreePrimitive.prototype.render = function (frameState) {
|
|
364
|
+
const passes = frameState.passes;
|
|
365
|
+
const tileProvider = this._tileProvider;
|
|
366
|
+
|
|
367
|
+
if (passes.render) {
|
|
368
|
+
tileProvider.beginUpdate(frameState);
|
|
369
|
+
|
|
370
|
+
selectTilesForRendering(this, frameState);
|
|
371
|
+
createRenderCommandsForSelectedTiles(this, frameState);
|
|
372
|
+
|
|
373
|
+
tileProvider.endUpdate(frameState);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
if (passes.pick && this._tilesToRender.length > 0) {
|
|
377
|
+
tileProvider.updateForPick(frameState);
|
|
378
|
+
}
|
|
379
|
+
};
|
|
380
|
+
|
|
381
|
+
/**
|
|
382
|
+
* Checks if the load queue length has changed since the last time we raised a queue change event - if so, raises
|
|
383
|
+
* a new change event at the end of the render cycle.
|
|
384
|
+
* @private
|
|
385
|
+
*/
|
|
386
|
+
function updateTileLoadProgress(primitive, frameState) {
|
|
387
|
+
const currentLoadQueueLength =
|
|
388
|
+
primitive._tileLoadQueueHigh.length +
|
|
389
|
+
primitive._tileLoadQueueMedium.length +
|
|
390
|
+
primitive._tileLoadQueueLow.length;
|
|
391
|
+
|
|
392
|
+
if (
|
|
393
|
+
currentLoadQueueLength !== primitive._lastTileLoadQueueLength ||
|
|
394
|
+
primitive._tilesInvalidated
|
|
395
|
+
) {
|
|
396
|
+
const raiseEvent = Event.prototype.raiseEvent.bind(
|
|
397
|
+
primitive._tileLoadProgressEvent,
|
|
398
|
+
currentLoadQueueLength
|
|
399
|
+
);
|
|
400
|
+
frameState.afterRender.push(() => {
|
|
401
|
+
raiseEvent();
|
|
402
|
+
return true;
|
|
403
|
+
});
|
|
404
|
+
primitive._lastTileLoadQueueLength = currentLoadQueueLength;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
const debug = primitive._debug;
|
|
408
|
+
if (debug.enableDebugOutput && !debug.suspendLodUpdate) {
|
|
409
|
+
debug.maxDepth = primitive._tilesToRender.reduce(function (max, tile) {
|
|
410
|
+
return Math.max(max, tile.level);
|
|
411
|
+
}, -1);
|
|
412
|
+
debug.tilesRendered = primitive._tilesToRender.length;
|
|
413
|
+
|
|
414
|
+
if (
|
|
415
|
+
debug.tilesVisited !== debug.lastTilesVisited ||
|
|
416
|
+
debug.tilesRendered !== debug.lastTilesRendered ||
|
|
417
|
+
debug.tilesCulled !== debug.lastTilesCulled ||
|
|
418
|
+
debug.maxDepth !== debug.lastMaxDepth ||
|
|
419
|
+
debug.tilesWaitingForChildren !== debug.lastTilesWaitingForChildren ||
|
|
420
|
+
debug.maxDepthVisited !== debug.lastMaxDepthVisited
|
|
421
|
+
) {
|
|
422
|
+
console.log(
|
|
423
|
+
`Visited ${debug.tilesVisited}, Rendered: ${debug.tilesRendered}, Culled: ${debug.tilesCulled}, Max Depth Rendered: ${debug.maxDepth}, Max Depth Visited: ${debug.maxDepthVisited}, Waiting for children: ${debug.tilesWaitingForChildren}`
|
|
424
|
+
);
|
|
425
|
+
|
|
426
|
+
debug.lastTilesVisited = debug.tilesVisited;
|
|
427
|
+
debug.lastTilesRendered = debug.tilesRendered;
|
|
428
|
+
debug.lastTilesCulled = debug.tilesCulled;
|
|
429
|
+
debug.lastMaxDepth = debug.maxDepth;
|
|
430
|
+
debug.lastTilesWaitingForChildren = debug.tilesWaitingForChildren;
|
|
431
|
+
debug.lastMaxDepthVisited = debug.maxDepthVisited;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* Updates terrain heights.
|
|
438
|
+
* @private
|
|
439
|
+
*/
|
|
440
|
+
QuadtreePrimitive.prototype.endFrame = function (frameState) {
|
|
441
|
+
const passes = frameState.passes;
|
|
442
|
+
if (!passes.render || frameState.mode === SceneMode.MORPHING) {
|
|
443
|
+
// Only process the load queue for a single pass.
|
|
444
|
+
// Don't process the load queue or update heights during the morph flights.
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
// Load/create resources for terrain and imagery. Prepare texture re-projections for the next frame.
|
|
449
|
+
processTileLoadQueue(this, frameState);
|
|
450
|
+
updateHeights(this, frameState);
|
|
451
|
+
updateTileLoadProgress(this, frameState);
|
|
452
|
+
};
|
|
453
|
+
|
|
454
|
+
/**
|
|
455
|
+
* Returns true if this object was destroyed; otherwise, false.
|
|
456
|
+
* <br /><br />
|
|
457
|
+
* If this object was destroyed, it should not be used; calling any function other than
|
|
458
|
+
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
|
|
459
|
+
*
|
|
460
|
+
* @memberof QuadtreePrimitive
|
|
461
|
+
*
|
|
462
|
+
* @returns {Boolean} True if this object was destroyed; otherwise, false.
|
|
463
|
+
*
|
|
464
|
+
* @see QuadtreePrimitive#destroy
|
|
465
|
+
*/
|
|
466
|
+
QuadtreePrimitive.prototype.isDestroyed = function () {
|
|
467
|
+
return false;
|
|
468
|
+
};
|
|
469
|
+
|
|
470
|
+
/**
|
|
471
|
+
* Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
|
|
472
|
+
* release of WebGL resources, instead of relying on the garbage collector to destroy this object.
|
|
473
|
+
* <br /><br />
|
|
474
|
+
* Once an object is destroyed, it should not be used; calling any function other than
|
|
475
|
+
* <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
|
|
476
|
+
* assign the return value (<code>undefined</code>) to the object as done in the example.
|
|
477
|
+
*
|
|
478
|
+
* @memberof QuadtreePrimitive
|
|
479
|
+
*
|
|
480
|
+
* @exception {DeveloperError} This object was destroyed, i.e., destroy() was called.
|
|
481
|
+
*
|
|
482
|
+
*
|
|
483
|
+
* @example
|
|
484
|
+
* primitive = primitive && primitive.destroy();
|
|
485
|
+
*
|
|
486
|
+
* @see QuadtreePrimitive#isDestroyed
|
|
487
|
+
*/
|
|
488
|
+
QuadtreePrimitive.prototype.destroy = function () {
|
|
489
|
+
this._tileProvider = this._tileProvider && this._tileProvider.destroy();
|
|
490
|
+
};
|
|
491
|
+
|
|
492
|
+
let comparisonPoint;
|
|
493
|
+
const centerScratch = new Cartographic();
|
|
494
|
+
function compareDistanceToPoint(a, b) {
|
|
495
|
+
let center = Rectangle.center(a.rectangle, centerScratch);
|
|
496
|
+
const alon = center.longitude - comparisonPoint.longitude;
|
|
497
|
+
const alat = center.latitude - comparisonPoint.latitude;
|
|
498
|
+
|
|
499
|
+
center = Rectangle.center(b.rectangle, centerScratch);
|
|
500
|
+
const blon = center.longitude - comparisonPoint.longitude;
|
|
501
|
+
const blat = center.latitude - comparisonPoint.latitude;
|
|
502
|
+
|
|
503
|
+
return alon * alon + alat * alat - (blon * blon + blat * blat);
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
const cameraOriginScratch = new Cartesian3();
|
|
507
|
+
let rootTraversalDetails = [];
|
|
508
|
+
|
|
509
|
+
function selectTilesForRendering(primitive, frameState) {
|
|
510
|
+
const debug = primitive._debug;
|
|
511
|
+
if (debug.suspendLodUpdate) {
|
|
512
|
+
return;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
// Clear the render list.
|
|
516
|
+
const tilesToRender = primitive._tilesToRender;
|
|
517
|
+
tilesToRender.length = 0;
|
|
518
|
+
|
|
519
|
+
// We can't render anything before the level zero tiles exist.
|
|
520
|
+
let i;
|
|
521
|
+
const tileProvider = primitive._tileProvider;
|
|
522
|
+
if (!defined(primitive._levelZeroTiles)) {
|
|
523
|
+
if (tileProvider.ready) {
|
|
524
|
+
const tilingScheme = tileProvider.tilingScheme;
|
|
525
|
+
primitive._levelZeroTiles = QuadtreeTile.createLevelZeroTiles(
|
|
526
|
+
tilingScheme
|
|
527
|
+
);
|
|
528
|
+
const numberOfRootTiles = primitive._levelZeroTiles.length;
|
|
529
|
+
if (rootTraversalDetails.length < numberOfRootTiles) {
|
|
530
|
+
rootTraversalDetails = new Array(numberOfRootTiles);
|
|
531
|
+
for (i = 0; i < numberOfRootTiles; ++i) {
|
|
532
|
+
if (rootTraversalDetails[i] === undefined) {
|
|
533
|
+
rootTraversalDetails[i] = new TraversalDetails();
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
} else {
|
|
538
|
+
// Nothing to do until the provider is ready.
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
primitive._occluders.ellipsoid.cameraPosition = frameState.camera.positionWC;
|
|
544
|
+
|
|
545
|
+
let tile;
|
|
546
|
+
const levelZeroTiles = primitive._levelZeroTiles;
|
|
547
|
+
const occluders =
|
|
548
|
+
levelZeroTiles.length > 1 ? primitive._occluders : undefined;
|
|
549
|
+
|
|
550
|
+
// Sort the level zero tiles by the distance from the center to the camera.
|
|
551
|
+
// The level zero tiles aren't necessarily a nice neat quad, so we can't use the
|
|
552
|
+
// quadtree ordering we use elsewhere in the tree
|
|
553
|
+
comparisonPoint = frameState.camera.positionCartographic;
|
|
554
|
+
levelZeroTiles.sort(compareDistanceToPoint);
|
|
555
|
+
|
|
556
|
+
const customDataAdded = primitive._addHeightCallbacks;
|
|
557
|
+
const customDataRemoved = primitive._removeHeightCallbacks;
|
|
558
|
+
const frameNumber = frameState.frameNumber;
|
|
559
|
+
|
|
560
|
+
let len;
|
|
561
|
+
if (customDataAdded.length > 0 || customDataRemoved.length > 0) {
|
|
562
|
+
for (i = 0, len = levelZeroTiles.length; i < len; ++i) {
|
|
563
|
+
tile = levelZeroTiles[i];
|
|
564
|
+
tile._updateCustomData(frameNumber, customDataAdded, customDataRemoved);
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
customDataAdded.length = 0;
|
|
568
|
+
customDataRemoved.length = 0;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
const camera = frameState.camera;
|
|
572
|
+
|
|
573
|
+
primitive._cameraPositionCartographic = camera.positionCartographic;
|
|
574
|
+
const cameraFrameOrigin = Matrix4.getTranslation(
|
|
575
|
+
camera.transform,
|
|
576
|
+
cameraOriginScratch
|
|
577
|
+
);
|
|
578
|
+
primitive._cameraReferenceFrameOriginCartographic = primitive.tileProvider.tilingScheme.ellipsoid.cartesianToCartographic(
|
|
579
|
+
cameraFrameOrigin,
|
|
580
|
+
primitive._cameraReferenceFrameOriginCartographic
|
|
581
|
+
);
|
|
582
|
+
|
|
583
|
+
// Traverse in depth-first, near-to-far order.
|
|
584
|
+
for (i = 0, len = levelZeroTiles.length; i < len; ++i) {
|
|
585
|
+
tile = levelZeroTiles[i];
|
|
586
|
+
primitive._tileReplacementQueue.markTileRendered(tile);
|
|
587
|
+
if (!tile.renderable) {
|
|
588
|
+
queueTileLoad(primitive, primitive._tileLoadQueueHigh, tile, frameState);
|
|
589
|
+
++debug.tilesWaitingForChildren;
|
|
590
|
+
} else {
|
|
591
|
+
visitIfVisible(
|
|
592
|
+
primitive,
|
|
593
|
+
tile,
|
|
594
|
+
tileProvider,
|
|
595
|
+
frameState,
|
|
596
|
+
occluders,
|
|
597
|
+
false,
|
|
598
|
+
rootTraversalDetails[i]
|
|
599
|
+
);
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
primitive._lastSelectionFrameNumber = frameNumber;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
function queueTileLoad(primitive, queue, tile, frameState) {
|
|
607
|
+
if (!tile.needsLoading) {
|
|
608
|
+
return;
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
if (primitive.tileProvider.computeTileLoadPriority !== undefined) {
|
|
612
|
+
tile._loadPriority = primitive.tileProvider.computeTileLoadPriority(
|
|
613
|
+
tile,
|
|
614
|
+
frameState
|
|
615
|
+
);
|
|
616
|
+
}
|
|
617
|
+
queue.push(tile);
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
/**
|
|
621
|
+
* Tracks details of traversing a tile while selecting tiles for rendering.
|
|
622
|
+
* @alias TraversalDetails
|
|
623
|
+
* @constructor
|
|
624
|
+
* @private
|
|
625
|
+
*/
|
|
626
|
+
function TraversalDetails() {
|
|
627
|
+
/**
|
|
628
|
+
* True if all selected (i.e. not culled or refined) tiles in this tile's subtree
|
|
629
|
+
* are renderable. If the subtree is renderable, we'll render it; no drama.
|
|
630
|
+
*/
|
|
631
|
+
this.allAreRenderable = true;
|
|
632
|
+
|
|
633
|
+
/**
|
|
634
|
+
* True if any tiles in this tile's subtree were rendered last frame. If any
|
|
635
|
+
* were, we must render the subtree rather than this tile, because rendering
|
|
636
|
+
* this tile would cause detail to vanish that was visible last frame, and
|
|
637
|
+
* that's no good.
|
|
638
|
+
*/
|
|
639
|
+
this.anyWereRenderedLastFrame = false;
|
|
640
|
+
|
|
641
|
+
/**
|
|
642
|
+
* Counts the number of selected tiles in this tile's subtree that are
|
|
643
|
+
* not yet ready to be rendered because they need more loading. Note that
|
|
644
|
+
* this value will _not_ necessarily be zero when
|
|
645
|
+
* {@link TraversalDetails#allAreRenderable} is true, for subtle reasons.
|
|
646
|
+
* When {@link TraversalDetails#allAreRenderable} and
|
|
647
|
+
* {@link TraversalDetails#anyWereRenderedLastFrame} are both false, we
|
|
648
|
+
* will render this tile instead of any tiles in its subtree and
|
|
649
|
+
* the `allAreRenderable` value for this tile will reflect only whether _this_
|
|
650
|
+
* tile is renderable. The `notYetRenderableCount` value, however, will still
|
|
651
|
+
* reflect the total number of tiles that we are waiting on, including the
|
|
652
|
+
* ones that we're not rendering. `notYetRenderableCount` is only reset
|
|
653
|
+
* when a subtree is removed from the render queue because the
|
|
654
|
+
* `notYetRenderableCount` exceeds the
|
|
655
|
+
* {@link QuadtreePrimitive#loadingDescendantLimit}.
|
|
656
|
+
*/
|
|
657
|
+
this.notYetRenderableCount = 0;
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
function TraversalQuadDetails() {
|
|
661
|
+
this.southwest = new TraversalDetails();
|
|
662
|
+
this.southeast = new TraversalDetails();
|
|
663
|
+
this.northwest = new TraversalDetails();
|
|
664
|
+
this.northeast = new TraversalDetails();
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
TraversalQuadDetails.prototype.combine = function (result) {
|
|
668
|
+
const southwest = this.southwest;
|
|
669
|
+
const southeast = this.southeast;
|
|
670
|
+
const northwest = this.northwest;
|
|
671
|
+
const northeast = this.northeast;
|
|
672
|
+
|
|
673
|
+
result.allAreRenderable =
|
|
674
|
+
southwest.allAreRenderable &&
|
|
675
|
+
southeast.allAreRenderable &&
|
|
676
|
+
northwest.allAreRenderable &&
|
|
677
|
+
northeast.allAreRenderable;
|
|
678
|
+
result.anyWereRenderedLastFrame =
|
|
679
|
+
southwest.anyWereRenderedLastFrame ||
|
|
680
|
+
southeast.anyWereRenderedLastFrame ||
|
|
681
|
+
northwest.anyWereRenderedLastFrame ||
|
|
682
|
+
northeast.anyWereRenderedLastFrame;
|
|
683
|
+
result.notYetRenderableCount =
|
|
684
|
+
southwest.notYetRenderableCount +
|
|
685
|
+
southeast.notYetRenderableCount +
|
|
686
|
+
northwest.notYetRenderableCount +
|
|
687
|
+
northeast.notYetRenderableCount;
|
|
688
|
+
};
|
|
689
|
+
|
|
690
|
+
const traversalQuadsByLevel = new Array(31); // level 30 tiles are ~2cm wide at the equator, should be good enough.
|
|
691
|
+
for (let i = 0; i < traversalQuadsByLevel.length; ++i) {
|
|
692
|
+
traversalQuadsByLevel[i] = new TraversalQuadDetails();
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
/**
|
|
696
|
+
* Visits a tile for possible rendering. When we call this function with a tile:
|
|
697
|
+
*
|
|
698
|
+
* * the tile has been determined to be visible (possibly based on a bounding volume that is not very tight-fitting)
|
|
699
|
+
* * its parent tile does _not_ meet the SSE (unless ancestorMeetsSse=true, see comments below)
|
|
700
|
+
* * the tile may or may not be renderable
|
|
701
|
+
*
|
|
702
|
+
* @private
|
|
703
|
+
*
|
|
704
|
+
* @param {Primitive} primitive The QuadtreePrimitive.
|
|
705
|
+
* @param {FrameState} frameState The frame state.
|
|
706
|
+
* @param {QuadtreeTile} tile The tile to visit
|
|
707
|
+
* @param {Boolean} ancestorMeetsSse True if a tile higher in the tile tree already met the SSE and we're refining further only
|
|
708
|
+
* to maintain detail while that higher tile loads.
|
|
709
|
+
* @param {TraversalDetails} traveralDetails On return, populated with details of how the traversal of this tile went.
|
|
710
|
+
*/
|
|
711
|
+
function visitTile(
|
|
712
|
+
primitive,
|
|
713
|
+
frameState,
|
|
714
|
+
tile,
|
|
715
|
+
ancestorMeetsSse,
|
|
716
|
+
traversalDetails
|
|
717
|
+
) {
|
|
718
|
+
const debug = primitive._debug;
|
|
719
|
+
|
|
720
|
+
++debug.tilesVisited;
|
|
721
|
+
|
|
722
|
+
primitive._tileReplacementQueue.markTileRendered(tile);
|
|
723
|
+
tile._updateCustomData(frameState.frameNumber);
|
|
724
|
+
|
|
725
|
+
if (tile.level > debug.maxDepthVisited) {
|
|
726
|
+
debug.maxDepthVisited = tile.level;
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
const meetsSse =
|
|
730
|
+
screenSpaceError(primitive, frameState, tile) <
|
|
731
|
+
primitive.maximumScreenSpaceError;
|
|
732
|
+
|
|
733
|
+
const southwestChild = tile.southwestChild;
|
|
734
|
+
const southeastChild = tile.southeastChild;
|
|
735
|
+
const northwestChild = tile.northwestChild;
|
|
736
|
+
const northeastChild = tile.northeastChild;
|
|
737
|
+
|
|
738
|
+
const lastFrame = primitive._lastSelectionFrameNumber;
|
|
739
|
+
const lastFrameSelectionResult =
|
|
740
|
+
tile._lastSelectionResultFrame === lastFrame
|
|
741
|
+
? tile._lastSelectionResult
|
|
742
|
+
: TileSelectionResult.NONE;
|
|
743
|
+
|
|
744
|
+
const tileProvider = primitive.tileProvider;
|
|
745
|
+
|
|
746
|
+
if (meetsSse || ancestorMeetsSse) {
|
|
747
|
+
// This tile (or an ancestor) is the one we want to render this frame, but we'll do different things depending
|
|
748
|
+
// on the state of this tile and on what we did _last_ frame.
|
|
749
|
+
|
|
750
|
+
// We can render it if _any_ of the following are true:
|
|
751
|
+
// 1. We rendered it (or kicked it) last frame.
|
|
752
|
+
// 2. This tile was culled last frame, or it wasn't even visited because an ancestor was culled.
|
|
753
|
+
// 3. The tile is completely done loading.
|
|
754
|
+
// 4. a) Terrain is ready, and
|
|
755
|
+
// b) All necessary imagery is ready. Necessary imagery is imagery that was rendered with this tile
|
|
756
|
+
// or any descendants last frame. Such imagery is required because rendering this tile without
|
|
757
|
+
// it would cause detail to disappear.
|
|
758
|
+
//
|
|
759
|
+
// Determining condition 4 is more expensive, so we check the others first.
|
|
760
|
+
//
|
|
761
|
+
// Note that even if we decide to render a tile here, it may later get "kicked" in favor of an ancestor.
|
|
762
|
+
|
|
763
|
+
const oneRenderedLastFrame =
|
|
764
|
+
TileSelectionResult.originalResult(lastFrameSelectionResult) ===
|
|
765
|
+
TileSelectionResult.RENDERED;
|
|
766
|
+
const twoCulledOrNotVisited =
|
|
767
|
+
TileSelectionResult.originalResult(lastFrameSelectionResult) ===
|
|
768
|
+
TileSelectionResult.CULLED ||
|
|
769
|
+
lastFrameSelectionResult === TileSelectionResult.NONE;
|
|
770
|
+
const threeCompletelyLoaded = tile.state === QuadtreeTileLoadState.DONE;
|
|
771
|
+
|
|
772
|
+
let renderable =
|
|
773
|
+
oneRenderedLastFrame || twoCulledOrNotVisited || threeCompletelyLoaded;
|
|
774
|
+
|
|
775
|
+
if (!renderable) {
|
|
776
|
+
// Check the more expensive condition 4 above. This requires details of the thing
|
|
777
|
+
// we're rendering (e.g. the globe surface), so delegate it to the tile provider.
|
|
778
|
+
if (defined(tileProvider.canRenderWithoutLosingDetail)) {
|
|
779
|
+
renderable = tileProvider.canRenderWithoutLosingDetail(tile);
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
if (renderable) {
|
|
784
|
+
// Only load this tile if it (not just an ancestor) meets the SSE.
|
|
785
|
+
if (meetsSse) {
|
|
786
|
+
queueTileLoad(
|
|
787
|
+
primitive,
|
|
788
|
+
primitive._tileLoadQueueMedium,
|
|
789
|
+
tile,
|
|
790
|
+
frameState
|
|
791
|
+
);
|
|
792
|
+
}
|
|
793
|
+
addTileToRenderList(primitive, tile);
|
|
794
|
+
|
|
795
|
+
traversalDetails.allAreRenderable = tile.renderable;
|
|
796
|
+
traversalDetails.anyWereRenderedLastFrame =
|
|
797
|
+
lastFrameSelectionResult === TileSelectionResult.RENDERED;
|
|
798
|
+
traversalDetails.notYetRenderableCount = tile.renderable ? 0 : 1;
|
|
799
|
+
|
|
800
|
+
tile._lastSelectionResultFrame = frameState.frameNumber;
|
|
801
|
+
tile._lastSelectionResult = TileSelectionResult.RENDERED;
|
|
802
|
+
|
|
803
|
+
if (!traversalDetails.anyWereRenderedLastFrame) {
|
|
804
|
+
// Tile is newly-rendered this frame, so update its heights.
|
|
805
|
+
primitive._tileToUpdateHeights.push(tile);
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
return;
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
// Otherwise, we can't render this tile (or its fill) because doing so would cause detail to disappear
|
|
812
|
+
// that was visible last frame. Instead, keep rendering any still-visible descendants that were rendered
|
|
813
|
+
// last frame and render fills for newly-visible descendants. E.g. if we were rendering level 15 last
|
|
814
|
+
// frame but this frame we want level 14 and the closest renderable level <= 14 is 0, rendering level
|
|
815
|
+
// zero would be pretty jarring so instead we keep rendering level 15 even though its SSE is better
|
|
816
|
+
// than required. So fall through to continue traversal...
|
|
817
|
+
ancestorMeetsSse = true;
|
|
818
|
+
|
|
819
|
+
// Load this blocker tile with high priority, but only if this tile (not just an ancestor) meets the SSE.
|
|
820
|
+
if (meetsSse) {
|
|
821
|
+
queueTileLoad(primitive, primitive._tileLoadQueueHigh, tile, frameState);
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
if (tileProvider.canRefine(tile)) {
|
|
826
|
+
const allAreUpsampled =
|
|
827
|
+
southwestChild.upsampledFromParent &&
|
|
828
|
+
southeastChild.upsampledFromParent &&
|
|
829
|
+
northwestChild.upsampledFromParent &&
|
|
830
|
+
northeastChild.upsampledFromParent;
|
|
831
|
+
|
|
832
|
+
if (allAreUpsampled) {
|
|
833
|
+
// No point in rendering the children because they're all upsampled. Render this tile instead.
|
|
834
|
+
addTileToRenderList(primitive, tile);
|
|
835
|
+
|
|
836
|
+
// Rendered tile that's not waiting on children loads with medium priority.
|
|
837
|
+
queueTileLoad(
|
|
838
|
+
primitive,
|
|
839
|
+
primitive._tileLoadQueueMedium,
|
|
840
|
+
tile,
|
|
841
|
+
frameState
|
|
842
|
+
);
|
|
843
|
+
|
|
844
|
+
// Make sure we don't unload the children and forget they're upsampled.
|
|
845
|
+
primitive._tileReplacementQueue.markTileRendered(southwestChild);
|
|
846
|
+
primitive._tileReplacementQueue.markTileRendered(southeastChild);
|
|
847
|
+
primitive._tileReplacementQueue.markTileRendered(northwestChild);
|
|
848
|
+
primitive._tileReplacementQueue.markTileRendered(northeastChild);
|
|
849
|
+
|
|
850
|
+
traversalDetails.allAreRenderable = tile.renderable;
|
|
851
|
+
traversalDetails.anyWereRenderedLastFrame =
|
|
852
|
+
lastFrameSelectionResult === TileSelectionResult.RENDERED;
|
|
853
|
+
traversalDetails.notYetRenderableCount = tile.renderable ? 0 : 1;
|
|
854
|
+
|
|
855
|
+
tile._lastSelectionResultFrame = frameState.frameNumber;
|
|
856
|
+
tile._lastSelectionResult = TileSelectionResult.RENDERED;
|
|
857
|
+
|
|
858
|
+
if (!traversalDetails.anyWereRenderedLastFrame) {
|
|
859
|
+
// Tile is newly-rendered this frame, so update its heights.
|
|
860
|
+
primitive._tileToUpdateHeights.push(tile);
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
return;
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
// SSE is not good enough, so refine.
|
|
867
|
+
tile._lastSelectionResultFrame = frameState.frameNumber;
|
|
868
|
+
tile._lastSelectionResult = TileSelectionResult.REFINED;
|
|
869
|
+
|
|
870
|
+
const firstRenderedDescendantIndex = primitive._tilesToRender.length;
|
|
871
|
+
const loadIndexLow = primitive._tileLoadQueueLow.length;
|
|
872
|
+
const loadIndexMedium = primitive._tileLoadQueueMedium.length;
|
|
873
|
+
const loadIndexHigh = primitive._tileLoadQueueHigh.length;
|
|
874
|
+
const tilesToUpdateHeightsIndex = primitive._tileToUpdateHeights.length;
|
|
875
|
+
|
|
876
|
+
// No need to add the children to the load queue because they'll be added (if necessary) when they're visited.
|
|
877
|
+
visitVisibleChildrenNearToFar(
|
|
878
|
+
primitive,
|
|
879
|
+
southwestChild,
|
|
880
|
+
southeastChild,
|
|
881
|
+
northwestChild,
|
|
882
|
+
northeastChild,
|
|
883
|
+
frameState,
|
|
884
|
+
ancestorMeetsSse,
|
|
885
|
+
traversalDetails
|
|
886
|
+
);
|
|
887
|
+
|
|
888
|
+
// If no descendant tiles were added to the render list by the function above, it means they were all
|
|
889
|
+
// culled even though this tile was deemed visible. That's pretty common.
|
|
890
|
+
|
|
891
|
+
if (firstRenderedDescendantIndex !== primitive._tilesToRender.length) {
|
|
892
|
+
// At least one descendant tile was added to the render list.
|
|
893
|
+
// The traversalDetails tell us what happened while visiting the children.
|
|
894
|
+
|
|
895
|
+
const allAreRenderable = traversalDetails.allAreRenderable;
|
|
896
|
+
const anyWereRenderedLastFrame =
|
|
897
|
+
traversalDetails.anyWereRenderedLastFrame;
|
|
898
|
+
const notYetRenderableCount = traversalDetails.notYetRenderableCount;
|
|
899
|
+
let queuedForLoad = false;
|
|
900
|
+
|
|
901
|
+
if (!allAreRenderable && !anyWereRenderedLastFrame) {
|
|
902
|
+
// Some of our descendants aren't ready to render yet, and none were rendered last frame,
|
|
903
|
+
// so kick them all out of the render list and render this tile instead. Continue to load them though!
|
|
904
|
+
|
|
905
|
+
// Mark the rendered descendants and their ancestors - up to this tile - as kicked.
|
|
906
|
+
const renderList = primitive._tilesToRender;
|
|
907
|
+
for (let i = firstRenderedDescendantIndex; i < renderList.length; ++i) {
|
|
908
|
+
let workTile = renderList[i];
|
|
909
|
+
while (
|
|
910
|
+
workTile !== undefined &&
|
|
911
|
+
workTile._lastSelectionResult !== TileSelectionResult.KICKED &&
|
|
912
|
+
workTile !== tile
|
|
913
|
+
) {
|
|
914
|
+
workTile._lastSelectionResult = TileSelectionResult.kick(
|
|
915
|
+
workTile._lastSelectionResult
|
|
916
|
+
);
|
|
917
|
+
workTile = workTile.parent;
|
|
918
|
+
}
|
|
919
|
+
}
|
|
920
|
+
|
|
921
|
+
// Remove all descendants from the render list and add this tile.
|
|
922
|
+
primitive._tilesToRender.length = firstRenderedDescendantIndex;
|
|
923
|
+
primitive._tileToUpdateHeights.length = tilesToUpdateHeightsIndex;
|
|
924
|
+
addTileToRenderList(primitive, tile);
|
|
925
|
+
|
|
926
|
+
tile._lastSelectionResult = TileSelectionResult.RENDERED;
|
|
927
|
+
|
|
928
|
+
// If we're waiting on heaps of descendants, the above will take too long. So in that case,
|
|
929
|
+
// load this tile INSTEAD of loading any of the descendants, and tell the up-level we're only waiting
|
|
930
|
+
// on this tile. Keep doing this until we actually manage to render this tile.
|
|
931
|
+
const wasRenderedLastFrame =
|
|
932
|
+
lastFrameSelectionResult === TileSelectionResult.RENDERED;
|
|
933
|
+
if (
|
|
934
|
+
!wasRenderedLastFrame &&
|
|
935
|
+
notYetRenderableCount > primitive.loadingDescendantLimit
|
|
936
|
+
) {
|
|
937
|
+
// Remove all descendants from the load queues.
|
|
938
|
+
primitive._tileLoadQueueLow.length = loadIndexLow;
|
|
939
|
+
primitive._tileLoadQueueMedium.length = loadIndexMedium;
|
|
940
|
+
primitive._tileLoadQueueHigh.length = loadIndexHigh;
|
|
941
|
+
queueTileLoad(
|
|
942
|
+
primitive,
|
|
943
|
+
primitive._tileLoadQueueMedium,
|
|
944
|
+
tile,
|
|
945
|
+
frameState
|
|
946
|
+
);
|
|
947
|
+
traversalDetails.notYetRenderableCount = tile.renderable ? 0 : 1;
|
|
948
|
+
queuedForLoad = true;
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
traversalDetails.allAreRenderable = tile.renderable;
|
|
952
|
+
traversalDetails.anyWereRenderedLastFrame = wasRenderedLastFrame;
|
|
953
|
+
|
|
954
|
+
if (!wasRenderedLastFrame) {
|
|
955
|
+
// Tile is newly-rendered this frame, so update its heights.
|
|
956
|
+
primitive._tileToUpdateHeights.push(tile);
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
++debug.tilesWaitingForChildren;
|
|
960
|
+
}
|
|
961
|
+
|
|
962
|
+
if (primitive.preloadAncestors && !queuedForLoad) {
|
|
963
|
+
queueTileLoad(primitive, primitive._tileLoadQueueLow, tile, frameState);
|
|
964
|
+
}
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
return;
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
tile._lastSelectionResultFrame = frameState.frameNumber;
|
|
971
|
+
tile._lastSelectionResult = TileSelectionResult.RENDERED;
|
|
972
|
+
|
|
973
|
+
// We'd like to refine but can't because we have no availability data for this tile's children,
|
|
974
|
+
// so we have no idea if refinining would involve a load or an upsample. We'll have to finish
|
|
975
|
+
// loading this tile first in order to find that out, so load this refinement blocker with
|
|
976
|
+
// high priority.
|
|
977
|
+
addTileToRenderList(primitive, tile);
|
|
978
|
+
queueTileLoad(primitive, primitive._tileLoadQueueHigh, tile, frameState);
|
|
979
|
+
|
|
980
|
+
traversalDetails.allAreRenderable = tile.renderable;
|
|
981
|
+
traversalDetails.anyWereRenderedLastFrame =
|
|
982
|
+
lastFrameSelectionResult === TileSelectionResult.RENDERED;
|
|
983
|
+
traversalDetails.notYetRenderableCount = tile.renderable ? 0 : 1;
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
function visitVisibleChildrenNearToFar(
|
|
987
|
+
primitive,
|
|
988
|
+
southwest,
|
|
989
|
+
southeast,
|
|
990
|
+
northwest,
|
|
991
|
+
northeast,
|
|
992
|
+
frameState,
|
|
993
|
+
ancestorMeetsSse,
|
|
994
|
+
traversalDetails
|
|
995
|
+
) {
|
|
996
|
+
const cameraPosition = frameState.camera.positionCartographic;
|
|
997
|
+
const tileProvider = primitive._tileProvider;
|
|
998
|
+
const occluders = primitive._occluders;
|
|
999
|
+
|
|
1000
|
+
const quadDetails = traversalQuadsByLevel[southwest.level];
|
|
1001
|
+
const southwestDetails = quadDetails.southwest;
|
|
1002
|
+
const southeastDetails = quadDetails.southeast;
|
|
1003
|
+
const northwestDetails = quadDetails.northwest;
|
|
1004
|
+
const northeastDetails = quadDetails.northeast;
|
|
1005
|
+
|
|
1006
|
+
if (cameraPosition.longitude < southwest.rectangle.east) {
|
|
1007
|
+
if (cameraPosition.latitude < southwest.rectangle.north) {
|
|
1008
|
+
// Camera in southwest quadrant
|
|
1009
|
+
visitIfVisible(
|
|
1010
|
+
primitive,
|
|
1011
|
+
southwest,
|
|
1012
|
+
tileProvider,
|
|
1013
|
+
frameState,
|
|
1014
|
+
occluders,
|
|
1015
|
+
ancestorMeetsSse,
|
|
1016
|
+
southwestDetails
|
|
1017
|
+
);
|
|
1018
|
+
visitIfVisible(
|
|
1019
|
+
primitive,
|
|
1020
|
+
southeast,
|
|
1021
|
+
tileProvider,
|
|
1022
|
+
frameState,
|
|
1023
|
+
occluders,
|
|
1024
|
+
ancestorMeetsSse,
|
|
1025
|
+
southeastDetails
|
|
1026
|
+
);
|
|
1027
|
+
visitIfVisible(
|
|
1028
|
+
primitive,
|
|
1029
|
+
northwest,
|
|
1030
|
+
tileProvider,
|
|
1031
|
+
frameState,
|
|
1032
|
+
occluders,
|
|
1033
|
+
ancestorMeetsSse,
|
|
1034
|
+
northwestDetails
|
|
1035
|
+
);
|
|
1036
|
+
visitIfVisible(
|
|
1037
|
+
primitive,
|
|
1038
|
+
northeast,
|
|
1039
|
+
tileProvider,
|
|
1040
|
+
frameState,
|
|
1041
|
+
occluders,
|
|
1042
|
+
ancestorMeetsSse,
|
|
1043
|
+
northeastDetails
|
|
1044
|
+
);
|
|
1045
|
+
} else {
|
|
1046
|
+
// Camera in northwest quadrant
|
|
1047
|
+
visitIfVisible(
|
|
1048
|
+
primitive,
|
|
1049
|
+
northwest,
|
|
1050
|
+
tileProvider,
|
|
1051
|
+
frameState,
|
|
1052
|
+
occluders,
|
|
1053
|
+
ancestorMeetsSse,
|
|
1054
|
+
northwestDetails
|
|
1055
|
+
);
|
|
1056
|
+
visitIfVisible(
|
|
1057
|
+
primitive,
|
|
1058
|
+
southwest,
|
|
1059
|
+
tileProvider,
|
|
1060
|
+
frameState,
|
|
1061
|
+
occluders,
|
|
1062
|
+
ancestorMeetsSse,
|
|
1063
|
+
southwestDetails
|
|
1064
|
+
);
|
|
1065
|
+
visitIfVisible(
|
|
1066
|
+
primitive,
|
|
1067
|
+
northeast,
|
|
1068
|
+
tileProvider,
|
|
1069
|
+
frameState,
|
|
1070
|
+
occluders,
|
|
1071
|
+
ancestorMeetsSse,
|
|
1072
|
+
northeastDetails
|
|
1073
|
+
);
|
|
1074
|
+
visitIfVisible(
|
|
1075
|
+
primitive,
|
|
1076
|
+
southeast,
|
|
1077
|
+
tileProvider,
|
|
1078
|
+
frameState,
|
|
1079
|
+
occluders,
|
|
1080
|
+
ancestorMeetsSse,
|
|
1081
|
+
southeastDetails
|
|
1082
|
+
);
|
|
1083
|
+
}
|
|
1084
|
+
} else if (cameraPosition.latitude < southwest.rectangle.north) {
|
|
1085
|
+
// Camera southeast quadrant
|
|
1086
|
+
visitIfVisible(
|
|
1087
|
+
primitive,
|
|
1088
|
+
southeast,
|
|
1089
|
+
tileProvider,
|
|
1090
|
+
frameState,
|
|
1091
|
+
occluders,
|
|
1092
|
+
ancestorMeetsSse,
|
|
1093
|
+
southeastDetails
|
|
1094
|
+
);
|
|
1095
|
+
visitIfVisible(
|
|
1096
|
+
primitive,
|
|
1097
|
+
southwest,
|
|
1098
|
+
tileProvider,
|
|
1099
|
+
frameState,
|
|
1100
|
+
occluders,
|
|
1101
|
+
ancestorMeetsSse,
|
|
1102
|
+
southwestDetails
|
|
1103
|
+
);
|
|
1104
|
+
visitIfVisible(
|
|
1105
|
+
primitive,
|
|
1106
|
+
northeast,
|
|
1107
|
+
tileProvider,
|
|
1108
|
+
frameState,
|
|
1109
|
+
occluders,
|
|
1110
|
+
ancestorMeetsSse,
|
|
1111
|
+
northeastDetails
|
|
1112
|
+
);
|
|
1113
|
+
visitIfVisible(
|
|
1114
|
+
primitive,
|
|
1115
|
+
northwest,
|
|
1116
|
+
tileProvider,
|
|
1117
|
+
frameState,
|
|
1118
|
+
occluders,
|
|
1119
|
+
ancestorMeetsSse,
|
|
1120
|
+
northwestDetails
|
|
1121
|
+
);
|
|
1122
|
+
} else {
|
|
1123
|
+
// Camera in northeast quadrant
|
|
1124
|
+
visitIfVisible(
|
|
1125
|
+
primitive,
|
|
1126
|
+
northeast,
|
|
1127
|
+
tileProvider,
|
|
1128
|
+
frameState,
|
|
1129
|
+
occluders,
|
|
1130
|
+
ancestorMeetsSse,
|
|
1131
|
+
northeastDetails
|
|
1132
|
+
);
|
|
1133
|
+
visitIfVisible(
|
|
1134
|
+
primitive,
|
|
1135
|
+
northwest,
|
|
1136
|
+
tileProvider,
|
|
1137
|
+
frameState,
|
|
1138
|
+
occluders,
|
|
1139
|
+
ancestorMeetsSse,
|
|
1140
|
+
northwestDetails
|
|
1141
|
+
);
|
|
1142
|
+
visitIfVisible(
|
|
1143
|
+
primitive,
|
|
1144
|
+
southeast,
|
|
1145
|
+
tileProvider,
|
|
1146
|
+
frameState,
|
|
1147
|
+
occluders,
|
|
1148
|
+
ancestorMeetsSse,
|
|
1149
|
+
southeastDetails
|
|
1150
|
+
);
|
|
1151
|
+
visitIfVisible(
|
|
1152
|
+
primitive,
|
|
1153
|
+
southwest,
|
|
1154
|
+
tileProvider,
|
|
1155
|
+
frameState,
|
|
1156
|
+
occluders,
|
|
1157
|
+
ancestorMeetsSse,
|
|
1158
|
+
southwestDetails
|
|
1159
|
+
);
|
|
1160
|
+
}
|
|
1161
|
+
|
|
1162
|
+
quadDetails.combine(traversalDetails);
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1165
|
+
function containsNeededPosition(primitive, tile) {
|
|
1166
|
+
const rectangle = tile.rectangle;
|
|
1167
|
+
return (
|
|
1168
|
+
(defined(primitive._cameraPositionCartographic) &&
|
|
1169
|
+
Rectangle.contains(rectangle, primitive._cameraPositionCartographic)) ||
|
|
1170
|
+
(defined(primitive._cameraReferenceFrameOriginCartographic) &&
|
|
1171
|
+
Rectangle.contains(
|
|
1172
|
+
rectangle,
|
|
1173
|
+
primitive._cameraReferenceFrameOriginCartographic
|
|
1174
|
+
))
|
|
1175
|
+
);
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1178
|
+
function visitIfVisible(
|
|
1179
|
+
primitive,
|
|
1180
|
+
tile,
|
|
1181
|
+
tileProvider,
|
|
1182
|
+
frameState,
|
|
1183
|
+
occluders,
|
|
1184
|
+
ancestorMeetsSse,
|
|
1185
|
+
traversalDetails
|
|
1186
|
+
) {
|
|
1187
|
+
if (
|
|
1188
|
+
tileProvider.computeTileVisibility(tile, frameState, occluders) !==
|
|
1189
|
+
Visibility.NONE
|
|
1190
|
+
) {
|
|
1191
|
+
return visitTile(
|
|
1192
|
+
primitive,
|
|
1193
|
+
frameState,
|
|
1194
|
+
tile,
|
|
1195
|
+
ancestorMeetsSse,
|
|
1196
|
+
traversalDetails
|
|
1197
|
+
);
|
|
1198
|
+
}
|
|
1199
|
+
|
|
1200
|
+
++primitive._debug.tilesCulled;
|
|
1201
|
+
primitive._tileReplacementQueue.markTileRendered(tile);
|
|
1202
|
+
|
|
1203
|
+
traversalDetails.allAreRenderable = true;
|
|
1204
|
+
traversalDetails.anyWereRenderedLastFrame = false;
|
|
1205
|
+
traversalDetails.notYetRenderableCount = 0;
|
|
1206
|
+
|
|
1207
|
+
if (containsNeededPosition(primitive, tile)) {
|
|
1208
|
+
// Load the tile(s) that contains the camera's position and
|
|
1209
|
+
// the origin of its reference frame with medium priority.
|
|
1210
|
+
// But we only need to load until the terrain is available, no need to load imagery.
|
|
1211
|
+
if (!defined(tile.data) || !defined(tile.data.vertexArray)) {
|
|
1212
|
+
queueTileLoad(
|
|
1213
|
+
primitive,
|
|
1214
|
+
primitive._tileLoadQueueMedium,
|
|
1215
|
+
tile,
|
|
1216
|
+
frameState
|
|
1217
|
+
);
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
const lastFrame = primitive._lastSelectionFrameNumber;
|
|
1221
|
+
const lastFrameSelectionResult =
|
|
1222
|
+
tile._lastSelectionResultFrame === lastFrame
|
|
1223
|
+
? tile._lastSelectionResult
|
|
1224
|
+
: TileSelectionResult.NONE;
|
|
1225
|
+
if (
|
|
1226
|
+
lastFrameSelectionResult !== TileSelectionResult.CULLED_BUT_NEEDED &&
|
|
1227
|
+
lastFrameSelectionResult !== TileSelectionResult.RENDERED
|
|
1228
|
+
) {
|
|
1229
|
+
primitive._tileToUpdateHeights.push(tile);
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1232
|
+
tile._lastSelectionResult = TileSelectionResult.CULLED_BUT_NEEDED;
|
|
1233
|
+
} else if (primitive.preloadSiblings || tile.level === 0) {
|
|
1234
|
+
// Load culled level zero tiles with low priority.
|
|
1235
|
+
// For all other levels, only load culled tiles if preloadSiblings is enabled.
|
|
1236
|
+
queueTileLoad(primitive, primitive._tileLoadQueueLow, tile, frameState);
|
|
1237
|
+
tile._lastSelectionResult = TileSelectionResult.CULLED;
|
|
1238
|
+
} else {
|
|
1239
|
+
tile._lastSelectionResult = TileSelectionResult.CULLED;
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1242
|
+
tile._lastSelectionResultFrame = frameState.frameNumber;
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
function screenSpaceError(primitive, frameState, tile) {
|
|
1246
|
+
if (
|
|
1247
|
+
frameState.mode === SceneMode.SCENE2D ||
|
|
1248
|
+
frameState.camera.frustum instanceof OrthographicFrustum ||
|
|
1249
|
+
frameState.camera.frustum instanceof OrthographicOffCenterFrustum
|
|
1250
|
+
) {
|
|
1251
|
+
return screenSpaceError2D(primitive, frameState, tile);
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1254
|
+
const maxGeometricError = primitive._tileProvider.getLevelMaximumGeometricError(
|
|
1255
|
+
tile.level
|
|
1256
|
+
);
|
|
1257
|
+
|
|
1258
|
+
const distance = tile._distance;
|
|
1259
|
+
const height = frameState.context.drawingBufferHeight;
|
|
1260
|
+
const sseDenominator = frameState.camera.frustum.sseDenominator;
|
|
1261
|
+
|
|
1262
|
+
let error = (maxGeometricError * height) / (distance * sseDenominator);
|
|
1263
|
+
|
|
1264
|
+
if (frameState.fog.enabled) {
|
|
1265
|
+
error -=
|
|
1266
|
+
CesiumMath.fog(distance, frameState.fog.density) * frameState.fog.sse;
|
|
1267
|
+
}
|
|
1268
|
+
|
|
1269
|
+
error /= frameState.pixelRatio;
|
|
1270
|
+
|
|
1271
|
+
return error;
|
|
1272
|
+
}
|
|
1273
|
+
|
|
1274
|
+
function screenSpaceError2D(primitive, frameState, tile) {
|
|
1275
|
+
const camera = frameState.camera;
|
|
1276
|
+
let frustum = camera.frustum;
|
|
1277
|
+
if (defined(frustum._offCenterFrustum)) {
|
|
1278
|
+
frustum = frustum._offCenterFrustum;
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1281
|
+
const context = frameState.context;
|
|
1282
|
+
const width = context.drawingBufferWidth;
|
|
1283
|
+
const height = context.drawingBufferHeight;
|
|
1284
|
+
|
|
1285
|
+
const maxGeometricError = primitive._tileProvider.getLevelMaximumGeometricError(
|
|
1286
|
+
tile.level
|
|
1287
|
+
);
|
|
1288
|
+
const pixelSize =
|
|
1289
|
+
Math.max(frustum.top - frustum.bottom, frustum.right - frustum.left) /
|
|
1290
|
+
Math.max(width, height);
|
|
1291
|
+
let error = maxGeometricError / pixelSize;
|
|
1292
|
+
|
|
1293
|
+
if (frameState.fog.enabled && frameState.mode !== SceneMode.SCENE2D) {
|
|
1294
|
+
error -=
|
|
1295
|
+
CesiumMath.fog(tile._distance, frameState.fog.density) *
|
|
1296
|
+
frameState.fog.sse;
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1299
|
+
error /= frameState.pixelRatio;
|
|
1300
|
+
|
|
1301
|
+
return error;
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1304
|
+
function addTileToRenderList(primitive, tile) {
|
|
1305
|
+
primitive._tilesToRender.push(tile);
|
|
1306
|
+
}
|
|
1307
|
+
|
|
1308
|
+
function processTileLoadQueue(primitive, frameState) {
|
|
1309
|
+
const tileLoadQueueHigh = primitive._tileLoadQueueHigh;
|
|
1310
|
+
const tileLoadQueueMedium = primitive._tileLoadQueueMedium;
|
|
1311
|
+
const tileLoadQueueLow = primitive._tileLoadQueueLow;
|
|
1312
|
+
|
|
1313
|
+
if (
|
|
1314
|
+
tileLoadQueueHigh.length === 0 &&
|
|
1315
|
+
tileLoadQueueMedium.length === 0 &&
|
|
1316
|
+
tileLoadQueueLow.length === 0
|
|
1317
|
+
) {
|
|
1318
|
+
return;
|
|
1319
|
+
}
|
|
1320
|
+
|
|
1321
|
+
// Remove any tiles that were not used this frame beyond the number
|
|
1322
|
+
// we're allowed to keep.
|
|
1323
|
+
primitive._tileReplacementQueue.trimTiles(primitive.tileCacheSize);
|
|
1324
|
+
|
|
1325
|
+
const endTime = getTimestamp() + primitive._loadQueueTimeSlice;
|
|
1326
|
+
const tileProvider = primitive._tileProvider;
|
|
1327
|
+
|
|
1328
|
+
let didSomeLoading = processSinglePriorityLoadQueue(
|
|
1329
|
+
primitive,
|
|
1330
|
+
frameState,
|
|
1331
|
+
tileProvider,
|
|
1332
|
+
endTime,
|
|
1333
|
+
tileLoadQueueHigh,
|
|
1334
|
+
false
|
|
1335
|
+
);
|
|
1336
|
+
didSomeLoading = processSinglePriorityLoadQueue(
|
|
1337
|
+
primitive,
|
|
1338
|
+
frameState,
|
|
1339
|
+
tileProvider,
|
|
1340
|
+
endTime,
|
|
1341
|
+
tileLoadQueueMedium,
|
|
1342
|
+
didSomeLoading
|
|
1343
|
+
);
|
|
1344
|
+
processSinglePriorityLoadQueue(
|
|
1345
|
+
primitive,
|
|
1346
|
+
frameState,
|
|
1347
|
+
tileProvider,
|
|
1348
|
+
endTime,
|
|
1349
|
+
tileLoadQueueLow,
|
|
1350
|
+
didSomeLoading
|
|
1351
|
+
);
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1354
|
+
function sortByLoadPriority(a, b) {
|
|
1355
|
+
return a._loadPriority - b._loadPriority;
|
|
1356
|
+
}
|
|
1357
|
+
|
|
1358
|
+
function processSinglePriorityLoadQueue(
|
|
1359
|
+
primitive,
|
|
1360
|
+
frameState,
|
|
1361
|
+
tileProvider,
|
|
1362
|
+
endTime,
|
|
1363
|
+
loadQueue,
|
|
1364
|
+
didSomeLoading
|
|
1365
|
+
) {
|
|
1366
|
+
if (tileProvider.computeTileLoadPriority !== undefined) {
|
|
1367
|
+
loadQueue.sort(sortByLoadPriority);
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1370
|
+
for (
|
|
1371
|
+
let i = 0, len = loadQueue.length;
|
|
1372
|
+
i < len && (getTimestamp() < endTime || !didSomeLoading);
|
|
1373
|
+
++i
|
|
1374
|
+
) {
|
|
1375
|
+
const tile = loadQueue[i];
|
|
1376
|
+
primitive._tileReplacementQueue.markTileRendered(tile);
|
|
1377
|
+
tileProvider.loadTile(frameState, tile);
|
|
1378
|
+
didSomeLoading = true;
|
|
1379
|
+
}
|
|
1380
|
+
|
|
1381
|
+
return didSomeLoading;
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1384
|
+
const scratchRay = new Ray();
|
|
1385
|
+
const scratchCartographic = new Cartographic();
|
|
1386
|
+
const scratchPosition = new Cartesian3();
|
|
1387
|
+
const scratchArray = [];
|
|
1388
|
+
|
|
1389
|
+
function updateHeights(primitive, frameState) {
|
|
1390
|
+
if (!primitive.tileProvider.ready) {
|
|
1391
|
+
return;
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1394
|
+
const tryNextFrame = scratchArray;
|
|
1395
|
+
tryNextFrame.length = 0;
|
|
1396
|
+
const tilesToUpdateHeights = primitive._tileToUpdateHeights;
|
|
1397
|
+
|
|
1398
|
+
const startTime = getTimestamp();
|
|
1399
|
+
const timeSlice = primitive._updateHeightsTimeSlice;
|
|
1400
|
+
const endTime = startTime + timeSlice;
|
|
1401
|
+
|
|
1402
|
+
const mode = frameState.mode;
|
|
1403
|
+
const projection = frameState.mapProjection;
|
|
1404
|
+
const ellipsoid = primitive.tileProvider.tilingScheme.ellipsoid;
|
|
1405
|
+
let i;
|
|
1406
|
+
|
|
1407
|
+
while (tilesToUpdateHeights.length > 0) {
|
|
1408
|
+
const tile = tilesToUpdateHeights[0];
|
|
1409
|
+
if (!defined(tile.data) || !defined(tile.data.mesh)) {
|
|
1410
|
+
// Tile isn't loaded enough yet, so try again next frame if this tile is still
|
|
1411
|
+
// being rendered.
|
|
1412
|
+
const selectionResult =
|
|
1413
|
+
tile._lastSelectionResultFrame === primitive._lastSelectionFrameNumber
|
|
1414
|
+
? tile._lastSelectionResult
|
|
1415
|
+
: TileSelectionResult.NONE;
|
|
1416
|
+
if (
|
|
1417
|
+
selectionResult === TileSelectionResult.RENDERED ||
|
|
1418
|
+
selectionResult === TileSelectionResult.CULLED_BUT_NEEDED
|
|
1419
|
+
) {
|
|
1420
|
+
tryNextFrame.push(tile);
|
|
1421
|
+
}
|
|
1422
|
+
tilesToUpdateHeights.shift();
|
|
1423
|
+
primitive._lastTileIndex = 0;
|
|
1424
|
+
continue;
|
|
1425
|
+
}
|
|
1426
|
+
const customData = tile.customData;
|
|
1427
|
+
const customDataLength = customData.length;
|
|
1428
|
+
|
|
1429
|
+
let timeSliceMax = false;
|
|
1430
|
+
for (i = primitive._lastTileIndex; i < customDataLength; ++i) {
|
|
1431
|
+
const data = customData[i];
|
|
1432
|
+
|
|
1433
|
+
// No need to run this code when the tile is upsampled, because the height will be the same as its parent.
|
|
1434
|
+
const terrainData = tile.data.terrainData;
|
|
1435
|
+
const upsampledGeometryFromParent =
|
|
1436
|
+
defined(terrainData) && terrainData.wasCreatedByUpsampling();
|
|
1437
|
+
|
|
1438
|
+
if (tile.level > data.level && !upsampledGeometryFromParent) {
|
|
1439
|
+
if (!defined(data.positionOnEllipsoidSurface)) {
|
|
1440
|
+
// cartesian has to be on the ellipsoid surface for `ellipsoid.geodeticSurfaceNormal`
|
|
1441
|
+
data.positionOnEllipsoidSurface = Cartesian3.fromRadians(
|
|
1442
|
+
data.positionCartographic.longitude,
|
|
1443
|
+
data.positionCartographic.latitude,
|
|
1444
|
+
0.0,
|
|
1445
|
+
ellipsoid
|
|
1446
|
+
);
|
|
1447
|
+
}
|
|
1448
|
+
|
|
1449
|
+
if (mode === SceneMode.SCENE3D) {
|
|
1450
|
+
const surfaceNormal = ellipsoid.geodeticSurfaceNormal(
|
|
1451
|
+
data.positionOnEllipsoidSurface,
|
|
1452
|
+
scratchRay.direction
|
|
1453
|
+
);
|
|
1454
|
+
|
|
1455
|
+
// compute origin point
|
|
1456
|
+
|
|
1457
|
+
// Try to find the intersection point between the surface normal and z-axis.
|
|
1458
|
+
// minimum height (-11500.0) for the terrain set, need to get this information from the terrain provider
|
|
1459
|
+
const rayOrigin = ellipsoid.getSurfaceNormalIntersectionWithZAxis(
|
|
1460
|
+
data.positionOnEllipsoidSurface,
|
|
1461
|
+
11500.0,
|
|
1462
|
+
scratchRay.origin
|
|
1463
|
+
);
|
|
1464
|
+
|
|
1465
|
+
// Theoretically, not with Earth datums, the intersection point can be outside the ellipsoid
|
|
1466
|
+
if (!defined(rayOrigin)) {
|
|
1467
|
+
// intersection point is outside the ellipsoid, try other value
|
|
1468
|
+
// minimum height (-11500.0) for the terrain set, need to get this information from the terrain provider
|
|
1469
|
+
let minimumHeight = 0.0;
|
|
1470
|
+
if (defined(tile.data.tileBoundingRegion)) {
|
|
1471
|
+
minimumHeight = tile.data.tileBoundingRegion.minimumHeight;
|
|
1472
|
+
}
|
|
1473
|
+
const magnitude = Math.min(minimumHeight, -11500.0);
|
|
1474
|
+
|
|
1475
|
+
// multiply by the *positive* value of the magnitude
|
|
1476
|
+
const vectorToMinimumPoint = Cartesian3.multiplyByScalar(
|
|
1477
|
+
surfaceNormal,
|
|
1478
|
+
Math.abs(magnitude) + 1,
|
|
1479
|
+
scratchPosition
|
|
1480
|
+
);
|
|
1481
|
+
Cartesian3.subtract(
|
|
1482
|
+
data.positionOnEllipsoidSurface,
|
|
1483
|
+
vectorToMinimumPoint,
|
|
1484
|
+
scratchRay.origin
|
|
1485
|
+
);
|
|
1486
|
+
}
|
|
1487
|
+
} else {
|
|
1488
|
+
Cartographic.clone(data.positionCartographic, scratchCartographic);
|
|
1489
|
+
|
|
1490
|
+
// minimum height for the terrain set, need to get this information from the terrain provider
|
|
1491
|
+
scratchCartographic.height = -11500.0;
|
|
1492
|
+
projection.project(scratchCartographic, scratchPosition);
|
|
1493
|
+
Cartesian3.fromElements(
|
|
1494
|
+
scratchPosition.z,
|
|
1495
|
+
scratchPosition.x,
|
|
1496
|
+
scratchPosition.y,
|
|
1497
|
+
scratchPosition
|
|
1498
|
+
);
|
|
1499
|
+
Cartesian3.clone(scratchPosition, scratchRay.origin);
|
|
1500
|
+
Cartesian3.clone(Cartesian3.UNIT_X, scratchRay.direction);
|
|
1501
|
+
}
|
|
1502
|
+
|
|
1503
|
+
const position = tile.data.pick(
|
|
1504
|
+
scratchRay,
|
|
1505
|
+
mode,
|
|
1506
|
+
projection,
|
|
1507
|
+
false,
|
|
1508
|
+
scratchPosition
|
|
1509
|
+
);
|
|
1510
|
+
if (defined(position)) {
|
|
1511
|
+
if (defined(data.callback)) {
|
|
1512
|
+
data.callback(position);
|
|
1513
|
+
}
|
|
1514
|
+
data.level = tile.level;
|
|
1515
|
+
}
|
|
1516
|
+
}
|
|
1517
|
+
|
|
1518
|
+
if (getTimestamp() >= endTime) {
|
|
1519
|
+
timeSliceMax = true;
|
|
1520
|
+
break;
|
|
1521
|
+
}
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
if (timeSliceMax) {
|
|
1525
|
+
primitive._lastTileIndex = i;
|
|
1526
|
+
break;
|
|
1527
|
+
} else {
|
|
1528
|
+
primitive._lastTileIndex = 0;
|
|
1529
|
+
tilesToUpdateHeights.shift();
|
|
1530
|
+
}
|
|
1531
|
+
}
|
|
1532
|
+
for (i = 0; i < tryNextFrame.length; i++) {
|
|
1533
|
+
tilesToUpdateHeights.push(tryNextFrame[i]);
|
|
1534
|
+
}
|
|
1535
|
+
}
|
|
1536
|
+
|
|
1537
|
+
function createRenderCommandsForSelectedTiles(primitive, frameState) {
|
|
1538
|
+
const tileProvider = primitive._tileProvider;
|
|
1539
|
+
const tilesToRender = primitive._tilesToRender;
|
|
1540
|
+
|
|
1541
|
+
for (let i = 0, len = tilesToRender.length; i < len; ++i) {
|
|
1542
|
+
const tile = tilesToRender[i];
|
|
1543
|
+
tileProvider.showTileThisFrame(tile, frameState);
|
|
1544
|
+
}
|
|
1545
|
+
}
|
|
1546
|
+
export default QuadtreePrimitive;
|