@cesium/engine 26.0.0 → 26.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Build/ThirdParty/Workers/zip-web-worker.js +586 -480
- package/Build/Workers/{chunk-7J2HKPRH.js → chunk-27FWRTJI.js} +9 -9
- package/Build/Workers/{chunk-EF2QYXGA.js → chunk-2EFYUSUY.js} +14 -14
- package/Build/Workers/chunk-2H5264K7.js +1284 -0
- package/Build/Workers/{chunk-DOBXCNC3.js → chunk-2H73KDBM.js} +13 -13
- package/Build/Workers/chunk-2RGJPWQX.js +1284 -0
- package/Build/Workers/chunk-2Z4ZLVOD.js +352 -0
- package/Build/Workers/{chunk-F6QDY6HU.js → chunk-2ZKH2QZB.js} +13 -13
- package/Build/Workers/chunk-36NI5E6W.js +3820 -0
- package/Build/Workers/{chunk-ZK3CF7ZD.js → chunk-37SW7SYS.js} +12 -12
- package/Build/Workers/chunk-3GHVJ3SO.js +455 -0
- package/Build/Workers/chunk-3LB4UVPU.js +387 -0
- package/Build/Workers/chunk-3PONLKEL.js +778 -0
- package/Build/Workers/{chunk-Y57HREW5.js → chunk-3PSS3T43.js} +4 -4
- package/Build/Workers/chunk-3QR662HH.js +3820 -0
- package/Build/Workers/{chunk-QN67VG36.js → chunk-3SX2WYSO.js} +6 -6
- package/Build/Workers/{chunk-G7PXZRVF.js → chunk-3UDN6LYX.js} +7 -7
- package/Build/Workers/chunk-47MCBSXI.js +9237 -0
- package/Build/Workers/{chunk-KKOSKAZB.js → chunk-4E626OCE.js} +17 -17
- package/Build/Workers/chunk-4NW2MJKH.js +455 -0
- package/Build/Workers/{chunk-DBOEKL43.js → chunk-52YK5BSN.js} +7 -7
- package/Build/Workers/{chunk-KFSTQKNM.js → chunk-5LSOO2KD.js} +7 -7
- package/Build/Workers/chunk-5RNAQZK6.js +9234 -0
- package/Build/Workers/chunk-5YPQBFRD.js +519 -0
- package/Build/Workers/{chunk-S4MCOY6I.js → chunk-6FHT43QR.js} +5 -5
- package/Build/Workers/chunk-6FZDPMTO.js +455 -0
- package/Build/Workers/{chunk-VQYETPWC.js → chunk-6HK6IXK2.js} +4 -4
- package/Build/Workers/chunk-6R5X2GUA.js +1284 -0
- package/Build/Workers/{chunk-AYKR4VBR.js → chunk-6YR6JBMY.js} +2 -2
- package/Build/Workers/chunk-76FDC45O.js +511 -0
- package/Build/Workers/chunk-7A2OGDHT.js +305 -0
- package/Build/Workers/chunk-7CGEQUM2.js +305 -0
- package/Build/Workers/{chunk-54I6Y66F.js → chunk-7D2HZKH7.js} +6 -6
- package/Build/Workers/{chunk-3VFEWOBI.js → chunk-7I325HV6.js} +7 -7
- package/Build/Workers/{chunk-4MGMYHOO.js → chunk-7KVKHY7O.js} +6 -6
- package/Build/Workers/chunk-7MM3N2VE.js +1067 -0
- package/Build/Workers/chunk-7TKLTCZW.js +219 -0
- package/Build/Workers/chunk-7UUKBDH6.js +1054 -0
- package/Build/Workers/chunk-7W6DUHAB.js +693 -0
- package/Build/Workers/{chunk-DDWSZVMY.js → chunk-7XM5JK5F.js} +5 -5
- package/Build/Workers/chunk-7YG3ND3P.js +454 -0
- package/Build/Workers/{chunk-IRBKFCEJ.js → chunk-A3O6EDBK.js} +2 -2
- package/Build/Workers/chunk-A62YI6S6.js +305 -0
- package/Build/Workers/{chunk-V7VQKN6N.js → chunk-A6X24AZI.js} +5 -5
- package/Build/Workers/chunk-A7TTWVTF.js +2719 -0
- package/Build/Workers/chunk-ACTVJHSP.js +519 -0
- package/Build/Workers/chunk-ADX3CBKD.js +9234 -0
- package/Build/Workers/{chunk-52JDLOEM.js → chunk-AF7DTMJ7.js} +14 -14
- package/Build/Workers/{chunk-ZP7JMQV4.js → chunk-AHWAZRBV.js} +6 -2
- package/Build/Workers/chunk-AJSFRY4U.js +1344 -0
- package/Build/Workers/{chunk-EBSIOBXY.js → chunk-ARZICEEP.js} +8 -8
- package/Build/Workers/chunk-B3QHNA4A.js +147 -0
- package/Build/Workers/{chunk-YLY7NKAB.js → chunk-B4CQSLZJ.js} +4 -4
- package/Build/Workers/chunk-BKPQFCXH.js +511 -0
- package/Build/Workers/{chunk-O3EA5HS7.js → chunk-BSPCI2LO.js} +10 -10
- package/Build/Workers/chunk-BUJWSX5S.js +301 -0
- package/Build/Workers/{chunk-J6BWOHUF.js → chunk-C7JQVRLM.js} +3 -3
- package/Build/Workers/chunk-C7QDUNI3.js +138 -0
- package/Build/Workers/{chunk-KSSWJIZW.js → chunk-CDJDJ5LK.js} +2 -2
- package/Build/Workers/chunk-CEEZE3YZ.js +476 -0
- package/Build/Workers/chunk-CIV5DJOQ.js +778 -0
- package/Build/Workers/{chunk-INUEEEQA.js → chunk-CLCTQVVL.js} +8 -8
- package/Build/Workers/{chunk-C6J67V5A.js → chunk-CQNFIAZU.js} +1 -1
- package/Build/Workers/chunk-CRCGE4J4.js +9237 -0
- package/Build/Workers/{chunk-SMQZZOW6.js → chunk-CUTRKXUQ.js} +10 -10
- package/Build/Workers/{chunk-Q3PY526V.js → chunk-D6AY775A.js} +6 -6
- package/Build/Workers/chunk-DBD5WWG2.js +959 -0
- package/Build/Workers/{chunk-E7VQ76KE.js → chunk-DIGUUD6G.js} +6 -6
- package/Build/Workers/{chunk-P3CK7MCY.js → chunk-DSGLDRTI.js} +4 -4
- package/Build/Workers/chunk-DZBQUULR.js +138 -0
- package/Build/Workers/chunk-DZUFEE4L.js +140 -0
- package/Build/Workers/chunk-E2NKV5YT.js +3820 -0
- package/Build/Workers/{chunk-424RNO3D.js → chunk-E7NZJOK7.js} +196 -22
- package/Build/Workers/{chunk-UOOIQ3KX.js → chunk-EB3Y5P3A.js} +12 -12
- package/Build/Workers/{chunk-ACXQXN46.js → chunk-EHTS2YPT.js} +16 -16
- package/Build/Workers/{chunk-EPYXRCDB.js → chunk-ELE6SC2C.js} +12 -12
- package/Build/Workers/{chunk-VWV2IJRB.js → chunk-ENNFMWDW.js} +11 -11
- package/Build/Workers/chunk-EOWDZN5S.js +288 -0
- package/Build/Workers/chunk-ERKUET22.js +3201 -0
- package/Build/Workers/chunk-EZGQPOIG.js +162 -0
- package/Build/Workers/chunk-F2IMBMZY.js +241 -0
- package/Build/Workers/chunk-F4CSNRZO.js +219 -0
- package/Build/Workers/chunk-FBP4DUQJ.js +693 -0
- package/Build/Workers/{chunk-FRQZECAO.js → chunk-FCP2QY4G.js} +5 -5
- package/Build/Workers/{chunk-ZZ46LWL6.js → chunk-FDK4K5IA.js} +1 -1
- package/Build/Workers/{chunk-C6KNZ7T4.js → chunk-FGQFQHN5.js} +17 -17
- package/Build/Workers/chunk-FJWZMGOQ.js +1992 -0
- package/Build/Workers/{chunk-Y5BF6AFU.js → chunk-FQ42MT7M.js} +2 -2
- package/Build/Workers/chunk-FU4BGABC.js +398 -0
- package/Build/Workers/chunk-FX3VEAIU.js +2719 -0
- package/Build/Workers/chunk-GGNWQWSB.js +301 -0
- package/Build/Workers/chunk-GHXVQVUM.js +1344 -0
- package/Build/Workers/{chunk-CZEYZU4N.js → chunk-GNKXEN4C.js} +10 -10
- package/Build/Workers/{chunk-MYP774IS.js → chunk-GSWMAFTE.js} +8 -8
- package/Build/Workers/chunk-GVA7XQI2.js +368 -0
- package/Build/Workers/chunk-GXDHRC4J.js +1344 -0
- package/Build/Workers/chunk-GXWQZBAI.js +58 -0
- package/Build/Workers/chunk-GYSYP6PC.js +1067 -0
- package/Build/Workers/chunk-H2WCFXLP.js +241 -0
- package/Build/Workers/chunk-HDL4HOXZ.js +778 -0
- package/Build/Workers/chunk-HHV3MCGV.js +162 -0
- package/Build/Workers/chunk-HLW2ZRVK.js +368 -0
- package/Build/Workers/chunk-HS6AD4P2.js +398 -0
- package/Build/Workers/chunk-HT6FASOT.js +973 -0
- package/Build/Workers/chunk-I74ZH5LK.js +959 -0
- package/Build/Workers/{chunk-7WM2PX4V.js → chunk-IDVHUDZT.js} +5 -5
- package/Build/Workers/chunk-IGAZBTFZ.js +3201 -0
- package/Build/Workers/chunk-IJZJMIUY.js +789 -0
- package/Build/Workers/chunk-ILME5BXA.js +301 -0
- package/Build/Workers/chunk-IMBVP57H.js +44 -0
- package/Build/Workers/chunk-IOO7Z2AV.js +57 -0
- package/Build/Workers/chunk-IUIFLOYO.js +44 -0
- package/Build/Workers/chunk-J73T2VOY.js +171 -0
- package/Build/Workers/chunk-JALGQYDY.js +288 -0
- package/Build/Workers/chunk-JKXV6PG5.js +56 -0
- package/Build/Workers/chunk-JW6OZT4R.js +288 -0
- package/Build/Workers/{chunk-CXOYE2WM.js → chunk-JXYLJCTC.js} +5 -5
- package/Build/Workers/{chunk-CFQP6LYM.js → chunk-K27QOAW6.js} +4 -4
- package/Build/Workers/chunk-KGXSYGBG.js +387 -0
- package/Build/Workers/chunk-KMV25A63.js +789 -0
- package/Build/Workers/chunk-KP5QD7WU.js +693 -0
- package/Build/Workers/chunk-KZWFWJML.js +2719 -0
- package/Build/Workers/chunk-LCXRRALY.js +387 -0
- package/Build/Workers/chunk-LD64RPYV.js +368 -0
- package/Build/Workers/{chunk-U3ZA64U7.js → chunk-LDRQSYBN.js} +2 -2
- package/Build/Workers/chunk-LGNDTZVX.js +97 -0
- package/Build/Workers/chunk-LNSQVXFH.js +1800 -0
- package/Build/Workers/chunk-M4JZ6TSZ.js +959 -0
- package/Build/Workers/chunk-M6QKXVAU.js +1054 -0
- package/Build/Workers/chunk-MAAHFYPC.js +198 -0
- package/Build/Workers/chunk-MCJDRDJQ.js +102 -0
- package/Build/Workers/chunk-MEENMEAH.js +198 -0
- package/Build/Workers/{chunk-TKKIREQ6.js → chunk-N7CCOFLX.js} +1 -1
- package/Build/Workers/chunk-NAWU5RF4.js +162 -0
- package/Build/Workers/{chunk-M3B5JKSM.js → chunk-NCL22ZUX.js} +1 -1
- package/Build/Workers/chunk-NEFDMMLY.js +241 -0
- package/Build/Workers/{chunk-UA25D5MX.js → chunk-NIWITKQK.js} +10 -10
- package/Build/Workers/chunk-NJVBJG63.js +124 -0
- package/Build/Workers/chunk-NLLCQBX3.js +73 -0
- package/Build/Workers/chunk-NSKZ6SBK.js +1483 -0
- package/Build/Workers/chunk-NXGQBQWE.js +837 -0
- package/Build/Workers/chunk-O3DKEX7Q.js +352 -0
- package/Build/Workers/chunk-O3XFXGPZ.js +476 -0
- package/Build/Workers/chunk-OA6MYL2C.js +837 -0
- package/Build/Workers/chunk-OBEU25PI.js +1067 -0
- package/Build/Workers/chunk-OHP4ELS7.js +198 -0
- package/Build/Workers/chunk-OZGPS7FB.js +138 -0
- package/Build/Workers/chunk-PCL3Y7H5.js +82 -0
- package/Build/Workers/chunk-PD4GK4EM.js +57 -0
- package/Build/Workers/chunk-PEDU33QG.js +2342 -0
- package/Build/Workers/chunk-PRWUMCXF.js +682 -0
- package/Build/Workers/chunk-PVTSNNVI.js +288 -0
- package/Build/Workers/chunk-QFSSCLLZ.js +973 -0
- package/Build/Workers/chunk-QHPZH22L.js +241 -0
- package/Build/Workers/chunk-QIZDWZK6.js +301 -0
- package/Build/Workers/chunk-QV6DG2YX.js +1483 -0
- package/Build/Workers/chunk-QVLAFFJY.js +56 -0
- package/Build/Workers/{chunk-6YEE6JDR.js → chunk-R4FPNAZ2.js} +6 -6
- package/Build/Workers/chunk-R4K7EHOU.js +171 -0
- package/Build/Workers/chunk-R7JGHDD6.js +789 -0
- package/Build/Workers/chunk-RASQEYD4.js +1483 -0
- package/Build/Workers/chunk-RG4F5R57.js +454 -0
- package/Build/Workers/chunk-RW6ITX7Q.js +3820 -0
- package/Build/Workers/chunk-RYSQVJR6.js +398 -0
- package/Build/Workers/chunk-S6RJU5NM.js +1054 -0
- package/Build/Workers/chunk-SA2A2AN5.js +2342 -0
- package/Build/Workers/chunk-SDFHDNS4.js +147 -0
- package/Build/Workers/chunk-SF6K72D7.js +124 -0
- package/Build/Workers/chunk-SGRGNDOD.js +682 -0
- package/Build/Workers/{chunk-QRWGUWI6.js → chunk-SJYSIOEM.js} +11 -11
- package/Build/Workers/chunk-SM2CDCYF.js +198 -0
- package/Build/Workers/chunk-SMTGMFBL.js +97 -0
- package/Build/Workers/chunk-SS5ABQGY.js +102 -0
- package/Build/Workers/{chunk-IYOUHCZB.js → chunk-SXSP3JHS.js} +1 -1
- package/Build/Workers/chunk-T5QBPLE3.js +414 -0
- package/Build/Workers/chunk-TN35HP5B.js +1067 -0
- package/Build/Workers/chunk-TNWKJNUZ.js +454 -0
- package/Build/Workers/chunk-TOAF47AQ.js +102 -0
- package/Build/Workers/chunk-TQ4QCOXT.js +2719 -0
- package/Build/Workers/chunk-TSDSILQB.js +124 -0
- package/Build/Workers/chunk-TVZD72WJ.js +778 -0
- package/Build/Workers/chunk-U5LV3F3Z.js +1054 -0
- package/Build/Workers/chunk-UAZUP4I5.js +1992 -0
- package/Build/Workers/chunk-UEY73NRN.js +38 -0
- package/Build/Workers/chunk-UF46SZEZ.js +789 -0
- package/Build/Workers/chunk-UNRTMCET.js +398 -0
- package/Build/Workers/chunk-UTB7U3O6.js +1992 -0
- package/Build/Workers/chunk-UVO6COT2.js +352 -0
- package/Build/Workers/chunk-V46YGZE6.js +352 -0
- package/Build/Workers/chunk-VAL7DYNR.js +278 -0
- package/Build/Workers/chunk-VDGOCROW.js +57 -0
- package/Build/Workers/chunk-VFWSSBPT.js +511 -0
- package/Build/Workers/chunk-VVYMXI3I.js +1284 -0
- package/Build/Workers/chunk-VXWHPYQM.js +837 -0
- package/Build/Workers/chunk-VXYUBRSB.js +219 -0
- package/Build/Workers/chunk-VZLDLEWI.js +387 -0
- package/Build/Workers/{chunk-4S7IE3LB.js → chunk-W5OCKMPJ.js} +2 -2
- package/Build/Workers/chunk-WBSY7HDY.js +837 -0
- package/Build/Workers/chunk-WN3F4CVG.js +3201 -0
- package/Build/Workers/chunk-WPRUWXGV.js +693 -0
- package/Build/Workers/chunk-WTO2ERBP.js +414 -0
- package/Build/Workers/chunk-WVHMDVG4.js +959 -0
- package/Build/Workers/chunk-XCBZVTIV.js +280 -0
- package/Build/Workers/chunk-XDWCTQCZ.js +101 -0
- package/Build/Workers/chunk-XGA23TAX.js +73 -0
- package/Build/Workers/chunk-XLQZNQ4Z.js +163 -0
- package/Build/Workers/chunk-XLXSDIP5.js +973 -0
- package/Build/Workers/chunk-XQ3SKCMM.js +140 -0
- package/Build/Workers/chunk-XQH66YJC.js +147 -0
- package/Build/Workers/chunk-XTA7BXJG.js +682 -0
- package/Build/Workers/chunk-XTIDAFRS.js +476 -0
- package/Build/Workers/chunk-XUEDWBUD.js +682 -0
- package/Build/Workers/chunk-XYFLRH3H.js +124 -0
- package/Build/Workers/chunk-Y7JRTRTO.js +305 -0
- package/Build/Workers/chunk-Y7QSMDCJ.js +352 -0
- package/Build/Workers/chunk-YCB5TYTR.js +1483 -0
- package/Build/Workers/chunk-YEYOSTJX.js +219 -0
- package/Build/Workers/chunk-YGFVAGYF.js +630 -0
- package/Build/Workers/chunk-YIIACKQO.js +368 -0
- package/Build/Workers/chunk-YJGSP6PE.js +511 -0
- package/Build/Workers/{chunk-XZMBNNDX.js → chunk-YKU2Q3A2.js} +9 -9
- package/Build/Workers/chunk-Z4LR5EHE.js +454 -0
- package/Build/Workers/chunk-Z66EVE2A.js +44 -0
- package/Build/Workers/chunk-ZHIHHHTB.js +414 -0
- package/Build/Workers/chunk-ZMBHFYOX.js +1344 -0
- package/Build/Workers/chunk-ZNWHFSLE.js +171 -0
- package/Build/Workers/chunk-ZQLZG4IN.js +2342 -0
- package/Build/Workers/chunk-ZRTSMUZ2.js +414 -0
- package/Build/Workers/{chunk-MPZHGZU6.js → chunk-ZSGUV73H.js} +4 -4
- package/Build/Workers/chunk-ZZUVT5BM.js +476 -0
- package/Build/Workers/combineGeometry.js +24 -24
- package/Build/Workers/createBoxGeometry.js +18 -18
- package/Build/Workers/createBoxOutlineGeometry.js +16 -16
- package/Build/Workers/createCircleGeometry.js +26 -26
- package/Build/Workers/createCircleOutlineGeometry.js +19 -19
- package/Build/Workers/createCoplanarPolygonGeometry.js +35 -35
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
- package/Build/Workers/createCorridorGeometry.js +31 -33
- package/Build/Workers/createCorridorOutlineGeometry.js +29 -31
- package/Build/Workers/createCylinderGeometry.js +20 -20
- package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
- package/Build/Workers/createEllipseGeometry.js +26 -26
- package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
- package/Build/Workers/createEllipsoidGeometry.js +19 -19
- package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
- package/Build/Workers/createFrustumGeometry.js +18 -18
- package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
- package/Build/Workers/createGeometry.js +24 -24
- package/Build/Workers/createGroundPolylineGeometry.js +24 -24
- package/Build/Workers/createPlaneGeometry.js +16 -16
- package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
- package/Build/Workers/createPolygonGeometry.js +34 -34
- package/Build/Workers/createPolygonOutlineGeometry.js +31 -31
- package/Build/Workers/createPolylineGeometry.js +26 -26
- package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
- package/Build/Workers/createRectangleGeometry.js +27 -27
- package/Build/Workers/createRectangleOutlineGeometry.js +21 -21
- package/Build/Workers/createSimplePolylineGeometry.js +24 -24
- package/Build/Workers/createSphereGeometry.js +19 -19
- package/Build/Workers/createSphereOutlineGeometry.js +18 -18
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
- package/Build/Workers/createVectorTileGeometries.js +24 -24
- package/Build/Workers/createVectorTilePoints.js +13 -13
- package/Build/Workers/createVectorTilePolygons.js +22 -22
- package/Build/Workers/createVectorTilePolylines.js +14 -14
- package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
- package/Build/Workers/createVerticesFromHeightmap.js +22 -22
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
- package/Build/Workers/createWallGeometry.js +24 -24
- package/Build/Workers/createWallOutlineGeometry.js +24 -24
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +987 -2320
- package/Build/Workers/decodeI3S.js +10 -10
- package/Build/Workers/gaussianSplatSorter.js +4 -4
- package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
- package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
- package/Build/Workers/transcodeKTX2.js +6 -6
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +1 -5
- package/Source/Core/BoundingRectangle.js +6 -8
- package/Source/Core/BoundingSphere.js +0 -3
- package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +3 -4
- package/Source/Core/Color.js +1 -0
- package/Source/Core/CoplanarPolygonGeometry.js +2 -2
- package/Source/Core/CorridorGeometry.js +2 -4
- package/Source/Core/CorridorOutlineGeometry.js +1 -3
- package/Source/Core/EarthOrientationParameters.js +2 -2
- package/Source/Core/EllipseGeometryLibrary.js +2 -2
- package/Source/Core/EllipsoidGeodesic.js +3 -3
- package/Source/Core/EllipsoidRhumbLine.js +1 -1
- package/Source/Core/GroundPolylineGeometry.js +2 -2
- package/Source/Core/Heap.js +1 -1
- package/Source/Core/HermitePolynomialApproximation.js +215 -179
- package/Source/Core/InterpolationAlgorithm.js +58 -50
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/JulianDate.js +1 -1
- package/Source/Core/LagrangePolynomialApproximation.js +55 -52
- package/Source/Core/LinearApproximation.js +69 -66
- package/Source/Core/Math.js +59 -0
- package/Source/Core/Matrix2.js +2 -2
- package/Source/Core/Matrix3.js +2 -2
- package/Source/Core/OrthographicFrustum.js +1 -1
- package/Source/Core/PerspectiveFrustum.js +1 -1
- package/Source/Core/PolygonGeometry.js +2 -2
- package/Source/Core/PolygonGeometryLibrary.js +1 -1
- package/Source/Core/PolygonOutlineGeometry.js +1 -1
- package/Source/Core/PolylineGeometry.js +1 -1
- package/Source/Core/PolylineVolumeGeometryLibrary.js +1 -1
- package/Source/Core/Rectangle.js +7 -1
- package/Source/Core/RectangleOutlineGeometry.js +1 -1
- package/Source/Core/SimplePolylineGeometry.js +1 -1
- package/Source/Core/TerrainEncoding.js +2 -2
- package/Source/Core/TerrainMesh.js +3 -3
- package/Source/Core/TerrainPicker.js +180 -168
- package/Source/Core/TimeIntervalCollection.js +1 -3
- package/Source/Core/Tipsify.js +1 -1
- package/Source/Core/Transforms.js +5 -1
- package/Source/Core/VectorPipeline.js +1117 -0
- package/Source/Core/VectorProvider.js +429 -0
- package/Source/Core/WallOutlineGeometry.js +1 -1
- package/Source/Core/getTimestamp.js +4 -2
- package/Source/Core/writeTextToCanvas.js +1 -0
- package/Source/DataSources/CompositeEntityCollection.js +0 -1
- package/Source/DataSources/CzmlDataSource.js +14 -0
- package/Source/DataSources/DataSourceDisplay.js +1 -1
- package/Source/DataSources/GeoJsonDataSource.js +0 -1
- package/Source/DataSources/GeometryVisualizer.js +1 -1
- package/Source/DataSources/KmlDataSource.js +529 -557
- package/Source/DataSources/PathGraphics.js +8 -1
- package/Source/DataSources/PathMode.js +27 -0
- package/Source/DataSources/PathVisualizer.js +298 -1
- package/Source/DataSources/PolylineVisualizer.js +1 -1
- package/Source/DataSources/StaticOutlineGeometryBatch.js +1 -1
- package/Source/Renderer/AutomaticUniforms.js +23 -0
- package/Source/Renderer/Context.js +9 -3
- package/Source/Renderer/DrawCommand.js +22 -0
- package/Source/Renderer/Framebuffer.js +4 -0
- package/Source/Renderer/Pass.js +11 -10
- package/Source/Renderer/Texture.js +12 -1
- package/Source/Renderer/UniformState.js +7 -0
- package/Source/Renderer/VertexArray.js +1 -1
- package/Source/Scene/ArcGisMapServerImageryProvider.js +0 -5
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/Billboard.js +2 -1
- package/Source/Scene/BillboardCollection.js +7 -3
- package/Source/Scene/BillboardTexture.js +5 -3
- package/Source/Scene/BufferPrimitiveCollection.js +27 -5
- package/Source/Scene/Camera.js +71 -5
- package/Source/Scene/Cesium3DTileOptimizations.js +4 -6
- package/Source/Scene/Cesium3DTileset.js +1 -1
- package/Source/Scene/ClippingPlaneCollection.js +4 -4
- package/Source/Scene/ClippingPolygon.js +2 -0
- package/Source/Scene/ClippingPolygonCollection.js +2 -2
- package/Source/Scene/Controllers/Controller.js +63 -0
- package/Source/Scene/Controllers/ControllerHost.js +78 -0
- package/Source/Scene/Controllers/HybridScreenSpacePanCameraController.js +106 -0
- package/Source/Scene/Controllers/MouseButton.js +32 -0
- package/Source/Scene/Controllers/ScreenSpaceElevatorCameraController.js +295 -0
- package/Source/Scene/Controllers/ScreenSpaceInputBindings.js +154 -0
- package/Source/Scene/Controllers/ScreenSpaceMapCameraController.js +310 -0
- package/Source/Scene/Controllers/ScreenSpaceTiltOrbitCameraController.js +642 -0
- package/Source/Scene/Controllers/ScreenSpaceZoomCameraController.js +431 -0
- package/Source/Scene/Controllers/defaultPickWorldPosition.js +84 -0
- package/Source/Scene/DerivedCommand.js +98 -0
- package/Source/Scene/EdgeFramebuffer.js +1 -5
- package/Source/Scene/Expression.js +6 -8
- package/Source/Scene/FrameState.js +17 -0
- package/Source/Scene/Globe.js +20 -0
- package/Source/Scene/GlobeDepth.js +27 -1
- package/Source/Scene/GlobeSurfaceShaderSet.js +511 -409
- package/Source/Scene/GlobeSurfaceTile.js +575 -398
- package/Source/Scene/GlobeSurfaceTileProvider.js +1382 -1151
- package/Source/Scene/GltfBufferViewLoader.js +3 -3
- package/Source/Scene/GltfLoader.js +33 -3
- package/Source/Scene/GltfLoaderUtil.js +20 -4
- package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +10 -0
- package/Source/Scene/GltfPipeline/removeUnusedElements.js +21 -11
- package/Source/Scene/GltfSpzLoader.js +1 -1
- package/Source/Scene/GltfVertexBufferLoader.js +6 -3
- package/Source/Scene/I3SDataProvider.js +1 -1
- package/Source/Scene/I3SLayer.js +1 -1
- package/Source/Scene/I3SNode.js +2 -2
- package/Source/Scene/ImageryLayer.js +2 -2
- package/Source/Scene/ImageryLayerCollection.js +190 -6
- package/Source/Scene/IonImageryProvider.js +1 -5
- package/Source/Scene/Label.js +4 -4
- package/Source/Scene/LabelCollection.js +1 -1
- package/Source/Scene/MVTDataProvider.js +2 -0
- package/Source/Scene/Material.js +1 -0
- package/Source/Scene/Model/B3dmLoader.js +1 -2
- package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +10 -8
- package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +4 -0
- package/Source/Scene/Model/I3dmLoader.js +1 -1
- package/Source/Scene/Model/InstancingPipelineStage.js +4 -7
- package/Source/Scene/Model/MaterialPipelineStage.js +124 -1
- package/Source/Scene/Model/Model.js +11 -10
- package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +28 -1
- package/Source/Scene/Model/ModelDrawCommand.js +160 -16
- package/Source/Scene/Model/ModelDrawCommands.js +4 -0
- package/Source/Scene/Model/ModelSceneGraph.js +21 -0
- package/Source/Scene/Model/ModelUtility.js +1 -0
- package/Source/Scene/Model/PickingPipelineStage.js +29 -0
- package/Source/Scene/Model/PrimitiveRenderResources.js +24 -0
- package/Source/Scene/ModelComponents.js +71 -0
- package/Source/Scene/Picking.js +19 -3
- package/Source/Scene/PlanarFillIdFramebuffer.js +172 -0
- package/Source/Scene/PntsParser.js +1 -1
- package/Source/Scene/PolylineCollection.js +1 -1
- package/Source/Scene/PostProcessStage.js +4 -2
- package/Source/Scene/QuadtreePrimitive.js +3 -2
- package/Source/Scene/ResourceCache.js +7 -4
- package/Source/Scene/ResourceCacheKey.js +21 -18
- package/Source/Scene/Scene.js +203 -5
- package/Source/Scene/ScreenSpaceCameraController.js +1 -2
- package/Source/Scene/ShadowMap.js +9 -3
- package/Source/Scene/ShadowMapShader.js +50 -2
- package/Source/Scene/SnapFramebuffer.js +121 -0
- package/Source/Scene/Snapping.js +184 -0
- package/Source/Scene/TerrainFillMesh.js +3 -2
- package/Source/Scene/UrlTemplate3DTilesDataProvider.js +1 -1
- package/Source/Scene/Vector3DTileContent.js +2 -3
- package/Source/Scene/VectorGltf3DTileContent.js +23 -3
- package/Source/Scene/View.js +10 -8
- package/Source/Scene/VoxelTraversal.js +1 -1
- package/Source/Scene/createElevationBandMaterial.js +1 -1
- package/Source/Scene/findMeshoptExtension.js +23 -0
- package/Source/Scene/renderBufferPointCollection.js +14 -10
- package/Source/Scene/renderBufferPolygonCollection.js +10 -15
- package/Source/Scene/renderBufferPolylineCollection.js +121 -194
- package/Source/Shaders/Builtin/Constants/passCesium3DTile.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTile.js +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.js +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.js +1 -1
- package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.js +11 -0
- package/Source/Shaders/Builtin/Constants/passClassification.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passClassification.js +1 -1
- package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passGaussianSplats.js +1 -1
- package/Source/Shaders/Builtin/Constants/passOpaque.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passOpaque.js +1 -1
- package/Source/Shaders/Builtin/Constants/passTranslucent.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passTranslucent.js +1 -1
- package/Source/Shaders/Builtin/Constants/passVoxels.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passVoxels.js +1 -1
- package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
- package/Source/Shaders/GlobeFS.glsl +10 -5
- package/Source/Shaders/GlobeFS.js +9 -5
- package/Source/Shaders/Materials/PolylineGlowMaterial.glsl +1 -1
- package/Source/Shaders/Materials/PolylineGlowMaterial.js +1 -1
- package/Source/Shaders/Model/MaterialStageFS.glsl +8 -2
- package/Source/Shaders/Model/MaterialStageFS.js +8 -2
- package/Source/Shaders/Model/ModelFS.glsl +105 -0
- package/Source/Shaders/Model/ModelFS.js +105 -0
- package/Source/Shaders/VectorCommon.glsl +178 -0
- package/Source/Shaders/VectorCommon.js +75 -0
- package/Source/ThirdParty/Workers/zip-web-worker.js +1 -1
- package/Source/ThirdParty/zip-module.wasm +0 -0
- package/Source/Widget/CesiumWidget.js +30 -0
- package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +2 -2
- package/Source/Workers/incrementallyBuildTerrainPicker.js +2 -0
- package/index.d.ts +825 -260
- package/index.js +29 -10
- package/package.json +4 -4
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
import BufferPolygonCollection from "../Scene/BufferPolygonCollection.js";
|
|
4
|
+
import BufferPolylineCollection from "../Scene/BufferPolylineCollection.js";
|
|
5
|
+
import Rectangle from "./Rectangle.js";
|
|
6
|
+
import defined from "./defined.js";
|
|
7
|
+
import VectorPipeline from "./VectorPipeline.js";
|
|
8
|
+
|
|
9
|
+
/** @import BufferPrimitive from "../Scene/BufferPrimitive.js"; */
|
|
10
|
+
/** @import BufferPrimitiveCollection from "../Scene/BufferPrimitiveCollection.js"; */
|
|
11
|
+
/** @import Context from "../Renderer/Context.js"; */
|
|
12
|
+
/** @import Ellipsoid from "./Ellipsoid.js"; */
|
|
13
|
+
/** @import TilingScheme from "./TilingScheme.js"; */
|
|
14
|
+
/** @import { VectorCollectionData, VectorTileData } from "./VectorPipeline.js"; */
|
|
15
|
+
|
|
16
|
+
/** @ignore */
|
|
17
|
+
const scratchTileRectangle = new Rectangle();
|
|
18
|
+
const scratchCollectionRectangle = new Rectangle();
|
|
19
|
+
const scratchIntersectRectangle = new Rectangle();
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Extracts a collection's snapshot of projected positions and per-primitive
|
|
23
|
+
* material properties.
|
|
24
|
+
*
|
|
25
|
+
* @callback PackCollectionData
|
|
26
|
+
* @param {*} collection
|
|
27
|
+
* @param {TilingScheme} tilingScheme
|
|
28
|
+
* @param {VectorCollectionData} [result]
|
|
29
|
+
* @returns {VectorCollectionData}
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Packs a collection's primitives into a tile's vector data.
|
|
35
|
+
*
|
|
36
|
+
* @callback PackTilePrimitives
|
|
37
|
+
* @param {*} collection
|
|
38
|
+
* @param {VectorCollectionData} collectionData
|
|
39
|
+
* @param {Rectangle} rectangle
|
|
40
|
+
* @param {VectorTileData} result
|
|
41
|
+
* @returns {void}
|
|
42
|
+
* @private
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Packing functions for a collection type.
|
|
47
|
+
*
|
|
48
|
+
* @typedef {object} CollectionPacker
|
|
49
|
+
* @property {PackCollectionData} packCollectionData Extracts the per-collection snapshot.
|
|
50
|
+
* @property {PackTilePrimitives} packTilePrimitives Packs the collection's primitives into a tile.
|
|
51
|
+
* @private
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Per-type packing functions, keyed by collection class.
|
|
56
|
+
* @type {Map<Function, CollectionPacker>}
|
|
57
|
+
* @private
|
|
58
|
+
*/
|
|
59
|
+
const collectionPackers = new Map();
|
|
60
|
+
collectionPackers.set(BufferPolylineCollection, {
|
|
61
|
+
packCollectionData: VectorPipeline.packPolylineCollectionData,
|
|
62
|
+
packTilePrimitives: VectorPipeline.packPolylineSegments,
|
|
63
|
+
});
|
|
64
|
+
collectionPackers.set(BufferPolygonCollection, {
|
|
65
|
+
packCollectionData: VectorPipeline.packPolygonCollectionData,
|
|
66
|
+
packTilePrimitives: VectorPipeline.packPolygonRings,
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @typedef {object} VectorProviderConstructorOptions
|
|
71
|
+
* @property {TilingScheme} tilingScheme
|
|
72
|
+
* @private
|
|
73
|
+
*/
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @ignore
|
|
77
|
+
*/
|
|
78
|
+
class VectorProvider {
|
|
79
|
+
/** @param {VectorProviderConstructorOptions} options */
|
|
80
|
+
constructor(options) {
|
|
81
|
+
/** @private */
|
|
82
|
+
this._tilingScheme = options.tilingScheme;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* @type {Set<BufferPrimitiveCollection<BufferPrimitive>>}
|
|
86
|
+
* @private
|
|
87
|
+
*/
|
|
88
|
+
this._collections = new Set();
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Per-collection snapshot of projected positions and per-primitive
|
|
92
|
+
* material properties, keyed by collection version.
|
|
93
|
+
* @type {WeakMap<BufferPrimitiveCollection<BufferPrimitive>, VectorCollectionData>}
|
|
94
|
+
* @private
|
|
95
|
+
*/
|
|
96
|
+
this._collectionDataCache = new WeakMap();
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Collections marked selected this frame (only these are baked).
|
|
100
|
+
* @type {Set<BufferPrimitiveCollection<BufferPrimitive>>}
|
|
101
|
+
* @private
|
|
102
|
+
*/
|
|
103
|
+
this._selectedThisFrame = new Set();
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Collections added via markSelected (not add); only these are pruned.
|
|
107
|
+
* @type {Set<BufferPrimitiveCollection<BufferPrimitive>>}
|
|
108
|
+
* @private
|
|
109
|
+
*/
|
|
110
|
+
this._selectionDriven = new Set();
|
|
111
|
+
|
|
112
|
+
/** @private */
|
|
113
|
+
this._selectionFrameNumber = -1;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Cartographic regions changed since the last
|
|
117
|
+
* {@link VectorProvider#makeClean}, so only overlapping terrain
|
|
118
|
+
* tiles are re-baked.
|
|
119
|
+
* @type {Rectangle[]}
|
|
120
|
+
* @private
|
|
121
|
+
*/
|
|
122
|
+
this._dirtyRectangles = [];
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/** @type {TilingScheme} */
|
|
126
|
+
get tilingScheme() {
|
|
127
|
+
return this._tilingScheme;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
set tilingScheme(value) {
|
|
131
|
+
this._tilingScheme = value;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/** @type {Ellipsoid} */
|
|
135
|
+
get ellipsoid() {
|
|
136
|
+
return this._tilingScheme.ellipsoid;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* @param {BufferPrimitiveCollection<BufferPrimitive>} collection
|
|
141
|
+
*/
|
|
142
|
+
add(collection) {
|
|
143
|
+
const previousSize = this._collections.size;
|
|
144
|
+
this._collections.add(collection);
|
|
145
|
+
if (this._collections.size !== previousSize) {
|
|
146
|
+
this._markCollectionRegionDirty(collection);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* @param {BufferPrimitiveCollection<BufferPrimitive>} collection
|
|
152
|
+
*/
|
|
153
|
+
remove(collection) {
|
|
154
|
+
this._selectedThisFrame.delete(collection);
|
|
155
|
+
this._selectionDriven.delete(collection);
|
|
156
|
+
if (this._collections.delete(collection)) {
|
|
157
|
+
this._markCollectionRegionDirty(collection);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Marks a collection as selected this frame so it is baked; collections not
|
|
163
|
+
* marked are pruned next frame, keeping the baked set aligned with the
|
|
164
|
+
* rendered LOD.
|
|
165
|
+
*
|
|
166
|
+
* @param {BufferPrimitiveCollection<BufferPrimitive>} collection
|
|
167
|
+
* @param {number} frameNumber
|
|
168
|
+
*/
|
|
169
|
+
markSelected(collection, frameNumber) {
|
|
170
|
+
if (frameNumber !== this._selectionFrameNumber) {
|
|
171
|
+
this._commitSelectedFrame();
|
|
172
|
+
this._selectionFrameNumber = frameNumber;
|
|
173
|
+
}
|
|
174
|
+
this._selectedThisFrame.add(collection);
|
|
175
|
+
this._selectionDriven.add(collection);
|
|
176
|
+
const previousSize = this._collections.size;
|
|
177
|
+
this._collections.add(collection);
|
|
178
|
+
if (this._collections.size !== previousSize) {
|
|
179
|
+
this._markCollectionRegionDirty(collection);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Prunes selection-driven collections not marked in the frame that just ended.
|
|
185
|
+
* @private
|
|
186
|
+
*/
|
|
187
|
+
_commitSelectedFrame() {
|
|
188
|
+
for (const collection of this._selectionDriven) {
|
|
189
|
+
if (!this._selectedThisFrame.has(collection)) {
|
|
190
|
+
this._selectionDriven.delete(collection);
|
|
191
|
+
if (this._collections.delete(collection)) {
|
|
192
|
+
this._markCollectionRegionDirty(collection);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
this._selectedThisFrame.clear();
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Records a changed collection's region(s) so the next re-bake only touches
|
|
201
|
+
* overlapping tiles.
|
|
202
|
+
* @param {BufferPrimitiveCollection<BufferPrimitive>} collection
|
|
203
|
+
* @private
|
|
204
|
+
*/
|
|
205
|
+
_markCollectionRegionDirty(collection) {
|
|
206
|
+
const collectionRectangle = Rectangle.fromBoundingSphere(
|
|
207
|
+
collection.boundingVolume,
|
|
208
|
+
this._tilingScheme.ellipsoid,
|
|
209
|
+
new Rectangle(),
|
|
210
|
+
);
|
|
211
|
+
this._dirtyRectangles.push(collectionRectangle);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* @param {number} x
|
|
216
|
+
* @param {number} y
|
|
217
|
+
* @param {number} level
|
|
218
|
+
* @param {Context} context
|
|
219
|
+
* @returns {VectorTileData}
|
|
220
|
+
*/
|
|
221
|
+
requestTileData(x, y, level, context) {
|
|
222
|
+
const tilingScheme = this._tilingScheme;
|
|
223
|
+
const tileRectangle = tilingScheme.tileXYToRectangle(x, y, level);
|
|
224
|
+
|
|
225
|
+
/** @type {VectorTileData} */
|
|
226
|
+
const result = { show: true };
|
|
227
|
+
|
|
228
|
+
for (const collection of this._collections) {
|
|
229
|
+
const packer = collectionPackers.get(collection.constructor);
|
|
230
|
+
if (!defined(packer)) {
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
const collectionRectangle = Rectangle.fromBoundingSphere(
|
|
235
|
+
collection.boundingVolume,
|
|
236
|
+
tilingScheme.ellipsoid,
|
|
237
|
+
scratchCollectionRectangle,
|
|
238
|
+
);
|
|
239
|
+
|
|
240
|
+
const isIntersected = !!Rectangle.intersection(
|
|
241
|
+
tileRectangle,
|
|
242
|
+
collectionRectangle,
|
|
243
|
+
scratchIntersectRectangle,
|
|
244
|
+
);
|
|
245
|
+
|
|
246
|
+
if (!isIntersected) {
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
const collectionData = this._getCollectionDataCached(
|
|
251
|
+
collection,
|
|
252
|
+
packer.packCollectionData,
|
|
253
|
+
);
|
|
254
|
+
packer.packTilePrimitives(
|
|
255
|
+
collection,
|
|
256
|
+
collectionData,
|
|
257
|
+
tileRectangle,
|
|
258
|
+
result,
|
|
259
|
+
);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
const hasPolylines =
|
|
263
|
+
defined(result.polylineSegments) && result.polylineSegments.length > 0;
|
|
264
|
+
const hasPolygons =
|
|
265
|
+
defined(result.polygonRings) && result.polygonRings.length > 0;
|
|
266
|
+
|
|
267
|
+
if (!hasPolylines && !hasPolygons) {
|
|
268
|
+
result.show = false;
|
|
269
|
+
return result;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
if (hasPolylines) {
|
|
273
|
+
VectorPipeline.packPolylineGrid(result);
|
|
274
|
+
VectorPipeline.packPolylineTextures(context, result);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
if (hasPolygons) {
|
|
278
|
+
VectorPipeline.packPolygonGrid(result);
|
|
279
|
+
VectorPipeline.packPolygonTextures(context, result);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
VectorPipeline.packPrimitiveTextures(context, result);
|
|
283
|
+
|
|
284
|
+
return result;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* @param {VectorTileData} data
|
|
289
|
+
*/
|
|
290
|
+
releaseTileData(data) {
|
|
291
|
+
VectorPipeline.freeResources(data);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Re-bakes a tile's vector data if the tile overlaps a region changed since
|
|
296
|
+
* the last {@link VectorProvider#makeClean}, releasing the previous data.
|
|
297
|
+
* Returns the current data unchanged when the tile is outside every changed
|
|
298
|
+
* region.
|
|
299
|
+
*
|
|
300
|
+
* @param {number} x
|
|
301
|
+
* @param {number} y
|
|
302
|
+
* @param {number} level
|
|
303
|
+
* @param {Context} context
|
|
304
|
+
* @param {VectorTileData|undefined} currentData
|
|
305
|
+
* @returns {VectorTileData|undefined}
|
|
306
|
+
*/
|
|
307
|
+
updateTileData(x, y, level, context, currentData) {
|
|
308
|
+
const dirtyRectangles = this._dirtyRectangles;
|
|
309
|
+
const tilingScheme = this._tilingScheme;
|
|
310
|
+
if (!intersectRectangles(x, y, level, dirtyRectangles, tilingScheme)) {
|
|
311
|
+
return currentData;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
if (defined(currentData)) {
|
|
315
|
+
this.releaseTileData(currentData);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
return this.requestTileData(x, y, level, context);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Clears the regions recorded as changed. Call once after a re-bake pass has
|
|
323
|
+
* updated the overlapping tiles via {@link VectorProvider#updateTileData}.
|
|
324
|
+
*/
|
|
325
|
+
makeClean() {
|
|
326
|
+
this._dirtyRectangles.length = 0;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Records dirty regions for collections whose content has changed since
|
|
331
|
+
* their last extraction, so overlapping tiles are re-baked. Call once per
|
|
332
|
+
* frame, before {@link VectorProvider#updateTileData}.
|
|
333
|
+
*/
|
|
334
|
+
update() {
|
|
335
|
+
for (const collection of this._collections) {
|
|
336
|
+
const cache = this._collectionDataCache.get(collection);
|
|
337
|
+
if (!defined(cache)) {
|
|
338
|
+
// Never extracted; new tiles bake on request.
|
|
339
|
+
continue;
|
|
340
|
+
}
|
|
341
|
+
const changed =
|
|
342
|
+
collection._dirtyCount > 0 || cache.version !== collection._version;
|
|
343
|
+
if (!changed) {
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
// Re-bake both the previously baked region (content may have moved
|
|
347
|
+
// away from it) and the collection's current region.
|
|
348
|
+
if (defined(cache.rectangle)) {
|
|
349
|
+
this._dirtyRectangles.push(Rectangle.clone(cache.rectangle));
|
|
350
|
+
}
|
|
351
|
+
this._markCollectionRegionDirty(collection);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* Returns the collection's {@link VectorCollectionData} snapshot,
|
|
357
|
+
* re-extracted when the collection has changed. The collection is marked
|
|
358
|
+
* clean only after everything has been read back.
|
|
359
|
+
*
|
|
360
|
+
* @param {BufferPrimitiveCollection<BufferPrimitive>} collection
|
|
361
|
+
* @param {PackCollectionData} packCollectionData
|
|
362
|
+
* @returns {VectorCollectionData}
|
|
363
|
+
* @private
|
|
364
|
+
*/
|
|
365
|
+
_getCollectionDataCached(collection, packCollectionData) {
|
|
366
|
+
const cache = this._collectionDataCache.get(collection);
|
|
367
|
+
const dirty = collection._dirtyCount > 0;
|
|
368
|
+
const outdated = cache?.version !== collection._version;
|
|
369
|
+
|
|
370
|
+
if (defined(cache) && !dirty && !outdated) {
|
|
371
|
+
return cache;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
const data = packCollectionData(collection, this._tilingScheme, cache);
|
|
375
|
+
|
|
376
|
+
// If dirty, the version increments +1 when marked clean below.
|
|
377
|
+
data.version = collection._version + (dirty ? 1 : 0);
|
|
378
|
+
data.rectangle = Rectangle.fromBoundingSphere(
|
|
379
|
+
collection.boundingVolume,
|
|
380
|
+
this.ellipsoid,
|
|
381
|
+
data.rectangle,
|
|
382
|
+
);
|
|
383
|
+
this._collectionDataCache.set(collection, data);
|
|
384
|
+
|
|
385
|
+
collection._makeClean();
|
|
386
|
+
|
|
387
|
+
return data;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* @param {number} x
|
|
393
|
+
* @param {number} y
|
|
394
|
+
* @param {number} level
|
|
395
|
+
* @param {Rectangle[]} rectangles
|
|
396
|
+
* @param {TilingScheme} tilingScheme
|
|
397
|
+
* @returns {boolean}
|
|
398
|
+
* @private
|
|
399
|
+
*/
|
|
400
|
+
function intersectRectangles(x, y, level, rectangles, tilingScheme) {
|
|
401
|
+
// No dirty regions recorded — nothing to re-bake. A caller needing a full
|
|
402
|
+
// re-bake should record Rectangle.MAX_VALUE instead.
|
|
403
|
+
if (rectangles.length === 0) {
|
|
404
|
+
return false;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
const tileRectangle = tilingScheme.tileXYToRectangle(
|
|
408
|
+
x,
|
|
409
|
+
y,
|
|
410
|
+
level,
|
|
411
|
+
scratchTileRectangle,
|
|
412
|
+
);
|
|
413
|
+
|
|
414
|
+
for (let i = 0; i < rectangles.length; i++) {
|
|
415
|
+
const isIntersected = Rectangle.intersection(
|
|
416
|
+
tileRectangle,
|
|
417
|
+
rectangles[i],
|
|
418
|
+
scratchIntersectRectangle,
|
|
419
|
+
);
|
|
420
|
+
|
|
421
|
+
if (isIntersected) {
|
|
422
|
+
return true;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
return false;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
export default VectorProvider;
|
|
@@ -419,7 +419,7 @@ WallOutlineGeometry.createGeometry = function (wallGeometry) {
|
|
|
419
419
|
}
|
|
420
420
|
|
|
421
421
|
indices[edgeIndex++] = numVertices - 2;
|
|
422
|
-
indices[edgeIndex
|
|
422
|
+
indices[edgeIndex] = numVertices - 1;
|
|
423
423
|
|
|
424
424
|
return new Geometry({
|
|
425
425
|
attributes: attributes,
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Gets a timestamp that can be used in measuring the time between events. Timestamps
|
|
3
5
|
* are expressed in milliseconds, but it is not specified what the milliseconds are
|
|
4
6
|
* measured from. This function uses performance.now() if it is available, or Date.now()
|
|
5
7
|
* otherwise.
|
|
6
|
-
*
|
|
8
|
+
* @type {Function}
|
|
7
9
|
* @function getTimestamp
|
|
8
|
-
*
|
|
9
10
|
* @returns {number} The timestamp in milliseconds since some unspecified reference time.
|
|
10
11
|
*/
|
|
11
12
|
let getTimestamp;
|
|
@@ -23,4 +24,5 @@ if (
|
|
|
23
24
|
return Date.now();
|
|
24
25
|
};
|
|
25
26
|
}
|
|
27
|
+
|
|
26
28
|
export default getTimestamp;
|
|
@@ -9,6 +9,7 @@ import DeveloperError from "./DeveloperError.js";
|
|
|
9
9
|
* Rounds metrics, excluding width, to whole pixels. This is purely to minimize
|
|
10
10
|
* rendering differences with migration to in-browser measureText(), and may be
|
|
11
11
|
* revised in the future. See: github.com/CesiumGS/cesium/pull/13081
|
|
12
|
+
* @ignore
|
|
12
13
|
*/
|
|
13
14
|
function measureText(context2D, textString) {
|
|
14
15
|
const metrics = context2D.measureText(textString);
|
|
@@ -218,7 +218,6 @@ CompositeEntityCollection.prototype.addCollection = function (
|
|
|
218
218
|
//>>includeEnd('debug');
|
|
219
219
|
|
|
220
220
|
if (!hasIndex) {
|
|
221
|
-
index = this._collections.length;
|
|
222
221
|
this._collections.push(collection);
|
|
223
222
|
} else {
|
|
224
223
|
this._collections.splice(index, 0, collection);
|
|
@@ -65,6 +65,7 @@ import LabelGraphics from "./LabelGraphics.js";
|
|
|
65
65
|
import ModelGraphics from "./ModelGraphics.js";
|
|
66
66
|
import NodeTransformationProperty from "./NodeTransformationProperty.js";
|
|
67
67
|
import PathGraphics from "./PathGraphics.js";
|
|
68
|
+
import PathMode from "./PathMode.js";
|
|
68
69
|
import PointGraphics from "./PointGraphics.js";
|
|
69
70
|
import PolygonGraphics from "./PolygonGraphics.js";
|
|
70
71
|
import PolylineArrowMaterialProperty from "./PolylineArrowMaterialProperty.js";
|
|
@@ -496,6 +497,8 @@ function getPropertyType(czmlInterval) {
|
|
|
496
497
|
return Object;
|
|
497
498
|
} else if (czmlInterval.hasOwnProperty("unitQuaternion")) {
|
|
498
499
|
return Quaternion;
|
|
500
|
+
} else if (czmlInterval.hasOwnProperty("pathMode")) {
|
|
501
|
+
return PathMode;
|
|
499
502
|
} else if (czmlInterval.hasOwnProperty("shadowMode")) {
|
|
500
503
|
return ShadowMode;
|
|
501
504
|
} else if (czmlInterval.hasOwnProperty("string")) {
|
|
@@ -562,6 +565,8 @@ function unwrapInterval(type, czmlInterval, sourceUri) {
|
|
|
562
565
|
return czmlInterval.distanceDisplayCondition;
|
|
563
566
|
case Object:
|
|
564
567
|
return czmlInterval.object ?? czmlInterval.value ?? czmlInterval;
|
|
568
|
+
case PathMode:
|
|
569
|
+
return PathMode[czmlInterval.pathMode ?? czmlInterval];
|
|
565
570
|
case Quaternion:
|
|
566
571
|
return unwrapQuaternionInterval(czmlInterval);
|
|
567
572
|
case Rotation:
|
|
@@ -3654,6 +3659,15 @@ function processPath(entity, packet, entityCollection, sourceUri) {
|
|
|
3654
3659
|
sourceUri,
|
|
3655
3660
|
entityCollection,
|
|
3656
3661
|
);
|
|
3662
|
+
processPacketData(
|
|
3663
|
+
PathMode,
|
|
3664
|
+
path,
|
|
3665
|
+
"materialMode",
|
|
3666
|
+
pathData.materialMode,
|
|
3667
|
+
interval,
|
|
3668
|
+
sourceUri,
|
|
3669
|
+
entityCollection,
|
|
3670
|
+
);
|
|
3657
3671
|
}
|
|
3658
3672
|
|
|
3659
3673
|
function processPoint(entity, packet, entityCollection, sourceUri) {
|
|
@@ -415,7 +415,7 @@ DataSourceDisplay.prototype.getBoundingSphere = function (
|
|
|
415
415
|
const tmp = getBoundingSphereBoundingSphereScratch;
|
|
416
416
|
|
|
417
417
|
let count = 0;
|
|
418
|
-
let state
|
|
418
|
+
let state;
|
|
419
419
|
const visualizers = dataSource._visualizers;
|
|
420
420
|
const visualizersLength = visualizers.length;
|
|
421
421
|
|
|
@@ -149,7 +149,6 @@ function createObject(geoJson, entityCollection, describe) {
|
|
|
149
149
|
const lowerKey = key.toLowerCase();
|
|
150
150
|
|
|
151
151
|
if (namePropertyPrecedence > 1 && lowerKey === "title") {
|
|
152
|
-
namePropertyPrecedence = 1;
|
|
153
152
|
nameProperty = key;
|
|
154
153
|
break;
|
|
155
154
|
} else if (namePropertyPrecedence > 2 && lowerKey === "name") {
|
|
@@ -336,7 +336,7 @@ GeometryVisualizer.prototype.getBoundingSphere = function (entity, result) {
|
|
|
336
336
|
const tmp = getBoundingSphereBoundingSphereScratch;
|
|
337
337
|
|
|
338
338
|
let count = 0;
|
|
339
|
-
let state
|
|
339
|
+
let state;
|
|
340
340
|
const batches = this._batches;
|
|
341
341
|
const batchesLength = batches.length;
|
|
342
342
|
|