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,3233 @@
|
|
|
1
|
+
import Cartesian3 from "./Cartesian3.js";
|
|
2
|
+
import Cartesian4 from "./Cartesian4.js";
|
|
3
|
+
import Check from "./Check.js";
|
|
4
|
+
import Frozen from "./Frozen.js";
|
|
5
|
+
import defined from "./defined.js";
|
|
6
|
+
import DeveloperError from "./DeveloperError.js";
|
|
7
|
+
import CesiumMath from "./Math.js";
|
|
8
|
+
import Matrix3 from "./Matrix3.js";
|
|
9
|
+
import RuntimeError from "./RuntimeError.js";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* A 4x4 matrix, indexable as a column-major order array.
|
|
13
|
+
* Constructor parameters are in row-major order for code readability.
|
|
14
|
+
* @alias Matrix4
|
|
15
|
+
* @constructor
|
|
16
|
+
* @implements {ArrayLike<number>}
|
|
17
|
+
*
|
|
18
|
+
* @param {number} [column0Row0=0.0] The value for column 0, row 0.
|
|
19
|
+
* @param {number} [column1Row0=0.0] The value for column 1, row 0.
|
|
20
|
+
* @param {number} [column2Row0=0.0] The value for column 2, row 0.
|
|
21
|
+
* @param {number} [column3Row0=0.0] The value for column 3, row 0.
|
|
22
|
+
* @param {number} [column0Row1=0.0] The value for column 0, row 1.
|
|
23
|
+
* @param {number} [column1Row1=0.0] The value for column 1, row 1.
|
|
24
|
+
* @param {number} [column2Row1=0.0] The value for column 2, row 1.
|
|
25
|
+
* @param {number} [column3Row1=0.0] The value for column 3, row 1.
|
|
26
|
+
* @param {number} [column0Row2=0.0] The value for column 0, row 2.
|
|
27
|
+
* @param {number} [column1Row2=0.0] The value for column 1, row 2.
|
|
28
|
+
* @param {number} [column2Row2=0.0] The value for column 2, row 2.
|
|
29
|
+
* @param {number} [column3Row2=0.0] The value for column 3, row 2.
|
|
30
|
+
* @param {number} [column0Row3=0.0] The value for column 0, row 3.
|
|
31
|
+
* @param {number} [column1Row3=0.0] The value for column 1, row 3.
|
|
32
|
+
* @param {number} [column2Row3=0.0] The value for column 2, row 3.
|
|
33
|
+
* @param {number} [column3Row3=0.0] The value for column 3, row 3.
|
|
34
|
+
*
|
|
35
|
+
* @see Matrix4.fromArray
|
|
36
|
+
* @see Matrix4.fromColumnMajorArray
|
|
37
|
+
* @see Matrix4.fromRowMajorArray
|
|
38
|
+
* @see Matrix4.fromRotationTranslation
|
|
39
|
+
* @see Matrix4.fromTranslationQuaternionRotationScale
|
|
40
|
+
* @see Matrix4.fromTranslationRotationScale
|
|
41
|
+
* @see Matrix4.fromTranslation
|
|
42
|
+
* @see Matrix4.fromScale
|
|
43
|
+
* @see Matrix4.fromUniformScale
|
|
44
|
+
* @see Matrix4.fromRotation
|
|
45
|
+
* @see Matrix4.fromCamera
|
|
46
|
+
* @see Matrix4.computePerspectiveFieldOfView
|
|
47
|
+
* @see Matrix4.computeOrthographicOffCenter
|
|
48
|
+
* @see Matrix4.computePerspectiveOffCenter
|
|
49
|
+
* @see Matrix4.computeInfinitePerspectiveOffCenter
|
|
50
|
+
* @see Matrix4.computeViewportTransformation
|
|
51
|
+
* @see Matrix4.computeView
|
|
52
|
+
* @see Matrix2
|
|
53
|
+
* @see Matrix3
|
|
54
|
+
* @see Packable
|
|
55
|
+
*/
|
|
56
|
+
function Matrix4(
|
|
57
|
+
column0Row0,
|
|
58
|
+
column1Row0,
|
|
59
|
+
column2Row0,
|
|
60
|
+
column3Row0,
|
|
61
|
+
column0Row1,
|
|
62
|
+
column1Row1,
|
|
63
|
+
column2Row1,
|
|
64
|
+
column3Row1,
|
|
65
|
+
column0Row2,
|
|
66
|
+
column1Row2,
|
|
67
|
+
column2Row2,
|
|
68
|
+
column3Row2,
|
|
69
|
+
column0Row3,
|
|
70
|
+
column1Row3,
|
|
71
|
+
column2Row3,
|
|
72
|
+
column3Row3,
|
|
73
|
+
) {
|
|
74
|
+
this[0] = column0Row0 ?? 0.0;
|
|
75
|
+
this[1] = column0Row1 ?? 0.0;
|
|
76
|
+
this[2] = column0Row2 ?? 0.0;
|
|
77
|
+
this[3] = column0Row3 ?? 0.0;
|
|
78
|
+
this[4] = column1Row0 ?? 0.0;
|
|
79
|
+
this[5] = column1Row1 ?? 0.0;
|
|
80
|
+
this[6] = column1Row2 ?? 0.0;
|
|
81
|
+
this[7] = column1Row3 ?? 0.0;
|
|
82
|
+
this[8] = column2Row0 ?? 0.0;
|
|
83
|
+
this[9] = column2Row1 ?? 0.0;
|
|
84
|
+
this[10] = column2Row2 ?? 0.0;
|
|
85
|
+
this[11] = column2Row3 ?? 0.0;
|
|
86
|
+
this[12] = column3Row0 ?? 0.0;
|
|
87
|
+
this[13] = column3Row1 ?? 0.0;
|
|
88
|
+
this[14] = column3Row2 ?? 0.0;
|
|
89
|
+
this[15] = column3Row3 ?? 0.0;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* The number of elements used to pack the object into an array.
|
|
94
|
+
* @type {number}
|
|
95
|
+
*/
|
|
96
|
+
Matrix4.packedLength = 16;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Stores the provided instance into the provided array.
|
|
100
|
+
*
|
|
101
|
+
* @param {Matrix4} value The value to pack.
|
|
102
|
+
* @param {number[]} array The array to pack into.
|
|
103
|
+
* @param {number} [startingIndex=0] The index into the array at which to start packing the elements.
|
|
104
|
+
*
|
|
105
|
+
* @returns {number[]} The array that was packed into
|
|
106
|
+
*/
|
|
107
|
+
Matrix4.pack = function (value, array, startingIndex) {
|
|
108
|
+
//>>includeStart('debug', pragmas.debug);
|
|
109
|
+
Check.typeOf.object("value", value);
|
|
110
|
+
Check.defined("array", array);
|
|
111
|
+
//>>includeEnd('debug');
|
|
112
|
+
|
|
113
|
+
startingIndex = startingIndex ?? 0;
|
|
114
|
+
|
|
115
|
+
array[startingIndex++] = value[0];
|
|
116
|
+
array[startingIndex++] = value[1];
|
|
117
|
+
array[startingIndex++] = value[2];
|
|
118
|
+
array[startingIndex++] = value[3];
|
|
119
|
+
array[startingIndex++] = value[4];
|
|
120
|
+
array[startingIndex++] = value[5];
|
|
121
|
+
array[startingIndex++] = value[6];
|
|
122
|
+
array[startingIndex++] = value[7];
|
|
123
|
+
array[startingIndex++] = value[8];
|
|
124
|
+
array[startingIndex++] = value[9];
|
|
125
|
+
array[startingIndex++] = value[10];
|
|
126
|
+
array[startingIndex++] = value[11];
|
|
127
|
+
array[startingIndex++] = value[12];
|
|
128
|
+
array[startingIndex++] = value[13];
|
|
129
|
+
array[startingIndex++] = value[14];
|
|
130
|
+
array[startingIndex] = value[15];
|
|
131
|
+
|
|
132
|
+
return array;
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Retrieves an instance from a packed array.
|
|
137
|
+
*
|
|
138
|
+
* @param {number[]} array The packed array.
|
|
139
|
+
* @param {number} [startingIndex=0] The starting index of the element to be unpacked.
|
|
140
|
+
* @param {Matrix4} [result] The object into which to store the result.
|
|
141
|
+
* @returns {Matrix4} The modified result parameter or a new Matrix4 instance if one was not provided.
|
|
142
|
+
*/
|
|
143
|
+
Matrix4.unpack = function (array, startingIndex, result) {
|
|
144
|
+
//>>includeStart('debug', pragmas.debug);
|
|
145
|
+
Check.defined("array", array);
|
|
146
|
+
//>>includeEnd('debug');
|
|
147
|
+
|
|
148
|
+
startingIndex = startingIndex ?? 0;
|
|
149
|
+
|
|
150
|
+
if (!defined(result)) {
|
|
151
|
+
result = new Matrix4();
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
result[0] = array[startingIndex++];
|
|
155
|
+
result[1] = array[startingIndex++];
|
|
156
|
+
result[2] = array[startingIndex++];
|
|
157
|
+
result[3] = array[startingIndex++];
|
|
158
|
+
result[4] = array[startingIndex++];
|
|
159
|
+
result[5] = array[startingIndex++];
|
|
160
|
+
result[6] = array[startingIndex++];
|
|
161
|
+
result[7] = array[startingIndex++];
|
|
162
|
+
result[8] = array[startingIndex++];
|
|
163
|
+
result[9] = array[startingIndex++];
|
|
164
|
+
result[10] = array[startingIndex++];
|
|
165
|
+
result[11] = array[startingIndex++];
|
|
166
|
+
result[12] = array[startingIndex++];
|
|
167
|
+
result[13] = array[startingIndex++];
|
|
168
|
+
result[14] = array[startingIndex++];
|
|
169
|
+
result[15] = array[startingIndex];
|
|
170
|
+
return result;
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Flattens an array of Matrix4s into an array of components. The components
|
|
175
|
+
* are stored in column-major order.
|
|
176
|
+
*
|
|
177
|
+
* @param {Matrix4[]} array The array of matrices to pack.
|
|
178
|
+
* @param {number[]} [result] The array onto which to store the result. If this is a typed array, it must have array.length * 16 components, else a {@link DeveloperError} will be thrown. If it is a regular array, it will be resized to have (array.length * 16) elements.
|
|
179
|
+
* @returns {number[]} The packed array.
|
|
180
|
+
*/
|
|
181
|
+
Matrix4.packArray = function (array, result) {
|
|
182
|
+
//>>includeStart('debug', pragmas.debug);
|
|
183
|
+
Check.defined("array", array);
|
|
184
|
+
//>>includeEnd('debug');
|
|
185
|
+
|
|
186
|
+
const length = array.length;
|
|
187
|
+
const resultLength = length * 16;
|
|
188
|
+
if (!defined(result)) {
|
|
189
|
+
result = new Array(resultLength);
|
|
190
|
+
} else if (!Array.isArray(result) && result.length !== resultLength) {
|
|
191
|
+
//>>includeStart('debug', pragmas.debug);
|
|
192
|
+
throw new DeveloperError(
|
|
193
|
+
"If result is a typed array, it must have exactly array.length * 16 elements",
|
|
194
|
+
);
|
|
195
|
+
//>>includeEnd('debug');
|
|
196
|
+
} else if (result.length !== resultLength) {
|
|
197
|
+
result.length = resultLength;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
for (let i = 0; i < length; ++i) {
|
|
201
|
+
Matrix4.pack(array[i], result, i * 16);
|
|
202
|
+
}
|
|
203
|
+
return result;
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Unpacks an array of column-major matrix components into an array of Matrix4s.
|
|
208
|
+
*
|
|
209
|
+
* @param {number[]} array The array of components to unpack.
|
|
210
|
+
* @param {Matrix4[]} [result] The array onto which to store the result.
|
|
211
|
+
* @returns {Matrix4[]} The unpacked array.
|
|
212
|
+
*/
|
|
213
|
+
Matrix4.unpackArray = function (array, result) {
|
|
214
|
+
//>>includeStart('debug', pragmas.debug);
|
|
215
|
+
Check.defined("array", array);
|
|
216
|
+
Check.typeOf.number.greaterThanOrEquals("array.length", array.length, 16);
|
|
217
|
+
if (array.length % 16 !== 0) {
|
|
218
|
+
throw new DeveloperError("array length must be a multiple of 16.");
|
|
219
|
+
}
|
|
220
|
+
//>>includeEnd('debug');
|
|
221
|
+
|
|
222
|
+
const length = array.length;
|
|
223
|
+
if (!defined(result)) {
|
|
224
|
+
result = new Array(length / 16);
|
|
225
|
+
} else {
|
|
226
|
+
result.length = length / 16;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
for (let i = 0; i < length; i += 16) {
|
|
230
|
+
const index = i / 16;
|
|
231
|
+
result[index] = Matrix4.unpack(array, i, result[index]);
|
|
232
|
+
}
|
|
233
|
+
return result;
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Duplicates a Matrix4 instance.
|
|
238
|
+
*
|
|
239
|
+
* @param {Matrix4} matrix The matrix to duplicate.
|
|
240
|
+
* @param {Matrix4} [result] The object onto which to store the result.
|
|
241
|
+
* @returns {Matrix4} The modified result parameter or a new Matrix4 instance if one was not provided. (Returns undefined if matrix is undefined)
|
|
242
|
+
*/
|
|
243
|
+
Matrix4.clone = function (matrix, result) {
|
|
244
|
+
if (!defined(matrix)) {
|
|
245
|
+
return undefined;
|
|
246
|
+
}
|
|
247
|
+
if (!defined(result)) {
|
|
248
|
+
return new Matrix4(
|
|
249
|
+
matrix[0],
|
|
250
|
+
matrix[4],
|
|
251
|
+
matrix[8],
|
|
252
|
+
matrix[12],
|
|
253
|
+
matrix[1],
|
|
254
|
+
matrix[5],
|
|
255
|
+
matrix[9],
|
|
256
|
+
matrix[13],
|
|
257
|
+
matrix[2],
|
|
258
|
+
matrix[6],
|
|
259
|
+
matrix[10],
|
|
260
|
+
matrix[14],
|
|
261
|
+
matrix[3],
|
|
262
|
+
matrix[7],
|
|
263
|
+
matrix[11],
|
|
264
|
+
matrix[15],
|
|
265
|
+
);
|
|
266
|
+
}
|
|
267
|
+
result[0] = matrix[0];
|
|
268
|
+
result[1] = matrix[1];
|
|
269
|
+
result[2] = matrix[2];
|
|
270
|
+
result[3] = matrix[3];
|
|
271
|
+
result[4] = matrix[4];
|
|
272
|
+
result[5] = matrix[5];
|
|
273
|
+
result[6] = matrix[6];
|
|
274
|
+
result[7] = matrix[7];
|
|
275
|
+
result[8] = matrix[8];
|
|
276
|
+
result[9] = matrix[9];
|
|
277
|
+
result[10] = matrix[10];
|
|
278
|
+
result[11] = matrix[11];
|
|
279
|
+
result[12] = matrix[12];
|
|
280
|
+
result[13] = matrix[13];
|
|
281
|
+
result[14] = matrix[14];
|
|
282
|
+
result[15] = matrix[15];
|
|
283
|
+
return result;
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Creates a Matrix4 from 16 consecutive elements in an array.
|
|
288
|
+
* @function
|
|
289
|
+
*
|
|
290
|
+
* @param {number[]} array The array whose 16 consecutive elements correspond to the positions of the matrix. Assumes column-major order.
|
|
291
|
+
* @param {number} [startingIndex=0] The offset into the array of the first element, which corresponds to first column first row position in the matrix.
|
|
292
|
+
* @param {Matrix4} [result] The object onto which to store the result.
|
|
293
|
+
* @returns {Matrix4} The modified result parameter or a new Matrix4 instance if one was not provided.
|
|
294
|
+
*
|
|
295
|
+
* @example
|
|
296
|
+
* // Create the Matrix4:
|
|
297
|
+
* // [1.0, 2.0, 3.0, 4.0]
|
|
298
|
+
* // [1.0, 2.0, 3.0, 4.0]
|
|
299
|
+
* // [1.0, 2.0, 3.0, 4.0]
|
|
300
|
+
* // [1.0, 2.0, 3.0, 4.0]
|
|
301
|
+
*
|
|
302
|
+
* const v = [1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0];
|
|
303
|
+
* const m = Cesium.Matrix4.fromArray(v);
|
|
304
|
+
*
|
|
305
|
+
* // Create same Matrix4 with using an offset into an array
|
|
306
|
+
* const v2 = [0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0];
|
|
307
|
+
* const m2 = Cesium.Matrix4.fromArray(v2, 2);
|
|
308
|
+
*/
|
|
309
|
+
Matrix4.fromArray = Matrix4.unpack;
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* Computes a Matrix4 instance from a column-major order array.
|
|
313
|
+
*
|
|
314
|
+
* @param {number[]} values The column-major order array.
|
|
315
|
+
* @param {Matrix4} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
316
|
+
* @returns {Matrix4} The modified result parameter, or a new Matrix4 instance if one was not provided.
|
|
317
|
+
*/
|
|
318
|
+
Matrix4.fromColumnMajorArray = function (values, result) {
|
|
319
|
+
//>>includeStart('debug', pragmas.debug);
|
|
320
|
+
Check.defined("values", values);
|
|
321
|
+
//>>includeEnd('debug');
|
|
322
|
+
|
|
323
|
+
return Matrix4.clone(values, result);
|
|
324
|
+
};
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* Computes a Matrix4 instance from a row-major order array.
|
|
328
|
+
* The resulting matrix will be in column-major order.
|
|
329
|
+
*
|
|
330
|
+
* @param {number[]} values The row-major order array.
|
|
331
|
+
* @param {Matrix4} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
332
|
+
* @returns {Matrix4} The modified result parameter, or a new Matrix4 instance if one was not provided.
|
|
333
|
+
*/
|
|
334
|
+
Matrix4.fromRowMajorArray = function (values, result) {
|
|
335
|
+
//>>includeStart('debug', pragmas.debug);
|
|
336
|
+
Check.defined("values", values);
|
|
337
|
+
//>>includeEnd('debug');
|
|
338
|
+
|
|
339
|
+
if (!defined(result)) {
|
|
340
|
+
return new Matrix4(
|
|
341
|
+
values[0],
|
|
342
|
+
values[1],
|
|
343
|
+
values[2],
|
|
344
|
+
values[3],
|
|
345
|
+
values[4],
|
|
346
|
+
values[5],
|
|
347
|
+
values[6],
|
|
348
|
+
values[7],
|
|
349
|
+
values[8],
|
|
350
|
+
values[9],
|
|
351
|
+
values[10],
|
|
352
|
+
values[11],
|
|
353
|
+
values[12],
|
|
354
|
+
values[13],
|
|
355
|
+
values[14],
|
|
356
|
+
values[15],
|
|
357
|
+
);
|
|
358
|
+
}
|
|
359
|
+
result[0] = values[0];
|
|
360
|
+
result[1] = values[4];
|
|
361
|
+
result[2] = values[8];
|
|
362
|
+
result[3] = values[12];
|
|
363
|
+
result[4] = values[1];
|
|
364
|
+
result[5] = values[5];
|
|
365
|
+
result[6] = values[9];
|
|
366
|
+
result[7] = values[13];
|
|
367
|
+
result[8] = values[2];
|
|
368
|
+
result[9] = values[6];
|
|
369
|
+
result[10] = values[10];
|
|
370
|
+
result[11] = values[14];
|
|
371
|
+
result[12] = values[3];
|
|
372
|
+
result[13] = values[7];
|
|
373
|
+
result[14] = values[11];
|
|
374
|
+
result[15] = values[15];
|
|
375
|
+
return result;
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* Computes a Matrix4 instance from a Matrix3 representing the rotation
|
|
380
|
+
* and a Cartesian3 representing the translation.
|
|
381
|
+
*
|
|
382
|
+
* @param {Matrix3} rotation The upper left portion of the matrix representing the rotation.
|
|
383
|
+
* @param {Cartesian3} [translation=Cartesian3.ZERO] The upper right portion of the matrix representing the translation.
|
|
384
|
+
* @param {Matrix4} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
385
|
+
* @returns {Matrix4} The modified result parameter, or a new Matrix4 instance if one was not provided.
|
|
386
|
+
*/
|
|
387
|
+
Matrix4.fromRotationTranslation = function (rotation, translation, result) {
|
|
388
|
+
//>>includeStart('debug', pragmas.debug);
|
|
389
|
+
Check.typeOf.object("rotation", rotation);
|
|
390
|
+
//>>includeEnd('debug');
|
|
391
|
+
|
|
392
|
+
translation = translation ?? Cartesian3.ZERO;
|
|
393
|
+
|
|
394
|
+
if (!defined(result)) {
|
|
395
|
+
return new Matrix4(
|
|
396
|
+
rotation[0],
|
|
397
|
+
rotation[3],
|
|
398
|
+
rotation[6],
|
|
399
|
+
translation.x,
|
|
400
|
+
rotation[1],
|
|
401
|
+
rotation[4],
|
|
402
|
+
rotation[7],
|
|
403
|
+
translation.y,
|
|
404
|
+
rotation[2],
|
|
405
|
+
rotation[5],
|
|
406
|
+
rotation[8],
|
|
407
|
+
translation.z,
|
|
408
|
+
0.0,
|
|
409
|
+
0.0,
|
|
410
|
+
0.0,
|
|
411
|
+
1.0,
|
|
412
|
+
);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
result[0] = rotation[0];
|
|
416
|
+
result[1] = rotation[1];
|
|
417
|
+
result[2] = rotation[2];
|
|
418
|
+
result[3] = 0.0;
|
|
419
|
+
result[4] = rotation[3];
|
|
420
|
+
result[5] = rotation[4];
|
|
421
|
+
result[6] = rotation[5];
|
|
422
|
+
result[7] = 0.0;
|
|
423
|
+
result[8] = rotation[6];
|
|
424
|
+
result[9] = rotation[7];
|
|
425
|
+
result[10] = rotation[8];
|
|
426
|
+
result[11] = 0.0;
|
|
427
|
+
result[12] = translation.x;
|
|
428
|
+
result[13] = translation.y;
|
|
429
|
+
result[14] = translation.z;
|
|
430
|
+
result[15] = 1.0;
|
|
431
|
+
return result;
|
|
432
|
+
};
|
|
433
|
+
|
|
434
|
+
/**
|
|
435
|
+
* Computes a Matrix4 instance from a translation, rotation, and scale (TRS)
|
|
436
|
+
* representation with the rotation represented as a quaternion.
|
|
437
|
+
*
|
|
438
|
+
* @param {Cartesian3} translation The translation transformation.
|
|
439
|
+
* @param {Quaternion} rotation The rotation transformation.
|
|
440
|
+
* @param {Cartesian3} scale The non-uniform scale transformation.
|
|
441
|
+
* @param {Matrix4} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
442
|
+
* @returns {Matrix4} The modified result parameter, or a new Matrix4 instance if one was not provided.
|
|
443
|
+
*
|
|
444
|
+
* @example
|
|
445
|
+
* const result = Cesium.Matrix4.fromTranslationQuaternionRotationScale(
|
|
446
|
+
* new Cesium.Cartesian3(1.0, 2.0, 3.0), // translation
|
|
447
|
+
* Cesium.Quaternion.IDENTITY, // rotation
|
|
448
|
+
* new Cesium.Cartesian3(7.0, 8.0, 9.0), // scale
|
|
449
|
+
* result);
|
|
450
|
+
*/
|
|
451
|
+
Matrix4.fromTranslationQuaternionRotationScale = function (
|
|
452
|
+
translation,
|
|
453
|
+
rotation,
|
|
454
|
+
scale,
|
|
455
|
+
result,
|
|
456
|
+
) {
|
|
457
|
+
//>>includeStart('debug', pragmas.debug);
|
|
458
|
+
Check.typeOf.object("translation", translation);
|
|
459
|
+
Check.typeOf.object("rotation", rotation);
|
|
460
|
+
Check.typeOf.object("scale", scale);
|
|
461
|
+
//>>includeEnd('debug');
|
|
462
|
+
|
|
463
|
+
if (!defined(result)) {
|
|
464
|
+
result = new Matrix4();
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
const scaleX = scale.x;
|
|
468
|
+
const scaleY = scale.y;
|
|
469
|
+
const scaleZ = scale.z;
|
|
470
|
+
|
|
471
|
+
const x2 = rotation.x * rotation.x;
|
|
472
|
+
const xy = rotation.x * rotation.y;
|
|
473
|
+
const xz = rotation.x * rotation.z;
|
|
474
|
+
const xw = rotation.x * rotation.w;
|
|
475
|
+
const y2 = rotation.y * rotation.y;
|
|
476
|
+
const yz = rotation.y * rotation.z;
|
|
477
|
+
const yw = rotation.y * rotation.w;
|
|
478
|
+
const z2 = rotation.z * rotation.z;
|
|
479
|
+
const zw = rotation.z * rotation.w;
|
|
480
|
+
const w2 = rotation.w * rotation.w;
|
|
481
|
+
|
|
482
|
+
const m00 = x2 - y2 - z2 + w2;
|
|
483
|
+
const m01 = 2.0 * (xy - zw);
|
|
484
|
+
const m02 = 2.0 * (xz + yw);
|
|
485
|
+
|
|
486
|
+
const m10 = 2.0 * (xy + zw);
|
|
487
|
+
const m11 = -x2 + y2 - z2 + w2;
|
|
488
|
+
const m12 = 2.0 * (yz - xw);
|
|
489
|
+
|
|
490
|
+
const m20 = 2.0 * (xz - yw);
|
|
491
|
+
const m21 = 2.0 * (yz + xw);
|
|
492
|
+
const m22 = -x2 - y2 + z2 + w2;
|
|
493
|
+
|
|
494
|
+
result[0] = m00 * scaleX;
|
|
495
|
+
result[1] = m10 * scaleX;
|
|
496
|
+
result[2] = m20 * scaleX;
|
|
497
|
+
result[3] = 0.0;
|
|
498
|
+
result[4] = m01 * scaleY;
|
|
499
|
+
result[5] = m11 * scaleY;
|
|
500
|
+
result[6] = m21 * scaleY;
|
|
501
|
+
result[7] = 0.0;
|
|
502
|
+
result[8] = m02 * scaleZ;
|
|
503
|
+
result[9] = m12 * scaleZ;
|
|
504
|
+
result[10] = m22 * scaleZ;
|
|
505
|
+
result[11] = 0.0;
|
|
506
|
+
result[12] = translation.x;
|
|
507
|
+
result[13] = translation.y;
|
|
508
|
+
result[14] = translation.z;
|
|
509
|
+
result[15] = 1.0;
|
|
510
|
+
|
|
511
|
+
return result;
|
|
512
|
+
};
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* Creates a Matrix4 instance from a {@link TranslationRotationScale} instance.
|
|
516
|
+
*
|
|
517
|
+
* @param {TranslationRotationScale} translationRotationScale The instance.
|
|
518
|
+
* @param {Matrix4} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
519
|
+
* @returns {Matrix4} The modified result parameter, or a new Matrix4 instance if one was not provided.
|
|
520
|
+
*/
|
|
521
|
+
Matrix4.fromTranslationRotationScale = function (
|
|
522
|
+
translationRotationScale,
|
|
523
|
+
result,
|
|
524
|
+
) {
|
|
525
|
+
//>>includeStart('debug', pragmas.debug);
|
|
526
|
+
Check.typeOf.object("translationRotationScale", translationRotationScale);
|
|
527
|
+
//>>includeEnd('debug');
|
|
528
|
+
|
|
529
|
+
return Matrix4.fromTranslationQuaternionRotationScale(
|
|
530
|
+
translationRotationScale.translation,
|
|
531
|
+
translationRotationScale.rotation,
|
|
532
|
+
translationRotationScale.scale,
|
|
533
|
+
result,
|
|
534
|
+
);
|
|
535
|
+
};
|
|
536
|
+
|
|
537
|
+
/**
|
|
538
|
+
* Creates a Matrix4 instance from a Cartesian3 representing the translation.
|
|
539
|
+
*
|
|
540
|
+
* @param {Cartesian3} translation The upper right portion of the matrix representing the translation.
|
|
541
|
+
* @param {Matrix4} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
542
|
+
* @returns {Matrix4} The modified result parameter, or a new Matrix4 instance if one was not provided.
|
|
543
|
+
*
|
|
544
|
+
* @see Matrix4.multiplyByTranslation
|
|
545
|
+
*/
|
|
546
|
+
Matrix4.fromTranslation = function (translation, result) {
|
|
547
|
+
//>>includeStart('debug', pragmas.debug);
|
|
548
|
+
Check.typeOf.object("translation", translation);
|
|
549
|
+
//>>includeEnd('debug');
|
|
550
|
+
|
|
551
|
+
return Matrix4.fromRotationTranslation(Matrix3.IDENTITY, translation, result);
|
|
552
|
+
};
|
|
553
|
+
|
|
554
|
+
/**
|
|
555
|
+
* Computes a Matrix4 instance representing a non-uniform scale.
|
|
556
|
+
*
|
|
557
|
+
* @param {Cartesian3} scale The x, y, and z scale factors.
|
|
558
|
+
* @param {Matrix4} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
559
|
+
* @returns {Matrix4} The modified result parameter, or a new Matrix4 instance if one was not provided.
|
|
560
|
+
*
|
|
561
|
+
* @example
|
|
562
|
+
* // Creates
|
|
563
|
+
* // [7.0, 0.0, 0.0, 0.0]
|
|
564
|
+
* // [0.0, 8.0, 0.0, 0.0]
|
|
565
|
+
* // [0.0, 0.0, 9.0, 0.0]
|
|
566
|
+
* // [0.0, 0.0, 0.0, 1.0]
|
|
567
|
+
* const m = Cesium.Matrix4.fromScale(new Cesium.Cartesian3(7.0, 8.0, 9.0));
|
|
568
|
+
*/
|
|
569
|
+
Matrix4.fromScale = function (scale, result) {
|
|
570
|
+
//>>includeStart('debug', pragmas.debug);
|
|
571
|
+
Check.typeOf.object("scale", scale);
|
|
572
|
+
//>>includeEnd('debug');
|
|
573
|
+
|
|
574
|
+
if (!defined(result)) {
|
|
575
|
+
return new Matrix4(
|
|
576
|
+
scale.x,
|
|
577
|
+
0.0,
|
|
578
|
+
0.0,
|
|
579
|
+
0.0,
|
|
580
|
+
0.0,
|
|
581
|
+
scale.y,
|
|
582
|
+
0.0,
|
|
583
|
+
0.0,
|
|
584
|
+
0.0,
|
|
585
|
+
0.0,
|
|
586
|
+
scale.z,
|
|
587
|
+
0.0,
|
|
588
|
+
0.0,
|
|
589
|
+
0.0,
|
|
590
|
+
0.0,
|
|
591
|
+
1.0,
|
|
592
|
+
);
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
result[0] = scale.x;
|
|
596
|
+
result[1] = 0.0;
|
|
597
|
+
result[2] = 0.0;
|
|
598
|
+
result[3] = 0.0;
|
|
599
|
+
result[4] = 0.0;
|
|
600
|
+
result[5] = scale.y;
|
|
601
|
+
result[6] = 0.0;
|
|
602
|
+
result[7] = 0.0;
|
|
603
|
+
result[8] = 0.0;
|
|
604
|
+
result[9] = 0.0;
|
|
605
|
+
result[10] = scale.z;
|
|
606
|
+
result[11] = 0.0;
|
|
607
|
+
result[12] = 0.0;
|
|
608
|
+
result[13] = 0.0;
|
|
609
|
+
result[14] = 0.0;
|
|
610
|
+
result[15] = 1.0;
|
|
611
|
+
return result;
|
|
612
|
+
};
|
|
613
|
+
|
|
614
|
+
/**
|
|
615
|
+
* Computes a Matrix4 instance representing a uniform scale.
|
|
616
|
+
*
|
|
617
|
+
* @param {number} scale The uniform scale factor.
|
|
618
|
+
* @param {Matrix4} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
619
|
+
* @returns {Matrix4} The modified result parameter, or a new Matrix4 instance if one was not provided.
|
|
620
|
+
*
|
|
621
|
+
* @example
|
|
622
|
+
* // Creates
|
|
623
|
+
* // [2.0, 0.0, 0.0, 0.0]
|
|
624
|
+
* // [0.0, 2.0, 0.0, 0.0]
|
|
625
|
+
* // [0.0, 0.0, 2.0, 0.0]
|
|
626
|
+
* // [0.0, 0.0, 0.0, 1.0]
|
|
627
|
+
* const m = Cesium.Matrix4.fromUniformScale(2.0);
|
|
628
|
+
*/
|
|
629
|
+
Matrix4.fromUniformScale = function (scale, result) {
|
|
630
|
+
//>>includeStart('debug', pragmas.debug);
|
|
631
|
+
Check.typeOf.number("scale", scale);
|
|
632
|
+
//>>includeEnd('debug');
|
|
633
|
+
|
|
634
|
+
if (!defined(result)) {
|
|
635
|
+
return new Matrix4(
|
|
636
|
+
scale,
|
|
637
|
+
0.0,
|
|
638
|
+
0.0,
|
|
639
|
+
0.0,
|
|
640
|
+
0.0,
|
|
641
|
+
scale,
|
|
642
|
+
0.0,
|
|
643
|
+
0.0,
|
|
644
|
+
0.0,
|
|
645
|
+
0.0,
|
|
646
|
+
scale,
|
|
647
|
+
0.0,
|
|
648
|
+
0.0,
|
|
649
|
+
0.0,
|
|
650
|
+
0.0,
|
|
651
|
+
1.0,
|
|
652
|
+
);
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
result[0] = scale;
|
|
656
|
+
result[1] = 0.0;
|
|
657
|
+
result[2] = 0.0;
|
|
658
|
+
result[3] = 0.0;
|
|
659
|
+
result[4] = 0.0;
|
|
660
|
+
result[5] = scale;
|
|
661
|
+
result[6] = 0.0;
|
|
662
|
+
result[7] = 0.0;
|
|
663
|
+
result[8] = 0.0;
|
|
664
|
+
result[9] = 0.0;
|
|
665
|
+
result[10] = scale;
|
|
666
|
+
result[11] = 0.0;
|
|
667
|
+
result[12] = 0.0;
|
|
668
|
+
result[13] = 0.0;
|
|
669
|
+
result[14] = 0.0;
|
|
670
|
+
result[15] = 1.0;
|
|
671
|
+
return result;
|
|
672
|
+
};
|
|
673
|
+
|
|
674
|
+
/**
|
|
675
|
+
* Creates a rotation matrix.
|
|
676
|
+
*
|
|
677
|
+
* @param {Matrix3} rotation The rotation matrix.
|
|
678
|
+
* @param {Matrix4} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
679
|
+
* @returns {Matrix4} The modified result parameter, or a new Matrix4 instance if one was not provided.
|
|
680
|
+
*/
|
|
681
|
+
Matrix4.fromRotation = function (rotation, result) {
|
|
682
|
+
//>>includeStart('debug', pragmas.debug);
|
|
683
|
+
Check.typeOf.object("rotation", rotation);
|
|
684
|
+
//>>includeEnd('debug');
|
|
685
|
+
|
|
686
|
+
if (!defined(result)) {
|
|
687
|
+
result = new Matrix4();
|
|
688
|
+
}
|
|
689
|
+
result[0] = rotation[0];
|
|
690
|
+
result[1] = rotation[1];
|
|
691
|
+
result[2] = rotation[2];
|
|
692
|
+
result[3] = 0.0;
|
|
693
|
+
|
|
694
|
+
result[4] = rotation[3];
|
|
695
|
+
result[5] = rotation[4];
|
|
696
|
+
result[6] = rotation[5];
|
|
697
|
+
result[7] = 0.0;
|
|
698
|
+
|
|
699
|
+
result[8] = rotation[6];
|
|
700
|
+
result[9] = rotation[7];
|
|
701
|
+
result[10] = rotation[8];
|
|
702
|
+
result[11] = 0.0;
|
|
703
|
+
|
|
704
|
+
result[12] = 0.0;
|
|
705
|
+
result[13] = 0.0;
|
|
706
|
+
result[14] = 0.0;
|
|
707
|
+
result[15] = 1.0;
|
|
708
|
+
|
|
709
|
+
return result;
|
|
710
|
+
};
|
|
711
|
+
|
|
712
|
+
const fromCameraF = new Cartesian3();
|
|
713
|
+
const fromCameraR = new Cartesian3();
|
|
714
|
+
const fromCameraU = new Cartesian3();
|
|
715
|
+
|
|
716
|
+
/**
|
|
717
|
+
* Computes a Matrix4 instance from a Camera.
|
|
718
|
+
*
|
|
719
|
+
* @param {Camera} camera The camera to use.
|
|
720
|
+
* @param {Matrix4} [result] The object in which the result will be stored, if undefined a new instance will be created.
|
|
721
|
+
* @returns {Matrix4} The modified result parameter, or a new Matrix4 instance if one was not provided.
|
|
722
|
+
*/
|
|
723
|
+
Matrix4.fromCamera = function (camera, result) {
|
|
724
|
+
//>>includeStart('debug', pragmas.debug);
|
|
725
|
+
Check.typeOf.object("camera", camera);
|
|
726
|
+
//>>includeEnd('debug');
|
|
727
|
+
|
|
728
|
+
const position = camera.position;
|
|
729
|
+
const direction = camera.direction;
|
|
730
|
+
const up = camera.up;
|
|
731
|
+
|
|
732
|
+
//>>includeStart('debug', pragmas.debug);
|
|
733
|
+
Check.typeOf.object("camera.position", position);
|
|
734
|
+
Check.typeOf.object("camera.direction", direction);
|
|
735
|
+
Check.typeOf.object("camera.up", up);
|
|
736
|
+
//>>includeEnd('debug');
|
|
737
|
+
|
|
738
|
+
Cartesian3.normalize(direction, fromCameraF);
|
|
739
|
+
Cartesian3.normalize(
|
|
740
|
+
Cartesian3.cross(fromCameraF, up, fromCameraR),
|
|
741
|
+
fromCameraR,
|
|
742
|
+
);
|
|
743
|
+
Cartesian3.normalize(
|
|
744
|
+
Cartesian3.cross(fromCameraR, fromCameraF, fromCameraU),
|
|
745
|
+
fromCameraU,
|
|
746
|
+
);
|
|
747
|
+
|
|
748
|
+
const sX = fromCameraR.x;
|
|
749
|
+
const sY = fromCameraR.y;
|
|
750
|
+
const sZ = fromCameraR.z;
|
|
751
|
+
const fX = fromCameraF.x;
|
|
752
|
+
const fY = fromCameraF.y;
|
|
753
|
+
const fZ = fromCameraF.z;
|
|
754
|
+
const uX = fromCameraU.x;
|
|
755
|
+
const uY = fromCameraU.y;
|
|
756
|
+
const uZ = fromCameraU.z;
|
|
757
|
+
const positionX = position.x;
|
|
758
|
+
const positionY = position.y;
|
|
759
|
+
const positionZ = position.z;
|
|
760
|
+
const t0 = sX * -positionX + sY * -positionY + sZ * -positionZ;
|
|
761
|
+
const t1 = uX * -positionX + uY * -positionY + uZ * -positionZ;
|
|
762
|
+
const t2 = fX * positionX + fY * positionY + fZ * positionZ;
|
|
763
|
+
|
|
764
|
+
// The code below this comment is an optimized
|
|
765
|
+
// version of the commented lines.
|
|
766
|
+
// Rather that create two matrices and then multiply,
|
|
767
|
+
// we just bake in the multiplcation as part of creation.
|
|
768
|
+
// const rotation = new Matrix4(
|
|
769
|
+
// sX, sY, sZ, 0.0,
|
|
770
|
+
// uX, uY, uZ, 0.0,
|
|
771
|
+
// -fX, -fY, -fZ, 0.0,
|
|
772
|
+
// 0.0, 0.0, 0.0, 1.0);
|
|
773
|
+
// const translation = new Matrix4(
|
|
774
|
+
// 1.0, 0.0, 0.0, -position.x,
|
|
775
|
+
// 0.0, 1.0, 0.0, -position.y,
|
|
776
|
+
// 0.0, 0.0, 1.0, -position.z,
|
|
777
|
+
// 0.0, 0.0, 0.0, 1.0);
|
|
778
|
+
// return rotation.multiply(translation);
|
|
779
|
+
if (!defined(result)) {
|
|
780
|
+
return new Matrix4(
|
|
781
|
+
sX,
|
|
782
|
+
sY,
|
|
783
|
+
sZ,
|
|
784
|
+
t0,
|
|
785
|
+
uX,
|
|
786
|
+
uY,
|
|
787
|
+
uZ,
|
|
788
|
+
t1,
|
|
789
|
+
-fX,
|
|
790
|
+
-fY,
|
|
791
|
+
-fZ,
|
|
792
|
+
t2,
|
|
793
|
+
0.0,
|
|
794
|
+
0.0,
|
|
795
|
+
0.0,
|
|
796
|
+
1.0,
|
|
797
|
+
);
|
|
798
|
+
}
|
|
799
|
+
result[0] = sX;
|
|
800
|
+
result[1] = uX;
|
|
801
|
+
result[2] = -fX;
|
|
802
|
+
result[3] = 0.0;
|
|
803
|
+
result[4] = sY;
|
|
804
|
+
result[5] = uY;
|
|
805
|
+
result[6] = -fY;
|
|
806
|
+
result[7] = 0.0;
|
|
807
|
+
result[8] = sZ;
|
|
808
|
+
result[9] = uZ;
|
|
809
|
+
result[10] = -fZ;
|
|
810
|
+
result[11] = 0.0;
|
|
811
|
+
result[12] = t0;
|
|
812
|
+
result[13] = t1;
|
|
813
|
+
result[14] = t2;
|
|
814
|
+
result[15] = 1.0;
|
|
815
|
+
return result;
|
|
816
|
+
};
|
|
817
|
+
|
|
818
|
+
/**
|
|
819
|
+
* Computes a Matrix4 instance representing a perspective transformation matrix.
|
|
820
|
+
*
|
|
821
|
+
* @param {number} fovY The field of view along the Y axis in radians.
|
|
822
|
+
* @param {number} aspectRatio The aspect ratio.
|
|
823
|
+
* @param {number} near The distance to the near plane in meters.
|
|
824
|
+
* @param {number} far The distance to the far plane in meters.
|
|
825
|
+
* @param {Matrix4} result The object in which the result will be stored.
|
|
826
|
+
* @returns {Matrix4} The modified result parameter.
|
|
827
|
+
*
|
|
828
|
+
* @exception {DeveloperError} fovY must be in (0, PI].
|
|
829
|
+
* @exception {DeveloperError} aspectRatio must be greater than zero.
|
|
830
|
+
* @exception {DeveloperError} near must be greater than zero.
|
|
831
|
+
* @exception {DeveloperError} far must be greater than zero.
|
|
832
|
+
*/
|
|
833
|
+
Matrix4.computePerspectiveFieldOfView = function (
|
|
834
|
+
fovY,
|
|
835
|
+
aspectRatio,
|
|
836
|
+
near,
|
|
837
|
+
far,
|
|
838
|
+
result,
|
|
839
|
+
) {
|
|
840
|
+
//>>includeStart('debug', pragmas.debug);
|
|
841
|
+
Check.typeOf.number.greaterThan("fovY", fovY, 0.0);
|
|
842
|
+
Check.typeOf.number.lessThan("fovY", fovY, Math.PI);
|
|
843
|
+
Check.typeOf.number.greaterThan("near", near, 0.0);
|
|
844
|
+
Check.typeOf.number.greaterThan("far", far, 0.0);
|
|
845
|
+
Check.typeOf.object("result", result);
|
|
846
|
+
//>>includeEnd('debug');
|
|
847
|
+
|
|
848
|
+
const bottom = Math.tan(fovY * 0.5);
|
|
849
|
+
|
|
850
|
+
const column1Row1 = 1.0 / bottom;
|
|
851
|
+
const column0Row0 = column1Row1 / aspectRatio;
|
|
852
|
+
const column2Row2 = (far + near) / (near - far);
|
|
853
|
+
const column3Row2 = (2.0 * far * near) / (near - far);
|
|
854
|
+
|
|
855
|
+
result[0] = column0Row0;
|
|
856
|
+
result[1] = 0.0;
|
|
857
|
+
result[2] = 0.0;
|
|
858
|
+
result[3] = 0.0;
|
|
859
|
+
result[4] = 0.0;
|
|
860
|
+
result[5] = column1Row1;
|
|
861
|
+
result[6] = 0.0;
|
|
862
|
+
result[7] = 0.0;
|
|
863
|
+
result[8] = 0.0;
|
|
864
|
+
result[9] = 0.0;
|
|
865
|
+
result[10] = column2Row2;
|
|
866
|
+
result[11] = -1.0;
|
|
867
|
+
result[12] = 0.0;
|
|
868
|
+
result[13] = 0.0;
|
|
869
|
+
result[14] = column3Row2;
|
|
870
|
+
result[15] = 0.0;
|
|
871
|
+
return result;
|
|
872
|
+
};
|
|
873
|
+
|
|
874
|
+
/**
|
|
875
|
+
* Computes a Matrix4 instance representing an orthographic transformation matrix.
|
|
876
|
+
*
|
|
877
|
+
* @param {number} left The number of meters to the left of the camera that will be in view.
|
|
878
|
+
* @param {number} right The number of meters to the right of the camera that will be in view.
|
|
879
|
+
* @param {number} bottom The number of meters below of the camera that will be in view.
|
|
880
|
+
* @param {number} top The number of meters above of the camera that will be in view.
|
|
881
|
+
* @param {number} near The distance to the near plane in meters.
|
|
882
|
+
* @param {number} far The distance to the far plane in meters.
|
|
883
|
+
* @param {Matrix4} result The object in which the result will be stored.
|
|
884
|
+
* @returns {Matrix4} The modified result parameter.
|
|
885
|
+
*/
|
|
886
|
+
Matrix4.computeOrthographicOffCenter = function (
|
|
887
|
+
left,
|
|
888
|
+
right,
|
|
889
|
+
bottom,
|
|
890
|
+
top,
|
|
891
|
+
near,
|
|
892
|
+
far,
|
|
893
|
+
result,
|
|
894
|
+
) {
|
|
895
|
+
//>>includeStart('debug', pragmas.debug);
|
|
896
|
+
Check.typeOf.number("left", left);
|
|
897
|
+
Check.typeOf.number("right", right);
|
|
898
|
+
Check.typeOf.number("bottom", bottom);
|
|
899
|
+
Check.typeOf.number("top", top);
|
|
900
|
+
Check.typeOf.number("near", near);
|
|
901
|
+
Check.typeOf.number("far", far);
|
|
902
|
+
Check.typeOf.object("result", result);
|
|
903
|
+
//>>includeEnd('debug');
|
|
904
|
+
|
|
905
|
+
let a = 1.0 / (right - left);
|
|
906
|
+
let b = 1.0 / (top - bottom);
|
|
907
|
+
let c = 1.0 / (far - near);
|
|
908
|
+
|
|
909
|
+
const tx = -(right + left) * a;
|
|
910
|
+
const ty = -(top + bottom) * b;
|
|
911
|
+
const tz = -(far + near) * c;
|
|
912
|
+
a *= 2.0;
|
|
913
|
+
b *= 2.0;
|
|
914
|
+
c *= -2.0;
|
|
915
|
+
|
|
916
|
+
result[0] = a;
|
|
917
|
+
result[1] = 0.0;
|
|
918
|
+
result[2] = 0.0;
|
|
919
|
+
result[3] = 0.0;
|
|
920
|
+
result[4] = 0.0;
|
|
921
|
+
result[5] = b;
|
|
922
|
+
result[6] = 0.0;
|
|
923
|
+
result[7] = 0.0;
|
|
924
|
+
result[8] = 0.0;
|
|
925
|
+
result[9] = 0.0;
|
|
926
|
+
result[10] = c;
|
|
927
|
+
result[11] = 0.0;
|
|
928
|
+
result[12] = tx;
|
|
929
|
+
result[13] = ty;
|
|
930
|
+
result[14] = tz;
|
|
931
|
+
result[15] = 1.0;
|
|
932
|
+
return result;
|
|
933
|
+
};
|
|
934
|
+
|
|
935
|
+
/**
|
|
936
|
+
* Computes a Matrix4 instance representing an off center perspective transformation.
|
|
937
|
+
*
|
|
938
|
+
* @param {number} left The number of meters to the left of the camera that will be in view.
|
|
939
|
+
* @param {number} right The number of meters to the right of the camera that will be in view.
|
|
940
|
+
* @param {number} bottom The number of meters below the camera that will be in view.
|
|
941
|
+
* @param {number} top The number of meters above the camera that will be in view.
|
|
942
|
+
* @param {number} near The distance to the near plane in meters.
|
|
943
|
+
* @param {number} far The distance to the far plane in meters.
|
|
944
|
+
* @param {Matrix4} result The object in which the result will be stored.
|
|
945
|
+
* @returns {Matrix4} The modified result parameter.
|
|
946
|
+
*/
|
|
947
|
+
Matrix4.computePerspectiveOffCenter = function (
|
|
948
|
+
left,
|
|
949
|
+
right,
|
|
950
|
+
bottom,
|
|
951
|
+
top,
|
|
952
|
+
near,
|
|
953
|
+
far,
|
|
954
|
+
result,
|
|
955
|
+
) {
|
|
956
|
+
//>>includeStart('debug', pragmas.debug);
|
|
957
|
+
Check.typeOf.number("left", left);
|
|
958
|
+
Check.typeOf.number("right", right);
|
|
959
|
+
Check.typeOf.number("bottom", bottom);
|
|
960
|
+
Check.typeOf.number("top", top);
|
|
961
|
+
Check.typeOf.number("near", near);
|
|
962
|
+
Check.typeOf.number("far", far);
|
|
963
|
+
Check.typeOf.object("result", result);
|
|
964
|
+
//>>includeEnd('debug');
|
|
965
|
+
|
|
966
|
+
const column0Row0 = (2.0 * near) / (right - left);
|
|
967
|
+
const column1Row1 = (2.0 * near) / (top - bottom);
|
|
968
|
+
const column2Row0 = (right + left) / (right - left);
|
|
969
|
+
const column2Row1 = (top + bottom) / (top - bottom);
|
|
970
|
+
const column2Row2 = -(far + near) / (far - near);
|
|
971
|
+
const column2Row3 = -1.0;
|
|
972
|
+
const column3Row2 = (-2.0 * far * near) / (far - near);
|
|
973
|
+
|
|
974
|
+
result[0] = column0Row0;
|
|
975
|
+
result[1] = 0.0;
|
|
976
|
+
result[2] = 0.0;
|
|
977
|
+
result[3] = 0.0;
|
|
978
|
+
result[4] = 0.0;
|
|
979
|
+
result[5] = column1Row1;
|
|
980
|
+
result[6] = 0.0;
|
|
981
|
+
result[7] = 0.0;
|
|
982
|
+
result[8] = column2Row0;
|
|
983
|
+
result[9] = column2Row1;
|
|
984
|
+
result[10] = column2Row2;
|
|
985
|
+
result[11] = column2Row3;
|
|
986
|
+
result[12] = 0.0;
|
|
987
|
+
result[13] = 0.0;
|
|
988
|
+
result[14] = column3Row2;
|
|
989
|
+
result[15] = 0.0;
|
|
990
|
+
return result;
|
|
991
|
+
};
|
|
992
|
+
|
|
993
|
+
/**
|
|
994
|
+
* Computes a Matrix4 instance representing an infinite off center perspective transformation.
|
|
995
|
+
*
|
|
996
|
+
* @param {number} left The number of meters to the left of the camera that will be in view.
|
|
997
|
+
* @param {number} right The number of meters to the right of the camera that will be in view.
|
|
998
|
+
* @param {number} bottom The number of meters below of the camera that will be in view.
|
|
999
|
+
* @param {number} top The number of meters above of the camera that will be in view.
|
|
1000
|
+
* @param {number} near The distance to the near plane in meters.
|
|
1001
|
+
* @param {Matrix4} result The object in which the result will be stored.
|
|
1002
|
+
* @returns {Matrix4} The modified result parameter.
|
|
1003
|
+
*/
|
|
1004
|
+
Matrix4.computeInfinitePerspectiveOffCenter = function (
|
|
1005
|
+
left,
|
|
1006
|
+
right,
|
|
1007
|
+
bottom,
|
|
1008
|
+
top,
|
|
1009
|
+
near,
|
|
1010
|
+
result,
|
|
1011
|
+
) {
|
|
1012
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1013
|
+
Check.typeOf.number("left", left);
|
|
1014
|
+
Check.typeOf.number("right", right);
|
|
1015
|
+
Check.typeOf.number("bottom", bottom);
|
|
1016
|
+
Check.typeOf.number("top", top);
|
|
1017
|
+
Check.typeOf.number("near", near);
|
|
1018
|
+
Check.typeOf.object("result", result);
|
|
1019
|
+
//>>includeEnd('debug');
|
|
1020
|
+
|
|
1021
|
+
const column0Row0 = (2.0 * near) / (right - left);
|
|
1022
|
+
const column1Row1 = (2.0 * near) / (top - bottom);
|
|
1023
|
+
const column2Row0 = (right + left) / (right - left);
|
|
1024
|
+
const column2Row1 = (top + bottom) / (top - bottom);
|
|
1025
|
+
const column2Row2 = -1.0;
|
|
1026
|
+
const column2Row3 = -1.0;
|
|
1027
|
+
const column3Row2 = -2.0 * near;
|
|
1028
|
+
|
|
1029
|
+
result[0] = column0Row0;
|
|
1030
|
+
result[1] = 0.0;
|
|
1031
|
+
result[2] = 0.0;
|
|
1032
|
+
result[3] = 0.0;
|
|
1033
|
+
result[4] = 0.0;
|
|
1034
|
+
result[5] = column1Row1;
|
|
1035
|
+
result[6] = 0.0;
|
|
1036
|
+
result[7] = 0.0;
|
|
1037
|
+
result[8] = column2Row0;
|
|
1038
|
+
result[9] = column2Row1;
|
|
1039
|
+
result[10] = column2Row2;
|
|
1040
|
+
result[11] = column2Row3;
|
|
1041
|
+
result[12] = 0.0;
|
|
1042
|
+
result[13] = 0.0;
|
|
1043
|
+
result[14] = column3Row2;
|
|
1044
|
+
result[15] = 0.0;
|
|
1045
|
+
return result;
|
|
1046
|
+
};
|
|
1047
|
+
|
|
1048
|
+
/**
|
|
1049
|
+
* Computes a Matrix4 instance that transforms from normalized device coordinates to window coordinates.
|
|
1050
|
+
*
|
|
1051
|
+
* @param {object} [viewport = { x : 0.0, y : 0.0, width : 0.0, height : 0.0 }] The viewport's corners as shown in Example 1.
|
|
1052
|
+
* @param {number} [nearDepthRange=0.0] The near plane distance in window coordinates.
|
|
1053
|
+
* @param {number} [farDepthRange=1.0] The far plane distance in window coordinates.
|
|
1054
|
+
* @param {Matrix4} [result] The object in which the result will be stored.
|
|
1055
|
+
* @returns {Matrix4} The modified result parameter.
|
|
1056
|
+
*
|
|
1057
|
+
* @example
|
|
1058
|
+
* // Create viewport transformation using an explicit viewport and depth range.
|
|
1059
|
+
* const m = Cesium.Matrix4.computeViewportTransformation({
|
|
1060
|
+
* x : 0.0,
|
|
1061
|
+
* y : 0.0,
|
|
1062
|
+
* width : 1024.0,
|
|
1063
|
+
* height : 768.0
|
|
1064
|
+
* }, 0.0, 1.0, new Cesium.Matrix4());
|
|
1065
|
+
*/
|
|
1066
|
+
Matrix4.computeViewportTransformation = function (
|
|
1067
|
+
viewport,
|
|
1068
|
+
nearDepthRange,
|
|
1069
|
+
farDepthRange,
|
|
1070
|
+
result,
|
|
1071
|
+
) {
|
|
1072
|
+
if (!defined(result)) {
|
|
1073
|
+
result = new Matrix4();
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1076
|
+
viewport = viewport ?? Frozen.EMPTY_OBJECT;
|
|
1077
|
+
const x = viewport.x ?? 0.0;
|
|
1078
|
+
const y = viewport.y ?? 0.0;
|
|
1079
|
+
const width = viewport.width ?? 0.0;
|
|
1080
|
+
const height = viewport.height ?? 0.0;
|
|
1081
|
+
nearDepthRange = nearDepthRange ?? 0.0;
|
|
1082
|
+
farDepthRange = farDepthRange ?? 1.0;
|
|
1083
|
+
|
|
1084
|
+
const halfWidth = width * 0.5;
|
|
1085
|
+
const halfHeight = height * 0.5;
|
|
1086
|
+
const halfDepth = (farDepthRange - nearDepthRange) * 0.5;
|
|
1087
|
+
|
|
1088
|
+
const column0Row0 = halfWidth;
|
|
1089
|
+
const column1Row1 = halfHeight;
|
|
1090
|
+
const column2Row2 = halfDepth;
|
|
1091
|
+
const column3Row0 = x + halfWidth;
|
|
1092
|
+
const column3Row1 = y + halfHeight;
|
|
1093
|
+
const column3Row2 = nearDepthRange + halfDepth;
|
|
1094
|
+
const column3Row3 = 1.0;
|
|
1095
|
+
|
|
1096
|
+
result[0] = column0Row0;
|
|
1097
|
+
result[1] = 0.0;
|
|
1098
|
+
result[2] = 0.0;
|
|
1099
|
+
result[3] = 0.0;
|
|
1100
|
+
result[4] = 0.0;
|
|
1101
|
+
result[5] = column1Row1;
|
|
1102
|
+
result[6] = 0.0;
|
|
1103
|
+
result[7] = 0.0;
|
|
1104
|
+
result[8] = 0.0;
|
|
1105
|
+
result[9] = 0.0;
|
|
1106
|
+
result[10] = column2Row2;
|
|
1107
|
+
result[11] = 0.0;
|
|
1108
|
+
result[12] = column3Row0;
|
|
1109
|
+
result[13] = column3Row1;
|
|
1110
|
+
result[14] = column3Row2;
|
|
1111
|
+
result[15] = column3Row3;
|
|
1112
|
+
|
|
1113
|
+
return result;
|
|
1114
|
+
};
|
|
1115
|
+
|
|
1116
|
+
/**
|
|
1117
|
+
* Computes a Matrix4 instance that transforms from world space to view space.
|
|
1118
|
+
*
|
|
1119
|
+
* @param {Cartesian3} position The position of the camera.
|
|
1120
|
+
* @param {Cartesian3} direction The forward direction.
|
|
1121
|
+
* @param {Cartesian3} up The up direction.
|
|
1122
|
+
* @param {Cartesian3} right The right direction.
|
|
1123
|
+
* @param {Matrix4} result The object in which the result will be stored.
|
|
1124
|
+
* @returns {Matrix4} The modified result parameter.
|
|
1125
|
+
*/
|
|
1126
|
+
Matrix4.computeView = function (position, direction, up, right, result) {
|
|
1127
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1128
|
+
Check.typeOf.object("position", position);
|
|
1129
|
+
Check.typeOf.object("direction", direction);
|
|
1130
|
+
Check.typeOf.object("up", up);
|
|
1131
|
+
Check.typeOf.object("right", right);
|
|
1132
|
+
Check.typeOf.object("result", result);
|
|
1133
|
+
//>>includeEnd('debug');
|
|
1134
|
+
|
|
1135
|
+
result[0] = right.x;
|
|
1136
|
+
result[1] = up.x;
|
|
1137
|
+
result[2] = -direction.x;
|
|
1138
|
+
result[3] = 0.0;
|
|
1139
|
+
result[4] = right.y;
|
|
1140
|
+
result[5] = up.y;
|
|
1141
|
+
result[6] = -direction.y;
|
|
1142
|
+
result[7] = 0.0;
|
|
1143
|
+
result[8] = right.z;
|
|
1144
|
+
result[9] = up.z;
|
|
1145
|
+
result[10] = -direction.z;
|
|
1146
|
+
result[11] = 0.0;
|
|
1147
|
+
result[12] = -Cartesian3.dot(right, position);
|
|
1148
|
+
result[13] = -Cartesian3.dot(up, position);
|
|
1149
|
+
result[14] = Cartesian3.dot(direction, position);
|
|
1150
|
+
result[15] = 1.0;
|
|
1151
|
+
return result;
|
|
1152
|
+
};
|
|
1153
|
+
|
|
1154
|
+
/**
|
|
1155
|
+
* Computes an Array from the provided Matrix4 instance.
|
|
1156
|
+
* The array will be in column-major order.
|
|
1157
|
+
*
|
|
1158
|
+
* @param {Matrix4} matrix The matrix to use..
|
|
1159
|
+
* @param {number[]} [result] The Array onto which to store the result.
|
|
1160
|
+
* @returns {number[]} The modified Array parameter or a new Array instance if one was not provided.
|
|
1161
|
+
*
|
|
1162
|
+
* @example
|
|
1163
|
+
* //create an array from an instance of Matrix4
|
|
1164
|
+
* // m = [10.0, 14.0, 18.0, 22.0]
|
|
1165
|
+
* // [11.0, 15.0, 19.0, 23.0]
|
|
1166
|
+
* // [12.0, 16.0, 20.0, 24.0]
|
|
1167
|
+
* // [13.0, 17.0, 21.0, 25.0]
|
|
1168
|
+
* const a = Cesium.Matrix4.toArray(m);
|
|
1169
|
+
*
|
|
1170
|
+
* // m remains the same
|
|
1171
|
+
* //creates a = [10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0]
|
|
1172
|
+
*/
|
|
1173
|
+
Matrix4.toArray = function (matrix, result) {
|
|
1174
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1175
|
+
Check.typeOf.object("matrix", matrix);
|
|
1176
|
+
//>>includeEnd('debug');
|
|
1177
|
+
|
|
1178
|
+
if (!defined(result)) {
|
|
1179
|
+
return [
|
|
1180
|
+
matrix[0],
|
|
1181
|
+
matrix[1],
|
|
1182
|
+
matrix[2],
|
|
1183
|
+
matrix[3],
|
|
1184
|
+
matrix[4],
|
|
1185
|
+
matrix[5],
|
|
1186
|
+
matrix[6],
|
|
1187
|
+
matrix[7],
|
|
1188
|
+
matrix[8],
|
|
1189
|
+
matrix[9],
|
|
1190
|
+
matrix[10],
|
|
1191
|
+
matrix[11],
|
|
1192
|
+
matrix[12],
|
|
1193
|
+
matrix[13],
|
|
1194
|
+
matrix[14],
|
|
1195
|
+
matrix[15],
|
|
1196
|
+
];
|
|
1197
|
+
}
|
|
1198
|
+
result[0] = matrix[0];
|
|
1199
|
+
result[1] = matrix[1];
|
|
1200
|
+
result[2] = matrix[2];
|
|
1201
|
+
result[3] = matrix[3];
|
|
1202
|
+
result[4] = matrix[4];
|
|
1203
|
+
result[5] = matrix[5];
|
|
1204
|
+
result[6] = matrix[6];
|
|
1205
|
+
result[7] = matrix[7];
|
|
1206
|
+
result[8] = matrix[8];
|
|
1207
|
+
result[9] = matrix[9];
|
|
1208
|
+
result[10] = matrix[10];
|
|
1209
|
+
result[11] = matrix[11];
|
|
1210
|
+
result[12] = matrix[12];
|
|
1211
|
+
result[13] = matrix[13];
|
|
1212
|
+
result[14] = matrix[14];
|
|
1213
|
+
result[15] = matrix[15];
|
|
1214
|
+
return result;
|
|
1215
|
+
};
|
|
1216
|
+
|
|
1217
|
+
/**
|
|
1218
|
+
* Computes the array index of the element at the provided row and column.
|
|
1219
|
+
*
|
|
1220
|
+
* @param {number} row The zero-based index of the row.
|
|
1221
|
+
* @param {number} column The zero-based index of the column.
|
|
1222
|
+
* @returns {number} The index of the element at the provided row and column.
|
|
1223
|
+
*
|
|
1224
|
+
* @exception {DeveloperError} row must be 0, 1, 2, or 3.
|
|
1225
|
+
* @exception {DeveloperError} column must be 0, 1, 2, or 3.
|
|
1226
|
+
*
|
|
1227
|
+
* @example
|
|
1228
|
+
* const myMatrix = new Cesium.Matrix4();
|
|
1229
|
+
* const column1Row0Index = Cesium.Matrix4.getElementIndex(1, 0);
|
|
1230
|
+
* const column1Row0 = myMatrix[column1Row0Index];
|
|
1231
|
+
* myMatrix[column1Row0Index] = 10.0;
|
|
1232
|
+
*/
|
|
1233
|
+
Matrix4.getElementIndex = function (column, row) {
|
|
1234
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1235
|
+
Check.typeOf.number.greaterThanOrEquals("row", row, 0);
|
|
1236
|
+
Check.typeOf.number.lessThanOrEquals("row", row, 3);
|
|
1237
|
+
|
|
1238
|
+
Check.typeOf.number.greaterThanOrEquals("column", column, 0);
|
|
1239
|
+
Check.typeOf.number.lessThanOrEquals("column", column, 3);
|
|
1240
|
+
//>>includeEnd('debug');
|
|
1241
|
+
|
|
1242
|
+
return column * 4 + row;
|
|
1243
|
+
};
|
|
1244
|
+
|
|
1245
|
+
/**
|
|
1246
|
+
* Retrieves a copy of the matrix column at the provided index as a Cartesian4 instance.
|
|
1247
|
+
*
|
|
1248
|
+
* @param {Matrix4} matrix The matrix to use.
|
|
1249
|
+
* @param {number} index The zero-based index of the column to retrieve.
|
|
1250
|
+
* @param {Cartesian4} result The object onto which to store the result.
|
|
1251
|
+
* @returns {Cartesian4} The modified result parameter.
|
|
1252
|
+
*
|
|
1253
|
+
* @exception {DeveloperError} index must be 0, 1, 2, or 3.
|
|
1254
|
+
*
|
|
1255
|
+
* @example
|
|
1256
|
+
* //returns a Cartesian4 instance with values from the specified column
|
|
1257
|
+
* // m = [10.0, 11.0, 12.0, 13.0]
|
|
1258
|
+
* // [14.0, 15.0, 16.0, 17.0]
|
|
1259
|
+
* // [18.0, 19.0, 20.0, 21.0]
|
|
1260
|
+
* // [22.0, 23.0, 24.0, 25.0]
|
|
1261
|
+
*
|
|
1262
|
+
* //Example 1: Creates an instance of Cartesian
|
|
1263
|
+
* const a = Cesium.Matrix4.getColumn(m, 2, new Cesium.Cartesian4());
|
|
1264
|
+
*
|
|
1265
|
+
* @example
|
|
1266
|
+
* //Example 2: Sets values for Cartesian instance
|
|
1267
|
+
* const a = new Cesium.Cartesian4();
|
|
1268
|
+
* Cesium.Matrix4.getColumn(m, 2, a);
|
|
1269
|
+
*
|
|
1270
|
+
* // a.x = 12.0; a.y = 16.0; a.z = 20.0; a.w = 24.0;
|
|
1271
|
+
*/
|
|
1272
|
+
Matrix4.getColumn = function (matrix, index, result) {
|
|
1273
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1274
|
+
Check.typeOf.object("matrix", matrix);
|
|
1275
|
+
|
|
1276
|
+
Check.typeOf.number.greaterThanOrEquals("index", index, 0);
|
|
1277
|
+
Check.typeOf.number.lessThanOrEquals("index", index, 3);
|
|
1278
|
+
|
|
1279
|
+
Check.typeOf.object("result", result);
|
|
1280
|
+
//>>includeEnd('debug');
|
|
1281
|
+
|
|
1282
|
+
const startIndex = index * 4;
|
|
1283
|
+
const x = matrix[startIndex];
|
|
1284
|
+
const y = matrix[startIndex + 1];
|
|
1285
|
+
const z = matrix[startIndex + 2];
|
|
1286
|
+
const w = matrix[startIndex + 3];
|
|
1287
|
+
|
|
1288
|
+
result.x = x;
|
|
1289
|
+
result.y = y;
|
|
1290
|
+
result.z = z;
|
|
1291
|
+
result.w = w;
|
|
1292
|
+
return result;
|
|
1293
|
+
};
|
|
1294
|
+
|
|
1295
|
+
/**
|
|
1296
|
+
* Computes a new matrix that replaces the specified column in the provided matrix with the provided Cartesian4 instance.
|
|
1297
|
+
*
|
|
1298
|
+
* @param {Matrix4} matrix The matrix to use.
|
|
1299
|
+
* @param {number} index The zero-based index of the column to set.
|
|
1300
|
+
* @param {Cartesian4} cartesian The Cartesian whose values will be assigned to the specified column.
|
|
1301
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
1302
|
+
* @returns {Matrix4} The modified result parameter.
|
|
1303
|
+
*
|
|
1304
|
+
* @exception {DeveloperError} index must be 0, 1, 2, or 3.
|
|
1305
|
+
*
|
|
1306
|
+
* @example
|
|
1307
|
+
* //creates a new Matrix4 instance with new column values from the Cartesian4 instance
|
|
1308
|
+
* // m = [10.0, 11.0, 12.0, 13.0]
|
|
1309
|
+
* // [14.0, 15.0, 16.0, 17.0]
|
|
1310
|
+
* // [18.0, 19.0, 20.0, 21.0]
|
|
1311
|
+
* // [22.0, 23.0, 24.0, 25.0]
|
|
1312
|
+
*
|
|
1313
|
+
* const a = Cesium.Matrix4.setColumn(m, 2, new Cesium.Cartesian4(99.0, 98.0, 97.0, 96.0), new Cesium.Matrix4());
|
|
1314
|
+
*
|
|
1315
|
+
* // m remains the same
|
|
1316
|
+
* // a = [10.0, 11.0, 99.0, 13.0]
|
|
1317
|
+
* // [14.0, 15.0, 98.0, 17.0]
|
|
1318
|
+
* // [18.0, 19.0, 97.0, 21.0]
|
|
1319
|
+
* // [22.0, 23.0, 96.0, 25.0]
|
|
1320
|
+
*/
|
|
1321
|
+
Matrix4.setColumn = function (matrix, index, cartesian, result) {
|
|
1322
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1323
|
+
Check.typeOf.object("matrix", matrix);
|
|
1324
|
+
|
|
1325
|
+
Check.typeOf.number.greaterThanOrEquals("index", index, 0);
|
|
1326
|
+
Check.typeOf.number.lessThanOrEquals("index", index, 3);
|
|
1327
|
+
|
|
1328
|
+
Check.typeOf.object("cartesian", cartesian);
|
|
1329
|
+
Check.typeOf.object("result", result);
|
|
1330
|
+
//>>includeEnd('debug');
|
|
1331
|
+
|
|
1332
|
+
result = Matrix4.clone(matrix, result);
|
|
1333
|
+
const startIndex = index * 4;
|
|
1334
|
+
result[startIndex] = cartesian.x;
|
|
1335
|
+
result[startIndex + 1] = cartesian.y;
|
|
1336
|
+
result[startIndex + 2] = cartesian.z;
|
|
1337
|
+
result[startIndex + 3] = cartesian.w;
|
|
1338
|
+
return result;
|
|
1339
|
+
};
|
|
1340
|
+
|
|
1341
|
+
/**
|
|
1342
|
+
* Retrieves a copy of the matrix row at the provided index as a Cartesian4 instance.
|
|
1343
|
+
*
|
|
1344
|
+
* @param {Matrix4} matrix The matrix to use.
|
|
1345
|
+
* @param {number} index The zero-based index of the row to retrieve.
|
|
1346
|
+
* @param {Cartesian4} result The object onto which to store the result.
|
|
1347
|
+
* @returns {Cartesian4} The modified result parameter.
|
|
1348
|
+
*
|
|
1349
|
+
* @exception {DeveloperError} index must be 0, 1, 2, or 3.
|
|
1350
|
+
*
|
|
1351
|
+
* @example
|
|
1352
|
+
* //returns a Cartesian4 instance with values from the specified column
|
|
1353
|
+
* // m = [10.0, 11.0, 12.0, 13.0]
|
|
1354
|
+
* // [14.0, 15.0, 16.0, 17.0]
|
|
1355
|
+
* // [18.0, 19.0, 20.0, 21.0]
|
|
1356
|
+
* // [22.0, 23.0, 24.0, 25.0]
|
|
1357
|
+
*
|
|
1358
|
+
* //Example 1: Returns an instance of Cartesian
|
|
1359
|
+
* const a = Cesium.Matrix4.getRow(m, 2, new Cesium.Cartesian4());
|
|
1360
|
+
*
|
|
1361
|
+
* @example
|
|
1362
|
+
* //Example 2: Sets values for a Cartesian instance
|
|
1363
|
+
* const a = new Cesium.Cartesian4();
|
|
1364
|
+
* Cesium.Matrix4.getRow(m, 2, a);
|
|
1365
|
+
*
|
|
1366
|
+
* // a.x = 18.0; a.y = 19.0; a.z = 20.0; a.w = 21.0;
|
|
1367
|
+
*/
|
|
1368
|
+
Matrix4.getRow = function (matrix, index, result) {
|
|
1369
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1370
|
+
Check.typeOf.object("matrix", matrix);
|
|
1371
|
+
|
|
1372
|
+
Check.typeOf.number.greaterThanOrEquals("index", index, 0);
|
|
1373
|
+
Check.typeOf.number.lessThanOrEquals("index", index, 3);
|
|
1374
|
+
|
|
1375
|
+
Check.typeOf.object("result", result);
|
|
1376
|
+
//>>includeEnd('debug');
|
|
1377
|
+
|
|
1378
|
+
const x = matrix[index];
|
|
1379
|
+
const y = matrix[index + 4];
|
|
1380
|
+
const z = matrix[index + 8];
|
|
1381
|
+
const w = matrix[index + 12];
|
|
1382
|
+
|
|
1383
|
+
result.x = x;
|
|
1384
|
+
result.y = y;
|
|
1385
|
+
result.z = z;
|
|
1386
|
+
result.w = w;
|
|
1387
|
+
return result;
|
|
1388
|
+
};
|
|
1389
|
+
|
|
1390
|
+
/**
|
|
1391
|
+
* Computes a new matrix that replaces the specified row in the provided matrix with the provided Cartesian4 instance.
|
|
1392
|
+
*
|
|
1393
|
+
* @param {Matrix4} matrix The matrix to use.
|
|
1394
|
+
* @param {number} index The zero-based index of the row to set.
|
|
1395
|
+
* @param {Cartesian4} cartesian The Cartesian whose values will be assigned to the specified row.
|
|
1396
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
1397
|
+
* @returns {Matrix4} The modified result parameter.
|
|
1398
|
+
*
|
|
1399
|
+
* @exception {DeveloperError} index must be 0, 1, 2, or 3.
|
|
1400
|
+
*
|
|
1401
|
+
* @example
|
|
1402
|
+
* //create a new Matrix4 instance with new row values from the Cartesian4 instance
|
|
1403
|
+
* // m = [10.0, 11.0, 12.0, 13.0]
|
|
1404
|
+
* // [14.0, 15.0, 16.0, 17.0]
|
|
1405
|
+
* // [18.0, 19.0, 20.0, 21.0]
|
|
1406
|
+
* // [22.0, 23.0, 24.0, 25.0]
|
|
1407
|
+
*
|
|
1408
|
+
* const a = Cesium.Matrix4.setRow(m, 2, new Cesium.Cartesian4(99.0, 98.0, 97.0, 96.0), new Cesium.Matrix4());
|
|
1409
|
+
*
|
|
1410
|
+
* // m remains the same
|
|
1411
|
+
* // a = [10.0, 11.0, 12.0, 13.0]
|
|
1412
|
+
* // [14.0, 15.0, 16.0, 17.0]
|
|
1413
|
+
* // [99.0, 98.0, 97.0, 96.0]
|
|
1414
|
+
* // [22.0, 23.0, 24.0, 25.0]
|
|
1415
|
+
*/
|
|
1416
|
+
Matrix4.setRow = function (matrix, index, cartesian, result) {
|
|
1417
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1418
|
+
Check.typeOf.object("matrix", matrix);
|
|
1419
|
+
|
|
1420
|
+
Check.typeOf.number.greaterThanOrEquals("index", index, 0);
|
|
1421
|
+
Check.typeOf.number.lessThanOrEquals("index", index, 3);
|
|
1422
|
+
|
|
1423
|
+
Check.typeOf.object("cartesian", cartesian);
|
|
1424
|
+
Check.typeOf.object("result", result);
|
|
1425
|
+
//>>includeEnd('debug');
|
|
1426
|
+
|
|
1427
|
+
result = Matrix4.clone(matrix, result);
|
|
1428
|
+
result[index] = cartesian.x;
|
|
1429
|
+
result[index + 4] = cartesian.y;
|
|
1430
|
+
result[index + 8] = cartesian.z;
|
|
1431
|
+
result[index + 12] = cartesian.w;
|
|
1432
|
+
return result;
|
|
1433
|
+
};
|
|
1434
|
+
|
|
1435
|
+
/**
|
|
1436
|
+
* Computes a new matrix that replaces the translation in the rightmost column of the provided
|
|
1437
|
+
* matrix with the provided translation. This assumes the matrix is an affine transformation.
|
|
1438
|
+
*
|
|
1439
|
+
* @param {Matrix4} matrix The matrix to use.
|
|
1440
|
+
* @param {Cartesian3} translation The translation that replaces the translation of the provided matrix.
|
|
1441
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
1442
|
+
* @returns {Matrix4} The modified result parameter.
|
|
1443
|
+
*/
|
|
1444
|
+
Matrix4.setTranslation = function (matrix, translation, result) {
|
|
1445
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1446
|
+
Check.typeOf.object("matrix", matrix);
|
|
1447
|
+
Check.typeOf.object("translation", translation);
|
|
1448
|
+
Check.typeOf.object("result", result);
|
|
1449
|
+
//>>includeEnd('debug');
|
|
1450
|
+
|
|
1451
|
+
result[0] = matrix[0];
|
|
1452
|
+
result[1] = matrix[1];
|
|
1453
|
+
result[2] = matrix[2];
|
|
1454
|
+
result[3] = matrix[3];
|
|
1455
|
+
|
|
1456
|
+
result[4] = matrix[4];
|
|
1457
|
+
result[5] = matrix[5];
|
|
1458
|
+
result[6] = matrix[6];
|
|
1459
|
+
result[7] = matrix[7];
|
|
1460
|
+
|
|
1461
|
+
result[8] = matrix[8];
|
|
1462
|
+
result[9] = matrix[9];
|
|
1463
|
+
result[10] = matrix[10];
|
|
1464
|
+
result[11] = matrix[11];
|
|
1465
|
+
|
|
1466
|
+
result[12] = translation.x;
|
|
1467
|
+
result[13] = translation.y;
|
|
1468
|
+
result[14] = translation.z;
|
|
1469
|
+
result[15] = matrix[15];
|
|
1470
|
+
|
|
1471
|
+
return result;
|
|
1472
|
+
};
|
|
1473
|
+
|
|
1474
|
+
const scaleScratch1 = new Cartesian3();
|
|
1475
|
+
|
|
1476
|
+
/**
|
|
1477
|
+
* Computes a new matrix that replaces the scale with the provided scale.
|
|
1478
|
+
* This assumes the matrix is an affine transformation.
|
|
1479
|
+
*
|
|
1480
|
+
* @param {Matrix4} matrix The matrix to use.
|
|
1481
|
+
* @param {Cartesian3} scale The scale that replaces the scale of the provided matrix.
|
|
1482
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
1483
|
+
* @returns {Matrix4} The modified result parameter.
|
|
1484
|
+
*
|
|
1485
|
+
* @see Matrix4.setUniformScale
|
|
1486
|
+
* @see Matrix4.fromScale
|
|
1487
|
+
* @see Matrix4.fromUniformScale
|
|
1488
|
+
* @see Matrix4.multiplyByScale
|
|
1489
|
+
* @see Matrix4.multiplyByUniformScale
|
|
1490
|
+
* @see Matrix4.getScale
|
|
1491
|
+
*/
|
|
1492
|
+
Matrix4.setScale = function (matrix, scale, result) {
|
|
1493
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1494
|
+
Check.typeOf.object("matrix", matrix);
|
|
1495
|
+
Check.typeOf.object("scale", scale);
|
|
1496
|
+
Check.typeOf.object("result", result);
|
|
1497
|
+
//>>includeEnd('debug');
|
|
1498
|
+
|
|
1499
|
+
const existingScale = Matrix4.getScale(matrix, scaleScratch1);
|
|
1500
|
+
const scaleRatioX = scale.x / existingScale.x;
|
|
1501
|
+
const scaleRatioY = scale.y / existingScale.y;
|
|
1502
|
+
const scaleRatioZ = scale.z / existingScale.z;
|
|
1503
|
+
|
|
1504
|
+
result[0] = matrix[0] * scaleRatioX;
|
|
1505
|
+
result[1] = matrix[1] * scaleRatioX;
|
|
1506
|
+
result[2] = matrix[2] * scaleRatioX;
|
|
1507
|
+
result[3] = matrix[3];
|
|
1508
|
+
|
|
1509
|
+
result[4] = matrix[4] * scaleRatioY;
|
|
1510
|
+
result[5] = matrix[5] * scaleRatioY;
|
|
1511
|
+
result[6] = matrix[6] * scaleRatioY;
|
|
1512
|
+
result[7] = matrix[7];
|
|
1513
|
+
|
|
1514
|
+
result[8] = matrix[8] * scaleRatioZ;
|
|
1515
|
+
result[9] = matrix[9] * scaleRatioZ;
|
|
1516
|
+
result[10] = matrix[10] * scaleRatioZ;
|
|
1517
|
+
result[11] = matrix[11];
|
|
1518
|
+
|
|
1519
|
+
result[12] = matrix[12];
|
|
1520
|
+
result[13] = matrix[13];
|
|
1521
|
+
result[14] = matrix[14];
|
|
1522
|
+
result[15] = matrix[15];
|
|
1523
|
+
|
|
1524
|
+
return result;
|
|
1525
|
+
};
|
|
1526
|
+
|
|
1527
|
+
const scaleScratch2 = new Cartesian3();
|
|
1528
|
+
|
|
1529
|
+
/**
|
|
1530
|
+
* Computes a new matrix that replaces the scale with the provided uniform scale.
|
|
1531
|
+
* This assumes the matrix is an affine transformation.
|
|
1532
|
+
*
|
|
1533
|
+
* @param {Matrix4} matrix The matrix to use.
|
|
1534
|
+
* @param {number} scale The uniform scale that replaces the scale of the provided matrix.
|
|
1535
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
1536
|
+
* @returns {Matrix4} The modified result parameter.
|
|
1537
|
+
*
|
|
1538
|
+
* @see Matrix4.setScale
|
|
1539
|
+
* @see Matrix4.fromScale
|
|
1540
|
+
* @see Matrix4.fromUniformScale
|
|
1541
|
+
* @see Matrix4.multiplyByScale
|
|
1542
|
+
* @see Matrix4.multiplyByUniformScale
|
|
1543
|
+
* @see Matrix4.getScale
|
|
1544
|
+
*/
|
|
1545
|
+
Matrix4.setUniformScale = function (matrix, scale, result) {
|
|
1546
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1547
|
+
Check.typeOf.object("matrix", matrix);
|
|
1548
|
+
Check.typeOf.number("scale", scale);
|
|
1549
|
+
Check.typeOf.object("result", result);
|
|
1550
|
+
//>>includeEnd('debug');
|
|
1551
|
+
|
|
1552
|
+
const existingScale = Matrix4.getScale(matrix, scaleScratch2);
|
|
1553
|
+
const scaleRatioX = scale / existingScale.x;
|
|
1554
|
+
const scaleRatioY = scale / existingScale.y;
|
|
1555
|
+
const scaleRatioZ = scale / existingScale.z;
|
|
1556
|
+
|
|
1557
|
+
result[0] = matrix[0] * scaleRatioX;
|
|
1558
|
+
result[1] = matrix[1] * scaleRatioX;
|
|
1559
|
+
result[2] = matrix[2] * scaleRatioX;
|
|
1560
|
+
result[3] = matrix[3];
|
|
1561
|
+
|
|
1562
|
+
result[4] = matrix[4] * scaleRatioY;
|
|
1563
|
+
result[5] = matrix[5] * scaleRatioY;
|
|
1564
|
+
result[6] = matrix[6] * scaleRatioY;
|
|
1565
|
+
result[7] = matrix[7];
|
|
1566
|
+
|
|
1567
|
+
result[8] = matrix[8] * scaleRatioZ;
|
|
1568
|
+
result[9] = matrix[9] * scaleRatioZ;
|
|
1569
|
+
result[10] = matrix[10] * scaleRatioZ;
|
|
1570
|
+
result[11] = matrix[11];
|
|
1571
|
+
|
|
1572
|
+
result[12] = matrix[12];
|
|
1573
|
+
result[13] = matrix[13];
|
|
1574
|
+
result[14] = matrix[14];
|
|
1575
|
+
result[15] = matrix[15];
|
|
1576
|
+
|
|
1577
|
+
return result;
|
|
1578
|
+
};
|
|
1579
|
+
|
|
1580
|
+
const scratchColumn = new Cartesian3();
|
|
1581
|
+
|
|
1582
|
+
/**
|
|
1583
|
+
* Extracts the non-uniform scale assuming the matrix is an affine transformation.
|
|
1584
|
+
*
|
|
1585
|
+
* @param {Matrix4} matrix The matrix.
|
|
1586
|
+
* @param {Cartesian3} result The object onto which to store the result.
|
|
1587
|
+
* @returns {Cartesian3} The modified result parameter
|
|
1588
|
+
*
|
|
1589
|
+
* @see Matrix4.multiplyByScale
|
|
1590
|
+
* @see Matrix4.multiplyByUniformScale
|
|
1591
|
+
* @see Matrix4.fromScale
|
|
1592
|
+
* @see Matrix4.fromUniformScale
|
|
1593
|
+
* @see Matrix4.setScale
|
|
1594
|
+
* @see Matrix4.setUniformScale
|
|
1595
|
+
*/
|
|
1596
|
+
Matrix4.getScale = function (matrix, result) {
|
|
1597
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1598
|
+
Check.typeOf.object("matrix", matrix);
|
|
1599
|
+
Check.typeOf.object("result", result);
|
|
1600
|
+
//>>includeEnd('debug');
|
|
1601
|
+
|
|
1602
|
+
result.x = Cartesian3.magnitude(
|
|
1603
|
+
Cartesian3.fromElements(matrix[0], matrix[1], matrix[2], scratchColumn),
|
|
1604
|
+
);
|
|
1605
|
+
result.y = Cartesian3.magnitude(
|
|
1606
|
+
Cartesian3.fromElements(matrix[4], matrix[5], matrix[6], scratchColumn),
|
|
1607
|
+
);
|
|
1608
|
+
result.z = Cartesian3.magnitude(
|
|
1609
|
+
Cartesian3.fromElements(matrix[8], matrix[9], matrix[10], scratchColumn),
|
|
1610
|
+
);
|
|
1611
|
+
return result;
|
|
1612
|
+
};
|
|
1613
|
+
|
|
1614
|
+
const scaleScratch3 = new Cartesian3();
|
|
1615
|
+
|
|
1616
|
+
/**
|
|
1617
|
+
* Computes the maximum scale assuming the matrix is an affine transformation.
|
|
1618
|
+
* The maximum scale is the maximum length of the column vectors in the upper-left
|
|
1619
|
+
* 3x3 matrix.
|
|
1620
|
+
*
|
|
1621
|
+
* @param {Matrix4} matrix The matrix.
|
|
1622
|
+
* @returns {number} The maximum scale.
|
|
1623
|
+
*/
|
|
1624
|
+
Matrix4.getMaximumScale = function (matrix) {
|
|
1625
|
+
Matrix4.getScale(matrix, scaleScratch3);
|
|
1626
|
+
return Cartesian3.maximumComponent(scaleScratch3);
|
|
1627
|
+
};
|
|
1628
|
+
|
|
1629
|
+
const scaleScratch4 = new Cartesian3();
|
|
1630
|
+
|
|
1631
|
+
/**
|
|
1632
|
+
* Sets the rotation assuming the matrix is an affine transformation.
|
|
1633
|
+
*
|
|
1634
|
+
* @param {Matrix4} matrix The matrix.
|
|
1635
|
+
* @param {Matrix3} rotation The rotation matrix.
|
|
1636
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
1637
|
+
* @returns {Matrix4} The modified result parameter.
|
|
1638
|
+
*
|
|
1639
|
+
* @see Matrix4.fromRotation
|
|
1640
|
+
* @see Matrix4.getRotation
|
|
1641
|
+
*/
|
|
1642
|
+
Matrix4.setRotation = function (matrix, rotation, result) {
|
|
1643
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1644
|
+
Check.typeOf.object("matrix", matrix);
|
|
1645
|
+
Check.typeOf.object("result", result);
|
|
1646
|
+
//>>includeEnd('debug');
|
|
1647
|
+
|
|
1648
|
+
const scale = Matrix4.getScale(matrix, scaleScratch4);
|
|
1649
|
+
|
|
1650
|
+
result[0] = rotation[0] * scale.x;
|
|
1651
|
+
result[1] = rotation[1] * scale.x;
|
|
1652
|
+
result[2] = rotation[2] * scale.x;
|
|
1653
|
+
result[3] = matrix[3];
|
|
1654
|
+
|
|
1655
|
+
result[4] = rotation[3] * scale.y;
|
|
1656
|
+
result[5] = rotation[4] * scale.y;
|
|
1657
|
+
result[6] = rotation[5] * scale.y;
|
|
1658
|
+
result[7] = matrix[7];
|
|
1659
|
+
|
|
1660
|
+
result[8] = rotation[6] * scale.z;
|
|
1661
|
+
result[9] = rotation[7] * scale.z;
|
|
1662
|
+
result[10] = rotation[8] * scale.z;
|
|
1663
|
+
result[11] = matrix[11];
|
|
1664
|
+
|
|
1665
|
+
result[12] = matrix[12];
|
|
1666
|
+
result[13] = matrix[13];
|
|
1667
|
+
result[14] = matrix[14];
|
|
1668
|
+
result[15] = matrix[15];
|
|
1669
|
+
|
|
1670
|
+
return result;
|
|
1671
|
+
};
|
|
1672
|
+
|
|
1673
|
+
const scaleScratch5 = new Cartesian3();
|
|
1674
|
+
|
|
1675
|
+
/**
|
|
1676
|
+
* Extracts the rotation matrix assuming the matrix is an affine transformation.
|
|
1677
|
+
*
|
|
1678
|
+
* @param {Matrix4} matrix The matrix.
|
|
1679
|
+
* @param {Matrix3} result The object onto which to store the result.
|
|
1680
|
+
* @returns {Matrix3} The modified result parameter.
|
|
1681
|
+
*
|
|
1682
|
+
* @see Matrix4.setRotation
|
|
1683
|
+
* @see Matrix4.fromRotation
|
|
1684
|
+
*/
|
|
1685
|
+
Matrix4.getRotation = function (matrix, result) {
|
|
1686
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1687
|
+
Check.typeOf.object("matrix", matrix);
|
|
1688
|
+
Check.typeOf.object("result", result);
|
|
1689
|
+
//>>includeEnd('debug');
|
|
1690
|
+
|
|
1691
|
+
const scale = Matrix4.getScale(matrix, scaleScratch5);
|
|
1692
|
+
|
|
1693
|
+
result[0] = matrix[0] / scale.x;
|
|
1694
|
+
result[1] = matrix[1] / scale.x;
|
|
1695
|
+
result[2] = matrix[2] / scale.x;
|
|
1696
|
+
|
|
1697
|
+
result[3] = matrix[4] / scale.y;
|
|
1698
|
+
result[4] = matrix[5] / scale.y;
|
|
1699
|
+
result[5] = matrix[6] / scale.y;
|
|
1700
|
+
|
|
1701
|
+
result[6] = matrix[8] / scale.z;
|
|
1702
|
+
result[7] = matrix[9] / scale.z;
|
|
1703
|
+
result[8] = matrix[10] / scale.z;
|
|
1704
|
+
|
|
1705
|
+
return result;
|
|
1706
|
+
};
|
|
1707
|
+
|
|
1708
|
+
/**
|
|
1709
|
+
* Computes the product of two matrices.
|
|
1710
|
+
*
|
|
1711
|
+
* @param {Matrix4} left The first matrix.
|
|
1712
|
+
* @param {Matrix4} right The second matrix.
|
|
1713
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
1714
|
+
* @returns {Matrix4} The modified result parameter.
|
|
1715
|
+
*/
|
|
1716
|
+
Matrix4.multiply = function (left, right, result) {
|
|
1717
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1718
|
+
Check.typeOf.object("left", left);
|
|
1719
|
+
Check.typeOf.object("right", right);
|
|
1720
|
+
Check.typeOf.object("result", result);
|
|
1721
|
+
//>>includeEnd('debug');
|
|
1722
|
+
|
|
1723
|
+
const left0 = left[0];
|
|
1724
|
+
const left1 = left[1];
|
|
1725
|
+
const left2 = left[2];
|
|
1726
|
+
const left3 = left[3];
|
|
1727
|
+
const left4 = left[4];
|
|
1728
|
+
const left5 = left[5];
|
|
1729
|
+
const left6 = left[6];
|
|
1730
|
+
const left7 = left[7];
|
|
1731
|
+
const left8 = left[8];
|
|
1732
|
+
const left9 = left[9];
|
|
1733
|
+
const left10 = left[10];
|
|
1734
|
+
const left11 = left[11];
|
|
1735
|
+
const left12 = left[12];
|
|
1736
|
+
const left13 = left[13];
|
|
1737
|
+
const left14 = left[14];
|
|
1738
|
+
const left15 = left[15];
|
|
1739
|
+
|
|
1740
|
+
const right0 = right[0];
|
|
1741
|
+
const right1 = right[1];
|
|
1742
|
+
const right2 = right[2];
|
|
1743
|
+
const right3 = right[3];
|
|
1744
|
+
const right4 = right[4];
|
|
1745
|
+
const right5 = right[5];
|
|
1746
|
+
const right6 = right[6];
|
|
1747
|
+
const right7 = right[7];
|
|
1748
|
+
const right8 = right[8];
|
|
1749
|
+
const right9 = right[9];
|
|
1750
|
+
const right10 = right[10];
|
|
1751
|
+
const right11 = right[11];
|
|
1752
|
+
const right12 = right[12];
|
|
1753
|
+
const right13 = right[13];
|
|
1754
|
+
const right14 = right[14];
|
|
1755
|
+
const right15 = right[15];
|
|
1756
|
+
|
|
1757
|
+
const column0Row0 =
|
|
1758
|
+
left0 * right0 + left4 * right1 + left8 * right2 + left12 * right3;
|
|
1759
|
+
const column0Row1 =
|
|
1760
|
+
left1 * right0 + left5 * right1 + left9 * right2 + left13 * right3;
|
|
1761
|
+
const column0Row2 =
|
|
1762
|
+
left2 * right0 + left6 * right1 + left10 * right2 + left14 * right3;
|
|
1763
|
+
const column0Row3 =
|
|
1764
|
+
left3 * right0 + left7 * right1 + left11 * right2 + left15 * right3;
|
|
1765
|
+
|
|
1766
|
+
const column1Row0 =
|
|
1767
|
+
left0 * right4 + left4 * right5 + left8 * right6 + left12 * right7;
|
|
1768
|
+
const column1Row1 =
|
|
1769
|
+
left1 * right4 + left5 * right5 + left9 * right6 + left13 * right7;
|
|
1770
|
+
const column1Row2 =
|
|
1771
|
+
left2 * right4 + left6 * right5 + left10 * right6 + left14 * right7;
|
|
1772
|
+
const column1Row3 =
|
|
1773
|
+
left3 * right4 + left7 * right5 + left11 * right6 + left15 * right7;
|
|
1774
|
+
|
|
1775
|
+
const column2Row0 =
|
|
1776
|
+
left0 * right8 + left4 * right9 + left8 * right10 + left12 * right11;
|
|
1777
|
+
const column2Row1 =
|
|
1778
|
+
left1 * right8 + left5 * right9 + left9 * right10 + left13 * right11;
|
|
1779
|
+
const column2Row2 =
|
|
1780
|
+
left2 * right8 + left6 * right9 + left10 * right10 + left14 * right11;
|
|
1781
|
+
const column2Row3 =
|
|
1782
|
+
left3 * right8 + left7 * right9 + left11 * right10 + left15 * right11;
|
|
1783
|
+
|
|
1784
|
+
const column3Row0 =
|
|
1785
|
+
left0 * right12 + left4 * right13 + left8 * right14 + left12 * right15;
|
|
1786
|
+
const column3Row1 =
|
|
1787
|
+
left1 * right12 + left5 * right13 + left9 * right14 + left13 * right15;
|
|
1788
|
+
const column3Row2 =
|
|
1789
|
+
left2 * right12 + left6 * right13 + left10 * right14 + left14 * right15;
|
|
1790
|
+
const column3Row3 =
|
|
1791
|
+
left3 * right12 + left7 * right13 + left11 * right14 + left15 * right15;
|
|
1792
|
+
|
|
1793
|
+
result[0] = column0Row0;
|
|
1794
|
+
result[1] = column0Row1;
|
|
1795
|
+
result[2] = column0Row2;
|
|
1796
|
+
result[3] = column0Row3;
|
|
1797
|
+
result[4] = column1Row0;
|
|
1798
|
+
result[5] = column1Row1;
|
|
1799
|
+
result[6] = column1Row2;
|
|
1800
|
+
result[7] = column1Row3;
|
|
1801
|
+
result[8] = column2Row0;
|
|
1802
|
+
result[9] = column2Row1;
|
|
1803
|
+
result[10] = column2Row2;
|
|
1804
|
+
result[11] = column2Row3;
|
|
1805
|
+
result[12] = column3Row0;
|
|
1806
|
+
result[13] = column3Row1;
|
|
1807
|
+
result[14] = column3Row2;
|
|
1808
|
+
result[15] = column3Row3;
|
|
1809
|
+
return result;
|
|
1810
|
+
};
|
|
1811
|
+
|
|
1812
|
+
/**
|
|
1813
|
+
* Computes the sum of two matrices.
|
|
1814
|
+
*
|
|
1815
|
+
* @param {Matrix4} left The first matrix.
|
|
1816
|
+
* @param {Matrix4} right The second matrix.
|
|
1817
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
1818
|
+
* @returns {Matrix4} The modified result parameter.
|
|
1819
|
+
*/
|
|
1820
|
+
Matrix4.add = function (left, right, result) {
|
|
1821
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1822
|
+
Check.typeOf.object("left", left);
|
|
1823
|
+
Check.typeOf.object("right", right);
|
|
1824
|
+
Check.typeOf.object("result", result);
|
|
1825
|
+
//>>includeEnd('debug');
|
|
1826
|
+
|
|
1827
|
+
result[0] = left[0] + right[0];
|
|
1828
|
+
result[1] = left[1] + right[1];
|
|
1829
|
+
result[2] = left[2] + right[2];
|
|
1830
|
+
result[3] = left[3] + right[3];
|
|
1831
|
+
result[4] = left[4] + right[4];
|
|
1832
|
+
result[5] = left[5] + right[5];
|
|
1833
|
+
result[6] = left[6] + right[6];
|
|
1834
|
+
result[7] = left[7] + right[7];
|
|
1835
|
+
result[8] = left[8] + right[8];
|
|
1836
|
+
result[9] = left[9] + right[9];
|
|
1837
|
+
result[10] = left[10] + right[10];
|
|
1838
|
+
result[11] = left[11] + right[11];
|
|
1839
|
+
result[12] = left[12] + right[12];
|
|
1840
|
+
result[13] = left[13] + right[13];
|
|
1841
|
+
result[14] = left[14] + right[14];
|
|
1842
|
+
result[15] = left[15] + right[15];
|
|
1843
|
+
return result;
|
|
1844
|
+
};
|
|
1845
|
+
|
|
1846
|
+
/**
|
|
1847
|
+
* Computes the difference of two matrices.
|
|
1848
|
+
*
|
|
1849
|
+
* @param {Matrix4} left The first matrix.
|
|
1850
|
+
* @param {Matrix4} right The second matrix.
|
|
1851
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
1852
|
+
* @returns {Matrix4} The modified result parameter.
|
|
1853
|
+
*/
|
|
1854
|
+
Matrix4.subtract = function (left, right, result) {
|
|
1855
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1856
|
+
Check.typeOf.object("left", left);
|
|
1857
|
+
Check.typeOf.object("right", right);
|
|
1858
|
+
Check.typeOf.object("result", result);
|
|
1859
|
+
//>>includeEnd('debug');
|
|
1860
|
+
|
|
1861
|
+
result[0] = left[0] - right[0];
|
|
1862
|
+
result[1] = left[1] - right[1];
|
|
1863
|
+
result[2] = left[2] - right[2];
|
|
1864
|
+
result[3] = left[3] - right[3];
|
|
1865
|
+
result[4] = left[4] - right[4];
|
|
1866
|
+
result[5] = left[5] - right[5];
|
|
1867
|
+
result[6] = left[6] - right[6];
|
|
1868
|
+
result[7] = left[7] - right[7];
|
|
1869
|
+
result[8] = left[8] - right[8];
|
|
1870
|
+
result[9] = left[9] - right[9];
|
|
1871
|
+
result[10] = left[10] - right[10];
|
|
1872
|
+
result[11] = left[11] - right[11];
|
|
1873
|
+
result[12] = left[12] - right[12];
|
|
1874
|
+
result[13] = left[13] - right[13];
|
|
1875
|
+
result[14] = left[14] - right[14];
|
|
1876
|
+
result[15] = left[15] - right[15];
|
|
1877
|
+
return result;
|
|
1878
|
+
};
|
|
1879
|
+
|
|
1880
|
+
/**
|
|
1881
|
+
* Computes the product of two matrices assuming the matrices are affine transformation matrices,
|
|
1882
|
+
* where the upper left 3x3 elements are any matrix, and
|
|
1883
|
+
* the upper three elements in the fourth column are the translation.
|
|
1884
|
+
* The bottom row is assumed to be [0, 0, 0, 1].
|
|
1885
|
+
* The matrix is not verified to be in the proper form.
|
|
1886
|
+
* This method is faster than computing the product for general 4x4
|
|
1887
|
+
* matrices using {@link Matrix4.multiply}.
|
|
1888
|
+
*
|
|
1889
|
+
* @param {Matrix4} left The first matrix.
|
|
1890
|
+
* @param {Matrix4} right The second matrix.
|
|
1891
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
1892
|
+
* @returns {Matrix4} The modified result parameter.
|
|
1893
|
+
*
|
|
1894
|
+
* @example
|
|
1895
|
+
* const m1 = new Cesium.Matrix4(1.0, 6.0, 7.0, 0.0, 2.0, 5.0, 8.0, 0.0, 3.0, 4.0, 9.0, 0.0, 0.0, 0.0, 0.0, 1.0);
|
|
1896
|
+
* const m2 = Cesium.Transforms.eastNorthUpToFixedFrame(new Cesium.Cartesian3(1.0, 1.0, 1.0));
|
|
1897
|
+
* const m3 = Cesium.Matrix4.multiplyTransformation(m1, m2, new Cesium.Matrix4());
|
|
1898
|
+
*/
|
|
1899
|
+
Matrix4.multiplyTransformation = function (left, right, result) {
|
|
1900
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1901
|
+
Check.typeOf.object("left", left);
|
|
1902
|
+
Check.typeOf.object("right", right);
|
|
1903
|
+
Check.typeOf.object("result", result);
|
|
1904
|
+
//>>includeEnd('debug');
|
|
1905
|
+
|
|
1906
|
+
const left0 = left[0];
|
|
1907
|
+
const left1 = left[1];
|
|
1908
|
+
const left2 = left[2];
|
|
1909
|
+
const left4 = left[4];
|
|
1910
|
+
const left5 = left[5];
|
|
1911
|
+
const left6 = left[6];
|
|
1912
|
+
const left8 = left[8];
|
|
1913
|
+
const left9 = left[9];
|
|
1914
|
+
const left10 = left[10];
|
|
1915
|
+
const left12 = left[12];
|
|
1916
|
+
const left13 = left[13];
|
|
1917
|
+
const left14 = left[14];
|
|
1918
|
+
|
|
1919
|
+
const right0 = right[0];
|
|
1920
|
+
const right1 = right[1];
|
|
1921
|
+
const right2 = right[2];
|
|
1922
|
+
const right4 = right[4];
|
|
1923
|
+
const right5 = right[5];
|
|
1924
|
+
const right6 = right[6];
|
|
1925
|
+
const right8 = right[8];
|
|
1926
|
+
const right9 = right[9];
|
|
1927
|
+
const right10 = right[10];
|
|
1928
|
+
const right12 = right[12];
|
|
1929
|
+
const right13 = right[13];
|
|
1930
|
+
const right14 = right[14];
|
|
1931
|
+
|
|
1932
|
+
const column0Row0 = left0 * right0 + left4 * right1 + left8 * right2;
|
|
1933
|
+
const column0Row1 = left1 * right0 + left5 * right1 + left9 * right2;
|
|
1934
|
+
const column0Row2 = left2 * right0 + left6 * right1 + left10 * right2;
|
|
1935
|
+
|
|
1936
|
+
const column1Row0 = left0 * right4 + left4 * right5 + left8 * right6;
|
|
1937
|
+
const column1Row1 = left1 * right4 + left5 * right5 + left9 * right6;
|
|
1938
|
+
const column1Row2 = left2 * right4 + left6 * right5 + left10 * right6;
|
|
1939
|
+
|
|
1940
|
+
const column2Row0 = left0 * right8 + left4 * right9 + left8 * right10;
|
|
1941
|
+
const column2Row1 = left1 * right8 + left5 * right9 + left9 * right10;
|
|
1942
|
+
const column2Row2 = left2 * right8 + left6 * right9 + left10 * right10;
|
|
1943
|
+
|
|
1944
|
+
const column3Row0 =
|
|
1945
|
+
left0 * right12 + left4 * right13 + left8 * right14 + left12;
|
|
1946
|
+
const column3Row1 =
|
|
1947
|
+
left1 * right12 + left5 * right13 + left9 * right14 + left13;
|
|
1948
|
+
const column3Row2 =
|
|
1949
|
+
left2 * right12 + left6 * right13 + left10 * right14 + left14;
|
|
1950
|
+
|
|
1951
|
+
result[0] = column0Row0;
|
|
1952
|
+
result[1] = column0Row1;
|
|
1953
|
+
result[2] = column0Row2;
|
|
1954
|
+
result[3] = 0.0;
|
|
1955
|
+
result[4] = column1Row0;
|
|
1956
|
+
result[5] = column1Row1;
|
|
1957
|
+
result[6] = column1Row2;
|
|
1958
|
+
result[7] = 0.0;
|
|
1959
|
+
result[8] = column2Row0;
|
|
1960
|
+
result[9] = column2Row1;
|
|
1961
|
+
result[10] = column2Row2;
|
|
1962
|
+
result[11] = 0.0;
|
|
1963
|
+
result[12] = column3Row0;
|
|
1964
|
+
result[13] = column3Row1;
|
|
1965
|
+
result[14] = column3Row2;
|
|
1966
|
+
result[15] = 1.0;
|
|
1967
|
+
return result;
|
|
1968
|
+
};
|
|
1969
|
+
|
|
1970
|
+
/**
|
|
1971
|
+
* Multiplies a transformation matrix (with a bottom row of <code>[0.0, 0.0, 0.0, 1.0]</code>)
|
|
1972
|
+
* by a 3x3 rotation matrix. This is an optimization
|
|
1973
|
+
* for <code>Matrix4.multiply(m, Matrix4.fromRotationTranslation(rotation), m);</code> with less allocations and arithmetic operations.
|
|
1974
|
+
*
|
|
1975
|
+
* @param {Matrix4} matrix The matrix on the left-hand side.
|
|
1976
|
+
* @param {Matrix3} rotation The 3x3 rotation matrix on the right-hand side.
|
|
1977
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
1978
|
+
* @returns {Matrix4} The modified result parameter.
|
|
1979
|
+
*
|
|
1980
|
+
* @example
|
|
1981
|
+
* // Instead of Cesium.Matrix4.multiply(m, Cesium.Matrix4.fromRotationTranslation(rotation), m);
|
|
1982
|
+
* Cesium.Matrix4.multiplyByMatrix3(m, rotation, m);
|
|
1983
|
+
*/
|
|
1984
|
+
Matrix4.multiplyByMatrix3 = function (matrix, rotation, result) {
|
|
1985
|
+
//>>includeStart('debug', pragmas.debug);
|
|
1986
|
+
Check.typeOf.object("matrix", matrix);
|
|
1987
|
+
Check.typeOf.object("rotation", rotation);
|
|
1988
|
+
Check.typeOf.object("result", result);
|
|
1989
|
+
//>>includeEnd('debug');
|
|
1990
|
+
|
|
1991
|
+
const left0 = matrix[0];
|
|
1992
|
+
const left1 = matrix[1];
|
|
1993
|
+
const left2 = matrix[2];
|
|
1994
|
+
const left4 = matrix[4];
|
|
1995
|
+
const left5 = matrix[5];
|
|
1996
|
+
const left6 = matrix[6];
|
|
1997
|
+
const left8 = matrix[8];
|
|
1998
|
+
const left9 = matrix[9];
|
|
1999
|
+
const left10 = matrix[10];
|
|
2000
|
+
|
|
2001
|
+
const right0 = rotation[0];
|
|
2002
|
+
const right1 = rotation[1];
|
|
2003
|
+
const right2 = rotation[2];
|
|
2004
|
+
const right4 = rotation[3];
|
|
2005
|
+
const right5 = rotation[4];
|
|
2006
|
+
const right6 = rotation[5];
|
|
2007
|
+
const right8 = rotation[6];
|
|
2008
|
+
const right9 = rotation[7];
|
|
2009
|
+
const right10 = rotation[8];
|
|
2010
|
+
|
|
2011
|
+
const column0Row0 = left0 * right0 + left4 * right1 + left8 * right2;
|
|
2012
|
+
const column0Row1 = left1 * right0 + left5 * right1 + left9 * right2;
|
|
2013
|
+
const column0Row2 = left2 * right0 + left6 * right1 + left10 * right2;
|
|
2014
|
+
|
|
2015
|
+
const column1Row0 = left0 * right4 + left4 * right5 + left8 * right6;
|
|
2016
|
+
const column1Row1 = left1 * right4 + left5 * right5 + left9 * right6;
|
|
2017
|
+
const column1Row2 = left2 * right4 + left6 * right5 + left10 * right6;
|
|
2018
|
+
|
|
2019
|
+
const column2Row0 = left0 * right8 + left4 * right9 + left8 * right10;
|
|
2020
|
+
const column2Row1 = left1 * right8 + left5 * right9 + left9 * right10;
|
|
2021
|
+
const column2Row2 = left2 * right8 + left6 * right9 + left10 * right10;
|
|
2022
|
+
|
|
2023
|
+
result[0] = column0Row0;
|
|
2024
|
+
result[1] = column0Row1;
|
|
2025
|
+
result[2] = column0Row2;
|
|
2026
|
+
result[3] = 0.0;
|
|
2027
|
+
result[4] = column1Row0;
|
|
2028
|
+
result[5] = column1Row1;
|
|
2029
|
+
result[6] = column1Row2;
|
|
2030
|
+
result[7] = 0.0;
|
|
2031
|
+
result[8] = column2Row0;
|
|
2032
|
+
result[9] = column2Row1;
|
|
2033
|
+
result[10] = column2Row2;
|
|
2034
|
+
result[11] = 0.0;
|
|
2035
|
+
result[12] = matrix[12];
|
|
2036
|
+
result[13] = matrix[13];
|
|
2037
|
+
result[14] = matrix[14];
|
|
2038
|
+
result[15] = matrix[15];
|
|
2039
|
+
return result;
|
|
2040
|
+
};
|
|
2041
|
+
|
|
2042
|
+
/**
|
|
2043
|
+
* Multiplies a transformation matrix (with a bottom row of <code>[0.0, 0.0, 0.0, 1.0]</code>)
|
|
2044
|
+
* by an implicit translation matrix defined by a {@link Cartesian3}. This is an optimization
|
|
2045
|
+
* for <code>Matrix4.multiply(m, Matrix4.fromTranslation(position), m);</code> with less allocations and arithmetic operations.
|
|
2046
|
+
*
|
|
2047
|
+
* @param {Matrix4} matrix The matrix on the left-hand side.
|
|
2048
|
+
* @param {Cartesian3} translation The translation on the right-hand side.
|
|
2049
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
2050
|
+
* @returns {Matrix4} The modified result parameter.
|
|
2051
|
+
*
|
|
2052
|
+
* @example
|
|
2053
|
+
* // Instead of Cesium.Matrix4.multiply(m, Cesium.Matrix4.fromTranslation(position), m);
|
|
2054
|
+
* Cesium.Matrix4.multiplyByTranslation(m, position, m);
|
|
2055
|
+
*/
|
|
2056
|
+
Matrix4.multiplyByTranslation = function (matrix, translation, result) {
|
|
2057
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2058
|
+
Check.typeOf.object("matrix", matrix);
|
|
2059
|
+
Check.typeOf.object("translation", translation);
|
|
2060
|
+
Check.typeOf.object("result", result);
|
|
2061
|
+
//>>includeEnd('debug');
|
|
2062
|
+
|
|
2063
|
+
const x = translation.x;
|
|
2064
|
+
const y = translation.y;
|
|
2065
|
+
const z = translation.z;
|
|
2066
|
+
|
|
2067
|
+
const tx = x * matrix[0] + y * matrix[4] + z * matrix[8] + matrix[12];
|
|
2068
|
+
const ty = x * matrix[1] + y * matrix[5] + z * matrix[9] + matrix[13];
|
|
2069
|
+
const tz = x * matrix[2] + y * matrix[6] + z * matrix[10] + matrix[14];
|
|
2070
|
+
|
|
2071
|
+
result[0] = matrix[0];
|
|
2072
|
+
result[1] = matrix[1];
|
|
2073
|
+
result[2] = matrix[2];
|
|
2074
|
+
result[3] = matrix[3];
|
|
2075
|
+
result[4] = matrix[4];
|
|
2076
|
+
result[5] = matrix[5];
|
|
2077
|
+
result[6] = matrix[6];
|
|
2078
|
+
result[7] = matrix[7];
|
|
2079
|
+
result[8] = matrix[8];
|
|
2080
|
+
result[9] = matrix[9];
|
|
2081
|
+
result[10] = matrix[10];
|
|
2082
|
+
result[11] = matrix[11];
|
|
2083
|
+
result[12] = tx;
|
|
2084
|
+
result[13] = ty;
|
|
2085
|
+
result[14] = tz;
|
|
2086
|
+
result[15] = matrix[15];
|
|
2087
|
+
return result;
|
|
2088
|
+
};
|
|
2089
|
+
|
|
2090
|
+
/**
|
|
2091
|
+
* Multiplies an affine transformation matrix (with a bottom row of <code>[0.0, 0.0, 0.0, 1.0]</code>)
|
|
2092
|
+
* by an implicit non-uniform scale matrix. This is an optimization
|
|
2093
|
+
* for <code>Matrix4.multiply(m, Matrix4.fromUniformScale(scale), m);</code>, where
|
|
2094
|
+
* <code>m</code> must be an affine matrix.
|
|
2095
|
+
* This function performs fewer allocations and arithmetic operations.
|
|
2096
|
+
*
|
|
2097
|
+
* @param {Matrix4} matrix The affine matrix on the left-hand side.
|
|
2098
|
+
* @param {Cartesian3} scale The non-uniform scale on the right-hand side.
|
|
2099
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
2100
|
+
* @returns {Matrix4} The modified result parameter.
|
|
2101
|
+
*
|
|
2102
|
+
*
|
|
2103
|
+
* @example
|
|
2104
|
+
* // Instead of Cesium.Matrix4.multiply(m, Cesium.Matrix4.fromScale(scale), m);
|
|
2105
|
+
* Cesium.Matrix4.multiplyByScale(m, scale, m);
|
|
2106
|
+
*
|
|
2107
|
+
* @see Matrix4.multiplyByUniformScale
|
|
2108
|
+
* @see Matrix4.fromScale
|
|
2109
|
+
* @see Matrix4.fromUniformScale
|
|
2110
|
+
* @see Matrix4.setScale
|
|
2111
|
+
* @see Matrix4.setUniformScale
|
|
2112
|
+
* @see Matrix4.getScale
|
|
2113
|
+
*/
|
|
2114
|
+
Matrix4.multiplyByScale = function (matrix, scale, result) {
|
|
2115
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2116
|
+
Check.typeOf.object("matrix", matrix);
|
|
2117
|
+
Check.typeOf.object("scale", scale);
|
|
2118
|
+
Check.typeOf.object("result", result);
|
|
2119
|
+
//>>includeEnd('debug');
|
|
2120
|
+
|
|
2121
|
+
const scaleX = scale.x;
|
|
2122
|
+
const scaleY = scale.y;
|
|
2123
|
+
const scaleZ = scale.z;
|
|
2124
|
+
|
|
2125
|
+
// Faster than Cartesian3.equals
|
|
2126
|
+
if (scaleX === 1.0 && scaleY === 1.0 && scaleZ === 1.0) {
|
|
2127
|
+
return Matrix4.clone(matrix, result);
|
|
2128
|
+
}
|
|
2129
|
+
|
|
2130
|
+
result[0] = scaleX * matrix[0];
|
|
2131
|
+
result[1] = scaleX * matrix[1];
|
|
2132
|
+
result[2] = scaleX * matrix[2];
|
|
2133
|
+
result[3] = matrix[3];
|
|
2134
|
+
|
|
2135
|
+
result[4] = scaleY * matrix[4];
|
|
2136
|
+
result[5] = scaleY * matrix[5];
|
|
2137
|
+
result[6] = scaleY * matrix[6];
|
|
2138
|
+
result[7] = matrix[7];
|
|
2139
|
+
|
|
2140
|
+
result[8] = scaleZ * matrix[8];
|
|
2141
|
+
result[9] = scaleZ * matrix[9];
|
|
2142
|
+
result[10] = scaleZ * matrix[10];
|
|
2143
|
+
result[11] = matrix[11];
|
|
2144
|
+
|
|
2145
|
+
result[12] = matrix[12];
|
|
2146
|
+
result[13] = matrix[13];
|
|
2147
|
+
result[14] = matrix[14];
|
|
2148
|
+
result[15] = matrix[15];
|
|
2149
|
+
|
|
2150
|
+
return result;
|
|
2151
|
+
};
|
|
2152
|
+
|
|
2153
|
+
/**
|
|
2154
|
+
* Computes the product of a matrix times a uniform scale, as if the scale were a scale matrix.
|
|
2155
|
+
*
|
|
2156
|
+
* @param {Matrix4} matrix The matrix on the left-hand side.
|
|
2157
|
+
* @param {number} scale The uniform scale on the right-hand side.
|
|
2158
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
2159
|
+
* @returns {Matrix4} The modified result parameter.
|
|
2160
|
+
*
|
|
2161
|
+
* @example
|
|
2162
|
+
* // Instead of Cesium.Matrix4.multiply(m, Cesium.Matrix4.fromUniformScale(scale), m);
|
|
2163
|
+
* Cesium.Matrix4.multiplyByUniformScale(m, scale, m);
|
|
2164
|
+
*
|
|
2165
|
+
* @see Matrix4.multiplyByScale
|
|
2166
|
+
* @see Matrix4.fromScale
|
|
2167
|
+
* @see Matrix4.fromUniformScale
|
|
2168
|
+
* @see Matrix4.setScale
|
|
2169
|
+
* @see Matrix4.setUniformScale
|
|
2170
|
+
* @see Matrix4.getScale
|
|
2171
|
+
*/
|
|
2172
|
+
Matrix4.multiplyByUniformScale = function (matrix, scale, result) {
|
|
2173
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2174
|
+
Check.typeOf.object("matrix", matrix);
|
|
2175
|
+
Check.typeOf.number("scale", scale);
|
|
2176
|
+
Check.typeOf.object("result", result);
|
|
2177
|
+
//>>includeEnd('debug');
|
|
2178
|
+
|
|
2179
|
+
result[0] = matrix[0] * scale;
|
|
2180
|
+
result[1] = matrix[1] * scale;
|
|
2181
|
+
result[2] = matrix[2] * scale;
|
|
2182
|
+
result[3] = matrix[3];
|
|
2183
|
+
|
|
2184
|
+
result[4] = matrix[4] * scale;
|
|
2185
|
+
result[5] = matrix[5] * scale;
|
|
2186
|
+
result[6] = matrix[6] * scale;
|
|
2187
|
+
result[7] = matrix[7];
|
|
2188
|
+
|
|
2189
|
+
result[8] = matrix[8] * scale;
|
|
2190
|
+
result[9] = matrix[9] * scale;
|
|
2191
|
+
result[10] = matrix[10] * scale;
|
|
2192
|
+
result[11] = matrix[11];
|
|
2193
|
+
|
|
2194
|
+
result[12] = matrix[12];
|
|
2195
|
+
result[13] = matrix[13];
|
|
2196
|
+
result[14] = matrix[14];
|
|
2197
|
+
result[15] = matrix[15];
|
|
2198
|
+
|
|
2199
|
+
return result;
|
|
2200
|
+
};
|
|
2201
|
+
|
|
2202
|
+
/**
|
|
2203
|
+
* Computes the product of a matrix and a column vector.
|
|
2204
|
+
*
|
|
2205
|
+
* @param {Matrix4} matrix The matrix.
|
|
2206
|
+
* @param {Cartesian4} cartesian The vector.
|
|
2207
|
+
* @param {Cartesian4} result The object onto which to store the result.
|
|
2208
|
+
* @returns {Cartesian4} The modified result parameter.
|
|
2209
|
+
*/
|
|
2210
|
+
Matrix4.multiplyByVector = function (matrix, cartesian, result) {
|
|
2211
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2212
|
+
Check.typeOf.object("matrix", matrix);
|
|
2213
|
+
Check.typeOf.object("cartesian", cartesian);
|
|
2214
|
+
Check.typeOf.object("result", result);
|
|
2215
|
+
//>>includeEnd('debug');
|
|
2216
|
+
|
|
2217
|
+
const vX = cartesian.x;
|
|
2218
|
+
const vY = cartesian.y;
|
|
2219
|
+
const vZ = cartesian.z;
|
|
2220
|
+
const vW = cartesian.w;
|
|
2221
|
+
|
|
2222
|
+
const x = matrix[0] * vX + matrix[4] * vY + matrix[8] * vZ + matrix[12] * vW;
|
|
2223
|
+
const y = matrix[1] * vX + matrix[5] * vY + matrix[9] * vZ + matrix[13] * vW;
|
|
2224
|
+
const z = matrix[2] * vX + matrix[6] * vY + matrix[10] * vZ + matrix[14] * vW;
|
|
2225
|
+
const w = matrix[3] * vX + matrix[7] * vY + matrix[11] * vZ + matrix[15] * vW;
|
|
2226
|
+
|
|
2227
|
+
result.x = x;
|
|
2228
|
+
result.y = y;
|
|
2229
|
+
result.z = z;
|
|
2230
|
+
result.w = w;
|
|
2231
|
+
return result;
|
|
2232
|
+
};
|
|
2233
|
+
|
|
2234
|
+
/**
|
|
2235
|
+
* Computes the product of a matrix and a {@link Cartesian3}. This is equivalent to calling {@link Matrix4.multiplyByVector}
|
|
2236
|
+
* with a {@link Cartesian4} with a <code>w</code> component of zero.
|
|
2237
|
+
*
|
|
2238
|
+
* @param {Matrix4} matrix The matrix.
|
|
2239
|
+
* @param {Cartesian3} cartesian The point.
|
|
2240
|
+
* @param {Cartesian3} result The object onto which to store the result.
|
|
2241
|
+
* @returns {Cartesian3} The modified result parameter.
|
|
2242
|
+
*
|
|
2243
|
+
* @example
|
|
2244
|
+
* const p = new Cesium.Cartesian3(1.0, 2.0, 3.0);
|
|
2245
|
+
* const result = Cesium.Matrix4.multiplyByPointAsVector(matrix, p, new Cesium.Cartesian3());
|
|
2246
|
+
* // A shortcut for
|
|
2247
|
+
* // Cartesian3 p = ...
|
|
2248
|
+
* // Cesium.Matrix4.multiplyByVector(matrix, new Cesium.Cartesian4(p.x, p.y, p.z, 0.0), result);
|
|
2249
|
+
*/
|
|
2250
|
+
Matrix4.multiplyByPointAsVector = function (matrix, cartesian, result) {
|
|
2251
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2252
|
+
Check.typeOf.object("matrix", matrix);
|
|
2253
|
+
Check.typeOf.object("cartesian", cartesian);
|
|
2254
|
+
Check.typeOf.object("result", result);
|
|
2255
|
+
//>>includeEnd('debug');
|
|
2256
|
+
|
|
2257
|
+
const vX = cartesian.x;
|
|
2258
|
+
const vY = cartesian.y;
|
|
2259
|
+
const vZ = cartesian.z;
|
|
2260
|
+
|
|
2261
|
+
const x = matrix[0] * vX + matrix[4] * vY + matrix[8] * vZ;
|
|
2262
|
+
const y = matrix[1] * vX + matrix[5] * vY + matrix[9] * vZ;
|
|
2263
|
+
const z = matrix[2] * vX + matrix[6] * vY + matrix[10] * vZ;
|
|
2264
|
+
|
|
2265
|
+
result.x = x;
|
|
2266
|
+
result.y = y;
|
|
2267
|
+
result.z = z;
|
|
2268
|
+
return result;
|
|
2269
|
+
};
|
|
2270
|
+
|
|
2271
|
+
/**
|
|
2272
|
+
* Computes the product of a matrix and a {@link Cartesian3}. This is equivalent to calling {@link Matrix4.multiplyByVector}
|
|
2273
|
+
* with a {@link Cartesian4} with a <code>w</code> component of 1, but returns a {@link Cartesian3} instead of a {@link Cartesian4}.
|
|
2274
|
+
*
|
|
2275
|
+
* @param {Matrix4} matrix The matrix.
|
|
2276
|
+
* @param {Cartesian3} cartesian The point.
|
|
2277
|
+
* @param {Cartesian3} result The object onto which to store the result.
|
|
2278
|
+
* @returns {Cartesian3} The modified result parameter.
|
|
2279
|
+
*
|
|
2280
|
+
* @example
|
|
2281
|
+
* const p = new Cesium.Cartesian3(1.0, 2.0, 3.0);
|
|
2282
|
+
* const result = Cesium.Matrix4.multiplyByPoint(matrix, p, new Cesium.Cartesian3());
|
|
2283
|
+
*/
|
|
2284
|
+
Matrix4.multiplyByPoint = function (matrix, cartesian, result) {
|
|
2285
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2286
|
+
Check.typeOf.object("matrix", matrix);
|
|
2287
|
+
Check.typeOf.object("cartesian", cartesian);
|
|
2288
|
+
Check.typeOf.object("result", result);
|
|
2289
|
+
//>>includeEnd('debug');
|
|
2290
|
+
|
|
2291
|
+
const vX = cartesian.x;
|
|
2292
|
+
const vY = cartesian.y;
|
|
2293
|
+
const vZ = cartesian.z;
|
|
2294
|
+
|
|
2295
|
+
const x = matrix[0] * vX + matrix[4] * vY + matrix[8] * vZ + matrix[12];
|
|
2296
|
+
const y = matrix[1] * vX + matrix[5] * vY + matrix[9] * vZ + matrix[13];
|
|
2297
|
+
const z = matrix[2] * vX + matrix[6] * vY + matrix[10] * vZ + matrix[14];
|
|
2298
|
+
|
|
2299
|
+
result.x = x;
|
|
2300
|
+
result.y = y;
|
|
2301
|
+
result.z = z;
|
|
2302
|
+
return result;
|
|
2303
|
+
};
|
|
2304
|
+
|
|
2305
|
+
/**
|
|
2306
|
+
* Computes the product of a matrix and a scalar.
|
|
2307
|
+
*
|
|
2308
|
+
* @param {Matrix4} matrix The matrix.
|
|
2309
|
+
* @param {number} scalar The number to multiply by.
|
|
2310
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
2311
|
+
* @returns {Matrix4} The modified result parameter.
|
|
2312
|
+
*
|
|
2313
|
+
* @example
|
|
2314
|
+
* //create a Matrix4 instance which is a scaled version of the supplied Matrix4
|
|
2315
|
+
* // m = [10.0, 11.0, 12.0, 13.0]
|
|
2316
|
+
* // [14.0, 15.0, 16.0, 17.0]
|
|
2317
|
+
* // [18.0, 19.0, 20.0, 21.0]
|
|
2318
|
+
* // [22.0, 23.0, 24.0, 25.0]
|
|
2319
|
+
*
|
|
2320
|
+
* const a = Cesium.Matrix4.multiplyByScalar(m, -2, new Cesium.Matrix4());
|
|
2321
|
+
*
|
|
2322
|
+
* // m remains the same
|
|
2323
|
+
* // a = [-20.0, -22.0, -24.0, -26.0]
|
|
2324
|
+
* // [-28.0, -30.0, -32.0, -34.0]
|
|
2325
|
+
* // [-36.0, -38.0, -40.0, -42.0]
|
|
2326
|
+
* // [-44.0, -46.0, -48.0, -50.0]
|
|
2327
|
+
*/
|
|
2328
|
+
Matrix4.multiplyByScalar = function (matrix, scalar, result) {
|
|
2329
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2330
|
+
Check.typeOf.object("matrix", matrix);
|
|
2331
|
+
Check.typeOf.number("scalar", scalar);
|
|
2332
|
+
Check.typeOf.object("result", result);
|
|
2333
|
+
//>>includeEnd('debug');
|
|
2334
|
+
|
|
2335
|
+
result[0] = matrix[0] * scalar;
|
|
2336
|
+
result[1] = matrix[1] * scalar;
|
|
2337
|
+
result[2] = matrix[2] * scalar;
|
|
2338
|
+
result[3] = matrix[3] * scalar;
|
|
2339
|
+
result[4] = matrix[4] * scalar;
|
|
2340
|
+
result[5] = matrix[5] * scalar;
|
|
2341
|
+
result[6] = matrix[6] * scalar;
|
|
2342
|
+
result[7] = matrix[7] * scalar;
|
|
2343
|
+
result[8] = matrix[8] * scalar;
|
|
2344
|
+
result[9] = matrix[9] * scalar;
|
|
2345
|
+
result[10] = matrix[10] * scalar;
|
|
2346
|
+
result[11] = matrix[11] * scalar;
|
|
2347
|
+
result[12] = matrix[12] * scalar;
|
|
2348
|
+
result[13] = matrix[13] * scalar;
|
|
2349
|
+
result[14] = matrix[14] * scalar;
|
|
2350
|
+
result[15] = matrix[15] * scalar;
|
|
2351
|
+
return result;
|
|
2352
|
+
};
|
|
2353
|
+
|
|
2354
|
+
/**
|
|
2355
|
+
* Computes a negated copy of the provided matrix.
|
|
2356
|
+
*
|
|
2357
|
+
* @param {Matrix4} matrix The matrix to negate.
|
|
2358
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
2359
|
+
* @returns {Matrix4} The modified result parameter.
|
|
2360
|
+
*
|
|
2361
|
+
* @example
|
|
2362
|
+
* //create a new Matrix4 instance which is a negation of a Matrix4
|
|
2363
|
+
* // m = [10.0, 11.0, 12.0, 13.0]
|
|
2364
|
+
* // [14.0, 15.0, 16.0, 17.0]
|
|
2365
|
+
* // [18.0, 19.0, 20.0, 21.0]
|
|
2366
|
+
* // [22.0, 23.0, 24.0, 25.0]
|
|
2367
|
+
*
|
|
2368
|
+
* const a = Cesium.Matrix4.negate(m, new Cesium.Matrix4());
|
|
2369
|
+
*
|
|
2370
|
+
* // m remains the same
|
|
2371
|
+
* // a = [-10.0, -11.0, -12.0, -13.0]
|
|
2372
|
+
* // [-14.0, -15.0, -16.0, -17.0]
|
|
2373
|
+
* // [-18.0, -19.0, -20.0, -21.0]
|
|
2374
|
+
* // [-22.0, -23.0, -24.0, -25.0]
|
|
2375
|
+
*/
|
|
2376
|
+
Matrix4.negate = function (matrix, result) {
|
|
2377
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2378
|
+
Check.typeOf.object("matrix", matrix);
|
|
2379
|
+
Check.typeOf.object("result", result);
|
|
2380
|
+
//>>includeEnd('debug');
|
|
2381
|
+
|
|
2382
|
+
result[0] = -matrix[0];
|
|
2383
|
+
result[1] = -matrix[1];
|
|
2384
|
+
result[2] = -matrix[2];
|
|
2385
|
+
result[3] = -matrix[3];
|
|
2386
|
+
result[4] = -matrix[4];
|
|
2387
|
+
result[5] = -matrix[5];
|
|
2388
|
+
result[6] = -matrix[6];
|
|
2389
|
+
result[7] = -matrix[7];
|
|
2390
|
+
result[8] = -matrix[8];
|
|
2391
|
+
result[9] = -matrix[9];
|
|
2392
|
+
result[10] = -matrix[10];
|
|
2393
|
+
result[11] = -matrix[11];
|
|
2394
|
+
result[12] = -matrix[12];
|
|
2395
|
+
result[13] = -matrix[13];
|
|
2396
|
+
result[14] = -matrix[14];
|
|
2397
|
+
result[15] = -matrix[15];
|
|
2398
|
+
return result;
|
|
2399
|
+
};
|
|
2400
|
+
|
|
2401
|
+
/**
|
|
2402
|
+
* Computes the transpose of the provided matrix.
|
|
2403
|
+
*
|
|
2404
|
+
* @param {Matrix4} matrix The matrix to transpose.
|
|
2405
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
2406
|
+
* @returns {Matrix4} The modified result parameter.
|
|
2407
|
+
*
|
|
2408
|
+
* @example
|
|
2409
|
+
* //returns transpose of a Matrix4
|
|
2410
|
+
* // m = [10.0, 11.0, 12.0, 13.0]
|
|
2411
|
+
* // [14.0, 15.0, 16.0, 17.0]
|
|
2412
|
+
* // [18.0, 19.0, 20.0, 21.0]
|
|
2413
|
+
* // [22.0, 23.0, 24.0, 25.0]
|
|
2414
|
+
*
|
|
2415
|
+
* const a = Cesium.Matrix4.transpose(m, new Cesium.Matrix4());
|
|
2416
|
+
*
|
|
2417
|
+
* // m remains the same
|
|
2418
|
+
* // a = [10.0, 14.0, 18.0, 22.0]
|
|
2419
|
+
* // [11.0, 15.0, 19.0, 23.0]
|
|
2420
|
+
* // [12.0, 16.0, 20.0, 24.0]
|
|
2421
|
+
* // [13.0, 17.0, 21.0, 25.0]
|
|
2422
|
+
*/
|
|
2423
|
+
Matrix4.transpose = function (matrix, result) {
|
|
2424
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2425
|
+
Check.typeOf.object("matrix", matrix);
|
|
2426
|
+
Check.typeOf.object("result", result);
|
|
2427
|
+
//>>includeEnd('debug');
|
|
2428
|
+
|
|
2429
|
+
const matrix1 = matrix[1];
|
|
2430
|
+
const matrix2 = matrix[2];
|
|
2431
|
+
const matrix3 = matrix[3];
|
|
2432
|
+
const matrix6 = matrix[6];
|
|
2433
|
+
const matrix7 = matrix[7];
|
|
2434
|
+
const matrix11 = matrix[11];
|
|
2435
|
+
|
|
2436
|
+
result[0] = matrix[0];
|
|
2437
|
+
result[1] = matrix[4];
|
|
2438
|
+
result[2] = matrix[8];
|
|
2439
|
+
result[3] = matrix[12];
|
|
2440
|
+
result[4] = matrix1;
|
|
2441
|
+
result[5] = matrix[5];
|
|
2442
|
+
result[6] = matrix[9];
|
|
2443
|
+
result[7] = matrix[13];
|
|
2444
|
+
result[8] = matrix2;
|
|
2445
|
+
result[9] = matrix6;
|
|
2446
|
+
result[10] = matrix[10];
|
|
2447
|
+
result[11] = matrix[14];
|
|
2448
|
+
result[12] = matrix3;
|
|
2449
|
+
result[13] = matrix7;
|
|
2450
|
+
result[14] = matrix11;
|
|
2451
|
+
result[15] = matrix[15];
|
|
2452
|
+
return result;
|
|
2453
|
+
};
|
|
2454
|
+
|
|
2455
|
+
/**
|
|
2456
|
+
* Computes a matrix, which contains the absolute (unsigned) values of the provided matrix's elements.
|
|
2457
|
+
*
|
|
2458
|
+
* @param {Matrix4} matrix The matrix with signed elements.
|
|
2459
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
2460
|
+
* @returns {Matrix4} The modified result parameter.
|
|
2461
|
+
*/
|
|
2462
|
+
Matrix4.abs = function (matrix, result) {
|
|
2463
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2464
|
+
Check.typeOf.object("matrix", matrix);
|
|
2465
|
+
Check.typeOf.object("result", result);
|
|
2466
|
+
//>>includeEnd('debug');
|
|
2467
|
+
|
|
2468
|
+
result[0] = Math.abs(matrix[0]);
|
|
2469
|
+
result[1] = Math.abs(matrix[1]);
|
|
2470
|
+
result[2] = Math.abs(matrix[2]);
|
|
2471
|
+
result[3] = Math.abs(matrix[3]);
|
|
2472
|
+
result[4] = Math.abs(matrix[4]);
|
|
2473
|
+
result[5] = Math.abs(matrix[5]);
|
|
2474
|
+
result[6] = Math.abs(matrix[6]);
|
|
2475
|
+
result[7] = Math.abs(matrix[7]);
|
|
2476
|
+
result[8] = Math.abs(matrix[8]);
|
|
2477
|
+
result[9] = Math.abs(matrix[9]);
|
|
2478
|
+
result[10] = Math.abs(matrix[10]);
|
|
2479
|
+
result[11] = Math.abs(matrix[11]);
|
|
2480
|
+
result[12] = Math.abs(matrix[12]);
|
|
2481
|
+
result[13] = Math.abs(matrix[13]);
|
|
2482
|
+
result[14] = Math.abs(matrix[14]);
|
|
2483
|
+
result[15] = Math.abs(matrix[15]);
|
|
2484
|
+
|
|
2485
|
+
return result;
|
|
2486
|
+
};
|
|
2487
|
+
|
|
2488
|
+
/**
|
|
2489
|
+
* Compares the provided matrices componentwise and returns
|
|
2490
|
+
* <code>true</code> if they are equal, <code>false</code> otherwise.
|
|
2491
|
+
*
|
|
2492
|
+
* @param {Matrix4} [left] The first matrix.
|
|
2493
|
+
* @param {Matrix4} [right] The second matrix.
|
|
2494
|
+
* @returns {boolean} <code>true</code> if left and right are equal, <code>false</code> otherwise.
|
|
2495
|
+
*
|
|
2496
|
+
* @example
|
|
2497
|
+
* //compares two Matrix4 instances
|
|
2498
|
+
*
|
|
2499
|
+
* // a = [10.0, 14.0, 18.0, 22.0]
|
|
2500
|
+
* // [11.0, 15.0, 19.0, 23.0]
|
|
2501
|
+
* // [12.0, 16.0, 20.0, 24.0]
|
|
2502
|
+
* // [13.0, 17.0, 21.0, 25.0]
|
|
2503
|
+
*
|
|
2504
|
+
* // b = [10.0, 14.0, 18.0, 22.0]
|
|
2505
|
+
* // [11.0, 15.0, 19.0, 23.0]
|
|
2506
|
+
* // [12.0, 16.0, 20.0, 24.0]
|
|
2507
|
+
* // [13.0, 17.0, 21.0, 25.0]
|
|
2508
|
+
*
|
|
2509
|
+
* if(Cesium.Matrix4.equals(a,b)) {
|
|
2510
|
+
* console.log("Both matrices are equal");
|
|
2511
|
+
* } else {
|
|
2512
|
+
* console.log("They are not equal");
|
|
2513
|
+
* }
|
|
2514
|
+
*
|
|
2515
|
+
* //Prints "Both matrices are equal" on the console
|
|
2516
|
+
*/
|
|
2517
|
+
Matrix4.equals = function (left, right) {
|
|
2518
|
+
// Given that most matrices will be transformation matrices, the elements
|
|
2519
|
+
// are tested in order such that the test is likely to fail as early
|
|
2520
|
+
// as possible. I _think_ this is just as friendly to the L1 cache
|
|
2521
|
+
// as testing in index order. It is certainty faster in practice.
|
|
2522
|
+
return (
|
|
2523
|
+
left === right ||
|
|
2524
|
+
(defined(left) &&
|
|
2525
|
+
defined(right) &&
|
|
2526
|
+
// Translation
|
|
2527
|
+
left[12] === right[12] &&
|
|
2528
|
+
left[13] === right[13] &&
|
|
2529
|
+
left[14] === right[14] &&
|
|
2530
|
+
// Rotation/scale
|
|
2531
|
+
left[0] === right[0] &&
|
|
2532
|
+
left[1] === right[1] &&
|
|
2533
|
+
left[2] === right[2] &&
|
|
2534
|
+
left[4] === right[4] &&
|
|
2535
|
+
left[5] === right[5] &&
|
|
2536
|
+
left[6] === right[6] &&
|
|
2537
|
+
left[8] === right[8] &&
|
|
2538
|
+
left[9] === right[9] &&
|
|
2539
|
+
left[10] === right[10] &&
|
|
2540
|
+
// Bottom row
|
|
2541
|
+
left[3] === right[3] &&
|
|
2542
|
+
left[7] === right[7] &&
|
|
2543
|
+
left[11] === right[11] &&
|
|
2544
|
+
left[15] === right[15])
|
|
2545
|
+
);
|
|
2546
|
+
};
|
|
2547
|
+
|
|
2548
|
+
/**
|
|
2549
|
+
* Compares the provided matrices componentwise and returns
|
|
2550
|
+
* <code>true</code> if they are within the provided epsilon,
|
|
2551
|
+
* <code>false</code> otherwise.
|
|
2552
|
+
*
|
|
2553
|
+
* @param {Matrix4} [left] The first matrix.
|
|
2554
|
+
* @param {Matrix4} [right] The second matrix.
|
|
2555
|
+
* @param {number} [epsilon=0] The epsilon to use for equality testing.
|
|
2556
|
+
* @returns {boolean} <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
|
|
2557
|
+
*
|
|
2558
|
+
* @example
|
|
2559
|
+
* //compares two Matrix4 instances
|
|
2560
|
+
*
|
|
2561
|
+
* // a = [10.5, 14.5, 18.5, 22.5]
|
|
2562
|
+
* // [11.5, 15.5, 19.5, 23.5]
|
|
2563
|
+
* // [12.5, 16.5, 20.5, 24.5]
|
|
2564
|
+
* // [13.5, 17.5, 21.5, 25.5]
|
|
2565
|
+
*
|
|
2566
|
+
* // b = [10.0, 14.0, 18.0, 22.0]
|
|
2567
|
+
* // [11.0, 15.0, 19.0, 23.0]
|
|
2568
|
+
* // [12.0, 16.0, 20.0, 24.0]
|
|
2569
|
+
* // [13.0, 17.0, 21.0, 25.0]
|
|
2570
|
+
*
|
|
2571
|
+
* if(Cesium.Matrix4.equalsEpsilon(a,b,0.1)){
|
|
2572
|
+
* console.log("Difference between both the matrices is less than 0.1");
|
|
2573
|
+
* } else {
|
|
2574
|
+
* console.log("Difference between both the matrices is not less than 0.1");
|
|
2575
|
+
* }
|
|
2576
|
+
*
|
|
2577
|
+
* //Prints "Difference between both the matrices is not less than 0.1" on the console
|
|
2578
|
+
*/
|
|
2579
|
+
Matrix4.equalsEpsilon = function (left, right, epsilon) {
|
|
2580
|
+
epsilon = epsilon ?? 0;
|
|
2581
|
+
|
|
2582
|
+
return (
|
|
2583
|
+
left === right ||
|
|
2584
|
+
(defined(left) &&
|
|
2585
|
+
defined(right) &&
|
|
2586
|
+
Math.abs(left[0] - right[0]) <= epsilon &&
|
|
2587
|
+
Math.abs(left[1] - right[1]) <= epsilon &&
|
|
2588
|
+
Math.abs(left[2] - right[2]) <= epsilon &&
|
|
2589
|
+
Math.abs(left[3] - right[3]) <= epsilon &&
|
|
2590
|
+
Math.abs(left[4] - right[4]) <= epsilon &&
|
|
2591
|
+
Math.abs(left[5] - right[5]) <= epsilon &&
|
|
2592
|
+
Math.abs(left[6] - right[6]) <= epsilon &&
|
|
2593
|
+
Math.abs(left[7] - right[7]) <= epsilon &&
|
|
2594
|
+
Math.abs(left[8] - right[8]) <= epsilon &&
|
|
2595
|
+
Math.abs(left[9] - right[9]) <= epsilon &&
|
|
2596
|
+
Math.abs(left[10] - right[10]) <= epsilon &&
|
|
2597
|
+
Math.abs(left[11] - right[11]) <= epsilon &&
|
|
2598
|
+
Math.abs(left[12] - right[12]) <= epsilon &&
|
|
2599
|
+
Math.abs(left[13] - right[13]) <= epsilon &&
|
|
2600
|
+
Math.abs(left[14] - right[14]) <= epsilon &&
|
|
2601
|
+
Math.abs(left[15] - right[15]) <= epsilon)
|
|
2602
|
+
);
|
|
2603
|
+
};
|
|
2604
|
+
|
|
2605
|
+
/**
|
|
2606
|
+
* Gets the translation portion of the provided matrix, assuming the matrix is an affine transformation matrix.
|
|
2607
|
+
*
|
|
2608
|
+
* @param {Matrix4} matrix The matrix to use.
|
|
2609
|
+
* @param {Cartesian3} result The object onto which to store the result.
|
|
2610
|
+
* @returns {Cartesian3} The modified result parameter.
|
|
2611
|
+
*/
|
|
2612
|
+
Matrix4.getTranslation = function (matrix, result) {
|
|
2613
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2614
|
+
Check.typeOf.object("matrix", matrix);
|
|
2615
|
+
Check.typeOf.object("result", result);
|
|
2616
|
+
//>>includeEnd('debug');
|
|
2617
|
+
|
|
2618
|
+
result.x = matrix[12];
|
|
2619
|
+
result.y = matrix[13];
|
|
2620
|
+
result.z = matrix[14];
|
|
2621
|
+
return result;
|
|
2622
|
+
};
|
|
2623
|
+
|
|
2624
|
+
/**
|
|
2625
|
+
* Gets the upper left 3x3 matrix of the provided matrix.
|
|
2626
|
+
*
|
|
2627
|
+
* @param {Matrix4} matrix The matrix to use.
|
|
2628
|
+
* @param {Matrix3} result The object onto which to store the result.
|
|
2629
|
+
* @returns {Matrix3} The modified result parameter.
|
|
2630
|
+
*
|
|
2631
|
+
* @example
|
|
2632
|
+
* // returns a Matrix3 instance from a Matrix4 instance
|
|
2633
|
+
*
|
|
2634
|
+
* // m = [10.0, 14.0, 18.0, 22.0]
|
|
2635
|
+
* // [11.0, 15.0, 19.0, 23.0]
|
|
2636
|
+
* // [12.0, 16.0, 20.0, 24.0]
|
|
2637
|
+
* // [13.0, 17.0, 21.0, 25.0]
|
|
2638
|
+
*
|
|
2639
|
+
* const b = new Cesium.Matrix3();
|
|
2640
|
+
* Cesium.Matrix4.getMatrix3(m,b);
|
|
2641
|
+
*
|
|
2642
|
+
* // b = [10.0, 14.0, 18.0]
|
|
2643
|
+
* // [11.0, 15.0, 19.0]
|
|
2644
|
+
* // [12.0, 16.0, 20.0]
|
|
2645
|
+
*/
|
|
2646
|
+
Matrix4.getMatrix3 = function (matrix, result) {
|
|
2647
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2648
|
+
Check.typeOf.object("matrix", matrix);
|
|
2649
|
+
Check.typeOf.object("result", result);
|
|
2650
|
+
//>>includeEnd('debug');
|
|
2651
|
+
|
|
2652
|
+
result[0] = matrix[0];
|
|
2653
|
+
result[1] = matrix[1];
|
|
2654
|
+
result[2] = matrix[2];
|
|
2655
|
+
result[3] = matrix[4];
|
|
2656
|
+
result[4] = matrix[5];
|
|
2657
|
+
result[5] = matrix[6];
|
|
2658
|
+
result[6] = matrix[8];
|
|
2659
|
+
result[7] = matrix[9];
|
|
2660
|
+
result[8] = matrix[10];
|
|
2661
|
+
return result;
|
|
2662
|
+
};
|
|
2663
|
+
|
|
2664
|
+
const scratchInverseRotation = new Matrix3();
|
|
2665
|
+
const scratchMatrix3Zero = new Matrix3();
|
|
2666
|
+
const scratchBottomRow = new Cartesian4();
|
|
2667
|
+
const scratchExpectedBottomRow = new Cartesian4(0.0, 0.0, 0.0, 1.0);
|
|
2668
|
+
|
|
2669
|
+
/**
|
|
2670
|
+
* Computes the inverse of the provided matrix using Cramers Rule.
|
|
2671
|
+
* If the determinant is zero, the matrix can not be inverted, and an exception is thrown.
|
|
2672
|
+
* If the matrix is a proper rigid transformation, it is more efficient
|
|
2673
|
+
* to invert it with {@link Matrix4.inverseTransformation}.
|
|
2674
|
+
*
|
|
2675
|
+
* @param {Matrix4} matrix The matrix to invert.
|
|
2676
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
2677
|
+
* @returns {Matrix4} The modified result parameter.
|
|
2678
|
+
*
|
|
2679
|
+
* @exception {RuntimeError} matrix is not invertible because its determinate is zero.
|
|
2680
|
+
*/
|
|
2681
|
+
Matrix4.inverse = function (matrix, result) {
|
|
2682
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2683
|
+
Check.typeOf.object("matrix", matrix);
|
|
2684
|
+
Check.typeOf.object("result", result);
|
|
2685
|
+
//>>includeEnd('debug');
|
|
2686
|
+
//
|
|
2687
|
+
// Ported from:
|
|
2688
|
+
// ftp://download.intel.com/design/PentiumIII/sml/24504301.pdf
|
|
2689
|
+
//
|
|
2690
|
+
const src0 = matrix[0];
|
|
2691
|
+
const src1 = matrix[4];
|
|
2692
|
+
const src2 = matrix[8];
|
|
2693
|
+
const src3 = matrix[12];
|
|
2694
|
+
const src4 = matrix[1];
|
|
2695
|
+
const src5 = matrix[5];
|
|
2696
|
+
const src6 = matrix[9];
|
|
2697
|
+
const src7 = matrix[13];
|
|
2698
|
+
const src8 = matrix[2];
|
|
2699
|
+
const src9 = matrix[6];
|
|
2700
|
+
const src10 = matrix[10];
|
|
2701
|
+
const src11 = matrix[14];
|
|
2702
|
+
const src12 = matrix[3];
|
|
2703
|
+
const src13 = matrix[7];
|
|
2704
|
+
const src14 = matrix[11];
|
|
2705
|
+
const src15 = matrix[15];
|
|
2706
|
+
|
|
2707
|
+
// calculate pairs for first 8 elements (cofactors)
|
|
2708
|
+
let tmp0 = src10 * src15;
|
|
2709
|
+
let tmp1 = src11 * src14;
|
|
2710
|
+
let tmp2 = src9 * src15;
|
|
2711
|
+
let tmp3 = src11 * src13;
|
|
2712
|
+
let tmp4 = src9 * src14;
|
|
2713
|
+
let tmp5 = src10 * src13;
|
|
2714
|
+
let tmp6 = src8 * src15;
|
|
2715
|
+
let tmp7 = src11 * src12;
|
|
2716
|
+
let tmp8 = src8 * src14;
|
|
2717
|
+
let tmp9 = src10 * src12;
|
|
2718
|
+
let tmp10 = src8 * src13;
|
|
2719
|
+
let tmp11 = src9 * src12;
|
|
2720
|
+
|
|
2721
|
+
// calculate first 8 elements (cofactors)
|
|
2722
|
+
const dst0 =
|
|
2723
|
+
tmp0 * src5 +
|
|
2724
|
+
tmp3 * src6 +
|
|
2725
|
+
tmp4 * src7 -
|
|
2726
|
+
(tmp1 * src5 + tmp2 * src6 + tmp5 * src7);
|
|
2727
|
+
const dst1 =
|
|
2728
|
+
tmp1 * src4 +
|
|
2729
|
+
tmp6 * src6 +
|
|
2730
|
+
tmp9 * src7 -
|
|
2731
|
+
(tmp0 * src4 + tmp7 * src6 + tmp8 * src7);
|
|
2732
|
+
const dst2 =
|
|
2733
|
+
tmp2 * src4 +
|
|
2734
|
+
tmp7 * src5 +
|
|
2735
|
+
tmp10 * src7 -
|
|
2736
|
+
(tmp3 * src4 + tmp6 * src5 + tmp11 * src7);
|
|
2737
|
+
const dst3 =
|
|
2738
|
+
tmp5 * src4 +
|
|
2739
|
+
tmp8 * src5 +
|
|
2740
|
+
tmp11 * src6 -
|
|
2741
|
+
(tmp4 * src4 + tmp9 * src5 + tmp10 * src6);
|
|
2742
|
+
const dst4 =
|
|
2743
|
+
tmp1 * src1 +
|
|
2744
|
+
tmp2 * src2 +
|
|
2745
|
+
tmp5 * src3 -
|
|
2746
|
+
(tmp0 * src1 + tmp3 * src2 + tmp4 * src3);
|
|
2747
|
+
const dst5 =
|
|
2748
|
+
tmp0 * src0 +
|
|
2749
|
+
tmp7 * src2 +
|
|
2750
|
+
tmp8 * src3 -
|
|
2751
|
+
(tmp1 * src0 + tmp6 * src2 + tmp9 * src3);
|
|
2752
|
+
const dst6 =
|
|
2753
|
+
tmp3 * src0 +
|
|
2754
|
+
tmp6 * src1 +
|
|
2755
|
+
tmp11 * src3 -
|
|
2756
|
+
(tmp2 * src0 + tmp7 * src1 + tmp10 * src3);
|
|
2757
|
+
const dst7 =
|
|
2758
|
+
tmp4 * src0 +
|
|
2759
|
+
tmp9 * src1 +
|
|
2760
|
+
tmp10 * src2 -
|
|
2761
|
+
(tmp5 * src0 + tmp8 * src1 + tmp11 * src2);
|
|
2762
|
+
|
|
2763
|
+
// calculate pairs for second 8 elements (cofactors)
|
|
2764
|
+
tmp0 = src2 * src7;
|
|
2765
|
+
tmp1 = src3 * src6;
|
|
2766
|
+
tmp2 = src1 * src7;
|
|
2767
|
+
tmp3 = src3 * src5;
|
|
2768
|
+
tmp4 = src1 * src6;
|
|
2769
|
+
tmp5 = src2 * src5;
|
|
2770
|
+
tmp6 = src0 * src7;
|
|
2771
|
+
tmp7 = src3 * src4;
|
|
2772
|
+
tmp8 = src0 * src6;
|
|
2773
|
+
tmp9 = src2 * src4;
|
|
2774
|
+
tmp10 = src0 * src5;
|
|
2775
|
+
tmp11 = src1 * src4;
|
|
2776
|
+
|
|
2777
|
+
// calculate second 8 elements (cofactors)
|
|
2778
|
+
const dst8 =
|
|
2779
|
+
tmp0 * src13 +
|
|
2780
|
+
tmp3 * src14 +
|
|
2781
|
+
tmp4 * src15 -
|
|
2782
|
+
(tmp1 * src13 + tmp2 * src14 + tmp5 * src15);
|
|
2783
|
+
const dst9 =
|
|
2784
|
+
tmp1 * src12 +
|
|
2785
|
+
tmp6 * src14 +
|
|
2786
|
+
tmp9 * src15 -
|
|
2787
|
+
(tmp0 * src12 + tmp7 * src14 + tmp8 * src15);
|
|
2788
|
+
const dst10 =
|
|
2789
|
+
tmp2 * src12 +
|
|
2790
|
+
tmp7 * src13 +
|
|
2791
|
+
tmp10 * src15 -
|
|
2792
|
+
(tmp3 * src12 + tmp6 * src13 + tmp11 * src15);
|
|
2793
|
+
const dst11 =
|
|
2794
|
+
tmp5 * src12 +
|
|
2795
|
+
tmp8 * src13 +
|
|
2796
|
+
tmp11 * src14 -
|
|
2797
|
+
(tmp4 * src12 + tmp9 * src13 + tmp10 * src14);
|
|
2798
|
+
const dst12 =
|
|
2799
|
+
tmp2 * src10 +
|
|
2800
|
+
tmp5 * src11 +
|
|
2801
|
+
tmp1 * src9 -
|
|
2802
|
+
(tmp4 * src11 + tmp0 * src9 + tmp3 * src10);
|
|
2803
|
+
const dst13 =
|
|
2804
|
+
tmp8 * src11 +
|
|
2805
|
+
tmp0 * src8 +
|
|
2806
|
+
tmp7 * src10 -
|
|
2807
|
+
(tmp6 * src10 + tmp9 * src11 + tmp1 * src8);
|
|
2808
|
+
const dst14 =
|
|
2809
|
+
tmp6 * src9 +
|
|
2810
|
+
tmp11 * src11 +
|
|
2811
|
+
tmp3 * src8 -
|
|
2812
|
+
(tmp10 * src11 + tmp2 * src8 + tmp7 * src9);
|
|
2813
|
+
const dst15 =
|
|
2814
|
+
tmp10 * src10 +
|
|
2815
|
+
tmp4 * src8 +
|
|
2816
|
+
tmp9 * src9 -
|
|
2817
|
+
(tmp8 * src9 + tmp11 * src10 + tmp5 * src8);
|
|
2818
|
+
|
|
2819
|
+
// calculate determinant
|
|
2820
|
+
let det = src0 * dst0 + src1 * dst1 + src2 * dst2 + src3 * dst3;
|
|
2821
|
+
|
|
2822
|
+
if (Math.abs(det) < CesiumMath.EPSILON21) {
|
|
2823
|
+
// Special case for a zero scale matrix that can occur, for example,
|
|
2824
|
+
// when a model's node has a [0, 0, 0] scale.
|
|
2825
|
+
if (
|
|
2826
|
+
Matrix3.equalsEpsilon(
|
|
2827
|
+
Matrix4.getMatrix3(matrix, scratchInverseRotation),
|
|
2828
|
+
scratchMatrix3Zero,
|
|
2829
|
+
CesiumMath.EPSILON7,
|
|
2830
|
+
) &&
|
|
2831
|
+
Cartesian4.equals(
|
|
2832
|
+
Matrix4.getRow(matrix, 3, scratchBottomRow),
|
|
2833
|
+
scratchExpectedBottomRow,
|
|
2834
|
+
)
|
|
2835
|
+
) {
|
|
2836
|
+
result[0] = 0.0;
|
|
2837
|
+
result[1] = 0.0;
|
|
2838
|
+
result[2] = 0.0;
|
|
2839
|
+
result[3] = 0.0;
|
|
2840
|
+
result[4] = 0.0;
|
|
2841
|
+
result[5] = 0.0;
|
|
2842
|
+
result[6] = 0.0;
|
|
2843
|
+
result[7] = 0.0;
|
|
2844
|
+
result[8] = 0.0;
|
|
2845
|
+
result[9] = 0.0;
|
|
2846
|
+
result[10] = 0.0;
|
|
2847
|
+
result[11] = 0.0;
|
|
2848
|
+
result[12] = -matrix[12];
|
|
2849
|
+
result[13] = -matrix[13];
|
|
2850
|
+
result[14] = -matrix[14];
|
|
2851
|
+
result[15] = 1.0;
|
|
2852
|
+
return result;
|
|
2853
|
+
}
|
|
2854
|
+
|
|
2855
|
+
throw new RuntimeError(
|
|
2856
|
+
"matrix is not invertible because its determinate is zero.",
|
|
2857
|
+
);
|
|
2858
|
+
}
|
|
2859
|
+
|
|
2860
|
+
// calculate matrix inverse
|
|
2861
|
+
det = 1.0 / det;
|
|
2862
|
+
|
|
2863
|
+
result[0] = dst0 * det;
|
|
2864
|
+
result[1] = dst1 * det;
|
|
2865
|
+
result[2] = dst2 * det;
|
|
2866
|
+
result[3] = dst3 * det;
|
|
2867
|
+
result[4] = dst4 * det;
|
|
2868
|
+
result[5] = dst5 * det;
|
|
2869
|
+
result[6] = dst6 * det;
|
|
2870
|
+
result[7] = dst7 * det;
|
|
2871
|
+
result[8] = dst8 * det;
|
|
2872
|
+
result[9] = dst9 * det;
|
|
2873
|
+
result[10] = dst10 * det;
|
|
2874
|
+
result[11] = dst11 * det;
|
|
2875
|
+
result[12] = dst12 * det;
|
|
2876
|
+
result[13] = dst13 * det;
|
|
2877
|
+
result[14] = dst14 * det;
|
|
2878
|
+
result[15] = dst15 * det;
|
|
2879
|
+
return result;
|
|
2880
|
+
};
|
|
2881
|
+
|
|
2882
|
+
/**
|
|
2883
|
+
* Computes the inverse of the provided matrix assuming it is a proper rigid matrix,
|
|
2884
|
+
* where the upper left 3x3 elements are a rotation matrix,
|
|
2885
|
+
* and the upper three elements in the fourth column are the translation.
|
|
2886
|
+
* The bottom row is assumed to be [0, 0, 0, 1].
|
|
2887
|
+
* The matrix is not verified to be in the proper form.
|
|
2888
|
+
* This method is faster than computing the inverse for a general 4x4
|
|
2889
|
+
* matrix using {@link Matrix4.inverse}.
|
|
2890
|
+
*
|
|
2891
|
+
* @param {Matrix4} matrix The matrix to invert.
|
|
2892
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
2893
|
+
* @returns {Matrix4} The modified result parameter.
|
|
2894
|
+
*/
|
|
2895
|
+
Matrix4.inverseTransformation = function (matrix, result) {
|
|
2896
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2897
|
+
Check.typeOf.object("matrix", matrix);
|
|
2898
|
+
Check.typeOf.object("result", result);
|
|
2899
|
+
//>>includeEnd('debug');
|
|
2900
|
+
|
|
2901
|
+
//This function is an optimized version of the below 4 lines.
|
|
2902
|
+
//const rT = Matrix3.transpose(Matrix4.getMatrix3(matrix));
|
|
2903
|
+
//const rTN = Matrix3.negate(rT);
|
|
2904
|
+
//const rTT = Matrix3.multiplyByVector(rTN, Matrix4.getTranslation(matrix));
|
|
2905
|
+
//return Matrix4.fromRotationTranslation(rT, rTT, result);
|
|
2906
|
+
|
|
2907
|
+
const matrix0 = matrix[0];
|
|
2908
|
+
const matrix1 = matrix[1];
|
|
2909
|
+
const matrix2 = matrix[2];
|
|
2910
|
+
const matrix4 = matrix[4];
|
|
2911
|
+
const matrix5 = matrix[5];
|
|
2912
|
+
const matrix6 = matrix[6];
|
|
2913
|
+
const matrix8 = matrix[8];
|
|
2914
|
+
const matrix9 = matrix[9];
|
|
2915
|
+
const matrix10 = matrix[10];
|
|
2916
|
+
|
|
2917
|
+
const vX = matrix[12];
|
|
2918
|
+
const vY = matrix[13];
|
|
2919
|
+
const vZ = matrix[14];
|
|
2920
|
+
|
|
2921
|
+
const x = -matrix0 * vX - matrix1 * vY - matrix2 * vZ;
|
|
2922
|
+
const y = -matrix4 * vX - matrix5 * vY - matrix6 * vZ;
|
|
2923
|
+
const z = -matrix8 * vX - matrix9 * vY - matrix10 * vZ;
|
|
2924
|
+
|
|
2925
|
+
result[0] = matrix0;
|
|
2926
|
+
result[1] = matrix4;
|
|
2927
|
+
result[2] = matrix8;
|
|
2928
|
+
result[3] = 0.0;
|
|
2929
|
+
result[4] = matrix1;
|
|
2930
|
+
result[5] = matrix5;
|
|
2931
|
+
result[6] = matrix9;
|
|
2932
|
+
result[7] = 0.0;
|
|
2933
|
+
result[8] = matrix2;
|
|
2934
|
+
result[9] = matrix6;
|
|
2935
|
+
result[10] = matrix10;
|
|
2936
|
+
result[11] = 0.0;
|
|
2937
|
+
result[12] = x;
|
|
2938
|
+
result[13] = y;
|
|
2939
|
+
result[14] = z;
|
|
2940
|
+
result[15] = 1.0;
|
|
2941
|
+
return result;
|
|
2942
|
+
};
|
|
2943
|
+
|
|
2944
|
+
const scratchTransposeMatrix = new Matrix4();
|
|
2945
|
+
|
|
2946
|
+
/**
|
|
2947
|
+
* Computes the inverse transpose of a matrix.
|
|
2948
|
+
*
|
|
2949
|
+
* @param {Matrix4} matrix The matrix to transpose and invert.
|
|
2950
|
+
* @param {Matrix4} result The object onto which to store the result.
|
|
2951
|
+
* @returns {Matrix4} The modified result parameter.
|
|
2952
|
+
*/
|
|
2953
|
+
Matrix4.inverseTranspose = function (matrix, result) {
|
|
2954
|
+
//>>includeStart('debug', pragmas.debug);
|
|
2955
|
+
Check.typeOf.object("matrix", matrix);
|
|
2956
|
+
Check.typeOf.object("result", result);
|
|
2957
|
+
//>>includeEnd('debug');
|
|
2958
|
+
|
|
2959
|
+
return Matrix4.inverse(
|
|
2960
|
+
Matrix4.transpose(matrix, scratchTransposeMatrix),
|
|
2961
|
+
result,
|
|
2962
|
+
);
|
|
2963
|
+
};
|
|
2964
|
+
|
|
2965
|
+
/**
|
|
2966
|
+
* An immutable Matrix4 instance initialized to the identity matrix.
|
|
2967
|
+
*
|
|
2968
|
+
* @type {Matrix4}
|
|
2969
|
+
* @constant
|
|
2970
|
+
*/
|
|
2971
|
+
Matrix4.IDENTITY = Object.freeze(
|
|
2972
|
+
new Matrix4(
|
|
2973
|
+
1.0,
|
|
2974
|
+
0.0,
|
|
2975
|
+
0.0,
|
|
2976
|
+
0.0,
|
|
2977
|
+
0.0,
|
|
2978
|
+
1.0,
|
|
2979
|
+
0.0,
|
|
2980
|
+
0.0,
|
|
2981
|
+
0.0,
|
|
2982
|
+
0.0,
|
|
2983
|
+
1.0,
|
|
2984
|
+
0.0,
|
|
2985
|
+
0.0,
|
|
2986
|
+
0.0,
|
|
2987
|
+
0.0,
|
|
2988
|
+
1.0,
|
|
2989
|
+
),
|
|
2990
|
+
);
|
|
2991
|
+
|
|
2992
|
+
/**
|
|
2993
|
+
* An immutable Matrix4 instance initialized to the zero matrix.
|
|
2994
|
+
*
|
|
2995
|
+
* @type {Matrix4}
|
|
2996
|
+
* @constant
|
|
2997
|
+
*/
|
|
2998
|
+
Matrix4.ZERO = Object.freeze(
|
|
2999
|
+
new Matrix4(
|
|
3000
|
+
0.0,
|
|
3001
|
+
0.0,
|
|
3002
|
+
0.0,
|
|
3003
|
+
0.0,
|
|
3004
|
+
0.0,
|
|
3005
|
+
0.0,
|
|
3006
|
+
0.0,
|
|
3007
|
+
0.0,
|
|
3008
|
+
0.0,
|
|
3009
|
+
0.0,
|
|
3010
|
+
0.0,
|
|
3011
|
+
0.0,
|
|
3012
|
+
0.0,
|
|
3013
|
+
0.0,
|
|
3014
|
+
0.0,
|
|
3015
|
+
0.0,
|
|
3016
|
+
),
|
|
3017
|
+
);
|
|
3018
|
+
|
|
3019
|
+
/**
|
|
3020
|
+
* The index into Matrix4 for column 0, row 0.
|
|
3021
|
+
*
|
|
3022
|
+
* @type {number}
|
|
3023
|
+
* @constant
|
|
3024
|
+
*/
|
|
3025
|
+
Matrix4.COLUMN0ROW0 = 0;
|
|
3026
|
+
|
|
3027
|
+
/**
|
|
3028
|
+
* The index into Matrix4 for column 0, row 1.
|
|
3029
|
+
*
|
|
3030
|
+
* @type {number}
|
|
3031
|
+
* @constant
|
|
3032
|
+
*/
|
|
3033
|
+
Matrix4.COLUMN0ROW1 = 1;
|
|
3034
|
+
|
|
3035
|
+
/**
|
|
3036
|
+
* The index into Matrix4 for column 0, row 2.
|
|
3037
|
+
*
|
|
3038
|
+
* @type {number}
|
|
3039
|
+
* @constant
|
|
3040
|
+
*/
|
|
3041
|
+
Matrix4.COLUMN0ROW2 = 2;
|
|
3042
|
+
|
|
3043
|
+
/**
|
|
3044
|
+
* The index into Matrix4 for column 0, row 3.
|
|
3045
|
+
*
|
|
3046
|
+
* @type {number}
|
|
3047
|
+
* @constant
|
|
3048
|
+
*/
|
|
3049
|
+
Matrix4.COLUMN0ROW3 = 3;
|
|
3050
|
+
|
|
3051
|
+
/**
|
|
3052
|
+
* The index into Matrix4 for column 1, row 0.
|
|
3053
|
+
*
|
|
3054
|
+
* @type {number}
|
|
3055
|
+
* @constant
|
|
3056
|
+
*/
|
|
3057
|
+
Matrix4.COLUMN1ROW0 = 4;
|
|
3058
|
+
|
|
3059
|
+
/**
|
|
3060
|
+
* The index into Matrix4 for column 1, row 1.
|
|
3061
|
+
*
|
|
3062
|
+
* @type {number}
|
|
3063
|
+
* @constant
|
|
3064
|
+
*/
|
|
3065
|
+
Matrix4.COLUMN1ROW1 = 5;
|
|
3066
|
+
|
|
3067
|
+
/**
|
|
3068
|
+
* The index into Matrix4 for column 1, row 2.
|
|
3069
|
+
*
|
|
3070
|
+
* @type {number}
|
|
3071
|
+
* @constant
|
|
3072
|
+
*/
|
|
3073
|
+
Matrix4.COLUMN1ROW2 = 6;
|
|
3074
|
+
|
|
3075
|
+
/**
|
|
3076
|
+
* The index into Matrix4 for column 1, row 3.
|
|
3077
|
+
*
|
|
3078
|
+
* @type {number}
|
|
3079
|
+
* @constant
|
|
3080
|
+
*/
|
|
3081
|
+
Matrix4.COLUMN1ROW3 = 7;
|
|
3082
|
+
|
|
3083
|
+
/**
|
|
3084
|
+
* The index into Matrix4 for column 2, row 0.
|
|
3085
|
+
*
|
|
3086
|
+
* @type {number}
|
|
3087
|
+
* @constant
|
|
3088
|
+
*/
|
|
3089
|
+
Matrix4.COLUMN2ROW0 = 8;
|
|
3090
|
+
|
|
3091
|
+
/**
|
|
3092
|
+
* The index into Matrix4 for column 2, row 1.
|
|
3093
|
+
*
|
|
3094
|
+
* @type {number}
|
|
3095
|
+
* @constant
|
|
3096
|
+
*/
|
|
3097
|
+
Matrix4.COLUMN2ROW1 = 9;
|
|
3098
|
+
|
|
3099
|
+
/**
|
|
3100
|
+
* The index into Matrix4 for column 2, row 2.
|
|
3101
|
+
*
|
|
3102
|
+
* @type {number}
|
|
3103
|
+
* @constant
|
|
3104
|
+
*/
|
|
3105
|
+
Matrix4.COLUMN2ROW2 = 10;
|
|
3106
|
+
|
|
3107
|
+
/**
|
|
3108
|
+
* The index into Matrix4 for column 2, row 3.
|
|
3109
|
+
*
|
|
3110
|
+
* @type {number}
|
|
3111
|
+
* @constant
|
|
3112
|
+
*/
|
|
3113
|
+
Matrix4.COLUMN2ROW3 = 11;
|
|
3114
|
+
|
|
3115
|
+
/**
|
|
3116
|
+
* The index into Matrix4 for column 3, row 0.
|
|
3117
|
+
*
|
|
3118
|
+
* @type {number}
|
|
3119
|
+
* @constant
|
|
3120
|
+
*/
|
|
3121
|
+
Matrix4.COLUMN3ROW0 = 12;
|
|
3122
|
+
|
|
3123
|
+
/**
|
|
3124
|
+
* The index into Matrix4 for column 3, row 1.
|
|
3125
|
+
*
|
|
3126
|
+
* @type {number}
|
|
3127
|
+
* @constant
|
|
3128
|
+
*/
|
|
3129
|
+
Matrix4.COLUMN3ROW1 = 13;
|
|
3130
|
+
|
|
3131
|
+
/**
|
|
3132
|
+
* The index into Matrix4 for column 3, row 2.
|
|
3133
|
+
*
|
|
3134
|
+
* @type {number}
|
|
3135
|
+
* @constant
|
|
3136
|
+
*/
|
|
3137
|
+
Matrix4.COLUMN3ROW2 = 14;
|
|
3138
|
+
|
|
3139
|
+
/**
|
|
3140
|
+
* The index into Matrix4 for column 3, row 3.
|
|
3141
|
+
*
|
|
3142
|
+
* @type {number}
|
|
3143
|
+
* @constant
|
|
3144
|
+
*/
|
|
3145
|
+
Matrix4.COLUMN3ROW3 = 15;
|
|
3146
|
+
|
|
3147
|
+
Object.defineProperties(Matrix4.prototype, {
|
|
3148
|
+
/**
|
|
3149
|
+
* Gets the number of items in the collection.
|
|
3150
|
+
* @memberof Matrix4.prototype
|
|
3151
|
+
*
|
|
3152
|
+
* @type {number}
|
|
3153
|
+
*/
|
|
3154
|
+
length: {
|
|
3155
|
+
get: function () {
|
|
3156
|
+
return Matrix4.packedLength;
|
|
3157
|
+
},
|
|
3158
|
+
},
|
|
3159
|
+
});
|
|
3160
|
+
|
|
3161
|
+
/**
|
|
3162
|
+
* Duplicates the provided Matrix4 instance.
|
|
3163
|
+
*
|
|
3164
|
+
* @param {Matrix4} [result] The object onto which to store the result.
|
|
3165
|
+
* @returns {Matrix4} The modified result parameter or a new Matrix4 instance if one was not provided.
|
|
3166
|
+
*/
|
|
3167
|
+
Matrix4.prototype.clone = function (result) {
|
|
3168
|
+
return Matrix4.clone(this, result);
|
|
3169
|
+
};
|
|
3170
|
+
|
|
3171
|
+
/**
|
|
3172
|
+
* Compares this matrix to the provided matrix componentwise and returns
|
|
3173
|
+
* <code>true</code> if they are equal, <code>false</code> otherwise.
|
|
3174
|
+
*
|
|
3175
|
+
* @param {Matrix4} [right] The right hand side matrix.
|
|
3176
|
+
* @returns {boolean} <code>true</code> if they are equal, <code>false</code> otherwise.
|
|
3177
|
+
*/
|
|
3178
|
+
Matrix4.prototype.equals = function (right) {
|
|
3179
|
+
return Matrix4.equals(this, right);
|
|
3180
|
+
};
|
|
3181
|
+
|
|
3182
|
+
/**
|
|
3183
|
+
* @private
|
|
3184
|
+
*/
|
|
3185
|
+
Matrix4.equalsArray = function (matrix, array, offset) {
|
|
3186
|
+
return (
|
|
3187
|
+
matrix[0] === array[offset] &&
|
|
3188
|
+
matrix[1] === array[offset + 1] &&
|
|
3189
|
+
matrix[2] === array[offset + 2] &&
|
|
3190
|
+
matrix[3] === array[offset + 3] &&
|
|
3191
|
+
matrix[4] === array[offset + 4] &&
|
|
3192
|
+
matrix[5] === array[offset + 5] &&
|
|
3193
|
+
matrix[6] === array[offset + 6] &&
|
|
3194
|
+
matrix[7] === array[offset + 7] &&
|
|
3195
|
+
matrix[8] === array[offset + 8] &&
|
|
3196
|
+
matrix[9] === array[offset + 9] &&
|
|
3197
|
+
matrix[10] === array[offset + 10] &&
|
|
3198
|
+
matrix[11] === array[offset + 11] &&
|
|
3199
|
+
matrix[12] === array[offset + 12] &&
|
|
3200
|
+
matrix[13] === array[offset + 13] &&
|
|
3201
|
+
matrix[14] === array[offset + 14] &&
|
|
3202
|
+
matrix[15] === array[offset + 15]
|
|
3203
|
+
);
|
|
3204
|
+
};
|
|
3205
|
+
|
|
3206
|
+
/**
|
|
3207
|
+
* Compares this matrix to the provided matrix componentwise and returns
|
|
3208
|
+
* <code>true</code> if they are within the provided epsilon,
|
|
3209
|
+
* <code>false</code> otherwise.
|
|
3210
|
+
*
|
|
3211
|
+
* @param {Matrix4} [right] The right hand side matrix.
|
|
3212
|
+
* @param {number} [epsilon=0] The epsilon to use for equality testing.
|
|
3213
|
+
* @returns {boolean} <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
|
|
3214
|
+
*/
|
|
3215
|
+
Matrix4.prototype.equalsEpsilon = function (right, epsilon) {
|
|
3216
|
+
return Matrix4.equalsEpsilon(this, right, epsilon);
|
|
3217
|
+
};
|
|
3218
|
+
|
|
3219
|
+
/**
|
|
3220
|
+
* Computes a string representing this Matrix with each row being
|
|
3221
|
+
* on a separate line and in the format '(column0, column1, column2, column3)'.
|
|
3222
|
+
*
|
|
3223
|
+
* @returns {string} A string representing the provided Matrix with each row being on a separate line and in the format '(column0, column1, column2, column3)'.
|
|
3224
|
+
*/
|
|
3225
|
+
Matrix4.prototype.toString = function () {
|
|
3226
|
+
return (
|
|
3227
|
+
`(${this[0]}, ${this[4]}, ${this[8]}, ${this[12]})\n` +
|
|
3228
|
+
`(${this[1]}, ${this[5]}, ${this[9]}, ${this[13]})\n` +
|
|
3229
|
+
`(${this[2]}, ${this[6]}, ${this[10]}, ${this[14]})\n` +
|
|
3230
|
+
`(${this[3]}, ${this[7]}, ${this[11]}, ${this[15]})`
|
|
3231
|
+
);
|
|
3232
|
+
};
|
|
3233
|
+
export default Matrix4;
|