@ifc-lite/viewer 1.28.1 → 1.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +36 -35
- package/CHANGELOG.md +114 -0
- package/dist/assets/{arrow-CXWhTnNT.js → arrow-fie-E7fe.js} +1 -1
- package/dist/assets/{basketViewActivator-Ce38DhXd.js → basketViewActivator-BHNb23Vw.js} +10 -10
- package/dist/assets/{bcf-Cv_O3JfD.js → bcf-C0XZ2DSl.js} +2 -2
- package/dist/assets/{cesium-CzZn5yVA.js → cesium-DezSO2mp.js} +658 -597
- package/dist/assets/{deflate-HbyMq59o.js → deflate-DvvFcUtV.js} +1 -1
- package/dist/assets/drawing-2d-CLn7Mtj8.js +257 -0
- package/dist/assets/{exporters-BuD3XRzB.js → exporters-CvORJOLn.js} +1560 -1505
- package/dist/assets/geometry.worker-B7X9DQQY.js +1 -0
- package/dist/assets/{geotiff-B2HA8Bwm.js → geotiff-fSD_sVw_.js} +12 -12
- package/dist/assets/{ids-DYUFMd5f.js → ids-BUOe5QQl.js} +951 -713
- package/dist/assets/idsValidation.worker-DEodXb0f.js +190468 -0
- package/dist/assets/ifc-lite_bg-CmMuB1zf.wasm +0 -0
- package/dist/assets/{index-n5O1QJMM.js → index-B6T42T86.js} +41695 -38118
- package/dist/assets/index-D0tqJL0X.css +1 -0
- package/dist/assets/{index.es-BKVIpZgL.js → index.es-YGMensDM.js} +11 -11
- package/dist/assets/{jpeg-C7hjKjPX.js → jpeg-0Sla88_N.js} +1 -1
- package/dist/assets/{jspdf.es.min-oWlFc42Y.js → jspdf.es.min-mnbLNj-p.js} +5 -5
- package/dist/assets/{lens-C4p1kQ0p.js → lens-DMnqMXpz.js} +1 -1
- package/dist/assets/{lerc-BfIOGhQz.js → lerc-C7xUDHpL.js} +1 -1
- package/dist/assets/{lzw-B0jRuuW5.js → lzw-CK480t0_.js} +1 -1
- package/dist/assets/{native-bridge-DpB-dtEn.js → native-bridge-sLWRanza.js} +2 -2
- package/dist/assets/{packbits-DVvBTC39.js → packbits-DcL4imYS.js} +1 -1
- package/dist/assets/parser.worker-BsGV6ml7.js +182 -0
- package/dist/assets/{pdf-dVIqI5ac.js → pdf-BARGfLmx.js} +12 -12
- package/dist/assets/raw-BMWh6mDy.js +1 -0
- package/dist/assets/{sandbox-qpJlrNN0.js → sandbox-BSiO04m8.js} +3852 -3095
- package/dist/assets/server-client-AlpWMVq9.js +741 -0
- package/dist/assets/{three-CQBzFWY2.js → three-SQm7uqwa.js} +1 -1
- package/dist/assets/{webimage-B394g0Tw.js → webimage-uy5DjZLk.js} +1 -1
- package/dist/assets/{xlsx-D-oHO76J.js → xlsx-D02ho69_.js} +10 -10
- package/dist/assets/{zstd-Bf38MwV2.js → zstd-DcR1TBwT.js} +1 -1
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-Z2M4BF4E.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-35LM35A5.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-I5NKQIWE.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-3R3BCVRR.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-VCOHJNKB.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-44VKZ44M.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-J6BM74AD.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-4LOVZYQ2.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-LYLRYC4L.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-55KTRCCC.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-Z4ERBZFB.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-5AJUPXGZ.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-LBZ34MHQ.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-5EEMCPIO.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-5HZ2G332.js +26 -0
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-5XHUDY37.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-6K4BWAPV.js} +1 -1
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-FC6IYMYF.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-6LZUEMFX.js} +1 -1
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-LOQDTQMX.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-6NPJZ3PS.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-6WMLAJJP.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-A3K5FM7E.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-FB7UV5BI.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-AP7AMWJA.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-U3YGOX3C.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-AZCCS55A.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-PPFUDJN4.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-BXPFAIYZ.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-VXCJOT4W.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-C4NHPSO2.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-DRBPXGI7.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-CJGWLCOV.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-TSGIJVWH.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-E4MSZ45D.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-XR7MN4PJ.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-FCRW2AGG.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-2ZYB3DYT.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-FMWRN5G2.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-5BC2Q3QW.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-FXWI4VL7.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-XU6O4MRS.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-FYQCPFNB.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-L7UE5MMF.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-G46AR6KP.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-AXNBHUAG.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-GS4ZGDWD.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-VXAZXMUX.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-GZABERXA.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-EZSKHVA2.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-H6AHPUMX.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-72KUXMWU.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-IPQQ2USK.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-T3ZGSZKA.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-ITSDUOWL.js} +1 -1
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-KG2GJUJT.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-J6WO2HA5.js} +1 -1
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-IYRGNBSH.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-K3YIAZU7.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-7NQYTTAU.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-K72DPWBT.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-DC3K7YTH.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-LKQXJXNV.js} +1 -1
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-MGPRMLLW.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-LTHJTGXC.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-4M56RRIL.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-LUECBOIT.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-236YIEYT.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-MUI5QV7K.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-XEC656IT.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-OS2CBN2U.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-IH7GXIUB.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-R5DFAOJG.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-X4D5KUN5.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-R7QNYLFY.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-WPD3MB6X.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-RH3WVPDR.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-EYZUSGKM.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-RI3TXBVT.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-ZY2KCIWI.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-RU2T2U4O.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-XR53QRQS.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-SSYRCXAV.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-TM6SYYHO.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-U4VWQPTS.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-GXEQRH2R.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-UHTXIDKA.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-XZBHEBLF.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-V74K6IQF.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-OMUAZ3NM.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-VELRZYUL.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-PQ3V63XF.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-VXS2FTO4.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-PWBQN4GK.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-VZ4ER5HI.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-EARRZPMO.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-WC7WZIXH.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-GF67PEXE.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-WM6AKY6B.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-VBYOXOSM.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-WTIPXHS3.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-IPP3UFGH.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-WZYIA4NB.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-A35GG5WJ.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-XEBZTQHW.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-QOTMLO2T.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-XFWEZBPW.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-NP26LKQA.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-YLWWFMFQ.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-F3WJIFOO.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-YNBY2HFD.js} +1 -1
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-EHC3BDVP.js → cesium@1.142.0/node_modules/cesium/Build/Cesium/Workers/chunk-ZQTDDQLY.js} +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/combineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createBoxGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createBoxOutlineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCircleGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCircleOutlineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCoplanarPolygonGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCoplanarPolygonOutlineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCorridorGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCorridorOutlineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCylinderGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createCylinderOutlineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createEllipseGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createEllipseOutlineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createEllipsoidGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createEllipsoidOutlineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createFrustumGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createFrustumOutlineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createGroundPolylineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createPlaneGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createPlaneOutlineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createPolygonGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createPolygonOutlineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createPolylineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createPolylineVolumeGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createPolylineVolumeOutlineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createRectangleGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createRectangleOutlineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createSimplePolylineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createSphereGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createSphereOutlineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createTaskProcessorWorker.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVectorTileClampedPolylines.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVectorTileGeometries.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVectorTilePoints.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVectorTilePolygons.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVectorTilePolylines.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVerticesFromCesium3DTilesTerrain.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVerticesFromHeightmap.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createWallGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/createWallOutlineGeometry.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/decodeDraco.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/decodeGoogleEarthEnterprisePacket.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/decodeI3S.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/gaussianSplatSorter.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/gaussianSplatTextureGenerator.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/incrementallyBuildTerrainPicker.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/transcodeKTX2.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/transferTypedArrayTest.js +1 -1
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/upsampleQuantizedTerrainMesh.js +2 -2
- package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +2 -2
- package/dist/index.html +11 -11
- package/package.json +50 -55
- package/src/components/viewer/CesiumOverlay.tsx +195 -8
- package/src/components/viewer/IDSPanel.tsx +23 -7
- package/src/components/viewer/MainToolbar.tsx +99 -41
- package/src/components/viewer/Section2DPanel.tsx +3 -3
- package/src/components/viewer/SunSkyPanel.tsx +363 -0
- package/src/components/viewer/ToolOverlays.tsx +5 -0
- package/src/components/viewer/Viewport.tsx +49 -1
- package/src/components/viewer/ViewportContainer.tsx +72 -6
- package/src/components/viewer/tools/SpaceSketchOverlay.tsx +872 -0
- package/src/components/viewer/useAnimationLoop.ts +19 -1
- package/src/disable-react-dev-perf-track.ts +38 -0
- package/src/hooks/has-entity-type.ts +33 -0
- package/src/hooks/ids/idsWorkerClient.ts +136 -0
- package/src/hooks/ingest/federationAlign.ts +1 -1
- package/src/hooks/ingest/pointCloudIngest.ts +22 -98
- package/src/hooks/ingest/viewerModelIngest.ts +8 -13
- package/src/hooks/useAlignmentLines3D.ts +5 -0
- package/src/hooks/useConstructionUnderlay.ts +94 -0
- package/src/hooks/useDrawingGeneration.ts +119 -24
- package/src/hooks/useGridLines3D.ts +4 -0
- package/src/hooks/useIDS.ts +77 -13
- package/src/hooks/useIfcCache.ts +1 -1
- package/src/hooks/useIfcFederation.ts +1 -1
- package/src/hooks/useIfcServer.ts +1 -1
- package/src/hooks/useModelSelection.ts +1 -1
- package/src/hooks/useSolarEnvironment.ts +114 -0
- package/src/hooks/useSolarSweep.ts +66 -0
- package/src/hooks/useSymbolicAnnotations.ts +10 -0
- package/src/hooks/useViewerSelectors.ts +1 -1
- package/src/lib/geo/cesium-sun.ts +277 -0
- package/src/lib/geo/solar-direction.test.ts +70 -0
- package/src/lib/geo/solar-direction.ts +94 -0
- package/src/lib/lighting-presets.ts +128 -0
- package/src/lib/recent-files.ts +4 -24
- package/src/lib/solar-time.ts +55 -0
- package/src/main.tsx +5 -0
- package/src/store/index.ts +8 -0
- package/src/store/slices/annotationsSlice.test.ts +0 -16
- package/src/store/slices/cesiumSlice.ts +3 -3
- package/src/store/slices/dataSlice.test.ts +0 -40
- package/src/store/slices/environmentSlice.ts +101 -0
- package/src/store/slices/idsSlice.ts +6 -1
- package/src/store/slices/mutationSlice.ts +21 -0
- package/src/store/slices/selectionSlice.test.ts +0 -43
- package/src/store/slices/solarSlice.ts +121 -0
- package/src/store/slices/uiSlice.ts +1 -0
- package/src/store/slices/visibilitySlice.test.ts +15 -45
- package/src/store/slices/visibilitySlice.ts +20 -0
- package/src/utils/loadingUtils.ts +1 -1
- package/src/workers/idsValidation.worker.ts +98 -0
- package/dist/assets/drawing-2d-DW98umlt.js +0 -257
- package/dist/assets/geometry.worker-TH3fCCoY.js +0 -1
- package/dist/assets/ifc-lite_bg-BEA5DLmg.wasm +0 -0
- package/dist/assets/index-E9wB0zWt.css +0 -1
- package/dist/assets/parser.worker-BDsWQ6rc.js +0 -182
- package/dist/assets/raw-C0ZJYGmN.js +0 -1
- package/dist/assets/server-client-DVZ2huNS.js +0 -719
- package/dist/cesium/node_modules/.pnpm/cesium@1.141.0/node_modules/cesium/Build/Cesium/Workers/chunk-SP35IT73.js +0 -26
- package/src/components/ui/context-menu.tsx +0 -174
- package/src/store.ts +0 -80
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Images/bing_maps_credit.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Images/cesium_credit.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Images/google_earth_credit.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Images/ion-credit.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/airfield.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/airport.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/alcohol-shop.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/america-football.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/art-gallery.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/bakery.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/bank.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/bar.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/baseball.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/basketball.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/beer.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/bicycle.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/building.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/bus.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/cafe.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/camera.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/campsite.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/car.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/cemetery.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/cesium.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/chemist.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/cinema.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/circle-stroked.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/circle.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/city.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/clothing-store.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/college.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/commercial.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/cricket.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/cross.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/dam.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/danger.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/disability.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/dog-park.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/embassy.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/emergency-telephone.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/entrance.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/farm.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/fast-food.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/ferry.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/fire-station.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/fuel.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/garden.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/gift.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/golf.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/grocery.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/hairdresser.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/harbor.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/heart.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/heliport.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/hospital.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/ice-cream.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/industrial.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/land-use.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/laundry.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/library.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/lighthouse.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/lodging.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/logging.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/london-underground.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/marker-stroked.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/marker.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/minefield.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/mobilephone.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/monument.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/museum.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/music.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/oil-well.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/park.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/park2.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/parking-garage.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/parking.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/pharmacy.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/pitch.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/place-of-worship.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/playground.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/police.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/polling-place.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/post.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/prison.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/rail-above.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/rail-light.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/rail-metro.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/rail-underground.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/rail.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/religious-christian.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/religious-jewish.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/religious-muslim.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/restaurant.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/roadblock.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/rocket.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/school.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/scooter.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/shop.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/skiing.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/slaughterhouse.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/soccer.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/square-stroked.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/square.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/star-stroked.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/star.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/suitcase.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/swimming.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/telephone.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/tennis.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/theatre.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/toilets.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/town-hall.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/town.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/triangle-stroked.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/triangle.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/village.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/warehouse.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/waste-basket.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/water.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/wetland.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/maki/zoo.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/moonSmall.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/pin.svg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/waterNormals.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/Textures/waterNormalsSmall.jpg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Assets/approximateTerrainHeights.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/ThirdParty/Workers/package.json +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/ThirdParty/Workers/zip-web-worker.js +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/ThirdParty/basis_transcoder.wasm +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/ThirdParty/draco_decoder.wasm +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/ThirdParty/google-earth-dbroot-parser.js +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/ThirdParty/wasm_splats_bg.wasm +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/ThirdParty/zip-module.wasm +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Animation/Animation.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Animation/lighter.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/BaseLayerPicker/lighter.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/CesiumInspector/CesiumInspector.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/CesiumWidget/CesiumWidget.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/CesiumWidget/lighter.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/FullscreenButton/FullscreenButton.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Geocoder/Geocoder.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Geocoder/lighter.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/azureAerial.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/azureRoads.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/bingAerial.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/bingRoads.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/blueMarble.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/earthAtNight.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/googleContour.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/googleRoadmap.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/googleSatellite.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/googleSatelliteLabels.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapboxStreets.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/naturalEarthII.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/openStreetMap.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/sentinel-2.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stamenToner.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/Mouse.svg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseLeft.svg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseRight.svg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/Touch.svg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchDrag.svg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchRotate.svg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchTilt.svg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchZoom.svg +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/TerrainProviders/Ellipsoid.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/TimelineIcons.png +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Images/info-loading.gif +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/InfoBox/InfoBox.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/InfoBox/InfoBoxDescription.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/NavigationHelpButton/lighter.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/ProjectionPicker/ProjectionPicker.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/SceneModePicker/SceneModePicker.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/SelectionIndicator/SelectionIndicator.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Timeline/Timeline.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Timeline/lighter.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/VRButton/VRButton.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/Viewer/Viewer.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/VoxelInspector/VoxelInspector.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/lighter.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/lighterShared.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/shared.css +0 -0
- /package/dist/cesium/node_modules/.pnpm/{cesium@1.141.0 → cesium@1.142.0}/node_modules/cesium/Build/Cesium/Widgets/widgets.css +0 -0
package/src/main.tsx
CHANGED
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
* Application entry point
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
// MUST be the first import: disables React 19.2's dev-mode component-render
|
|
10
|
+
// Performance tracking before react-dom caches `supportsUserTiming`, so large-IFC
|
|
11
|
+
// geometry/dataStore props don't blow its recursive prop-diff to a RangeError/OOM
|
|
12
|
+
// (the load "stops halfway" stall). See disable-react-dev-perf-track.ts.
|
|
13
|
+
import './disable-react-dev-perf-track';
|
|
9
14
|
import React from 'react';
|
|
10
15
|
import ReactDOM from 'react-dom/client';
|
|
11
16
|
import { App } from './App';
|
package/src/store/index.ts
CHANGED
|
@@ -38,6 +38,8 @@ import { createCompareSlice, type CompareSlice } from './slices/compareSlice.js'
|
|
|
38
38
|
import { createScriptSlice, type ScriptSlice } from './slices/scriptSlice.js';
|
|
39
39
|
import { createChatSlice, type ChatSlice } from './slices/chatSlice.js';
|
|
40
40
|
import { createCesiumSlice, type CesiumSlice } from './slices/cesiumSlice.js';
|
|
41
|
+
import { createSolarSlice, type SolarSlice } from './slices/solarSlice.js';
|
|
42
|
+
import { createEnvironmentSlice, type EnvironmentSlice } from './slices/environmentSlice.js';
|
|
41
43
|
import { createScheduleSlice, type ScheduleSlice } from './slices/scheduleSlice.js';
|
|
42
44
|
import { createPlaybackSlice, type PlaybackSlice } from './slices/playbackSlice.js';
|
|
43
45
|
import { createOverlaySlice, type OverlaySlice } from './slices/overlaySlice.js';
|
|
@@ -64,6 +66,7 @@ export { entityRefToString, stringToEntityRef, entityRefEquals, isIfcxDataStore
|
|
|
64
66
|
// Re-export single source of truth for globalId → EntityRef resolution
|
|
65
67
|
export { resolveEntityRef } from './resolveEntityRef.js';
|
|
66
68
|
export { fromGlobalIdFromModels, toGlobalIdFromModels, toGlobalIdForRef } from './globalId.js';
|
|
69
|
+
export type { ForwardModelMapLike } from './globalId.js';
|
|
67
70
|
|
|
68
71
|
// Re-export Drawing2D types
|
|
69
72
|
export type { Drawing2DState, Drawing2DStatus, Annotation2DTool, PolygonArea2DResult, TextAnnotation2D, CloudAnnotation2D, SelectedAnnotation2D } from './slices/drawing2DSlice.js';
|
|
@@ -105,6 +108,7 @@ export {
|
|
|
105
108
|
computeScheduleRange,
|
|
106
109
|
computeHiddenProductIds,
|
|
107
110
|
computeActiveProductIds,
|
|
111
|
+
countGeneratedTasks,
|
|
108
112
|
taskStartEpoch,
|
|
109
113
|
taskFinishEpoch,
|
|
110
114
|
parseIsoDate,
|
|
@@ -135,6 +139,8 @@ export type ViewerState = LoadingSlice &
|
|
|
135
139
|
ScriptSlice &
|
|
136
140
|
ChatSlice &
|
|
137
141
|
CesiumSlice &
|
|
142
|
+
SolarSlice &
|
|
143
|
+
EnvironmentSlice &
|
|
138
144
|
ScheduleSlice &
|
|
139
145
|
PlaybackSlice &
|
|
140
146
|
OverlaySlice &
|
|
@@ -186,6 +192,8 @@ const createViewerStore = () => create<ViewerState>()((...args) => ({
|
|
|
186
192
|
...createScriptSlice(...args),
|
|
187
193
|
...createChatSlice(...args),
|
|
188
194
|
...createCesiumSlice(...args),
|
|
195
|
+
...createSolarSlice(...args),
|
|
196
|
+
...createEnvironmentSlice(...args),
|
|
189
197
|
...createScheduleSlice(...args),
|
|
190
198
|
...createPlaybackSlice(...args),
|
|
191
199
|
...createOverlaySlice(...args),
|
|
@@ -36,23 +36,7 @@ describe('AnnotationsSlice', () => {
|
|
|
36
36
|
state = createAnnotationsSlice(setState as never, () => state, {} as never);
|
|
37
37
|
});
|
|
38
38
|
|
|
39
|
-
describe('initial state', () => {
|
|
40
|
-
it('starts with no annotations and no draft', () => {
|
|
41
|
-
assert.strictEqual(state.annotations.size, 0);
|
|
42
|
-
assert.strictEqual(state.draft, null);
|
|
43
|
-
assert.strictEqual(state.selectedAnnotationId, null);
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
|
|
47
39
|
describe('beginDraft + commitDraft', () => {
|
|
48
|
-
it('opens a draft at the given world position', () => {
|
|
49
|
-
state.beginDraft({ x: 1, y: 2, z: 3 }, 42, 'arch');
|
|
50
|
-
assert.ok(state.draft);
|
|
51
|
-
assert.deepStrictEqual(state.draft!.position, { x: 1, y: 2, z: 3 });
|
|
52
|
-
assert.strictEqual(state.draft!.entityExpressId, 42);
|
|
53
|
-
assert.strictEqual(state.draft!.modelId, 'arch');
|
|
54
|
-
});
|
|
55
|
-
|
|
56
40
|
it('commits the draft into a new annotation', () => {
|
|
57
41
|
state.beginDraft({ x: 1, y: 2, z: 3 }, 42, 'arch');
|
|
58
42
|
const id = state.commitDraft('Defect: chip in the corner');
|
|
@@ -19,7 +19,7 @@ import type { MapConversion } from '@ifc-lite/parser';
|
|
|
19
19
|
|
|
20
20
|
import { clearTerrainElevationCache } from '@/lib/geo/terrain-elevation';
|
|
21
21
|
|
|
22
|
-
export type CesiumDataSource = 'google-photorealistic';
|
|
22
|
+
export type CesiumDataSource = 'google-photorealistic' | 'osm-buildings';
|
|
23
23
|
|
|
24
24
|
export interface CesiumPlacementDraft {
|
|
25
25
|
eastings: number;
|
|
@@ -133,8 +133,8 @@ function saveToStorage(key: string, value: string): void {
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
function loadDataSource(): CesiumDataSource {
|
|
136
|
-
|
|
137
|
-
return 'google-photorealistic';
|
|
136
|
+
const stored = loadFromStorage(STORAGE_KEY_DATA_SOURCE, 'google-photorealistic');
|
|
137
|
+
return stored === 'osm-buildings' ? 'osm-buildings' : 'google-photorealistic';
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
/** Resolve the Cesium ion token: user override > build-time default */
|
|
@@ -53,46 +53,6 @@ describe('DataSlice', () => {
|
|
|
53
53
|
state = { ...slice, activeModelId: null, models: new Map() };
|
|
54
54
|
});
|
|
55
55
|
|
|
56
|
-
describe('initial state', () => {
|
|
57
|
-
it('should have null ifcDataStore', () => {
|
|
58
|
-
assert.strictEqual(state.ifcDataStore, null);
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
it('should have null geometryResult', () => {
|
|
62
|
-
assert.strictEqual(state.geometryResult, null);
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
it('should have null pendingColorUpdates', () => {
|
|
66
|
-
assert.strictEqual(state.pendingColorUpdates, null);
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
it('should have null pendingMeshColorUpdates', () => {
|
|
70
|
-
assert.strictEqual(state.pendingMeshColorUpdates, null);
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
describe('setIfcDataStore', () => {
|
|
75
|
-
it('should set the data store', () => {
|
|
76
|
-
const mockStore = { entityCount: 100 } as any;
|
|
77
|
-
state.setIfcDataStore(mockStore);
|
|
78
|
-
assert.strictEqual(state.ifcDataStore, mockStore);
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
it('should allow setting to null', () => {
|
|
82
|
-
state.setIfcDataStore({ entityCount: 100 } as any);
|
|
83
|
-
state.setIfcDataStore(null);
|
|
84
|
-
assert.strictEqual(state.ifcDataStore, null);
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
describe('setGeometryResult', () => {
|
|
89
|
-
it('should set the geometry result', () => {
|
|
90
|
-
const mockResult = { meshes: [], totalTriangles: 0, totalVertices: 0 } as any;
|
|
91
|
-
state.setGeometryResult(mockResult);
|
|
92
|
-
assert.strictEqual(state.geometryResult, mockResult);
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
|
|
96
56
|
describe('appendGeometryBatch', () => {
|
|
97
57
|
it('should create new geometry result when none exists', () => {
|
|
98
58
|
const meshes = [createMockMesh(1), createMockMesh(2)];
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Environment (sky + lighting) state slice.
|
|
7
|
+
*
|
|
8
|
+
* Owns the user's lighting choices for BOTH rendering paths:
|
|
9
|
+
* • WebGPU viewport — preset lighting + procedural sky pass, composed into
|
|
10
|
+
* `RenderOptions.environment` by Viewport.
|
|
11
|
+
* • Cesium geo mode — the same sky toggle drives `scene.skyAtmosphere` /
|
|
12
|
+
* `scene.sun` / fog in CesiumOverlay, so "Sky" means the same thing in
|
|
13
|
+
* whichever mode is active.
|
|
14
|
+
*
|
|
15
|
+
* Preset/sky/exposure choices persist in localStorage; panel visibility is
|
|
16
|
+
* session-only.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import type { StateCreator } from 'zustand';
|
|
20
|
+
import { isLightingPresetId, type LightingPresetId } from '@/lib/lighting-presets';
|
|
21
|
+
|
|
22
|
+
export interface EnvironmentSlice {
|
|
23
|
+
/** Active lighting preset for the WebGPU viewport. */
|
|
24
|
+
envPreset: LightingPresetId;
|
|
25
|
+
/**
|
|
26
|
+
* Cesium geo mode: show the atmosphere, sun disc and fog. (Standalone the
|
|
27
|
+
* sky comes with the lighting preset — every preset except `default`
|
|
28
|
+
* enables it — so this flag only drives the world-context scene.)
|
|
29
|
+
*/
|
|
30
|
+
envSkyEnabled: boolean;
|
|
31
|
+
/** User exposure trim, multiplied onto the preset exposure. 1 = neutral. */
|
|
32
|
+
envExposure: number;
|
|
33
|
+
/** Whether the Sun & Sky panel is open. */
|
|
34
|
+
envPanelOpen: boolean;
|
|
35
|
+
|
|
36
|
+
setEnvPreset: (preset: LightingPresetId) => void;
|
|
37
|
+
setEnvSkyEnabled: (enabled: boolean) => void;
|
|
38
|
+
setEnvExposure: (exposure: number) => void;
|
|
39
|
+
setEnvPanelOpen: (open: boolean) => void;
|
|
40
|
+
toggleEnvPanel: () => void;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const STORAGE_KEY = 'ifc-lite:environment';
|
|
44
|
+
|
|
45
|
+
interface PersistedEnvironment {
|
|
46
|
+
preset?: string;
|
|
47
|
+
skyEnabled?: boolean;
|
|
48
|
+
exposure?: number;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function loadPersisted(): PersistedEnvironment {
|
|
52
|
+
try {
|
|
53
|
+
const raw = localStorage.getItem(STORAGE_KEY);
|
|
54
|
+
if (!raw) return {};
|
|
55
|
+
const parsed: unknown = JSON.parse(raw);
|
|
56
|
+
return typeof parsed === 'object' && parsed !== null ? (parsed as PersistedEnvironment) : {};
|
|
57
|
+
} catch {
|
|
58
|
+
return {};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function persist(state: Pick<EnvironmentSlice, 'envPreset' | 'envSkyEnabled' | 'envExposure'>): void {
|
|
63
|
+
try {
|
|
64
|
+
localStorage.setItem(STORAGE_KEY, JSON.stringify({
|
|
65
|
+
preset: state.envPreset,
|
|
66
|
+
skyEnabled: state.envSkyEnabled,
|
|
67
|
+
exposure: state.envExposure,
|
|
68
|
+
} satisfies PersistedEnvironment));
|
|
69
|
+
} catch { /* storage unavailable */ }
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function clampExposure(value: number): number {
|
|
73
|
+
if (!Number.isFinite(value)) return 1;
|
|
74
|
+
return Math.min(2, Math.max(0.4, value));
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export const createEnvironmentSlice: StateCreator<EnvironmentSlice, [], [], EnvironmentSlice> = (set, get) => {
|
|
78
|
+
const stored = loadPersisted();
|
|
79
|
+
const initial = {
|
|
80
|
+
envPreset: (stored.preset && isLightingPresetId(stored.preset) ? stored.preset : 'default') as LightingPresetId,
|
|
81
|
+
envSkyEnabled: stored.skyEnabled === true,
|
|
82
|
+
envExposure: clampExposure(stored.exposure ?? 1),
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const update = (patch: Partial<EnvironmentSlice>) => {
|
|
86
|
+
set(patch);
|
|
87
|
+
const s = get();
|
|
88
|
+
persist(s);
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
return {
|
|
92
|
+
...initial,
|
|
93
|
+
envPanelOpen: false,
|
|
94
|
+
|
|
95
|
+
setEnvPreset: (preset) => update({ envPreset: preset }),
|
|
96
|
+
setEnvSkyEnabled: (enabled) => update({ envSkyEnabled: enabled }),
|
|
97
|
+
setEnvExposure: (exposure) => update({ envExposure: clampExposure(exposure) }),
|
|
98
|
+
setEnvPanelOpen: (open) => set({ envPanelOpen: open }),
|
|
99
|
+
toggleEnvPanel: () => set((s) => ({ envPanelOpen: !s.envPanelOpen })),
|
|
100
|
+
};
|
|
101
|
+
};
|
|
@@ -257,7 +257,12 @@ export const createIdsSlice: StateCreator<IDSSlice, [], [], IDSSlice> = (set, ge
|
|
|
257
257
|
|
|
258
258
|
setIdsLoading: (idsLoading) => set({ idsLoading }),
|
|
259
259
|
|
|
260
|
-
|
|
260
|
+
// Setting an error ends the run; but CLEARING the error (idsError =
|
|
261
|
+
// null, e.g. at the start of a validation run) must NOT flip loading
|
|
262
|
+
// off — doing so kept the progress UI, which is gated on `loading`,
|
|
263
|
+
// hidden for the entire run even though progress was streaming in.
|
|
264
|
+
setIdsError: (idsError) =>
|
|
265
|
+
set(idsError !== null ? { idsError, idsLoading: false } : { idsError }),
|
|
261
266
|
|
|
262
267
|
setIdsLocale: (idsLocale) => set({ idsLocale }),
|
|
263
268
|
|
|
@@ -47,6 +47,7 @@ import { getEntityBounds } from '@/utils/viewportUtils';
|
|
|
47
47
|
import { toGlobalIdFromModels } from '../globalId.js';
|
|
48
48
|
import { buildElementMesh, type ElementMeshPayload } from './addElementMeshes.js';
|
|
49
49
|
import type { AddElementType } from './addElementSlice.js';
|
|
50
|
+
import type { TypeViewMode } from '../constants.js';
|
|
50
51
|
import {
|
|
51
52
|
resolvePlacementChain,
|
|
52
53
|
resolveRotationState,
|
|
@@ -92,6 +93,23 @@ export const DUPLICATE_DEFAULT_DIRECTION: DuplicateDirection = '+X';
|
|
|
92
93
|
/** Fallback step in metres when the source has no mesh in geometry. */
|
|
93
94
|
const DUPLICATE_FALLBACK_STEP = 1;
|
|
94
95
|
|
|
96
|
+
/**
|
|
97
|
+
* New occurrence geometry from an authoring action (add element, duplicate,
|
|
98
|
+
* split) is a class-0 mesh, which the 3D "Types" view deliberately hides. If
|
|
99
|
+
* the user is in Types view when they commit such an action, flip back to
|
|
100
|
+
* Model so the element they just created actually renders — otherwise the
|
|
101
|
+
* toast says "added" but nothing appears. No-op when already in Model view
|
|
102
|
+
* (so it never needlessly overwrites the persisted preference). Reads the
|
|
103
|
+
* live store via the cross-slice `get()`.
|
|
104
|
+
*/
|
|
105
|
+
function revealAddedGeometryInModelView(get: () => unknown): void {
|
|
106
|
+
const cross = get() as {
|
|
107
|
+
typeViewMode?: TypeViewMode;
|
|
108
|
+
setTypeViewMode?: (mode: TypeViewMode) => void;
|
|
109
|
+
};
|
|
110
|
+
if (cross.typeViewMode === 'types') cross.setTypeViewMode?.('model');
|
|
111
|
+
}
|
|
112
|
+
|
|
95
113
|
interface ViewerBox {
|
|
96
114
|
/** Per-axis sizes in viewer scene coordinates. */
|
|
97
115
|
size: { x: number; y: number; z: number };
|
|
@@ -921,6 +939,7 @@ function runInStoreElementBuilder(
|
|
|
921
939
|
appendGeometryBatch?: (batch: MeshData[]) => void;
|
|
922
940
|
};
|
|
923
941
|
cross.appendGeometryBatch?.([mesh]);
|
|
942
|
+
revealAddedGeometryInModelView(get);
|
|
924
943
|
}
|
|
925
944
|
}
|
|
926
945
|
|
|
@@ -2104,6 +2123,7 @@ export const createMutationSlice: StateCreator<
|
|
|
2104
2123
|
appendGeometryBatch?: (batch: MeshData[]) => void;
|
|
2105
2124
|
};
|
|
2106
2125
|
cross.appendGeometryBatch?.([columnMesh]);
|
|
2126
|
+
revealAddedGeometryInModelView(get);
|
|
2107
2127
|
}
|
|
2108
2128
|
|
|
2109
2129
|
set((s) => {
|
|
@@ -2352,6 +2372,7 @@ export const createMutationSlice: StateCreator<
|
|
|
2352
2372
|
appendGeometryBatch?: (batch: MeshData[]) => void;
|
|
2353
2373
|
};
|
|
2354
2374
|
cross.appendGeometryBatch?.(clonedMeshes);
|
|
2375
|
+
revealAddedGeometryInModelView(get);
|
|
2355
2376
|
}
|
|
2356
2377
|
|
|
2357
2378
|
return { expressId: newId, globalId: newGlobalId };
|
|
@@ -24,28 +24,7 @@ describe('SelectionSlice', () => {
|
|
|
24
24
|
state = createSelectionSlice(setState, () => state, {} as any);
|
|
25
25
|
});
|
|
26
26
|
|
|
27
|
-
describe('initial state', () => {
|
|
28
|
-
it('should have null selectedEntity', () => {
|
|
29
|
-
assert.strictEqual(state.selectedEntity, null);
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
it('should have empty selectedEntitiesSet', () => {
|
|
33
|
-
assert.strictEqual(state.selectedEntitiesSet.size, 0);
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
it('should have null selectedEntityId (legacy)', () => {
|
|
37
|
-
assert.strictEqual(state.selectedEntityId, null);
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
|
|
41
27
|
describe('multi-model selection: setSelectedEntity', () => {
|
|
42
|
-
it('should set primary selection with model context', () => {
|
|
43
|
-
const ref: EntityRef = { modelId: 'model-1', expressId: 123 };
|
|
44
|
-
state.setSelectedEntity(ref);
|
|
45
|
-
|
|
46
|
-
assert.deepStrictEqual(state.selectedEntity, ref);
|
|
47
|
-
});
|
|
48
|
-
|
|
49
28
|
it('should NOT update selectedEntityId (caller must use setSelectedEntityId for global ID)', () => {
|
|
50
29
|
// NOTE: selectedEntityId holds the GLOBAL ID for renderer highlighting,
|
|
51
30
|
// while selectedEntity.expressId holds the ORIGINAL express ID for property lookup.
|
|
@@ -56,15 +35,6 @@ describe('SelectionSlice', () => {
|
|
|
56
35
|
// selectedEntityId should remain null - caller must set it separately with globalId
|
|
57
36
|
assert.strictEqual(state.selectedEntityId, null);
|
|
58
37
|
});
|
|
59
|
-
|
|
60
|
-
it('should allow clearing selection with null', () => {
|
|
61
|
-
const ref: EntityRef = { modelId: 'model-1', expressId: 123 };
|
|
62
|
-
state.setSelectedEntity(ref);
|
|
63
|
-
state.setSelectedEntity(null);
|
|
64
|
-
|
|
65
|
-
assert.strictEqual(state.selectedEntity, null);
|
|
66
|
-
assert.strictEqual(state.selectedEntityId, null);
|
|
67
|
-
});
|
|
68
38
|
});
|
|
69
39
|
|
|
70
40
|
describe('multi-model selection: addEntityToSelection', () => {
|
|
@@ -285,19 +255,6 @@ describe('SelectionSlice', () => {
|
|
|
285
255
|
});
|
|
286
256
|
});
|
|
287
257
|
|
|
288
|
-
describe('legacy selection: setSelectedEntityId', () => {
|
|
289
|
-
it('should set legacy selectedEntityId', () => {
|
|
290
|
-
state.setSelectedEntityId(123);
|
|
291
|
-
assert.strictEqual(state.selectedEntityId, 123);
|
|
292
|
-
});
|
|
293
|
-
|
|
294
|
-
it('should allow clearing with null', () => {
|
|
295
|
-
state.setSelectedEntityId(123);
|
|
296
|
-
state.setSelectedEntityId(null);
|
|
297
|
-
assert.strictEqual(state.selectedEntityId, null);
|
|
298
|
-
});
|
|
299
|
-
});
|
|
300
|
-
|
|
301
258
|
describe('legacy selection: storey selection', () => {
|
|
302
259
|
it('should toggle storey selection', () => {
|
|
303
260
|
state.toggleStoreySelection(1);
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Solar study state slice — drives the georeferenced 3D sun-path dome and
|
|
7
|
+
* shadow study rendered in the Cesium context overlay.
|
|
8
|
+
*
|
|
9
|
+
* The slice itself only owns *intent* (which instant to study, what to show).
|
|
10
|
+
* The heavy lifting — computing the sun direction, enabling Cesium's sun /
|
|
11
|
+
* shadows, and building the dome geometry — happens in CesiumOverlay, which
|
|
12
|
+
* reads this state and writes the resolved {@link SolarSunInfo} back here for
|
|
13
|
+
* the readout panel.
|
|
14
|
+
*
|
|
15
|
+
* Solar study requires Cesium (it renders the model + OSM context with mutual
|
|
16
|
+
* shadows), so the UI turns Cesium on when the study is enabled.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import type { StateCreator } from 'zustand';
|
|
20
|
+
|
|
21
|
+
/** Resolved solar readout for the currently studied instant + site. */
|
|
22
|
+
export interface SolarSunInfo {
|
|
23
|
+
/** Site latitude in degrees (north positive), from the model georeference. */
|
|
24
|
+
latitude: number;
|
|
25
|
+
/** Site longitude in degrees (east positive). */
|
|
26
|
+
longitude: number;
|
|
27
|
+
/** Sun azimuth in degrees clockwise from true north. */
|
|
28
|
+
azimuth: number;
|
|
29
|
+
/** Sun altitude in degrees above the horizon (negative below). */
|
|
30
|
+
altitude: number;
|
|
31
|
+
/** Sunrise epoch ms, or null (polar night / midnight sun). */
|
|
32
|
+
sunriseMs: number | null;
|
|
33
|
+
/** Sunset epoch ms, or null. */
|
|
34
|
+
sunsetMs: number | null;
|
|
35
|
+
/** Solar-noon epoch ms. */
|
|
36
|
+
solarNoonMs: number;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** Which dimension the animation sweep advances. */
|
|
40
|
+
export type SolarSweepMode = 'day' | 'year';
|
|
41
|
+
|
|
42
|
+
export interface SolarSlice {
|
|
43
|
+
/** Whether the sun-path / shadow study is active. */
|
|
44
|
+
solarEnabled: boolean;
|
|
45
|
+
/** Studied instant as epoch milliseconds (UTC). */
|
|
46
|
+
solarDateMs: number;
|
|
47
|
+
/** Draw the 3D sun-path dome (analemmas, day arc, graticule). */
|
|
48
|
+
solarShowSunPath: boolean;
|
|
49
|
+
/** Render real cast shadows (model ↔ OSM context) via Cesium. */
|
|
50
|
+
solarShowShadows: boolean;
|
|
51
|
+
/** Resolved sun position/times for the readout panel; null until computed. */
|
|
52
|
+
solarSunInfo: SolarSunInfo | null;
|
|
53
|
+
/**
|
|
54
|
+
* Unit vector toward the sun in viewer/world space (Y-up), derived from the
|
|
55
|
+
* studied instant + site georeference. Drives the WebGPU renderer's sun
|
|
56
|
+
* (lighting + procedural sky) so daylight reads identically with and
|
|
57
|
+
* without the Cesium context. Null when the study is off or the site is
|
|
58
|
+
* unknown.
|
|
59
|
+
*/
|
|
60
|
+
solarSunDirection: [number, number, number] | null;
|
|
61
|
+
/**
|
|
62
|
+
* Display times in local solar time derived from the site longitude
|
|
63
|
+
* (15°/hour) instead of UTC. This is civil-timezone-agnostic on purpose —
|
|
64
|
+
* sun-path studies care about solar time, and a longitude offset needs no
|
|
65
|
+
* timezone database or DST rules.
|
|
66
|
+
*/
|
|
67
|
+
solarUseLocalTime: boolean;
|
|
68
|
+
/** Whether the animation sweep is playing. */
|
|
69
|
+
solarPlaying: boolean;
|
|
70
|
+
/** Which dimension the sweep advances (time-of-day vs day-of-year). */
|
|
71
|
+
solarSweepMode: SolarSweepMode;
|
|
72
|
+
|
|
73
|
+
setSolarEnabled: (enabled: boolean) => void;
|
|
74
|
+
toggleSolar: () => void;
|
|
75
|
+
setSolarDateMs: (ms: number) => void;
|
|
76
|
+
setSolarShowSunPath: (show: boolean) => void;
|
|
77
|
+
setSolarShowShadows: (show: boolean) => void;
|
|
78
|
+
setSolarSunInfo: (info: SolarSunInfo | null) => void;
|
|
79
|
+
setSolarSunDirection: (dir: [number, number, number] | null) => void;
|
|
80
|
+
setSolarUseLocalTime: (use: boolean) => void;
|
|
81
|
+
setSolarPlaying: (playing: boolean) => void;
|
|
82
|
+
toggleSolarPlaying: () => void;
|
|
83
|
+
setSolarSweepMode: (mode: SolarSweepMode) => void;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/** Default studied instant: a bright equinox midday so the dome reads well. */
|
|
87
|
+
function defaultSolarDateMs(): number {
|
|
88
|
+
return Date.UTC(new Date().getUTCFullYear(), 2, 20, 12, 0, 0);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export const createSolarSlice: StateCreator<SolarSlice, [], [], SolarSlice> = (set) => ({
|
|
92
|
+
solarEnabled: false,
|
|
93
|
+
solarDateMs: defaultSolarDateMs(),
|
|
94
|
+
solarShowSunPath: true,
|
|
95
|
+
solarShowShadows: true,
|
|
96
|
+
solarSunInfo: null,
|
|
97
|
+
solarSunDirection: null,
|
|
98
|
+
// Default to the site's local solar time (derived from longitude): for a
|
|
99
|
+
// sun-path study "9am" should mean 9am at the site, not UTC.
|
|
100
|
+
solarUseLocalTime: true,
|
|
101
|
+
solarPlaying: false,
|
|
102
|
+
solarSweepMode: 'day',
|
|
103
|
+
|
|
104
|
+
setSolarEnabled: (enabled) =>
|
|
105
|
+
set(enabled
|
|
106
|
+
? { solarEnabled: true }
|
|
107
|
+
: { solarEnabled: false, solarSunInfo: null, solarSunDirection: null, solarPlaying: false }),
|
|
108
|
+
toggleSolar: () =>
|
|
109
|
+
set((s) => (s.solarEnabled
|
|
110
|
+
? { solarEnabled: false, solarSunInfo: null, solarSunDirection: null, solarPlaying: false }
|
|
111
|
+
: { solarEnabled: true })),
|
|
112
|
+
setSolarDateMs: (ms) => set({ solarDateMs: ms }),
|
|
113
|
+
setSolarShowSunPath: (show) => set({ solarShowSunPath: show }),
|
|
114
|
+
setSolarShowShadows: (show) => set({ solarShowShadows: show }),
|
|
115
|
+
setSolarSunInfo: (info) => set({ solarSunInfo: info }),
|
|
116
|
+
setSolarSunDirection: (dir) => set({ solarSunDirection: dir }),
|
|
117
|
+
setSolarUseLocalTime: (use) => set({ solarUseLocalTime: use }),
|
|
118
|
+
setSolarPlaying: (playing) => set({ solarPlaying: playing }),
|
|
119
|
+
toggleSolarPlaying: () => set((s) => ({ solarPlaying: !s.solarPlaying })),
|
|
120
|
+
setSolarSweepMode: (mode) => set({ solarSweepMode: mode }),
|
|
121
|
+
});
|
|
@@ -25,14 +25,6 @@ describe('VisibilitySlice', () => {
|
|
|
25
25
|
});
|
|
26
26
|
|
|
27
27
|
describe('initial state', () => {
|
|
28
|
-
it('should have empty hiddenEntitiesByModel', () => {
|
|
29
|
-
assert.strictEqual(state.hiddenEntitiesByModel.size, 0);
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
it('should have empty isolatedEntitiesByModel', () => {
|
|
33
|
-
assert.strictEqual(state.isolatedEntitiesByModel.size, 0);
|
|
34
|
-
});
|
|
35
|
-
|
|
36
28
|
it('should initialise type visibility from persisted preferences', () => {
|
|
37
29
|
const persisted = getPersistedTypeVisibility();
|
|
38
30
|
assert.strictEqual(state.typeVisibility.spaces, persisted.spaces);
|
|
@@ -44,14 +36,6 @@ describe('VisibilitySlice', () => {
|
|
|
44
36
|
});
|
|
45
37
|
|
|
46
38
|
describe('multi-model visibility: hideEntityInModel', () => {
|
|
47
|
-
it('should hide entity in specific model', () => {
|
|
48
|
-
state.hideEntityInModel('model-1', 123);
|
|
49
|
-
|
|
50
|
-
const hidden = state.hiddenEntitiesByModel.get('model-1');
|
|
51
|
-
assert.ok(hidden);
|
|
52
|
-
assert.ok(hidden.has(123));
|
|
53
|
-
});
|
|
54
|
-
|
|
55
39
|
it('should create new set for model if not exists', () => {
|
|
56
40
|
state.hideEntityInModel('model-1', 100);
|
|
57
41
|
state.hideEntityInModel('model-1', 200);
|
|
@@ -209,13 +193,6 @@ describe('VisibilitySlice', () => {
|
|
|
209
193
|
});
|
|
210
194
|
});
|
|
211
195
|
|
|
212
|
-
describe('legacy visibility: hideEntity', () => {
|
|
213
|
-
it('should hide entity', () => {
|
|
214
|
-
state.hideEntity(123);
|
|
215
|
-
assert.ok(state.hiddenEntities.has(123));
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
|
|
219
196
|
describe('legacy visibility: showEntity', () => {
|
|
220
197
|
it('should show hidden entity', () => {
|
|
221
198
|
state.hideEntity(123);
|
|
@@ -286,28 +263,21 @@ describe('VisibilitySlice', () => {
|
|
|
286
263
|
});
|
|
287
264
|
|
|
288
265
|
describe('type visibility: toggleTypeVisibility', () => {
|
|
289
|
-
it('should toggle
|
|
290
|
-
const
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
assert.strictEqual(state.typeVisibility.site, !initial);
|
|
305
|
-
});
|
|
306
|
-
|
|
307
|
-
it('should toggle ifcAnnotations visibility', () => {
|
|
308
|
-
const initial = state.typeVisibility.ifcAnnotations;
|
|
309
|
-
state.toggleTypeVisibility('ifcAnnotations');
|
|
310
|
-
assert.strictEqual(state.typeVisibility.ifcAnnotations, !initial);
|
|
266
|
+
it('should toggle each type key independently', () => {
|
|
267
|
+
const keys = ['spaces', 'openings', 'site', 'ifcAnnotations', 'ifcGrid'] as const;
|
|
268
|
+
for (const key of keys) {
|
|
269
|
+
const before = { ...state.typeVisibility };
|
|
270
|
+
state.toggleTypeVisibility(key);
|
|
271
|
+
assert.strictEqual(state.typeVisibility[key], !before[key], `toggle ${key}`);
|
|
272
|
+
for (const other of keys) {
|
|
273
|
+
if (other === key) continue;
|
|
274
|
+
assert.strictEqual(
|
|
275
|
+
state.typeVisibility[other],
|
|
276
|
+
before[other],
|
|
277
|
+
`toggling ${key} must not change ${other}`,
|
|
278
|
+
);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
311
281
|
});
|
|
312
282
|
|
|
313
283
|
it('resetTypeVisibility restores semantic defaults', () => {
|
|
@@ -30,6 +30,12 @@ export interface VisibilitySlice {
|
|
|
30
30
|
/** 3D view mode for the Model/Types switch (#957 follow-up). 'model' shows
|
|
31
31
|
* placed occurrences (default); 'types' shows the type-library shapes. */
|
|
32
32
|
typeViewMode: TypeViewMode;
|
|
33
|
+
/** True when the rendered geometry contains any type-library geometry
|
|
34
|
+
* (geometryClass 1 = orphan type, 2 = instanced type) — i.e. the Model/Types
|
|
35
|
+
* switch has something to reveal in "Types" mode. Derived from the merged
|
|
36
|
+
* mesh set by ViewportContainer; most models carry only occurrence geometry
|
|
37
|
+
* (class 0), so the switch stays hidden for them. */
|
|
38
|
+
hasTypeGeometry: boolean;
|
|
33
39
|
|
|
34
40
|
// State (multi-model)
|
|
35
41
|
/** Hidden entities per model */
|
|
@@ -58,6 +64,10 @@ export interface VisibilitySlice {
|
|
|
58
64
|
resetTypeVisibility: () => void;
|
|
59
65
|
/** Set the Model/Types 3D view mode (and persist). */
|
|
60
66
|
setTypeViewMode: (mode: TypeViewMode) => void;
|
|
67
|
+
/** Set whether the current geometry contains type-library geometry — drives
|
|
68
|
+
* whether the Model/Types switch renders at all. Runtime-only (not persisted);
|
|
69
|
+
* re-derived from geometry on every load. */
|
|
70
|
+
setHasTypeGeometry: (value: boolean) => void;
|
|
61
71
|
/** Set all hidden entities at once (for BCF viewpoint application) */
|
|
62
72
|
setHiddenEntities: (ids: Set<number>) => void;
|
|
63
73
|
/** Set all isolated entities at once (for BCF viewpoint with defaultVisibility=false) */
|
|
@@ -92,6 +102,8 @@ export const createVisibilitySlice: StateCreator<VisibilitySlice, [], [], Visibi
|
|
|
92
102
|
// Read persisted toggles fresh so the user's choices survive reloads.
|
|
93
103
|
typeVisibility: getPersistedTypeVisibility(),
|
|
94
104
|
typeViewMode: getPersistedTypeViewMode(),
|
|
105
|
+
// Derived from geometry at load time — no model is open yet, so default false.
|
|
106
|
+
hasTypeGeometry: false,
|
|
95
107
|
|
|
96
108
|
// Initial state (multi-model)
|
|
97
109
|
hiddenEntitiesByModel: new Map(),
|
|
@@ -242,6 +254,14 @@ export const createVisibilitySlice: StateCreator<VisibilitySlice, [], [], Visibi
|
|
|
242
254
|
return { typeViewMode: mode };
|
|
243
255
|
}),
|
|
244
256
|
|
|
257
|
+
setHasTypeGeometry: (value) => set((state) => (
|
|
258
|
+
// Return the SAME state reference when unchanged — a fresh `{}` would still
|
|
259
|
+
// merge into a new state object and notify every subscriber (incl. the
|
|
260
|
+
// whole-state useSyncExternalStore in ViewportContainer). Same ref → Zustand
|
|
261
|
+
// skips the notification entirely.
|
|
262
|
+
state.hasTypeGeometry === value ? state : { hasTypeGeometry: value }
|
|
263
|
+
)),
|
|
264
|
+
|
|
245
265
|
// Actions (multi-model)
|
|
246
266
|
hideEntityInModel: (modelId, expressId) => set((state) => {
|
|
247
267
|
const newMap = new Map(state.hiddenEntitiesByModel);
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
import type { MeshData } from '@ifc-lite/geometry';
|
|
14
14
|
import type { IfcDataStore } from '@ifc-lite/parser';
|
|
15
15
|
import { buildSpatialIndexAsync } from '@ifc-lite/spatial';
|
|
16
|
-
import { useViewerStore } from '../store.js';
|
|
16
|
+
import { useViewerStore } from '../store/index.js';
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Build a spatial index in the background (time-sliced, non-blocking)
|