@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
|
@@ -986,6 +986,7 @@ function updatePrimitiveShowBoundingVolume(runtimePrimitive, options) {
|
|
|
986
986
|
|
|
987
987
|
const scratchSilhouetteCommands = [];
|
|
988
988
|
const scratchEdgeCommands = [];
|
|
989
|
+
const scratchPlanarFillIdCommands = [];
|
|
989
990
|
const scratchPushDrawCommandOptions = {
|
|
990
991
|
frameState: undefined,
|
|
991
992
|
hasSilhouette: undefined,
|
|
@@ -1011,6 +1012,10 @@ ModelSceneGraph.prototype.pushDrawCommands = function (frameState) {
|
|
|
1011
1012
|
const edgeCommands = scratchEdgeCommands;
|
|
1012
1013
|
edgeCommands.length = 0;
|
|
1013
1014
|
|
|
1015
|
+
// Gather planar fill feature-ID pre-pass commands
|
|
1016
|
+
const planarFillIdCommands = scratchPlanarFillIdCommands;
|
|
1017
|
+
planarFillIdCommands.length = 0;
|
|
1018
|
+
|
|
1014
1019
|
// Since this function is called each frame, the options object is
|
|
1015
1020
|
// preallocated in a scratch variable
|
|
1016
1021
|
const pushDrawCommandOptions = scratchPushDrawCommandOptions;
|
|
@@ -1026,6 +1031,7 @@ ModelSceneGraph.prototype.pushDrawCommands = function (frameState) {
|
|
|
1026
1031
|
|
|
1027
1032
|
addAllToArray(frameState.commandList, silhouetteCommands);
|
|
1028
1033
|
addAllToArray(frameState.commandList, edgeCommands);
|
|
1034
|
+
addAllToArray(frameState.commandList, planarFillIdCommands);
|
|
1029
1035
|
};
|
|
1030
1036
|
|
|
1031
1037
|
// Callback is defined here to avoid allocating a closure in the render loop
|
|
@@ -1036,9 +1042,16 @@ function pushPrimitiveDrawCommands(runtimePrimitive, options) {
|
|
|
1036
1042
|
const passes = frameState.passes;
|
|
1037
1043
|
const silhouetteCommands = scratchSilhouetteCommands;
|
|
1038
1044
|
const edgeCommands = scratchEdgeCommands;
|
|
1045
|
+
const planarFillIdCommands = scratchPlanarFillIdCommands;
|
|
1039
1046
|
const primitiveDrawCommand = runtimePrimitive.drawCommand;
|
|
1040
1047
|
primitiveDrawCommand.pushCommands(frameState, frameState.commandList);
|
|
1041
1048
|
|
|
1049
|
+
// Renew the per-frame planar fill request while this primitive renders.
|
|
1050
|
+
const material = runtimePrimitive.primitive.material;
|
|
1051
|
+
if (defined(material) && defined(material.planarFill)) {
|
|
1052
|
+
frameState.planarFillRequested = true;
|
|
1053
|
+
}
|
|
1054
|
+
|
|
1042
1055
|
// If a model has silhouettes, the commands that draw the silhouettes for
|
|
1043
1056
|
// each primitive can only be invoked after the entire model has drawn.
|
|
1044
1057
|
// Otherwise, the silhouette may draw on top of the model. This requires
|
|
@@ -1051,6 +1064,14 @@ function pushPrimitiveDrawCommands(runtimePrimitive, options) {
|
|
|
1051
1064
|
if (defined(primitiveDrawCommand.pushEdgeCommands)) {
|
|
1052
1065
|
primitiveDrawCommand.pushEdgeCommands(frameState, edgeCommands);
|
|
1053
1066
|
}
|
|
1067
|
+
|
|
1068
|
+
// Add planar fill feature-ID pre-pass commands
|
|
1069
|
+
if (defined(primitiveDrawCommand.pushPlanarFillIdCommands)) {
|
|
1070
|
+
primitiveDrawCommand.pushPlanarFillIdCommands(
|
|
1071
|
+
frameState,
|
|
1072
|
+
planarFillIdCommands,
|
|
1073
|
+
);
|
|
1074
|
+
}
|
|
1054
1075
|
}
|
|
1055
1076
|
|
|
1056
1077
|
/**
|
|
@@ -371,6 +371,7 @@ ModelUtility.supportedExtensions = {
|
|
|
371
371
|
KHR_materials_unlit: true,
|
|
372
372
|
KHR_mesh_quantization: true,
|
|
373
373
|
KHR_mesh_primitive_restart: true,
|
|
374
|
+
KHR_meshopt_compression: true,
|
|
374
375
|
KHR_techniques_webgl: true,
|
|
375
376
|
KHR_texture_basisu: true,
|
|
376
377
|
KHR_texture_transform: true,
|
|
@@ -17,6 +17,32 @@ const PickingPipelineStage = {
|
|
|
17
17
|
name: "PickingPipelineStage", // Helps with debugging
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
+
/**
|
|
21
|
+
* Builds the GLSL expression for the float snap payload written during a
|
|
22
|
+
* snapping pass (see {@link Scene#snap}), from the expression that evaluates
|
|
23
|
+
* to the primitive's RGBA8-normalized pick color.
|
|
24
|
+
*
|
|
25
|
+
* Channel layout (RGBA32F snap framebuffer):
|
|
26
|
+
* <ul>
|
|
27
|
+
* <li>R: pick ID, repacked from the RGBA8 pick color to a uint32 via
|
|
28
|
+
* <code>rgba8UnormToUint32</code> (injected by DerivedCommand.createSnapDerivedCommand).
|
|
29
|
+
* Implicitly cast to float32, which represents far more pick IDs than occur in practice.</li>
|
|
30
|
+
* <li>G: isEdge flag (0.0/1.0). <code>isEdge</code> is a ModelFS.glsl global, set by
|
|
31
|
+
* edge-pass fragments under <code>u_isEdgePass</code>.</li>
|
|
32
|
+
* <li>B: linear eye-space depth (<code>-v_positionEC.z</code>, meters). Eye space is
|
|
33
|
+
* global across multifrustum and independent of log-depth encoding.</li>
|
|
34
|
+
* <li>A: unused</li>
|
|
35
|
+
* </ul>
|
|
36
|
+
*
|
|
37
|
+
* @param {string} pickId The GLSL expression for the RGBA8 pick color.
|
|
38
|
+
* @returns {string} The GLSL expression for the snap payload.
|
|
39
|
+
*
|
|
40
|
+
* @private
|
|
41
|
+
*/
|
|
42
|
+
function snapIdFromPickId(pickId) {
|
|
43
|
+
return `vec4(rgba8UnormToUint32(${pickId}), isEdge ? 1.0 : 0.0, -v_positionEC.z, 0.0)`;
|
|
44
|
+
}
|
|
45
|
+
|
|
20
46
|
/**
|
|
21
47
|
* Process a primitive. This modifies the following parts of the render resources:
|
|
22
48
|
* <ul>
|
|
@@ -65,6 +91,7 @@ PickingPipelineStage.process = function (
|
|
|
65
91
|
};
|
|
66
92
|
|
|
67
93
|
renderResources.pickId = "czm_pickColor";
|
|
94
|
+
renderResources.snapId = snapIdFromPickId(renderResources.pickId);
|
|
68
95
|
}
|
|
69
96
|
};
|
|
70
97
|
|
|
@@ -157,6 +184,7 @@ function processPickTexture(renderResources, primitive, instances) {
|
|
|
157
184
|
// The feature ID is ignored if it is greater than the number of features.
|
|
158
185
|
renderResources.pickId =
|
|
159
186
|
"((selectedFeature.id < int(model_featuresLength)) ? texture(model_pickTexture, selectedFeature.st) : vec4(0.0))";
|
|
187
|
+
renderResources.snapId = snapIdFromPickId(renderResources.pickId);
|
|
160
188
|
}
|
|
161
189
|
|
|
162
190
|
function processInstancedPickIds(renderResources, context) {
|
|
@@ -213,6 +241,7 @@ function processInstancedPickIds(renderResources, context) {
|
|
|
213
241
|
shaderBuilder.addAttribute("vec4", "a_pickColor");
|
|
214
242
|
shaderBuilder.addVarying("vec4", "v_pickColor");
|
|
215
243
|
renderResources.pickId = "v_pickColor";
|
|
244
|
+
renderResources.snapId = snapIdFromPickId(renderResources.pickId);
|
|
216
245
|
}
|
|
217
246
|
|
|
218
247
|
export default PickingPipelineStage;
|
|
@@ -133,6 +133,19 @@ function PrimitiveRenderResources(nodeRenderResources, runtimePrimitive) {
|
|
|
133
133
|
*/
|
|
134
134
|
this.hasSkipLevelOfDetail = nodeRenderResources.hasSkipLevelOfDetail;
|
|
135
135
|
|
|
136
|
+
/**
|
|
137
|
+
* Whether this primitive writes its feature IDs to the planar fill ID
|
|
138
|
+
* texture in a pre-pass (BENTLEY_materials_planar_fill). Set by the
|
|
139
|
+
* material pipeline stage for non-behind planar fill primitives so that
|
|
140
|
+
* behind fills can test same-object coplanarity. This value indicates
|
|
141
|
+
* what draw commands are needed.
|
|
142
|
+
*
|
|
143
|
+
* @type {boolean}
|
|
144
|
+
*
|
|
145
|
+
* @private
|
|
146
|
+
*/
|
|
147
|
+
this.planarFillIdPass = false;
|
|
148
|
+
|
|
136
149
|
/**
|
|
137
150
|
* An object used to build a shader incrementally. This is cloned from the
|
|
138
151
|
* node render resources because each primitive can compute a different shader.
|
|
@@ -292,6 +305,17 @@ function PrimitiveRenderResources(nodeRenderResources, runtimePrimitive) {
|
|
|
292
305
|
* @private
|
|
293
306
|
*/
|
|
294
307
|
this.pickId = undefined;
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* The shader expression for the float snap payload written during a snapping
|
|
311
|
+
* pass (see Scene#snap). If picking is enabled, this value is set by
|
|
312
|
+
* PickingPipelineStage.
|
|
313
|
+
*
|
|
314
|
+
* @type {string|undefined}
|
|
315
|
+
*
|
|
316
|
+
* @private
|
|
317
|
+
*/
|
|
318
|
+
this.snapId = undefined;
|
|
295
319
|
}
|
|
296
320
|
|
|
297
321
|
export default PrimitiveRenderResources;
|
|
@@ -1578,6 +1578,67 @@ export class LineStyle {
|
|
|
1578
1578
|
pattern = undefined;
|
|
1579
1579
|
}
|
|
1580
1580
|
|
|
1581
|
+
/**
|
|
1582
|
+
* Planar fill properties from the BENTLEY_materials_planar_fill extension.
|
|
1583
|
+
* Controls the rendering behavior of planar polygon fills for CAD-style visualization.
|
|
1584
|
+
*
|
|
1585
|
+
* @alias ModelComponents.PlanarFill
|
|
1586
|
+
* @constructor
|
|
1587
|
+
*
|
|
1588
|
+
* @private
|
|
1589
|
+
*/
|
|
1590
|
+
export class PlanarFill {
|
|
1591
|
+
static DEFAULT_WIREFRAME_FILL = 0;
|
|
1592
|
+
|
|
1593
|
+
/**
|
|
1594
|
+
* @param {object} [planarFillInfo={}] The contents of the BENTLEY_materials_planar_fill extension in the parsed glTF JSON.
|
|
1595
|
+
* @param {number} [planarFillInfo.wireframeFill=0] Whether and when the interior fill is displayed in wireframe view mode.
|
|
1596
|
+
* @param {boolean} [planarFillInfo.backgroundFill=false] Whether the fill should be drawn using the view's background color.
|
|
1597
|
+
* @param {boolean} [planarFillInfo.behind=false] Whether the fill should be drawn behind other coplanar geometry of the same logical object.
|
|
1598
|
+
*/
|
|
1599
|
+
constructor(planarFillInfo = {}) {
|
|
1600
|
+
const {
|
|
1601
|
+
wireframeFill = PlanarFill.DEFAULT_WIREFRAME_FILL,
|
|
1602
|
+
backgroundFill = false,
|
|
1603
|
+
behind = false,
|
|
1604
|
+
} = planarFillInfo;
|
|
1605
|
+
|
|
1606
|
+
/**
|
|
1607
|
+
* Specifies whether and when the interior fill is displayed in wireframe view mode.
|
|
1608
|
+
* 0 = NONE (never drawn), 1 = ALWAYS (always drawn), 2 = TOGGLE (drawn when fill display is enabled).
|
|
1609
|
+
*
|
|
1610
|
+
* NOTE: This property is currently a NO-OP. CesiumJS does not yet have a proper
|
|
1611
|
+
* wireframe rendering mode (debugWireframe is not a true wireframe mode). The
|
|
1612
|
+
* value is loaded and stored for completeness, but it has no effect on rendering.
|
|
1613
|
+
* This will be implemented when CesiumJS adds a proper wireframe view mode.
|
|
1614
|
+
* See https://github.com/CesiumGS/cesium/issues/13620.
|
|
1615
|
+
*
|
|
1616
|
+
* @type {number}
|
|
1617
|
+
* @default 0
|
|
1618
|
+
*/
|
|
1619
|
+
this.wireframeFill = wireframeFill;
|
|
1620
|
+
|
|
1621
|
+
/**
|
|
1622
|
+
* If true, the fill should be drawn using the view's background color,
|
|
1623
|
+
* creating an invisible masking polygon.
|
|
1624
|
+
*
|
|
1625
|
+
* @type {boolean}
|
|
1626
|
+
* @default false
|
|
1627
|
+
*/
|
|
1628
|
+
this.backgroundFill = backgroundFill;
|
|
1629
|
+
|
|
1630
|
+
/**
|
|
1631
|
+
* If true, the fill should be drawn behind other coplanar geometry
|
|
1632
|
+
* belonging to the same logical object, useful for mitigating z-fighting
|
|
1633
|
+
* with overlaid geometry such as hatch patterns or text.
|
|
1634
|
+
*
|
|
1635
|
+
* @type {boolean}
|
|
1636
|
+
* @default false
|
|
1637
|
+
*/
|
|
1638
|
+
this.behind = behind;
|
|
1639
|
+
}
|
|
1640
|
+
}
|
|
1641
|
+
|
|
1581
1642
|
/**
|
|
1582
1643
|
* The material appearance of a primitive.
|
|
1583
1644
|
*
|
|
@@ -1709,6 +1770,15 @@ export class Material {
|
|
|
1709
1770
|
*/
|
|
1710
1771
|
this.pointDiameter = undefined;
|
|
1711
1772
|
|
|
1773
|
+
/**
|
|
1774
|
+
* Planar fill properties from the BENTLEY_materials_planar_fill extension.
|
|
1775
|
+
* Controls the rendering behavior of planar polygon fills for CAD-style visualization.
|
|
1776
|
+
*
|
|
1777
|
+
* @type {ModelComponents.PlanarFill}
|
|
1778
|
+
* @private
|
|
1779
|
+
*/
|
|
1780
|
+
this.planarFill = undefined;
|
|
1781
|
+
|
|
1712
1782
|
/**
|
|
1713
1783
|
* Material properties for the BENTLEY_materials_line_style extension.
|
|
1714
1784
|
*
|
|
@@ -1799,6 +1869,7 @@ ModelComponents.SpecularGlossiness = SpecularGlossiness;
|
|
|
1799
1869
|
ModelComponents.Specular = Specular;
|
|
1800
1870
|
ModelComponents.Anisotropy = Anisotropy;
|
|
1801
1871
|
ModelComponents.Clearcoat = Clearcoat;
|
|
1872
|
+
ModelComponents.PlanarFill = PlanarFill;
|
|
1802
1873
|
ModelComponents.LineStyle = LineStyle;
|
|
1803
1874
|
ModelComponents.Material = Material;
|
|
1804
1875
|
ModelComponents.Vector = Vector;
|
package/Source/Scene/Picking.js
CHANGED
|
@@ -247,6 +247,7 @@ const scratchColorZero = new Color(0.0, 0.0, 0.0, 0.0);
|
|
|
247
247
|
* height will default to the value of <code>width</code>
|
|
248
248
|
* @param {BoundingRectangle} result The result rectangle
|
|
249
249
|
* @returns {BoundingRectangle} The result rectangle
|
|
250
|
+
* @ignore
|
|
250
251
|
*/
|
|
251
252
|
function computePickingDrawingBufferRectangle(
|
|
252
253
|
drawingBufferHeight,
|
|
@@ -265,21 +266,31 @@ function computePickingDrawingBufferRectangle(
|
|
|
265
266
|
/**
|
|
266
267
|
* Setup needed before picking.
|
|
267
268
|
*
|
|
269
|
+
* Exported for use by Snapping, which performs the same offscreen pick render
|
|
270
|
+
* but targets the snap framebuffer and flags the pass as a snapping pass.
|
|
271
|
+
*
|
|
268
272
|
* @param {Scene} scene
|
|
269
273
|
* @param {Cartesian2} windowPosition Window coordinates to perform picking on.
|
|
270
274
|
* @param {BoundingRectangle} drawingBufferRectangle The output drawing buffer recangle.
|
|
271
275
|
* @param {number} [width=3] Width of the pick rectangle.
|
|
272
276
|
* @param {number} [height=3] Height of the pick rectangle.
|
|
277
|
+
* @param {object} [options] Object with the following properties:
|
|
278
|
+
* @param {PickFramebuffer|SnapFramebuffer} [options.framebuffer] The framebuffer to render into. Defaults to the view's pick framebuffer.
|
|
279
|
+
* @param {boolean} [options.snap=false] If <code>true</code>, mark the pass as a snapping pass (sets <code>frameState.passes.snap</code>).
|
|
280
|
+
*
|
|
281
|
+
* @private
|
|
273
282
|
*/
|
|
274
|
-
function pickBegin(
|
|
283
|
+
export function pickBegin(
|
|
275
284
|
scene,
|
|
276
285
|
windowPosition,
|
|
277
286
|
drawingBufferRectangle,
|
|
278
287
|
width,
|
|
279
288
|
height,
|
|
289
|
+
options,
|
|
280
290
|
) {
|
|
281
291
|
const { context, frameState, defaultView } = scene;
|
|
282
292
|
const { viewport, pickFramebuffer } = defaultView;
|
|
293
|
+
const framebuffer = options?.framebuffer ?? pickFramebuffer;
|
|
283
294
|
|
|
284
295
|
scene.view = defaultView;
|
|
285
296
|
|
|
@@ -316,13 +327,14 @@ function pickBegin(
|
|
|
316
327
|
);
|
|
317
328
|
frameState.invertClassification = false;
|
|
318
329
|
frameState.passes.pick = true;
|
|
330
|
+
frameState.passes.snap = options?.snap ?? false;
|
|
319
331
|
frameState.tilesetPassState = pickTilesetPassState;
|
|
320
332
|
|
|
321
333
|
context.uniformState.update(frameState);
|
|
322
334
|
|
|
323
335
|
scene.updateEnvironment();
|
|
324
336
|
|
|
325
|
-
passState =
|
|
337
|
+
passState = framebuffer.begin(drawingBufferRectangle, viewport);
|
|
326
338
|
|
|
327
339
|
scene.updateAndExecuteCommands(passState, scratchColorZero);
|
|
328
340
|
scene.resolveFramebuffers(passState);
|
|
@@ -332,8 +344,10 @@ function pickBegin(
|
|
|
332
344
|
* Teardown needed after picking.
|
|
333
345
|
*
|
|
334
346
|
* @param {Scene} scene
|
|
347
|
+
*
|
|
348
|
+
* @private
|
|
335
349
|
*/
|
|
336
|
-
function pickEnd(scene) {
|
|
350
|
+
export function pickEnd(scene) {
|
|
337
351
|
const { context } = scene;
|
|
338
352
|
context.endFrame();
|
|
339
353
|
}
|
|
@@ -808,6 +822,7 @@ Picking.prototype.pickPosition = function (scene, windowPosition, result) {
|
|
|
808
822
|
* @param {object[]} pickedAttributes
|
|
809
823
|
* @param {object[]} pickedFeatures
|
|
810
824
|
* @returns {boolean} whether picking should end
|
|
825
|
+
* @ignore
|
|
811
826
|
*/
|
|
812
827
|
function addDrillPickedResults(
|
|
813
828
|
pickedResults,
|
|
@@ -875,6 +890,7 @@ function addDrillPickedResults(
|
|
|
875
890
|
* @param {function(number): object[]} pickCallback Pick callback to execute each iteration
|
|
876
891
|
* @param {number} [limit=Number.MAX_VALUE] If supplied, stop drilling after collecting this many picks
|
|
877
892
|
* @returns {object[]} List of picked results
|
|
893
|
+
* @ignore
|
|
878
894
|
*/
|
|
879
895
|
function drillPick(pickCallback, limit) {
|
|
880
896
|
// PERFORMANCE_IDEA: This function calls each primitive's update for each pass. Instead
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import defined from "../Core/defined.js";
|
|
2
|
+
import destroyObject from "../Core/destroyObject.js";
|
|
3
|
+
import PixelFormat from "../Core/PixelFormat.js";
|
|
4
|
+
import Color from "../Core/Color.js";
|
|
5
|
+
import PixelDatatype from "../Renderer/PixelDatatype.js";
|
|
6
|
+
import FramebufferManager from "../Renderer/FramebufferManager.js";
|
|
7
|
+
import ClearCommand from "../Renderer/ClearCommand.js";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Creates and manages a framebuffer for the planar fill feature-ID pre-pass.
|
|
11
|
+
*
|
|
12
|
+
* During this pass, non-behind planar fill geometry writes its per-fragment
|
|
13
|
+
* feature ID into a screen-sized texture. Later, primitives with
|
|
14
|
+
* <code>behind: true</code> (BENTLEY_materials_planar_fill) sample this
|
|
15
|
+
* texture to check whether the pixel they are about to overwrite belongs to
|
|
16
|
+
* the same logical object (same feature ID). Only then do they apply an
|
|
17
|
+
* additional depth offset, pushing the fill behind its own object's edges
|
|
18
|
+
* and non-behind fills — but NOT behind other objects.
|
|
19
|
+
*
|
|
20
|
+
* Layout:
|
|
21
|
+
* Color attachment 0 – R32F (single RED channel): encoded feature ID.
|
|
22
|
+
* Depth-stencil attachment – shared with the main scene for correct depth testing.
|
|
23
|
+
*
|
|
24
|
+
* @alias PlanarFillIdFramebuffer
|
|
25
|
+
* @constructor
|
|
26
|
+
* @private
|
|
27
|
+
*/
|
|
28
|
+
function PlanarFillIdFramebuffer() {
|
|
29
|
+
this._framebufferManager = new FramebufferManager({
|
|
30
|
+
colorAttachmentsLength: 1,
|
|
31
|
+
createColorAttachments: true,
|
|
32
|
+
depthStencil: true,
|
|
33
|
+
supportsDepthTexture: true,
|
|
34
|
+
color: true,
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
this._framebuffer = undefined;
|
|
38
|
+
this._idTexture = undefined;
|
|
39
|
+
this._depthStencilTexture = undefined;
|
|
40
|
+
|
|
41
|
+
this._clearCommand = new ClearCommand({
|
|
42
|
+
color: new Color(0.0, 0.0, 0.0, 0.0),
|
|
43
|
+
depth: 1.0,
|
|
44
|
+
stencil: 0,
|
|
45
|
+
owner: this,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
Object.defineProperties(PlanarFillIdFramebuffer.prototype, {
|
|
50
|
+
/**
|
|
51
|
+
* Gets the underlying framebuffer.
|
|
52
|
+
* @memberof PlanarFillIdFramebuffer.prototype
|
|
53
|
+
* @type {Framebuffer}
|
|
54
|
+
* @readonly
|
|
55
|
+
*/
|
|
56
|
+
framebuffer: {
|
|
57
|
+
get: function () {
|
|
58
|
+
return this._framebuffer;
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Gets the feature-ID texture (color attachment 0).
|
|
64
|
+
* @memberof PlanarFillIdFramebuffer.prototype
|
|
65
|
+
* @type {Texture}
|
|
66
|
+
* @readonly
|
|
67
|
+
*/
|
|
68
|
+
idTexture: {
|
|
69
|
+
get: function () {
|
|
70
|
+
return this._idTexture;
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Gets the depth-stencil texture.
|
|
76
|
+
* @memberof PlanarFillIdFramebuffer.prototype
|
|
77
|
+
* @type {Texture}
|
|
78
|
+
* @readonly
|
|
79
|
+
*/
|
|
80
|
+
depthStencilTexture: {
|
|
81
|
+
get: function () {
|
|
82
|
+
return this._depthStencilTexture;
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Updates (creates / resizes) the framebuffer to match the viewport.
|
|
89
|
+
*
|
|
90
|
+
* @param {Context} context
|
|
91
|
+
* @param {BoundingRectangle} viewport
|
|
92
|
+
* @param {boolean} hdr
|
|
93
|
+
* @returns {boolean} <code>true</code> if the framebuffer was recreated.
|
|
94
|
+
*/
|
|
95
|
+
PlanarFillIdFramebuffer.prototype.update = function (context, viewport, hdr) {
|
|
96
|
+
const width = viewport.width;
|
|
97
|
+
const height = viewport.height;
|
|
98
|
+
|
|
99
|
+
// Feature IDs are integers, so a 32-bit float channel provides plenty of range
|
|
100
|
+
// for feature IDs. A single RED channel (R32F) is used since only one value is
|
|
101
|
+
// stored per pixel. Rendering to R32F requires EXT_color_buffer_float, which is
|
|
102
|
+
// available in WebGL2 on all browsers CesiumJS supports; the UNSIGNED_BYTE fallback
|
|
103
|
+
// below only exists for stubbed WebGL contexts possibly used in tests.
|
|
104
|
+
const pixelDatatype = context.colorBufferFloat
|
|
105
|
+
? PixelDatatype.FLOAT
|
|
106
|
+
: PixelDatatype.UNSIGNED_BYTE;
|
|
107
|
+
|
|
108
|
+
const changed = this._framebufferManager.update(
|
|
109
|
+
context,
|
|
110
|
+
width,
|
|
111
|
+
height,
|
|
112
|
+
1, // no MSAA
|
|
113
|
+
pixelDatatype,
|
|
114
|
+
PixelFormat.RED,
|
|
115
|
+
);
|
|
116
|
+
|
|
117
|
+
if (this._framebufferManager.framebuffer) {
|
|
118
|
+
this._framebuffer = this._framebufferManager.framebuffer;
|
|
119
|
+
this._idTexture = this._framebufferManager.getColorTexture(0);
|
|
120
|
+
this._depthStencilTexture =
|
|
121
|
+
this._framebufferManager.getDepthStencilTexture();
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return changed;
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Returns a ClearCommand that targets this framebuffer.
|
|
129
|
+
*
|
|
130
|
+
* @param {Color} [clearColor] Override the clear color (default: transparent black).
|
|
131
|
+
* @returns {ClearCommand}
|
|
132
|
+
*/
|
|
133
|
+
PlanarFillIdFramebuffer.prototype.getClearCommand = function (clearColor) {
|
|
134
|
+
this._clearCommand.framebuffer = this._framebuffer;
|
|
135
|
+
if (defined(clearColor)) {
|
|
136
|
+
Color.clone(clearColor, this._clearCommand.color);
|
|
137
|
+
}
|
|
138
|
+
return this._clearCommand;
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Releases GPU resources without destroying this object; a later call to
|
|
143
|
+
* {@link PlanarFillIdFramebuffer#update} recreates them.
|
|
144
|
+
*/
|
|
145
|
+
PlanarFillIdFramebuffer.prototype.releaseResources = function () {
|
|
146
|
+
if (!defined(this._framebuffer)) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
this._framebufferManager.destroy();
|
|
150
|
+
this._framebuffer = undefined;
|
|
151
|
+
this._idTexture = undefined;
|
|
152
|
+
this._depthStencilTexture = undefined;
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* @returns {boolean}
|
|
157
|
+
*/
|
|
158
|
+
PlanarFillIdFramebuffer.prototype.isDestroyed = function () {
|
|
159
|
+
return false;
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Destroys WebGL resources.
|
|
164
|
+
*/
|
|
165
|
+
PlanarFillIdFramebuffer.prototype.destroy = function () {
|
|
166
|
+
this._framebufferManager =
|
|
167
|
+
this._framebufferManager && this._framebufferManager.destroy();
|
|
168
|
+
this._clearCommand = undefined;
|
|
169
|
+
return destroyObject(this);
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
export default PlanarFillIdFramebuffer;
|
|
@@ -105,7 +105,6 @@ PntsParser.parse = function (arrayBuffer, byteOffset) {
|
|
|
105
105
|
);
|
|
106
106
|
// Copy the batchTableBinary section and let the underlying ArrayBuffer be freed
|
|
107
107
|
batchTableBinary = new Uint8Array(batchTableBinary);
|
|
108
|
-
byteOffset += batchTableBinaryByteLength;
|
|
109
108
|
}
|
|
110
109
|
}
|
|
111
110
|
|
|
@@ -214,6 +213,7 @@ PntsParser.parse = function (arrayBuffer, byteOffset) {
|
|
|
214
213
|
* a one-time warning will be printed.
|
|
215
214
|
*
|
|
216
215
|
* @param {object} parsedContent The parsed content
|
|
216
|
+
* @ignore
|
|
217
217
|
*/
|
|
218
218
|
function removeInvalidBinaryBodyReferences(parsedContent) {
|
|
219
219
|
const batchTableJson = parsedContent.batchTableJson;
|
|
@@ -846,7 +846,7 @@ function createVertexArrays(collection, context, projection) {
|
|
|
846
846
|
|
|
847
847
|
//stores all of the individual indices arrays.
|
|
848
848
|
const totalIndices = [[]];
|
|
849
|
-
let indices
|
|
849
|
+
let indices;
|
|
850
850
|
|
|
851
851
|
const batchTable = collection._batchTable;
|
|
852
852
|
const useHighlightColor = collection._useHighlightColor;
|
|
@@ -640,8 +640,10 @@ function createStageOutputTextureFunction(stage, name) {
|
|
|
640
640
|
function updateUniformTextures(stage, context) {
|
|
641
641
|
const texturesToRelease = stage._texturesToRelease;
|
|
642
642
|
for (let i = 0; i < texturesToRelease.length; ++i) {
|
|
643
|
-
|
|
644
|
-
|
|
643
|
+
const texture = texturesToRelease[i];
|
|
644
|
+
if (defined(texture)) {
|
|
645
|
+
texture.destroy();
|
|
646
|
+
}
|
|
645
647
|
}
|
|
646
648
|
texturesToRelease.length = 0;
|
|
647
649
|
|
|
@@ -1527,11 +1527,12 @@ function updateHeights(primitive, frameState) {
|
|
|
1527
1527
|
);
|
|
1528
1528
|
|
|
1529
1529
|
if (defined(position)) {
|
|
1530
|
-
//
|
|
1530
|
+
// `pick` wrote into the module-level `scratchPosition`, so `position`
|
|
1531
|
+
// aliases it — clone before caching or the next pick mutates every entry.
|
|
1531
1532
|
tile.setPositionCacheEntry(
|
|
1532
1533
|
data.positionCartographic,
|
|
1533
1534
|
primitive.maximumScreenSpaceError,
|
|
1534
|
-
position,
|
|
1535
|
+
Cartesian3.clone(position),
|
|
1535
1536
|
);
|
|
1536
1537
|
}
|
|
1537
1538
|
}
|
|
@@ -419,7 +419,7 @@ ResourceCache.getSpzLoader = function (options) {
|
|
|
419
419
|
|
|
420
420
|
const cacheKey = ResourceCacheKey.getSpzCacheKey({
|
|
421
421
|
gltf: gltf,
|
|
422
|
-
|
|
422
|
+
spz: spz,
|
|
423
423
|
gltfResource: gltfResource,
|
|
424
424
|
baseResource: baseResource,
|
|
425
425
|
});
|
|
@@ -453,13 +453,14 @@ ResourceCache.getSpzLoader = function (options) {
|
|
|
453
453
|
* @param {number} [options.bufferViewId] The bufferView ID corresponding to the vertex buffer.
|
|
454
454
|
* @param {object} [options.primitive] The primitive containing the Draco extension.
|
|
455
455
|
* @param {object} [options.draco] The Draco extension object.
|
|
456
|
+
* @param {object} [options.spz] The SPZ extension object.
|
|
456
457
|
* @param {string} [options.attributeSemantic] The attribute semantic, e.g. POSITION or NORMAL.
|
|
457
458
|
* @param {number} [options.accessorId] The accessor ID.
|
|
458
459
|
* @param {boolean} [options.asynchronous=true] Determines if WebGL resource creation will be spread out over several frames or block until all WebGL resources are created.
|
|
459
460
|
* @param {boolean} [options.dequantize=false] Determines whether or not the vertex buffer will be dequantized on the CPU.
|
|
460
461
|
* @param {boolean} [options.loadBuffer=false] Load vertex buffer as a GPU vertex buffer.
|
|
461
462
|
* @param {boolean} [options.loadTypedArray=false] Load vertex buffer as a typed array.
|
|
462
|
-
* @exception {DeveloperError}
|
|
463
|
+
* @exception {DeveloperError} Exactly one vertex buffer source must be effective: options.bufferViewId, options.spz, or options.draco for options.attributeSemantic.
|
|
463
464
|
* @exception {DeveloperError} When options.draco is defined options.attributeSemantic must also be defined.
|
|
464
465
|
* @exception {DeveloperError} When options.draco is defined options.accessorId must also be defined.
|
|
465
466
|
*
|
|
@@ -503,9 +504,11 @@ ResourceCache.getVertexBufferLoader = function (options) {
|
|
|
503
504
|
const hasAccessorId = defined(accessorId);
|
|
504
505
|
const hasSpz = defined(spz);
|
|
505
506
|
|
|
506
|
-
|
|
507
|
+
const sourceCount =
|
|
508
|
+
Number(hasBufferViewId) + Number(hasDraco) + Number(hasSpz);
|
|
509
|
+
if (sourceCount !== 1) {
|
|
507
510
|
throw new DeveloperError(
|
|
508
|
-
"
|
|
511
|
+
"Exactly one vertex buffer source must be effective: options.bufferViewId, options.spz, or options.draco for options.attributeSemantic.",
|
|
509
512
|
);
|
|
510
513
|
}
|
|
511
514
|
|