@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
|
@@ -276,15 +276,17 @@ function generateEdgeFaceNormals(edgeIndices, edgeData, edgeVisibility) {
|
|
|
276
276
|
// No silhouette edges in this primitive, the shader only checks normals for SILHOUETTE edges.
|
|
277
277
|
return edgeFaceNormals;
|
|
278
278
|
}
|
|
279
|
-
|
|
279
|
+
// raw is a packed typed array (x0,y0,z0, x1,y1,z1, ...) of float, byte, or
|
|
280
|
+
// short components. The vectors are normalized below, which cancels the
|
|
281
|
+
// quantization scale, so raw components can be used directly for all three.
|
|
282
|
+
const normalCount = raw.length / 3;
|
|
283
|
+
const silhouetteNormalsFloat = new Float32Array(raw.length);
|
|
280
284
|
const scratchNormal = new Cartesian3();
|
|
281
285
|
|
|
282
|
-
for (let i = 0; i <
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
scratchNormal.
|
|
286
|
-
scratchNormal.y = 2 * ((vec3.y + 128) / 255) - 1;
|
|
287
|
-
scratchNormal.z = 2 * ((vec3.z + 128) / 255) - 1;
|
|
286
|
+
for (let i = 0; i < normalCount; i++) {
|
|
287
|
+
scratchNormal.x = raw[i * 3];
|
|
288
|
+
scratchNormal.y = raw[i * 3 + 1];
|
|
289
|
+
scratchNormal.z = raw[i * 3 + 2];
|
|
288
290
|
|
|
289
291
|
if (Cartesian3.magnitudeSquared(scratchNormal) > 0) {
|
|
290
292
|
Cartesian3.normalize(scratchNormal, scratchNormal);
|
|
@@ -609,7 +611,7 @@ function collectVertexColors(runtimePrimitive) {
|
|
|
609
611
|
* @param {number} edgeOtherPosLocation Shader attribute location for the other endpoint position
|
|
610
612
|
* @param {number} edgeOffsetLocation Shader attribute location for edge offset (-1 or +1)
|
|
611
613
|
* @param {VertexColorInfo} [vertexColorInfo] Packed per-vertex colors (optional)
|
|
612
|
-
* @param {Object} edgeVisibility Edge visibility extension object (may contain silhouetteNormals
|
|
614
|
+
* @param {Object} edgeVisibility Edge visibility extension object (may contain silhouetteNormals, a packed typed array of VEC3 components)
|
|
613
615
|
* @param {Float32Array} edgeFaceNormals Packed face normals (6 floats per edge)
|
|
614
616
|
* @param {Object} [cumDistAttribute] Cumulative distance attribute
|
|
615
617
|
* @param {number} [edgeCumDistLocation] Cumulative distance location
|
|
@@ -30,6 +30,7 @@ function GltfGpmLoader() {}
|
|
|
30
30
|
*
|
|
31
31
|
* @param {number[]} array The input array
|
|
32
32
|
* @returns {Matrix3} The Matrix3
|
|
33
|
+
* @ignore
|
|
33
34
|
*/
|
|
34
35
|
function createCovarianceMatrixFromUpperTriangle(array) {
|
|
35
36
|
const covarianceMatrix = new Matrix3(
|
|
@@ -51,6 +52,7 @@ function createCovarianceMatrixFromUpperTriangle(array) {
|
|
|
51
52
|
*
|
|
52
53
|
* @param {object} anchorPointDirectJson The input JSON
|
|
53
54
|
* @returns {AnchorPointDirect} The direct anchor point
|
|
55
|
+
* @ignore
|
|
54
56
|
*/
|
|
55
57
|
function createAnchorPointDirect(anchorPointDirectJson) {
|
|
56
58
|
const position = Cartesian3.fromArray(
|
|
@@ -75,6 +77,7 @@ function createAnchorPointDirect(anchorPointDirectJson) {
|
|
|
75
77
|
*
|
|
76
78
|
* @param {object} anchorPointIndirectJson The input JSON
|
|
77
79
|
* @returns {AnchorPointIndirect} The indirect anchor point
|
|
80
|
+
* @ignore
|
|
78
81
|
*/
|
|
79
82
|
function createAnchorPointIndirect(anchorPointIndirectJson) {
|
|
80
83
|
const position = Cartesian3.fromArray(
|
|
@@ -103,6 +106,7 @@ function createAnchorPointIndirect(anchorPointIndirectJson) {
|
|
|
103
106
|
*
|
|
104
107
|
* @param {object} correlationGroupJson The input JSON
|
|
105
108
|
* @returns {CorrelationGroup} The correlation group
|
|
109
|
+
* @ignore
|
|
106
110
|
*/
|
|
107
111
|
function createCorrelationGroup(correlationGroupJson) {
|
|
108
112
|
const groupFlags = correlationGroupJson.groupFlags;
|
|
@@ -407,7 +407,7 @@ function createInstances(loader, components, frameState) {
|
|
|
407
407
|
const featureIdArray = new Float32Array(instancesLength);
|
|
408
408
|
|
|
409
409
|
const instancePositions = Cartesian3.unpackArray(translationTypedArray);
|
|
410
|
-
let instancePosition
|
|
410
|
+
let instancePosition;
|
|
411
411
|
|
|
412
412
|
const instanceNormalRight = new Cartesian3();
|
|
413
413
|
const instanceNormalUp = new Cartesian3();
|
|
@@ -294,13 +294,13 @@ function getModelMatrixAndNodeTransform(
|
|
|
294
294
|
const instances = renderResources.runtimeNode.node.instances;
|
|
295
295
|
if (instances.transformInWorldSpace) {
|
|
296
296
|
// Replicate the multiplication order in LegacyInstancingStageVS.
|
|
297
|
-
|
|
297
|
+
Matrix4.multiplyTransformation(
|
|
298
298
|
model.modelMatrix,
|
|
299
299
|
sceneGraph.components.transform,
|
|
300
300
|
modelMatrix,
|
|
301
301
|
);
|
|
302
302
|
|
|
303
|
-
|
|
303
|
+
Matrix4.multiplyTransformation(
|
|
304
304
|
sceneGraph.axisCorrectionMatrix,
|
|
305
305
|
renderResources.runtimeNode.computedTransform,
|
|
306
306
|
nodeComputedTransform,
|
|
@@ -308,16 +308,13 @@ function getModelMatrixAndNodeTransform(
|
|
|
308
308
|
} else {
|
|
309
309
|
// The node transform should be pre-multiplied with the instancing transform.
|
|
310
310
|
modelMatrix = Matrix4.clone(sceneGraph.computedModelMatrix, modelMatrix);
|
|
311
|
-
|
|
311
|
+
Matrix4.multiplyTransformation(
|
|
312
312
|
modelMatrix,
|
|
313
313
|
renderResources.runtimeNode.computedTransform,
|
|
314
314
|
modelMatrix,
|
|
315
315
|
);
|
|
316
316
|
|
|
317
|
-
|
|
318
|
-
Matrix4.IDENTITY,
|
|
319
|
-
nodeComputedTransform,
|
|
320
|
-
);
|
|
317
|
+
Matrix4.clone(Matrix4.IDENTITY, nodeComputedTransform);
|
|
321
318
|
}
|
|
322
319
|
}
|
|
323
320
|
|
|
@@ -170,13 +170,28 @@ MaterialPipelineStage.process = function (
|
|
|
170
170
|
const disablePointCloudNormals =
|
|
171
171
|
defined(model.pointCloudShading) && !model.pointCloudShading.normalShading;
|
|
172
172
|
|
|
173
|
+
if (defined(material.planarFill)) {
|
|
174
|
+
processPlanarFill(
|
|
175
|
+
material.planarFill,
|
|
176
|
+
primitive,
|
|
177
|
+
renderResources,
|
|
178
|
+
frameState,
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// When backgroundFill is true (BENTLEY_materials_planar_fill), the primitive
|
|
183
|
+
// must be unlit so it matches the background color exactly.
|
|
184
|
+
const hasBackgroundFill =
|
|
185
|
+
defined(material.planarFill) && material.planarFill.backgroundFill;
|
|
186
|
+
|
|
173
187
|
// Classification models will be rendered as unlit.
|
|
174
188
|
const lightingOptions = renderResources.lightingOptions;
|
|
175
189
|
if (
|
|
176
190
|
material.unlit ||
|
|
177
191
|
!hasNormals ||
|
|
178
192
|
hasClassification ||
|
|
179
|
-
disablePointCloudNormals
|
|
193
|
+
disablePointCloudNormals ||
|
|
194
|
+
hasBackgroundFill
|
|
180
195
|
) {
|
|
181
196
|
lightingOptions.lightingModel = LightingModel.UNLIT;
|
|
182
197
|
} else {
|
|
@@ -232,6 +247,114 @@ MaterialPipelineStage.process = function (
|
|
|
232
247
|
}
|
|
233
248
|
};
|
|
234
249
|
|
|
250
|
+
/**
|
|
251
|
+
* Add uniforms and defines for the BENTLEY_materials_planar_fill extension.
|
|
252
|
+
*
|
|
253
|
+
* Per the BENTLEY_materials_planar_fill spec:
|
|
254
|
+
* <ul>
|
|
255
|
+
* <li>ALL planar primitives must render in front of non-planar (Depth Ordering).</li>
|
|
256
|
+
* <li><code>behind</code> fills must render behind coplanar geometry from the SAME
|
|
257
|
+
* logical object only (same feature ID from EXT_mesh_features).</li>
|
|
258
|
+
* </ul>
|
|
259
|
+
*
|
|
260
|
+
* Instead of using fixed polygon offset units (which don't scale well with
|
|
261
|
+
* logarithmic depth), we use proportional depth scaling in the shader.
|
|
262
|
+
* This approach matches the edge visibility system and scales naturally
|
|
263
|
+
* at all viewing distances.
|
|
264
|
+
*
|
|
265
|
+
* @param {ModelComponents.PlanarFill} planarFill The planar fill properties of the material
|
|
266
|
+
* @param {ModelComponents.Primitive} primitive The primitive to be rendered
|
|
267
|
+
* @param {PrimitiveRenderResources} renderResources The render resources for the primitive
|
|
268
|
+
* @param {FrameState} frameState The frame state.
|
|
269
|
+
* @private
|
|
270
|
+
*/
|
|
271
|
+
function processPlanarFill(planarFill, primitive, renderResources, frameState) {
|
|
272
|
+
const { uniformMap, shaderBuilder } = renderResources;
|
|
273
|
+
|
|
274
|
+
// Signal to Scene that the planar fill ID framebuffer is needed.
|
|
275
|
+
frameState.planarFillRequested = true;
|
|
276
|
+
|
|
277
|
+
// All planar fills get a proportional depth pull toward camera. Behind fills
|
|
278
|
+
// additionally sample the planar fill ID texture to test same-feature; if so,
|
|
279
|
+
// they apply a small proportional push to sit behind non-behind geometry.
|
|
280
|
+
shaderBuilder.addDefine(
|
|
281
|
+
"HAS_PLANAR_FILL_DEPTH",
|
|
282
|
+
undefined,
|
|
283
|
+
ShaderDestination.FRAGMENT,
|
|
284
|
+
);
|
|
285
|
+
|
|
286
|
+
// Configure background fill for BENTLEY_materials_planar_fill extension.
|
|
287
|
+
// When backgroundFill is true, the fill is rendered using the view's background color
|
|
288
|
+
// to create an invisible masking polygon. Lighting is forced to unlit in process().
|
|
289
|
+
//
|
|
290
|
+
// NOTE: The wireframeFill property from BENTLEY_materials_planar_fill is intentionally
|
|
291
|
+
// not handled here. CesiumJS does not yet have a proper wireframe rendering mode
|
|
292
|
+
// (debugWireframe is not a true wireframe mode), so wireframeFill is loaded as a NO-OP.
|
|
293
|
+
// When a proper wireframe mode is added to CesiumJS, wireframeFill support should be
|
|
294
|
+
// implemented here to control fill visibility in that mode. See
|
|
295
|
+
// https://github.com/CesiumGS/cesium/issues/13620.
|
|
296
|
+
if (planarFill.backgroundFill) {
|
|
297
|
+
shaderBuilder.addDefine(
|
|
298
|
+
"HAS_BACKGROUND_FILL",
|
|
299
|
+
undefined,
|
|
300
|
+
ShaderDestination.FRAGMENT,
|
|
301
|
+
);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
const hasFeatureIds =
|
|
305
|
+
defined(primitive.featureIds) && primitive.featureIds.length > 0;
|
|
306
|
+
if (!hasFeatureIds) {
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// "Same logical object" is implementation-defined per the spec; this
|
|
311
|
+
// implementation uses the primitive's first feature ID set. Primitives
|
|
312
|
+
// without feature IDs (checked above) don't participate in the
|
|
313
|
+
// behind-fill same-object test.
|
|
314
|
+
const featureIdMember = primitive.featureIds[0].positionalLabel;
|
|
315
|
+
shaderBuilder.addDefine(
|
|
316
|
+
"PLANAR_FILL_FEATURE_ID",
|
|
317
|
+
featureIdMember,
|
|
318
|
+
ShaderDestination.FRAGMENT,
|
|
319
|
+
);
|
|
320
|
+
|
|
321
|
+
if (planarFill.behind) {
|
|
322
|
+
// Behind fills READ the planar fill ID texture to test whether the
|
|
323
|
+
// pixel they cover belongs to the same logical object.
|
|
324
|
+
shaderBuilder.addDefine(
|
|
325
|
+
"HAS_PLANAR_FILL_BEHIND",
|
|
326
|
+
undefined,
|
|
327
|
+
ShaderDestination.FRAGMENT,
|
|
328
|
+
);
|
|
329
|
+
} else {
|
|
330
|
+
// Non-behind fills WRITE their feature IDs to the planar fill ID
|
|
331
|
+
// texture in a pre-pass so behind fills can test same-object
|
|
332
|
+
// coplanarity. Mark this primitive for the pre-pass derived command.
|
|
333
|
+
renderResources.planarFillIdPass = true;
|
|
334
|
+
|
|
335
|
+
// Add a define so that during the pre-pass the shader outputs
|
|
336
|
+
// the feature ID instead of the normal color.
|
|
337
|
+
shaderBuilder.addDefine(
|
|
338
|
+
"HAS_PLANAR_FILL_ID_PASS",
|
|
339
|
+
undefined,
|
|
340
|
+
ShaderDestination.FRAGMENT,
|
|
341
|
+
);
|
|
342
|
+
|
|
343
|
+
// Runtime uniform to distinguish the pre-pass from the main pass
|
|
344
|
+
// (same shader program serves both commands). This default returns false
|
|
345
|
+
// for the main command; the derived pre-pass command overrides it to
|
|
346
|
+
// return true (see derivePlanarFillIdCommand in ModelDrawCommand.js).
|
|
347
|
+
shaderBuilder.addUniform(
|
|
348
|
+
"bool",
|
|
349
|
+
"u_isPlanarFillIdPass",
|
|
350
|
+
ShaderDestination.FRAGMENT,
|
|
351
|
+
);
|
|
352
|
+
uniformMap.u_isPlanarFillIdPass = function () {
|
|
353
|
+
return false;
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
|
|
235
358
|
/**
|
|
236
359
|
* Process constant LOD extension for a texture
|
|
237
360
|
*
|
|
@@ -73,7 +73,7 @@ import ModelImagery from "./ModelImagery.js";
|
|
|
73
73
|
* {@link https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_mesh_gpu_instancing|EXT_mesh_gpu_instancing}
|
|
74
74
|
* </li>
|
|
75
75
|
* <li>
|
|
76
|
-
* {@link https://github.com/KhronosGroup/glTF/
|
|
76
|
+
* {@link https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_mesh_primitive_restart|EXT_mesh_primitive_restart}
|
|
77
77
|
* </li>
|
|
78
78
|
* <li>
|
|
79
79
|
* {@link https://github.com/KhronosGroup/glTF/pull/2479|EXT_mesh_primitive_edge_visibility}
|
|
@@ -105,9 +105,16 @@ import ModelImagery from "./ModelImagery.js";
|
|
|
105
105
|
* {@link https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit/README.md|KHR_materials_unlit}
|
|
106
106
|
* </li>
|
|
107
107
|
* <li>
|
|
108
|
+
* {@link https://github.com/KhronosGroup/glTF/pull/2569|KHR_mesh_primitive_restart}
|
|
109
|
+
* (requires a WebGL 2 context; behavior on WebGL 1 is undefined)
|
|
110
|
+
* </li>
|
|
111
|
+
* <li>
|
|
108
112
|
* {@link https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_mesh_quantization|KHR_mesh_quantization}
|
|
109
113
|
* </li>
|
|
110
114
|
* <li>
|
|
115
|
+
* {@link https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_meshopt_compression|KHR_meshopt_compression}
|
|
116
|
+
* </li>
|
|
117
|
+
* <li>
|
|
111
118
|
* {@link https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_texture_basisu|KHR_texture_basisu}
|
|
112
119
|
* </li>
|
|
113
120
|
* <li>
|
|
@@ -266,6 +273,7 @@ function Model(options) {
|
|
|
266
273
|
*/
|
|
267
274
|
this.referenceMatrix = undefined;
|
|
268
275
|
this._iblReferenceFrameMatrix = Matrix3.clone(Matrix3.IDENTITY); // Derived from reference matrix and the current view matrix
|
|
276
|
+
this._clippingPlanesMatrix = Matrix4.clone(Matrix4.IDENTITY); // Derived from the reference matrix and the clipping planes' own model matrix
|
|
269
277
|
|
|
270
278
|
this._resourcesLoaded = false;
|
|
271
279
|
this._drawCommandsBuilt = false;
|
|
@@ -377,7 +385,6 @@ function Model(options) {
|
|
|
377
385
|
this._clippingPlanes = clippingPlanes;
|
|
378
386
|
}
|
|
379
387
|
this._clippingPlanesState = 0; // If this value changes, the shaders need to be regenerated.
|
|
380
|
-
this._clippingPlanesMatrix = Matrix4.clone(Matrix4.IDENTITY); // Derived from reference matrix and the current view matrix
|
|
381
388
|
|
|
382
389
|
// If the given clipping polygons don't have an owner, make this model its owner.
|
|
383
390
|
// Otherwise, the clipping polygons are passed down from a tileset.
|
|
@@ -2476,16 +2483,10 @@ function updateReferenceMatrices(model, frameState) {
|
|
|
2476
2483
|
);
|
|
2477
2484
|
|
|
2478
2485
|
if (model.isClippingEnabled()) {
|
|
2479
|
-
|
|
2480
|
-
clippingPlanesMatrix = Matrix4.multiply(
|
|
2481
|
-
context.uniformState.view3D,
|
|
2486
|
+
const clippingPlanesMatrix = Matrix4.multiply(
|
|
2482
2487
|
referenceMatrix,
|
|
2483
|
-
clippingPlanesMatrix,
|
|
2484
|
-
);
|
|
2485
|
-
clippingPlanesMatrix = Matrix4.multiply(
|
|
2486
|
-
clippingPlanesMatrix,
|
|
2487
2488
|
model._clippingPlanes.modelMatrix,
|
|
2488
|
-
|
|
2489
|
+
scratchClippingPlanesMatrix,
|
|
2489
2490
|
);
|
|
2490
2491
|
model._clippingPlanesMatrix = Matrix4.inverseTranspose(
|
|
2491
2492
|
clippingPlanesMatrix,
|
|
@@ -2,6 +2,7 @@ import Cartesian2 from "../../Core/Cartesian2.js";
|
|
|
2
2
|
import ClippingPlaneCollection from "../ClippingPlaneCollection.js";
|
|
3
3
|
import combine from "../../Core/combine.js";
|
|
4
4
|
import Color from "../../Core/Color.js";
|
|
5
|
+
import Matrix4 from "../../Core/Matrix4.js";
|
|
5
6
|
import ModelClippingPlanesStageFS from "../../Shaders/Model/ModelClippingPlanesStageFS.js";
|
|
6
7
|
import ShaderDestination from "../../Renderer/ShaderDestination.js";
|
|
7
8
|
|
|
@@ -17,6 +18,9 @@ const ModelClippingPlanesPipelineStage = {
|
|
|
17
18
|
};
|
|
18
19
|
|
|
19
20
|
const textureResolutionScratch = new Cartesian2();
|
|
21
|
+
const scratchClippingPlanesMatrix = new Matrix4();
|
|
22
|
+
const scratchClippingPlanesMatrix2 = new Matrix4();
|
|
23
|
+
|
|
20
24
|
/**
|
|
21
25
|
* Process a model. This modifies the following parts of the render resources:
|
|
22
26
|
*
|
|
@@ -116,7 +120,30 @@ ModelClippingPlanesPipelineStage.process = function (
|
|
|
116
120
|
return style;
|
|
117
121
|
},
|
|
118
122
|
model_clippingPlanesMatrix: function () {
|
|
119
|
-
|
|
123
|
+
// The clipping planes matrix is factored into a view-dependent and a
|
|
124
|
+
// view-independent part:
|
|
125
|
+
// inverseTranspose(view3D * reference * clipping)
|
|
126
|
+
// = transpose(inverseView3D) * inverseTranspose(reference * clipping).
|
|
127
|
+
//
|
|
128
|
+
// The view-dependent part, transpose(inverseView3D), reuses inverseView3D
|
|
129
|
+
// already maintained on UniformState. Since it uses the active view, this is
|
|
130
|
+
// also correct in the shadow cast pass, where inverseView3D is the light's
|
|
131
|
+
// view rather than the camera's. Only a transpose is needed here, no inverse.
|
|
132
|
+
const inverseViewTranspose = Matrix4.transpose(
|
|
133
|
+
context.uniformState.inverseView3D,
|
|
134
|
+
scratchClippingPlanesMatrix,
|
|
135
|
+
);
|
|
136
|
+
// The view-independent part, inverseTranspose(reference * clipping), is
|
|
137
|
+
// computed once per frame in Model.updateReferenceMatrices.
|
|
138
|
+
//
|
|
139
|
+
// This recomputes the same product for every primitive of a model within
|
|
140
|
+
// a pass. If it ever shows up in profiling, see the discussion of
|
|
141
|
+
// alternatives in https://github.com/CesiumGS/cesium/pull/13388.
|
|
142
|
+
return Matrix4.multiply(
|
|
143
|
+
inverseViewTranspose,
|
|
144
|
+
model._clippingPlanesMatrix,
|
|
145
|
+
scratchClippingPlanesMatrix2,
|
|
146
|
+
);
|
|
120
147
|
},
|
|
121
148
|
};
|
|
122
149
|
|
|
@@ -103,6 +103,9 @@ function ModelDrawCommand(options) {
|
|
|
103
103
|
this._needsSkipLevelOfDetailCommands = needsSkipLevelOfDetailCommands;
|
|
104
104
|
this._needsSilhouetteCommands = needsSilhouetteCommands;
|
|
105
105
|
this._needsEdgeCommands = needsEdgeCommands;
|
|
106
|
+
// Non-behind planar fill primitives write their feature IDs in a pre-pass
|
|
107
|
+
// so that behind fills can test same-object coplanarity.
|
|
108
|
+
this._needsPlanarFillIdCommand = renderResources.planarFillIdPass;
|
|
106
109
|
|
|
107
110
|
// Derived commands
|
|
108
111
|
this._originalCommand = undefined;
|
|
@@ -112,6 +115,10 @@ function ModelDrawCommand(options) {
|
|
|
112
115
|
this._silhouetteModelCommand = undefined;
|
|
113
116
|
this._silhouetteColorCommand = undefined;
|
|
114
117
|
this._edgeCommand = undefined;
|
|
118
|
+
// Snap-pass variant of the edge command, pinned at 1 px width.
|
|
119
|
+
// See deriveEdgeCommand.
|
|
120
|
+
this._edgeSnapCommand = undefined;
|
|
121
|
+
this._planarFillIdCommand = undefined;
|
|
115
122
|
|
|
116
123
|
// All derived commands (including 2D commands)
|
|
117
124
|
this._derivedCommands = [];
|
|
@@ -226,8 +233,27 @@ function initialize(drawCommand) {
|
|
|
226
233
|
|
|
227
234
|
if (drawCommand._needsEdgeCommands) {
|
|
228
235
|
const renderResources = drawCommand._primitiveRenderResources;
|
|
236
|
+
const edgeGeometry = renderResources.edgeGeometry;
|
|
237
|
+
const colorLineWidth = defined(edgeGeometry.lineWidth)
|
|
238
|
+
? edgeGeometry.lineWidth
|
|
239
|
+
: 1.0;
|
|
240
|
+
// Snap-pass edge width is held at 1 px independent of the color width.
|
|
241
|
+
// A wider snap band results in snap wiggle: as the cursor moves
|
|
242
|
+
// perpendicular to an edge inside the band, the "edge pixel nearest
|
|
243
|
+
// the cursor" shifts, so Snapping.snap returns a slightly different
|
|
244
|
+
// point each frame.
|
|
245
|
+
const snapLineWidth = 1.0;
|
|
246
|
+
|
|
229
247
|
drawCommand._edgeCommand = new ModelDerivedCommand({
|
|
230
|
-
command: deriveEdgeCommand(command, renderResources,
|
|
248
|
+
command: deriveEdgeCommand(command, renderResources, colorLineWidth),
|
|
249
|
+
updateShadows: false,
|
|
250
|
+
updateBackFaceCulling: false,
|
|
251
|
+
updateCullFace: false,
|
|
252
|
+
updateDebugShowBoundingVolume: false,
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
drawCommand._edgeSnapCommand = new ModelDerivedCommand({
|
|
256
|
+
command: deriveEdgeCommand(command, renderResources, snapLineWidth),
|
|
231
257
|
updateShadows: false,
|
|
232
258
|
updateBackFaceCulling: false,
|
|
233
259
|
updateCullFace: false,
|
|
@@ -235,6 +261,19 @@ function initialize(drawCommand) {
|
|
|
235
261
|
});
|
|
236
262
|
|
|
237
263
|
derivedCommands.push(drawCommand._edgeCommand);
|
|
264
|
+
derivedCommands.push(drawCommand._edgeSnapCommand);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
if (drawCommand._needsPlanarFillIdCommand) {
|
|
268
|
+
drawCommand._planarFillIdCommand = new ModelDerivedCommand({
|
|
269
|
+
command: derivePlanarFillIdCommand(command),
|
|
270
|
+
updateShadows: false,
|
|
271
|
+
updateBackFaceCulling: false,
|
|
272
|
+
updateCullFace: false,
|
|
273
|
+
updateDebugShowBoundingVolume: false,
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
derivedCommands.push(drawCommand._planarFillIdCommand);
|
|
238
277
|
}
|
|
239
278
|
}
|
|
240
279
|
|
|
@@ -584,14 +623,6 @@ ModelDrawCommand.prototype.pushCommands = function (frameState, result) {
|
|
|
584
623
|
|
|
585
624
|
pushCommand(result, this._originalCommand, use2D);
|
|
586
625
|
|
|
587
|
-
// Push edge commands after the original command
|
|
588
|
-
if (
|
|
589
|
-
this._needsEdgeCommands &&
|
|
590
|
-
this._model.edgeDisplayMode !== EdgeDisplayMode.SURFACES_ONLY
|
|
591
|
-
) {
|
|
592
|
-
pushCommand(result, this._edgeCommand, use2D);
|
|
593
|
-
}
|
|
594
|
-
|
|
595
626
|
return result;
|
|
596
627
|
};
|
|
597
628
|
|
|
@@ -636,15 +667,51 @@ ModelDrawCommand.prototype.pushEdgeCommands = function (frameState, result) {
|
|
|
636
667
|
return result;
|
|
637
668
|
}
|
|
638
669
|
|
|
639
|
-
|
|
640
|
-
|
|
670
|
+
const mode = this._model.edgeDisplayMode;
|
|
671
|
+
const passes = frameState.passes;
|
|
672
|
+
const use2D = shouldUse2DCommands(this, frameState);
|
|
673
|
+
|
|
674
|
+
if (passes.snap) {
|
|
675
|
+
// Snapping pass: route the 1 px snap variant directly into the bound
|
|
676
|
+
// snap framebuffer, regardless of display mode -- snapping works even
|
|
677
|
+
// when edges are visually suppressed (SURFACES_ONLY).
|
|
678
|
+
const edgeCommand = this._edgeSnapCommand;
|
|
679
|
+
edgeCommand.command.pass = Pass.CESIUM_3D_TILE_EDGES_DIRECT;
|
|
680
|
+
if (defined(edgeCommand.derivedCommand2D)) {
|
|
681
|
+
edgeCommand.derivedCommand2D.command.pass =
|
|
682
|
+
Pass.CESIUM_3D_TILE_EDGES_DIRECT;
|
|
683
|
+
}
|
|
684
|
+
pushCommand(result, edgeCommand, use2D);
|
|
685
|
+
return result;
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
if (passes.pick) {
|
|
689
|
+
// Plain pick pass: edges contribute nothing to the RGBA8 pick
|
|
690
|
+
// framebuffer except in EDGES_ONLY mode, where they are the only
|
|
691
|
+
// pickable geometry (pushCommands skips the surface command).
|
|
692
|
+
if (mode !== EdgeDisplayMode.EDGES_ONLY) {
|
|
693
|
+
return result;
|
|
694
|
+
}
|
|
695
|
+
const edgeCommand = this._edgeCommand;
|
|
696
|
+
edgeCommand.command.pass = Pass.CESIUM_3D_TILE_EDGES_DIRECT;
|
|
697
|
+
if (defined(edgeCommand.derivedCommand2D)) {
|
|
698
|
+
edgeCommand.derivedCommand2D.command.pass =
|
|
699
|
+
Pass.CESIUM_3D_TILE_EDGES_DIRECT;
|
|
700
|
+
}
|
|
701
|
+
pushCommand(result, edgeCommand, use2D);
|
|
641
702
|
return result;
|
|
642
703
|
}
|
|
643
704
|
|
|
644
|
-
//
|
|
645
|
-
|
|
705
|
+
// Color pass. SURFACES_ONLY mode suppresses all edge rendering.
|
|
706
|
+
if (mode === EdgeDisplayMode.SURFACES_ONLY) {
|
|
707
|
+
return result;
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
// Use direct pass (renders to currently bound framebuffer) when EDGES_ONLY
|
|
711
|
+
// mode is enabled, otherwise use MRT pass (renders to edge framebuffer for
|
|
712
|
+
// compositing).
|
|
646
713
|
const edgePass =
|
|
647
|
-
|
|
714
|
+
mode === EdgeDisplayMode.EDGES_ONLY
|
|
648
715
|
? Pass.CESIUM_3D_TILE_EDGES_DIRECT
|
|
649
716
|
: Pass.CESIUM_3D_TILE_EDGES;
|
|
650
717
|
|
|
@@ -653,12 +720,34 @@ ModelDrawCommand.prototype.pushEdgeCommands = function (frameState, result) {
|
|
|
653
720
|
this._edgeCommand.derivedCommand2D.command.pass = edgePass;
|
|
654
721
|
}
|
|
655
722
|
|
|
656
|
-
const use2D = shouldUse2DCommands(this, frameState);
|
|
657
723
|
pushCommand(result, this._edgeCommand, use2D);
|
|
658
724
|
|
|
659
725
|
return result;
|
|
660
726
|
};
|
|
661
727
|
|
|
728
|
+
/**
|
|
729
|
+
* Push the planar fill feature-ID pre-pass command (if any).
|
|
730
|
+
*
|
|
731
|
+
* @param {FrameState} frameState The frame state.
|
|
732
|
+
* @param {DrawCommand[]} result The draw commands to push to.
|
|
733
|
+
* @returns {DrawCommand[]} The modified command list.
|
|
734
|
+
*
|
|
735
|
+
* @private
|
|
736
|
+
*/
|
|
737
|
+
ModelDrawCommand.prototype.pushPlanarFillIdCommands = function (
|
|
738
|
+
frameState,
|
|
739
|
+
result,
|
|
740
|
+
) {
|
|
741
|
+
if (!defined(this._planarFillIdCommand)) {
|
|
742
|
+
return result;
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
const use2D = shouldUse2DCommands(this, frameState);
|
|
746
|
+
pushCommand(result, this._planarFillIdCommand, use2D);
|
|
747
|
+
|
|
748
|
+
return result;
|
|
749
|
+
};
|
|
750
|
+
|
|
662
751
|
function pushCommand(commandList, derivedCommand, use2D) {
|
|
663
752
|
commandList.push(derivedCommand.command);
|
|
664
753
|
if (use2D) {
|
|
@@ -718,6 +807,8 @@ function derive2DCommands(drawCommand) {
|
|
|
718
807
|
derive2DCommand(drawCommand, drawCommand._silhouetteModelCommand);
|
|
719
808
|
derive2DCommand(drawCommand, drawCommand._silhouetteColorCommand);
|
|
720
809
|
derive2DCommand(drawCommand, drawCommand._edgeCommand);
|
|
810
|
+
derive2DCommand(drawCommand, drawCommand._edgeSnapCommand);
|
|
811
|
+
derive2DCommand(drawCommand, drawCommand._planarFillIdCommand);
|
|
721
812
|
}
|
|
722
813
|
|
|
723
814
|
function deriveTranslucentCommand(command) {
|
|
@@ -826,7 +917,13 @@ function deriveSilhouetteColorCommand(command, model) {
|
|
|
826
917
|
return silhouetteColorCommand;
|
|
827
918
|
}
|
|
828
919
|
|
|
829
|
-
|
|
920
|
+
// Builds an edge draw command at the given screen-space line width.
|
|
921
|
+
//
|
|
922
|
+
// Two variants are derived per primitive (one for the color pass and one
|
|
923
|
+
// for the snapping pass). Therefore, the visual line width and the snap-pass line
|
|
924
|
+
// width can be set independently. The snap variant is pinned at 1 px to
|
|
925
|
+
// avoid snap wiggle (see initialize). In practice both default to 1 px.
|
|
926
|
+
function deriveEdgeCommand(command, renderResources, lineWidth) {
|
|
830
927
|
const edgeGeometry = renderResources.edgeGeometry;
|
|
831
928
|
const edgeCommand = DrawCommand.shallowClone(command);
|
|
832
929
|
|
|
@@ -848,6 +945,12 @@ function deriveEdgeCommand(command, renderResources) {
|
|
|
848
945
|
uniformMap.u_isEdgePass = function () {
|
|
849
946
|
return true; // This is the edge pass
|
|
850
947
|
};
|
|
948
|
+
|
|
949
|
+
// Set line width uniform for quad-based edge rendering
|
|
950
|
+
uniformMap.u_lineWidth = function () {
|
|
951
|
+
return lineWidth;
|
|
952
|
+
};
|
|
953
|
+
|
|
851
954
|
edgeCommand.uniformMap = uniformMap;
|
|
852
955
|
edgeCommand.castShadows = false;
|
|
853
956
|
edgeCommand.receiveShadows = false;
|
|
@@ -855,6 +958,47 @@ function deriveEdgeCommand(command, renderResources) {
|
|
|
855
958
|
return edgeCommand;
|
|
856
959
|
}
|
|
857
960
|
|
|
961
|
+
/**
|
|
962
|
+
* Derive a command for the planar fill feature-ID pre-pass.
|
|
963
|
+
*
|
|
964
|
+
* This command uses the same geometry as the original but writes only a
|
|
965
|
+
* feature-ID value to the color attachment (no lighting, no material).
|
|
966
|
+
* The fragment shader outputs <code>vec4(featureId, 0, 0, 1)</code>
|
|
967
|
+
* via the <code>PLANAR_FILL_ID_PASS</code> define.
|
|
968
|
+
*
|
|
969
|
+
* No polygon offset is applied: the pre-pass uses the natural depth of the
|
|
970
|
+
* non-behind planar fill geometry (same program as the main command minus
|
|
971
|
+
* the POLYGON_OFFSET path that would shift it).
|
|
972
|
+
*
|
|
973
|
+
* Like the other derived commands (translucent, silhouette, edge, etc.),
|
|
974
|
+
* this is called once per draw command from <code>initialize</code> when the
|
|
975
|
+
* ModelDrawCommand is constructed — not per frame.
|
|
976
|
+
*
|
|
977
|
+
* @param {DrawCommand} command The original draw command.
|
|
978
|
+
* @returns {DrawCommand} The derived command for the feature-ID pass.
|
|
979
|
+
* @private
|
|
980
|
+
*/
|
|
981
|
+
function derivePlanarFillIdCommand(command) {
|
|
982
|
+
const derived = DrawCommand.shallowClone(command);
|
|
983
|
+
derived.pass = Pass.CESIUM_3D_TILE_PLANAR_FILL_ID;
|
|
984
|
+
derived.castShadows = false;
|
|
985
|
+
derived.receiveShadows = false;
|
|
986
|
+
|
|
987
|
+
// Use the same render state but disable blending.
|
|
988
|
+
const rs = clone(command.renderState, true);
|
|
989
|
+
rs.blending.enabled = false;
|
|
990
|
+
derived.renderState = RenderState.fromCache(rs);
|
|
991
|
+
|
|
992
|
+
// Override uniformMap to set u_isPlanarFillIdPass to true for the pre-pass
|
|
993
|
+
const uniformMap = clone(command.uniformMap);
|
|
994
|
+
uniformMap.u_isPlanarFillIdPass = function () {
|
|
995
|
+
return true;
|
|
996
|
+
};
|
|
997
|
+
derived.uniformMap = uniformMap;
|
|
998
|
+
|
|
999
|
+
return derived;
|
|
1000
|
+
}
|
|
1001
|
+
|
|
858
1002
|
function updateSkipLodStencilCommand(drawCommand, tile, use2D) {
|
|
859
1003
|
const stencilDerivedComand = drawCommand._skipLodStencilCommand;
|
|
860
1004
|
const stencilCommand = stencilDerivedComand.command;
|
|
@@ -169,6 +169,9 @@ function buildDrawCommandForModel(
|
|
|
169
169
|
const pickId = hasClassification
|
|
170
170
|
? undefined
|
|
171
171
|
: primitiveRenderResources.pickId;
|
|
172
|
+
const snapId = hasClassification
|
|
173
|
+
? undefined
|
|
174
|
+
: primitiveRenderResources.snapId;
|
|
172
175
|
|
|
173
176
|
const command = new DrawCommand({
|
|
174
177
|
boundingVolume: boundingSphere,
|
|
@@ -182,6 +185,7 @@ function buildDrawCommandForModel(
|
|
|
182
185
|
count: primitiveRenderResources.count,
|
|
183
186
|
owner: model,
|
|
184
187
|
pickId: pickId,
|
|
188
|
+
snapId: snapId,
|
|
185
189
|
pickMetadataAllowed: true,
|
|
186
190
|
instanceCount: primitiveRenderResources.instanceCount,
|
|
187
191
|
primitiveType: primitiveRenderResources.primitiveType,
|