deeptwins-cesium-engine 0.0.3
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 +640 -0
- package/Build/Workers/chunk-2363JE27.js +163 -0
- package/Build/Workers/chunk-23T2IPHV.js +55 -0
- package/Build/Workers/chunk-27SAH2Q2.js +55 -0
- package/Build/Workers/chunk-2AM4E2WD.js +101 -0
- package/Build/Workers/chunk-2H4D4HBM.js +101 -0
- package/Build/Workers/chunk-2KBLMCYQ.js +198 -0
- package/Build/Workers/chunk-2MWF4IES.js +398 -0
- package/Build/Workers/chunk-2O7PRNCW.js +288 -0
- package/Build/Workers/chunk-2RCIRXNI.js +75 -0
- package/Build/Workers/chunk-3JIEAYRM.js +940 -0
- package/Build/Workers/chunk-3VNQVXD6.js +837 -0
- package/Build/Workers/chunk-3XR54LVR.js +75 -0
- package/Build/Workers/chunk-3YTMGEXW.js +1443 -0
- package/Build/Workers/chunk-3ZP3VA4L.js +171 -0
- package/Build/Workers/chunk-4AKOLNCZ.js +139 -0
- package/Build/Workers/chunk-4BHWJWS3.js +171 -0
- package/Build/Workers/chunk-4QSCEADX.js +1800 -0
- package/Build/Workers/chunk-4ZKQXB7T.js +1460 -0
- package/Build/Workers/chunk-4ZX6BO6C.js +476 -0
- package/Build/Workers/chunk-55NHNEI7.js +163 -0
- package/Build/Workers/chunk-5F3SUA6W.js +8366 -0
- package/Build/Workers/chunk-5FBLADWD.js +692 -0
- package/Build/Workers/chunk-5H7FXJTE.js +2719 -0
- package/Build/Workers/chunk-5JKH4AMT.js +58 -0
- package/Build/Workers/chunk-5MTUN2SE.js +642 -0
- package/Build/Workers/chunk-5PWCXSID.js +256 -0
- package/Build/Workers/chunk-5RL7XAZS.js +256 -0
- package/Build/Workers/chunk-5TZVQOFD.js +305 -0
- package/Build/Workers/chunk-67FTKXPJ.js +352 -0
- package/Build/Workers/chunk-6AIBN5NQ.js +1054 -0
- package/Build/Workers/chunk-6D6BOTSA.js +414 -0
- package/Build/Workers/chunk-6FGAWC5J.js +44 -0
- package/Build/Workers/chunk-6HKAPCSO.js +280 -0
- package/Build/Workers/chunk-6UJDVUJ4.js +8366 -0
- package/Build/Workers/chunk-73Q77JO7.js +138 -0
- package/Build/Workers/chunk-7A6QUBKY.js +58 -0
- package/Build/Workers/chunk-7APZZMCL.js +73 -0
- package/Build/Workers/chunk-7BHC3VOI.js +511 -0
- package/Build/Workers/chunk-7GQHESFY.js +368 -0
- package/Build/Workers/chunk-7MVC3OLP.js +58 -0
- package/Build/Workers/chunk-7UNMLR74.js +1800 -0
- package/Build/Workers/chunk-A2QTGP5S.js +55 -0
- package/Build/Workers/chunk-A3FZIBXG.js +55 -0
- package/Build/Workers/chunk-A53R2F2L.js +305 -0
- package/Build/Workers/chunk-A6LIUE7X.js +692 -0
- package/Build/Workers/chunk-A6YFUGJO.js +139 -0
- package/Build/Workers/chunk-AJYWXC6I.js +97 -0
- package/Build/Workers/chunk-ALTIGQTT.js +288 -0
- package/Build/Workers/chunk-AOIO5VUS.js +8366 -0
- package/Build/Workers/chunk-AT2CG6PG.js +3514 -0
- package/Build/Workers/chunk-ATX74V7S.js +55 -0
- package/Build/Workers/chunk-AZPXT6RB.js +1067 -0
- package/Build/Workers/chunk-B7JRBTT6.js +682 -0
- package/Build/Workers/chunk-BALMTCKJ.js +138 -0
- package/Build/Workers/chunk-BBYRID6W.js +352 -0
- package/Build/Workers/chunk-BDX4AYXL.js +162 -0
- package/Build/Workers/chunk-BG2DK4Q5.js +101 -0
- package/Build/Workers/chunk-BSNC3NBZ.js +139 -0
- package/Build/Workers/chunk-BZLYQCIC.js +958 -0
- package/Build/Workers/chunk-C4NX77B5.js +57 -0
- package/Build/Workers/chunk-CHNDJRYA.js +1054 -0
- package/Build/Workers/chunk-CJOV55CW.js +1067 -0
- package/Build/Workers/chunk-COGPE5Z2.js +241 -0
- package/Build/Workers/chunk-CRCK5VX6.js +497 -0
- package/Build/Workers/chunk-CTLQNSVP.js +455 -0
- package/Build/Workers/chunk-CW7W27IZ.js +299 -0
- package/Build/Workers/chunk-DICY26ID.js +2719 -0
- package/Build/Workers/chunk-DLAVWLZW.js +682 -0
- package/Build/Workers/chunk-DMEFNTUV.js +1317 -0
- package/Build/Workers/chunk-DQSJEOZY.js +55 -0
- package/Build/Workers/chunk-F6UXXCPK.js +3514 -0
- package/Build/Workers/chunk-FKIR6F3B.js +97 -0
- package/Build/Workers/chunk-FRBZJJVU.js +2719 -0
- package/Build/Workers/chunk-FRLH26PM.js +940 -0
- package/Build/Workers/chunk-FT6HYEKU.js +3514 -0
- package/Build/Workers/chunk-FYDCQ2VN.js +73 -0
- package/Build/Workers/chunk-G5OKIL5P.js +55 -0
- package/Build/Workers/chunk-G6VHLVWG.js +101 -0
- package/Build/Workers/chunk-GBGV4U6Z.js +219 -0
- package/Build/Workers/chunk-GDU4RZSZ.js +940 -0
- package/Build/Workers/chunk-GJRVCSXV.js +37 -0
- package/Build/Workers/chunk-GKWOUMYA.js +37 -0
- package/Build/Workers/chunk-GNDFFW5Z.js +1443 -0
- package/Build/Workers/chunk-GNQ5BH75.js +352 -0
- package/Build/Workers/chunk-GNQUZV4R.js +171 -0
- package/Build/Workers/chunk-GOCJHCLA.js +352 -0
- package/Build/Workers/chunk-GTY4K4IA.js +219 -0
- package/Build/Workers/chunk-GXBTJBHN.js +102 -0
- package/Build/Workers/chunk-H6Q7E4BQ.js +114 -0
- package/Build/Workers/chunk-HEGESGGY.js +219 -0
- package/Build/Workers/chunk-HG3HIMYL.js +241 -0
- package/Build/Workers/chunk-HGEYVFMI.js +1800 -0
- package/Build/Workers/chunk-HHGOFZVQ.js +124 -0
- package/Build/Workers/chunk-HXEVICMT.js +37 -0
- package/Build/Workers/chunk-HXKUEOOD.js +352 -0
- package/Build/Workers/chunk-I4REFVXB.js +256 -0
- package/Build/Workers/chunk-IL5F6WEE.js +497 -0
- package/Build/Workers/chunk-IOODZNYE.js +629 -0
- package/Build/Workers/chunk-IVLDVV5R.js +788 -0
- package/Build/Workers/chunk-IWP4XCPO.js +778 -0
- package/Build/Workers/chunk-JBTUZNI2.js +398 -0
- package/Build/Workers/chunk-JMSXZ6AI.js +414 -0
- package/Build/Workers/chunk-JTGVXCP2.js +2058 -0
- package/Build/Workers/chunk-JUK2ZSWT.js +198 -0
- package/Build/Workers/chunk-K6HQ5W6R.js +171 -0
- package/Build/Workers/chunk-KC3G7WHZ.js +57 -0
- package/Build/Workers/chunk-KGPKBCGY.js +97 -0
- package/Build/Workers/chunk-KKGD7HAW.js +414 -0
- package/Build/Workers/chunk-KQSN3QZM.js +368 -0
- package/Build/Workers/chunk-KROSQJUA.js +44 -0
- package/Build/Workers/chunk-L4JLDVCM.js +57 -0
- package/Build/Workers/chunk-LAOFDSKL.js +642 -0
- package/Build/Workers/chunk-LIYMRHGR.js +387 -0
- package/Build/Workers/chunk-LKCCQ3AW.js +198 -0
- package/Build/Workers/chunk-LLQFSX7U.js +139 -0
- package/Build/Workers/chunk-LSDXP6EX.js +75 -0
- package/Build/Workers/chunk-LTYK7VYQ.js +138 -0
- package/Build/Workers/chunk-LYMP3LWI.js +387 -0
- package/Build/Workers/chunk-M2WCZSU6.js +241 -0
- package/Build/Workers/chunk-M35VLUHY.js +352 -0
- package/Build/Workers/chunk-MAPGTIYK.js +2058 -0
- package/Build/Workers/chunk-MG6SYM3V.js +455 -0
- package/Build/Workers/chunk-MKMZHRB3.js +788 -0
- package/Build/Workers/chunk-MNR7L6SQ.js +1483 -0
- package/Build/Workers/chunk-MO25ZQ2I.js +958 -0
- package/Build/Workers/chunk-MOCL5YUJ.js +8366 -0
- package/Build/Workers/chunk-MRYY6ETH.js +280 -0
- package/Build/Workers/chunk-NAIA5L2S.js +682 -0
- package/Build/Workers/chunk-NMDV3OGH.js +958 -0
- package/Build/Workers/chunk-NYE77VTA.js +1054 -0
- package/Build/Workers/chunk-O6RZEKHZ.js +778 -0
- package/Build/Workers/chunk-OFOJ5HD6.js +1460 -0
- package/Build/Workers/chunk-OJNNQSZI.js +788 -0
- package/Build/Workers/chunk-OJXQBSG4.js +692 -0
- package/Build/Workers/chunk-OOCGX2OD.js +102 -0
- package/Build/Workers/chunk-OOY3DP7Z.js +788 -0
- package/Build/Workers/chunk-OSDDHXLU.js +1483 -0
- package/Build/Workers/chunk-OVZNLF46.js +241 -0
- package/Build/Workers/chunk-OXFU5HNU.js +162 -0
- package/Build/Workers/chunk-P5CGIJUY.js +73 -0
- package/Build/Workers/chunk-POLLOX2O.js +352 -0
- package/Build/Workers/chunk-POUR54ZW.js +37 -0
- package/Build/Workers/chunk-PR6F33M6.js +682 -0
- package/Build/Workers/chunk-Q6GCDF2J.js +44 -0
- package/Build/Workers/chunk-Q7HIBRGE.js +97 -0
- package/Build/Workers/chunk-QCJPQ5CQ.js +57 -0
- package/Build/Workers/chunk-QDKQNKG3.js +256 -0
- package/Build/Workers/chunk-QDTDTLQY.js +1067 -0
- package/Build/Workers/chunk-QEANVUGT.js +163 -0
- package/Build/Workers/chunk-QFBCIX7J.js +455 -0
- package/Build/Workers/chunk-QIKGPNLN.js +299 -0
- package/Build/Workers/chunk-QTKDUHWH.js +497 -0
- package/Build/Workers/chunk-QUAH3XOT.js +138 -0
- package/Build/Workers/chunk-R4MI537H.js +1443 -0
- package/Build/Workers/chunk-R5GL5C3T.js +1483 -0
- package/Build/Workers/chunk-RBAGNNPN.js +219 -0
- package/Build/Workers/chunk-RH6GMTSG.js +497 -0
- package/Build/Workers/chunk-RHJJWKSH.js +73 -0
- package/Build/Workers/chunk-RHV6AHJW.js +305 -0
- package/Build/Workers/chunk-RUZPDKUX.js +114 -0
- package/Build/Workers/chunk-RXZDTDIY.js +439 -0
- package/Build/Workers/chunk-SCSEVBY4.js +102 -0
- package/Build/Workers/chunk-SKMYTWWS.js +299 -0
- package/Build/Workers/chunk-SKVAQOZZ.js +1443 -0
- package/Build/Workers/chunk-SPA2KPH3.js +368 -0
- package/Build/Workers/chunk-STDNU6SV.js +1460 -0
- package/Build/Workers/chunk-SXOBEELD.js +55 -0
- package/Build/Workers/chunk-SYDXDJY5.js +2058 -0
- package/Build/Workers/chunk-SZ4ALZDU.js +305 -0
- package/Build/Workers/chunk-T2AGEECA.js +387 -0
- package/Build/Workers/chunk-T5ZG4SFF.js +1067 -0
- package/Build/Workers/chunk-TDSVSW5A.js +1460 -0
- package/Build/Workers/chunk-TJF36YYN.js +837 -0
- package/Build/Workers/chunk-TNZHNGKK.js +439 -0
- package/Build/Workers/chunk-TTWIV2BN.js +102 -0
- package/Build/Workers/chunk-TX3TQPIA.js +44 -0
- package/Build/Workers/chunk-TYPTCQPI.js +1317 -0
- package/Build/Workers/chunk-TZA4ZWFC.js +75 -0
- package/Build/Workers/chunk-UFDTAQBE.js +476 -0
- package/Build/Workers/chunk-UG2DPFOL.js +352 -0
- package/Build/Workers/chunk-UG3AH5C3.js +629 -0
- package/Build/Workers/chunk-UPPGWBJU.js +511 -0
- package/Build/Workers/chunk-URGEDZBS.js +476 -0
- package/Build/Workers/chunk-V35NQOJC.js +642 -0
- package/Build/Workers/chunk-VDNDTTCD.js +958 -0
- package/Build/Workers/chunk-VQIKTYAO.js +368 -0
- package/Build/Workers/chunk-VRXHACYU.js +476 -0
- package/Build/Workers/chunk-VTYZVS6I.js +455 -0
- package/Build/Workers/chunk-VVNCCJGH.js +398 -0
- package/Build/Workers/chunk-W4V3BNFU.js +114 -0
- package/Build/Workers/chunk-W4XUEDU5.js +2058 -0
- package/Build/Workers/chunk-W7UYJE5O.js +2719 -0
- package/Build/Workers/chunk-WB4TSSBQ.js +3514 -0
- package/Build/Workers/chunk-WGZVYW2C.js +124 -0
- package/Build/Workers/chunk-WNFIOIKE.js +414 -0
- package/Build/Workers/chunk-WNHOCO2K.js +280 -0
- package/Build/Workers/chunk-WQG2W2WD.js +837 -0
- package/Build/Workers/chunk-WTLYD4FE.js +1483 -0
- package/Build/Workers/chunk-WV2G6UNC.js +940 -0
- package/Build/Workers/chunk-WVC3OW5V.js +629 -0
- package/Build/Workers/chunk-WWQFFOV6.js +299 -0
- package/Build/Workers/chunk-XD7QHRAY.js +288 -0
- package/Build/Workers/chunk-XH6GW5M4.js +58 -0
- package/Build/Workers/chunk-XIX2VR7Z.js +778 -0
- package/Build/Workers/chunk-XJYSONL4.js +1054 -0
- package/Build/Workers/chunk-XP6ASNFM.js +1317 -0
- package/Build/Workers/chunk-XRDMBCX3.js +439 -0
- package/Build/Workers/chunk-XUA6BCV5.js +642 -0
- package/Build/Workers/chunk-XVBMYEYQ.js +124 -0
- package/Build/Workers/chunk-XWOAVRWZ.js +124 -0
- package/Build/Workers/chunk-Y4ALZ4SS.js +198 -0
- package/Build/Workers/chunk-Y4GOZA56.js +163 -0
- package/Build/Workers/chunk-YF2NVO5B.js +837 -0
- package/Build/Workers/chunk-YGVXG7IR.js +114 -0
- package/Build/Workers/chunk-YI7RTZGC.js +280 -0
- package/Build/Workers/chunk-YM4UTBTX.js +1800 -0
- package/Build/Workers/chunk-YP5ZF2MJ.js +162 -0
- package/Build/Workers/chunk-YSSL4KKM.js +387 -0
- package/Build/Workers/chunk-YSYSXSHF.js +629 -0
- package/Build/Workers/chunk-YX562XOB.js +692 -0
- package/Build/Workers/chunk-YZWA5B4R.js +511 -0
- package/Build/Workers/chunk-Z6DFT4D3.js +288 -0
- package/Build/Workers/chunk-Z6PVZUIE.js +398 -0
- package/Build/Workers/chunk-ZAI6LCSI.js +511 -0
- package/Build/Workers/chunk-ZBIINVUF.js +778 -0
- package/Build/Workers/chunk-ZG3TBDRX.js +1317 -0
- package/Build/Workers/chunk-ZGXHZJ75.js +439 -0
- package/Build/Workers/chunk-ZWDOE2JF.js +162 -0
- package/Build/Workers/combineGeometry.js +66 -0
- package/Build/Workers/createBoxGeometry.js +58 -0
- package/Build/Workers/createBoxOutlineGeometry.js +231 -0
- package/Build/Workers/createCircleGeometry.js +201 -0
- package/Build/Workers/createCircleOutlineGeometry.js +147 -0
- package/Build/Workers/createCoplanarPolygonGeometry.js +505 -0
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +225 -0
- package/Build/Workers/createCorridorGeometry.js +1258 -0
- package/Build/Workers/createCorridorOutlineGeometry.js +563 -0
- package/Build/Workers/createCylinderGeometry.js +60 -0
- package/Build/Workers/createCylinderOutlineGeometry.js +231 -0
- package/Build/Workers/createEllipseGeometry.js +72 -0
- package/Build/Workers/createEllipseOutlineGeometry.js +65 -0
- package/Build/Workers/createEllipsoidGeometry.js +59 -0
- package/Build/Workers/createEllipsoidOutlineGeometry.js +61 -0
- package/Build/Workers/createFrustumGeometry.js +58 -0
- package/Build/Workers/createFrustumOutlineGeometry.js +234 -0
- package/Build/Workers/createGeometry.js +173 -0
- package/Build/Workers/createGroundPolylineGeometry.js +1602 -0
- package/Build/Workers/createPlaneGeometry.js +223 -0
- package/Build/Workers/createPlaneOutlineGeometry.js +124 -0
- package/Build/Workers/createPolygonGeometry.js +1404 -0
- package/Build/Workers/createPolygonOutlineGeometry.js +532 -0
- package/Build/Workers/createPolylineGeometry.js +491 -0
- package/Build/Workers/createPolylineVolumeGeometry.js +374 -0
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +272 -0
- package/Build/Workers/createRectangleGeometry.js +1264 -0
- package/Build/Workers/createRectangleOutlineGeometry.js +476 -0
- package/Build/Workers/createSimplePolylineGeometry.js +397 -0
- package/Build/Workers/createSphereGeometry.js +116 -0
- package/Build/Workers/createSphereOutlineGeometry.js +116 -0
- package/Build/Workers/createTaskProcessorWorker.js +32 -0
- package/Build/Workers/createVectorTileClampedPolylines.js +492 -0
- package/Build/Workers/createVectorTileGeometries.js +387 -0
- package/Build/Workers/createVectorTilePoints.js +114 -0
- package/Build/Workers/createVectorTilePolygons.js +386 -0
- package/Build/Workers/createVectorTilePolylines.js +262 -0
- package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +91 -0
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +565 -0
- package/Build/Workers/createVerticesFromHeightmap.js +2254 -0
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +499 -0
- package/Build/Workers/createWallGeometry.js +487 -0
- package/Build/Workers/createWallOutlineGeometry.js +335 -0
- package/Build/Workers/decodeDraco.js +369 -0
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +2666 -0
- package/Build/Workers/decodeI3S.js +1339 -0
- package/Build/Workers/gaussianSplatSorter.js +62 -0
- package/Build/Workers/gaussianSplatTextureGenerator.js +68 -0
- package/Build/Workers/incrementallyBuildTerrainPicker.js +121 -0
- package/Build/Workers/transcodeKTX2.js +3463 -0
- package/Build/Workers/transferTypedArrayTest.js +41 -0
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +820 -0
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +95 -0
- package/LICENSE.md +928 -0
- package/README.md +3 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_0.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_1.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_10.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_11.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_12.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_13.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_14.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_15.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_16.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_17.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_18.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_19.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_2.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_20.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_21.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_22.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_23.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_24.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_25.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_26.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_27.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_3.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_4.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_5.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_6.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_7.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_8.json +1 -0
- package/Source/Assets/IAU2006_XYS/IAU2006_XYS_9.json +1 -0
- package/Source/Assets/Images/bing_maps_credit.png +0 -0
- package/Source/Assets/Images/cesium_credit.png +0 -0
- package/Source/Assets/Images/google_earth_credit.png +0 -0
- package/Source/Assets/Images/ion-credit.png +0 -0
- package/Source/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
- package/Source/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
- package/Source/Assets/Textures/NaturalEarthII/tilemapresource.xml +14 -0
- package/Source/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
- package/Source/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
- package/Source/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
- package/Source/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
- package/Source/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
- package/Source/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
- package/Source/Assets/Textures/maki/airfield.png +0 -0
- package/Source/Assets/Textures/maki/airport.png +0 -0
- package/Source/Assets/Textures/maki/alcohol-shop.png +0 -0
- package/Source/Assets/Textures/maki/america-football.png +0 -0
- package/Source/Assets/Textures/maki/art-gallery.png +0 -0
- package/Source/Assets/Textures/maki/bakery.png +0 -0
- package/Source/Assets/Textures/maki/bank.png +0 -0
- package/Source/Assets/Textures/maki/bar.png +0 -0
- package/Source/Assets/Textures/maki/baseball.png +0 -0
- package/Source/Assets/Textures/maki/basketball.png +0 -0
- package/Source/Assets/Textures/maki/beer.png +0 -0
- package/Source/Assets/Textures/maki/bicycle.png +0 -0
- package/Source/Assets/Textures/maki/building.png +0 -0
- package/Source/Assets/Textures/maki/bus.png +0 -0
- package/Source/Assets/Textures/maki/cafe.png +0 -0
- package/Source/Assets/Textures/maki/camera.png +0 -0
- package/Source/Assets/Textures/maki/campsite.png +0 -0
- package/Source/Assets/Textures/maki/car.png +0 -0
- package/Source/Assets/Textures/maki/cemetery.png +0 -0
- package/Source/Assets/Textures/maki/cesium.png +0 -0
- package/Source/Assets/Textures/maki/chemist.png +0 -0
- package/Source/Assets/Textures/maki/cinema.png +0 -0
- package/Source/Assets/Textures/maki/circle-stroked.png +0 -0
- package/Source/Assets/Textures/maki/circle.png +0 -0
- package/Source/Assets/Textures/maki/city.png +0 -0
- package/Source/Assets/Textures/maki/clothing-store.png +0 -0
- package/Source/Assets/Textures/maki/college.png +0 -0
- package/Source/Assets/Textures/maki/commercial.png +0 -0
- package/Source/Assets/Textures/maki/cricket.png +0 -0
- package/Source/Assets/Textures/maki/cross.png +0 -0
- package/Source/Assets/Textures/maki/dam.png +0 -0
- package/Source/Assets/Textures/maki/danger.png +0 -0
- package/Source/Assets/Textures/maki/disability.png +0 -0
- package/Source/Assets/Textures/maki/dog-park.png +0 -0
- package/Source/Assets/Textures/maki/embassy.png +0 -0
- package/Source/Assets/Textures/maki/emergency-telephone.png +0 -0
- package/Source/Assets/Textures/maki/entrance.png +0 -0
- package/Source/Assets/Textures/maki/farm.png +0 -0
- package/Source/Assets/Textures/maki/fast-food.png +0 -0
- package/Source/Assets/Textures/maki/ferry.png +0 -0
- package/Source/Assets/Textures/maki/fire-station.png +0 -0
- package/Source/Assets/Textures/maki/fuel.png +0 -0
- package/Source/Assets/Textures/maki/garden.png +0 -0
- package/Source/Assets/Textures/maki/gift.png +0 -0
- package/Source/Assets/Textures/maki/golf.png +0 -0
- package/Source/Assets/Textures/maki/grocery.png +0 -0
- package/Source/Assets/Textures/maki/hairdresser.png +0 -0
- package/Source/Assets/Textures/maki/harbor.png +0 -0
- package/Source/Assets/Textures/maki/heart.png +0 -0
- package/Source/Assets/Textures/maki/heliport.png +0 -0
- package/Source/Assets/Textures/maki/hospital.png +0 -0
- package/Source/Assets/Textures/maki/ice-cream.png +0 -0
- package/Source/Assets/Textures/maki/industrial.png +0 -0
- package/Source/Assets/Textures/maki/land-use.png +0 -0
- package/Source/Assets/Textures/maki/laundry.png +0 -0
- package/Source/Assets/Textures/maki/library.png +0 -0
- package/Source/Assets/Textures/maki/lighthouse.png +0 -0
- package/Source/Assets/Textures/maki/lodging.png +0 -0
- package/Source/Assets/Textures/maki/logging.png +0 -0
- package/Source/Assets/Textures/maki/london-underground.png +0 -0
- package/Source/Assets/Textures/maki/marker-stroked.png +0 -0
- package/Source/Assets/Textures/maki/marker.png +0 -0
- package/Source/Assets/Textures/maki/minefield.png +0 -0
- package/Source/Assets/Textures/maki/mobilephone.png +0 -0
- package/Source/Assets/Textures/maki/monument.png +0 -0
- package/Source/Assets/Textures/maki/museum.png +0 -0
- package/Source/Assets/Textures/maki/music.png +0 -0
- package/Source/Assets/Textures/maki/oil-well.png +0 -0
- package/Source/Assets/Textures/maki/park.png +0 -0
- package/Source/Assets/Textures/maki/park2.png +0 -0
- package/Source/Assets/Textures/maki/parking-garage.png +0 -0
- package/Source/Assets/Textures/maki/parking.png +0 -0
- package/Source/Assets/Textures/maki/pharmacy.png +0 -0
- package/Source/Assets/Textures/maki/pitch.png +0 -0
- package/Source/Assets/Textures/maki/place-of-worship.png +0 -0
- package/Source/Assets/Textures/maki/playground.png +0 -0
- package/Source/Assets/Textures/maki/police.png +0 -0
- package/Source/Assets/Textures/maki/polling-place.png +0 -0
- package/Source/Assets/Textures/maki/post.png +0 -0
- package/Source/Assets/Textures/maki/prison.png +0 -0
- package/Source/Assets/Textures/maki/rail-above.png +0 -0
- package/Source/Assets/Textures/maki/rail-light.png +0 -0
- package/Source/Assets/Textures/maki/rail-metro.png +0 -0
- package/Source/Assets/Textures/maki/rail-underground.png +0 -0
- package/Source/Assets/Textures/maki/rail.png +0 -0
- package/Source/Assets/Textures/maki/religious-christian.png +0 -0
- package/Source/Assets/Textures/maki/religious-jewish.png +0 -0
- package/Source/Assets/Textures/maki/religious-muslim.png +0 -0
- package/Source/Assets/Textures/maki/restaurant.png +0 -0
- package/Source/Assets/Textures/maki/roadblock.png +0 -0
- package/Source/Assets/Textures/maki/rocket.png +0 -0
- package/Source/Assets/Textures/maki/school.png +0 -0
- package/Source/Assets/Textures/maki/scooter.png +0 -0
- package/Source/Assets/Textures/maki/shop.png +0 -0
- package/Source/Assets/Textures/maki/skiing.png +0 -0
- package/Source/Assets/Textures/maki/slaughterhouse.png +0 -0
- package/Source/Assets/Textures/maki/soccer.png +0 -0
- package/Source/Assets/Textures/maki/square-stroked.png +0 -0
- package/Source/Assets/Textures/maki/square.png +0 -0
- package/Source/Assets/Textures/maki/star-stroked.png +0 -0
- package/Source/Assets/Textures/maki/star.png +0 -0
- package/Source/Assets/Textures/maki/suitcase.png +0 -0
- package/Source/Assets/Textures/maki/swimming.png +0 -0
- package/Source/Assets/Textures/maki/telephone.png +0 -0
- package/Source/Assets/Textures/maki/tennis.png +0 -0
- package/Source/Assets/Textures/maki/theatre.png +0 -0
- package/Source/Assets/Textures/maki/toilets.png +0 -0
- package/Source/Assets/Textures/maki/town-hall.png +0 -0
- package/Source/Assets/Textures/maki/town.png +0 -0
- package/Source/Assets/Textures/maki/triangle-stroked.png +0 -0
- package/Source/Assets/Textures/maki/triangle.png +0 -0
- package/Source/Assets/Textures/maki/village.png +0 -0
- package/Source/Assets/Textures/maki/warehouse.png +0 -0
- package/Source/Assets/Textures/maki/waste-basket.png +0 -0
- package/Source/Assets/Textures/maki/water.png +0 -0
- package/Source/Assets/Textures/maki/wetland.png +0 -0
- package/Source/Assets/Textures/maki/zoo.png +0 -0
- package/Source/Assets/Textures/moonSmall.jpg +0 -0
- package/Source/Assets/Textures/pin.svg +1 -0
- package/Source/Assets/Textures/waterNormals.jpg +0 -0
- package/Source/Assets/Textures/waterNormalsSmall.jpg +0 -0
- package/Source/Assets/approximateTerrainHeights.json +1 -0
- package/Source/Core/ApproximateTerrainHeights.js +255 -0
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +755 -0
- package/Source/Core/ArcType.js +31 -0
- package/Source/Core/ArticulationStageType.js +23 -0
- package/Source/Core/AssociativeArray.js +127 -0
- package/Source/Core/AttributeCompression.js +527 -0
- package/Source/Core/AxisAlignedBoundingBox.js +294 -0
- package/Source/Core/BingMapsGeocoderService.js +127 -0
- package/Source/Core/BoundingRectangle.js +374 -0
- package/Source/Core/BoundingSphere.js +1506 -0
- package/Source/Core/BoxGeometry.js +893 -0
- package/Source/Core/BoxOutlineGeometry.js +312 -0
- package/Source/Core/Cartesian2.js +823 -0
- package/Source/Core/Cartesian3.js +1220 -0
- package/Source/Core/Cartesian4.js +979 -0
- package/Source/Core/Cartographic.js +304 -0
- package/Source/Core/CartographicGeocoderService.js +73 -0
- package/Source/Core/CatmullRomSpline.js +324 -0
- package/Source/Core/Cesium3DTilesTerrainData.js +932 -0
- package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +1868 -0
- package/Source/Core/Cesium3DTilesTerrainProvider.js +1052 -0
- package/Source/Core/CesiumTerrainProvider.js +1408 -0
- package/Source/Core/Check.d.ts +131 -0
- package/Source/Core/Check.js +212 -0
- package/Source/Core/CircleGeometry.js +207 -0
- package/Source/Core/CircleOutlineGeometry.js +149 -0
- package/Source/Core/Clock.js +316 -0
- package/Source/Core/ClockRange.js +39 -0
- package/Source/Core/ClockStep.js +38 -0
- package/Source/Core/Color.js +2283 -0
- package/Source/Core/ColorGeometryInstanceAttribute.js +181 -0
- package/Source/Core/ComponentDatatype.js +338 -0
- package/Source/Core/CompressedTextureBuffer.js +125 -0
- package/Source/Core/ConstantSpline.js +119 -0
- package/Source/Core/CoplanarPolygonGeometry.js +600 -0
- package/Source/Core/CoplanarPolygonGeometryLibrary.js +132 -0
- package/Source/Core/CoplanarPolygonOutlineGeometry.js +237 -0
- package/Source/Core/CornerType.js +37 -0
- package/Source/Core/CorridorGeometry.js +1411 -0
- package/Source/Core/CorridorGeometryLibrary.js +501 -0
- package/Source/Core/CorridorOutlineGeometry.js +599 -0
- package/Source/Core/Credit.js +172 -0
- package/Source/Core/CubicRealPolynomial.js +238 -0
- package/Source/Core/CullingVolume.js +216 -0
- package/Source/Core/CustomHeightmapTerrainProvider.js +287 -0
- package/Source/Core/CylinderGeometry.js +479 -0
- package/Source/Core/CylinderGeometryLibrary.js +59 -0
- package/Source/Core/CylinderOutlineGeometry.js +269 -0
- package/Source/Core/DefaultProxy.js +26 -0
- package/Source/Core/DeveloperError.js +75 -0
- package/Source/Core/DistanceDisplayCondition.js +171 -0
- package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +179 -0
- package/Source/Core/DoubleEndedPriorityQueue.js +405 -0
- package/Source/Core/DoublyLinkedList.js +112 -0
- package/Source/Core/EarthOrientationParameters.js +431 -0
- package/Source/Core/EarthOrientationParametersSample.js +52 -0
- package/Source/Core/EasingFunction.js +257 -0
- package/Source/Core/EllipseGeometry.js +1318 -0
- package/Source/Core/EllipseGeometryLibrary.js +365 -0
- package/Source/Core/EllipseOutlineGeometry.js +451 -0
- package/Source/Core/Ellipsoid.js +889 -0
- package/Source/Core/EllipsoidGeodesic.js +523 -0
- package/Source/Core/EllipsoidGeometry.js +650 -0
- package/Source/Core/EllipsoidOutlineGeometry.js +464 -0
- package/Source/Core/EllipsoidRhumbLine.js +751 -0
- package/Source/Core/EllipsoidTangentPlane.js +382 -0
- package/Source/Core/EllipsoidTerrainProvider.js +201 -0
- package/Source/Core/EllipsoidalOccluder.js +538 -0
- package/Source/Core/EncodedCartesian3.js +170 -0
- package/Source/Core/Event.js +205 -0
- package/Source/Core/EventHelper.js +74 -0
- package/Source/Core/ExtrapolationType.js +34 -0
- package/Source/Core/FeatureDetection.js +435 -0
- package/Source/Core/Frozen.js +24 -0
- package/Source/Core/FrustumGeometry.js +583 -0
- package/Source/Core/FrustumOutlineGeometry.js +253 -0
- package/Source/Core/Fullscreen.js +249 -0
- package/Source/Core/GeocodeType.js +24 -0
- package/Source/Core/GeocoderService.js +60 -0
- package/Source/Core/GeographicProjection.js +105 -0
- package/Source/Core/GeographicTilingScheme.js +245 -0
- package/Source/Core/Geometry.js +371 -0
- package/Source/Core/GeometryAttribute.js +133 -0
- package/Source/Core/GeometryAttributes.js +88 -0
- package/Source/Core/GeometryFactory.js +25 -0
- package/Source/Core/GeometryInstance.js +118 -0
- package/Source/Core/GeometryInstanceAttribute.js +133 -0
- package/Source/Core/GeometryOffsetAttribute.js +10 -0
- package/Source/Core/GeometryPipeline.js +3291 -0
- package/Source/Core/GeometryType.js +10 -0
- package/Source/Core/GoogleEarthEnterpriseMetadata.js +584 -0
- package/Source/Core/GoogleEarthEnterpriseTerrainData.js +606 -0
- package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +574 -0
- package/Source/Core/GoogleEarthEnterpriseTileInformation.js +136 -0
- package/Source/Core/GoogleGeocoderService.js +110 -0
- package/Source/Core/GoogleMaps.js +40 -0
- package/Source/Core/GregorianDate.js +153 -0
- package/Source/Core/GroundPolylineGeometry.js +1659 -0
- package/Source/Core/HeadingPitchRange.js +59 -0
- package/Source/Core/HeadingPitchRoll.js +235 -0
- package/Source/Core/Heap.js +233 -0
- package/Source/Core/HeightmapEncoding.js +25 -0
- package/Source/Core/HeightmapTerrainData.js +903 -0
- package/Source/Core/HeightmapTessellator.js +518 -0
- package/Source/Core/HermitePolynomialApproximation.js +341 -0
- package/Source/Core/HermiteSpline.js +620 -0
- package/Source/Core/HilbertOrder.js +112 -0
- package/Source/Core/ITwinPlatform.js +388 -0
- package/Source/Core/Iau2000Orientation.js +167 -0
- package/Source/Core/Iau2006XysData.js +275 -0
- package/Source/Core/Iau2006XysSample.js +32 -0
- package/Source/Core/IauOrientationAxes.js +105 -0
- package/Source/Core/IauOrientationParameters.js +54 -0
- package/Source/Core/IndexDatatype.js +199 -0
- package/Source/Core/InterpolationAlgorithm.js +65 -0
- package/Source/Core/InterpolationType.js +14 -0
- package/Source/Core/Intersect.js +34 -0
- package/Source/Core/IntersectionTests.js +1087 -0
- package/Source/Core/Intersections2D.js +358 -0
- package/Source/Core/Interval.js +23 -0
- package/Source/Core/Ion.js +56 -0
- package/Source/Core/IonGeocodeProviderType.js +33 -0
- package/Source/Core/IonGeocoderService.js +147 -0
- package/Source/Core/IonResource.js +321 -0
- package/Source/Core/Iso8601.js +54 -0
- package/Source/Core/JulianDate.js +1229 -0
- package/Source/Core/KTX2Transcoder.js +92 -0
- package/Source/Core/KeyboardEventModifier.js +32 -0
- package/Source/Core/LagrangePolynomialApproximation.js +71 -0
- package/Source/Core/LeapSecond.js +24 -0
- package/Source/Core/LinearApproximation.js +83 -0
- package/Source/Core/LinearSpline.js +166 -0
- package/Source/Core/ManagedArray.js +162 -0
- package/Source/Core/MapProjection.js +62 -0
- package/Source/Core/Math.js +1125 -0
- package/Source/Core/Matrix2.js +1092 -0
- package/Source/Core/Matrix3.js +1838 -0
- package/Source/Core/Matrix4.js +3233 -0
- package/Source/Core/MorphWeightSpline.js +161 -0
- package/Source/Core/MortonOrder.js +214 -0
- package/Source/Core/NearFarScalar.js +173 -0
- package/Source/Core/Occluder.js +727 -0
- package/Source/Core/OffsetGeometryInstanceAttribute.js +125 -0
- package/Source/Core/OpenCageGeocoderService.js +134 -0
- package/Source/Core/OrientedBoundingBox.js +1272 -0
- package/Source/Core/OrthographicFrustum.js +351 -0
- package/Source/Core/OrthographicOffCenterFrustum.js +463 -0
- package/Source/Core/Packable.js +40 -0
- package/Source/Core/PackableForInterpolation.js +43 -0
- package/Source/Core/PeliasGeocoderService.js +106 -0
- package/Source/Core/PerspectiveFrustum.js +459 -0
- package/Source/Core/PerspectiveOffCenterFrustum.js +522 -0
- package/Source/Core/PinBuilder.js +234 -0
- package/Source/Core/PixelFormat.js +603 -0
- package/Source/Core/Plane.js +312 -0
- package/Source/Core/PlaneGeometry.js +250 -0
- package/Source/Core/PlaneOutlineGeometry.js +113 -0
- package/Source/Core/PolygonGeometry.js +1580 -0
- package/Source/Core/PolygonGeometryLibrary.js +1301 -0
- package/Source/Core/PolygonHierarchy.js +25 -0
- package/Source/Core/PolygonOutlineGeometry.js +687 -0
- package/Source/Core/PolygonPipeline.js +632 -0
- package/Source/Core/PolylineGeometry.js +573 -0
- package/Source/Core/PolylinePipeline.js +573 -0
- package/Source/Core/PolylineVolumeGeometry.js +412 -0
- package/Source/Core/PolylineVolumeGeometryLibrary.js +701 -0
- package/Source/Core/PolylineVolumeOutlineGeometry.js +294 -0
- package/Source/Core/PrimitiveType.js +107 -0
- package/Source/Core/Proxy.js +24 -0
- package/Source/Core/QuadraticRealPolynomial.js +147 -0
- package/Source/Core/QuantizedMeshTerrainData.js +735 -0
- package/Source/Core/QuarticRealPolynomial.js +342 -0
- package/Source/Core/Quaternion.js +1145 -0
- package/Source/Core/QuaternionSpline.js +155 -0
- package/Source/Core/Queue.js +126 -0
- package/Source/Core/Ray.js +79 -0
- package/Source/Core/Rectangle.js +1071 -0
- package/Source/Core/RectangleCollisionChecker.js +95 -0
- package/Source/Core/RectangleGeometry.js +1480 -0
- package/Source/Core/RectangleGeometryLibrary.js +286 -0
- package/Source/Core/RectangleOutlineGeometry.js +532 -0
- package/Source/Core/ReferenceFrame.js +23 -0
- package/Source/Core/Request.js +193 -0
- package/Source/Core/RequestErrorEvent.js +58 -0
- package/Source/Core/RequestScheduler.js +519 -0
- package/Source/Core/RequestState.js +55 -0
- package/Source/Core/RequestType.js +39 -0
- package/Source/Core/Resource.js +2280 -0
- package/Source/Core/RuntimeError.js +65 -0
- package/Source/Core/S2Cell.js +734 -0
- package/Source/Core/ScreenSpaceEventHandler.js +1140 -0
- package/Source/Core/ScreenSpaceEventType.js +127 -0
- package/Source/Core/ShowGeometryInstanceAttribute.js +122 -0
- package/Source/Core/Simon1994PlanetaryPositions.js +684 -0
- package/Source/Core/SimplePolylineGeometry.js +454 -0
- package/Source/Core/SphereGeometry.js +117 -0
- package/Source/Core/SphereOutlineGeometry.js +119 -0
- package/Source/Core/Spherical.js +183 -0
- package/Source/Core/Spline.js +188 -0
- package/Source/Core/SteppedSpline.js +160 -0
- package/Source/Core/Stereographic.js +247 -0
- package/Source/Core/TaskProcessor.js +403 -0
- package/Source/Core/TerrainData.js +126 -0
- package/Source/Core/TerrainEncoding.js +772 -0
- package/Source/Core/TerrainMesh.js +361 -0
- package/Source/Core/TerrainPicker.js +607 -0
- package/Source/Core/TerrainProvider.js +585 -0
- package/Source/Core/TerrainQuantization.js +25 -0
- package/Source/Core/TexturePacker.js +181 -0
- package/Source/Core/TileAvailability.js +564 -0
- package/Source/Core/TileEdge.js +14 -0
- package/Source/Core/TileProviderError.js +170 -0
- package/Source/Core/TilingScheme.js +132 -0
- package/Source/Core/TimeConstants.js +83 -0
- package/Source/Core/TimeInterval.js +438 -0
- package/Source/Core/TimeIntervalCollection.js +1137 -0
- package/Source/Core/TimeStandard.js +30 -0
- package/Source/Core/Tipsify.js +314 -0
- package/Source/Core/TrackingReferenceFrame.js +45 -0
- package/Source/Core/Transforms.js +1277 -0
- package/Source/Core/TranslationRotationScale.js +57 -0
- package/Source/Core/TridiagonalSystemSolver.js +113 -0
- package/Source/Core/TrustedServers.js +146 -0
- package/Source/Core/VRTheWorldTerrainProvider.js +462 -0
- package/Source/Core/VertexFormat.js +311 -0
- package/Source/Core/VerticalExaggeration.js +70 -0
- package/Source/Core/VideoSynchronizer.js +222 -0
- package/Source/Core/Visibility.js +34 -0
- package/Source/Core/VulkanConstants.js +286 -0
- package/Source/Core/WallGeometry.js +623 -0
- package/Source/Core/WallGeometryLibrary.js +212 -0
- package/Source/Core/WallOutlineGeometry.js +431 -0
- package/Source/Core/WebGLConstants.js +614 -0
- package/Source/Core/WebMercatorProjection.js +152 -0
- package/Source/Core/WebMercatorTilingScheme.js +291 -0
- package/Source/Core/WindingOrder.js +36 -0
- package/Source/Core/WireframeIndexGenerator.js +238 -0
- package/Source/Core/addAllToArray.js +40 -0
- package/Source/Core/appendForwardSlash.js +10 -0
- package/Source/Core/arrayRemoveDuplicates.js +129 -0
- package/Source/Core/barycentricCoordinates.js +109 -0
- package/Source/Core/binarySearch.js +67 -0
- package/Source/Core/buildModuleUrl.js +153 -0
- package/Source/Core/clone.js +30 -0
- package/Source/Core/combine.js +79 -0
- package/Source/Core/createGuid.js +22 -0
- package/Source/Core/createWorldBathymetryAsync.js +45 -0
- package/Source/Core/createWorldTerrainAsync.js +50 -0
- package/Source/Core/decodeGoogleEarthEnterpriseData.js +93 -0
- package/Source/Core/decodeVectorPolylinePositions.js +51 -0
- package/Source/Core/defaultValue.js +29 -0
- package/Source/Core/defer.js +44 -0
- package/Source/Core/defined.d.ts +11 -0
- package/Source/Core/defined.js +17 -0
- package/Source/Core/deprecationWarning.js +53 -0
- package/Source/Core/destroyObject.js +53 -0
- package/Source/Core/formatError.js +30 -0
- package/Source/Core/getAbsoluteUri.js +46 -0
- package/Source/Core/getBaseUri.js +47 -0
- package/Source/Core/getExtensionFromUri.js +38 -0
- package/Source/Core/getFilenameFromUri.js +32 -0
- package/Source/Core/getImageFromTypedArray.js +24 -0
- package/Source/Core/getImagePixels.js +44 -0
- package/Source/Core/getJsonFromTypedArray.js +21 -0
- package/Source/Core/getMagic.js +14 -0
- package/Source/Core/getStringFromTypedArray.js +165 -0
- package/Source/Core/getTimestamp.js +26 -0
- package/Source/Core/isBitSet.js +7 -0
- package/Source/Core/isBlobUri.js +22 -0
- package/Source/Core/isCrossOriginUrl.js +30 -0
- package/Source/Core/isDataUri.js +22 -0
- package/Source/Core/isLeapYear.js +23 -0
- package/Source/Core/loadAndExecuteScript.js +27 -0
- package/Source/Core/loadImageFromTypedArray.js +66 -0
- package/Source/Core/loadKTX2.js +104 -0
- package/Source/Core/mergeSort.js +111 -0
- package/Source/Core/objectToQuery.js +57 -0
- package/Source/Core/oneTimeWarning.js +51 -0
- package/Source/Core/parseResponseHeaders.js +37 -0
- package/Source/Core/pointInsideTriangle.js +39 -0
- package/Source/Core/queryToObject.js +60 -0
- package/Source/Core/resizeImageToNextPowerOfTwo.js +31 -0
- package/Source/Core/sampleTerrain.js +291 -0
- package/Source/Core/sampleTerrainMostDetailed.js +132 -0
- package/Source/Core/scaleToGeodeticSurface.js +147 -0
- package/Source/Core/srgbToLinear.js +32 -0
- package/Source/Core/subdivideArray.js +35 -0
- package/Source/Core/webGLConstantToGlslType.js +25 -0
- package/Source/Core/wrapFunction.js +26 -0
- package/Source/Core/writeTextToCanvas.js +219 -0
- package/Source/DataSources/BillboardGraphics.js +419 -0
- package/Source/DataSources/BillboardVisualizer.js +351 -0
- package/Source/DataSources/BoundingSphereState.js +26 -0
- package/Source/DataSources/BoxGeometryUpdater.js +326 -0
- package/Source/DataSources/BoxGraphics.js +208 -0
- package/Source/DataSources/CallbackPositionProperty.js +172 -0
- package/Source/DataSources/CallbackProperty.js +117 -0
- package/Source/DataSources/Cesium3DTilesetGraphics.js +111 -0
- package/Source/DataSources/Cesium3DTilesetVisualizer.js +261 -0
- package/Source/DataSources/CheckerboardMaterialProperty.js +157 -0
- package/Source/DataSources/ColorMaterialProperty.js +112 -0
- package/Source/DataSources/CompositeEntityCollection.js +591 -0
- package/Source/DataSources/CompositeMaterialProperty.js +128 -0
- package/Source/DataSources/CompositePositionProperty.js +153 -0
- package/Source/DataSources/CompositeProperty.js +154 -0
- package/Source/DataSources/ConstantPositionProperty.js +151 -0
- package/Source/DataSources/ConstantProperty.js +116 -0
- package/Source/DataSources/CorridorGeometryUpdater.js +409 -0
- package/Source/DataSources/CorridorGraphics.js +316 -0
- package/Source/DataSources/CustomDataSource.js +173 -0
- package/Source/DataSources/CylinderGeometryUpdater.js +375 -0
- package/Source/DataSources/CylinderGraphics.js +258 -0
- package/Source/DataSources/CzmlDataSource.js +5142 -0
- package/Source/DataSources/DataSource.js +121 -0
- package/Source/DataSources/DataSourceClock.js +164 -0
- package/Source/DataSources/DataSourceCollection.js +335 -0
- package/Source/DataSources/DataSourceDisplay.js +543 -0
- package/Source/DataSources/DynamicGeometryBatch.js +56 -0
- package/Source/DataSources/DynamicGeometryUpdater.js +270 -0
- package/Source/DataSources/EllipseGeometryUpdater.js +434 -0
- package/Source/DataSources/EllipseGraphics.js +343 -0
- package/Source/DataSources/EllipsoidGeometryUpdater.js +710 -0
- package/Source/DataSources/EllipsoidGraphics.js +312 -0
- package/Source/DataSources/Entity.js +789 -0
- package/Source/DataSources/EntityCluster.js +1022 -0
- package/Source/DataSources/EntityCollection.js +439 -0
- package/Source/DataSources/EntityView.js +476 -0
- package/Source/DataSources/GeoJsonDataSource.js +1064 -0
- package/Source/DataSources/GeometryUpdater.js +538 -0
- package/Source/DataSources/GeometryUpdaterSet.js +114 -0
- package/Source/DataSources/GeometryVisualizer.js +549 -0
- package/Source/DataSources/GpxDataSource.js +1018 -0
- package/Source/DataSources/GridMaterialProperty.js +204 -0
- package/Source/DataSources/GroundGeometryUpdater.js +234 -0
- package/Source/DataSources/ImageMaterialProperty.js +173 -0
- package/Source/DataSources/KmlCamera.js +13 -0
- package/Source/DataSources/KmlDataSource.js +4249 -0
- package/Source/DataSources/KmlLookAt.js +12 -0
- package/Source/DataSources/KmlTour.js +165 -0
- package/Source/DataSources/KmlTourFlyTo.js +109 -0
- package/Source/DataSources/KmlTourWait.js +52 -0
- package/Source/DataSources/LabelGraphics.js +401 -0
- package/Source/DataSources/LabelVisualizer.js +359 -0
- package/Source/DataSources/MaterialProperty.js +111 -0
- package/Source/DataSources/ModelGraphics.js +456 -0
- package/Source/DataSources/ModelVisualizer.js +560 -0
- package/Source/DataSources/NodeTransformationProperty.js +150 -0
- package/Source/DataSources/PathGraphics.js +161 -0
- package/Source/DataSources/PathVisualizer.js +823 -0
- package/Source/DataSources/PlaneGeometryUpdater.js +385 -0
- package/Source/DataSources/PlaneGraphics.js +208 -0
- package/Source/DataSources/PointGraphics.js +223 -0
- package/Source/DataSources/PointVisualizer.js +438 -0
- package/Source/DataSources/PolygonGeometryUpdater.js +591 -0
- package/Source/DataSources/PolygonGraphics.js +383 -0
- package/Source/DataSources/PolylineArrowMaterialProperty.js +110 -0
- package/Source/DataSources/PolylineDashMaterialProperty.js +174 -0
- package/Source/DataSources/PolylineGeometryUpdater.js +878 -0
- package/Source/DataSources/PolylineGlowMaterialProperty.js +152 -0
- package/Source/DataSources/PolylineGraphics.js +241 -0
- package/Source/DataSources/PolylineOutlineMaterialProperty.js +158 -0
- package/Source/DataSources/PolylineVisualizer.js +409 -0
- package/Source/DataSources/PolylineVolumeGeometryUpdater.js +306 -0
- package/Source/DataSources/PolylineVolumeGraphics.js +235 -0
- package/Source/DataSources/PositionProperty.js +131 -0
- package/Source/DataSources/PositionPropertyArray.js +192 -0
- package/Source/DataSources/Property.js +137 -0
- package/Source/DataSources/PropertyArray.js +147 -0
- package/Source/DataSources/PropertyBag.js +275 -0
- package/Source/DataSources/RectangleGeometryUpdater.js +427 -0
- package/Source/DataSources/RectangleGraphics.js +317 -0
- package/Source/DataSources/ReferenceProperty.js +371 -0
- package/Source/DataSources/Rotation.js +155 -0
- package/Source/DataSources/SampledPositionProperty.js +330 -0
- package/Source/DataSources/SampledProperty.js +855 -0
- package/Source/DataSources/ScaledPositionProperty.js +103 -0
- package/Source/DataSources/StaticGeometryColorBatch.js +570 -0
- package/Source/DataSources/StaticGeometryPerMaterialBatch.js +488 -0
- package/Source/DataSources/StaticGroundGeometryColorBatch.js +394 -0
- package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +456 -0
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +434 -0
- package/Source/DataSources/StaticOutlineGeometryBatch.js +465 -0
- package/Source/DataSources/StripeMaterialProperty.js +193 -0
- package/Source/DataSources/StripeOrientation.js +19 -0
- package/Source/DataSources/TerrainOffsetProperty.js +243 -0
- package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +155 -0
- package/Source/DataSources/TimeIntervalCollectionProperty.js +136 -0
- package/Source/DataSources/VelocityOrientationProperty.js +158 -0
- package/Source/DataSources/VelocityVectorProperty.js +213 -0
- package/Source/DataSources/Visualizer.js +61 -0
- package/Source/DataSources/WallGeometryUpdater.js +275 -0
- package/Source/DataSources/WallGraphics.js +236 -0
- package/Source/DataSources/createMaterialPropertyDescriptor.js +35 -0
- package/Source/DataSources/createPropertyDescriptor.js +71 -0
- package/Source/DataSources/createRawPropertyDescriptor.js +13 -0
- package/Source/DataSources/exportKml.js +1517 -0
- package/Source/DataSources/getElement.js +26 -0
- package/Source/DataSources/heightReferenceOnEntityPropertyChanged.js +47 -0
- package/Source/Renderer/AutomaticUniforms.js +1857 -0
- package/Source/Renderer/Buffer.js +452 -0
- package/Source/Renderer/BufferUsage.js +21 -0
- package/Source/Renderer/ClearCommand.js +102 -0
- package/Source/Renderer/ComputeCommand.js +119 -0
- package/Source/Renderer/ComputeEngine.js +135 -0
- package/Source/Renderer/Context.js +1752 -0
- package/Source/Renderer/ContextLimits.js +299 -0
- package/Source/Renderer/CubeMap.js +686 -0
- package/Source/Renderer/CubeMapFace.js +415 -0
- package/Source/Renderer/DrawCommand.js +644 -0
- package/Source/Renderer/Framebuffer.js +447 -0
- package/Source/Renderer/FramebufferManager.js +489 -0
- package/Source/Renderer/MipmapHint.js +19 -0
- package/Source/Renderer/MultisampleFramebuffer.js +136 -0
- package/Source/Renderer/Pass.js +29 -0
- package/Source/Renderer/PassState.js +57 -0
- package/Source/Renderer/PixelDatatype.js +121 -0
- package/Source/Renderer/RenderState.js +967 -0
- package/Source/Renderer/Renderbuffer.js +105 -0
- package/Source/Renderer/RenderbufferFormat.js +42 -0
- package/Source/Renderer/Sampler.js +116 -0
- package/Source/Renderer/ShaderBuilder.js +597 -0
- package/Source/Renderer/ShaderCache.js +287 -0
- package/Source/Renderer/ShaderDestination.js +51 -0
- package/Source/Renderer/ShaderFunction.js +66 -0
- package/Source/Renderer/ShaderProgram.js +619 -0
- package/Source/Renderer/ShaderSource.js +524 -0
- package/Source/Renderer/ShaderStruct.js +55 -0
- package/Source/Renderer/SharedContext.js +186 -0
- package/Source/Renderer/Sync.js +104 -0
- package/Source/Renderer/Texture.js +1126 -0
- package/Source/Renderer/Texture3D.js +578 -0
- package/Source/Renderer/TextureAtlas.js +833 -0
- package/Source/Renderer/TextureCache.js +81 -0
- package/Source/Renderer/TextureMagnificationFilter.js +41 -0
- package/Source/Renderer/TextureMinificationFilter.js +94 -0
- package/Source/Renderer/TextureWrap.js +19 -0
- package/Source/Renderer/UniformState.js +1948 -0
- package/Source/Renderer/VertexArray.js +869 -0
- package/Source/Renderer/VertexArrayFacade.js +509 -0
- package/Source/Renderer/createUniform.js +422 -0
- package/Source/Renderer/createUniformArray.js +638 -0
- package/Source/Renderer/demodernizeShader.js +84 -0
- package/Source/Renderer/freezeRenderState.js +30 -0
- package/Source/Renderer/loadCubeMap.js +88 -0
- package/Source/Scene/AlphaMode.js +33 -0
- package/Source/Scene/Appearance.js +204 -0
- package/Source/Scene/ArcGisBaseMapType.js +12 -0
- package/Source/Scene/ArcGisMapServerImageryProvider.js +875 -0
- package/Source/Scene/ArcGisMapService.js +80 -0
- package/Source/Scene/Atmosphere.js +149 -0
- package/Source/Scene/AttributeType.js +200 -0
- package/Source/Scene/AutoExposure.js +386 -0
- package/Source/Scene/Axis.js +116 -0
- package/Source/Scene/Azure2DImageryProvider.js +393 -0
- package/Source/Scene/B3dmParser.js +173 -0
- package/Source/Scene/BatchTable.js +636 -0
- package/Source/Scene/BatchTableHierarchy.js +504 -0
- package/Source/Scene/BatchTexture.js +574 -0
- package/Source/Scene/Billboard.js +1601 -0
- package/Source/Scene/BillboardCollection.js +2396 -0
- package/Source/Scene/BillboardLoadState.js +44 -0
- package/Source/Scene/BillboardTexture.js +397 -0
- package/Source/Scene/BingMapsImageryProvider.js +769 -0
- package/Source/Scene/BingMapsStyle.js +93 -0
- package/Source/Scene/BlendEquation.js +53 -0
- package/Source/Scene/BlendFunction.js +129 -0
- package/Source/Scene/BlendOption.js +28 -0
- package/Source/Scene/BlendingState.js +73 -0
- package/Source/Scene/BoundingVolumeSemantics.js +169 -0
- package/Source/Scene/BoxEmitter.js +74 -0
- package/Source/Scene/BrdfLutGenerator.js +75 -0
- package/Source/Scene/BufferLoader.js +141 -0
- package/Source/Scene/Camera.js +3978 -0
- package/Source/Scene/CameraEventAggregator.js +619 -0
- package/Source/Scene/CameraEventType.js +47 -0
- package/Source/Scene/CameraFlightPath.js +576 -0
- package/Source/Scene/Cesium3DContentGroup.js +44 -0
- package/Source/Scene/Cesium3DTile.js +2475 -0
- package/Source/Scene/Cesium3DTileBatchTable.js +1132 -0
- package/Source/Scene/Cesium3DTileColorBlendMode.js +52 -0
- package/Source/Scene/Cesium3DTileContent.js +411 -0
- package/Source/Scene/Cesium3DTileContentFactory.js +118 -0
- package/Source/Scene/Cesium3DTileContentState.js +12 -0
- package/Source/Scene/Cesium3DTileContentType.js +179 -0
- package/Source/Scene/Cesium3DTileFeature.js +444 -0
- package/Source/Scene/Cesium3DTileFeatureTable.js +131 -0
- package/Source/Scene/Cesium3DTileOptimizationHint.js +13 -0
- package/Source/Scene/Cesium3DTileOptimizations.js +115 -0
- package/Source/Scene/Cesium3DTilePass.js +79 -0
- package/Source/Scene/Cesium3DTilePassState.js +52 -0
- package/Source/Scene/Cesium3DTilePointFeature.js +856 -0
- package/Source/Scene/Cesium3DTileRefine.js +29 -0
- package/Source/Scene/Cesium3DTileStyle.js +1475 -0
- package/Source/Scene/Cesium3DTileStyleEngine.js +78 -0
- package/Source/Scene/Cesium3DTilesVoxelProvider.js +760 -0
- package/Source/Scene/Cesium3DTileset.js +3932 -0
- package/Source/Scene/Cesium3DTilesetBaseTraversal.js +291 -0
- package/Source/Scene/Cesium3DTilesetCache.js +80 -0
- package/Source/Scene/Cesium3DTilesetHeatmap.js +165 -0
- package/Source/Scene/Cesium3DTilesetMetadata.js +199 -0
- package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +131 -0
- package/Source/Scene/Cesium3DTilesetSkipTraversal.js +420 -0
- package/Source/Scene/Cesium3DTilesetStatistics.js +195 -0
- package/Source/Scene/Cesium3DTilesetTraversal.js +323 -0
- package/Source/Scene/CircleEmitter.js +61 -0
- package/Source/Scene/ClassificationPrimitive.js +1387 -0
- package/Source/Scene/ClassificationType.js +35 -0
- package/Source/Scene/ClippingPlane.js +184 -0
- package/Source/Scene/ClippingPlaneCollection.js +764 -0
- package/Source/Scene/ClippingPolygon.js +300 -0
- package/Source/Scene/ClippingPolygonCollection.js +965 -0
- package/Source/Scene/CloudCollection.js +1041 -0
- package/Source/Scene/CloudType.js +33 -0
- package/Source/Scene/ColorBlendMode.js +33 -0
- package/Source/Scene/Composite3DTileContent.js +403 -0
- package/Source/Scene/ConditionsExpression.js +219 -0
- package/Source/Scene/ConeEmitter.js +61 -0
- package/Source/Scene/ContentMetadata.js +184 -0
- package/Source/Scene/CreditDisplay.js +654 -0
- package/Source/Scene/CullFace.js +33 -0
- package/Source/Scene/CumulusCloud.js +347 -0
- package/Source/Scene/DebugAppearance.js +266 -0
- package/Source/Scene/DebugCameraPrimitive.js +257 -0
- package/Source/Scene/DebugInspector.js +151 -0
- package/Source/Scene/DebugModelMatrixPrimitive.js +220 -0
- package/Source/Scene/DepthFunction.js +73 -0
- package/Source/Scene/DepthPlane.js +238 -0
- package/Source/Scene/DerivedCommand.js +708 -0
- package/Source/Scene/DeviceOrientationCameraController.js +120 -0
- package/Source/Scene/DirectionalLight.js +49 -0
- package/Source/Scene/DiscardEmptyTileImagePolicy.js +54 -0
- package/Source/Scene/DiscardMissingTileImagePolicy.js +148 -0
- package/Source/Scene/DracoLoader.js +99 -0
- package/Source/Scene/DynamicAtmosphereLightingType.js +56 -0
- package/Source/Scene/DynamicEnvironmentMapManager.js +1022 -0
- package/Source/Scene/EdgeFramebuffer.js +245 -0
- package/Source/Scene/EllipsoidPrimitive.js +496 -0
- package/Source/Scene/EllipsoidSurfaceAppearance.js +278 -0
- package/Source/Scene/Empty3DTileContent.js +164 -0
- package/Source/Scene/Expression.js +2233 -0
- package/Source/Scene/ExpressionNodeType.js +25 -0
- package/Source/Scene/Fog.js +166 -0
- package/Source/Scene/FrameRateMonitor.js +375 -0
- package/Source/Scene/FrameState.js +477 -0
- package/Source/Scene/FrustumCommands.js +29 -0
- package/Source/Scene/GaussianSplat3DTileContent.js +826 -0
- package/Source/Scene/GaussianSplatPrimitive.js +1065 -0
- package/Source/Scene/GaussianSplatRenderResources.js +81 -0
- package/Source/Scene/GaussianSplatSorter.js +73 -0
- package/Source/Scene/GaussianSplatTextureGenerator.js +64 -0
- package/Source/Scene/Geometry3DTileContent.js +534 -0
- package/Source/Scene/GetFeatureInfoFormat.js +396 -0
- package/Source/Scene/Globe.js +1135 -0
- package/Source/Scene/GlobeDepth.js +407 -0
- package/Source/Scene/GlobeSurfaceShaderSet.js +485 -0
- package/Source/Scene/GlobeSurfaceTile.js +967 -0
- package/Source/Scene/GlobeSurfaceTileProvider.js +2910 -0
- package/Source/Scene/GlobeTranslucency.js +239 -0
- package/Source/Scene/GlobeTranslucencyFramebuffer.js +201 -0
- package/Source/Scene/GlobeTranslucencyState.js +1102 -0
- package/Source/Scene/GltfBufferViewLoader.js +242 -0
- package/Source/Scene/GltfDracoLoader.js +293 -0
- package/Source/Scene/GltfImageLoader.js +320 -0
- package/Source/Scene/GltfIndexBufferLoader.js +421 -0
- package/Source/Scene/GltfJsonLoader.js +314 -0
- package/Source/Scene/GltfLoader.js +2989 -0
- package/Source/Scene/GltfLoaderUtil.js +184 -0
- package/Source/Scene/GltfPipeline/ForEach.js +424 -0
- package/Source/Scene/GltfPipeline/addBuffer.js +30 -0
- package/Source/Scene/GltfPipeline/addDefaults.js +208 -0
- package/Source/Scene/GltfPipeline/addExtensionsRequired.js +24 -0
- package/Source/Scene/GltfPipeline/addExtensionsUsed.js +22 -0
- package/Source/Scene/GltfPipeline/addPipelineExtras.js +36 -0
- package/Source/Scene/GltfPipeline/addToArray.js +25 -0
- package/Source/Scene/GltfPipeline/findAccessorMinMax.js +71 -0
- package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +155 -0
- package/Source/Scene/GltfPipeline/getAccessorByteStride.js +29 -0
- package/Source/Scene/GltfPipeline/getComponentReader.js +147 -0
- package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +135 -0
- package/Source/Scene/GltfPipeline/moveTechniquesToExtension.js +145 -0
- package/Source/Scene/GltfPipeline/numberOfComponentsForType.js +29 -0
- package/Source/Scene/GltfPipeline/parseGlb.js +118 -0
- package/Source/Scene/GltfPipeline/readAccessorPacked.js +54 -0
- package/Source/Scene/GltfPipeline/removeExtension.js +64 -0
- package/Source/Scene/GltfPipeline/removeExtensionsRequired.js +24 -0
- package/Source/Scene/GltfPipeline/removeExtensionsUsed.js +26 -0
- package/Source/Scene/GltfPipeline/removePipelineExtras.js +42 -0
- package/Source/Scene/GltfPipeline/removeUnusedElements.js +906 -0
- package/Source/Scene/GltfPipeline/updateAccessorComponentTypes.js +53 -0
- package/Source/Scene/GltfPipeline/updateVersion.js +1148 -0
- package/Source/Scene/GltfPipeline/usesExtension.js +18 -0
- package/Source/Scene/GltfSpzLoader.js +224 -0
- package/Source/Scene/GltfStructuralMetadataLoader.js +505 -0
- package/Source/Scene/GltfTextureLoader.js +399 -0
- package/Source/Scene/GltfVertexBufferLoader.js +634 -0
- package/Source/Scene/Google2DImageryProvider.js +621 -0
- package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +548 -0
- package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +589 -0
- package/Source/Scene/GridImageryProvider.js +322 -0
- package/Source/Scene/GroundPolylinePrimitive.js +890 -0
- package/Source/Scene/GroundPrimitive.js +1000 -0
- package/Source/Scene/GroupMetadata.js +203 -0
- package/Source/Scene/HeightReference.js +85 -0
- package/Source/Scene/HorizontalOrigin.js +41 -0
- package/Source/Scene/I3SDataProvider.js +860 -0
- package/Source/Scene/I3SDecoder.js +133 -0
- package/Source/Scene/I3SFeature.js +61 -0
- package/Source/Scene/I3SField.js +360 -0
- package/Source/Scene/I3SGeometry.js +477 -0
- package/Source/Scene/I3SLayer.js +460 -0
- package/Source/Scene/I3SNode.js +927 -0
- package/Source/Scene/I3SStatistics.js +94 -0
- package/Source/Scene/I3SSublayer.js +175 -0
- package/Source/Scene/I3SSymbology.js +336 -0
- package/Source/Scene/I3dmParser.js +140 -0
- package/Source/Scene/ITwinData.js +283 -0
- package/Source/Scene/ImageBasedLighting.js +463 -0
- package/Source/Scene/Imagery.js +120 -0
- package/Source/Scene/ImageryLayer.js +1747 -0
- package/Source/Scene/ImageryLayerCollection.js +645 -0
- package/Source/Scene/ImageryLayerFeatureInfo.js +111 -0
- package/Source/Scene/ImageryProvider.js +267 -0
- package/Source/Scene/ImageryState.js +14 -0
- package/Source/Scene/Implicit3DTileContent.js +1206 -0
- package/Source/Scene/ImplicitAvailabilityBitstream.js +134 -0
- package/Source/Scene/ImplicitMetadataView.js +178 -0
- package/Source/Scene/ImplicitSubdivisionScheme.js +48 -0
- package/Source/Scene/ImplicitSubtree.js +1161 -0
- package/Source/Scene/ImplicitSubtreeCache.js +127 -0
- package/Source/Scene/ImplicitSubtreeMetadata.js +191 -0
- package/Source/Scene/ImplicitTileCoordinates.js +647 -0
- package/Source/Scene/ImplicitTileset.js +269 -0
- package/Source/Scene/InstanceAttributeSemantic.js +79 -0
- package/Source/Scene/InvertClassification.js +381 -0
- package/Source/Scene/IonImageryProvider.js +346 -0
- package/Source/Scene/IonImageryProviderFactory.js +194 -0
- package/Source/Scene/IonWorldImageryStyle.js +33 -0
- package/Source/Scene/JobScheduler.js +199 -0
- package/Source/Scene/JobType.js +10 -0
- package/Source/Scene/JsonMetadataTable.js +114 -0
- package/Source/Scene/KeyframeNode.js +61 -0
- package/Source/Scene/Label.js +1618 -0
- package/Source/Scene/LabelCollection.js +1032 -0
- package/Source/Scene/LabelStyle.js +33 -0
- package/Source/Scene/Light.js +34 -0
- package/Source/Scene/MapMode2D.js +23 -0
- package/Source/Scene/MapboxImageryProvider.js +332 -0
- package/Source/Scene/MapboxStyleImageryProvider.js +342 -0
- package/Source/Scene/Material.js +1929 -0
- package/Source/Scene/MaterialAppearance.js +328 -0
- package/Source/Scene/Megatexture.js +550 -0
- package/Source/Scene/MetadataClass.js +202 -0
- package/Source/Scene/MetadataClassProperty.js +1191 -0
- package/Source/Scene/MetadataComponentType.js +469 -0
- package/Source/Scene/MetadataEntity.js +425 -0
- package/Source/Scene/MetadataEnum.js +219 -0
- package/Source/Scene/MetadataEnumValue.js +131 -0
- package/Source/Scene/MetadataPicking.js +396 -0
- package/Source/Scene/MetadataSchema.js +202 -0
- package/Source/Scene/MetadataSchemaLoader.js +135 -0
- package/Source/Scene/MetadataSemantic.js +153 -0
- package/Source/Scene/MetadataTable.js +357 -0
- package/Source/Scene/MetadataTableProperty.js +840 -0
- package/Source/Scene/MetadataType.js +220 -0
- package/Source/Scene/Model/AlphaPipelineStage.js +51 -0
- package/Source/Scene/Model/AtmospherePipelineStage.js +64 -0
- package/Source/Scene/Model/B3dmLoader.js +368 -0
- package/Source/Scene/Model/BatchTexturePipelineStage.js +71 -0
- package/Source/Scene/Model/CPUStylingPipelineStage.js +77 -0
- package/Source/Scene/Model/CartesianRectangle.js +108 -0
- package/Source/Scene/Model/ClassificationModelDrawCommand.js +534 -0
- package/Source/Scene/Model/ClassificationPipelineStage.js +132 -0
- package/Source/Scene/Model/CustomShader.js +469 -0
- package/Source/Scene/Model/CustomShaderMode.js +40 -0
- package/Source/Scene/Model/CustomShaderPipelineStage.js +667 -0
- package/Source/Scene/Model/CustomShaderTranslucencyMode.js +35 -0
- package/Source/Scene/Model/DequantizationPipelineStage.js +178 -0
- package/Source/Scene/Model/EdgeDetectionPipelineStage.js +42 -0
- package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +800 -0
- package/Source/Scene/Model/Extensions/Gpm/AnchorPointDirect.js +61 -0
- package/Source/Scene/Model/Extensions/Gpm/AnchorPointIndirect.js +77 -0
- package/Source/Scene/Model/Extensions/Gpm/CorrelationGroup.js +81 -0
- package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +248 -0
- package/Source/Scene/Model/Extensions/Gpm/GltfGpmLocal.js +179 -0
- package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +543 -0
- package/Source/Scene/Model/Extensions/Gpm/MeshPrimitiveGpmLocal.js +28 -0
- package/Source/Scene/Model/Extensions/Gpm/PpeMetadata.js +79 -0
- package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +75 -0
- package/Source/Scene/Model/Extensions/Gpm/PpeTexture.js +127 -0
- package/Source/Scene/Model/Extensions/Gpm/Spdcf.js +103 -0
- package/Source/Scene/Model/Extensions/Gpm/StorageType.js +30 -0
- package/Source/Scene/Model/FeatureIdPipelineStage.js +523 -0
- package/Source/Scene/Model/GeoJsonLoader.js +697 -0
- package/Source/Scene/Model/GeometryPipelineStage.js +529 -0
- package/Source/Scene/Model/I3dmLoader.js +883 -0
- package/Source/Scene/Model/ImageBasedLightingPipelineStage.js +168 -0
- package/Source/Scene/Model/ImageryConfiguration.js +26 -0
- package/Source/Scene/Model/ImageryCoverage.js +488 -0
- package/Source/Scene/Model/ImageryFlags.js +31 -0
- package/Source/Scene/Model/ImageryInput.js +60 -0
- package/Source/Scene/Model/ImageryPipelineStage.js +1046 -0
- package/Source/Scene/Model/InstancingPipelineStage.js +1056 -0
- package/Source/Scene/Model/LightingModel.js +30 -0
- package/Source/Scene/Model/LightingPipelineStage.js +73 -0
- package/Source/Scene/Model/MappedPositions.js +84 -0
- package/Source/Scene/Model/MaterialPipelineStage.js +869 -0
- package/Source/Scene/Model/MetadataPickingPipelineStage.js +96 -0
- package/Source/Scene/Model/MetadataPipelineStage.js +657 -0
- package/Source/Scene/Model/Model.js +3340 -0
- package/Source/Scene/Model/Model3DTileContent.js +551 -0
- package/Source/Scene/Model/ModelAlphaOptions.js +26 -0
- package/Source/Scene/Model/ModelAnimation.js +421 -0
- package/Source/Scene/Model/ModelAnimationChannel.js +294 -0
- package/Source/Scene/Model/ModelAnimationCollection.js +553 -0
- package/Source/Scene/Model/ModelArticulation.js +214 -0
- package/Source/Scene/Model/ModelArticulationStage.js +261 -0
- package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +126 -0
- package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +98 -0
- package/Source/Scene/Model/ModelColorPipelineStage.js +98 -0
- package/Source/Scene/Model/ModelDrawCommand.js +922 -0
- package/Source/Scene/Model/ModelDrawCommands.js +218 -0
- package/Source/Scene/Model/ModelFeature.js +229 -0
- package/Source/Scene/Model/ModelFeatureTable.js +316 -0
- package/Source/Scene/Model/ModelImagery.js +410 -0
- package/Source/Scene/Model/ModelImageryMapping.js +489 -0
- package/Source/Scene/Model/ModelLightingOptions.js +29 -0
- package/Source/Scene/Model/ModelMatrixUpdateStage.js +120 -0
- package/Source/Scene/Model/ModelNode.js +125 -0
- package/Source/Scene/Model/ModelPrimitiveImagery.js +972 -0
- package/Source/Scene/Model/ModelReader.js +810 -0
- package/Source/Scene/Model/ModelRenderResources.js +119 -0
- package/Source/Scene/Model/ModelRuntimeNode.js +648 -0
- package/Source/Scene/Model/ModelRuntimePrimitive.js +380 -0
- package/Source/Scene/Model/ModelSceneGraph.js +1098 -0
- package/Source/Scene/Model/ModelSilhouettePipelineStage.js +109 -0
- package/Source/Scene/Model/ModelSkin.js +180 -0
- package/Source/Scene/Model/ModelSplitterPipelineStage.js +65 -0
- package/Source/Scene/Model/ModelStatistics.js +225 -0
- package/Source/Scene/Model/ModelType.js +94 -0
- package/Source/Scene/Model/ModelUtility.js +395 -0
- package/Source/Scene/Model/MorphTargetsPipelineStage.js +249 -0
- package/Source/Scene/Model/NodeRenderResources.js +170 -0
- package/Source/Scene/Model/NodeStatisticsPipelineStage.js +75 -0
- package/Source/Scene/Model/PickingPipelineStage.js +218 -0
- package/Source/Scene/Model/PntsLoader.js +716 -0
- package/Source/Scene/Model/PointCloudStylingPipelineStage.js +392 -0
- package/Source/Scene/Model/PrimitiveOutlineGenerator.js +689 -0
- package/Source/Scene/Model/PrimitiveOutlinePipelineStage.js +99 -0
- package/Source/Scene/Model/PrimitiveRenderResources.js +297 -0
- package/Source/Scene/Model/PrimitiveStatisticsPipelineStage.js +253 -0
- package/Source/Scene/Model/SceneMode2DPipelineStage.js +301 -0
- package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +180 -0
- package/Source/Scene/Model/SkinningPipelineStage.js +118 -0
- package/Source/Scene/Model/StyleCommandsNeeded.js +29 -0
- package/Source/Scene/Model/TextureManager.js +244 -0
- package/Source/Scene/Model/TextureUniform.js +71 -0
- package/Source/Scene/Model/TilesetPipelineStage.js +73 -0
- package/Source/Scene/Model/UniformType.js +124 -0
- package/Source/Scene/Model/VaryingType.js +61 -0
- package/Source/Scene/Model/VerticalExaggerationPipelineStage.js +58 -0
- package/Source/Scene/Model/WireframePipelineStage.js +118 -0
- package/Source/Scene/Model/pickModel.js +425 -0
- package/Source/Scene/ModelAnimationLoop.js +33 -0
- package/Source/Scene/ModelAnimationState.js +9 -0
- package/Source/Scene/ModelComponents.js +1662 -0
- package/Source/Scene/Moon.js +175 -0
- package/Source/Scene/Multiple3DTileContent.js +722 -0
- package/Source/Scene/NeverTileDiscardPolicy.js +28 -0
- package/Source/Scene/OIT.js +946 -0
- package/Source/Scene/OpenStreetMapImageryProvider.js +128 -0
- package/Source/Scene/OrderedGroundPrimitiveCollection.js +218 -0
- package/Source/Scene/Particle.js +149 -0
- package/Source/Scene/ParticleBurst.js +51 -0
- package/Source/Scene/ParticleEmitter.js +36 -0
- package/Source/Scene/ParticleSystem.js +885 -0
- package/Source/Scene/PerInstanceColorAppearance.js +296 -0
- package/Source/Scene/PerformanceDisplay.js +120 -0
- package/Source/Scene/PickDepth.js +125 -0
- package/Source/Scene/PickDepthFramebuffer.js +79 -0
- package/Source/Scene/PickFramebuffer.js +255 -0
- package/Source/Scene/PickedMetadataInfo.js +57 -0
- package/Source/Scene/Picking.js +1683 -0
- package/Source/Scene/PntsParser.js +547 -0
- package/Source/Scene/PointCloud.js +1412 -0
- package/Source/Scene/PointCloudEyeDomeLighting.js +284 -0
- package/Source/Scene/PointCloudShading.js +104 -0
- package/Source/Scene/PointPrimitive.js +690 -0
- package/Source/Scene/PointPrimitiveCollection.js +1223 -0
- package/Source/Scene/Polyline.js +431 -0
- package/Source/Scene/PolylineCollection.js +1950 -0
- package/Source/Scene/PolylineColorAppearance.js +220 -0
- package/Source/Scene/PolylineMaterialAppearance.js +231 -0
- package/Source/Scene/PostProcessStage.js +1000 -0
- package/Source/Scene/PostProcessStageCollection.js +900 -0
- package/Source/Scene/PostProcessStageComposite.js +359 -0
- package/Source/Scene/PostProcessStageLibrary.js +826 -0
- package/Source/Scene/PostProcessStageSampleMode.js +22 -0
- package/Source/Scene/PostProcessStageTextureCache.js +454 -0
- package/Source/Scene/Primitive.js +2504 -0
- package/Source/Scene/PrimitiveCollection.js +532 -0
- package/Source/Scene/PrimitiveLoadPlan.js +303 -0
- package/Source/Scene/PrimitivePipeline.js +854 -0
- package/Source/Scene/PrimitiveState.js +136 -0
- package/Source/Scene/PropertyAttribute.js +160 -0
- package/Source/Scene/PropertyAttributeProperty.js +177 -0
- package/Source/Scene/PropertyTable.js +536 -0
- package/Source/Scene/PropertyTexture.js +162 -0
- package/Source/Scene/PropertyTextureProperty.js +304 -0
- package/Source/Scene/QuadtreeOccluders.js +30 -0
- package/Source/Scene/QuadtreePrimitive.js +1575 -0
- package/Source/Scene/QuadtreeTile.js +729 -0
- package/Source/Scene/QuadtreeTileLoadState.js +39 -0
- package/Source/Scene/QuadtreeTileProvider.js +212 -0
- package/Source/Scene/ResourceCache.js +824 -0
- package/Source/Scene/ResourceCacheKey.js +601 -0
- package/Source/Scene/ResourceCacheStatistics.js +149 -0
- package/Source/Scene/ResourceLoader.js +127 -0
- package/Source/Scene/ResourceLoaderState.js +56 -0
- package/Source/Scene/SDFSettings.js +39 -0
- package/Source/Scene/Scene.js +5280 -0
- package/Source/Scene/SceneFramebuffer.js +106 -0
- package/Source/Scene/SceneMode.js +56 -0
- package/Source/Scene/SceneTransforms.js +463 -0
- package/Source/Scene/SceneTransitioner.js +1111 -0
- package/Source/Scene/ScreenSpaceCameraController.js +3098 -0
- package/Source/Scene/SensorVolumePortionToDisplay.js +69 -0
- package/Source/Scene/ShadowMap.js +1957 -0
- package/Source/Scene/ShadowMapShader.js +395 -0
- package/Source/Scene/ShadowMode.js +78 -0
- package/Source/Scene/ShadowVolumeAppearance.js +936 -0
- package/Source/Scene/SingleTileImageryProvider.js +380 -0
- package/Source/Scene/SkyAtmosphere.js +400 -0
- package/Source/Scene/SkyBox.js +289 -0
- package/Source/Scene/SpatialNode.js +377 -0
- package/Source/Scene/SpecularEnvironmentCubeMap.js +240 -0
- package/Source/Scene/SphereEmitter.js +65 -0
- package/Source/Scene/SplitDirection.js +34 -0
- package/Source/Scene/Splitter.js +49 -0
- package/Source/Scene/StencilConstants.js +37 -0
- package/Source/Scene/StencilFunction.js +73 -0
- package/Source/Scene/StencilOperation.js +73 -0
- package/Source/Scene/StructuralMetadata.js +243 -0
- package/Source/Scene/StyleExpression.js +86 -0
- package/Source/Scene/Sun.js +363 -0
- package/Source/Scene/SunLight.js +31 -0
- package/Source/Scene/SunPostProcess.js +288 -0
- package/Source/Scene/SupportedImageFormats.js +18 -0
- package/Source/Scene/Terrain.js +245 -0
- package/Source/Scene/TerrainFillMesh.js +2222 -0
- package/Source/Scene/TerrainState.js +13 -0
- package/Source/Scene/TileBoundingRegion.js +489 -0
- package/Source/Scene/TileBoundingS2Cell.js +699 -0
- package/Source/Scene/TileBoundingSphere.js +167 -0
- package/Source/Scene/TileBoundingVolume.js +68 -0
- package/Source/Scene/TileCoordinatesImageryProvider.js +269 -0
- package/Source/Scene/TileDiscardPolicy.js +34 -0
- package/Source/Scene/TileImagery.js +126 -0
- package/Source/Scene/TileMapServiceImageryProvider.js +442 -0
- package/Source/Scene/TileMetadata.js +184 -0
- package/Source/Scene/TileOrientedBoundingBox.js +219 -0
- package/Source/Scene/TileReplacementQueue.js +119 -0
- package/Source/Scene/TileSelectionResult.js +80 -0
- package/Source/Scene/TileState.js +10 -0
- package/Source/Scene/Tileset3DTileContent.js +182 -0
- package/Source/Scene/TilesetMetadata.js +186 -0
- package/Source/Scene/TimeDynamicImagery.js +308 -0
- package/Source/Scene/TimeDynamicPointCloud.js +802 -0
- package/Source/Scene/Tonemapper.js +64 -0
- package/Source/Scene/TranslucentTileClassification.js +514 -0
- package/Source/Scene/TweenCollection.js +585 -0
- package/Source/Scene/UrlTemplateImageryProvider.js +989 -0
- package/Source/Scene/Vector3DTileBatch.js +37 -0
- package/Source/Scene/Vector3DTileClampedPolylines.js +783 -0
- package/Source/Scene/Vector3DTileContent.js +770 -0
- package/Source/Scene/Vector3DTileGeometry.js +497 -0
- package/Source/Scene/Vector3DTilePoints.js +548 -0
- package/Source/Scene/Vector3DTilePolygons.js +479 -0
- package/Source/Scene/Vector3DTilePolylines.js +679 -0
- package/Source/Scene/Vector3DTilePrimitive.js +1276 -0
- package/Source/Scene/VertexAttributeSemantic.js +305 -0
- package/Source/Scene/VerticalOrigin.js +49 -0
- package/Source/Scene/View.js +465 -0
- package/Source/Scene/ViewportQuad.js +182 -0
- package/Source/Scene/ViewshedShadowMap.js +1953 -0
- package/Source/Scene/VoxelBoundsCollection.js +494 -0
- package/Source/Scene/VoxelBoxShape.js +595 -0
- package/Source/Scene/VoxelCell.js +274 -0
- package/Source/Scene/VoxelContent.js +231 -0
- package/Source/Scene/VoxelCylinderShape.js +868 -0
- package/Source/Scene/VoxelEllipsoidShape.js +1174 -0
- package/Source/Scene/VoxelMetadataOrder.js +24 -0
- package/Source/Scene/VoxelPrimitive.js +2169 -0
- package/Source/Scene/VoxelProvider.js +234 -0
- package/Source/Scene/VoxelRenderResources.js +259 -0
- package/Source/Scene/VoxelShape.js +179 -0
- package/Source/Scene/VoxelShapeType.js +105 -0
- package/Source/Scene/VoxelTraversal.js +1264 -0
- package/Source/Scene/WebMapServiceImageryProvider.js +649 -0
- package/Source/Scene/WebMapTileServiceImageryProvider.js +575 -0
- package/Source/Scene/buildVoxelDrawCommands.js +177 -0
- package/Source/Scene/computeFlyToLocationForRectangle.js +74 -0
- package/Source/Scene/createBillboardPointCallback.js +70 -0
- package/Source/Scene/createElevationBandMaterial.js +580 -0
- package/Source/Scene/createGooglePhotorealistic3DTileset.js +116 -0
- package/Source/Scene/createOsmBuildingsAsync.js +79 -0
- package/Source/Scene/createTangentSpaceDebugPrimitive.js +114 -0
- package/Source/Scene/createWorldImageryAsync.js +39 -0
- package/Source/Scene/findContentMetadata.js +51 -0
- package/Source/Scene/findGroupMetadata.js +39 -0
- package/Source/Scene/findTileMetadata.js +53 -0
- package/Source/Scene/getBinaryAccessor.js +56 -0
- package/Source/Scene/getClipAndStyleCode.js +34 -0
- package/Source/Scene/getClippingFunction.js +154 -0
- package/Source/Scene/getMeshPrimitives.js +72 -0
- package/Source/Scene/getMetadataClassProperty.js +43 -0
- package/Source/Scene/getMetadataProperty.js +48 -0
- package/Source/Scene/hasExtension.js +19 -0
- package/Source/Scene/parseBatchTable.js +448 -0
- package/Source/Scene/parseFeatureMetadataLegacy.js +139 -0
- package/Source/Scene/parseStructuralMetadata.js +102 -0
- package/Source/Scene/preprocess3DTileContent.js +102 -0
- package/Source/Scene/processVoxelProperties.js +398 -0
- package/Source/Shaders/AdjustTranslucentFS.glsl +27 -0
- package/Source/Shaders/AdjustTranslucentFS.js +29 -0
- package/Source/Shaders/Appearances/AllMaterialAppearanceFS.glsl +29 -0
- package/Source/Shaders/Appearances/AllMaterialAppearanceFS.js +31 -0
- package/Source/Shaders/Appearances/AllMaterialAppearanceVS.glsl +26 -0
- package/Source/Shaders/Appearances/AllMaterialAppearanceVS.js +28 -0
- package/Source/Shaders/Appearances/BasicMaterialAppearanceFS.glsl +23 -0
- package/Source/Shaders/Appearances/BasicMaterialAppearanceFS.js +25 -0
- package/Source/Shaders/Appearances/BasicMaterialAppearanceVS.glsl +17 -0
- package/Source/Shaders/Appearances/BasicMaterialAppearanceVS.js +19 -0
- package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.glsl +33 -0
- package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.js +35 -0
- package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.glsl +19 -0
- package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.js +21 -0
- package/Source/Shaders/Appearances/PerInstanceColorAppearanceFS.glsl +24 -0
- package/Source/Shaders/Appearances/PerInstanceColorAppearanceFS.js +26 -0
- package/Source/Shaders/Appearances/PerInstanceColorAppearanceVS.glsl +20 -0
- package/Source/Shaders/Appearances/PerInstanceColorAppearanceVS.js +22 -0
- package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.glsl +6 -0
- package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.js +8 -0
- package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.glsl +15 -0
- package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.js +17 -0
- package/Source/Shaders/Appearances/PolylineColorAppearanceVS.glsl +28 -0
- package/Source/Shaders/Appearances/PolylineColorAppearanceVS.js +30 -0
- package/Source/Shaders/Appearances/PolylineMaterialAppearanceVS.glsl +33 -0
- package/Source/Shaders/Appearances/PolylineMaterialAppearanceVS.js +35 -0
- package/Source/Shaders/Appearances/TexturedMaterialAppearanceFS.glsl +25 -0
- package/Source/Shaders/Appearances/TexturedMaterialAppearanceFS.js +27 -0
- package/Source/Shaders/Appearances/TexturedMaterialAppearanceVS.glsl +20 -0
- package/Source/Shaders/Appearances/TexturedMaterialAppearanceVS.js +22 -0
- package/Source/Shaders/AtmosphereCommon.glsl +187 -0
- package/Source/Shaders/AtmosphereCommon.js +189 -0
- package/Source/Shaders/BillboardCollectionFS.glsl +261 -0
- package/Source/Shaders/BillboardCollectionFS.js +262 -0
- package/Source/Shaders/BillboardCollectionVS.glsl +445 -0
- package/Source/Shaders/BillboardCollectionVS.js +447 -0
- package/Source/Shaders/BrdfLutGeneratorFS.glsl +100 -0
- package/Source/Shaders/BrdfLutGeneratorFS.js +102 -0
- package/Source/Shaders/Builtin/Constants/degreesPerRadian.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/degreesPerRadian.js +18 -0
- package/Source/Shaders/Builtin/Constants/depthRange.glsl +14 -0
- package/Source/Shaders/Builtin/Constants/depthRange.js +16 -0
- package/Source/Shaders/Builtin/Constants/epsilon1.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/epsilon1.js +9 -0
- package/Source/Shaders/Builtin/Constants/epsilon2.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/epsilon2.js +9 -0
- package/Source/Shaders/Builtin/Constants/epsilon3.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/epsilon3.js +9 -0
- package/Source/Shaders/Builtin/Constants/epsilon4.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/epsilon4.js +9 -0
- package/Source/Shaders/Builtin/Constants/epsilon5.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/epsilon5.js +9 -0
- package/Source/Shaders/Builtin/Constants/epsilon6.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/epsilon6.js +9 -0
- package/Source/Shaders/Builtin/Constants/epsilon7.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/epsilon7.js +9 -0
- package/Source/Shaders/Builtin/Constants/infinity.glsl +7 -0
- package/Source/Shaders/Builtin/Constants/infinity.js +9 -0
- package/Source/Shaders/Builtin/Constants/oneOverPi.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/oneOverPi.js +18 -0
- package/Source/Shaders/Builtin/Constants/oneOverTwoPi.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/oneOverTwoPi.js +18 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTile.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTile.js +11 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.js +11 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.js +11 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTileEdges.glsl +10 -0
- package/Source/Shaders/Builtin/Constants/passCesium3DTileEdges.js +12 -0
- package/Source/Shaders/Builtin/Constants/passClassification.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passClassification.js +11 -0
- package/Source/Shaders/Builtin/Constants/passCompute.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passCompute.js +11 -0
- package/Source/Shaders/Builtin/Constants/passEnvironment.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passEnvironment.js +11 -0
- package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passGaussianSplats.js +11 -0
- package/Source/Shaders/Builtin/Constants/passGlobe.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passGlobe.js +11 -0
- package/Source/Shaders/Builtin/Constants/passOpaque.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passOpaque.js +11 -0
- package/Source/Shaders/Builtin/Constants/passOverlay.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passOverlay.js +11 -0
- package/Source/Shaders/Builtin/Constants/passTerrainClassification.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passTerrainClassification.js +11 -0
- package/Source/Shaders/Builtin/Constants/passTranslucent.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passTranslucent.js +11 -0
- package/Source/Shaders/Builtin/Constants/passVoxels.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passVoxels.js +11 -0
- package/Source/Shaders/Builtin/Constants/pi.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/pi.js +18 -0
- package/Source/Shaders/Builtin/Constants/piOverFour.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/piOverFour.js +18 -0
- package/Source/Shaders/Builtin/Constants/piOverSix.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/piOverSix.js +18 -0
- package/Source/Shaders/Builtin/Constants/piOverThree.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/piOverThree.js +18 -0
- package/Source/Shaders/Builtin/Constants/piOverTwo.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/piOverTwo.js +18 -0
- package/Source/Shaders/Builtin/Constants/radiansPerDegree.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/radiansPerDegree.js +18 -0
- package/Source/Shaders/Builtin/Constants/sceneMode2D.glsl +11 -0
- package/Source/Shaders/Builtin/Constants/sceneMode2D.js +13 -0
- package/Source/Shaders/Builtin/Constants/sceneMode3D.glsl +11 -0
- package/Source/Shaders/Builtin/Constants/sceneMode3D.js +13 -0
- package/Source/Shaders/Builtin/Constants/sceneModeColumbusView.glsl +11 -0
- package/Source/Shaders/Builtin/Constants/sceneModeColumbusView.js +13 -0
- package/Source/Shaders/Builtin/Constants/sceneModeMorphing.glsl +11 -0
- package/Source/Shaders/Builtin/Constants/sceneModeMorphing.js +13 -0
- package/Source/Shaders/Builtin/Constants/solarRadius.glsl +13 -0
- package/Source/Shaders/Builtin/Constants/solarRadius.js +15 -0
- package/Source/Shaders/Builtin/Constants/threePiOver2.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/threePiOver2.js +18 -0
- package/Source/Shaders/Builtin/Constants/twoPi.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/twoPi.js +18 -0
- package/Source/Shaders/Builtin/Constants/webMercatorMaxLatitude.glsl +16 -0
- package/Source/Shaders/Builtin/Constants/webMercatorMaxLatitude.js +18 -0
- package/Source/Shaders/Builtin/CzmBuiltins.js +280 -0
- package/Source/Shaders/Builtin/Functions/HSBToRGB.glsl +24 -0
- package/Source/Shaders/Builtin/Functions/HSBToRGB.js +26 -0
- package/Source/Shaders/Builtin/Functions/HSLToRGB.glsl +31 -0
- package/Source/Shaders/Builtin/Functions/HSLToRGB.js +33 -0
- package/Source/Shaders/Builtin/Functions/RGBToHSB.glsl +27 -0
- package/Source/Shaders/Builtin/Functions/RGBToHSB.js +29 -0
- package/Source/Shaders/Builtin/Functions/RGBToHSL.glsl +34 -0
- package/Source/Shaders/Builtin/Functions/RGBToHSL.js +36 -0
- package/Source/Shaders/Builtin/Functions/RGBToXYZ.glsl +30 -0
- package/Source/Shaders/Builtin/Functions/RGBToXYZ.js +32 -0
- package/Source/Shaders/Builtin/Functions/XYZToRGB.glsl +30 -0
- package/Source/Shaders/Builtin/Functions/XYZToRGB.js +32 -0
- package/Source/Shaders/Builtin/Functions/acesTonemapping.glsl +16 -0
- package/Source/Shaders/Builtin/Functions/acesTonemapping.js +18 -0
- package/Source/Shaders/Builtin/Functions/alphaWeight.glsl +11 -0
- package/Source/Shaders/Builtin/Functions/alphaWeight.js +13 -0
- package/Source/Shaders/Builtin/Functions/antialias.glsl +39 -0
- package/Source/Shaders/Builtin/Functions/antialias.js +41 -0
- package/Source/Shaders/Builtin/Functions/applyHSBShift.glsl +32 -0
- package/Source/Shaders/Builtin/Functions/applyHSBShift.js +34 -0
- package/Source/Shaders/Builtin/Functions/approximateSphericalCoordinates.glsl +18 -0
- package/Source/Shaders/Builtin/Functions/approximateSphericalCoordinates.js +20 -0
- package/Source/Shaders/Builtin/Functions/approximateTanh.glsl +10 -0
- package/Source/Shaders/Builtin/Functions/approximateTanh.js +12 -0
- package/Source/Shaders/Builtin/Functions/backFacing.glsl +13 -0
- package/Source/Shaders/Builtin/Functions/backFacing.js +15 -0
- package/Source/Shaders/Builtin/Functions/branchFreeTernary.glsl +71 -0
- package/Source/Shaders/Builtin/Functions/branchFreeTernary.js +73 -0
- package/Source/Shaders/Builtin/Functions/cascadeColor.glsl +8 -0
- package/Source/Shaders/Builtin/Functions/cascadeColor.js +10 -0
- package/Source/Shaders/Builtin/Functions/cascadeDistance.glsl +7 -0
- package/Source/Shaders/Builtin/Functions/cascadeDistance.js +9 -0
- package/Source/Shaders/Builtin/Functions/cascadeMatrix.glsl +10 -0
- package/Source/Shaders/Builtin/Functions/cascadeMatrix.js +12 -0
- package/Source/Shaders/Builtin/Functions/cascadeWeights.glsl +10 -0
- package/Source/Shaders/Builtin/Functions/cascadeWeights.js +12 -0
- package/Source/Shaders/Builtin/Functions/clipPolygons.glsl +37 -0
- package/Source/Shaders/Builtin/Functions/clipPolygons.js +39 -0
- package/Source/Shaders/Builtin/Functions/columbusViewMorph.glsl +12 -0
- package/Source/Shaders/Builtin/Functions/columbusViewMorph.js +14 -0
- package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.glsl +88 -0
- package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.js +90 -0
- package/Source/Shaders/Builtin/Functions/computeGroundAtmosphereScattering.glsl +30 -0
- package/Source/Shaders/Builtin/Functions/computeGroundAtmosphereScattering.js +32 -0
- package/Source/Shaders/Builtin/Functions/computePosition.glsl +22 -0
- package/Source/Shaders/Builtin/Functions/computePosition.js +24 -0
- package/Source/Shaders/Builtin/Functions/computeScattering.glsl +149 -0
- package/Source/Shaders/Builtin/Functions/computeScattering.js +151 -0
- package/Source/Shaders/Builtin/Functions/cosineAndSine.glsl +211 -0
- package/Source/Shaders/Builtin/Functions/cosineAndSine.js +213 -0
- package/Source/Shaders/Builtin/Functions/decompressTextureCoordinates.glsl +17 -0
- package/Source/Shaders/Builtin/Functions/decompressTextureCoordinates.js +19 -0
- package/Source/Shaders/Builtin/Functions/depthClamp.glsl +47 -0
- package/Source/Shaders/Builtin/Functions/depthClamp.js +49 -0
- package/Source/Shaders/Builtin/Functions/eastNorthUpToEyeCoordinates.glsl +33 -0
- package/Source/Shaders/Builtin/Functions/eastNorthUpToEyeCoordinates.js +35 -0
- package/Source/Shaders/Builtin/Functions/ellipsoidContainsPoint.glsl +12 -0
- package/Source/Shaders/Builtin/Functions/ellipsoidContainsPoint.js +14 -0
- package/Source/Shaders/Builtin/Functions/ellipsoidTextureCoordinates.glsl +10 -0
- package/Source/Shaders/Builtin/Functions/ellipsoidTextureCoordinates.js +12 -0
- package/Source/Shaders/Builtin/Functions/equalsEpsilon.glsl +36 -0
- package/Source/Shaders/Builtin/Functions/equalsEpsilon.js +38 -0
- package/Source/Shaders/Builtin/Functions/eyeOffset.glsl +20 -0
- package/Source/Shaders/Builtin/Functions/eyeOffset.js +22 -0
- package/Source/Shaders/Builtin/Functions/eyeToWindowCoordinates.glsl +32 -0
- package/Source/Shaders/Builtin/Functions/eyeToWindowCoordinates.js +34 -0
- package/Source/Shaders/Builtin/Functions/fastApproximateAtan.glsl +55 -0
- package/Source/Shaders/Builtin/Functions/fastApproximateAtan.js +57 -0
- package/Source/Shaders/Builtin/Functions/fog.glsl +38 -0
- package/Source/Shaders/Builtin/Functions/fog.js +40 -0
- package/Source/Shaders/Builtin/Functions/gammaCorrect.glsl +22 -0
- package/Source/Shaders/Builtin/Functions/gammaCorrect.js +24 -0
- package/Source/Shaders/Builtin/Functions/geodeticSurfaceNormal.glsl +16 -0
- package/Source/Shaders/Builtin/Functions/geodeticSurfaceNormal.js +18 -0
- package/Source/Shaders/Builtin/Functions/getDefaultMaterial.glsl +27 -0
- package/Source/Shaders/Builtin/Functions/getDefaultMaterial.js +29 -0
- package/Source/Shaders/Builtin/Functions/getDynamicAtmosphereLightDirection.glsl +22 -0
- package/Source/Shaders/Builtin/Functions/getDynamicAtmosphereLightDirection.js +24 -0
- package/Source/Shaders/Builtin/Functions/getLambertDiffuse.glsl +22 -0
- package/Source/Shaders/Builtin/Functions/getLambertDiffuse.js +24 -0
- package/Source/Shaders/Builtin/Functions/getSpecular.glsl +29 -0
- package/Source/Shaders/Builtin/Functions/getSpecular.js +31 -0
- package/Source/Shaders/Builtin/Functions/getWaterNoise.glsl +37 -0
- package/Source/Shaders/Builtin/Functions/getWaterNoise.js +39 -0
- package/Source/Shaders/Builtin/Functions/hue.glsl +30 -0
- package/Source/Shaders/Builtin/Functions/hue.js +32 -0
- package/Source/Shaders/Builtin/Functions/inverseGamma.glsl +12 -0
- package/Source/Shaders/Builtin/Functions/inverseGamma.js +14 -0
- package/Source/Shaders/Builtin/Functions/isEmpty.glsl +19 -0
- package/Source/Shaders/Builtin/Functions/isEmpty.js +21 -0
- package/Source/Shaders/Builtin/Functions/isFull.glsl +19 -0
- package/Source/Shaders/Builtin/Functions/isFull.js +21 -0
- package/Source/Shaders/Builtin/Functions/latitudeToWebMercatorFraction.glsl +21 -0
- package/Source/Shaders/Builtin/Functions/latitudeToWebMercatorFraction.js +23 -0
- package/Source/Shaders/Builtin/Functions/lineDistance.glsl +14 -0
- package/Source/Shaders/Builtin/Functions/lineDistance.js +16 -0
- package/Source/Shaders/Builtin/Functions/linearToSrgb.glsl +16 -0
- package/Source/Shaders/Builtin/Functions/linearToSrgb.js +18 -0
- package/Source/Shaders/Builtin/Functions/luminance.glsl +20 -0
- package/Source/Shaders/Builtin/Functions/luminance.js +22 -0
- package/Source/Shaders/Builtin/Functions/maximumComponent.glsl +21 -0
- package/Source/Shaders/Builtin/Functions/maximumComponent.js +23 -0
- package/Source/Shaders/Builtin/Functions/metersPerPixel.glsl +61 -0
- package/Source/Shaders/Builtin/Functions/metersPerPixel.js +63 -0
- package/Source/Shaders/Builtin/Functions/modelToWindowCoordinates.glsl +38 -0
- package/Source/Shaders/Builtin/Functions/modelToWindowCoordinates.js +40 -0
- package/Source/Shaders/Builtin/Functions/multiplyWithColorBalance.glsl +18 -0
- package/Source/Shaders/Builtin/Functions/multiplyWithColorBalance.js +20 -0
- package/Source/Shaders/Builtin/Functions/nearFarScalar.glsl +26 -0
- package/Source/Shaders/Builtin/Functions/nearFarScalar.js +28 -0
- package/Source/Shaders/Builtin/Functions/octDecode.glsl +83 -0
- package/Source/Shaders/Builtin/Functions/octDecode.js +85 -0
- package/Source/Shaders/Builtin/Functions/packDepth.glsl +18 -0
- package/Source/Shaders/Builtin/Functions/packDepth.js +20 -0
- package/Source/Shaders/Builtin/Functions/pbrLighting.glsl +164 -0
- package/Source/Shaders/Builtin/Functions/pbrLighting.js +166 -0
- package/Source/Shaders/Builtin/Functions/pbrNeutralTonemapping.glsl +23 -0
- package/Source/Shaders/Builtin/Functions/pbrNeutralTonemapping.js +25 -0
- package/Source/Shaders/Builtin/Functions/phong.glsl +63 -0
- package/Source/Shaders/Builtin/Functions/phong.js +65 -0
- package/Source/Shaders/Builtin/Functions/planeDistance.glsl +28 -0
- package/Source/Shaders/Builtin/Functions/planeDistance.js +30 -0
- package/Source/Shaders/Builtin/Functions/pointAlongRay.glsl +19 -0
- package/Source/Shaders/Builtin/Functions/pointAlongRay.js +21 -0
- package/Source/Shaders/Builtin/Functions/rayEllipsoidIntersectionInterval.glsl +83 -0
- package/Source/Shaders/Builtin/Functions/rayEllipsoidIntersectionInterval.js +85 -0
- package/Source/Shaders/Builtin/Functions/raySphereIntersectionInterval.glsl +36 -0
- package/Source/Shaders/Builtin/Functions/raySphereIntersectionInterval.js +38 -0
- package/Source/Shaders/Builtin/Functions/readDepth.glsl +4 -0
- package/Source/Shaders/Builtin/Functions/readDepth.js +6 -0
- package/Source/Shaders/Builtin/Functions/readNonPerspective.glsl +31 -0
- package/Source/Shaders/Builtin/Functions/readNonPerspective.js +33 -0
- package/Source/Shaders/Builtin/Functions/reverseLogDepth.glsl +11 -0
- package/Source/Shaders/Builtin/Functions/reverseLogDepth.js +13 -0
- package/Source/Shaders/Builtin/Functions/round.glsl +22 -0
- package/Source/Shaders/Builtin/Functions/round.js +24 -0
- package/Source/Shaders/Builtin/Functions/saturation.glsl +22 -0
- package/Source/Shaders/Builtin/Functions/saturation.js +24 -0
- package/Source/Shaders/Builtin/Functions/shadowDepthCompare.glsl +24 -0
- package/Source/Shaders/Builtin/Functions/shadowDepthCompare.js +26 -0
- package/Source/Shaders/Builtin/Functions/shadowVisibility.glsl +66 -0
- package/Source/Shaders/Builtin/Functions/shadowVisibility.js +68 -0
- package/Source/Shaders/Builtin/Functions/signNotZero.glsl +29 -0
- package/Source/Shaders/Builtin/Functions/signNotZero.js +31 -0
- package/Source/Shaders/Builtin/Functions/sphericalHarmonics.glsl +44 -0
- package/Source/Shaders/Builtin/Functions/sphericalHarmonics.js +46 -0
- package/Source/Shaders/Builtin/Functions/srgbToLinear.glsl +16 -0
- package/Source/Shaders/Builtin/Functions/srgbToLinear.js +18 -0
- package/Source/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.glsl +25 -0
- package/Source/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.js +27 -0
- package/Source/Shaders/Builtin/Functions/textureCube.glsl +36 -0
- package/Source/Shaders/Builtin/Functions/textureCube.js +37 -0
- package/Source/Shaders/Builtin/Functions/transformPlane.glsl +15 -0
- package/Source/Shaders/Builtin/Functions/transformPlane.js +17 -0
- package/Source/Shaders/Builtin/Functions/translateRelativeToEye.glsl +45 -0
- package/Source/Shaders/Builtin/Functions/translateRelativeToEye.js +47 -0
- package/Source/Shaders/Builtin/Functions/translucentPhong.glsl +27 -0
- package/Source/Shaders/Builtin/Functions/translucentPhong.js +29 -0
- package/Source/Shaders/Builtin/Functions/transpose.glsl +45 -0
- package/Source/Shaders/Builtin/Functions/transpose.js +47 -0
- package/Source/Shaders/Builtin/Functions/unpackClippingExtents.glsl +14 -0
- package/Source/Shaders/Builtin/Functions/unpackClippingExtents.js +15 -0
- package/Source/Shaders/Builtin/Functions/unpackDepth.glsl +16 -0
- package/Source/Shaders/Builtin/Functions/unpackDepth.js +18 -0
- package/Source/Shaders/Builtin/Functions/unpackFloat.glsl +24 -0
- package/Source/Shaders/Builtin/Functions/unpackFloat.js +26 -0
- package/Source/Shaders/Builtin/Functions/unpackUint.glsl +31 -0
- package/Source/Shaders/Builtin/Functions/unpackUint.js +33 -0
- package/Source/Shaders/Builtin/Functions/valueTransform.glsl +38 -0
- package/Source/Shaders/Builtin/Functions/valueTransform.js +40 -0
- package/Source/Shaders/Builtin/Functions/vertexLogDepth.glsl +64 -0
- package/Source/Shaders/Builtin/Functions/vertexLogDepth.js +66 -0
- package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl +110 -0
- package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.js +112 -0
- package/Source/Shaders/Builtin/Functions/writeDepthClamp.glsl +24 -0
- package/Source/Shaders/Builtin/Functions/writeDepthClamp.js +26 -0
- package/Source/Shaders/Builtin/Functions/writeLogDepth.glsl +79 -0
- package/Source/Shaders/Builtin/Functions/writeLogDepth.js +81 -0
- package/Source/Shaders/Builtin/Functions/writeNonPerspective.glsl +32 -0
- package/Source/Shaders/Builtin/Functions/writeNonPerspective.js +34 -0
- package/Source/Shaders/Builtin/Structs/depthRangeStruct.glsl +9 -0
- package/Source/Shaders/Builtin/Structs/depthRangeStruct.js +11 -0
- package/Source/Shaders/Builtin/Structs/material.glsl +22 -0
- package/Source/Shaders/Builtin/Structs/material.js +24 -0
- package/Source/Shaders/Builtin/Structs/materialInput.glsl +30 -0
- package/Source/Shaders/Builtin/Structs/materialInput.js +32 -0
- package/Source/Shaders/Builtin/Structs/modelMaterial.glsl +45 -0
- package/Source/Shaders/Builtin/Structs/modelMaterial.js +47 -0
- package/Source/Shaders/Builtin/Structs/modelVertexOutput.glsl +16 -0
- package/Source/Shaders/Builtin/Structs/modelVertexOutput.js +18 -0
- package/Source/Shaders/Builtin/Structs/ray.glsl +11 -0
- package/Source/Shaders/Builtin/Structs/ray.js +13 -0
- package/Source/Shaders/Builtin/Structs/raySegment.glsl +27 -0
- package/Source/Shaders/Builtin/Structs/raySegment.js +29 -0
- package/Source/Shaders/Builtin/Structs/shadowParameters.glsl +15 -0
- package/Source/Shaders/Builtin/Structs/shadowParameters.js +17 -0
- package/Source/Shaders/CloudCollectionFS.glsl +263 -0
- package/Source/Shaders/CloudCollectionFS.js +265 -0
- package/Source/Shaders/CloudCollectionVS.glsl +48 -0
- package/Source/Shaders/CloudCollectionVS.js +50 -0
- package/Source/Shaders/CloudNoiseFS.glsl +92 -0
- package/Source/Shaders/CloudNoiseFS.js +94 -0
- package/Source/Shaders/CloudNoiseVS.glsl +18 -0
- package/Source/Shaders/CloudNoiseVS.js +20 -0
- package/Source/Shaders/CompareAndPackTranslucentDepth.glsl +12 -0
- package/Source/Shaders/CompareAndPackTranslucentDepth.js +14 -0
- package/Source/Shaders/CompositeOITFS.glsl +31 -0
- package/Source/Shaders/CompositeOITFS.js +33 -0
- package/Source/Shaders/ComputeIrradianceFS.glsl +103 -0
- package/Source/Shaders/ComputeIrradianceFS.js +105 -0
- package/Source/Shaders/ComputeRadianceMapFS.glsl +107 -0
- package/Source/Shaders/ComputeRadianceMapFS.js +109 -0
- package/Source/Shaders/ConvolveSpecularMapFS.glsl +70 -0
- package/Source/Shaders/ConvolveSpecularMapFS.js +72 -0
- package/Source/Shaders/ConvolveSpecularMapVS.glsl +24 -0
- package/Source/Shaders/ConvolveSpecularMapVS.js +26 -0
- package/Source/Shaders/DepthPlaneFS.glsl +36 -0
- package/Source/Shaders/DepthPlaneFS.js +38 -0
- package/Source/Shaders/DepthPlaneVS.glsl +11 -0
- package/Source/Shaders/DepthPlaneVS.js +13 -0
- package/Source/Shaders/EllipsoidFS.glsl +104 -0
- package/Source/Shaders/EllipsoidFS.js +106 -0
- package/Source/Shaders/EllipsoidVS.glsl +28 -0
- package/Source/Shaders/EllipsoidVS.js +30 -0
- package/Source/Shaders/FXAA3_11.glsl +650 -0
- package/Source/Shaders/FXAA3_11.js +680 -0
- package/Source/Shaders/GlobeFS.glsl +692 -0
- package/Source/Shaders/GlobeFS.js +694 -0
- package/Source/Shaders/GlobeVS.glsl +286 -0
- package/Source/Shaders/GlobeVS.js +288 -0
- package/Source/Shaders/GroundAtmosphere.glsl +18 -0
- package/Source/Shaders/GroundAtmosphere.js +20 -0
- package/Source/Shaders/Materials/AspectRampMaterial.glsl +11 -0
- package/Source/Shaders/Materials/AspectRampMaterial.js +13 -0
- package/Source/Shaders/Materials/BumpMapMaterial.glsl +29 -0
- package/Source/Shaders/Materials/BumpMapMaterial.js +31 -0
- package/Source/Shaders/Materials/CheckerboardMaterial.glsl +29 -0
- package/Source/Shaders/Materials/CheckerboardMaterial.js +31 -0
- package/Source/Shaders/Materials/DotMaterial.glsl +18 -0
- package/Source/Shaders/Materials/DotMaterial.js +20 -0
- package/Source/Shaders/Materials/ElevationBandMaterial.glsl +74 -0
- package/Source/Shaders/Materials/ElevationBandMaterial.js +76 -0
- package/Source/Shaders/Materials/ElevationContourMaterial.glsl +26 -0
- package/Source/Shaders/Materials/ElevationContourMaterial.js +28 -0
- package/Source/Shaders/Materials/ElevationRampMaterial.glsl +14 -0
- package/Source/Shaders/Materials/ElevationRampMaterial.js +16 -0
- package/Source/Shaders/Materials/FadeMaterial.glsl +37 -0
- package/Source/Shaders/Materials/FadeMaterial.js +39 -0
- package/Source/Shaders/Materials/GridMaterial.glsl +57 -0
- package/Source/Shaders/Materials/GridMaterial.js +59 -0
- package/Source/Shaders/Materials/NormalMapMaterial.glsl +19 -0
- package/Source/Shaders/Materials/NormalMapMaterial.js +21 -0
- package/Source/Shaders/Materials/PolylineArrowMaterial.glsl +63 -0
- package/Source/Shaders/Materials/PolylineArrowMaterial.js +65 -0
- package/Source/Shaders/Materials/PolylineDashMaterial.glsl +39 -0
- package/Source/Shaders/Materials/PolylineDashMaterial.js +41 -0
- package/Source/Shaders/Materials/PolylineGlowMaterial.glsl +25 -0
- package/Source/Shaders/Materials/PolylineGlowMaterial.js +27 -0
- package/Source/Shaders/Materials/PolylineOutlineMaterial.glsl +29 -0
- package/Source/Shaders/Materials/PolylineOutlineMaterial.js +31 -0
- package/Source/Shaders/Materials/RimLightingMaterial.glsl +21 -0
- package/Source/Shaders/Materials/RimLightingMaterial.js +23 -0
- package/Source/Shaders/Materials/SlopeRampMaterial.glsl +11 -0
- package/Source/Shaders/Materials/SlopeRampMaterial.js +13 -0
- package/Source/Shaders/Materials/StripeMaterial.glsl +24 -0
- package/Source/Shaders/Materials/StripeMaterial.js +26 -0
- package/Source/Shaders/Materials/Water.glsl +58 -0
- package/Source/Shaders/Materials/Water.js +60 -0
- package/Source/Shaders/Materials/WaterMaskMaterial.glsl +15 -0
- package/Source/Shaders/Materials/WaterMaskMaterial.js +17 -0
- package/Source/Shaders/Model/AtmosphereStageFS.glsl +108 -0
- package/Source/Shaders/Model/AtmosphereStageFS.js +110 -0
- package/Source/Shaders/Model/AtmosphereStageVS.glsl +12 -0
- package/Source/Shaders/Model/AtmosphereStageVS.js +14 -0
- package/Source/Shaders/Model/CPUStylingStageFS.glsl +49 -0
- package/Source/Shaders/Model/CPUStylingStageFS.js +51 -0
- package/Source/Shaders/Model/CPUStylingStageVS.glsl +30 -0
- package/Source/Shaders/Model/CPUStylingStageVS.js +32 -0
- package/Source/Shaders/Model/CustomShaderStageFS.glsl +18 -0
- package/Source/Shaders/Model/CustomShaderStageFS.js +20 -0
- package/Source/Shaders/Model/CustomShaderStageVS.glsl +19 -0
- package/Source/Shaders/Model/CustomShaderStageVS.js +21 -0
- package/Source/Shaders/Model/EdgeDetectionStageFS.glsl +58 -0
- package/Source/Shaders/Model/EdgeDetectionStageFS.js +60 -0
- package/Source/Shaders/Model/EdgeVisibilityStageFS.glsl +83 -0
- package/Source/Shaders/Model/EdgeVisibilityStageFS.js +85 -0
- package/Source/Shaders/Model/FeatureIdStageFS.glsl +4 -0
- package/Source/Shaders/Model/FeatureIdStageFS.js +6 -0
- package/Source/Shaders/Model/FeatureIdStageVS.glsl +6 -0
- package/Source/Shaders/Model/FeatureIdStageVS.js +8 -0
- package/Source/Shaders/Model/GeometryStageFS.glsl +25 -0
- package/Source/Shaders/Model/GeometryStageFS.js +27 -0
- package/Source/Shaders/Model/GeometryStageVS.glsl +42 -0
- package/Source/Shaders/Model/GeometryStageVS.js +44 -0
- package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +101 -0
- package/Source/Shaders/Model/ImageBasedLightingStageFS.js +103 -0
- package/Source/Shaders/Model/InstancingStageCommon.glsl +67 -0
- package/Source/Shaders/Model/InstancingStageCommon.js +69 -0
- package/Source/Shaders/Model/InstancingStageVS.glsl +18 -0
- package/Source/Shaders/Model/InstancingStageVS.js +20 -0
- package/Source/Shaders/Model/LegacyInstancingStageVS.glsl +20 -0
- package/Source/Shaders/Model/LegacyInstancingStageVS.js +22 -0
- package/Source/Shaders/Model/LightingStageFS.glsl +120 -0
- package/Source/Shaders/Model/LightingStageFS.js +122 -0
- package/Source/Shaders/Model/MaterialStageFS.glsl +497 -0
- package/Source/Shaders/Model/MaterialStageFS.js +499 -0
- package/Source/Shaders/Model/MetadataStageFS.glsl +9 -0
- package/Source/Shaders/Model/MetadataStageFS.js +11 -0
- package/Source/Shaders/Model/MetadataStageVS.glsl +10 -0
- package/Source/Shaders/Model/MetadataStageVS.js +12 -0
- package/Source/Shaders/Model/ModelClippingPlanesStageFS.glsl +88 -0
- package/Source/Shaders/Model/ModelClippingPlanesStageFS.js +90 -0
- package/Source/Shaders/Model/ModelClippingPolygonsStageFS.glsl +6 -0
- package/Source/Shaders/Model/ModelClippingPolygonsStageFS.js +8 -0
- package/Source/Shaders/Model/ModelClippingPolygonsStageVS.glsl +27 -0
- package/Source/Shaders/Model/ModelClippingPolygonsStageVS.js +29 -0
- package/Source/Shaders/Model/ModelColorStageFS.glsl +7 -0
- package/Source/Shaders/Model/ModelColorStageFS.js +9 -0
- package/Source/Shaders/Model/ModelFS.glsl +133 -0
- package/Source/Shaders/Model/ModelFS.js +135 -0
- package/Source/Shaders/Model/ModelSilhouetteStageFS.glsl +5 -0
- package/Source/Shaders/Model/ModelSilhouetteStageFS.js +6 -0
- package/Source/Shaders/Model/ModelSilhouetteStageVS.glsl +10 -0
- package/Source/Shaders/Model/ModelSilhouetteStageVS.js +12 -0
- package/Source/Shaders/Model/ModelSplitterStageFS.glsl +9 -0
- package/Source/Shaders/Model/ModelSplitterStageFS.js +11 -0
- package/Source/Shaders/Model/ModelVS.glsl +161 -0
- package/Source/Shaders/Model/ModelVS.js +163 -0
- package/Source/Shaders/Model/MorphTargetsStageVS.glsl +15 -0
- package/Source/Shaders/Model/MorphTargetsStageVS.js +16 -0
- package/Source/Shaders/Model/PointCloudStylingStageVS.glsl +45 -0
- package/Source/Shaders/Model/PointCloudStylingStageVS.js +47 -0
- package/Source/Shaders/Model/PrimitiveOutlineStageFS.glsl +15 -0
- package/Source/Shaders/Model/PrimitiveOutlineStageFS.js +17 -0
- package/Source/Shaders/Model/PrimitiveOutlineStageVS.glsl +3 -0
- package/Source/Shaders/Model/PrimitiveOutlineStageVS.js +5 -0
- package/Source/Shaders/Model/SelectedFeatureIdStageCommon.glsl +51 -0
- package/Source/Shaders/Model/SelectedFeatureIdStageCommon.js +53 -0
- package/Source/Shaders/Model/SkinningStageVS.glsl +18 -0
- package/Source/Shaders/Model/SkinningStageVS.js +19 -0
- package/Source/Shaders/Model/VerticalExaggerationStageVS.glsl +39 -0
- package/Source/Shaders/Model/VerticalExaggerationStageVS.js +41 -0
- package/Source/Shaders/PointPrimitiveCollectionFS.glsl +47 -0
- package/Source/Shaders/PointPrimitiveCollectionFS.js +49 -0
- package/Source/Shaders/PointPrimitiveCollectionVS.glsl +185 -0
- package/Source/Shaders/PointPrimitiveCollectionVS.js +187 -0
- package/Source/Shaders/PolygonSignedDistanceFS.glsl +100 -0
- package/Source/Shaders/PolygonSignedDistanceFS.js +101 -0
- package/Source/Shaders/PolylineCommon.glsl +176 -0
- package/Source/Shaders/PolylineCommon.js +178 -0
- package/Source/Shaders/PolylineFS.glsl +25 -0
- package/Source/Shaders/PolylineFS.js +27 -0
- package/Source/Shaders/PolylineShadowVolumeFS.glsl +86 -0
- package/Source/Shaders/PolylineShadowVolumeFS.js +88 -0
- package/Source/Shaders/PolylineShadowVolumeMorphFS.glsl +45 -0
- package/Source/Shaders/PolylineShadowVolumeMorphFS.js +47 -0
- package/Source/Shaders/PolylineShadowVolumeMorphVS.glsl +177 -0
- package/Source/Shaders/PolylineShadowVolumeMorphVS.js +179 -0
- package/Source/Shaders/PolylineShadowVolumeVS.glsl +168 -0
- package/Source/Shaders/PolylineShadowVolumeVS.js +170 -0
- package/Source/Shaders/PolylineVS.glsl +103 -0
- package/Source/Shaders/PolylineVS.js +105 -0
- package/Source/Shaders/PostProcessStages/AcesTonemappingStage.glsl +25 -0
- package/Source/Shaders/PostProcessStages/AcesTonemappingStage.js +27 -0
- package/Source/Shaders/PostProcessStages/AdditiveBlend.glsl +17 -0
- package/Source/Shaders/PostProcessStages/AdditiveBlend.js +19 -0
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +144 -0
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +146 -0
- package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.glsl +11 -0
- package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.js +13 -0
- package/Source/Shaders/PostProcessStages/BlackAndWhite.glsl +19 -0
- package/Source/Shaders/PostProcessStages/BlackAndWhite.js +21 -0
- package/Source/Shaders/PostProcessStages/BloomComposite.glsl +20 -0
- package/Source/Shaders/PostProcessStages/BloomComposite.js +22 -0
- package/Source/Shaders/PostProcessStages/BrightPass.glsl +30 -0
- package/Source/Shaders/PostProcessStages/BrightPass.js +32 -0
- package/Source/Shaders/PostProcessStages/Brightness.glsl +11 -0
- package/Source/Shaders/PostProcessStages/Brightness.js +13 -0
- package/Source/Shaders/PostProcessStages/CompositeTranslucentClassification.glsl +31 -0
- package/Source/Shaders/PostProcessStages/CompositeTranslucentClassification.js +33 -0
- package/Source/Shaders/PostProcessStages/ContrastBias.glsl +17 -0
- package/Source/Shaders/PostProcessStages/ContrastBias.js +19 -0
- package/Source/Shaders/PostProcessStages/DepthOfField.glsl +39 -0
- package/Source/Shaders/PostProcessStages/DepthOfField.js +41 -0
- package/Source/Shaders/PostProcessStages/DepthView.glsl +9 -0
- package/Source/Shaders/PostProcessStages/DepthView.js +11 -0
- package/Source/Shaders/PostProcessStages/DepthViewPacked.glsl +14 -0
- package/Source/Shaders/PostProcessStages/DepthViewPacked.js +16 -0
- package/Source/Shaders/PostProcessStages/EdgeDetection.glsl +60 -0
- package/Source/Shaders/PostProcessStages/EdgeDetection.js +62 -0
- package/Source/Shaders/PostProcessStages/FXAA.glsl +21 -0
- package/Source/Shaders/PostProcessStages/FXAA.js +23 -0
- package/Source/Shaders/PostProcessStages/FilmicTonemapping.glsl +40 -0
- package/Source/Shaders/PostProcessStages/FilmicTonemapping.js +42 -0
- package/Source/Shaders/PostProcessStages/GaussianBlur1D.glsl +47 -0
- package/Source/Shaders/PostProcessStages/GaussianBlur1D.js +49 -0
- package/Source/Shaders/PostProcessStages/LensFlare.glsl +153 -0
- package/Source/Shaders/PostProcessStages/LensFlare.js +155 -0
- package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.glsl +28 -0
- package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.js +30 -0
- package/Source/Shaders/PostProcessStages/NightVision.glsl +16 -0
- package/Source/Shaders/PostProcessStages/NightVision.js +18 -0
- package/Source/Shaders/PostProcessStages/PassThrough.glsl +8 -0
- package/Source/Shaders/PostProcessStages/PassThrough.js +10 -0
- package/Source/Shaders/PostProcessStages/PassThroughDepth.glsl +8 -0
- package/Source/Shaders/PostProcessStages/PassThroughDepth.js +10 -0
- package/Source/Shaders/PostProcessStages/PbrNeutralTonemapping.glsl +25 -0
- package/Source/Shaders/PostProcessStages/PbrNeutralTonemapping.js +27 -0
- package/Source/Shaders/PostProcessStages/PointCloudEyeDomeLighting.glsl +61 -0
- package/Source/Shaders/PostProcessStages/PointCloudEyeDomeLighting.js +63 -0
- package/Source/Shaders/PostProcessStages/ReinhardTonemapping.glsl +27 -0
- package/Source/Shaders/PostProcessStages/ReinhardTonemapping.js +29 -0
- package/Source/Shaders/PostProcessStages/Silhouette.glsl +11 -0
- package/Source/Shaders/PostProcessStages/Silhouette.js +13 -0
- package/Source/Shaders/PrimitiveGaussianSplatFS.glsl +18 -0
- package/Source/Shaders/PrimitiveGaussianSplatFS.js +20 -0
- package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +189 -0
- package/Source/Shaders/PrimitiveGaussianSplatVS.js +190 -0
- package/Source/Shaders/ReprojectWebMercatorFS.glsl +8 -0
- package/Source/Shaders/ReprojectWebMercatorFS.js +10 -0
- package/Source/Shaders/ReprojectWebMercatorVS.glsl +12 -0
- package/Source/Shaders/ReprojectWebMercatorVS.js +14 -0
- package/Source/Shaders/ShadowVolumeAppearanceFS.glsl +153 -0
- package/Source/Shaders/ShadowVolumeAppearanceFS.js +155 -0
- package/Source/Shaders/ShadowVolumeAppearanceVS.glsl +101 -0
- package/Source/Shaders/ShadowVolumeAppearanceVS.js +103 -0
- package/Source/Shaders/ShadowVolumeFS.glsl +13 -0
- package/Source/Shaders/ShadowVolumeFS.js +15 -0
- package/Source/Shaders/SkyAtmosphereCommon.glsl +81 -0
- package/Source/Shaders/SkyAtmosphereCommon.js +83 -0
- package/Source/Shaders/SkyAtmosphereFS.glsl +59 -0
- package/Source/Shaders/SkyAtmosphereFS.js +61 -0
- package/Source/Shaders/SkyAtmosphereVS.glsl +32 -0
- package/Source/Shaders/SkyAtmosphereVS.js +34 -0
- package/Source/Shaders/SkyBoxFS.glsl +9 -0
- package/Source/Shaders/SkyBoxFS.js +11 -0
- package/Source/Shaders/SkyBoxVS.glsl +9 -0
- package/Source/Shaders/SkyBoxVS.js +11 -0
- package/Source/Shaders/SunFS.glsl +9 -0
- package/Source/Shaders/SunFS.js +11 -0
- package/Source/Shaders/SunTextureFS.glsl +55 -0
- package/Source/Shaders/SunTextureFS.js +57 -0
- package/Source/Shaders/SunVS.glsl +28 -0
- package/Source/Shaders/SunVS.js +30 -0
- package/Source/Shaders/Vector3DTileClampedPolylinesFS.glsl +48 -0
- package/Source/Shaders/Vector3DTileClampedPolylinesFS.js +50 -0
- package/Source/Shaders/Vector3DTileClampedPolylinesVS.glsl +85 -0
- package/Source/Shaders/Vector3DTileClampedPolylinesVS.js +87 -0
- package/Source/Shaders/Vector3DTilePolylinesVS.glsl +22 -0
- package/Source/Shaders/Vector3DTilePolylinesVS.js +24 -0
- package/Source/Shaders/VectorTileVS.glsl +9 -0
- package/Source/Shaders/VectorTileVS.js +11 -0
- package/Source/Shaders/ViewportQuadFS.glsl +16 -0
- package/Source/Shaders/ViewportQuadFS.js +18 -0
- package/Source/Shaders/ViewportQuadVS.glsl +10 -0
- package/Source/Shaders/ViewportQuadVS.js +12 -0
- package/Source/Shaders/Voxels/IntersectBox.glsl +34 -0
- package/Source/Shaders/Voxels/IntersectBox.js +36 -0
- package/Source/Shaders/Voxels/IntersectCylinder.glsl +142 -0
- package/Source/Shaders/Voxels/IntersectCylinder.js +144 -0
- package/Source/Shaders/Voxels/IntersectDepth.glsl +27 -0
- package/Source/Shaders/Voxels/IntersectDepth.js +29 -0
- package/Source/Shaders/Voxels/IntersectEllipsoid.glsl +330 -0
- package/Source/Shaders/Voxels/IntersectEllipsoid.js +332 -0
- package/Source/Shaders/Voxels/IntersectLongitude.glsl +114 -0
- package/Source/Shaders/Voxels/IntersectLongitude.js +116 -0
- package/Source/Shaders/Voxels/IntersectPlane.glsl +80 -0
- package/Source/Shaders/Voxels/IntersectPlane.js +82 -0
- package/Source/Shaders/Voxels/Intersection.glsl +50 -0
- package/Source/Shaders/Voxels/Intersection.js +52 -0
- package/Source/Shaders/Voxels/IntersectionUtils.glsl +167 -0
- package/Source/Shaders/Voxels/IntersectionUtils.js +169 -0
- package/Source/Shaders/Voxels/Megatexture.glsl +123 -0
- package/Source/Shaders/Voxels/Megatexture.js +125 -0
- package/Source/Shaders/Voxels/Octree.glsl +257 -0
- package/Source/Shaders/Voxels/Octree.js +259 -0
- package/Source/Shaders/Voxels/VoxelFS.glsl +267 -0
- package/Source/Shaders/Voxels/VoxelFS.js +269 -0
- package/Source/Shaders/Voxels/VoxelUtils.glsl +12 -0
- package/Source/Shaders/Voxels/VoxelUtils.js +14 -0
- package/Source/Shaders/Voxels/VoxelVS.glsl +11 -0
- package/Source/Shaders/Voxels/VoxelVS.js +13 -0
- package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +30 -0
- package/Source/Shaders/Voxels/convertLocalToBoxUv.js +32 -0
- package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +97 -0
- package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +99 -0
- package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +193 -0
- package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +195 -0
- package/Source/ThirdParty/Workers/basis_transcoder.js +21 -0
- package/Source/ThirdParty/Workers/package.json +1 -0
- package/Source/ThirdParty/Workers/zip-web-worker.js +1 -0
- package/Source/ThirdParty/basis_transcoder.wasm +0 -0
- package/Source/ThirdParty/draco_decoder.wasm +0 -0
- package/Source/ThirdParty/google-earth-dbroot-parser.js +8337 -0
- package/Source/ThirdParty/wasm_splats_bg.wasm +0 -0
- package/Source/ThirdParty/zip-module.wasm +0 -0
- package/Source/Widget/CesiumWidget.css +119 -0
- package/Source/Widget/CesiumWidget.js +1606 -0
- package/Source/Widget/lighter.css +14 -0
- package/Source/Workers/combineGeometry.js +13 -0
- package/Source/Workers/createBoxGeometry.js +10 -0
- package/Source/Workers/createBoxOutlineGeometry.js +10 -0
- package/Source/Workers/createCircleGeometry.js +18 -0
- package/Source/Workers/createCircleOutlineGeometry.js +18 -0
- package/Source/Workers/createCoplanarPolygonGeometry.js +10 -0
- package/Source/Workers/createCoplanarPolygonOutlineGeometry.js +15 -0
- package/Source/Workers/createCorridorGeometry.js +12 -0
- package/Source/Workers/createCorridorOutlineGeometry.js +17 -0
- package/Source/Workers/createCylinderGeometry.js +10 -0
- package/Source/Workers/createCylinderOutlineGeometry.js +10 -0
- package/Source/Workers/createEllipseGeometry.js +14 -0
- package/Source/Workers/createEllipseOutlineGeometry.js +14 -0
- package/Source/Workers/createEllipsoidGeometry.js +10 -0
- package/Source/Workers/createEllipsoidOutlineGeometry.js +13 -0
- package/Source/Workers/createFrustumGeometry.js +10 -0
- package/Source/Workers/createFrustumOutlineGeometry.js +10 -0
- package/Source/Workers/createGeometry.js +78 -0
- package/Source/Workers/createGroundPolylineGeometry.js +16 -0
- package/Source/Workers/createPlaneGeometry.js +10 -0
- package/Source/Workers/createPlaneOutlineGeometry.js +10 -0
- package/Source/Workers/createPolygonGeometry.js +12 -0
- package/Source/Workers/createPolygonOutlineGeometry.js +12 -0
- package/Source/Workers/createPolylineGeometry.js +12 -0
- package/Source/Workers/createPolylineVolumeGeometry.js +17 -0
- package/Source/Workers/createPolylineVolumeOutlineGeometry.js +22 -0
- package/Source/Workers/createRectangleGeometry.js +14 -0
- package/Source/Workers/createRectangleOutlineGeometry.js +17 -0
- package/Source/Workers/createSimplePolylineGeometry.js +17 -0
- package/Source/Workers/createSphereGeometry.js +10 -0
- package/Source/Workers/createSphereOutlineGeometry.js +10 -0
- package/Source/Workers/createTaskProcessorWorker.js +113 -0
- package/Source/Workers/createVectorTileClampedPolylines.js +541 -0
- package/Source/Workers/createVectorTileGeometries.js +414 -0
- package/Source/Workers/createVectorTilePoints.js +81 -0
- package/Source/Workers/createVectorTilePolygons.js +412 -0
- package/Source/Workers/createVectorTilePolylines.js +210 -0
- package/Source/Workers/createVerticesFromCesium3DTilesTerrain.js +46 -0
- package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +651 -0
- package/Source/Workers/createVerticesFromHeightmap.js +53 -0
- package/Source/Workers/createVerticesFromQuantizedTerrainMesh.js +549 -0
- package/Source/Workers/createWallGeometry.js +12 -0
- package/Source/Workers/createWallOutlineGeometry.js +12 -0
- package/Source/Workers/decodeDraco.js +383 -0
- package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +268 -0
- package/Source/Workers/decodeI3S.js +1652 -0
- package/Source/Workers/gaussianSplatSorter.js +34 -0
- package/Source/Workers/gaussianSplatTextureGenerator.js +39 -0
- package/Source/Workers/incrementallyBuildTerrainPicker.js +108 -0
- package/Source/Workers/transcodeKTX2.js +308 -0
- package/Source/Workers/transferTypedArrayTest.js +16 -0
- package/Source/Workers/upsampleQuantizedTerrainMesh.js +681 -0
- package/Source/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +55 -0
- package/index.d.ts +46026 -0
- package/index.js +1227 -0
- package/package.json +79 -0
|
@@ -0,0 +1,2233 @@
|
|
|
1
|
+
import Cartesian2 from "../Core/Cartesian2.js";
|
|
2
|
+
import Cartesian3 from "../Core/Cartesian3.js";
|
|
3
|
+
import Cartesian4 from "../Core/Cartesian4.js";
|
|
4
|
+
import Check from "../Core/Check.js";
|
|
5
|
+
import Color from "../Core/Color.js";
|
|
6
|
+
import defined from "../Core/defined.js";
|
|
7
|
+
import DeveloperError from "../Core/DeveloperError.js";
|
|
8
|
+
import CesiumMath from "../Core/Math.js";
|
|
9
|
+
import RuntimeError from "../Core/RuntimeError.js";
|
|
10
|
+
import jsep from "jsep";
|
|
11
|
+
import ExpressionNodeType from "./ExpressionNodeType.js";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* An expression for a style applied to a {@link Cesium3DTileset}.
|
|
15
|
+
* <p>
|
|
16
|
+
* Evaluates an expression defined using the
|
|
17
|
+
* {@link https://github.com/CesiumGS/3d-tiles/tree/main/specification/Styling|3D Tiles Styling language}.
|
|
18
|
+
* </p>
|
|
19
|
+
* <p>
|
|
20
|
+
* Implements the {@link StyleExpression} interface.
|
|
21
|
+
* </p>
|
|
22
|
+
*
|
|
23
|
+
* @alias Expression
|
|
24
|
+
* @constructor
|
|
25
|
+
*
|
|
26
|
+
* @param {string} [expression] The expression defined using the 3D Tiles Styling language.
|
|
27
|
+
* @param {object} [defines] Defines in the style.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* const expression = new Cesium.Expression('(regExp("^Chest").test(${County})) && (${YearBuilt} >= 1970)');
|
|
31
|
+
* expression.evaluate(feature); // returns true or false depending on the feature's properties
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* const expression = new Cesium.Expression('(${Temperature} > 90) ? color("red") : color("white")');
|
|
35
|
+
* expression.evaluateColor(feature, result); // returns a Cesium.Color object
|
|
36
|
+
*/
|
|
37
|
+
function Expression(expression, defines) {
|
|
38
|
+
//>>includeStart('debug', pragmas.debug);
|
|
39
|
+
Check.typeOf.string("expression", expression);
|
|
40
|
+
//>>includeEnd('debug');
|
|
41
|
+
|
|
42
|
+
this._expression = expression;
|
|
43
|
+
expression = replaceDefines(expression, defines);
|
|
44
|
+
expression = replaceVariables(removeBackslashes(expression));
|
|
45
|
+
|
|
46
|
+
// customize jsep operators
|
|
47
|
+
jsep.addBinaryOp("=~", 0);
|
|
48
|
+
jsep.addBinaryOp("!~", 0);
|
|
49
|
+
|
|
50
|
+
let ast;
|
|
51
|
+
try {
|
|
52
|
+
ast = jsep(expression);
|
|
53
|
+
} catch (e) {
|
|
54
|
+
throw new RuntimeError(e);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
this._runtimeAst = createRuntimeAst(this, ast);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
Object.defineProperties(Expression.prototype, {
|
|
61
|
+
/**
|
|
62
|
+
* Gets the expression defined in the 3D Tiles Styling language.
|
|
63
|
+
*
|
|
64
|
+
* @memberof Expression.prototype
|
|
65
|
+
*
|
|
66
|
+
* @type {string}
|
|
67
|
+
* @readonly
|
|
68
|
+
*
|
|
69
|
+
* @default undefined
|
|
70
|
+
*/
|
|
71
|
+
expression: {
|
|
72
|
+
get: function () {
|
|
73
|
+
return this._expression;
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
// Scratch storage manager while evaluating deep expressions.
|
|
79
|
+
// For example, an expression like dot(vec4(${red}), vec4(${green}) * vec4(${blue}) requires 3 scratch Cartesian4's
|
|
80
|
+
const scratchStorage = {
|
|
81
|
+
arrayIndex: 0,
|
|
82
|
+
arrayArray: [[]],
|
|
83
|
+
cartesian2Index: 0,
|
|
84
|
+
cartesian3Index: 0,
|
|
85
|
+
cartesian4Index: 0,
|
|
86
|
+
cartesian2Array: [new Cartesian2()],
|
|
87
|
+
cartesian3Array: [new Cartesian3()],
|
|
88
|
+
cartesian4Array: [new Cartesian4()],
|
|
89
|
+
reset: function () {
|
|
90
|
+
this.arrayIndex = 0;
|
|
91
|
+
this.cartesian2Index = 0;
|
|
92
|
+
this.cartesian3Index = 0;
|
|
93
|
+
this.cartesian4Index = 0;
|
|
94
|
+
},
|
|
95
|
+
getArray: function () {
|
|
96
|
+
if (this.arrayIndex >= this.arrayArray.length) {
|
|
97
|
+
this.arrayArray.push([]);
|
|
98
|
+
}
|
|
99
|
+
const array = this.arrayArray[this.arrayIndex++];
|
|
100
|
+
array.length = 0;
|
|
101
|
+
return array;
|
|
102
|
+
},
|
|
103
|
+
getCartesian2: function () {
|
|
104
|
+
if (this.cartesian2Index >= this.cartesian2Array.length) {
|
|
105
|
+
this.cartesian2Array.push(new Cartesian2());
|
|
106
|
+
}
|
|
107
|
+
return this.cartesian2Array[this.cartesian2Index++];
|
|
108
|
+
},
|
|
109
|
+
getCartesian3: function () {
|
|
110
|
+
if (this.cartesian3Index >= this.cartesian3Array.length) {
|
|
111
|
+
this.cartesian3Array.push(new Cartesian3());
|
|
112
|
+
}
|
|
113
|
+
return this.cartesian3Array[this.cartesian3Index++];
|
|
114
|
+
},
|
|
115
|
+
getCartesian4: function () {
|
|
116
|
+
if (this.cartesian4Index >= this.cartesian4Array.length) {
|
|
117
|
+
this.cartesian4Array.push(new Cartesian4());
|
|
118
|
+
}
|
|
119
|
+
return this.cartesian4Array[this.cartesian4Index++];
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Evaluates the result of an expression, optionally using the provided feature's properties. If the result of
|
|
125
|
+
* the expression in the
|
|
126
|
+
* {@link https://github.com/CesiumGS/3d-tiles/tree/main/specification/Styling|3D Tiles Styling language}
|
|
127
|
+
* is of type <code>Boolean</code>, <code>Number</code>, or <code>String</code>, the corresponding JavaScript
|
|
128
|
+
* primitive type will be returned. If the result is a <code>RegExp</code>, a Javascript <code>RegExp</code>
|
|
129
|
+
* object will be returned. If the result is a <code>Cartesian2</code>, <code>Cartesian3</code>, or <code>Cartesian4</code>,
|
|
130
|
+
* a {@link Cartesian2}, {@link Cartesian3}, or {@link Cartesian4} object will be returned. If the <code>result</code> argument is
|
|
131
|
+
* a {@link Color}, the {@link Cartesian4} value is converted to a {@link Color} and then returned.
|
|
132
|
+
*
|
|
133
|
+
* @param {Cesium3DTileFeature} feature The feature whose properties may be used as variables in the expression.
|
|
134
|
+
* @param {object} [result] The object onto which to store the result.
|
|
135
|
+
* @returns {boolean|number|string|RegExp|Cartesian2|Cartesian3|Cartesian4|Color} The result of evaluating the expression.
|
|
136
|
+
*/
|
|
137
|
+
Expression.prototype.evaluate = function (feature, result) {
|
|
138
|
+
scratchStorage.reset();
|
|
139
|
+
const value = this._runtimeAst.evaluate(feature);
|
|
140
|
+
if (result instanceof Color && value instanceof Cartesian4) {
|
|
141
|
+
return Color.fromCartesian4(value, result);
|
|
142
|
+
}
|
|
143
|
+
if (
|
|
144
|
+
value instanceof Cartesian2 ||
|
|
145
|
+
value instanceof Cartesian3 ||
|
|
146
|
+
value instanceof Cartesian4
|
|
147
|
+
) {
|
|
148
|
+
return value.clone(result);
|
|
149
|
+
}
|
|
150
|
+
return value;
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Evaluates the result of a Color expression, optionally using the provided feature's properties.
|
|
155
|
+
* <p>
|
|
156
|
+
* This is equivalent to {@link Expression#evaluate} but always returns a {@link Color} object.
|
|
157
|
+
* </p>
|
|
158
|
+
*
|
|
159
|
+
* @param {Cesium3DTileFeature} feature The feature whose properties may be used as variables in the expression.
|
|
160
|
+
* @param {Color} [result] The object in which to store the result
|
|
161
|
+
* @returns {Color} The modified result parameter or a new Color instance if one was not provided.
|
|
162
|
+
*/
|
|
163
|
+
Expression.prototype.evaluateColor = function (feature, result) {
|
|
164
|
+
scratchStorage.reset();
|
|
165
|
+
const color = this._runtimeAst.evaluate(feature);
|
|
166
|
+
return Color.fromCartesian4(color, result);
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Gets the shader function for this expression.
|
|
171
|
+
* Returns undefined if the shader function can't be generated from this expression.
|
|
172
|
+
*
|
|
173
|
+
* @param {string} functionSignature Signature of the generated function.
|
|
174
|
+
* @param {object} variableSubstitutionMap Maps variable names to shader variable names.
|
|
175
|
+
* @param {object} shaderState Stores information about the generated shader function, including whether it is translucent.
|
|
176
|
+
* @param {string} returnType The return type of the generated function.
|
|
177
|
+
*
|
|
178
|
+
* @returns {string} The shader function.
|
|
179
|
+
*
|
|
180
|
+
* @private
|
|
181
|
+
*/
|
|
182
|
+
Expression.prototype.getShaderFunction = function (
|
|
183
|
+
functionSignature,
|
|
184
|
+
variableSubstitutionMap,
|
|
185
|
+
shaderState,
|
|
186
|
+
returnType,
|
|
187
|
+
) {
|
|
188
|
+
let shaderExpression = this.getShaderExpression(
|
|
189
|
+
variableSubstitutionMap,
|
|
190
|
+
shaderState,
|
|
191
|
+
);
|
|
192
|
+
|
|
193
|
+
shaderExpression =
|
|
194
|
+
`${returnType} ${functionSignature}\n` +
|
|
195
|
+
`{\n` +
|
|
196
|
+
` return ${shaderExpression};\n` +
|
|
197
|
+
`}\n`;
|
|
198
|
+
|
|
199
|
+
return shaderExpression;
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Gets the shader expression for this expression.
|
|
204
|
+
* Returns undefined if the shader expression can't be generated from this expression.
|
|
205
|
+
*
|
|
206
|
+
* @param {object} variableSubstitutionMap Maps variable names to shader variable names.
|
|
207
|
+
* @param {object} shaderState Stores information about the generated shader function, including whether it is translucent.
|
|
208
|
+
*
|
|
209
|
+
* @returns {string} The shader expression.
|
|
210
|
+
*
|
|
211
|
+
* @private
|
|
212
|
+
*/
|
|
213
|
+
Expression.prototype.getShaderExpression = function (
|
|
214
|
+
variableSubstitutionMap,
|
|
215
|
+
shaderState,
|
|
216
|
+
) {
|
|
217
|
+
return this._runtimeAst.getShaderExpression(
|
|
218
|
+
variableSubstitutionMap,
|
|
219
|
+
shaderState,
|
|
220
|
+
);
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Gets the variables used by the expression.
|
|
225
|
+
*
|
|
226
|
+
* @returns {string[]} The variables used by the expression.
|
|
227
|
+
*
|
|
228
|
+
* @private
|
|
229
|
+
*/
|
|
230
|
+
Expression.prototype.getVariables = function () {
|
|
231
|
+
let variables = [];
|
|
232
|
+
|
|
233
|
+
this._runtimeAst.getVariables(variables);
|
|
234
|
+
|
|
235
|
+
// Remove duplicates
|
|
236
|
+
variables = variables.filter(function (variable, index, variables) {
|
|
237
|
+
return variables.indexOf(variable) === index;
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
return variables;
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
const unaryOperators = ["!", "-", "+"];
|
|
244
|
+
const binaryOperators = [
|
|
245
|
+
"+",
|
|
246
|
+
"-",
|
|
247
|
+
"*",
|
|
248
|
+
"/",
|
|
249
|
+
"%",
|
|
250
|
+
"===",
|
|
251
|
+
"!==",
|
|
252
|
+
">",
|
|
253
|
+
">=",
|
|
254
|
+
"<",
|
|
255
|
+
"<=",
|
|
256
|
+
"&&",
|
|
257
|
+
"||",
|
|
258
|
+
"!~",
|
|
259
|
+
"=~",
|
|
260
|
+
];
|
|
261
|
+
|
|
262
|
+
const variableRegex = /\${(.*?)}/g; // Matches ${variable_name}
|
|
263
|
+
const backslashRegex = /\\/g;
|
|
264
|
+
const backslashReplacement = "@#%";
|
|
265
|
+
const replacementRegex = /@#%/g;
|
|
266
|
+
|
|
267
|
+
const scratchColor = new Color();
|
|
268
|
+
|
|
269
|
+
const unaryFunctions = {
|
|
270
|
+
abs: getEvaluateUnaryComponentwise(Math.abs),
|
|
271
|
+
sqrt: getEvaluateUnaryComponentwise(Math.sqrt),
|
|
272
|
+
cos: getEvaluateUnaryComponentwise(Math.cos),
|
|
273
|
+
sin: getEvaluateUnaryComponentwise(Math.sin),
|
|
274
|
+
tan: getEvaluateUnaryComponentwise(Math.tan),
|
|
275
|
+
acos: getEvaluateUnaryComponentwise(Math.acos),
|
|
276
|
+
asin: getEvaluateUnaryComponentwise(Math.asin),
|
|
277
|
+
atan: getEvaluateUnaryComponentwise(Math.atan),
|
|
278
|
+
radians: getEvaluateUnaryComponentwise(CesiumMath.toRadians),
|
|
279
|
+
degrees: getEvaluateUnaryComponentwise(CesiumMath.toDegrees),
|
|
280
|
+
sign: getEvaluateUnaryComponentwise(CesiumMath.sign),
|
|
281
|
+
floor: getEvaluateUnaryComponentwise(Math.floor),
|
|
282
|
+
ceil: getEvaluateUnaryComponentwise(Math.ceil),
|
|
283
|
+
round: getEvaluateUnaryComponentwise(Math.round),
|
|
284
|
+
exp: getEvaluateUnaryComponentwise(Math.exp),
|
|
285
|
+
exp2: getEvaluateUnaryComponentwise(exp2),
|
|
286
|
+
log: getEvaluateUnaryComponentwise(Math.log),
|
|
287
|
+
log2: getEvaluateUnaryComponentwise(log2),
|
|
288
|
+
fract: getEvaluateUnaryComponentwise(fract),
|
|
289
|
+
length: length,
|
|
290
|
+
normalize: normalize,
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
const binaryFunctions = {
|
|
294
|
+
atan2: getEvaluateBinaryComponentwise(Math.atan2, false),
|
|
295
|
+
pow: getEvaluateBinaryComponentwise(Math.pow, false),
|
|
296
|
+
min: getEvaluateBinaryComponentwise(Math.min, true),
|
|
297
|
+
max: getEvaluateBinaryComponentwise(Math.max, true),
|
|
298
|
+
distance: distance,
|
|
299
|
+
dot: dot,
|
|
300
|
+
cross: cross,
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
const ternaryFunctions = {
|
|
304
|
+
clamp: getEvaluateTernaryComponentwise(CesiumMath.clamp, true),
|
|
305
|
+
mix: getEvaluateTernaryComponentwise(CesiumMath.lerp, true),
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
function fract(number) {
|
|
309
|
+
return number - Math.floor(number);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
function exp2(exponent) {
|
|
313
|
+
return Math.pow(2.0, exponent);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
function log2(number) {
|
|
317
|
+
return CesiumMath.log2(number);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
function getEvaluateUnaryComponentwise(operation) {
|
|
321
|
+
return function (call, left) {
|
|
322
|
+
if (typeof left === "number") {
|
|
323
|
+
return operation(left);
|
|
324
|
+
} else if (left instanceof Cartesian2) {
|
|
325
|
+
return Cartesian2.fromElements(
|
|
326
|
+
operation(left.x),
|
|
327
|
+
operation(left.y),
|
|
328
|
+
scratchStorage.getCartesian2(),
|
|
329
|
+
);
|
|
330
|
+
} else if (left instanceof Cartesian3) {
|
|
331
|
+
return Cartesian3.fromElements(
|
|
332
|
+
operation(left.x),
|
|
333
|
+
operation(left.y),
|
|
334
|
+
operation(left.z),
|
|
335
|
+
scratchStorage.getCartesian3(),
|
|
336
|
+
);
|
|
337
|
+
} else if (left instanceof Cartesian4) {
|
|
338
|
+
return Cartesian4.fromElements(
|
|
339
|
+
operation(left.x),
|
|
340
|
+
operation(left.y),
|
|
341
|
+
operation(left.z),
|
|
342
|
+
operation(left.w),
|
|
343
|
+
scratchStorage.getCartesian4(),
|
|
344
|
+
);
|
|
345
|
+
}
|
|
346
|
+
throw new RuntimeError(
|
|
347
|
+
`Function "${call}" requires a vector or number argument. Argument is ${left}.`,
|
|
348
|
+
);
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
function getEvaluateBinaryComponentwise(operation, allowScalar) {
|
|
353
|
+
return function (call, left, right) {
|
|
354
|
+
if (allowScalar && typeof right === "number") {
|
|
355
|
+
if (typeof left === "number") {
|
|
356
|
+
return operation(left, right);
|
|
357
|
+
} else if (left instanceof Cartesian2) {
|
|
358
|
+
return Cartesian2.fromElements(
|
|
359
|
+
operation(left.x, right),
|
|
360
|
+
operation(left.y, right),
|
|
361
|
+
scratchStorage.getCartesian2(),
|
|
362
|
+
);
|
|
363
|
+
} else if (left instanceof Cartesian3) {
|
|
364
|
+
return Cartesian3.fromElements(
|
|
365
|
+
operation(left.x, right),
|
|
366
|
+
operation(left.y, right),
|
|
367
|
+
operation(left.z, right),
|
|
368
|
+
scratchStorage.getCartesian3(),
|
|
369
|
+
);
|
|
370
|
+
} else if (left instanceof Cartesian4) {
|
|
371
|
+
return Cartesian4.fromElements(
|
|
372
|
+
operation(left.x, right),
|
|
373
|
+
operation(left.y, right),
|
|
374
|
+
operation(left.z, right),
|
|
375
|
+
operation(left.w, right),
|
|
376
|
+
scratchStorage.getCartesian4(),
|
|
377
|
+
);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
if (typeof left === "number" && typeof right === "number") {
|
|
382
|
+
return operation(left, right);
|
|
383
|
+
} else if (left instanceof Cartesian2 && right instanceof Cartesian2) {
|
|
384
|
+
return Cartesian2.fromElements(
|
|
385
|
+
operation(left.x, right.x),
|
|
386
|
+
operation(left.y, right.y),
|
|
387
|
+
scratchStorage.getCartesian2(),
|
|
388
|
+
);
|
|
389
|
+
} else if (left instanceof Cartesian3 && right instanceof Cartesian3) {
|
|
390
|
+
return Cartesian3.fromElements(
|
|
391
|
+
operation(left.x, right.x),
|
|
392
|
+
operation(left.y, right.y),
|
|
393
|
+
operation(left.z, right.z),
|
|
394
|
+
scratchStorage.getCartesian3(),
|
|
395
|
+
);
|
|
396
|
+
} else if (left instanceof Cartesian4 && right instanceof Cartesian4) {
|
|
397
|
+
return Cartesian4.fromElements(
|
|
398
|
+
operation(left.x, right.x),
|
|
399
|
+
operation(left.y, right.y),
|
|
400
|
+
operation(left.z, right.z),
|
|
401
|
+
operation(left.w, right.w),
|
|
402
|
+
scratchStorage.getCartesian4(),
|
|
403
|
+
);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
throw new RuntimeError(
|
|
407
|
+
`Function "${call}" requires vector or number arguments of matching types. Arguments are ${left} and ${right}.`,
|
|
408
|
+
);
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
function getEvaluateTernaryComponentwise(operation, allowScalar) {
|
|
413
|
+
return function (call, left, right, test) {
|
|
414
|
+
if (allowScalar && typeof test === "number") {
|
|
415
|
+
if (typeof left === "number" && typeof right === "number") {
|
|
416
|
+
return operation(left, right, test);
|
|
417
|
+
} else if (left instanceof Cartesian2 && right instanceof Cartesian2) {
|
|
418
|
+
return Cartesian2.fromElements(
|
|
419
|
+
operation(left.x, right.x, test),
|
|
420
|
+
operation(left.y, right.y, test),
|
|
421
|
+
scratchStorage.getCartesian2(),
|
|
422
|
+
);
|
|
423
|
+
} else if (left instanceof Cartesian3 && right instanceof Cartesian3) {
|
|
424
|
+
return Cartesian3.fromElements(
|
|
425
|
+
operation(left.x, right.x, test),
|
|
426
|
+
operation(left.y, right.y, test),
|
|
427
|
+
operation(left.z, right.z, test),
|
|
428
|
+
scratchStorage.getCartesian3(),
|
|
429
|
+
);
|
|
430
|
+
} else if (left instanceof Cartesian4 && right instanceof Cartesian4) {
|
|
431
|
+
return Cartesian4.fromElements(
|
|
432
|
+
operation(left.x, right.x, test),
|
|
433
|
+
operation(left.y, right.y, test),
|
|
434
|
+
operation(left.z, right.z, test),
|
|
435
|
+
operation(left.w, right.w, test),
|
|
436
|
+
scratchStorage.getCartesian4(),
|
|
437
|
+
);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
if (
|
|
442
|
+
typeof left === "number" &&
|
|
443
|
+
typeof right === "number" &&
|
|
444
|
+
typeof test === "number"
|
|
445
|
+
) {
|
|
446
|
+
return operation(left, right, test);
|
|
447
|
+
} else if (
|
|
448
|
+
left instanceof Cartesian2 &&
|
|
449
|
+
right instanceof Cartesian2 &&
|
|
450
|
+
test instanceof Cartesian2
|
|
451
|
+
) {
|
|
452
|
+
return Cartesian2.fromElements(
|
|
453
|
+
operation(left.x, right.x, test.x),
|
|
454
|
+
operation(left.y, right.y, test.y),
|
|
455
|
+
scratchStorage.getCartesian2(),
|
|
456
|
+
);
|
|
457
|
+
} else if (
|
|
458
|
+
left instanceof Cartesian3 &&
|
|
459
|
+
right instanceof Cartesian3 &&
|
|
460
|
+
test instanceof Cartesian3
|
|
461
|
+
) {
|
|
462
|
+
return Cartesian3.fromElements(
|
|
463
|
+
operation(left.x, right.x, test.x),
|
|
464
|
+
operation(left.y, right.y, test.y),
|
|
465
|
+
operation(left.z, right.z, test.z),
|
|
466
|
+
scratchStorage.getCartesian3(),
|
|
467
|
+
);
|
|
468
|
+
} else if (
|
|
469
|
+
left instanceof Cartesian4 &&
|
|
470
|
+
right instanceof Cartesian4 &&
|
|
471
|
+
test instanceof Cartesian4
|
|
472
|
+
) {
|
|
473
|
+
return Cartesian4.fromElements(
|
|
474
|
+
operation(left.x, right.x, test.x),
|
|
475
|
+
operation(left.y, right.y, test.y),
|
|
476
|
+
operation(left.z, right.z, test.z),
|
|
477
|
+
operation(left.w, right.w, test.w),
|
|
478
|
+
scratchStorage.getCartesian4(),
|
|
479
|
+
);
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
throw new RuntimeError(
|
|
483
|
+
`Function "${call}" requires vector or number arguments of matching types. Arguments are ${left}, ${right}, and ${test}.`,
|
|
484
|
+
);
|
|
485
|
+
};
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
function length(call, left) {
|
|
489
|
+
if (typeof left === "number") {
|
|
490
|
+
return Math.abs(left);
|
|
491
|
+
} else if (left instanceof Cartesian2) {
|
|
492
|
+
return Cartesian2.magnitude(left);
|
|
493
|
+
} else if (left instanceof Cartesian3) {
|
|
494
|
+
return Cartesian3.magnitude(left);
|
|
495
|
+
} else if (left instanceof Cartesian4) {
|
|
496
|
+
return Cartesian4.magnitude(left);
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
throw new RuntimeError(
|
|
500
|
+
`Function "${call}" requires a vector or number argument. Argument is ${left}.`,
|
|
501
|
+
);
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
function normalize(call, left) {
|
|
505
|
+
if (typeof left === "number") {
|
|
506
|
+
return 1.0;
|
|
507
|
+
} else if (left instanceof Cartesian2) {
|
|
508
|
+
return Cartesian2.normalize(left, scratchStorage.getCartesian2());
|
|
509
|
+
} else if (left instanceof Cartesian3) {
|
|
510
|
+
return Cartesian3.normalize(left, scratchStorage.getCartesian3());
|
|
511
|
+
} else if (left instanceof Cartesian4) {
|
|
512
|
+
return Cartesian4.normalize(left, scratchStorage.getCartesian4());
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
throw new RuntimeError(
|
|
516
|
+
`Function "${call}" requires a vector or number argument. Argument is ${left}.`,
|
|
517
|
+
);
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
function distance(call, left, right) {
|
|
521
|
+
if (typeof left === "number" && typeof right === "number") {
|
|
522
|
+
return Math.abs(left - right);
|
|
523
|
+
} else if (left instanceof Cartesian2 && right instanceof Cartesian2) {
|
|
524
|
+
return Cartesian2.distance(left, right);
|
|
525
|
+
} else if (left instanceof Cartesian3 && right instanceof Cartesian3) {
|
|
526
|
+
return Cartesian3.distance(left, right);
|
|
527
|
+
} else if (left instanceof Cartesian4 && right instanceof Cartesian4) {
|
|
528
|
+
return Cartesian4.distance(left, right);
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
throw new RuntimeError(
|
|
532
|
+
`Function "${call}" requires vector or number arguments of matching types. Arguments are ${left} and ${right}.`,
|
|
533
|
+
);
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
function dot(call, left, right) {
|
|
537
|
+
if (typeof left === "number" && typeof right === "number") {
|
|
538
|
+
return left * right;
|
|
539
|
+
} else if (left instanceof Cartesian2 && right instanceof Cartesian2) {
|
|
540
|
+
return Cartesian2.dot(left, right);
|
|
541
|
+
} else if (left instanceof Cartesian3 && right instanceof Cartesian3) {
|
|
542
|
+
return Cartesian3.dot(left, right);
|
|
543
|
+
} else if (left instanceof Cartesian4 && right instanceof Cartesian4) {
|
|
544
|
+
return Cartesian4.dot(left, right);
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
throw new RuntimeError(
|
|
548
|
+
`Function "${call}" requires vector or number arguments of matching types. Arguments are ${left} and ${right}.`,
|
|
549
|
+
);
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
function cross(call, left, right) {
|
|
553
|
+
if (left instanceof Cartesian3 && right instanceof Cartesian3) {
|
|
554
|
+
return Cartesian3.cross(left, right, scratchStorage.getCartesian3());
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
throw new RuntimeError(
|
|
558
|
+
`Function "${call}" requires vec3 arguments. Arguments are ${left} and ${right}.`,
|
|
559
|
+
);
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
function Node(type, value, left, right, test) {
|
|
563
|
+
this._type = type;
|
|
564
|
+
this._value = value;
|
|
565
|
+
this._left = left;
|
|
566
|
+
this._right = right;
|
|
567
|
+
this._test = test;
|
|
568
|
+
this.evaluate = undefined;
|
|
569
|
+
|
|
570
|
+
setEvaluateFunction(this);
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
function replaceDefines(expression, defines) {
|
|
574
|
+
if (!defined(defines)) {
|
|
575
|
+
return expression;
|
|
576
|
+
}
|
|
577
|
+
for (const key in defines) {
|
|
578
|
+
if (defines.hasOwnProperty(key)) {
|
|
579
|
+
const definePlaceholder = new RegExp(`\\$\\{${key}\\}`, "g");
|
|
580
|
+
const defineReplace = `(${defines[key]})`;
|
|
581
|
+
if (defined(defineReplace)) {
|
|
582
|
+
expression = expression.replace(definePlaceholder, defineReplace);
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
return expression;
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
function removeBackslashes(expression) {
|
|
590
|
+
return expression.replace(backslashRegex, backslashReplacement);
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
function replaceBackslashes(expression) {
|
|
594
|
+
return expression.replace(replacementRegex, "\\");
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
function replaceVariables(expression) {
|
|
598
|
+
let exp = expression;
|
|
599
|
+
let result = "";
|
|
600
|
+
let i = exp.indexOf("${");
|
|
601
|
+
while (i >= 0) {
|
|
602
|
+
// Check if string is inside quotes
|
|
603
|
+
const openSingleQuote = exp.indexOf("'");
|
|
604
|
+
const openDoubleQuote = exp.indexOf('"');
|
|
605
|
+
let closeQuote;
|
|
606
|
+
if (openSingleQuote >= 0 && openSingleQuote < i) {
|
|
607
|
+
closeQuote = exp.indexOf("'", openSingleQuote + 1);
|
|
608
|
+
result += exp.substr(0, closeQuote + 1);
|
|
609
|
+
exp = exp.substr(closeQuote + 1);
|
|
610
|
+
i = exp.indexOf("${");
|
|
611
|
+
} else if (openDoubleQuote >= 0 && openDoubleQuote < i) {
|
|
612
|
+
closeQuote = exp.indexOf('"', openDoubleQuote + 1);
|
|
613
|
+
result += exp.substr(0, closeQuote + 1);
|
|
614
|
+
exp = exp.substr(closeQuote + 1);
|
|
615
|
+
i = exp.indexOf("${");
|
|
616
|
+
} else {
|
|
617
|
+
result += exp.substr(0, i);
|
|
618
|
+
const j = exp.indexOf("}");
|
|
619
|
+
if (j < 0) {
|
|
620
|
+
throw new RuntimeError("Unmatched {.");
|
|
621
|
+
}
|
|
622
|
+
result += `czm_${exp.substr(i + 2, j - (i + 2))}`;
|
|
623
|
+
exp = exp.substr(j + 1);
|
|
624
|
+
i = exp.indexOf("${");
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
result += exp;
|
|
628
|
+
return result;
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
function parseLiteral(ast) {
|
|
632
|
+
const type = typeof ast.value;
|
|
633
|
+
if (ast.value === null) {
|
|
634
|
+
return new Node(ExpressionNodeType.LITERAL_NULL, null);
|
|
635
|
+
} else if (type === "boolean") {
|
|
636
|
+
return new Node(ExpressionNodeType.LITERAL_BOOLEAN, ast.value);
|
|
637
|
+
} else if (type === "number") {
|
|
638
|
+
return new Node(ExpressionNodeType.LITERAL_NUMBER, ast.value);
|
|
639
|
+
} else if (type === "string") {
|
|
640
|
+
if (ast.value.indexOf("${") >= 0) {
|
|
641
|
+
return new Node(ExpressionNodeType.VARIABLE_IN_STRING, ast.value);
|
|
642
|
+
}
|
|
643
|
+
return new Node(
|
|
644
|
+
ExpressionNodeType.LITERAL_STRING,
|
|
645
|
+
replaceBackslashes(ast.value),
|
|
646
|
+
);
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
function parseCall(expression, ast) {
|
|
651
|
+
const args = ast.arguments;
|
|
652
|
+
const argsLength = args.length;
|
|
653
|
+
let call;
|
|
654
|
+
let val, left, right;
|
|
655
|
+
|
|
656
|
+
// Member function calls
|
|
657
|
+
if (ast.callee.type === "MemberExpression") {
|
|
658
|
+
call = ast.callee.property.name;
|
|
659
|
+
const object = ast.callee.object;
|
|
660
|
+
if (call === "test" || call === "exec") {
|
|
661
|
+
// Make sure this is called on a valid type
|
|
662
|
+
if (!defined(object.callee) || object.callee.name !== "regExp") {
|
|
663
|
+
throw new RuntimeError(`${call} is not a function.`);
|
|
664
|
+
}
|
|
665
|
+
if (argsLength === 0) {
|
|
666
|
+
if (call === "test") {
|
|
667
|
+
return new Node(ExpressionNodeType.LITERAL_BOOLEAN, false);
|
|
668
|
+
}
|
|
669
|
+
return new Node(ExpressionNodeType.LITERAL_NULL, null);
|
|
670
|
+
}
|
|
671
|
+
left = createRuntimeAst(expression, object);
|
|
672
|
+
right = createRuntimeAst(expression, args[0]);
|
|
673
|
+
return new Node(ExpressionNodeType.FUNCTION_CALL, call, left, right);
|
|
674
|
+
} else if (call === "toString") {
|
|
675
|
+
val = createRuntimeAst(expression, object);
|
|
676
|
+
return new Node(ExpressionNodeType.FUNCTION_CALL, call, val);
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
throw new RuntimeError(`Unexpected function call "${call}".`);
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
// Non-member function calls
|
|
683
|
+
call = ast.callee.name;
|
|
684
|
+
if (call === "color") {
|
|
685
|
+
if (argsLength === 0) {
|
|
686
|
+
return new Node(ExpressionNodeType.LITERAL_COLOR, call);
|
|
687
|
+
}
|
|
688
|
+
val = createRuntimeAst(expression, args[0]);
|
|
689
|
+
if (defined(args[1])) {
|
|
690
|
+
const alpha = createRuntimeAst(expression, args[1]);
|
|
691
|
+
return new Node(ExpressionNodeType.LITERAL_COLOR, call, [val, alpha]);
|
|
692
|
+
}
|
|
693
|
+
return new Node(ExpressionNodeType.LITERAL_COLOR, call, [val]);
|
|
694
|
+
} else if (call === "rgb" || call === "hsl") {
|
|
695
|
+
if (argsLength < 3) {
|
|
696
|
+
throw new RuntimeError(`${call} requires three arguments.`);
|
|
697
|
+
}
|
|
698
|
+
val = [
|
|
699
|
+
createRuntimeAst(expression, args[0]),
|
|
700
|
+
createRuntimeAst(expression, args[1]),
|
|
701
|
+
createRuntimeAst(expression, args[2]),
|
|
702
|
+
];
|
|
703
|
+
return new Node(ExpressionNodeType.LITERAL_COLOR, call, val);
|
|
704
|
+
} else if (call === "rgba" || call === "hsla") {
|
|
705
|
+
if (argsLength < 4) {
|
|
706
|
+
throw new RuntimeError(`${call} requires four arguments.`);
|
|
707
|
+
}
|
|
708
|
+
val = [
|
|
709
|
+
createRuntimeAst(expression, args[0]),
|
|
710
|
+
createRuntimeAst(expression, args[1]),
|
|
711
|
+
createRuntimeAst(expression, args[2]),
|
|
712
|
+
createRuntimeAst(expression, args[3]),
|
|
713
|
+
];
|
|
714
|
+
return new Node(ExpressionNodeType.LITERAL_COLOR, call, val);
|
|
715
|
+
} else if (call === "vec2" || call === "vec3" || call === "vec4") {
|
|
716
|
+
// Check for invalid constructors at evaluation time
|
|
717
|
+
val = new Array(argsLength);
|
|
718
|
+
for (let i = 0; i < argsLength; ++i) {
|
|
719
|
+
val[i] = createRuntimeAst(expression, args[i]);
|
|
720
|
+
}
|
|
721
|
+
return new Node(ExpressionNodeType.LITERAL_VECTOR, call, val);
|
|
722
|
+
} else if (call === "isNaN" || call === "isFinite") {
|
|
723
|
+
if (argsLength === 0) {
|
|
724
|
+
if (call === "isNaN") {
|
|
725
|
+
return new Node(ExpressionNodeType.LITERAL_BOOLEAN, true);
|
|
726
|
+
}
|
|
727
|
+
return new Node(ExpressionNodeType.LITERAL_BOOLEAN, false);
|
|
728
|
+
}
|
|
729
|
+
val = createRuntimeAst(expression, args[0]);
|
|
730
|
+
return new Node(ExpressionNodeType.UNARY, call, val);
|
|
731
|
+
} else if (call === "isExactClass" || call === "isClass") {
|
|
732
|
+
if (argsLength < 1 || argsLength > 1) {
|
|
733
|
+
throw new RuntimeError(`${call} requires exactly one argument.`);
|
|
734
|
+
}
|
|
735
|
+
val = createRuntimeAst(expression, args[0]);
|
|
736
|
+
return new Node(ExpressionNodeType.UNARY, call, val);
|
|
737
|
+
} else if (call === "getExactClassName") {
|
|
738
|
+
if (argsLength > 0) {
|
|
739
|
+
throw new RuntimeError(`${call} does not take any argument.`);
|
|
740
|
+
}
|
|
741
|
+
return new Node(ExpressionNodeType.UNARY, call);
|
|
742
|
+
} else if (defined(unaryFunctions[call])) {
|
|
743
|
+
if (argsLength !== 1) {
|
|
744
|
+
throw new RuntimeError(`${call} requires exactly one argument.`);
|
|
745
|
+
}
|
|
746
|
+
val = createRuntimeAst(expression, args[0]);
|
|
747
|
+
return new Node(ExpressionNodeType.UNARY, call, val);
|
|
748
|
+
} else if (defined(binaryFunctions[call])) {
|
|
749
|
+
if (argsLength !== 2) {
|
|
750
|
+
throw new RuntimeError(`${call} requires exactly two arguments.`);
|
|
751
|
+
}
|
|
752
|
+
left = createRuntimeAst(expression, args[0]);
|
|
753
|
+
right = createRuntimeAst(expression, args[1]);
|
|
754
|
+
return new Node(ExpressionNodeType.BINARY, call, left, right);
|
|
755
|
+
} else if (defined(ternaryFunctions[call])) {
|
|
756
|
+
if (argsLength !== 3) {
|
|
757
|
+
throw new RuntimeError(`${call} requires exactly three arguments.`);
|
|
758
|
+
}
|
|
759
|
+
left = createRuntimeAst(expression, args[0]);
|
|
760
|
+
right = createRuntimeAst(expression, args[1]);
|
|
761
|
+
const test = createRuntimeAst(expression, args[2]);
|
|
762
|
+
return new Node(ExpressionNodeType.TERNARY, call, left, right, test);
|
|
763
|
+
} else if (call === "Boolean") {
|
|
764
|
+
if (argsLength === 0) {
|
|
765
|
+
return new Node(ExpressionNodeType.LITERAL_BOOLEAN, false);
|
|
766
|
+
}
|
|
767
|
+
val = createRuntimeAst(expression, args[0]);
|
|
768
|
+
return new Node(ExpressionNodeType.UNARY, call, val);
|
|
769
|
+
} else if (call === "Number") {
|
|
770
|
+
if (argsLength === 0) {
|
|
771
|
+
return new Node(ExpressionNodeType.LITERAL_NUMBER, 0);
|
|
772
|
+
}
|
|
773
|
+
val = createRuntimeAst(expression, args[0]);
|
|
774
|
+
return new Node(ExpressionNodeType.UNARY, call, val);
|
|
775
|
+
} else if (call === "String") {
|
|
776
|
+
if (argsLength === 0) {
|
|
777
|
+
return new Node(ExpressionNodeType.LITERAL_STRING, "");
|
|
778
|
+
}
|
|
779
|
+
val = createRuntimeAst(expression, args[0]);
|
|
780
|
+
return new Node(ExpressionNodeType.UNARY, call, val);
|
|
781
|
+
} else if (call === "regExp") {
|
|
782
|
+
return parseRegex(expression, ast);
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
throw new RuntimeError(`Unexpected function call "${call}".`);
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
function parseRegex(expression, ast) {
|
|
789
|
+
const args = ast.arguments;
|
|
790
|
+
// no arguments, return default regex
|
|
791
|
+
if (args.length === 0) {
|
|
792
|
+
return new Node(ExpressionNodeType.LITERAL_REGEX, new RegExp());
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
const pattern = createRuntimeAst(expression, args[0]);
|
|
796
|
+
let exp;
|
|
797
|
+
|
|
798
|
+
// optional flag argument supplied
|
|
799
|
+
if (args.length > 1) {
|
|
800
|
+
const flags = createRuntimeAst(expression, args[1]);
|
|
801
|
+
if (isLiteralType(pattern) && isLiteralType(flags)) {
|
|
802
|
+
try {
|
|
803
|
+
exp = new RegExp(
|
|
804
|
+
replaceBackslashes(String(pattern._value)),
|
|
805
|
+
flags._value,
|
|
806
|
+
);
|
|
807
|
+
} catch (e) {
|
|
808
|
+
throw new RuntimeError(e);
|
|
809
|
+
}
|
|
810
|
+
return new Node(ExpressionNodeType.LITERAL_REGEX, exp);
|
|
811
|
+
}
|
|
812
|
+
return new Node(ExpressionNodeType.REGEX, pattern, flags);
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
// only pattern argument supplied
|
|
816
|
+
if (isLiteralType(pattern)) {
|
|
817
|
+
try {
|
|
818
|
+
exp = new RegExp(replaceBackslashes(String(pattern._value)));
|
|
819
|
+
} catch (e) {
|
|
820
|
+
throw new RuntimeError(e);
|
|
821
|
+
}
|
|
822
|
+
return new Node(ExpressionNodeType.LITERAL_REGEX, exp);
|
|
823
|
+
}
|
|
824
|
+
return new Node(ExpressionNodeType.REGEX, pattern);
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
function parseKeywordsAndVariables(ast) {
|
|
828
|
+
if (isVariable(ast.name)) {
|
|
829
|
+
const name = getPropertyName(ast.name);
|
|
830
|
+
if (name.substr(0, 8) === "tiles3d_") {
|
|
831
|
+
return new Node(ExpressionNodeType.BUILTIN_VARIABLE, name);
|
|
832
|
+
}
|
|
833
|
+
return new Node(ExpressionNodeType.VARIABLE, name);
|
|
834
|
+
} else if (ast.name === "NaN") {
|
|
835
|
+
return new Node(ExpressionNodeType.LITERAL_NUMBER, NaN);
|
|
836
|
+
} else if (ast.name === "Infinity") {
|
|
837
|
+
return new Node(ExpressionNodeType.LITERAL_NUMBER, Infinity);
|
|
838
|
+
} else if (ast.name === "undefined") {
|
|
839
|
+
return new Node(ExpressionNodeType.LITERAL_UNDEFINED, undefined);
|
|
840
|
+
}
|
|
841
|
+
|
|
842
|
+
throw new RuntimeError(`${ast.name} is not defined.`);
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
function parseMathConstant(ast) {
|
|
846
|
+
const name = ast.property.name;
|
|
847
|
+
if (name === "PI") {
|
|
848
|
+
return new Node(ExpressionNodeType.LITERAL_NUMBER, Math.PI);
|
|
849
|
+
} else if (name === "E") {
|
|
850
|
+
return new Node(ExpressionNodeType.LITERAL_NUMBER, Math.E);
|
|
851
|
+
}
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
function parseNumberConstant(ast) {
|
|
855
|
+
const name = ast.property.name;
|
|
856
|
+
if (name === "POSITIVE_INFINITY") {
|
|
857
|
+
return new Node(
|
|
858
|
+
ExpressionNodeType.LITERAL_NUMBER,
|
|
859
|
+
Number.POSITIVE_INFINITY,
|
|
860
|
+
);
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
function parseMemberExpression(expression, ast) {
|
|
865
|
+
if (ast.object.name === "Math") {
|
|
866
|
+
return parseMathConstant(ast);
|
|
867
|
+
} else if (ast.object.name === "Number") {
|
|
868
|
+
return parseNumberConstant(ast);
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
let val;
|
|
872
|
+
const obj = createRuntimeAst(expression, ast.object);
|
|
873
|
+
if (ast.computed) {
|
|
874
|
+
val = createRuntimeAst(expression, ast.property);
|
|
875
|
+
return new Node(ExpressionNodeType.MEMBER, "brackets", obj, val);
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
val = new Node(ExpressionNodeType.LITERAL_STRING, ast.property.name);
|
|
879
|
+
return new Node(ExpressionNodeType.MEMBER, "dot", obj, val);
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
function isLiteralType(node) {
|
|
883
|
+
return node._type >= ExpressionNodeType.LITERAL_NULL;
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
function isVariable(name) {
|
|
887
|
+
return name.substr(0, 4) === "czm_";
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
function getPropertyName(variable) {
|
|
891
|
+
return variable.substr(4);
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
function createRuntimeAst(expression, ast) {
|
|
895
|
+
let node;
|
|
896
|
+
let op;
|
|
897
|
+
let left;
|
|
898
|
+
let right;
|
|
899
|
+
|
|
900
|
+
if (ast.type === "Literal") {
|
|
901
|
+
node = parseLiteral(ast);
|
|
902
|
+
} else if (ast.type === "CallExpression") {
|
|
903
|
+
node = parseCall(expression, ast);
|
|
904
|
+
} else if (ast.type === "Identifier") {
|
|
905
|
+
node = parseKeywordsAndVariables(ast);
|
|
906
|
+
} else if (ast.type === "UnaryExpression") {
|
|
907
|
+
op = ast.operator;
|
|
908
|
+
const child = createRuntimeAst(expression, ast.argument);
|
|
909
|
+
if (unaryOperators.indexOf(op) > -1) {
|
|
910
|
+
node = new Node(ExpressionNodeType.UNARY, op, child);
|
|
911
|
+
} else {
|
|
912
|
+
throw new RuntimeError(`Unexpected operator "${op}".`);
|
|
913
|
+
}
|
|
914
|
+
} else if (ast.type === "BinaryExpression") {
|
|
915
|
+
op = ast.operator;
|
|
916
|
+
left = createRuntimeAst(expression, ast.left);
|
|
917
|
+
right = createRuntimeAst(expression, ast.right);
|
|
918
|
+
if (binaryOperators.indexOf(op) > -1) {
|
|
919
|
+
node = new Node(ExpressionNodeType.BINARY, op, left, right);
|
|
920
|
+
} else {
|
|
921
|
+
throw new RuntimeError(`Unexpected operator "${op}".`);
|
|
922
|
+
}
|
|
923
|
+
} else if (ast.type === "LogicalExpression") {
|
|
924
|
+
op = ast.operator;
|
|
925
|
+
left = createRuntimeAst(expression, ast.left);
|
|
926
|
+
right = createRuntimeAst(expression, ast.right);
|
|
927
|
+
if (binaryOperators.indexOf(op) > -1) {
|
|
928
|
+
node = new Node(ExpressionNodeType.BINARY, op, left, right);
|
|
929
|
+
}
|
|
930
|
+
} else if (ast.type === "ConditionalExpression") {
|
|
931
|
+
const test = createRuntimeAst(expression, ast.test);
|
|
932
|
+
left = createRuntimeAst(expression, ast.consequent);
|
|
933
|
+
right = createRuntimeAst(expression, ast.alternate);
|
|
934
|
+
node = new Node(ExpressionNodeType.CONDITIONAL, "?", left, right, test);
|
|
935
|
+
} else if (ast.type === "MemberExpression") {
|
|
936
|
+
node = parseMemberExpression(expression, ast);
|
|
937
|
+
} else if (ast.type === "ArrayExpression") {
|
|
938
|
+
const val = [];
|
|
939
|
+
for (let i = 0; i < ast.elements.length; i++) {
|
|
940
|
+
val[i] = createRuntimeAst(expression, ast.elements[i]);
|
|
941
|
+
}
|
|
942
|
+
node = new Node(ExpressionNodeType.ARRAY, val);
|
|
943
|
+
} else if (ast.type === "Compound") {
|
|
944
|
+
// empty expression or multiple expressions
|
|
945
|
+
throw new RuntimeError("Provide exactly one expression.");
|
|
946
|
+
} else {
|
|
947
|
+
throw new RuntimeError("Cannot parse expression.");
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
return node;
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
function setEvaluateFunction(node) {
|
|
954
|
+
if (node._type === ExpressionNodeType.CONDITIONAL) {
|
|
955
|
+
node.evaluate = node._evaluateConditional;
|
|
956
|
+
} else if (node._type === ExpressionNodeType.FUNCTION_CALL) {
|
|
957
|
+
if (node._value === "test") {
|
|
958
|
+
node.evaluate = node._evaluateRegExpTest;
|
|
959
|
+
} else if (node._value === "exec") {
|
|
960
|
+
node.evaluate = node._evaluateRegExpExec;
|
|
961
|
+
} else if (node._value === "toString") {
|
|
962
|
+
node.evaluate = node._evaluateToString;
|
|
963
|
+
}
|
|
964
|
+
} else if (node._type === ExpressionNodeType.UNARY) {
|
|
965
|
+
if (node._value === "!") {
|
|
966
|
+
node.evaluate = node._evaluateNot;
|
|
967
|
+
} else if (node._value === "-") {
|
|
968
|
+
node.evaluate = node._evaluateNegative;
|
|
969
|
+
} else if (node._value === "+") {
|
|
970
|
+
node.evaluate = node._evaluatePositive;
|
|
971
|
+
} else if (node._value === "isNaN") {
|
|
972
|
+
node.evaluate = node._evaluateNaN;
|
|
973
|
+
} else if (node._value === "isFinite") {
|
|
974
|
+
node.evaluate = node._evaluateIsFinite;
|
|
975
|
+
} else if (node._value === "isExactClass") {
|
|
976
|
+
node.evaluate = node._evaluateIsExactClass;
|
|
977
|
+
} else if (node._value === "isClass") {
|
|
978
|
+
node.evaluate = node._evaluateIsClass;
|
|
979
|
+
} else if (node._value === "getExactClassName") {
|
|
980
|
+
node.evaluate = node._evaluateGetExactClassName;
|
|
981
|
+
} else if (node._value === "Boolean") {
|
|
982
|
+
node.evaluate = node._evaluateBooleanConversion;
|
|
983
|
+
} else if (node._value === "Number") {
|
|
984
|
+
node.evaluate = node._evaluateNumberConversion;
|
|
985
|
+
} else if (node._value === "String") {
|
|
986
|
+
node.evaluate = node._evaluateStringConversion;
|
|
987
|
+
} else if (defined(unaryFunctions[node._value])) {
|
|
988
|
+
node.evaluate = getEvaluateUnaryFunction(node._value);
|
|
989
|
+
}
|
|
990
|
+
} else if (node._type === ExpressionNodeType.BINARY) {
|
|
991
|
+
if (node._value === "+") {
|
|
992
|
+
node.evaluate = node._evaluatePlus;
|
|
993
|
+
} else if (node._value === "-") {
|
|
994
|
+
node.evaluate = node._evaluateMinus;
|
|
995
|
+
} else if (node._value === "*") {
|
|
996
|
+
node.evaluate = node._evaluateTimes;
|
|
997
|
+
} else if (node._value === "/") {
|
|
998
|
+
node.evaluate = node._evaluateDivide;
|
|
999
|
+
} else if (node._value === "%") {
|
|
1000
|
+
node.evaluate = node._evaluateMod;
|
|
1001
|
+
} else if (node._value === "===") {
|
|
1002
|
+
node.evaluate = node._evaluateEqualsStrict;
|
|
1003
|
+
} else if (node._value === "!==") {
|
|
1004
|
+
node.evaluate = node._evaluateNotEqualsStrict;
|
|
1005
|
+
} else if (node._value === "<") {
|
|
1006
|
+
node.evaluate = node._evaluateLessThan;
|
|
1007
|
+
} else if (node._value === "<=") {
|
|
1008
|
+
node.evaluate = node._evaluateLessThanOrEquals;
|
|
1009
|
+
} else if (node._value === ">") {
|
|
1010
|
+
node.evaluate = node._evaluateGreaterThan;
|
|
1011
|
+
} else if (node._value === ">=") {
|
|
1012
|
+
node.evaluate = node._evaluateGreaterThanOrEquals;
|
|
1013
|
+
} else if (node._value === "&&") {
|
|
1014
|
+
node.evaluate = node._evaluateAnd;
|
|
1015
|
+
} else if (node._value === "||") {
|
|
1016
|
+
node.evaluate = node._evaluateOr;
|
|
1017
|
+
} else if (node._value === "=~") {
|
|
1018
|
+
node.evaluate = node._evaluateRegExpMatch;
|
|
1019
|
+
} else if (node._value === "!~") {
|
|
1020
|
+
node.evaluate = node._evaluateRegExpNotMatch;
|
|
1021
|
+
} else if (defined(binaryFunctions[node._value])) {
|
|
1022
|
+
node.evaluate = getEvaluateBinaryFunction(node._value);
|
|
1023
|
+
}
|
|
1024
|
+
} else if (node._type === ExpressionNodeType.TERNARY) {
|
|
1025
|
+
node.evaluate = getEvaluateTernaryFunction(node._value);
|
|
1026
|
+
} else if (node._type === ExpressionNodeType.MEMBER) {
|
|
1027
|
+
if (node._value === "brackets") {
|
|
1028
|
+
node.evaluate = node._evaluateMemberBrackets;
|
|
1029
|
+
} else {
|
|
1030
|
+
node.evaluate = node._evaluateMemberDot;
|
|
1031
|
+
}
|
|
1032
|
+
} else if (node._type === ExpressionNodeType.ARRAY) {
|
|
1033
|
+
node.evaluate = node._evaluateArray;
|
|
1034
|
+
} else if (node._type === ExpressionNodeType.VARIABLE) {
|
|
1035
|
+
node.evaluate = node._evaluateVariable;
|
|
1036
|
+
} else if (node._type === ExpressionNodeType.VARIABLE_IN_STRING) {
|
|
1037
|
+
node.evaluate = node._evaluateVariableString;
|
|
1038
|
+
} else if (node._type === ExpressionNodeType.LITERAL_COLOR) {
|
|
1039
|
+
node.evaluate = node._evaluateLiteralColor;
|
|
1040
|
+
} else if (node._type === ExpressionNodeType.LITERAL_VECTOR) {
|
|
1041
|
+
node.evaluate = node._evaluateLiteralVector;
|
|
1042
|
+
} else if (node._type === ExpressionNodeType.LITERAL_STRING) {
|
|
1043
|
+
node.evaluate = node._evaluateLiteralString;
|
|
1044
|
+
} else if (node._type === ExpressionNodeType.REGEX) {
|
|
1045
|
+
node.evaluate = node._evaluateRegExp;
|
|
1046
|
+
} else if (node._type === ExpressionNodeType.BUILTIN_VARIABLE) {
|
|
1047
|
+
if (node._value === "tiles3d_tileset_time") {
|
|
1048
|
+
node.evaluate = evaluateTilesetTime;
|
|
1049
|
+
}
|
|
1050
|
+
} else {
|
|
1051
|
+
node.evaluate = node._evaluateLiteral;
|
|
1052
|
+
}
|
|
1053
|
+
}
|
|
1054
|
+
|
|
1055
|
+
function evaluateTilesetTime(feature) {
|
|
1056
|
+
if (!defined(feature)) {
|
|
1057
|
+
return 0.0;
|
|
1058
|
+
}
|
|
1059
|
+
return feature.content.tileset.timeSinceLoad;
|
|
1060
|
+
}
|
|
1061
|
+
|
|
1062
|
+
function getEvaluateUnaryFunction(call) {
|
|
1063
|
+
const evaluate = unaryFunctions[call];
|
|
1064
|
+
return function (feature) {
|
|
1065
|
+
const left = this._left.evaluate(feature);
|
|
1066
|
+
return evaluate(call, left);
|
|
1067
|
+
};
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
function getEvaluateBinaryFunction(call) {
|
|
1071
|
+
const evaluate = binaryFunctions[call];
|
|
1072
|
+
return function (feature) {
|
|
1073
|
+
const left = this._left.evaluate(feature);
|
|
1074
|
+
const right = this._right.evaluate(feature);
|
|
1075
|
+
return evaluate(call, left, right);
|
|
1076
|
+
};
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1079
|
+
function getEvaluateTernaryFunction(call) {
|
|
1080
|
+
const evaluate = ternaryFunctions[call];
|
|
1081
|
+
return function (feature) {
|
|
1082
|
+
const left = this._left.evaluate(feature);
|
|
1083
|
+
const right = this._right.evaluate(feature);
|
|
1084
|
+
const test = this._test.evaluate(feature);
|
|
1085
|
+
return evaluate(call, left, right, test);
|
|
1086
|
+
};
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
function getFeatureProperty(feature, name) {
|
|
1090
|
+
// Returns undefined if the feature is not defined or the property name is not defined for that feature
|
|
1091
|
+
if (defined(feature)) {
|
|
1092
|
+
return feature.getPropertyInherited(name);
|
|
1093
|
+
}
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
Node.prototype._evaluateLiteral = function () {
|
|
1097
|
+
return this._value;
|
|
1098
|
+
};
|
|
1099
|
+
|
|
1100
|
+
Node.prototype._evaluateLiteralColor = function (feature) {
|
|
1101
|
+
const color = scratchColor;
|
|
1102
|
+
const args = this._left;
|
|
1103
|
+
if (this._value === "color") {
|
|
1104
|
+
if (!defined(args)) {
|
|
1105
|
+
Color.fromBytes(255, 255, 255, 255, color);
|
|
1106
|
+
} else if (args.length > 1) {
|
|
1107
|
+
Color.fromCssColorString(args[0].evaluate(feature), color);
|
|
1108
|
+
color.alpha = args[1].evaluate(feature);
|
|
1109
|
+
} else {
|
|
1110
|
+
Color.fromCssColorString(args[0].evaluate(feature), color);
|
|
1111
|
+
}
|
|
1112
|
+
} else if (this._value === "rgb") {
|
|
1113
|
+
Color.fromBytes(
|
|
1114
|
+
args[0].evaluate(feature),
|
|
1115
|
+
args[1].evaluate(feature),
|
|
1116
|
+
args[2].evaluate(feature),
|
|
1117
|
+
255,
|
|
1118
|
+
color,
|
|
1119
|
+
);
|
|
1120
|
+
} else if (this._value === "rgba") {
|
|
1121
|
+
// convert between css alpha (0 to 1) and cesium alpha (0 to 255)
|
|
1122
|
+
const a = args[3].evaluate(feature) * 255;
|
|
1123
|
+
Color.fromBytes(
|
|
1124
|
+
args[0].evaluate(feature),
|
|
1125
|
+
args[1].evaluate(feature),
|
|
1126
|
+
args[2].evaluate(feature),
|
|
1127
|
+
a,
|
|
1128
|
+
color,
|
|
1129
|
+
);
|
|
1130
|
+
} else if (this._value === "hsl") {
|
|
1131
|
+
Color.fromHsl(
|
|
1132
|
+
args[0].evaluate(feature),
|
|
1133
|
+
args[1].evaluate(feature),
|
|
1134
|
+
args[2].evaluate(feature),
|
|
1135
|
+
1.0,
|
|
1136
|
+
color,
|
|
1137
|
+
);
|
|
1138
|
+
} else if (this._value === "hsla") {
|
|
1139
|
+
Color.fromHsl(
|
|
1140
|
+
args[0].evaluate(feature),
|
|
1141
|
+
args[1].evaluate(feature),
|
|
1142
|
+
args[2].evaluate(feature),
|
|
1143
|
+
args[3].evaluate(feature),
|
|
1144
|
+
color,
|
|
1145
|
+
);
|
|
1146
|
+
}
|
|
1147
|
+
return Cartesian4.fromColor(color, scratchStorage.getCartesian4());
|
|
1148
|
+
};
|
|
1149
|
+
|
|
1150
|
+
Node.prototype._evaluateLiteralVector = function (feature) {
|
|
1151
|
+
// Gather the components that make up the vector, which includes components from interior vectors.
|
|
1152
|
+
// For example vec3(1, 2, 3) or vec3(vec2(1, 2), 3) are both valid.
|
|
1153
|
+
//
|
|
1154
|
+
// If the number of components does not equal the vector's size, then a RuntimeError is thrown - with two exceptions:
|
|
1155
|
+
// 1. A vector may be constructed from a larger vector and drop the extra components.
|
|
1156
|
+
// 2. A vector may be constructed from a single component - vec3(1) will become vec3(1, 1, 1).
|
|
1157
|
+
//
|
|
1158
|
+
// Examples of invalid constructors include:
|
|
1159
|
+
// vec4(1, 2) // not enough components
|
|
1160
|
+
// vec3(vec2(1, 2)) // not enough components
|
|
1161
|
+
// vec3(1, 2, 3, 4) // too many components
|
|
1162
|
+
// vec2(vec4(1), 1) // too many components
|
|
1163
|
+
|
|
1164
|
+
const components = scratchStorage.getArray();
|
|
1165
|
+
const call = this._value;
|
|
1166
|
+
const args = this._left;
|
|
1167
|
+
const argsLength = args.length;
|
|
1168
|
+
for (let i = 0; i < argsLength; ++i) {
|
|
1169
|
+
const value = args[i].evaluate(feature);
|
|
1170
|
+
if (typeof value === "number") {
|
|
1171
|
+
components.push(value);
|
|
1172
|
+
} else if (value instanceof Cartesian2) {
|
|
1173
|
+
components.push(value.x, value.y);
|
|
1174
|
+
} else if (value instanceof Cartesian3) {
|
|
1175
|
+
components.push(value.x, value.y, value.z);
|
|
1176
|
+
} else if (value instanceof Cartesian4) {
|
|
1177
|
+
components.push(value.x, value.y, value.z, value.w);
|
|
1178
|
+
} else {
|
|
1179
|
+
throw new RuntimeError(
|
|
1180
|
+
`${call} argument must be a vector or number. Argument is ${value}.`,
|
|
1181
|
+
);
|
|
1182
|
+
}
|
|
1183
|
+
}
|
|
1184
|
+
|
|
1185
|
+
const componentsLength = components.length;
|
|
1186
|
+
const vectorLength = parseInt(call.charAt(3));
|
|
1187
|
+
|
|
1188
|
+
if (componentsLength === 0) {
|
|
1189
|
+
throw new RuntimeError(`Invalid ${call} constructor. No valid arguments.`);
|
|
1190
|
+
} else if (componentsLength < vectorLength && componentsLength > 1) {
|
|
1191
|
+
throw new RuntimeError(
|
|
1192
|
+
`Invalid ${call} constructor. Not enough arguments.`,
|
|
1193
|
+
);
|
|
1194
|
+
} else if (componentsLength > vectorLength && argsLength > 1) {
|
|
1195
|
+
throw new RuntimeError(`Invalid ${call} constructor. Too many arguments.`);
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1198
|
+
if (componentsLength === 1) {
|
|
1199
|
+
// Add the same component 3 more times
|
|
1200
|
+
const component = components[0];
|
|
1201
|
+
components.push(component, component, component);
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
if (call === "vec2") {
|
|
1205
|
+
return Cartesian2.fromArray(components, 0, scratchStorage.getCartesian2());
|
|
1206
|
+
} else if (call === "vec3") {
|
|
1207
|
+
return Cartesian3.fromArray(components, 0, scratchStorage.getCartesian3());
|
|
1208
|
+
} else if (call === "vec4") {
|
|
1209
|
+
return Cartesian4.fromArray(components, 0, scratchStorage.getCartesian4());
|
|
1210
|
+
}
|
|
1211
|
+
};
|
|
1212
|
+
|
|
1213
|
+
Node.prototype._evaluateLiteralString = function () {
|
|
1214
|
+
return this._value;
|
|
1215
|
+
};
|
|
1216
|
+
|
|
1217
|
+
Node.prototype._evaluateVariableString = function (feature) {
|
|
1218
|
+
let result = this._value;
|
|
1219
|
+
let match = variableRegex.exec(result);
|
|
1220
|
+
while (match !== null) {
|
|
1221
|
+
const placeholder = match[0];
|
|
1222
|
+
const variableName = match[1];
|
|
1223
|
+
let property = getFeatureProperty(feature, variableName);
|
|
1224
|
+
if (!defined(property)) {
|
|
1225
|
+
property = "";
|
|
1226
|
+
}
|
|
1227
|
+
result = result.replace(placeholder, property);
|
|
1228
|
+
variableRegex.lastIndex += property.length - placeholder.length;
|
|
1229
|
+
match = variableRegex.exec(result);
|
|
1230
|
+
}
|
|
1231
|
+
return result;
|
|
1232
|
+
};
|
|
1233
|
+
|
|
1234
|
+
Node.prototype._evaluateVariable = function (feature) {
|
|
1235
|
+
// evaluates to undefined if the property name is not defined for that feature
|
|
1236
|
+
return getFeatureProperty(feature, this._value);
|
|
1237
|
+
};
|
|
1238
|
+
|
|
1239
|
+
function checkFeature(ast) {
|
|
1240
|
+
return ast._value === "feature";
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1243
|
+
// PERFORMANCE_IDEA: Determine if parent property needs to be computed before runtime
|
|
1244
|
+
Node.prototype._evaluateMemberDot = function (feature) {
|
|
1245
|
+
if (checkFeature(this._left)) {
|
|
1246
|
+
return getFeatureProperty(feature, this._right.evaluate(feature));
|
|
1247
|
+
}
|
|
1248
|
+
const property = this._left.evaluate(feature);
|
|
1249
|
+
if (!defined(property)) {
|
|
1250
|
+
return undefined;
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1253
|
+
const member = this._right.evaluate(feature);
|
|
1254
|
+
if (
|
|
1255
|
+
property instanceof Cartesian2 ||
|
|
1256
|
+
property instanceof Cartesian3 ||
|
|
1257
|
+
property instanceof Cartesian4
|
|
1258
|
+
) {
|
|
1259
|
+
// Vector components may be accessed with .r, .g, .b, .a and implicitly with .x, .y, .z, .w
|
|
1260
|
+
if (member === "r") {
|
|
1261
|
+
return property.x;
|
|
1262
|
+
} else if (member === "g") {
|
|
1263
|
+
return property.y;
|
|
1264
|
+
} else if (member === "b") {
|
|
1265
|
+
return property.z;
|
|
1266
|
+
} else if (member === "a") {
|
|
1267
|
+
return property.w;
|
|
1268
|
+
}
|
|
1269
|
+
}
|
|
1270
|
+
return property[member];
|
|
1271
|
+
};
|
|
1272
|
+
|
|
1273
|
+
Node.prototype._evaluateMemberBrackets = function (feature) {
|
|
1274
|
+
if (checkFeature(this._left)) {
|
|
1275
|
+
return getFeatureProperty(feature, this._right.evaluate(feature));
|
|
1276
|
+
}
|
|
1277
|
+
const property = this._left.evaluate(feature);
|
|
1278
|
+
if (!defined(property)) {
|
|
1279
|
+
return undefined;
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1282
|
+
const member = this._right.evaluate(feature);
|
|
1283
|
+
if (
|
|
1284
|
+
property instanceof Cartesian2 ||
|
|
1285
|
+
property instanceof Cartesian3 ||
|
|
1286
|
+
property instanceof Cartesian4
|
|
1287
|
+
) {
|
|
1288
|
+
// Vector components may be accessed with [0][1][2][3], ['r']['g']['b']['a'] and implicitly with ['x']['y']['z']['w']
|
|
1289
|
+
// For Cartesian2 and Cartesian3 out-of-range components will just return undefined
|
|
1290
|
+
if (member === 0 || member === "r") {
|
|
1291
|
+
return property.x;
|
|
1292
|
+
} else if (member === 1 || member === "g") {
|
|
1293
|
+
return property.y;
|
|
1294
|
+
} else if (member === 2 || member === "b") {
|
|
1295
|
+
return property.z;
|
|
1296
|
+
} else if (member === 3 || member === "a") {
|
|
1297
|
+
return property.w;
|
|
1298
|
+
}
|
|
1299
|
+
}
|
|
1300
|
+
return property[member];
|
|
1301
|
+
};
|
|
1302
|
+
|
|
1303
|
+
Node.prototype._evaluateArray = function (feature) {
|
|
1304
|
+
const array = [];
|
|
1305
|
+
for (let i = 0; i < this._value.length; i++) {
|
|
1306
|
+
array[i] = this._value[i].evaluate(feature);
|
|
1307
|
+
}
|
|
1308
|
+
return array;
|
|
1309
|
+
};
|
|
1310
|
+
|
|
1311
|
+
// PERFORMANCE_IDEA: Have "fast path" functions that deal only with specific types
|
|
1312
|
+
// that we can assign if we know the types before runtime
|
|
1313
|
+
|
|
1314
|
+
Node.prototype._evaluateNot = function (feature) {
|
|
1315
|
+
const left = this._left.evaluate(feature);
|
|
1316
|
+
if (typeof left !== "boolean") {
|
|
1317
|
+
throw new RuntimeError(
|
|
1318
|
+
`Operator "!" requires a boolean argument. Argument is ${left}.`,
|
|
1319
|
+
);
|
|
1320
|
+
}
|
|
1321
|
+
return !left;
|
|
1322
|
+
};
|
|
1323
|
+
|
|
1324
|
+
Node.prototype._evaluateNegative = function (feature) {
|
|
1325
|
+
const left = this._left.evaluate(feature);
|
|
1326
|
+
if (left instanceof Cartesian2) {
|
|
1327
|
+
return Cartesian2.negate(left, scratchStorage.getCartesian2());
|
|
1328
|
+
} else if (left instanceof Cartesian3) {
|
|
1329
|
+
return Cartesian3.negate(left, scratchStorage.getCartesian3());
|
|
1330
|
+
} else if (left instanceof Cartesian4) {
|
|
1331
|
+
return Cartesian4.negate(left, scratchStorage.getCartesian4());
|
|
1332
|
+
} else if (typeof left === "number") {
|
|
1333
|
+
return -left;
|
|
1334
|
+
}
|
|
1335
|
+
|
|
1336
|
+
throw new RuntimeError(
|
|
1337
|
+
`Operator "-" requires a vector or number argument. Argument is ${left}.`,
|
|
1338
|
+
);
|
|
1339
|
+
};
|
|
1340
|
+
|
|
1341
|
+
Node.prototype._evaluatePositive = function (feature) {
|
|
1342
|
+
const left = this._left.evaluate(feature);
|
|
1343
|
+
|
|
1344
|
+
if (
|
|
1345
|
+
!(
|
|
1346
|
+
left instanceof Cartesian2 ||
|
|
1347
|
+
left instanceof Cartesian3 ||
|
|
1348
|
+
left instanceof Cartesian4 ||
|
|
1349
|
+
typeof left === "number"
|
|
1350
|
+
)
|
|
1351
|
+
) {
|
|
1352
|
+
throw new RuntimeError(
|
|
1353
|
+
`Operator "+" requires a vector or number argument. Argument is ${left}.`,
|
|
1354
|
+
);
|
|
1355
|
+
}
|
|
1356
|
+
|
|
1357
|
+
return left;
|
|
1358
|
+
};
|
|
1359
|
+
|
|
1360
|
+
Node.prototype._evaluateLessThan = function (feature) {
|
|
1361
|
+
const left = this._left.evaluate(feature);
|
|
1362
|
+
const right = this._right.evaluate(feature);
|
|
1363
|
+
|
|
1364
|
+
if (typeof left !== "number" || typeof right !== "number") {
|
|
1365
|
+
throw new RuntimeError(
|
|
1366
|
+
`Operator "<" requires number arguments. Arguments are ${left} and ${right}.`,
|
|
1367
|
+
);
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1370
|
+
return left < right;
|
|
1371
|
+
};
|
|
1372
|
+
|
|
1373
|
+
Node.prototype._evaluateLessThanOrEquals = function (feature) {
|
|
1374
|
+
const left = this._left.evaluate(feature);
|
|
1375
|
+
const right = this._right.evaluate(feature);
|
|
1376
|
+
|
|
1377
|
+
if (typeof left !== "number" || typeof right !== "number") {
|
|
1378
|
+
throw new RuntimeError(
|
|
1379
|
+
`Operator "<=" requires number arguments. Arguments are ${left} and ${right}.`,
|
|
1380
|
+
);
|
|
1381
|
+
}
|
|
1382
|
+
|
|
1383
|
+
return left <= right;
|
|
1384
|
+
};
|
|
1385
|
+
|
|
1386
|
+
Node.prototype._evaluateGreaterThan = function (feature) {
|
|
1387
|
+
const left = this._left.evaluate(feature);
|
|
1388
|
+
const right = this._right.evaluate(feature);
|
|
1389
|
+
|
|
1390
|
+
if (typeof left !== "number" || typeof right !== "number") {
|
|
1391
|
+
throw new RuntimeError(
|
|
1392
|
+
`Operator ">" requires number arguments. Arguments are ${left} and ${right}.`,
|
|
1393
|
+
);
|
|
1394
|
+
}
|
|
1395
|
+
|
|
1396
|
+
return left > right;
|
|
1397
|
+
};
|
|
1398
|
+
|
|
1399
|
+
Node.prototype._evaluateGreaterThanOrEquals = function (feature) {
|
|
1400
|
+
const left = this._left.evaluate(feature);
|
|
1401
|
+
const right = this._right.evaluate(feature);
|
|
1402
|
+
|
|
1403
|
+
if (typeof left !== "number" || typeof right !== "number") {
|
|
1404
|
+
throw new RuntimeError(
|
|
1405
|
+
`Operator ">=" requires number arguments. Arguments are ${left} and ${right}.`,
|
|
1406
|
+
);
|
|
1407
|
+
}
|
|
1408
|
+
|
|
1409
|
+
return left >= right;
|
|
1410
|
+
};
|
|
1411
|
+
|
|
1412
|
+
Node.prototype._evaluateOr = function (feature) {
|
|
1413
|
+
const left = this._left.evaluate(feature);
|
|
1414
|
+
if (typeof left !== "boolean") {
|
|
1415
|
+
throw new RuntimeError(
|
|
1416
|
+
`Operator "||" requires boolean arguments. First argument is ${left}.`,
|
|
1417
|
+
);
|
|
1418
|
+
}
|
|
1419
|
+
|
|
1420
|
+
// short circuit the expression
|
|
1421
|
+
if (left) {
|
|
1422
|
+
return true;
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1425
|
+
const right = this._right.evaluate(feature);
|
|
1426
|
+
if (typeof right !== "boolean") {
|
|
1427
|
+
throw new RuntimeError(
|
|
1428
|
+
`Operator "||" requires boolean arguments. Second argument is ${right}.`,
|
|
1429
|
+
);
|
|
1430
|
+
}
|
|
1431
|
+
|
|
1432
|
+
return left || right;
|
|
1433
|
+
};
|
|
1434
|
+
|
|
1435
|
+
Node.prototype._evaluateAnd = function (feature) {
|
|
1436
|
+
const left = this._left.evaluate(feature);
|
|
1437
|
+
if (typeof left !== "boolean") {
|
|
1438
|
+
throw new RuntimeError(
|
|
1439
|
+
`Operator "&&" requires boolean arguments. First argument is ${left}.`,
|
|
1440
|
+
);
|
|
1441
|
+
}
|
|
1442
|
+
|
|
1443
|
+
// short circuit the expression
|
|
1444
|
+
if (!left) {
|
|
1445
|
+
return false;
|
|
1446
|
+
}
|
|
1447
|
+
|
|
1448
|
+
const right = this._right.evaluate(feature);
|
|
1449
|
+
if (typeof right !== "boolean") {
|
|
1450
|
+
throw new RuntimeError(
|
|
1451
|
+
`Operator "&&" requires boolean arguments. Second argument is ${right}.`,
|
|
1452
|
+
);
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1455
|
+
return left && right;
|
|
1456
|
+
};
|
|
1457
|
+
|
|
1458
|
+
Node.prototype._evaluatePlus = function (feature) {
|
|
1459
|
+
const left = this._left.evaluate(feature);
|
|
1460
|
+
const right = this._right.evaluate(feature);
|
|
1461
|
+
if (right instanceof Cartesian2 && left instanceof Cartesian2) {
|
|
1462
|
+
return Cartesian2.add(left, right, scratchStorage.getCartesian2());
|
|
1463
|
+
} else if (right instanceof Cartesian3 && left instanceof Cartesian3) {
|
|
1464
|
+
return Cartesian3.add(left, right, scratchStorage.getCartesian3());
|
|
1465
|
+
} else if (right instanceof Cartesian4 && left instanceof Cartesian4) {
|
|
1466
|
+
return Cartesian4.add(left, right, scratchStorage.getCartesian4());
|
|
1467
|
+
} else if (typeof left === "string" || typeof right === "string") {
|
|
1468
|
+
// If only one argument is a string the other argument calls its toString function.
|
|
1469
|
+
return left + right;
|
|
1470
|
+
} else if (typeof left === "number" && typeof right === "number") {
|
|
1471
|
+
return left + right;
|
|
1472
|
+
}
|
|
1473
|
+
|
|
1474
|
+
throw new RuntimeError(
|
|
1475
|
+
`Operator "+" requires vector or number arguments of matching types, or at least one string argument. Arguments are ${left} and ${right}.`,
|
|
1476
|
+
);
|
|
1477
|
+
};
|
|
1478
|
+
|
|
1479
|
+
Node.prototype._evaluateMinus = function (feature) {
|
|
1480
|
+
const left = this._left.evaluate(feature);
|
|
1481
|
+
const right = this._right.evaluate(feature);
|
|
1482
|
+
if (right instanceof Cartesian2 && left instanceof Cartesian2) {
|
|
1483
|
+
return Cartesian2.subtract(left, right, scratchStorage.getCartesian2());
|
|
1484
|
+
} else if (right instanceof Cartesian3 && left instanceof Cartesian3) {
|
|
1485
|
+
return Cartesian3.subtract(left, right, scratchStorage.getCartesian3());
|
|
1486
|
+
} else if (right instanceof Cartesian4 && left instanceof Cartesian4) {
|
|
1487
|
+
return Cartesian4.subtract(left, right, scratchStorage.getCartesian4());
|
|
1488
|
+
} else if (typeof left === "number" && typeof right === "number") {
|
|
1489
|
+
return left - right;
|
|
1490
|
+
}
|
|
1491
|
+
|
|
1492
|
+
throw new RuntimeError(
|
|
1493
|
+
`Operator "-" requires vector or number arguments of matching types. Arguments are ${left} and ${right}.`,
|
|
1494
|
+
);
|
|
1495
|
+
};
|
|
1496
|
+
|
|
1497
|
+
Node.prototype._evaluateTimes = function (feature) {
|
|
1498
|
+
const left = this._left.evaluate(feature);
|
|
1499
|
+
const right = this._right.evaluate(feature);
|
|
1500
|
+
if (right instanceof Cartesian2 && left instanceof Cartesian2) {
|
|
1501
|
+
return Cartesian2.multiplyComponents(
|
|
1502
|
+
left,
|
|
1503
|
+
right,
|
|
1504
|
+
scratchStorage.getCartesian2(),
|
|
1505
|
+
);
|
|
1506
|
+
} else if (right instanceof Cartesian2 && typeof left === "number") {
|
|
1507
|
+
return Cartesian2.multiplyByScalar(
|
|
1508
|
+
right,
|
|
1509
|
+
left,
|
|
1510
|
+
scratchStorage.getCartesian2(),
|
|
1511
|
+
);
|
|
1512
|
+
} else if (left instanceof Cartesian2 && typeof right === "number") {
|
|
1513
|
+
return Cartesian2.multiplyByScalar(
|
|
1514
|
+
left,
|
|
1515
|
+
right,
|
|
1516
|
+
scratchStorage.getCartesian2(),
|
|
1517
|
+
);
|
|
1518
|
+
} else if (right instanceof Cartesian3 && left instanceof Cartesian3) {
|
|
1519
|
+
return Cartesian3.multiplyComponents(
|
|
1520
|
+
left,
|
|
1521
|
+
right,
|
|
1522
|
+
scratchStorage.getCartesian3(),
|
|
1523
|
+
);
|
|
1524
|
+
} else if (right instanceof Cartesian3 && typeof left === "number") {
|
|
1525
|
+
return Cartesian3.multiplyByScalar(
|
|
1526
|
+
right,
|
|
1527
|
+
left,
|
|
1528
|
+
scratchStorage.getCartesian3(),
|
|
1529
|
+
);
|
|
1530
|
+
} else if (left instanceof Cartesian3 && typeof right === "number") {
|
|
1531
|
+
return Cartesian3.multiplyByScalar(
|
|
1532
|
+
left,
|
|
1533
|
+
right,
|
|
1534
|
+
scratchStorage.getCartesian3(),
|
|
1535
|
+
);
|
|
1536
|
+
} else if (right instanceof Cartesian4 && left instanceof Cartesian4) {
|
|
1537
|
+
return Cartesian4.multiplyComponents(
|
|
1538
|
+
left,
|
|
1539
|
+
right,
|
|
1540
|
+
scratchStorage.getCartesian4(),
|
|
1541
|
+
);
|
|
1542
|
+
} else if (right instanceof Cartesian4 && typeof left === "number") {
|
|
1543
|
+
return Cartesian4.multiplyByScalar(
|
|
1544
|
+
right,
|
|
1545
|
+
left,
|
|
1546
|
+
scratchStorage.getCartesian4(),
|
|
1547
|
+
);
|
|
1548
|
+
} else if (left instanceof Cartesian4 && typeof right === "number") {
|
|
1549
|
+
return Cartesian4.multiplyByScalar(
|
|
1550
|
+
left,
|
|
1551
|
+
right,
|
|
1552
|
+
scratchStorage.getCartesian4(),
|
|
1553
|
+
);
|
|
1554
|
+
} else if (typeof left === "number" && typeof right === "number") {
|
|
1555
|
+
return left * right;
|
|
1556
|
+
}
|
|
1557
|
+
|
|
1558
|
+
throw new RuntimeError(
|
|
1559
|
+
`Operator "*" requires vector or number arguments. If both arguments are vectors they must be matching types. Arguments are ${left} and ${right}.`,
|
|
1560
|
+
);
|
|
1561
|
+
};
|
|
1562
|
+
|
|
1563
|
+
Node.prototype._evaluateDivide = function (feature) {
|
|
1564
|
+
const left = this._left.evaluate(feature);
|
|
1565
|
+
const right = this._right.evaluate(feature);
|
|
1566
|
+
if (right instanceof Cartesian2 && left instanceof Cartesian2) {
|
|
1567
|
+
return Cartesian2.divideComponents(
|
|
1568
|
+
left,
|
|
1569
|
+
right,
|
|
1570
|
+
scratchStorage.getCartesian2(),
|
|
1571
|
+
);
|
|
1572
|
+
} else if (left instanceof Cartesian2 && typeof right === "number") {
|
|
1573
|
+
return Cartesian2.divideByScalar(
|
|
1574
|
+
left,
|
|
1575
|
+
right,
|
|
1576
|
+
scratchStorage.getCartesian2(),
|
|
1577
|
+
);
|
|
1578
|
+
} else if (right instanceof Cartesian3 && left instanceof Cartesian3) {
|
|
1579
|
+
return Cartesian3.divideComponents(
|
|
1580
|
+
left,
|
|
1581
|
+
right,
|
|
1582
|
+
scratchStorage.getCartesian3(),
|
|
1583
|
+
);
|
|
1584
|
+
} else if (left instanceof Cartesian3 && typeof right === "number") {
|
|
1585
|
+
return Cartesian3.divideByScalar(
|
|
1586
|
+
left,
|
|
1587
|
+
right,
|
|
1588
|
+
scratchStorage.getCartesian3(),
|
|
1589
|
+
);
|
|
1590
|
+
} else if (right instanceof Cartesian4 && left instanceof Cartesian4) {
|
|
1591
|
+
return Cartesian4.divideComponents(
|
|
1592
|
+
left,
|
|
1593
|
+
right,
|
|
1594
|
+
scratchStorage.getCartesian4(),
|
|
1595
|
+
);
|
|
1596
|
+
} else if (left instanceof Cartesian4 && typeof right === "number") {
|
|
1597
|
+
return Cartesian4.divideByScalar(
|
|
1598
|
+
left,
|
|
1599
|
+
right,
|
|
1600
|
+
scratchStorage.getCartesian4(),
|
|
1601
|
+
);
|
|
1602
|
+
} else if (typeof left === "number" && typeof right === "number") {
|
|
1603
|
+
return left / right;
|
|
1604
|
+
}
|
|
1605
|
+
|
|
1606
|
+
throw new RuntimeError(
|
|
1607
|
+
`Operator "/" requires vector or number arguments of matching types, or a number as the second argument. Arguments are ${left} and ${right}.`,
|
|
1608
|
+
);
|
|
1609
|
+
};
|
|
1610
|
+
|
|
1611
|
+
Node.prototype._evaluateMod = function (feature) {
|
|
1612
|
+
const left = this._left.evaluate(feature);
|
|
1613
|
+
const right = this._right.evaluate(feature);
|
|
1614
|
+
if (right instanceof Cartesian2 && left instanceof Cartesian2) {
|
|
1615
|
+
return Cartesian2.fromElements(
|
|
1616
|
+
left.x % right.x,
|
|
1617
|
+
left.y % right.y,
|
|
1618
|
+
scratchStorage.getCartesian2(),
|
|
1619
|
+
);
|
|
1620
|
+
} else if (right instanceof Cartesian3 && left instanceof Cartesian3) {
|
|
1621
|
+
return Cartesian3.fromElements(
|
|
1622
|
+
left.x % right.x,
|
|
1623
|
+
left.y % right.y,
|
|
1624
|
+
left.z % right.z,
|
|
1625
|
+
scratchStorage.getCartesian3(),
|
|
1626
|
+
);
|
|
1627
|
+
} else if (right instanceof Cartesian4 && left instanceof Cartesian4) {
|
|
1628
|
+
return Cartesian4.fromElements(
|
|
1629
|
+
left.x % right.x,
|
|
1630
|
+
left.y % right.y,
|
|
1631
|
+
left.z % right.z,
|
|
1632
|
+
left.w % right.w,
|
|
1633
|
+
scratchStorage.getCartesian4(),
|
|
1634
|
+
);
|
|
1635
|
+
} else if (typeof left === "number" && typeof right === "number") {
|
|
1636
|
+
return left % right;
|
|
1637
|
+
}
|
|
1638
|
+
|
|
1639
|
+
throw new RuntimeError(
|
|
1640
|
+
`Operator "%" requires vector or number arguments of matching types. Arguments are ${left} and ${right}.`,
|
|
1641
|
+
);
|
|
1642
|
+
};
|
|
1643
|
+
|
|
1644
|
+
Node.prototype._evaluateEqualsStrict = function (feature) {
|
|
1645
|
+
const left = this._left.evaluate(feature);
|
|
1646
|
+
const right = this._right.evaluate(feature);
|
|
1647
|
+
if (
|
|
1648
|
+
(right instanceof Cartesian2 && left instanceof Cartesian2) ||
|
|
1649
|
+
(right instanceof Cartesian3 && left instanceof Cartesian3) ||
|
|
1650
|
+
(right instanceof Cartesian4 && left instanceof Cartesian4)
|
|
1651
|
+
) {
|
|
1652
|
+
return left.equals(right);
|
|
1653
|
+
}
|
|
1654
|
+
return left === right;
|
|
1655
|
+
};
|
|
1656
|
+
|
|
1657
|
+
Node.prototype._evaluateNotEqualsStrict = function (feature) {
|
|
1658
|
+
const left = this._left.evaluate(feature);
|
|
1659
|
+
const right = this._right.evaluate(feature);
|
|
1660
|
+
if (
|
|
1661
|
+
(right instanceof Cartesian2 && left instanceof Cartesian2) ||
|
|
1662
|
+
(right instanceof Cartesian3 && left instanceof Cartesian3) ||
|
|
1663
|
+
(right instanceof Cartesian4 && left instanceof Cartesian4)
|
|
1664
|
+
) {
|
|
1665
|
+
return !left.equals(right);
|
|
1666
|
+
}
|
|
1667
|
+
return left !== right;
|
|
1668
|
+
};
|
|
1669
|
+
|
|
1670
|
+
Node.prototype._evaluateConditional = function (feature) {
|
|
1671
|
+
const test = this._test.evaluate(feature);
|
|
1672
|
+
|
|
1673
|
+
if (typeof test !== "boolean") {
|
|
1674
|
+
throw new RuntimeError(
|
|
1675
|
+
`Conditional argument of conditional expression must be a boolean. Argument is ${test}.`,
|
|
1676
|
+
);
|
|
1677
|
+
}
|
|
1678
|
+
|
|
1679
|
+
if (test) {
|
|
1680
|
+
return this._left.evaluate(feature);
|
|
1681
|
+
}
|
|
1682
|
+
return this._right.evaluate(feature);
|
|
1683
|
+
};
|
|
1684
|
+
|
|
1685
|
+
Node.prototype._evaluateNaN = function (feature) {
|
|
1686
|
+
return isNaN(this._left.evaluate(feature));
|
|
1687
|
+
};
|
|
1688
|
+
|
|
1689
|
+
Node.prototype._evaluateIsFinite = function (feature) {
|
|
1690
|
+
return isFinite(this._left.evaluate(feature));
|
|
1691
|
+
};
|
|
1692
|
+
|
|
1693
|
+
Node.prototype._evaluateIsExactClass = function (feature) {
|
|
1694
|
+
if (defined(feature)) {
|
|
1695
|
+
return feature.isExactClass(this._left.evaluate(feature));
|
|
1696
|
+
}
|
|
1697
|
+
return false;
|
|
1698
|
+
};
|
|
1699
|
+
|
|
1700
|
+
Node.prototype._evaluateIsClass = function (feature) {
|
|
1701
|
+
if (defined(feature)) {
|
|
1702
|
+
return feature.isClass(this._left.evaluate(feature));
|
|
1703
|
+
}
|
|
1704
|
+
return false;
|
|
1705
|
+
};
|
|
1706
|
+
|
|
1707
|
+
Node.prototype._evaluateGetExactClassName = function (feature) {
|
|
1708
|
+
if (defined(feature)) {
|
|
1709
|
+
return feature.getExactClassName();
|
|
1710
|
+
}
|
|
1711
|
+
};
|
|
1712
|
+
|
|
1713
|
+
Node.prototype._evaluateBooleanConversion = function (feature) {
|
|
1714
|
+
return Boolean(this._left.evaluate(feature));
|
|
1715
|
+
};
|
|
1716
|
+
|
|
1717
|
+
Node.prototype._evaluateNumberConversion = function (feature) {
|
|
1718
|
+
return Number(this._left.evaluate(feature));
|
|
1719
|
+
};
|
|
1720
|
+
|
|
1721
|
+
Node.prototype._evaluateStringConversion = function (feature) {
|
|
1722
|
+
return String(this._left.evaluate(feature));
|
|
1723
|
+
};
|
|
1724
|
+
|
|
1725
|
+
Node.prototype._evaluateRegExp = function (feature) {
|
|
1726
|
+
const pattern = this._value.evaluate(feature);
|
|
1727
|
+
let flags = "";
|
|
1728
|
+
|
|
1729
|
+
if (defined(this._left)) {
|
|
1730
|
+
flags = this._left.evaluate(feature);
|
|
1731
|
+
}
|
|
1732
|
+
|
|
1733
|
+
let exp;
|
|
1734
|
+
try {
|
|
1735
|
+
exp = new RegExp(pattern, flags);
|
|
1736
|
+
} catch (e) {
|
|
1737
|
+
throw new RuntimeError(e);
|
|
1738
|
+
}
|
|
1739
|
+
return exp;
|
|
1740
|
+
};
|
|
1741
|
+
|
|
1742
|
+
Node.prototype._evaluateRegExpTest = function (feature) {
|
|
1743
|
+
const left = this._left.evaluate(feature);
|
|
1744
|
+
const right = this._right.evaluate(feature);
|
|
1745
|
+
|
|
1746
|
+
if (!(left instanceof RegExp && typeof right === "string")) {
|
|
1747
|
+
throw new RuntimeError(
|
|
1748
|
+
`RegExp.test requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${left} and ${right}.`,
|
|
1749
|
+
);
|
|
1750
|
+
}
|
|
1751
|
+
|
|
1752
|
+
return left.test(right);
|
|
1753
|
+
};
|
|
1754
|
+
|
|
1755
|
+
Node.prototype._evaluateRegExpMatch = function (feature) {
|
|
1756
|
+
const left = this._left.evaluate(feature);
|
|
1757
|
+
const right = this._right.evaluate(feature);
|
|
1758
|
+
|
|
1759
|
+
if (left instanceof RegExp && typeof right === "string") {
|
|
1760
|
+
return left.test(right);
|
|
1761
|
+
} else if (right instanceof RegExp && typeof left === "string") {
|
|
1762
|
+
return right.test(left);
|
|
1763
|
+
}
|
|
1764
|
+
|
|
1765
|
+
throw new RuntimeError(
|
|
1766
|
+
`Operator "=~" requires one RegExp argument and one string argument. Arguments are ${left} and ${right}.`,
|
|
1767
|
+
);
|
|
1768
|
+
};
|
|
1769
|
+
|
|
1770
|
+
Node.prototype._evaluateRegExpNotMatch = function (feature) {
|
|
1771
|
+
const left = this._left.evaluate(feature);
|
|
1772
|
+
const right = this._right.evaluate(feature);
|
|
1773
|
+
|
|
1774
|
+
if (left instanceof RegExp && typeof right === "string") {
|
|
1775
|
+
return !left.test(right);
|
|
1776
|
+
} else if (right instanceof RegExp && typeof left === "string") {
|
|
1777
|
+
return !right.test(left);
|
|
1778
|
+
}
|
|
1779
|
+
|
|
1780
|
+
throw new RuntimeError(
|
|
1781
|
+
`Operator "!~" requires one RegExp argument and one string argument. Arguments are ${left} and ${right}.`,
|
|
1782
|
+
);
|
|
1783
|
+
};
|
|
1784
|
+
|
|
1785
|
+
Node.prototype._evaluateRegExpExec = function (feature) {
|
|
1786
|
+
const left = this._left.evaluate(feature);
|
|
1787
|
+
const right = this._right.evaluate(feature);
|
|
1788
|
+
|
|
1789
|
+
if (!(left instanceof RegExp && typeof right === "string")) {
|
|
1790
|
+
throw new RuntimeError(
|
|
1791
|
+
`RegExp.exec requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${left} and ${right}.`,
|
|
1792
|
+
);
|
|
1793
|
+
}
|
|
1794
|
+
|
|
1795
|
+
const exec = left.exec(right);
|
|
1796
|
+
if (!defined(exec)) {
|
|
1797
|
+
return null;
|
|
1798
|
+
}
|
|
1799
|
+
return exec[1];
|
|
1800
|
+
};
|
|
1801
|
+
|
|
1802
|
+
Node.prototype._evaluateToString = function (feature) {
|
|
1803
|
+
const left = this._left.evaluate(feature);
|
|
1804
|
+
if (
|
|
1805
|
+
left instanceof RegExp ||
|
|
1806
|
+
left instanceof Cartesian2 ||
|
|
1807
|
+
left instanceof Cartesian3 ||
|
|
1808
|
+
left instanceof Cartesian4
|
|
1809
|
+
) {
|
|
1810
|
+
return String(left);
|
|
1811
|
+
}
|
|
1812
|
+
|
|
1813
|
+
throw new RuntimeError(`Unexpected function call "${this._value}".`);
|
|
1814
|
+
};
|
|
1815
|
+
|
|
1816
|
+
function convertHSLToRGB(ast) {
|
|
1817
|
+
// Check if the color contains any nested expressions to see if the color can be converted here.
|
|
1818
|
+
// E.g. "hsl(0.9, 0.6, 0.7)" is able to convert directly to rgb, "hsl(0.9, 0.6, ${Height})" is not.
|
|
1819
|
+
const channels = ast._left;
|
|
1820
|
+
const length = channels.length;
|
|
1821
|
+
for (let i = 0; i < length; ++i) {
|
|
1822
|
+
if (channels[i]._type !== ExpressionNodeType.LITERAL_NUMBER) {
|
|
1823
|
+
return undefined;
|
|
1824
|
+
}
|
|
1825
|
+
}
|
|
1826
|
+
const h = channels[0]._value;
|
|
1827
|
+
const s = channels[1]._value;
|
|
1828
|
+
const l = channels[2]._value;
|
|
1829
|
+
const a = length === 4 ? channels[3]._value : 1.0;
|
|
1830
|
+
return Color.fromHsl(h, s, l, a, scratchColor);
|
|
1831
|
+
}
|
|
1832
|
+
|
|
1833
|
+
function convertRGBToColor(ast) {
|
|
1834
|
+
// Check if the color contains any nested expressions to see if the color can be converted here.
|
|
1835
|
+
// E.g. "rgb(255, 255, 255)" is able to convert directly to Color, "rgb(255, 255, ${Height})" is not.
|
|
1836
|
+
const channels = ast._left;
|
|
1837
|
+
const length = channels.length;
|
|
1838
|
+
for (let i = 0; i < length; ++i) {
|
|
1839
|
+
if (channels[i]._type !== ExpressionNodeType.LITERAL_NUMBER) {
|
|
1840
|
+
return undefined;
|
|
1841
|
+
}
|
|
1842
|
+
}
|
|
1843
|
+
const color = scratchColor;
|
|
1844
|
+
color.red = channels[0]._value / 255.0;
|
|
1845
|
+
color.green = channels[1]._value / 255.0;
|
|
1846
|
+
color.blue = channels[2]._value / 255.0;
|
|
1847
|
+
color.alpha = length === 4 ? channels[3]._value : 1.0;
|
|
1848
|
+
return color;
|
|
1849
|
+
}
|
|
1850
|
+
|
|
1851
|
+
function numberToString(number) {
|
|
1852
|
+
if (number % 1 === 0) {
|
|
1853
|
+
// Add a .0 to whole numbers
|
|
1854
|
+
return number.toFixed(1);
|
|
1855
|
+
}
|
|
1856
|
+
|
|
1857
|
+
return number.toString();
|
|
1858
|
+
}
|
|
1859
|
+
|
|
1860
|
+
function colorToVec3(color) {
|
|
1861
|
+
const r = numberToString(color.red);
|
|
1862
|
+
const g = numberToString(color.green);
|
|
1863
|
+
const b = numberToString(color.blue);
|
|
1864
|
+
return `vec3(${r}, ${g}, ${b})`;
|
|
1865
|
+
}
|
|
1866
|
+
|
|
1867
|
+
function colorToVec4(color) {
|
|
1868
|
+
const r = numberToString(color.red);
|
|
1869
|
+
const g = numberToString(color.green);
|
|
1870
|
+
const b = numberToString(color.blue);
|
|
1871
|
+
const a = numberToString(color.alpha);
|
|
1872
|
+
return `vec4(${r}, ${g}, ${b}, ${a})`;
|
|
1873
|
+
}
|
|
1874
|
+
|
|
1875
|
+
function getExpressionArray(
|
|
1876
|
+
array,
|
|
1877
|
+
variableSubstitutionMap,
|
|
1878
|
+
shaderState,
|
|
1879
|
+
parent,
|
|
1880
|
+
) {
|
|
1881
|
+
const length = array.length;
|
|
1882
|
+
const expressions = new Array(length);
|
|
1883
|
+
for (let i = 0; i < length; ++i) {
|
|
1884
|
+
expressions[i] = array[i].getShaderExpression(
|
|
1885
|
+
variableSubstitutionMap,
|
|
1886
|
+
shaderState,
|
|
1887
|
+
parent,
|
|
1888
|
+
);
|
|
1889
|
+
}
|
|
1890
|
+
return expressions;
|
|
1891
|
+
}
|
|
1892
|
+
|
|
1893
|
+
function getVariableName(variableName, variableSubstitutionMap) {
|
|
1894
|
+
if (!defined(variableSubstitutionMap[variableName])) {
|
|
1895
|
+
return Expression.NULL_SENTINEL;
|
|
1896
|
+
}
|
|
1897
|
+
|
|
1898
|
+
return variableSubstitutionMap[variableName];
|
|
1899
|
+
}
|
|
1900
|
+
|
|
1901
|
+
/**
|
|
1902
|
+
* @private
|
|
1903
|
+
*/
|
|
1904
|
+
Expression.NULL_SENTINEL = "czm_infinity"; // null just needs to be some sentinel value that will cause "[expression] === null" to be false in nearly all cases. GLSL doesn't have a NaN constant so use czm_infinity.
|
|
1905
|
+
|
|
1906
|
+
Node.prototype.getShaderExpression = function (
|
|
1907
|
+
variableSubstitutionMap,
|
|
1908
|
+
shaderState,
|
|
1909
|
+
parent,
|
|
1910
|
+
) {
|
|
1911
|
+
let color;
|
|
1912
|
+
let left;
|
|
1913
|
+
let right;
|
|
1914
|
+
let test;
|
|
1915
|
+
|
|
1916
|
+
const type = this._type;
|
|
1917
|
+
let value = this._value;
|
|
1918
|
+
|
|
1919
|
+
if (defined(this._left)) {
|
|
1920
|
+
if (Array.isArray(this._left)) {
|
|
1921
|
+
// Left can be an array if the type is LITERAL_COLOR or LITERAL_VECTOR
|
|
1922
|
+
left = getExpressionArray(
|
|
1923
|
+
this._left,
|
|
1924
|
+
variableSubstitutionMap,
|
|
1925
|
+
shaderState,
|
|
1926
|
+
this,
|
|
1927
|
+
);
|
|
1928
|
+
} else {
|
|
1929
|
+
left = this._left.getShaderExpression(
|
|
1930
|
+
variableSubstitutionMap,
|
|
1931
|
+
shaderState,
|
|
1932
|
+
this,
|
|
1933
|
+
);
|
|
1934
|
+
}
|
|
1935
|
+
}
|
|
1936
|
+
|
|
1937
|
+
if (defined(this._right)) {
|
|
1938
|
+
right = this._right.getShaderExpression(
|
|
1939
|
+
variableSubstitutionMap,
|
|
1940
|
+
shaderState,
|
|
1941
|
+
this,
|
|
1942
|
+
);
|
|
1943
|
+
}
|
|
1944
|
+
|
|
1945
|
+
if (defined(this._test)) {
|
|
1946
|
+
test = this._test.getShaderExpression(
|
|
1947
|
+
variableSubstitutionMap,
|
|
1948
|
+
shaderState,
|
|
1949
|
+
this,
|
|
1950
|
+
);
|
|
1951
|
+
}
|
|
1952
|
+
|
|
1953
|
+
if (Array.isArray(this._value)) {
|
|
1954
|
+
// For ARRAY type
|
|
1955
|
+
value = getExpressionArray(
|
|
1956
|
+
this._value,
|
|
1957
|
+
variableSubstitutionMap,
|
|
1958
|
+
shaderState,
|
|
1959
|
+
this,
|
|
1960
|
+
);
|
|
1961
|
+
}
|
|
1962
|
+
|
|
1963
|
+
let args;
|
|
1964
|
+
let length;
|
|
1965
|
+
let vectorExpression;
|
|
1966
|
+
switch (type) {
|
|
1967
|
+
case ExpressionNodeType.VARIABLE:
|
|
1968
|
+
if (checkFeature(this)) {
|
|
1969
|
+
return undefined;
|
|
1970
|
+
}
|
|
1971
|
+
return getVariableName(value, variableSubstitutionMap);
|
|
1972
|
+
case ExpressionNodeType.UNARY:
|
|
1973
|
+
// Supported types: +, -, !, Boolean, Number
|
|
1974
|
+
if (value === "Boolean") {
|
|
1975
|
+
return `bool(${left})`;
|
|
1976
|
+
} else if (value === "Number") {
|
|
1977
|
+
return `float(${left})`;
|
|
1978
|
+
} else if (value === "round") {
|
|
1979
|
+
return `floor(${left} + 0.5)`;
|
|
1980
|
+
} else if (defined(unaryFunctions[value])) {
|
|
1981
|
+
return `${value}(${left})`;
|
|
1982
|
+
} else if (value === "isNaN") {
|
|
1983
|
+
// In GLSL 2.0 use isnan instead
|
|
1984
|
+
return `(${left} != ${left})`;
|
|
1985
|
+
} else if (value === "isFinite") {
|
|
1986
|
+
// In GLSL 2.0 use isinf instead. GLSL doesn't have an infinity constant so use czm_infinity which is an arbitrarily big enough number.
|
|
1987
|
+
return `(abs(${left}) < czm_infinity)`;
|
|
1988
|
+
} else if (
|
|
1989
|
+
value === "String" ||
|
|
1990
|
+
value === "isExactClass" ||
|
|
1991
|
+
value === "isClass" ||
|
|
1992
|
+
value === "getExactClassName"
|
|
1993
|
+
) {
|
|
1994
|
+
throw new RuntimeError(
|
|
1995
|
+
`Error generating style shader: "${value}" is not supported.`,
|
|
1996
|
+
);
|
|
1997
|
+
}
|
|
1998
|
+
return value + left;
|
|
1999
|
+
case ExpressionNodeType.BINARY:
|
|
2000
|
+
// Supported types: ||, &&, ===, !==, <, >, <=, >=, +, -, *, /, %
|
|
2001
|
+
if (value === "%") {
|
|
2002
|
+
return `mod(${left}, ${right})`;
|
|
2003
|
+
} else if (value === "===") {
|
|
2004
|
+
return `(${left} == ${right})`;
|
|
2005
|
+
} else if (value === "!==") {
|
|
2006
|
+
return `(${left} != ${right})`;
|
|
2007
|
+
} else if (value === "atan2") {
|
|
2008
|
+
return `atan(${left}, ${right})`;
|
|
2009
|
+
} else if (defined(binaryFunctions[value])) {
|
|
2010
|
+
return `${value}(${left}, ${right})`;
|
|
2011
|
+
}
|
|
2012
|
+
return `(${left} ${value} ${right})`;
|
|
2013
|
+
case ExpressionNodeType.TERNARY:
|
|
2014
|
+
if (defined(ternaryFunctions[value])) {
|
|
2015
|
+
return `${value}(${left}, ${right}, ${test})`;
|
|
2016
|
+
}
|
|
2017
|
+
break;
|
|
2018
|
+
case ExpressionNodeType.CONDITIONAL:
|
|
2019
|
+
return `(${test} ? ${left} : ${right})`;
|
|
2020
|
+
case ExpressionNodeType.MEMBER:
|
|
2021
|
+
if (checkFeature(this._left)) {
|
|
2022
|
+
return getVariableName(right, variableSubstitutionMap);
|
|
2023
|
+
}
|
|
2024
|
+
// This is intended for accessing the components of vector properties. String members aren't supported.
|
|
2025
|
+
// Check for 0.0 rather than 0 because all numbers are previously converted to decimals.
|
|
2026
|
+
if (right === "r" || right === "x" || right === "0.0") {
|
|
2027
|
+
return `${left}[0]`;
|
|
2028
|
+
} else if (right === "g" || right === "y" || right === "1.0") {
|
|
2029
|
+
return `${left}[1]`;
|
|
2030
|
+
} else if (right === "b" || right === "z" || right === "2.0") {
|
|
2031
|
+
return `${left}[2]`;
|
|
2032
|
+
} else if (right === "a" || right === "w" || right === "3.0") {
|
|
2033
|
+
return `${left}[3]`;
|
|
2034
|
+
}
|
|
2035
|
+
return `${left}[int(${right})]`;
|
|
2036
|
+
case ExpressionNodeType.FUNCTION_CALL:
|
|
2037
|
+
throw new RuntimeError(
|
|
2038
|
+
`Error generating style shader: "${value}" is not supported.`,
|
|
2039
|
+
);
|
|
2040
|
+
case ExpressionNodeType.ARRAY:
|
|
2041
|
+
if (value.length === 4) {
|
|
2042
|
+
return `vec4(${value[0]}, ${value[1]}, ${value[2]}, ${value[3]})`;
|
|
2043
|
+
} else if (value.length === 3) {
|
|
2044
|
+
return `vec3(${value[0]}, ${value[1]}, ${value[2]})`;
|
|
2045
|
+
} else if (value.length === 2) {
|
|
2046
|
+
return `vec2(${value[0]}, ${value[1]})`;
|
|
2047
|
+
}
|
|
2048
|
+
throw new RuntimeError(
|
|
2049
|
+
"Error generating style shader: Invalid array length. Array length should be 2, 3, or 4.",
|
|
2050
|
+
);
|
|
2051
|
+
case ExpressionNodeType.REGEX:
|
|
2052
|
+
throw new RuntimeError(
|
|
2053
|
+
"Error generating style shader: Regular expressions are not supported.",
|
|
2054
|
+
);
|
|
2055
|
+
case ExpressionNodeType.VARIABLE_IN_STRING:
|
|
2056
|
+
throw new RuntimeError(
|
|
2057
|
+
"Error generating style shader: Converting a variable to a string is not supported.",
|
|
2058
|
+
);
|
|
2059
|
+
case ExpressionNodeType.LITERAL_NULL:
|
|
2060
|
+
return Expression.NULL_SENTINEL;
|
|
2061
|
+
case ExpressionNodeType.LITERAL_BOOLEAN:
|
|
2062
|
+
return value ? "true" : "false";
|
|
2063
|
+
case ExpressionNodeType.LITERAL_NUMBER:
|
|
2064
|
+
return numberToString(value);
|
|
2065
|
+
case ExpressionNodeType.LITERAL_STRING:
|
|
2066
|
+
if (defined(parent) && parent._type === ExpressionNodeType.MEMBER) {
|
|
2067
|
+
if (
|
|
2068
|
+
value === "r" ||
|
|
2069
|
+
value === "g" ||
|
|
2070
|
+
value === "b" ||
|
|
2071
|
+
value === "a" ||
|
|
2072
|
+
value === "x" ||
|
|
2073
|
+
value === "y" ||
|
|
2074
|
+
value === "z" ||
|
|
2075
|
+
value === "w" ||
|
|
2076
|
+
checkFeature(parent._left)
|
|
2077
|
+
) {
|
|
2078
|
+
return value;
|
|
2079
|
+
}
|
|
2080
|
+
}
|
|
2081
|
+
// Check for css color strings
|
|
2082
|
+
color = Color.fromCssColorString(value, scratchColor);
|
|
2083
|
+
if (defined(color)) {
|
|
2084
|
+
return colorToVec3(color);
|
|
2085
|
+
}
|
|
2086
|
+
throw new RuntimeError(
|
|
2087
|
+
"Error generating style shader: String literals are not supported.",
|
|
2088
|
+
);
|
|
2089
|
+
case ExpressionNodeType.LITERAL_COLOR:
|
|
2090
|
+
args = left;
|
|
2091
|
+
if (value === "color") {
|
|
2092
|
+
if (!defined(args)) {
|
|
2093
|
+
return "vec4(1.0)";
|
|
2094
|
+
} else if (args.length > 1) {
|
|
2095
|
+
const rgb = args[0];
|
|
2096
|
+
const alpha = args[1];
|
|
2097
|
+
if (alpha !== "1.0") {
|
|
2098
|
+
shaderState.translucent = true;
|
|
2099
|
+
}
|
|
2100
|
+
return `vec4(${rgb}, ${alpha})`;
|
|
2101
|
+
}
|
|
2102
|
+
return `vec4(${args[0]}, 1.0)`;
|
|
2103
|
+
} else if (value === "rgb") {
|
|
2104
|
+
color = convertRGBToColor(this);
|
|
2105
|
+
if (defined(color)) {
|
|
2106
|
+
return colorToVec4(color);
|
|
2107
|
+
}
|
|
2108
|
+
return `vec4(${args[0]} / 255.0, ${args[1]} / 255.0, ${args[2]} / 255.0, 1.0)`;
|
|
2109
|
+
} else if (value === "rgba") {
|
|
2110
|
+
if (args[3] !== "1.0") {
|
|
2111
|
+
shaderState.translucent = true;
|
|
2112
|
+
}
|
|
2113
|
+
color = convertRGBToColor(this);
|
|
2114
|
+
if (defined(color)) {
|
|
2115
|
+
return colorToVec4(color);
|
|
2116
|
+
}
|
|
2117
|
+
return `vec4(${args[0]} / 255.0, ${args[1]} / 255.0, ${args[2]} / 255.0, ${args[3]})`;
|
|
2118
|
+
} else if (value === "hsl") {
|
|
2119
|
+
color = convertHSLToRGB(this);
|
|
2120
|
+
if (defined(color)) {
|
|
2121
|
+
return colorToVec4(color);
|
|
2122
|
+
}
|
|
2123
|
+
return `vec4(czm_HSLToRGB(vec3(${args[0]}, ${args[1]}, ${args[2]})), 1.0)`;
|
|
2124
|
+
} else if (value === "hsla") {
|
|
2125
|
+
color = convertHSLToRGB(this);
|
|
2126
|
+
if (defined(color)) {
|
|
2127
|
+
if (color.alpha !== 1.0) {
|
|
2128
|
+
shaderState.translucent = true;
|
|
2129
|
+
}
|
|
2130
|
+
return colorToVec4(color);
|
|
2131
|
+
}
|
|
2132
|
+
if (args[3] !== "1.0") {
|
|
2133
|
+
shaderState.translucent = true;
|
|
2134
|
+
}
|
|
2135
|
+
return `vec4(czm_HSLToRGB(vec3(${args[0]}, ${args[1]}, ${args[2]})), ${args[3]})`;
|
|
2136
|
+
}
|
|
2137
|
+
break;
|
|
2138
|
+
case ExpressionNodeType.LITERAL_VECTOR:
|
|
2139
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2140
|
+
if (!defined(left)) {
|
|
2141
|
+
throw new DeveloperError(
|
|
2142
|
+
"left should always be defined for type ExpressionNodeType.LITERAL_VECTOR",
|
|
2143
|
+
);
|
|
2144
|
+
}
|
|
2145
|
+
//>>includeEnd('debug');
|
|
2146
|
+
length = left.length;
|
|
2147
|
+
vectorExpression = `${value}(`;
|
|
2148
|
+
for (let i = 0; i < length; ++i) {
|
|
2149
|
+
vectorExpression += left[i];
|
|
2150
|
+
if (i < length - 1) {
|
|
2151
|
+
vectorExpression += ", ";
|
|
2152
|
+
}
|
|
2153
|
+
}
|
|
2154
|
+
vectorExpression += ")";
|
|
2155
|
+
return vectorExpression;
|
|
2156
|
+
case ExpressionNodeType.LITERAL_REGEX:
|
|
2157
|
+
throw new RuntimeError(
|
|
2158
|
+
"Error generating style shader: Regular expressions are not supported.",
|
|
2159
|
+
);
|
|
2160
|
+
case ExpressionNodeType.LITERAL_UNDEFINED:
|
|
2161
|
+
return Expression.NULL_SENTINEL;
|
|
2162
|
+
case ExpressionNodeType.BUILTIN_VARIABLE:
|
|
2163
|
+
if (value === "tiles3d_tileset_time") {
|
|
2164
|
+
return value;
|
|
2165
|
+
}
|
|
2166
|
+
}
|
|
2167
|
+
};
|
|
2168
|
+
|
|
2169
|
+
Node.prototype.getVariables = function (variables, parent) {
|
|
2170
|
+
let array;
|
|
2171
|
+
let length;
|
|
2172
|
+
let i;
|
|
2173
|
+
|
|
2174
|
+
const type = this._type;
|
|
2175
|
+
const value = this._value;
|
|
2176
|
+
|
|
2177
|
+
if (defined(this._left)) {
|
|
2178
|
+
if (Array.isArray(this._left)) {
|
|
2179
|
+
// Left can be an array if the type is LITERAL_COLOR or LITERAL_VECTOR
|
|
2180
|
+
array = this._left;
|
|
2181
|
+
length = array.length;
|
|
2182
|
+
for (i = 0; i < length; ++i) {
|
|
2183
|
+
array[i].getVariables(variables, this);
|
|
2184
|
+
}
|
|
2185
|
+
} else {
|
|
2186
|
+
this._left.getVariables(variables, this);
|
|
2187
|
+
}
|
|
2188
|
+
}
|
|
2189
|
+
|
|
2190
|
+
if (defined(this._right)) {
|
|
2191
|
+
this._right.getVariables(variables, this);
|
|
2192
|
+
}
|
|
2193
|
+
|
|
2194
|
+
if (defined(this._test)) {
|
|
2195
|
+
this._test.getVariables(variables, this);
|
|
2196
|
+
}
|
|
2197
|
+
|
|
2198
|
+
if (Array.isArray(this._value)) {
|
|
2199
|
+
// For ARRAY type
|
|
2200
|
+
array = this._value;
|
|
2201
|
+
length = array.length;
|
|
2202
|
+
for (i = 0; i < length; ++i) {
|
|
2203
|
+
array[i].getVariables(variables, this);
|
|
2204
|
+
}
|
|
2205
|
+
}
|
|
2206
|
+
|
|
2207
|
+
let match;
|
|
2208
|
+
switch (type) {
|
|
2209
|
+
case ExpressionNodeType.VARIABLE:
|
|
2210
|
+
if (!checkFeature(this)) {
|
|
2211
|
+
variables.push(value);
|
|
2212
|
+
}
|
|
2213
|
+
break;
|
|
2214
|
+
case ExpressionNodeType.VARIABLE_IN_STRING:
|
|
2215
|
+
match = variableRegex.exec(value);
|
|
2216
|
+
while (match !== null) {
|
|
2217
|
+
variables.push(match[1]);
|
|
2218
|
+
match = variableRegex.exec(value);
|
|
2219
|
+
}
|
|
2220
|
+
break;
|
|
2221
|
+
case ExpressionNodeType.LITERAL_STRING:
|
|
2222
|
+
if (
|
|
2223
|
+
defined(parent) &&
|
|
2224
|
+
parent._type === ExpressionNodeType.MEMBER &&
|
|
2225
|
+
checkFeature(parent._left)
|
|
2226
|
+
) {
|
|
2227
|
+
variables.push(value);
|
|
2228
|
+
}
|
|
2229
|
+
break;
|
|
2230
|
+
}
|
|
2231
|
+
};
|
|
2232
|
+
|
|
2233
|
+
export default Expression;
|