@selvajs/selva 4.7.0-beta.3 → 4.7.0-beta.4

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.
Files changed (380) hide show
  1. package/build/client/_app/immutable/chunks/{CP-uwdvv.js → 7KmSQDNg.js} +1 -1
  2. package/build/client/_app/immutable/chunks/7KmSQDNg.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/7KmSQDNg.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{98yDWdDP2.js → BEq7tnZv2.js} +1 -1
  5. package/build/client/_app/immutable/chunks/BEq7tnZv2.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/BEq7tnZv2.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/BPtz4qQZ2.js +1 -0
  8. package/build/client/_app/immutable/chunks/BPtz4qQZ2.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/BPtz4qQZ2.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{DjxaiTC2.js → BYGjvVR1.js} +1 -1
  11. package/build/client/_app/immutable/chunks/BYGjvVR1.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/BYGjvVR1.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{mHHlwTIC.js → CF05CSCN.js} +1 -1
  14. package/build/client/_app/immutable/chunks/CF05CSCN.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/CF05CSCN.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/CVdpVA5-2.js +1 -0
  17. package/build/client/_app/immutable/chunks/CVdpVA5-2.js.br +2 -0
  18. package/build/client/_app/immutable/chunks/CVdpVA5-2.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/DIVddIqF.js +2 -0
  20. package/build/client/_app/immutable/chunks/DIVddIqF.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/DIVddIqF.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/DXTlR_fj.js +5462 -0
  23. package/build/client/_app/immutable/chunks/DXTlR_fj.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/DXTlR_fj.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/{C0dvFiQZ2.js → Dylhiw0P2.js} +1 -1
  26. package/build/client/_app/immutable/chunks/Dylhiw0P2.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/Dylhiw0P2.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/{5jv0Mvxq.js → blphzly5.js} +1 -1
  29. package/build/client/_app/immutable/chunks/blphzly5.js.br +2 -0
  30. package/build/client/_app/immutable/chunks/blphzly5.js.gz +0 -0
  31. package/build/client/_app/immutable/entry/{app.nA6FWjJw.js → app.DVv5Cs5X.js} +2 -2
  32. package/build/client/_app/immutable/entry/app.DVv5Cs5X.js.br +0 -0
  33. package/build/client/_app/immutable/entry/app.DVv5Cs5X.js.gz +0 -0
  34. package/build/client/_app/immutable/entry/start.44XxKImR.js +1 -0
  35. package/build/client/_app/immutable/entry/start.44XxKImR.js.br +1 -0
  36. package/build/client/_app/immutable/entry/start.44XxKImR.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/{1.Be6vSNB-.js → 1.DEfTriL7.js} +1 -1
  38. package/build/client/_app/immutable/nodes/1.DEfTriL7.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/1.DEfTriL7.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{11.C0Q9fRO2.js → 11.BcXDrSue.js} +1 -1
  41. package/build/client/_app/immutable/nodes/11.BcXDrSue.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/11.BcXDrSue.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{13.CedLh4LC.js → 13.otRhkMKy.js} +1 -1
  44. package/build/client/_app/immutable/nodes/13.otRhkMKy.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/13.otRhkMKy.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/{14.kH0zVFuq.js → 14.C0FzqRRX.js} +1 -1
  47. package/build/client/_app/immutable/nodes/14.C0FzqRRX.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/14.C0FzqRRX.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/{15.CrGWXR_b.js → 15.rIiFqYaN.js} +1 -1
  50. package/build/client/_app/immutable/nodes/15.rIiFqYaN.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/15.rIiFqYaN.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/{16.BpzwC_7R.js → 16.C7jD28xO.js} +1 -1
  53. package/build/client/_app/immutable/nodes/16.C7jD28xO.js.br +0 -0
  54. package/build/client/_app/immutable/nodes/16.C7jD28xO.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/{17.BAd6cLcK.js → 17.BWcO6PBP.js} +1 -1
  56. package/build/client/_app/immutable/nodes/17.BWcO6PBP.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/17.BWcO6PBP.js.gz +0 -0
  58. package/build/client/_app/immutable/nodes/{19.C2M0Gsw8.js → 19.Ce2gGmlG.js} +1 -1
  59. package/build/client/_app/immutable/nodes/19.Ce2gGmlG.js.br +0 -0
  60. package/build/client/_app/immutable/nodes/19.Ce2gGmlG.js.gz +0 -0
  61. package/build/client/_app/immutable/nodes/{2.DCOz2pgm.js → 2.CY20qKG8.js} +1 -1
  62. package/build/client/_app/immutable/nodes/2.CY20qKG8.js.br +0 -0
  63. package/build/client/_app/immutable/nodes/2.CY20qKG8.js.gz +0 -0
  64. package/build/client/_app/immutable/nodes/20.C9y4Pq5e.js +12 -0
  65. package/build/client/_app/immutable/nodes/20.C9y4Pq5e.js.br +0 -0
  66. package/build/client/_app/immutable/nodes/20.C9y4Pq5e.js.gz +0 -0
  67. package/build/client/_app/immutable/nodes/{21.BYQk6N76.js → 21.BaNiUOuW.js} +1 -1
  68. package/build/client/_app/immutable/nodes/21.BaNiUOuW.js.br +0 -0
  69. package/build/client/_app/immutable/nodes/21.BaNiUOuW.js.gz +0 -0
  70. package/build/client/_app/immutable/nodes/{23.awLvoHTA.js → 23.Cs1CpKOT.js} +1 -1
  71. package/build/client/_app/immutable/nodes/23.Cs1CpKOT.js.br +0 -0
  72. package/build/client/_app/immutable/nodes/23.Cs1CpKOT.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/{24.C4Mj39LU.js → 24.BDPW7D3H.js} +1 -1
  74. package/build/client/_app/immutable/nodes/24.BDPW7D3H.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/24.BDPW7D3H.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/{27.wW5vDHDP.js → 27.xwzED8a8.js} +1 -1
  77. package/build/client/_app/immutable/nodes/27.xwzED8a8.js.br +0 -0
  78. package/build/client/_app/immutable/nodes/27.xwzED8a8.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/{28.B5qVpudr.js → 28.3i_My3fJ.js} +1 -1
  80. package/build/client/_app/immutable/nodes/28.3i_My3fJ.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/28.3i_My3fJ.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/{29.Cd65rWw6.js → 29.CEcPe16D.js} +1 -1
  83. package/build/client/_app/immutable/nodes/29.CEcPe16D.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/29.CEcPe16D.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/{3.BtG32r4S.js → 3.DIECCgcY.js} +1 -1
  86. package/build/client/_app/immutable/nodes/3.DIECCgcY.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/3.DIECCgcY.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/{30.DSQJo5j4.js → 30.BRsGl_6g.js} +1 -1
  89. package/build/client/_app/immutable/nodes/30.BRsGl_6g.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/30.BRsGl_6g.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/{5.CFazNCMc.js → 5.2RlfC8B_.js} +1 -1
  92. package/build/client/_app/immutable/nodes/5.2RlfC8B_.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/5.2RlfC8B_.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/{6.Ds4bdzGT.js → 6.C6BKkT5y.js} +1 -1
  95. package/build/client/_app/immutable/nodes/6.C6BKkT5y.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/6.C6BKkT5y.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/{7.DobLGX2q.js → 7.CirOm0bn.js} +1 -1
  98. package/build/client/_app/immutable/nodes/7.CirOm0bn.js.br +0 -0
  99. package/build/client/_app/immutable/nodes/7.CirOm0bn.js.gz +0 -0
  100. package/build/client/_app/immutable/nodes/{8.ymwDCA4x.js → 8.FMalYuF8.js} +1 -1
  101. package/build/client/_app/immutable/nodes/8.FMalYuF8.js.br +0 -0
  102. package/build/client/_app/immutable/nodes/8.FMalYuF8.js.gz +0 -0
  103. package/build/client/_app/immutable/nodes/{9.DjD6fOLl.js → 9.CZ8pmye1.js} +1 -1
  104. package/build/client/_app/immutable/nodes/9.CZ8pmye1.js.br +0 -0
  105. package/build/client/_app/immutable/nodes/9.CZ8pmye1.js.gz +0 -0
  106. package/build/client/_app/version.json +1 -1
  107. package/build/client/_app/version.json.br +0 -0
  108. package/build/client/_app/version.json.gz +0 -0
  109. package/build/handler.js +4 -4
  110. package/build/index.js +4 -4
  111. package/build/server/chunks/chunks/{AppHeader.js-BfbJ9Wvh.js → AppHeader.js-DPeXjmPi.js} +3 -3
  112. package/build/server/chunks/chunks/{AppHeader.js-BfbJ9Wvh.js.map → AppHeader.js-DPeXjmPi.js.map} +1 -1
  113. package/build/server/chunks/chunks/{SideNav.js-CioG2cH9.js → SideNav.js-Dp1EFlHe.js} +2 -2
  114. package/build/server/chunks/chunks/{SideNav.js-CioG2cH9.js.map → SideNav.js-Dp1EFlHe.js.map} +1 -1
  115. package/build/server/chunks/chunks/{UserChip.js-2mLw8DG-.js → UserChip.js-JYI3D9Nt.js} +3 -3
  116. package/build/server/chunks/chunks/{UserChip.js-2mLw8DG-.js.map → UserChip.js-JYI3D9Nt.js.map} +1 -1
  117. package/build/server/chunks/chunks/{admin-auth.server.js-CpJLI73r.js → admin-auth.server.js-DBasnefm.js} +2 -2
  118. package/build/server/chunks/chunks/{admin-auth.server.js-CpJLI73r.js.map → admin-auth.server.js-DBasnefm.js.map} +1 -1
  119. package/build/server/chunks/chunks/admin-config.js-PsmeJe8H.js +3 -0
  120. package/build/server/chunks/chunks/admin-config.js-PsmeJe8H.js.map +1 -0
  121. package/build/server/chunks/chunks/{chunk-3SEQKFGD.js-hLBC6n0U.js → chunk-6TMSTNHN.js-3Bz2KNTb.js} +3 -3
  122. package/build/server/chunks/chunks/{chunk-3SEQKFGD.js-hLBC6n0U.js.map → chunk-6TMSTNHN.js-3Bz2KNTb.js.map} +1 -1
  123. package/build/server/chunks/chunks/chunk-NVMSD4CC.js-BgY8vvUs.js +2919 -0
  124. package/build/server/chunks/chunks/chunk-NVMSD4CC.js-BgY8vvUs.js.map +1 -0
  125. package/build/server/chunks/chunks/{client.js-0QVINoWt.js → client.js-Bpq0VuTu.js} +2 -2
  126. package/build/server/chunks/chunks/{client.js-0QVINoWt.js.map → client.js-Bpq0VuTu.js.map} +1 -1
  127. package/build/server/chunks/chunks/{clientCache.server.js-DnMvUcHP.js → clientCache.server.js-C9I-Kcfi.js} +4 -4
  128. package/build/server/chunks/chunks/{clientCache.server.js-DnMvUcHP.js.map → clientCache.server.js-C9I-Kcfi.js.map} +1 -1
  129. package/build/server/chunks/chunks/{compute.js-C2CcEWW8.js → compute.js-DGTy3YjO.js} +4 -4
  130. package/build/server/chunks/chunks/compute.js-DGTy3YjO.js.map +1 -0
  131. package/build/server/chunks/chunks/{computeLimits.js-vDIRMhzi.js → computeLimits.js-BxiPi8XP.js} +2 -2
  132. package/build/server/chunks/chunks/{computeLimits.js-vDIRMhzi.js.map → computeLimits.js-BxiPi8XP.js.map} +1 -1
  133. package/build/server/chunks/chunks/{evictChangedServers.js-Cym-2rnu.js → evictChangedServers.js-jOAazwbs.js} +2 -2
  134. package/build/server/chunks/chunks/{evictChangedServers.js-Cym-2rnu.js.map → evictChangedServers.js-jOAazwbs.js.map} +1 -1
  135. package/build/server/chunks/chunks/forms.js-BPoi2g-_.js +2 -0
  136. package/build/server/chunks/chunks/forms.js-BPoi2g-_.js.map +1 -0
  137. package/build/server/chunks/chunks/internal.js-WBVEU67X.js.map +1 -1
  138. package/build/server/chunks/chunks/{internal2.js-DcssKd4i.js → internal2.js-Bh_dm6kd.js} +3 -3
  139. package/build/server/chunks/chunks/{internal2.js-DcssKd4i.js.map → internal2.js-Bh_dm6kd.js.map} +1 -1
  140. package/build/server/chunks/chunks/navigation.js-BPoi2g-_.js +2 -0
  141. package/build/server/chunks/chunks/navigation.js-BPoi2g-_.js.map +1 -0
  142. package/build/server/chunks/chunks/{package.js-q_o0ZSj1.js → package.js-JTfJ56QW.js} +13 -2
  143. package/build/server/chunks/chunks/package.js-JTfJ56QW.js.map +1 -0
  144. package/build/server/chunks/chunks/{state.js-CCKu0CaC.js → state.js-DRIvCY3h.js} +2 -2
  145. package/build/server/chunks/chunks/{state.js-CCKu0CaC.js.map → state.js-DRIvCY3h.js.map} +1 -1
  146. package/build/server/chunks/chunks/{stores.js-Ce8w77Gm.js → stores.js-BB7k-hH4.js} +2 -2
  147. package/build/server/chunks/chunks/{stores.js-Ce8w77Gm.js.map → stores.js-BB7k-hH4.js.map} +1 -1
  148. package/build/server/chunks/chunks/visualization-BIHTM2KJ.js-tLehqRSm.js +21 -0
  149. package/build/server/chunks/chunks/visualization-BIHTM2KJ.js-tLehqRSm.js.map +1 -0
  150. package/build/server/chunks/entries/endpoints/admin/api/compute/{_server.ts.js-CGQtDXgk.js → _server.ts.js-C_ZbbcKO.js} +6 -6
  151. package/build/server/chunks/entries/endpoints/admin/api/compute/{_server.ts.js-CGQtDXgk.js.map → _server.ts.js-C_ZbbcKO.js.map} +1 -1
  152. package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/assets/_kind_/{_server.ts.js-Dud1t6SV.js → _server.ts.js-B8BM3nKO.js} +4 -4
  153. package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/assets/_kind_/{_server.ts.js-Dud1t6SV.js.map → _server.ts.js-B8BM3nKO.js.map} +1 -1
  154. package/build/server/chunks/entries/endpoints/api/compute/{_server.ts.js-CIagEbAJ.js → _server.ts.js-M1fUGfJP.js} +0 -0
  155. package/build/server/chunks/entries/endpoints/api/compute/{_server.ts.js-CIagEbAJ.js.map → _server.ts.js-M1fUGfJP.js.map} +1 -1
  156. package/build/server/chunks/entries/endpoints/api/compute/schema/{_server.ts.js-B_OO7fR2.js → _server.ts.js-GXDupsWm.js} +5 -5
  157. package/build/server/chunks/entries/endpoints/api/compute/schema/{_server.ts.js-B_OO7fR2.js.map → _server.ts.js-GXDupsWm.js.map} +1 -1
  158. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/{_server.ts.js-B36u-OKF.js → _server.ts.js-Do6zqNwU.js} +4 -4
  159. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/{_server.ts.js-B36u-OKF.js.map → _server.ts.js-Do6zqNwU.js.map} +1 -1
  160. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/_filename_/{_server.ts.js-DWDGwsDg.js → _server.ts.js-BG-xa8K0.js} +4 -4
  161. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/_filename_/{_server.ts.js-DWDGwsDg.js.map → _server.ts.js-BG-xa8K0.js.map} +1 -1
  162. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/{_server.ts.js-BSb3_snz.js → _server.ts.js-DLZ0bJbO.js} +4 -4
  163. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/{_server.ts.js-BSb3_snz.js.map → _server.ts.js-DLZ0bJbO.js.map} +1 -1
  164. package/build/server/chunks/entries/endpoints/api/definitions/{_server.ts.js-C5S1tEiY.js → _server.ts.js-Nd67z7Ul.js} +4 -4
  165. package/build/server/chunks/entries/endpoints/api/definitions/{_server.ts.js-C5S1tEiY.js.map → _server.ts.js-Nd67z7Ul.js.map} +1 -1
  166. package/build/server/chunks/entries/endpoints/api/org/compute/{_server.ts.js-DKhLOB_A.js → _server.ts.js-Cb3PJwZ1.js} +6 -6
  167. package/build/server/chunks/entries/endpoints/api/org/compute/{_server.ts.js-DKhLOB_A.js.map → _server.ts.js-Cb3PJwZ1.js.map} +1 -1
  168. package/build/server/chunks/entries/endpoints/auth/email/callback/{_server.ts.js-DCjY9UXh.js → _server.ts.js-BLbLoQ6f.js} +4 -4
  169. package/build/server/chunks/entries/endpoints/auth/email/callback/{_server.ts.js-DCjY9UXh.js.map → _server.ts.js-BLbLoQ6f.js.map} +1 -1
  170. package/build/server/chunks/entries/endpoints/auth/supabase/callback/{_server.ts.js-BG9aKYc1.js → _server.ts.js-BXmQuVvj.js} +4 -4
  171. package/build/server/chunks/entries/endpoints/auth/supabase/callback/{_server.ts.js-BG9aKYc1.js.map → _server.ts.js-BXmQuVvj.js.map} +1 -1
  172. package/build/server/chunks/entries/{hooks.server.js-XyglROqL.js → hooks.server.js-Bjj2EDCz.js} +4 -4
  173. package/build/server/chunks/entries/{hooks.server.js-XyglROqL.js.map → hooks.server.js-Bjj2EDCz.js.map} +1 -1
  174. package/build/server/chunks/entries/pages/{_error.svelte.js-DiCS9ZOL.js → _error.svelte.js-DWRpiLmd.js} +4 -4
  175. package/build/server/chunks/entries/pages/{_error.svelte.js-DiCS9ZOL.js.map → _error.svelte.js-DWRpiLmd.js.map} +1 -1
  176. package/build/server/chunks/entries/pages/{_page.svelte.js-2vvLdcex.js → _page.svelte.js-nw14XI4h.js} +6 -6
  177. package/build/server/chunks/entries/pages/{_page.svelte.js-2vvLdcex.js.map → _page.svelte.js-nw14XI4h.js.map} +1 -1
  178. package/build/server/chunks/entries/pages/accept-invite/{_page.server.ts.js-CxZpwJjl.js → _page.server.ts.js-Bt4yAkIi.js} +2 -2
  179. package/build/server/chunks/entries/pages/accept-invite/{_page.server.ts.js-CxZpwJjl.js.map → _page.server.ts.js-Bt4yAkIi.js.map} +1 -1
  180. package/build/server/chunks/entries/pages/accept-invite/{_page.svelte.js-D9QFHAsb.js → _page.svelte.js-shC-47yR.js} +4 -4
  181. package/build/server/chunks/entries/pages/accept-invite/{_page.svelte.js-D9QFHAsb.js.map → _page.svelte.js-shC-47yR.js.map} +1 -1
  182. package/build/server/chunks/entries/pages/admin/{_error.svelte.js-GXV5rID_.js → _error.svelte.js-DmBK1tNB.js} +4 -4
  183. package/build/server/chunks/entries/pages/admin/{_error.svelte.js-GXV5rID_.js.map → _error.svelte.js-DmBK1tNB.js.map} +1 -1
  184. package/build/server/chunks/entries/pages/admin/{_layout.svelte.js-DWK57cLF.js → _layout.svelte.js-BnQZ2Iy-.js} +7 -7
  185. package/build/server/chunks/entries/pages/admin/{_layout.svelte.js-DWK57cLF.js.map → _layout.svelte.js-BnQZ2Iy-.js.map} +1 -1
  186. package/build/server/chunks/entries/pages/admin/{_page.server.ts.js-DHyOJHu3.js → _page.server.ts.js-BqXsNjw_.js} +2 -2
  187. package/build/server/chunks/entries/pages/admin/{_page.server.ts.js-DHyOJHu3.js.map → _page.server.ts.js-BqXsNjw_.js.map} +1 -1
  188. package/build/server/chunks/entries/pages/admin/{_page.svelte.js-ZrOgAK44.js → _page.svelte.js-CbnxKkHH.js} +4 -4
  189. package/build/server/chunks/entries/pages/admin/{_page.svelte.js-ZrOgAK44.js.map → _page.svelte.js-CbnxKkHH.js.map} +1 -1
  190. package/build/server/chunks/entries/pages/admin/compute/{_page.svelte.js-Xc5KUiyr.js → _page.svelte.js-Du8Boz9T.js} +3 -3
  191. package/build/server/chunks/entries/pages/admin/compute/{_page.svelte.js-Xc5KUiyr.js.map → _page.svelte.js-Du8Boz9T.js.map} +1 -1
  192. package/build/server/chunks/entries/pages/admin/projects/_id_/{_page.svelte.js-CoN7LVs8.js → _page.svelte.js-D6tOb9S5.js} +3 -3
  193. package/build/server/chunks/entries/pages/admin/projects/_id_/{_page.svelte.js-CoN7LVs8.js.map → _page.svelte.js-D6tOb9S5.js.map} +1 -1
  194. package/build/server/chunks/entries/pages/admin/projects/{_page.svelte.js-C8I9RSSC.js → _page.svelte.js-COB9cKx0.js} +3 -3
  195. package/build/server/chunks/entries/pages/admin/projects/{_page.svelte.js-C8I9RSSC.js.map → _page.svelte.js-COB9cKx0.js.map} +1 -1
  196. package/build/server/chunks/entries/pages/admin/system/{_page.server.ts.js-5x0QUJqa.js → _page.server.ts.js-Bq7uxxR-.js} +3 -3
  197. package/build/server/chunks/entries/pages/admin/system/{_page.server.ts.js-5x0QUJqa.js.map → _page.server.ts.js-Bq7uxxR-.js.map} +1 -1
  198. package/build/server/chunks/entries/pages/admin/system/{_page.svelte.js-CSgpyJ77.js → _page.svelte.js-DtoVK7-K.js} +3 -3
  199. package/build/server/chunks/entries/pages/admin/system/{_page.svelte.js-CSgpyJ77.js.map → _page.svelte.js-DtoVK7-K.js.map} +1 -1
  200. package/build/server/chunks/entries/pages/admin/users/{_page.svelte.js-b_IBx7X1.js → _page.svelte.js-DMfzvW8J.js} +3 -3
  201. package/build/server/chunks/entries/pages/admin/users/{_page.svelte.js-b_IBx7X1.js.map → _page.svelte.js-DMfzvW8J.js.map} +1 -1
  202. package/build/server/chunks/entries/pages/auth/email/sent/{_page.svelte.js-sm6XU5LM.js → _page.svelte.js-CXxAG1xz.js} +4 -4
  203. package/build/server/chunks/entries/pages/auth/email/sent/{_page.svelte.js-sm6XU5LM.js.map → _page.svelte.js-CXxAG1xz.js.map} +1 -1
  204. package/build/server/chunks/entries/pages/auth/email/start/{_page.server.ts.js-BHpJppCP.js → _page.server.ts.js-DpzMyA3w.js} +2 -2
  205. package/build/server/chunks/entries/pages/auth/email/start/{_page.server.ts.js-BHpJppCP.js.map → _page.server.ts.js-DpzMyA3w.js.map} +1 -1
  206. package/build/server/chunks/entries/pages/library/_guid_/{_page.server.ts.js-D7rAHAZH.js → _page.server.ts.js-CECsYZWP.js} +3 -3
  207. package/build/server/chunks/entries/pages/library/_guid_/{_page.server.ts.js-D7rAHAZH.js.map → _page.server.ts.js-CECsYZWP.js.map} +1 -1
  208. package/build/server/chunks/entries/pages/library/_guid_/{_page.svelte.js-QmIuEZ6d.js → _page.svelte.js-DaCwd-Yj.js} +9 -8
  209. package/build/server/chunks/entries/pages/library/_guid_/{_page.svelte.js-QmIuEZ6d.js.map → _page.svelte.js-DaCwd-Yj.js.map} +1 -1
  210. package/build/server/chunks/entries/pages/library/{_page.svelte.js-BBecVQfU.js → _page.svelte.js-B4Nzrzfy.js} +6 -6
  211. package/build/server/chunks/entries/pages/library/{_page.svelte.js-BBecVQfU.js.map → _page.svelte.js-B4Nzrzfy.js.map} +1 -1
  212. package/build/server/chunks/entries/pages/login/{_page.server.ts.js-Zrm-wLis.js → _page.server.ts.js-CtQ4IGT7.js} +2 -2
  213. package/build/server/chunks/entries/pages/login/{_page.server.ts.js-Zrm-wLis.js.map → _page.server.ts.js-CtQ4IGT7.js.map} +1 -1
  214. package/build/server/chunks/entries/pages/login/{_page.svelte.js-mB5w-Owi.js → _page.svelte.js-Y6Yl4z9a.js} +4 -4
  215. package/build/server/chunks/entries/pages/login/{_page.svelte.js-mB5w-Owi.js.map → _page.svelte.js-Y6Yl4z9a.js.map} +1 -1
  216. package/build/server/chunks/entries/pages/logout/{_page.server.ts.js-DwVfN95n.js → _page.server.ts.js-xm3Vp1lV.js} +2 -2
  217. package/build/server/chunks/entries/pages/logout/{_page.server.ts.js-DwVfN95n.js.map → _page.server.ts.js-xm3Vp1lV.js.map} +1 -1
  218. package/build/server/chunks/entries/pages/projects/{_layout.svelte.js-B4At_98Y.js → _layout.svelte.js--dRe-afl.js} +6 -6
  219. package/build/server/chunks/entries/pages/projects/{_layout.svelte.js-B4At_98Y.js.map → _layout.svelte.js--dRe-afl.js.map} +1 -1
  220. package/build/server/chunks/entries/pages/projects/{_page.svelte.js-CWVFHh-G.js → _page.svelte.js-Db6fcqq1.js} +4 -4
  221. package/build/server/chunks/entries/pages/projects/{_page.svelte.js-CWVFHh-G.js.map → _page.svelte.js-Db6fcqq1.js.map} +1 -1
  222. package/build/server/chunks/entries/pages/setup/{_page.server.ts.js-BmWf9JNV.js → _page.server.ts.js-BR-dzHN4.js} +2 -2
  223. package/build/server/chunks/entries/pages/setup/{_page.server.ts.js-BmWf9JNV.js.map → _page.server.ts.js-BR-dzHN4.js.map} +1 -1
  224. package/build/server/chunks/entries/pages/setup/{_page.svelte.js-b-ulOSEP.js → _page.svelte.js-v-m0SHvj.js} +4 -4
  225. package/build/server/chunks/entries/pages/setup/{_page.svelte.js-b-ulOSEP.js.map → _page.svelte.js-v-m0SHvj.js.map} +1 -1
  226. package/build/server/chunks/entries/pages/team/{_layout.svelte.js-BvrC26--.js → _layout.svelte.js-BUcQyc61.js} +8 -8
  227. package/build/server/chunks/entries/pages/team/{_layout.svelte.js-BvrC26--.js.map → _layout.svelte.js-BUcQyc61.js.map} +1 -1
  228. package/build/server/chunks/entries/pages/team/compute/{_page.svelte.js-C9_52_y0.js → _page.svelte.js-Czydk6by.js} +4 -4
  229. package/build/server/chunks/entries/pages/team/compute/{_page.svelte.js-C9_52_y0.js.map → _page.svelte.js-Czydk6by.js.map} +1 -1
  230. package/build/server/chunks/entries/pages/team/members/{_page.svelte.js-BQJjsfNw.js → _page.svelte.js-CKin7PK3.js} +3 -3
  231. package/build/server/chunks/entries/pages/team/members/{_page.svelte.js-BQJjsfNw.js.map → _page.svelte.js-CKin7PK3.js.map} +1 -1
  232. package/build/server/chunks/entries/pages/team/projects/{_page.svelte.js-D309SyRZ.js → _page.svelte.js-DsISYtRg.js} +3 -3
  233. package/build/server/chunks/entries/pages/team/projects/{_page.svelte.js-D309SyRZ.js.map → _page.svelte.js-DsISYtRg.js.map} +1 -1
  234. package/build/server/chunks/entries/pages/team/reclaim/{_page.svelte.js-Cr2oIwjO.js → _page.svelte.js-D9V8gXac.js} +3 -3
  235. package/build/server/chunks/entries/pages/team/reclaim/{_page.svelte.js-Cr2oIwjO.js.map → _page.svelte.js-D9V8gXac.js.map} +1 -1
  236. package/build/server/chunks/{handler-BV0yMUrL.js → handler-xpfg6e-f.js} +3 -3
  237. package/build/server/chunks/{handler-BV0yMUrL.js.map → handler-xpfg6e-f.js.map} +1 -1
  238. package/build/server/chunks/{index.js-DYSFX7_4.js → index.js-BcDJb77u.js} +2 -2
  239. package/build/server/chunks/{index.js-DYSFX7_4.js.map → index.js-BcDJb77u.js.map} +1 -1
  240. package/build/server/chunks/{manifest.js-Dr8Qybxj.js → manifest.js-Djr-18fd.js} +38 -38
  241. package/build/server/chunks/{manifest.js-Dr8Qybxj.js.map → manifest.js-Djr-18fd.js.map} +1 -1
  242. package/build/server/chunks/nodes/{1.js-C-8Rfvho.js → 1.js-Qwdz1CC8.js} +3 -3
  243. package/build/server/chunks/nodes/{1.js-C-8Rfvho.js.map → 1.js-Qwdz1CC8.js.map} +1 -1
  244. package/build/server/chunks/nodes/{11.js-D1t3p85u.js → 11.js-DyFhqyc4.js} +3 -3
  245. package/build/server/chunks/nodes/{11.js-D1t3p85u.js.map → 11.js-DyFhqyc4.js.map} +1 -1
  246. package/build/server/chunks/nodes/{13.js-BUz2QEML.js → 13.js-ivS1Km9a.js} +3 -3
  247. package/build/server/chunks/nodes/{13.js-BUz2QEML.js.map → 13.js-ivS1Km9a.js.map} +1 -1
  248. package/build/server/chunks/nodes/{14.js-Bh_aAo2q.js → 14.js-DF8nXoZC.js} +3 -3
  249. package/build/server/chunks/nodes/{14.js-Bh_aAo2q.js.map → 14.js-DF8nXoZC.js.map} +1 -1
  250. package/build/server/chunks/nodes/{15.js-BeW2j8Pn.js → 15.js-CfihB92I.js} +8 -8
  251. package/build/server/chunks/nodes/{15.js-BeW2j8Pn.js.map → 15.js-CfihB92I.js.map} +1 -1
  252. package/build/server/chunks/nodes/{16.js-DpZU13_f.js → 16.js-30AnGDQF.js} +3 -3
  253. package/build/server/chunks/nodes/{16.js-DpZU13_f.js.map → 16.js-30AnGDQF.js.map} +1 -1
  254. package/build/server/chunks/nodes/{17.js-D6i2VLcE.js → 17.js-BTEGLUwj.js} +3 -3
  255. package/build/server/chunks/nodes/{17.js-D6i2VLcE.js.map → 17.js-BTEGLUwj.js.map} +1 -1
  256. package/build/server/chunks/nodes/{18.js-B0WEVjij.js → 18.js-DFfwIgO9.js} +5 -5
  257. package/build/server/chunks/nodes/{18.js-B0WEVjij.js.map → 18.js-DFfwIgO9.js.map} +1 -1
  258. package/build/server/chunks/nodes/{19.js-DEfe9zf5.js → 19.js-s2v5H_-E.js} +3 -3
  259. package/build/server/chunks/nodes/{19.js-DEfe9zf5.js.map → 19.js-s2v5H_-E.js.map} +1 -1
  260. package/build/server/chunks/nodes/{2.js-Co6yIP6U.js → 2.js-Beis-UKR.js} +3 -3
  261. package/build/server/chunks/nodes/{2.js-Co6yIP6U.js.map → 2.js-Beis-UKR.js.map} +1 -1
  262. package/build/server/chunks/nodes/{20.js-ClLuWFt_.js → 20.js-XXOyBU-M.js} +8 -8
  263. package/build/server/chunks/nodes/{20.js-ClLuWFt_.js.map → 20.js-XXOyBU-M.js.map} +1 -1
  264. package/build/server/chunks/nodes/{21.js-Bo0uqbOG.js → 21.js-mmKZktUK.js} +7 -7
  265. package/build/server/chunks/nodes/{21.js-Bo0uqbOG.js.map → 21.js-mmKZktUK.js.map} +1 -1
  266. package/build/server/chunks/nodes/{22.js-CZoQ-vGw.js → 22.js-WVUfBPzO.js} +5 -5
  267. package/build/server/chunks/nodes/{22.js-CZoQ-vGw.js.map → 22.js-WVUfBPzO.js.map} +1 -1
  268. package/build/server/chunks/nodes/{23.js-D3waTlCu.js → 23.js-C-5MtLa1.js} +3 -3
  269. package/build/server/chunks/nodes/{23.js-D3waTlCu.js.map → 23.js-C-5MtLa1.js.map} +1 -1
  270. package/build/server/chunks/nodes/{24.js-Brn465TS.js → 24.js-BAoMMD0a.js} +7 -7
  271. package/build/server/chunks/nodes/{24.js-Brn465TS.js.map → 24.js-BAoMMD0a.js.map} +1 -1
  272. package/build/server/chunks/nodes/{27.js-B7ISOOoI.js → 27.js-BI-YylUw.js} +3 -3
  273. package/build/server/chunks/nodes/{27.js-B7ISOOoI.js.map → 27.js-BI-YylUw.js.map} +1 -1
  274. package/build/server/chunks/nodes/{28.js-cV9efQ5F.js → 28.js-CbrX0sU8.js} +3 -3
  275. package/build/server/chunks/nodes/{28.js-cV9efQ5F.js.map → 28.js-CbrX0sU8.js.map} +1 -1
  276. package/build/server/chunks/nodes/{29.js-DPR3YsDG.js → 29.js-6jAIILUg.js} +3 -3
  277. package/build/server/chunks/nodes/{29.js-DPR3YsDG.js.map → 29.js-6jAIILUg.js.map} +1 -1
  278. package/build/server/chunks/nodes/{3.js-C7QkwQVS.js → 3.js-BTGDPklb.js} +3 -3
  279. package/build/server/chunks/nodes/{3.js-C7QkwQVS.js.map → 3.js-BTGDPklb.js.map} +1 -1
  280. package/build/server/chunks/nodes/{30.js-abRTzcez.js → 30.js-VMNOzeyu.js} +3 -3
  281. package/build/server/chunks/nodes/{30.js-abRTzcez.js.map → 30.js-VMNOzeyu.js.map} +1 -1
  282. package/build/server/chunks/nodes/{5.js-B1bqOaKM.js → 5.js-C9QDVqtj.js} +3 -3
  283. package/build/server/chunks/nodes/{5.js-B1bqOaKM.js.map → 5.js-C9QDVqtj.js.map} +1 -1
  284. package/build/server/chunks/nodes/{6.js-M_KLp3Ex.js → 6.js-CnEl-9M2.js} +3 -3
  285. package/build/server/chunks/nodes/{6.js-M_KLp3Ex.js.map → 6.js-CnEl-9M2.js.map} +1 -1
  286. package/build/server/chunks/nodes/{7.js-CnAZu4qX.js → 7.js-jYRFJJNd.js} +3 -3
  287. package/build/server/chunks/nodes/{7.js-CnAZu4qX.js.map → 7.js-jYRFJJNd.js.map} +1 -1
  288. package/build/server/chunks/nodes/{8.js-Cw_xT2FY.js → 8.js-o3KjyiXF.js} +7 -7
  289. package/build/server/chunks/nodes/{8.js-Cw_xT2FY.js.map → 8.js-o3KjyiXF.js.map} +1 -1
  290. package/build/server/chunks/nodes/{9.js-D6yL5RtR.js → 9.js-B7WFq5go.js} +5 -5
  291. package/build/server/chunks/nodes/{9.js-D6yL5RtR.js.map → 9.js-B7WFq5go.js.map} +1 -1
  292. package/package.json +17 -6
  293. package/build/client/_app/immutable/chunks/5jv0Mvxq.js.br +0 -0
  294. package/build/client/_app/immutable/chunks/5jv0Mvxq.js.gz +0 -0
  295. package/build/client/_app/immutable/chunks/98yDWdDP2.js.br +0 -0
  296. package/build/client/_app/immutable/chunks/98yDWdDP2.js.gz +0 -0
  297. package/build/client/_app/immutable/chunks/B_9q-Ef12.js +0 -1
  298. package/build/client/_app/immutable/chunks/B_9q-Ef12.js.br +0 -2
  299. package/build/client/_app/immutable/chunks/B_9q-Ef12.js.gz +0 -0
  300. package/build/client/_app/immutable/chunks/C0dvFiQZ2.js.br +0 -0
  301. package/build/client/_app/immutable/chunks/C0dvFiQZ2.js.gz +0 -0
  302. package/build/client/_app/immutable/chunks/CP-uwdvv.js.br +0 -0
  303. package/build/client/_app/immutable/chunks/CP-uwdvv.js.gz +0 -0
  304. package/build/client/_app/immutable/chunks/CYR7f9ts.js +0 -5404
  305. package/build/client/_app/immutable/chunks/CYR7f9ts.js.br +0 -0
  306. package/build/client/_app/immutable/chunks/CYR7f9ts.js.gz +0 -0
  307. package/build/client/_app/immutable/chunks/D4wDk12M2.js +0 -1
  308. package/build/client/_app/immutable/chunks/D4wDk12M2.js.br +0 -0
  309. package/build/client/_app/immutable/chunks/D4wDk12M2.js.gz +0 -0
  310. package/build/client/_app/immutable/chunks/DjxaiTC2.js.br +0 -0
  311. package/build/client/_app/immutable/chunks/DjxaiTC2.js.gz +0 -0
  312. package/build/client/_app/immutable/chunks/Dn9CnbHs.js +0 -2
  313. package/build/client/_app/immutable/chunks/Dn9CnbHs.js.br +0 -0
  314. package/build/client/_app/immutable/chunks/Dn9CnbHs.js.gz +0 -0
  315. package/build/client/_app/immutable/chunks/mHHlwTIC.js.br +0 -0
  316. package/build/client/_app/immutable/chunks/mHHlwTIC.js.gz +0 -0
  317. package/build/client/_app/immutable/entry/app.nA6FWjJw.js.br +0 -0
  318. package/build/client/_app/immutable/entry/app.nA6FWjJw.js.gz +0 -0
  319. package/build/client/_app/immutable/entry/start.B5X4Akfe.js +0 -1
  320. package/build/client/_app/immutable/entry/start.B5X4Akfe.js.br +0 -0
  321. package/build/client/_app/immutable/entry/start.B5X4Akfe.js.gz +0 -0
  322. package/build/client/_app/immutable/nodes/1.Be6vSNB-.js.br +0 -0
  323. package/build/client/_app/immutable/nodes/1.Be6vSNB-.js.gz +0 -0
  324. package/build/client/_app/immutable/nodes/11.C0Q9fRO2.js.br +0 -0
  325. package/build/client/_app/immutable/nodes/11.C0Q9fRO2.js.gz +0 -0
  326. package/build/client/_app/immutable/nodes/13.CedLh4LC.js.br +0 -0
  327. package/build/client/_app/immutable/nodes/13.CedLh4LC.js.gz +0 -0
  328. package/build/client/_app/immutable/nodes/14.kH0zVFuq.js.br +0 -0
  329. package/build/client/_app/immutable/nodes/14.kH0zVFuq.js.gz +0 -0
  330. package/build/client/_app/immutable/nodes/15.CrGWXR_b.js.br +0 -0
  331. package/build/client/_app/immutable/nodes/15.CrGWXR_b.js.gz +0 -0
  332. package/build/client/_app/immutable/nodes/16.BpzwC_7R.js.br +0 -0
  333. package/build/client/_app/immutable/nodes/16.BpzwC_7R.js.gz +0 -0
  334. package/build/client/_app/immutable/nodes/17.BAd6cLcK.js.br +0 -0
  335. package/build/client/_app/immutable/nodes/17.BAd6cLcK.js.gz +0 -0
  336. package/build/client/_app/immutable/nodes/19.C2M0Gsw8.js.br +0 -0
  337. package/build/client/_app/immutable/nodes/19.C2M0Gsw8.js.gz +0 -0
  338. package/build/client/_app/immutable/nodes/2.DCOz2pgm.js.br +0 -0
  339. package/build/client/_app/immutable/nodes/2.DCOz2pgm.js.gz +0 -0
  340. package/build/client/_app/immutable/nodes/20.BBFt5t9T.js +0 -12
  341. package/build/client/_app/immutable/nodes/20.BBFt5t9T.js.br +0 -0
  342. package/build/client/_app/immutable/nodes/20.BBFt5t9T.js.gz +0 -0
  343. package/build/client/_app/immutable/nodes/21.BYQk6N76.js.br +0 -0
  344. package/build/client/_app/immutable/nodes/21.BYQk6N76.js.gz +0 -0
  345. package/build/client/_app/immutable/nodes/23.awLvoHTA.js.br +0 -0
  346. package/build/client/_app/immutable/nodes/23.awLvoHTA.js.gz +0 -0
  347. package/build/client/_app/immutable/nodes/24.C4Mj39LU.js.br +0 -0
  348. package/build/client/_app/immutable/nodes/24.C4Mj39LU.js.gz +0 -0
  349. package/build/client/_app/immutable/nodes/27.wW5vDHDP.js.br +0 -0
  350. package/build/client/_app/immutable/nodes/27.wW5vDHDP.js.gz +0 -0
  351. package/build/client/_app/immutable/nodes/28.B5qVpudr.js.br +0 -0
  352. package/build/client/_app/immutable/nodes/28.B5qVpudr.js.gz +0 -0
  353. package/build/client/_app/immutable/nodes/29.Cd65rWw6.js.br +0 -0
  354. package/build/client/_app/immutable/nodes/29.Cd65rWw6.js.gz +0 -0
  355. package/build/client/_app/immutable/nodes/3.BtG32r4S.js.br +0 -0
  356. package/build/client/_app/immutable/nodes/3.BtG32r4S.js.gz +0 -0
  357. package/build/client/_app/immutable/nodes/30.DSQJo5j4.js.br +0 -0
  358. package/build/client/_app/immutable/nodes/30.DSQJo5j4.js.gz +0 -0
  359. package/build/client/_app/immutable/nodes/5.CFazNCMc.js.br +0 -2
  360. package/build/client/_app/immutable/nodes/5.CFazNCMc.js.gz +0 -0
  361. package/build/client/_app/immutable/nodes/6.Ds4bdzGT.js.br +0 -0
  362. package/build/client/_app/immutable/nodes/6.Ds4bdzGT.js.gz +0 -0
  363. package/build/client/_app/immutable/nodes/7.DobLGX2q.js.br +0 -0
  364. package/build/client/_app/immutable/nodes/7.DobLGX2q.js.gz +0 -0
  365. package/build/client/_app/immutable/nodes/8.ymwDCA4x.js.br +0 -0
  366. package/build/client/_app/immutable/nodes/8.ymwDCA4x.js.gz +0 -0
  367. package/build/client/_app/immutable/nodes/9.DjD6fOLl.js.br +0 -0
  368. package/build/client/_app/immutable/nodes/9.DjD6fOLl.js.gz +0 -0
  369. package/build/server/chunks/chunks/admin-config.js-0akIzvfH.js +0 -3
  370. package/build/server/chunks/chunks/admin-config.js-0akIzvfH.js.map +0 -1
  371. package/build/server/chunks/chunks/chunk-INP5HVA2.js-ncp7W0Gu.js +0 -2194
  372. package/build/server/chunks/chunks/chunk-INP5HVA2.js-ncp7W0Gu.js.map +0 -1
  373. package/build/server/chunks/chunks/compute.js-C2CcEWW8.js.map +0 -1
  374. package/build/server/chunks/chunks/forms.js-B5Ttvmbg.js +0 -2
  375. package/build/server/chunks/chunks/forms.js-B5Ttvmbg.js.map +0 -1
  376. package/build/server/chunks/chunks/navigation.js-B5Ttvmbg.js +0 -2
  377. package/build/server/chunks/chunks/navigation.js-B5Ttvmbg.js.map +0 -1
  378. package/build/server/chunks/chunks/package.js-q_o0ZSj1.js.map +0 -1
  379. package/build/server/chunks/chunks/visualization-5RH6RSLV.js-DfUogATJ.js +0 -20
  380. package/build/server/chunks/chunks/visualization-5RH6RSLV.js-DfUogATJ.js.map +0 -1
@@ -1,2194 +0,0 @@
1
- import { _ as _e$1, p, l, m, a as x } from './chunk-Y3M7P3BW.js-qwxSY5dh.js';
2
- import { i as inflateSync } from './esm2.js-C_Dsvb5P.js';
3
- import * as D from 'three';
4
- import { ViewHelper } from 'three/addons/helpers/ViewHelper.js';
5
- import { LineSegmentsGeometry } from 'three/addons/lines/LineSegmentsGeometry.js';
6
- import { LineSegments2 } from 'three/addons/lines/LineSegments2.js';
7
- import { LineMaterial } from 'three/addons/lines/LineMaterial.js';
8
- import { EffectComposer } from 'three/addons/postprocessing/EffectComposer.js';
9
- import { RenderPass } from 'three/addons/postprocessing/RenderPass.js';
10
- import { GTAOPass } from 'three/addons/postprocessing/GTAOPass.js';
11
- import { SMAAPass } from 'three/addons/postprocessing/SMAAPass.js';
12
- import { OutputPass } from 'three/addons/postprocessing/OutputPass.js';
13
- import { CSS2DRenderer, CSS2DObject } from 'three/addons/renderers/CSS2DRenderer.js';
14
- import { Line2 } from 'three/addons/lines/Line2.js';
15
- import { LineGeometry } from 'three/addons/lines/LineGeometry.js';
16
- import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
17
- import { HDRLoader } from 'three/addons/loaders/HDRLoader.js';
18
-
19
- //#region ../compute/dist/chunk-INP5HVA2.js
20
- var St = {};
21
- _e$1(St, {
22
- CONCRETE_MATERIAL: () => Fe,
23
- EMISSIVE_MATERIAL: () => De,
24
- GLASS_MATERIAL: () => Be,
25
- METAL_MATERIAL: () => Pe,
26
- PLASTIC_MATERIAL: () => Ve,
27
- RUBBER_MATERIAL: () => ke,
28
- SHARED_MATERIALS: () => ye,
29
- WOOD_MATERIAL: () => Ue
30
- });
31
- var De = new D.MeshPhysicalMaterial({
32
- color: 0,
33
- emissive: new D.Color(16777215),
34
- emissiveIntensity: 5,
35
- metalness: 0,
36
- roughness: .2,
37
- clearcoat: .3,
38
- clearcoatRoughness: .2,
39
- depthWrite: true,
40
- depthTest: true,
41
- transparent: false,
42
- alphaTest: 0,
43
- polygonOffset: true,
44
- polygonOffsetFactor: 1,
45
- polygonOffsetUnits: 1,
46
- side: D.FrontSide,
47
- dithering: true
48
- });
49
- var Pe = new D.MeshPhysicalMaterial({
50
- color: new D.Color(0),
51
- metalness: .9,
52
- roughness: .3,
53
- envMapIntensity: 1.2,
54
- clearcoat: .3,
55
- clearcoatRoughness: .2,
56
- reflectivity: 1,
57
- ior: 2.5,
58
- thickness: 1,
59
- depthWrite: true,
60
- transparent: false,
61
- alphaTest: 0,
62
- depthTest: true,
63
- polygonOffset: true,
64
- polygonOffsetFactor: 1,
65
- polygonOffsetUnits: 1,
66
- side: D.FrontSide,
67
- dithering: true
68
- });
69
- var Fe = new D.MeshPhysicalMaterial({
70
- color: new D.Color(13421772),
71
- metalness: 0,
72
- roughness: .92,
73
- envMapIntensity: .15,
74
- clearcoat: .05,
75
- clearcoatRoughness: .9,
76
- reflectivity: .15,
77
- transmission: 0,
78
- ior: 1.45,
79
- thickness: 0,
80
- depthWrite: true,
81
- transparent: false,
82
- alphaTest: 0,
83
- depthTest: true,
84
- polygonOffset: true,
85
- polygonOffsetFactor: 1,
86
- polygonOffsetUnits: 1,
87
- side: D.FrontSide,
88
- dithering: true
89
- });
90
- var Ve = new D.MeshPhysicalMaterial({
91
- color: new D.Color(16777215),
92
- metalness: 0,
93
- roughness: .3,
94
- envMapIntensity: .5,
95
- clearcoat: .5,
96
- clearcoatRoughness: .1,
97
- reflectivity: .5,
98
- ior: 1.4,
99
- transmission: 0,
100
- transparent: false,
101
- depthWrite: true,
102
- side: D.FrontSide,
103
- dithering: true,
104
- polygonOffset: true,
105
- polygonOffsetFactor: 1,
106
- polygonOffsetUnits: 1
107
- });
108
- var Be = new D.MeshPhysicalMaterial({
109
- color: new D.Color(16777215),
110
- metalness: 0,
111
- roughness: 0,
112
- transmission: .95,
113
- transparent: true,
114
- depthWrite: false,
115
- envMapIntensity: 1,
116
- clearcoat: 1,
117
- clearcoatRoughness: 0,
118
- ior: 1.52,
119
- reflectivity: .9,
120
- thickness: 1,
121
- side: D.DoubleSide,
122
- polygonOffset: true,
123
- polygonOffsetFactor: 1,
124
- polygonOffsetUnits: 1
125
- });
126
- var ke = new D.MeshPhysicalMaterial({
127
- color: new D.Color(1710618),
128
- metalness: 0,
129
- roughness: .9,
130
- envMapIntensity: .2,
131
- clearcoat: .1,
132
- clearcoatRoughness: .8,
133
- reflectivity: .2,
134
- ior: 1.3,
135
- transmission: 0,
136
- depthWrite: true,
137
- side: D.FrontSide,
138
- polygonOffset: true,
139
- polygonOffsetFactor: 1,
140
- polygonOffsetUnits: 1
141
- });
142
- var Ue = new D.MeshPhysicalMaterial({
143
- color: new D.Color(8934707),
144
- metalness: 0,
145
- roughness: .7,
146
- envMapIntensity: .3,
147
- clearcoat: .3,
148
- clearcoatRoughness: .4,
149
- reflectivity: .3,
150
- ior: 1.3,
151
- transmission: 0,
152
- depthWrite: true,
153
- side: D.FrontSide,
154
- dithering: true,
155
- polygonOffset: true,
156
- polygonOffsetFactor: 1,
157
- polygonOffsetUnits: 1
158
- });
159
- var ye = /* @__PURE__ */ new Set([
160
- De,
161
- Pe,
162
- Fe,
163
- Ve,
164
- Be,
165
- ke,
166
- Ue
167
- ]);
168
- var Z = {
169
- HUGE_THRESHOLD: 1e4,
170
- LARGE_THRESHOLD: 1e3,
171
- SCALE_RATIO_THRESHOLD: 100,
172
- NEAR_PLANE_FACTOR: {
173
- TINY: 1e-4,
174
- SMALL: .001,
175
- NORMAL: .01
176
- },
177
- FAR_PLANE_FACTOR: {
178
- HUGE: 100,
179
- LARGE: 50,
180
- NORMAL: 20
181
- },
182
- INITIAL_DISTANCE_MULTIPLIER: 4
183
- };
184
- function no(e, r, t, n, a) {
185
- if (Dt(e), r.length === 0) return;
186
- r.forEach((u) => {
187
- e.add(u);
188
- });
189
- let o = be(r), i = o.getCenter(new D.Vector3()), s = o.getSize(new D.Vector3()), l = Math.max(s.x, s.y, s.z);
190
- if (l / Math.min(s.x || 1, s.y || 1, s.z || 1) > Z.SCALE_RATIO_THRESHOLD || l > Z.HUGE_THRESHOLD ? (t.near = l * Z.NEAR_PLANE_FACTOR.TINY, t.far = l * Z.FAR_PLANE_FACTOR.HUGE) : l > Z.LARGE_THRESHOLD ? (t.near = l * Z.NEAR_PLANE_FACTOR.SMALL, t.far = l * Z.FAR_PLANE_FACTOR.LARGE) : (t.near = Math.max(.01, l * Z.NEAR_PLANE_FACTOR.NORMAL), t.far = Math.max(2e3, l * Z.FAR_PLANE_FACTOR.NORMAL)), t.updateProjectionMatrix(), !a) {
191
- let u = l * Z.INITIAL_DISTANCE_MULTIPLIER;
192
- t.position.set(i.x + u * .8, i.y + u, i.z + u * 1.2), n.target.copy(i), n.update();
193
- }
194
- }
195
- function _e(e) {
196
- if (!e || typeof e != "string") return m().warn(`Invalid color input: ${e}, using white`), new D.Color(16777215);
197
- let r = e.trim();
198
- if (/^#?[0-9A-Fa-f]{6}$/.test(r)) try {
199
- let n = r.startsWith("#") ? r : `#${r}`;
200
- return new D.Color(n);
201
- } catch {
202
- return m().warn(`Invalid hex color: ${e}, using white`), new D.Color(16777215);
203
- }
204
- if (r.includes(",")) {
205
- let n = r.split(",").map((a) => parseInt(a.trim(), 10));
206
- if (n.length === 3 && n.every((a) => !isNaN(a) && a >= 0 && a <= 255)) return new D.Color(n[0] / 255, n[1] / 255, n[2] / 255);
207
- }
208
- let t = r.toLowerCase();
209
- return t in D.Color.NAMES ? new D.Color(D.Color.NAMES[t]) : (m().warn(`Invalid color string: ${e}, using white`), new D.Color(16777215));
210
- }
211
- function ze(e, r, t = "z") {
212
- e.forEach((n) => {
213
- n.position[t] -= r;
214
- });
215
- }
216
- function be(e) {
217
- let r = new D.Box3();
218
- return e.length === 0 || e.forEach((t) => {
219
- t.updateMatrixWorld(true);
220
- let n = new D.Box3().setFromObject(t);
221
- r.union(n);
222
- }), r;
223
- }
224
- var Lt = /* @__PURE__ */ new Set([
225
- "grid",
226
- "floor",
227
- "label-layer",
228
- "measure"
229
- ]);
230
- function It(e) {
231
- let r = e;
232
- for (; r;) {
233
- if (typeof r.userData.id == "string" && Lt.has(r.userData.id)) return true;
234
- r = r.parent;
235
- }
236
- return false;
237
- }
238
- function ee(e) {
239
- e.updateMatrixWorld(true);
240
- let r = new D.Box3();
241
- return e.traverse((t) => {
242
- let n = t;
243
- t.visible && !It(t) && n.geometry && r.expandByObject(t);
244
- }), r;
245
- }
246
- var Ot = /* @__PURE__ */ new Set([
247
- "floor",
248
- "grid",
249
- "label-layer"
250
- ]);
251
- function Dt(e) {
252
- [...e.children].forEach((t) => {
253
- Ot.has(t.userData.id) || t.userData.source !== "user" && (t.traverse((n) => {
254
- let a = n;
255
- if (!a.geometry && !a.material) return;
256
- a.geometry?.dispose();
257
- let o = a.material;
258
- if (!o) return;
259
- (Array.isArray(o) ? o : [o]).forEach((s) => {
260
- if (!ye.has(s)) {
261
- for (let l of Object.values(s)) l instanceof D.Texture && l.dispose();
262
- s.dispose();
263
- }
264
- });
265
- }), t.removeFromParent());
266
- });
267
- }
268
- function Pt(e) {
269
- let r = e.clone().normalize(), t = new D.Vector3(0, 0, 1), n = new D.Vector3(0, 1, 0), a = Math.abs(r.dot(t)) > .9 ? n : t, o = new D.Vector3().crossVectors(r, a).normalize(), i = new D.Vector3().crossVectors(o, r).normalize();
270
- return {
271
- top: r.clone(),
272
- bottom: r.clone().negate(),
273
- front: i.clone(),
274
- back: i.clone().negate(),
275
- right: o.clone(),
276
- left: o.clone().negate(),
277
- iso: i.clone().multiplyScalar(1.2).add(o.clone()).add(r.clone()).normalize()
278
- };
279
- }
280
- function Ne(e) {
281
- let { scene: r, perspective: t, controls: n, onActiveCameraChange: a } = e, o = (e.up ?? t.up).clone().normalize(), i = Pt(o), s = new D.OrthographicCamera(-1, 1, 1, -1, t.near, t.far);
282
- s.up.copy(o);
283
- let l = "perspective", c = t.aspect, u = () => l === "perspective" ? t : s, d = null, m = () => {
284
- d?.cancel(), d = null;
285
- }, E = () => {
286
- let R = (l === "orthographic" ? s : t).position.distanceTo(n.target) * Math.tan(t.fov * Math.PI / 360), v = R * c;
287
- s.left = -v, s.right = v, s.top = R, s.bottom = -R, s.near = t.near, s.far = t.far, s.updateProjectionMatrix();
288
- }, T = (p) => {
289
- if (p !== l) {
290
- if (m(), p === "orthographic") s.position.copy(t.position), s.up.copy(t.up), s.lookAt(n.target), s.zoom = 1, E();
291
- else {
292
- let R = (s.top - s.bottom) / (2 * s.zoom) / Math.tan(t.fov * Math.PI / 360), v = s.position.clone().sub(n.target);
293
- v.lengthSq() < 1e-12 && v.copy(o), v.normalize(), t.position.copy(n.target).add(v.multiplyScalar(R));
294
- }
295
- l = p, n.object = u(), n.update(), a(u());
296
- }
297
- }, f = (p, b, R, v) => {
298
- let S = t.fov * (Math.PI / 180), V = b / (2 * Math.tan(S / 2)) * 1.5, G = Ft(R, o), k = p.clone().add(G.clone().multiplyScalar(V)), X = u();
299
- l === "orthographic" && (s.zoom = 1), m(), v ? d = Bt(X, n, k, p, () => {
300
- l === "orthographic" && E();
301
- }) : (X.position.copy(k), n.target.copy(p), l === "orthographic" && E(), n.update());
302
- }, x = (p, b = true) => {
303
- let R = ee(r), v = R.isEmpty() ? n.target.clone() : R.getCenter(new D.Vector3()), S = R.isEmpty() ? new D.Vector3(1, 1, 1) : R.getSize(new D.Vector3()), V = Math.max(S.x, S.y, S.z) || 1;
304
- f(v, V, p, b);
305
- };
306
- return {
307
- getActiveCamera: u,
308
- getProjection: () => l,
309
- setProjection: T,
310
- toggleProjection: () => (T(l === "perspective" ? "orthographic" : "perspective"), l),
311
- setView: (p, b = true) => {
312
- x(i[p], b);
313
- },
314
- setViewDirection: x,
315
- frameBounds: (p, b = true) => {
316
- if (p.isEmpty()) return;
317
- let R = p.getCenter(new D.Vector3()), v = p.getSize(new D.Vector3()), S = Math.max(v.x, v.y, v.z) || 1, V = u().position.clone().sub(n.target);
318
- V.lengthSq() < 1e-12 && V.copy(i.iso), f(R, S, V.normalize(), b);
319
- },
320
- setRotateEnabled: (p) => {
321
- n.enableRotate = p;
322
- },
323
- isRotateEnabled: () => n.enableRotate,
324
- updateAspect: (p, b) => {
325
- c = b === 0 ? c : p / b, l === "orthographic" && E();
326
- },
327
- dispose: m
328
- };
329
- }
330
- function Ft(e, r) {
331
- let t = r.clone().normalize(), n = e.clone().normalize();
332
- if (Math.abs(n.dot(t)) < .9999) return e;
333
- let a = Math.abs(t.dot(new D.Vector3(0, 0, 1))) > .9 ? new D.Vector3(0, 1, 0) : new D.Vector3(0, 0, 1), o = new D.Vector3().crossVectors(t, a).normalize(), i = .5 * Math.PI / 180;
334
- return n.multiplyScalar(Math.cos(i)).add(o.multiplyScalar(Math.sin(i))).normalize();
335
- }
336
- var Vt = (e) => 1 - Math.pow(1 - e, 3);
337
- function Bt(e, r, t, n, a, o = 250) {
338
- let i = e.position.clone(), s = r.target.clone(), l = performance.now(), c = null, u = () => {
339
- c = null;
340
- let d = Vt(Math.min((performance.now() - l) / o, 1));
341
- e.position.lerpVectors(i, t, d), r.target.lerpVectors(s, n, d), a(), r.update(), d < 1 && (c = requestAnimationFrame(u));
342
- };
343
- return c = requestAnimationFrame(u), { cancel: () => {
344
- c !== null && (cancelAnimationFrame(c), c = null);
345
- } };
346
- }
347
- function kt(e) {
348
- if (!(e > 0) || !Number.isFinite(e)) return 1;
349
- let t = Math.pow(10, Math.floor(Math.log10(e))), n = e / t;
350
- return (n >= 5 ? 5 : n >= 2 ? 2 : 1) * t;
351
- }
352
- var Ut = `
353
- varying vec3 vWorldPos;
354
- void main() {
355
- vec4 world = modelMatrix * vec4(position, 1.0);
356
- vWorldPos = world.xyz;
357
- gl_Position = projectionMatrix * viewMatrix * world;
358
- }
359
- `;
360
- var _t = `
361
- precision highp float;
362
- varying vec3 vWorldPos;
363
-
364
- uniform vec2 uAxes; // indices (0=x,1=y,2=z) of the two in-plane world axes
365
- uniform float uCell;
366
- uniform float uMajor;
367
- uniform vec3 uCellColor;
368
- uniform vec3 uMajorColor;
369
- uniform vec3 uCenter; // fade center (camera position), projected onto plane
370
- uniform float uFade;
371
-
372
- // Antialiased grid line intensity for a given spacing, using screen-space derivatives so lines
373
- // stay ~1px regardless of zoom (the standard "pristine grid" technique).
374
- float gridLine(vec2 coord, float spacing) {
375
- vec2 c = coord / spacing;
376
- vec2 d = fwidth(c);
377
- vec2 g = abs(fract(c - 0.5) - 0.5) / max(d, 1e-6);
378
- float line = min(g.x, g.y);
379
- return 1.0 - clamp(line, 0.0, 1.0);
380
- }
381
-
382
- // Index a vec3 by a float axis id (0/1/2) without dynamic indexing (WebGL1-safe).
383
- float axis(vec3 v, float i) {
384
- return i < 0.5 ? v.x : (i < 1.5 ? v.y : v.z);
385
- }
386
-
387
- void main() {
388
- // Pick the two in-plane world coordinates.
389
- vec2 coord = vec2(axis(vWorldPos, uAxes.x), axis(vWorldPos, uAxes.y));
390
-
391
- float minor = gridLine(coord, uCell);
392
- float major = gridLine(coord, uCell * uMajor);
393
-
394
- vec3 color = mix(uCellColor, uMajorColor, major);
395
- float alpha = max(minor, major);
396
-
397
- // Radial fade from the camera-projected center.
398
- float dist = distance(vWorldPos, uCenter);
399
- float fade = 1.0 - clamp(dist / uFade, 0.0, 1.0);
400
- alpha *= fade * fade;
401
-
402
- if (alpha < 0.001) discard;
403
- gl_FragColor = vec4(color, alpha);
404
- }
405
- `;
406
- function Ge(e = {}) {
407
- let { cellSize: r = 1, majorEvery: t = 10, cellColor: n = 8947848, majorColor: a = 4473924, fadeDistance: o = 100, plane: i = "y" } = e, s = i === "y" ? new D.Vector2(0, 2) : i === "z" ? new D.Vector2(0, 1) : new D.Vector2(1, 2), l = 2.5, c = new D.PlaneGeometry(1, 1);
408
- i === "y" ? c.rotateX(-Math.PI / 2) : i === "x" && c.rotateY(Math.PI / 2);
409
- let u = new D.ShaderMaterial({
410
- vertexShader: Ut,
411
- fragmentShader: _t,
412
- transparent: true,
413
- depthWrite: false,
414
- side: D.DoubleSide,
415
- uniforms: {
416
- uAxes: { value: s },
417
- uCell: { value: r },
418
- uMajor: { value: t },
419
- uCellColor: { value: new D.Color(n) },
420
- uMajorColor: { value: new D.Color(a) },
421
- uCenter: { value: new D.Vector3() },
422
- uFade: { value: o }
423
- }
424
- }), d = new D.Mesh(c, u);
425
- d.name = "grid", d.userData.id = "grid", d.renderOrder = -1;
426
- let m = o, E = o * l, T = new D.Vector3();
427
- return {
428
- object: d,
429
- update: (f) => {
430
- i === "y" ? (d.position.set(f.x, 0, f.z), T.set(f.x, 0, f.z)) : i === "z" ? (d.position.set(f.x, f.y, 0), T.set(f.x, f.y, 0)) : (d.position.set(0, f.y, f.z), T.set(0, f.y, f.z)), u.uniforms.uCenter.value.copy(T), d.scale.setScalar(E);
431
- },
432
- fitToContent: (f) => {
433
- if (f.isEmpty()) return;
434
- let x = f.getSize(new D.Vector3()), H = (w, p) => p === 0 ? w.x : p === 1 ? w.y : w.z, g = Math.max(H(x, s.x), H(x, s.y));
435
- if (!(g > 0) || !Number.isFinite(g)) return;
436
- let C = 20;
437
- u.uniforms.uCell.value = kt(g / C), m = g * 2, u.uniforms.uFade.value = m, E = m * l;
438
- },
439
- setVisible: (f) => {
440
- d.visible = f;
441
- },
442
- dispose: () => {
443
- d.removeFromParent(), c.dispose(), u.dispose();
444
- }
445
- };
446
- }
447
- function je(e) {
448
- let { camera: r, domElement: t, controller: n } = e, a = new ViewHelper(r, t);
449
- a.setLabels("X", "Y", "Z");
450
- let o = true, i = 128, s = new D.Raycaster(), l = new D.OrthographicCamera(-2, 2, 2, -2, 0, 4);
451
- l.position.set(0, 0, 2), l.updateMatrixWorld();
452
- let c = {
453
- posX: new D.Vector3(1, 0, 0),
454
- negX: new D.Vector3(-1, 0, 0),
455
- posY: new D.Vector3(0, 1, 0),
456
- negY: new D.Vector3(0, -1, 0),
457
- posZ: new D.Vector3(0, 0, 1),
458
- negZ: new D.Vector3(0, 0, -1)
459
- }, u = (m) => {
460
- let E = t.getBoundingClientRect(), T = E.left + t.offsetWidth - i - a.location.right, f = E.top + t.offsetHeight - i - a.location.bottom, x = new D.Vector2((m.clientX - T) / i * 2 - 1, -((m.clientY - f) / i) * 2 + 1);
461
- if (Math.abs(x.x) > 1 || Math.abs(x.y) > 1) return null;
462
- a.quaternion.copy(r.quaternion).invert(), a.updateMatrixWorld(), s.setFromCamera(x, l);
463
- let H = s.intersectObjects(a.children, false);
464
- for (let g of H) {
465
- let C = g.object.userData?.type;
466
- if (typeof C == "string" && C in c) return C;
467
- }
468
- return null;
469
- };
470
- return {
471
- render: (m) => {
472
- if (!o) return;
473
- let E = m.autoClear;
474
- m.autoClear = false, a.render(m), m.autoClear = E;
475
- },
476
- update: () => {},
477
- handleClick: (m) => {
478
- if (!o) return false;
479
- let E = u(m);
480
- return E ? (n.getProjection() === "orthographic" && n.setProjection("perspective"), n.setViewDirection(c[E], false), true) : false;
481
- },
482
- isAnimating: false,
483
- setVisible: (m) => {
484
- o = m;
485
- },
486
- isVisible: () => o,
487
- dispose: () => a.dispose()
488
- };
489
- }
490
- var de = "edge-overlay";
491
- var jt = 2236962;
492
- var Wt = 1.5;
493
- var $t = 44;
494
- var Yt = .75;
495
- var Xt = 80;
496
- var We = 20;
497
- var qt = 1;
498
- var Zt = 2;
499
- function Ye(e, r) {
500
- let t = Array.isArray(e.material) ? e.material : [e.material];
501
- for (let n of t) n && (n.polygonOffset = r, n.polygonOffsetFactor = r ? qt : 0, n.polygonOffsetUnits = r ? Zt : 0);
502
- }
503
- var Te = /* @__PURE__ */ new WeakMap();
504
- function Xe(e, r = {}) {
505
- let t = r.color != null ? new D.Color(r.color) : null, n = D.MathUtils.clamp(r.darken ?? Yt, 0, 1), a = r.width ?? Wt, o = r.thresholdAngle ?? $t, i = r.distanceFade ?? true, s = /* @__PURE__ */ new Map(), l = (u) => {
506
- let d = t ?? Kt(u, n), m = d.getHex(), E = s.get(m);
507
- return E || (E = en(d, a, i), s.set(m, E)), E;
508
- }, c = [];
509
- return e.traverse((u) => {
510
- if (!(u instanceof D.Mesh) || u.userData.id === "floor" || u.userData.id === "grid" || u.userData.kind === "edge-overlay" || u.children.some((m) => m.userData?.kind === "edge-overlay") || !u.geometry) return;
511
- let d = tn(u.geometry, l(u), o, i);
512
- u.add(d), Ye(u, true), c.push(d);
513
- }), c.length === 0 && s.forEach((u) => u.dispose()), c;
514
- }
515
- function Kt(e, r) {
516
- let n = (Array.isArray(e.material) ? e.material[0] : e.material)?.color;
517
- return n ? n.clone().multiplyScalar(1 - r) : new D.Color(jt);
518
- }
519
- function Jt(e, r) {
520
- let t = Te.get(e);
521
- t || (t = /* @__PURE__ */ new Map(), Te.set(e, t));
522
- let n = t.get(r);
523
- if (!n) {
524
- let a = new D.EdgesGeometry(e, r), o = new LineSegmentsGeometry();
525
- o.setPositions(a.attributes.position.array), a.dispose(), n = {
526
- geometry: o,
527
- refCount: 0
528
- }, t.set(r, n);
529
- }
530
- return n.refCount += 1, n.geometry;
531
- }
532
- function Qt(e) {
533
- let r = e.userData, t = r.edgeSource && Te.get(r.edgeSource), n = r.edgeThresholdAngle != null ? t?.get(r.edgeThresholdAngle) : void 0;
534
- if (!n || n.geometry !== e.geometry) {
535
- e.geometry.dispose();
536
- return;
537
- }
538
- n.refCount -= 1, n.refCount <= 0 && (n.geometry.dispose(), t.delete(r.edgeThresholdAngle));
539
- }
540
- function en(e, r, t) {
541
- let n = new LineMaterial({ color: e });
542
- return n.linewidth = r, t && (n.transparent = true), n;
543
- }
544
- function tn(e, r, t, n) {
545
- let o = new LineSegments2(Jt(e, t), r);
546
- return o.userData.kind = de, o.userData.edgeSource = e, o.userData.edgeThresholdAngle = t, o.raycast = () => {}, n && on(o), o;
547
- }
548
- var $e = new D.Vector3();
549
- var nn = new D.Vector3();
550
- function rn(e, r, t) {
551
- e.geometry.boundingSphere || e.geometry.computeBoundingSphere();
552
- let n = e.geometry.boundingSphere;
553
- if (!n || n.radius <= 0) return Infinity;
554
- let a = n.radius * e.matrixWorld.getMaxScaleOnAxis();
555
- if ($e.copy(n.center).applyMatrix4(e.matrixWorld), r.isPerspectiveCamera) {
556
- let o = r, i = nn.setFromMatrixPosition(r.matrixWorld).distanceTo($e);
557
- if (i <= a) return Infinity;
558
- return a / (i * Math.tan(D.MathUtils.degToRad(o.fov) * .5)) * t;
559
- }
560
- if (r.isOrthographicCamera) {
561
- let o = r, i = (o.top - o.bottom) / o.zoom;
562
- return i > 0 ? 2 * a / i * t : Infinity;
563
- }
564
- return Infinity;
565
- }
566
- function on(e) {
567
- e.onBeforeRender = (r, t, n) => {
568
- LineSegments2.prototype.onBeforeRender.call(e, r);
569
- let a = e.material, o = rn(e, n, a.resolution.y);
570
- a.opacity = D.MathUtils.clamp((o - We) / (Xt - We), 0, 1);
571
- };
572
- }
573
- function an(e) {
574
- return e.userData?.kind === de;
575
- }
576
- function po(e) {
577
- let r = [];
578
- e.traverse((n) => {
579
- n instanceof LineSegments2 && an(n) && r.push(n);
580
- });
581
- let t = /* @__PURE__ */ new Set();
582
- for (let n of r) Qt(n), t.add(n.material), n.parent instanceof D.Mesh && Ye(n.parent, false), n.removeFromParent();
583
- return t.forEach((n) => n.dispose()), r.length;
584
- }
585
- function qe(e, r, t, n, a, o) {
586
- let i = new EffectComposer(e), s = new RenderPass(r, t);
587
- i.addPass(s);
588
- let l = new GTAOPass(r, t, n, a);
589
- l.blendIntensity = o.aoIntensity ?? 1, l.updateGtaoMaterial({ screenSpaceRadius: true }), i.addPass(l);
590
- let c = new SMAAPass();
591
- i.addPass(c);
592
- let u = new OutputPass();
593
- i.addPass(u), e.toneMapping = o.toneMapping, e.toneMappingExposure = o.toneMappingExposure;
594
- let d = o.aoPixelRatio ?? 1;
595
- return i.setSize(n, a), {
596
- render: (m) => i.render(m),
597
- setSize: (m, E, T) => {
598
- i.setPixelRatio(Math.min(T, d)), i.setSize(m, E);
599
- },
600
- setCamera: (m) => {
601
- s.camera = m, l.camera = m;
602
- let E = m.isPerspectiveCamera ? 1 : 0;
603
- l.gtaoMaterial.defines.PERSPECTIVE_CAMERA !== E && (l.gtaoMaterial.defines.PERSPECTIVE_CAMERA = E, l.gtaoMaterial.needsUpdate = true);
604
- },
605
- dispose: () => {
606
- i.dispose(), l.dispose(), c.dispose(), u.dispose();
607
- }
608
- };
609
- }
610
- function Ke(e, r) {
611
- let t = new CSS2DRenderer(), n = t.domElement;
612
- n.style.position = "absolute", n.style.top = "0", n.style.left = "0", n.style.overflow = "hidden", n.style.pointerEvents = "none", n.style.zIndex = "30", getComputedStyle(e).position === "static" && (e.style.position = "relative"), e.appendChild(n);
613
- let a = {
614
- width: e.clientWidth || 1,
615
- height: e.clientHeight || 1
616
- };
617
- t.setSize(a.width, a.height);
618
- let o = new D.Group();
619
- o.name = "label-layer", o.userData.id = "label-layer", r.add(o);
620
- let i = /* @__PURE__ */ new Set();
621
- return {
622
- addLabel: (l, c, u) => {
623
- let d = document.createElement("div");
624
- d.textContent = l, u ? d.className = u : Object.assign(d.style, {
625
- padding: "2px 6px",
626
- borderRadius: "4px",
627
- background: "rgba(20, 20, 20, 0.78)",
628
- color: "#fff",
629
- font: "12px/1.3 system-ui, sans-serif",
630
- whiteSpace: "pre",
631
- textAlign: "center",
632
- userSelect: "none"
633
- }), d.style.pointerEvents = "none";
634
- let m = new CSS2DObject(d);
635
- return m.position.copy(c), o.add(m), i.add(m), {
636
- object: m,
637
- setPosition: (E) => m.position.copy(E),
638
- setText: (E) => {
639
- d.textContent = E;
640
- },
641
- remove: () => {
642
- m.removeFromParent(), d.remove(), i.delete(m);
643
- }
644
- };
645
- },
646
- render: (l, c) => t.render(l, c),
647
- setSize: (l, c) => t.setSize(l, c),
648
- dispose: () => {
649
- i.forEach((l) => {
650
- l.removeFromParent(), l.element.remove();
651
- }), i.clear(), o.removeFromParent(), n.remove();
652
- }
653
- };
654
- }
655
- var gn = 12;
656
- var yn = 16763904;
657
- var Je = .015;
658
- var Qe = {
659
- Millimeters: {
660
- metersPerUnit: 1 / 1e3,
661
- suffix: "mm"
662
- },
663
- Centimeters: {
664
- metersPerUnit: 1 / 100,
665
- suffix: "cm"
666
- },
667
- Meters: {
668
- metersPerUnit: 1,
669
- suffix: "m"
670
- },
671
- Inches: {
672
- metersPerUnit: 1 / 39.37,
673
- suffix: "in"
674
- },
675
- Feet: {
676
- metersPerUnit: 1 / 3.28084,
677
- suffix: "ft"
678
- }
679
- };
680
- function bn(e) {
681
- let r = e && Qe[e] || Qe.Meters;
682
- return (t) => `${(t / r.metersPerUnit).toPrecision(3)} ${r.suffix}`;
683
- }
684
- function Tn(e, r) {
685
- if (e.isOrthographicCamera) {
686
- let n = e;
687
- return Math.abs(n.top - n.bottom) / (n.zoom || 1) * Je;
688
- }
689
- return ((r ? e.position.distanceTo(r) : e.position.length()) || 1) * Je;
690
- }
691
- function Rn(e) {
692
- let r = e.object;
693
- if (r instanceof D.Mesh) return e.face ? [
694
- e.face.a,
695
- e.face.b,
696
- e.face.c
697
- ] : null;
698
- if (r instanceof D.Points) return e.index != null ? [e.index] : null;
699
- if (r instanceof D.Line) {
700
- if (e.index == null) return null;
701
- let t = r.geometry.index;
702
- return t ? e.index + 1 >= t.count ? null : [t.getX(e.index), t.getX(e.index + 1)] : [e.index, e.index + 1];
703
- }
704
- return null;
705
- }
706
- function Hn(e, r, t, n) {
707
- let a = e.point.clone(), o = e.object, i = Rn(e);
708
- if (!i || !o.geometry) return a;
709
- let s = o.geometry.attributes.position;
710
- if (!s) return a;
711
- let l = (m) => {
712
- let E = m.clone().project(r);
713
- return new D.Vector2((E.x + 1) / 2 * t.width, (1 - E.y) / 2 * t.height);
714
- }, c = l(a), u = a, d = n;
715
- for (let m of i) {
716
- if (m >= s.count) continue;
717
- let T = new D.Vector3().fromBufferAttribute(s, m).applyMatrix4(o.matrixWorld), f = l(T).distanceTo(c);
718
- f < d && (d = f, u = T);
719
- }
720
- return u;
721
- }
722
- function et(e) {
723
- let { canvas: r, scene: t, getActiveCamera: n, getViewTarget: a, labelLayer: o, options: i = {} } = e, s = i.snapPixels ?? gn, l = new D.Color(i.color ?? yn), c = bn(i.displayUnit), u = (L, M) => `${c(L)}
724
- \u0394x ${c(M.x)} \u0394y ${c(M.y)} \u0394z ${c(M.z)}`, d = i.format ?? u, m = new D.Raycaster(), E = new D.Vector2(), T = false, f = [], x = [], H = null, g = null, C = new D.PointsMaterial({
725
- color: l,
726
- size: 8,
727
- sizeAttenuation: false,
728
- depthTest: false
729
- }), w = new D.PointsMaterial({
730
- color: l,
731
- size: 11,
732
- sizeAttenuation: false,
733
- depthTest: false,
734
- transparent: true,
735
- opacity: .5
736
- }), p = null, b = (L) => {
737
- if (!L) {
738
- p && (p.visible = false);
739
- return;
740
- }
741
- if (!p) {
742
- let M = new D.BufferGeometry();
743
- M.setAttribute("position", new D.Float32BufferAttribute([
744
- 0,
745
- 0,
746
- 0
747
- ], 3)), p = new D.Points(M, w), p.renderOrder = 1e3, p.userData.id = "measure", p.raycast = () => {}, t.add(p);
748
- }
749
- p.position.copy(L), p.visible = true;
750
- }, R = (L) => {
751
- let M = new D.BufferGeometry();
752
- M.setAttribute("position", new D.Float32BufferAttribute([
753
- L.x,
754
- L.y,
755
- L.z
756
- ], 3));
757
- let P = new D.Points(M, C);
758
- return P.renderOrder = 999, P.userData.id = "measure", P.raycast = () => {}, t.add(P), P;
759
- }, v = () => {
760
- f.length = 0, x.forEach((L) => {
761
- L.geometry.dispose(), L.removeFromParent();
762
- }), x.length = 0, H && (H.geometry.dispose(), H.material.dispose(), H.removeFromParent(), H = null), g?.remove(), g = null;
763
- }, S = () => {
764
- if (f.length !== 2) return;
765
- let [L, M] = f, P = new LineGeometry();
766
- P.setPositions([
767
- L.x,
768
- L.y,
769
- L.z,
770
- M.x,
771
- M.y,
772
- M.z
773
- ]);
774
- let Q = new LineMaterial({ color: l });
775
- Q.linewidth = 2, Q.depthTest = false, H = new Line2(P, Q), H.renderOrder = 998, H.userData.id = "measure", H.raycast = () => {}, t.add(H);
776
- let j = L.clone().add(M).multiplyScalar(.5), te = new D.Vector3(Math.abs(M.x - L.x), Math.abs(M.y - L.y), Math.abs(M.z - L.z));
777
- g = o.addLabel(d(L.distanceTo(M), te), j, i.labelClassName);
778
- }, V = (L) => {
779
- let M = r.getBoundingClientRect();
780
- E.x = (L.clientX - M.left) / M.width * 2 - 1, E.y = -((L.clientY - M.top) / M.height) * 2 + 1;
781
- let P = n();
782
- m.setFromCamera(E, P);
783
- let Q = Tn(P, a?.());
784
- m.params.Line.threshold = Q, m.params.Points.threshold = Q;
785
- let j = m.intersectObjects(t.children, true).filter((te) => te.object.userData.id !== "measure" && te.object.userData.id !== "grid");
786
- return j.length === 0 ? null : Hn(j[0], P, {
787
- width: M.width,
788
- height: M.height
789
- }, s);
790
- }, G = null, k = 0, X = () => {
791
- k && (cancelAnimationFrame(k), k = 0), G = null;
792
- };
793
- return {
794
- setEnabled: (L) => {
795
- T = L, L || (X(), v(), b(null));
796
- },
797
- isEnabled: () => T,
798
- handleClick: (L) => {
799
- if (!T) return false;
800
- f.length === 2 && v();
801
- let M = V(L);
802
- return M === null || (f.push(M), x.push(R(M)), f.length === 2 && S()), true;
803
- },
804
- handleMove: (L) => {
805
- T && (G = L, !k && (k = requestAnimationFrame(() => {
806
- k = 0;
807
- let M = G;
808
- G = null, !(!T || !M) && b(V(M));
809
- })));
810
- },
811
- clear: v,
812
- dispose: () => {
813
- X(), v(), p && (p.geometry.dispose(), p.removeFromParent(), p = null), C.dispose(), w.dispose();
814
- }
815
- };
816
- }
817
- var xn = 64;
818
- var vn = 256;
819
- var q = /* @__PURE__ */ new Map();
820
- var ie = /* @__PURE__ */ new Map();
821
- var me = 0;
822
- var fe = class extends Error {
823
- constructor(r) {
824
- super(`Texture load for ${r} resolved after clearTextureCache(); texture disposed.`), this.name = "StaleTextureLoadError";
825
- }
826
- };
827
- var pe = 1;
828
- function tt(e) {
829
- pe = Math.max(1, e);
830
- for (let r of q.values()) r.anisotropy !== pe && (r.anisotropy = pe, r.needsUpdate = true);
831
- }
832
- function nt(e, r) {
833
- let t = Cn(r), n = q.get(t);
834
- if (n) {
835
- q.delete(t), q.set(t, n), e.map = n, e.needsUpdate = true;
836
- return;
837
- }
838
- typeof document > "u" || An(r, t).then((a) => {
839
- e.map = a, e.needsUpdate = true;
840
- }).catch((a) => {
841
- a instanceof fe || m().warn(`Failed to load material texture ${r}:`, a);
842
- });
843
- }
844
- function Ao() {
845
- me++;
846
- for (let e of q.values()) e.dispose();
847
- q.clear(), ie.clear();
848
- }
849
- function Cn(e) {
850
- return e.length <= vn ? e : `data-uri:${wn(e).toString(16)}:${e.length}`;
851
- }
852
- function wn(e) {
853
- let r = 2166136261;
854
- for (let t = 0; t < e.length; t++) r ^= e.charCodeAt(t), r = Math.imul(r, 16777619);
855
- return r >>> 0;
856
- }
857
- function Mn(e, r) {
858
- for (q.set(e, r); q.size > 64;) {
859
- let t = q.keys().next().value, n = q.get(t);
860
- q.delete(t), n.dispose();
861
- }
862
- }
863
- function An(e, r) {
864
- let t = ie.get(r);
865
- if (!t) {
866
- let n = me;
867
- t = new Promise((a, o) => {
868
- new D.TextureLoader().load(e, (i) => {
869
- if (n !== me) {
870
- i.dispose(), o(new fe(e));
871
- return;
872
- }
873
- i.colorSpace = D.SRGBColorSpace, i.anisotropy = pe, Mn(r, i), ie.delete(r), a(i);
874
- }, void 0, (i) => {
875
- n === me && ie.delete(r), o(i);
876
- });
877
- }), ie.set(r, t);
878
- }
879
- return t;
880
- }
881
- var Sn = .5;
882
- var Ln = .01;
883
- var In = .05;
884
- function rt({ camera: e, scene: r, groundNormals: t = [] }) {
885
- let n = e.near, a = e.near, o = new D.Vector3(), i = new D.Vector3();
886
- return { update: () => {
887
- e.near !== a && (n = e.near);
888
- let l = ee(r), c = n;
889
- if (!l.isEmpty()) {
890
- let u = l.getSize(i).length() * .5, d = e.position.distanceTo(l.getCenter(o)) - u;
891
- for (let m of t) d = Math.min(d, Math.abs(e.position.dot(m)));
892
- c = D.MathUtils.clamp(d * Sn, n, e.far * Ln);
893
- }
894
- Math.abs(c - a) > a * In && (e.near = c, e.updateProjectionMatrix(), a = c);
895
- } };
896
- }
897
- var ae = new D.Vector3(0, 0, 1);
898
- var Pn = "technical";
899
- var He = {
900
- studio: {
901
- toneMapping: D.ACESFilmicToneMapping,
902
- toneMappingExposure: 1,
903
- envMapIntensity: 1,
904
- environmentIntensity: 1,
905
- hemisphereIntensity: .75,
906
- ambientIntensity: .4,
907
- cullBackfaces: false,
908
- ambientOcclusion: false
909
- },
910
- technical: {
911
- toneMapping: D.NeutralToneMapping,
912
- toneMappingExposure: 1,
913
- envMapIntensity: .9,
914
- environmentIntensity: 1,
915
- hemisphereIntensity: .35,
916
- ambientIntensity: .25,
917
- cullBackfaces: false,
918
- ambientOcclusion: false
919
- },
920
- showcase: {
921
- toneMapping: D.ACESFilmicToneMapping,
922
- toneMappingExposure: 1.15,
923
- envMapIntensity: 1.4,
924
- environmentIntensity: 1.25,
925
- hemisphereIntensity: .35,
926
- ambientIntensity: .15,
927
- cullBackfaces: false,
928
- ambientOcclusion: false
929
- }
930
- };
931
- function Fn(e) {
932
- let r = He[e];
933
- return {
934
- envMapIntensity: r.envMapIntensity,
935
- cullBackfaces: r.cullBackfaces
936
- };
937
- }
938
- function Vn(e) {
939
- let r = Math.abs(e.x), t = Math.abs(e.y), n = Math.abs(e.z);
940
- return n >= r && n >= t ? "z" : t >= r && t >= n ? "y" : "x";
941
- }
942
- var Wo = function(e, r) {
943
- let t = Bn(r || {}), n = t.environment?.sceneUp || ae, a = t.render.pixelRatio ?? Math.min(window.devicePixelRatio, 2), o = Un(t), i = jn(t, e);
944
- i.up.copy(n);
945
- let s = Wn(e, t, a);
946
- tt(s.capabilities.getMaxAnisotropy());
947
- let l = Yn(i, e, t), c = Ne({
948
- scene: o,
949
- perspective: i,
950
- controls: l,
951
- onActiveCameraChange: () => {},
952
- up: n
953
- }), u = () => c.getActiveCamera(), d = false;
954
- zn(o, s, t, () => d);
955
- let m = Nn(o, t), E = m.sun, T = () => {
956
- E && kn(E, ee(o));
957
- };
958
- t.floor?.enabled && Gn(o, t);
959
- let f = t.grid.enabled ? Ge({
960
- cellSize: t.grid.cellSize,
961
- majorEvery: t.grid.majorEvery,
962
- cellColor: t.grid.cellColor,
963
- majorColor: t.grid.majorColor,
964
- fadeDistance: t.grid.fadeDistance,
965
- plane: t.grid.plane
966
- }) : null;
967
- f && o.add(f.object);
968
- let x = () => {
969
- f && f.fitToContent(ee(o));
970
- }, H = t.gizmo.enabled ? je({
971
- camera: i,
972
- domElement: e,
973
- controller: c
974
- }) : null, g = [];
975
- if (f) {
976
- let y = t.grid.plane ?? "z";
977
- g.push(new D.Vector3(y === "x" ? 1 : 0, y === "y" ? 1 : 0, y === "z" ? 1 : 0));
978
- }
979
- t.floor.enabled && g.push(n.clone().normalize());
980
- let C = t.camera.dynamicNear ? rt({
981
- camera: i,
982
- scene: o,
983
- groundNormals: g
984
- }) : null, w = e.parentElement ?? e, p = t.measure.enabled ? Ke(w, o) : null, b = t.measure.enabled && p ? et({
985
- canvas: e,
986
- scene: o,
987
- getActiveCamera: u,
988
- labelLayer: p,
989
- options: {
990
- snapPixels: t.measure.snapPixels,
991
- color: t.measure.color,
992
- labelClassName: t.measure.labelClassName,
993
- displayUnit: t.measure.displayUnit,
994
- format: t.measure.format
995
- }
996
- }) : null, R = t.events.enableEventHandlers !== false ? $n(e, o, c, t) : {
997
- dispose: () => {},
998
- fitToView: () => {},
999
- clearSelection: () => {}
1000
- }, v = 5, S = 0, V = 0, G = (y) => {
1001
- S = y.clientX, V = y.clientY;
1002
- }, k = (y) => Math.hypot(y.clientX - S, y.clientY - V) > v, X = (y) => {
1003
- if (!k(y)) {
1004
- if (b?.handleClick(y)) {
1005
- y.stopImmediatePropagation();
1006
- return;
1007
- }
1008
- H?.handleClick(y) && y.stopImmediatePropagation();
1009
- }
1010
- };
1011
- (H || b) && (e.addEventListener("mousedown", G, { capture: true }), e.addEventListener("click", X, { capture: true }));
1012
- let ne = (y) => b?.handleMove(y);
1013
- b && e.addEventListener("mousemove", ne, { passive: true });
1014
- let J = (y) => {
1015
- Xe(y, {
1016
- color: t.edges.color,
1017
- darken: t.edges.darken,
1018
- width: t.edges.width,
1019
- thresholdAngle: t.edges.thresholdAngle,
1020
- distanceFade: t.edges.distanceFade
1021
- });
1022
- }, L = e.parentElement, M = () => L ? {
1023
- width: L.clientWidth,
1024
- height: L.clientHeight
1025
- } : {
1026
- width: window.innerWidth,
1027
- height: window.innerHeight
1028
- }, P = null, Q = () => {
1029
- let { width: y, height: I } = M(), W = qe(s, o, u(), Math.max(1, y), Math.max(1, I), {
1030
- toneMapping: t.render.toneMapping ?? D.NeutralToneMapping,
1031
- toneMappingExposure: t.render.toneMappingExposure ?? 1,
1032
- aoIntensity: t.render.aoIntensity,
1033
- aoPixelRatio: t.render.aoPixelRatio
1034
- });
1035
- return W.setSize(Math.max(1, y), Math.max(1, I), a), W;
1036
- }, j = (y) => {
1037
- y && !P ? P = Q() : !y && P && (P.dispose(), P = null);
1038
- };
1039
- t.render.ambientOcclusion && (P = Q());
1040
- let te = (y) => {
1041
- y.ambientIntensity !== void 0 && (m.ambient.intensity = y.ambientIntensity), y.hemisphereIntensity !== void 0 && !m.hemisphere && y.hemisphereIntensity > 0 && (m.hemisphere = new D.HemisphereLight(y.hemisphereSkyColor ?? t.lighting.hemisphereSkyColor, y.hemisphereGroundColor ?? t.lighting.hemisphereGroundColor, y.hemisphereIntensity), m.hemisphere.position.copy(t.environment.sceneUp ?? ae), o.add(m.hemisphere)), m.hemisphere && (y.hemisphereIntensity !== void 0 && (m.hemisphere.intensity = y.hemisphereIntensity), y.hemisphereSkyColor !== void 0 && m.hemisphere.color.set(y.hemisphereSkyColor), y.hemisphereGroundColor !== void 0 && m.hemisphere.groundColor.set(y.hemisphereGroundColor));
1042
- }, Ae = (y) => {
1043
- t.environment.environmentIntensity = y, o.environmentIntensity = y;
1044
- }, yt = (y) => {
1045
- t.render.toneMappingExposure = y, s.toneMappingExposure = y, P && (j(false), j(true));
1046
- }, bt = (y) => {
1047
- t.render.aoIntensity = y, P && (j(false), j(true));
1048
- }, Tt = (y) => {
1049
- let I = He[y];
1050
- Se = y, s.toneMapping = I.toneMapping, s.toneMappingExposure = I.toneMappingExposure, t.render.toneMapping = I.toneMapping, t.render.toneMappingExposure = I.toneMappingExposure, te({
1051
- hemisphereIntensity: I.hemisphereIntensity,
1052
- ambientIntensity: I.ambientIntensity
1053
- }), Ae(I.environmentIntensity), P && j(false), j(I.ambientOcclusion), o.traverse((W) => {
1054
- if (W.userData.source !== "compute") return;
1055
- let ue = W, Mt = Array.isArray(ue.material) ? ue.material : ue.material ? [ue.material] : [];
1056
- for (let Ie of Mt) "envMapIntensity" in Ie && (Ie.envMapIntensity = I.envMapIntensity);
1057
- });
1058
- }, Se = t.look, Rt = () => Fn(Se), { animate: Ht, dispose: xt } = _n(s, o, i, u, c, l, M, a, t.events.onFrame, f, H, () => P, p, C);
1059
- Ht(), o.up.set(n.x, n.y, n.z), T(), x();
1060
- let Le = (y) => {
1061
- y.traverse((I) => {
1062
- let W = I;
1063
- !W.geometry && !W.material || (W.geometry?.dispose(), Array.isArray(W.material) ? W.material.forEach(he) : W.material && he(W.material));
1064
- });
1065
- }, vt = (y) => {
1066
- y.userData.source = "user", o.add(y);
1067
- }, Ct = (y) => {
1068
- y.removeFromParent(), Le(y);
1069
- }, wt = () => {
1070
- o.children.filter((I) => I.userData.source === "user").forEach((I) => {
1071
- I.removeFromParent(), Le(I);
1072
- });
1073
- };
1074
- return {
1075
- scene: o,
1076
- camera: i,
1077
- controls: l,
1078
- renderer: s,
1079
- cameraController: c,
1080
- grid: f,
1081
- gizmo: H,
1082
- measureTool: b,
1083
- applyEdges: J,
1084
- setAmbientOcclusion: j,
1085
- setLook: Tt,
1086
- setFillLights: te,
1087
- setEnvironmentIntensity: Ae,
1088
- setToneMappingExposure: yt,
1089
- setAoIntensity: bt,
1090
- getMaterialAppearance: Rt,
1091
- updateShadowBounds: T,
1092
- updateGridScale: x,
1093
- dispose: () => {
1094
- d || (d = true, xt(), R.dispose(), (H || b) && (e.removeEventListener("mousedown", G, { capture: true }), e.removeEventListener("click", X, { capture: true })), b && e.removeEventListener("mousemove", ne), b?.dispose(), p?.dispose(), H?.dispose(), f?.dispose(), P?.dispose(), c.dispose(), l.dispose(), s.dispose(), s.forceContextLoss(), o.traverse((y) => {
1095
- let I = y;
1096
- !I.geometry && !I.material || (I.geometry?.dispose(), Array.isArray(I.material) ? I.material.forEach(he) : I.material && he(I.material));
1097
- }), o.environment?.dispose(), o.background instanceof D.Texture && o.background.dispose());
1098
- },
1099
- fitToView: R.fitToView,
1100
- clearSelection: R.clearSelection,
1101
- addUserGeometry: vt,
1102
- removeUserGeometry: Ct,
1103
- clearUserGeometry: wt
1104
- };
1105
- };
1106
- function Bn(e) {
1107
- let r = e.sceneScale || "m", n = {
1108
- mm: {
1109
- cameraDistance: 20,
1110
- near: .1,
1111
- far: 2e3,
1112
- floorSize: 100,
1113
- lightDistance: 10,
1114
- lightHeight: 20,
1115
- minDistance: .1,
1116
- shadowSize: 100,
1117
- scaleFactor: 1e3
1118
- },
1119
- cm: {
1120
- cameraDistance: 20,
1121
- near: .1,
1122
- far: 2e3,
1123
- floorSize: 100,
1124
- lightDistance: 25,
1125
- lightHeight: 50,
1126
- minDistance: .1,
1127
- shadowSize: 100,
1128
- scaleFactor: 100
1129
- },
1130
- m: {
1131
- cameraDistance: 10,
1132
- near: .01,
1133
- far: 2e3,
1134
- floorSize: 50,
1135
- lightDistance: 25,
1136
- lightHeight: 50,
1137
- minDistance: .001,
1138
- shadowSize: 100,
1139
- scaleFactor: 1
1140
- },
1141
- inches: {
1142
- cameraDistance: 15,
1143
- near: .1,
1144
- far: 2e3,
1145
- floorSize: 80,
1146
- lightDistance: 20,
1147
- lightHeight: 40,
1148
- minDistance: .1,
1149
- shadowSize: 80,
1150
- scaleFactor: 39.37
1151
- },
1152
- feet: {
1153
- cameraDistance: 8,
1154
- near: .1,
1155
- far: 2e3,
1156
- floorSize: 40,
1157
- lightDistance: 15,
1158
- lightHeight: 30,
1159
- minDistance: .1,
1160
- shadowSize: 60,
1161
- scaleFactor: 3.28084
1162
- }
1163
- }[r], a = e.look ?? Pn, o = He[a];
1164
- return {
1165
- sceneScale: r,
1166
- look: a,
1167
- camera: {
1168
- position: e.camera?.position || new D.Vector3(-n.cameraDistance, -n.cameraDistance, n.cameraDistance),
1169
- fov: e.camera?.fov || 20,
1170
- near: e.camera?.near || n.near,
1171
- far: e.camera?.far || n.far,
1172
- target: e.camera?.target || new D.Vector3(0, 0, 0),
1173
- dynamicNear: e.camera?.dynamicNear ?? true
1174
- },
1175
- lighting: {
1176
- enableSunlight: e.lighting?.enableSunlight ?? true,
1177
- sunlightIntensity: e.lighting?.sunlightIntensity ?? 1,
1178
- sunlightPosition: e.lighting?.sunlightPosition || new D.Vector3(n.lightDistance, n.lightDistance, n.lightHeight),
1179
- ambientLightColor: e.lighting?.ambientLightColor || new D.Color(4210752),
1180
- ambientLightIntensity: e.lighting?.ambientLightIntensity ?? o.ambientIntensity,
1181
- sunlightColor: e.lighting?.sunlightColor || 16777215,
1182
- enableHemisphereLight: e.lighting?.enableHemisphereLight ?? o.hemisphereIntensity > 0,
1183
- hemisphereSkyColor: e.lighting?.hemisphereSkyColor ?? 14673663,
1184
- hemisphereGroundColor: e.lighting?.hemisphereGroundColor ?? 7036754,
1185
- hemisphereIntensity: e.lighting?.hemisphereIntensity ?? o.hemisphereIntensity
1186
- },
1187
- environment: {
1188
- hdrPath: e.environment?.hdrPath || "/baseHDR.hdr",
1189
- backgroundColor: e.environment?.backgroundColor || new D.Color(15790320),
1190
- enableEnvironmentLighting: e.environment?.enableEnvironmentLighting ?? true,
1191
- sceneUp: e.environment?.sceneUp || ae,
1192
- showEnvironment: e.environment?.showEnvironment ?? false,
1193
- environmentIntensity: e.environment?.environmentIntensity ?? o.environmentIntensity
1194
- },
1195
- floor: {
1196
- enabled: e.floor?.enabled ?? false,
1197
- size: e.floor?.size || n.floorSize,
1198
- color: e.floor?.color || new D.Color(8421504),
1199
- roughness: e.floor?.roughness ?? .7,
1200
- metalness: e.floor?.metalness ?? 0,
1201
- receiveShadow: e.floor?.receiveShadow ?? true
1202
- },
1203
- render: {
1204
- enableShadows: e.render?.enableShadows ?? true,
1205
- shadowMapSize: e.render?.shadowMapSize || 2048,
1206
- antialias: e.render?.antialias ?? true,
1207
- pixelRatio: e.render?.pixelRatio || Math.min(window.devicePixelRatio, 2),
1208
- toneMapping: e.render?.toneMapping ?? o.toneMapping,
1209
- toneMappingExposure: e.render?.toneMappingExposure ?? o.toneMappingExposure,
1210
- preserveDrawingBuffer: e.render?.preserveDrawingBuffer ?? false,
1211
- ambientOcclusion: e.render?.ambientOcclusion ?? o.ambientOcclusion,
1212
- aoIntensity: e.render?.aoIntensity ?? 1,
1213
- aoPixelRatio: e.render?.aoPixelRatio ?? 1
1214
- },
1215
- controls: {
1216
- enableDamping: e.controls?.enableDamping ?? false,
1217
- dampingFactor: e.controls?.dampingFactor || .05,
1218
- autoRotate: e.controls?.autoRotate ?? false,
1219
- autoRotateSpeed: e.controls?.autoRotateSpeed || .5,
1220
- enableZoom: e.controls?.enableZoom ?? true,
1221
- enablePan: e.controls?.enablePan ?? true,
1222
- minDistance: e.controls?.minDistance || n.minDistance,
1223
- maxDistance: e.controls?.maxDistance || Infinity
1224
- },
1225
- grid: {
1226
- enabled: e.grid?.enabled ?? false,
1227
- cellSize: e.grid?.cellSize ?? 1,
1228
- majorEvery: e.grid?.majorEvery ?? 10,
1229
- cellColor: e.grid?.cellColor ?? 8947848,
1230
- majorColor: e.grid?.majorColor ?? 4473924,
1231
- fadeDistance: e.grid?.fadeDistance ?? 100,
1232
- plane: e.grid?.plane ?? Vn(e.environment?.sceneUp ?? ae)
1233
- },
1234
- gizmo: { enabled: e.gizmo?.enabled ?? false },
1235
- edges: {
1236
- enabled: e.edges?.enabled ?? false,
1237
- color: e.edges?.color,
1238
- darken: e.edges?.darken,
1239
- width: e.edges?.width ?? 1.5,
1240
- thresholdAngle: e.edges?.thresholdAngle ?? 44,
1241
- distanceFade: e.edges?.distanceFade ?? true
1242
- },
1243
- measure: {
1244
- enabled: e.measure?.enabled ?? false,
1245
- snapPixels: e.measure?.snapPixels,
1246
- color: e.measure?.color,
1247
- labelClassName: e.measure?.labelClassName,
1248
- displayUnit: e.measure?.displayUnit,
1249
- format: e.measure?.format
1250
- },
1251
- events: {
1252
- onBackgroundClicked: e.events?.onBackgroundClicked,
1253
- onObjectSelected: e.events?.onObjectSelected,
1254
- onMeshMetadataClicked: e.events?.onMeshMetadataClicked,
1255
- onMeshDoubleClicked: e.events?.onMeshDoubleClicked,
1256
- selectionColor: e.events?.selectionColor || "#ff0000",
1257
- enableEventHandlers: e.events?.enableEventHandlers ?? true,
1258
- enableKeyboardControls: e.events?.enableKeyboardControls ?? true,
1259
- enableClickToFocus: e.events?.enableClickToFocus ?? true,
1260
- enableDoubleClickZoom: e.events?.enableDoubleClickZoom ?? true,
1261
- onReady: e.events?.onReady,
1262
- onFrame: e.events?.onFrame
1263
- }
1264
- };
1265
- }
1266
- function he(e) {
1267
- for (let r of Object.values(e)) r instanceof D.Texture && r.dispose();
1268
- e.dispose();
1269
- }
1270
- function kn(e, r) {
1271
- if (r.isEmpty()) return;
1272
- let t = r.getCenter(new D.Vector3()), n = r.getSize(new D.Vector3()).length() * .5 * 1.2, a = e.shadow.camera;
1273
- a.left = -n, a.right = n, a.top = n, a.bottom = -n, e.target.position.copy(t), e.target.updateMatrixWorld();
1274
- let o = e.position.distanceTo(t);
1275
- a.near = Math.max(n * .01, o - n), a.far = o + n, a.updateProjectionMatrix();
1276
- }
1277
- function Un(e) {
1278
- let r = new D.Scene();
1279
- return r.background = (typeof e.environment.backgroundColor == "string" ? new D.Color(e.environment.backgroundColor) : e.environment.backgroundColor) || null, r;
1280
- }
1281
- function _n(e, r, t, n, a, o, i, s, l, c, u, d, m, E) {
1282
- let T = null, f = performance.now(), x = () => {
1283
- let { width: C, height: w } = i();
1284
- if (C === 0 || w === 0) return;
1285
- let p = Math.floor(C * s), b = Math.floor(w * s);
1286
- (e.domElement.width !== p || e.domElement.height !== b) && (e.setPixelRatio(s), e.setSize(C, w, false), t.aspect = C / w, t.updateProjectionMatrix(), a.updateAspect(C, w), d?.()?.setSize(C, w, s), m?.setSize(C, w));
1287
- }, H = function() {
1288
- T = requestAnimationFrame(H);
1289
- let C = performance.now(), w = (C - f) / 1e3;
1290
- f = C, x(), (o.enableDamping || o.autoRotate) && o.update(), c && c.update(n().position), u && u.update(w), E && E.update(), l?.(w);
1291
- let p = n(), b = d?.();
1292
- b ? (b.setCamera(p), b.render(w)) : e.render(r, p), m && m.render(r, p), u && u.render(e);
1293
- };
1294
- return {
1295
- animate: H,
1296
- dispose: () => {
1297
- T !== null && (cancelAnimationFrame(T), T = null);
1298
- }
1299
- };
1300
- }
1301
- function zn(e, r, t, n) {
1302
- t.environment.enableEnvironmentLighting ? new HDRLoader().load(t.environment.hdrPath || "/baseHDR.hdr", function(a) {
1303
- if (n()) {
1304
- a.dispose();
1305
- return;
1306
- }
1307
- if (!a?.image) {
1308
- m().warn("HDR loaded without image data; skipping environment map."), a?.dispose(), t.events.onReady?.();
1309
- return;
1310
- }
1311
- a.mapping = D.EquirectangularReflectionMapping;
1312
- let o = new D.PMREMGenerator(r);
1313
- o.compileEquirectangularShader();
1314
- let i = o.fromEquirectangular(a).texture;
1315
- o.dispose(), e.environment = i, e.environmentIntensity = t.environment.environmentIntensity ?? 1, t.environment.showEnvironment ? e.background = a : a.dispose(), t.events.onReady?.();
1316
- }, void 0, function(a) {
1317
- n() || (m().warn("HDR texture could not be loaded, falling back to basic lighting:", a), t.events.onReady?.());
1318
- }) : t.events.onReady?.();
1319
- }
1320
- function Nn(e, r) {
1321
- let t = new D.AmbientLight(r.lighting.ambientLightColor, r.lighting.ambientLightIntensity);
1322
- e.add(t);
1323
- let n = null;
1324
- if (r.lighting.enableHemisphereLight) {
1325
- n = new D.HemisphereLight(r.lighting.hemisphereSkyColor, r.lighting.hemisphereGroundColor, r.lighting.hemisphereIntensity);
1326
- let i = r.environment.sceneUp ?? ae;
1327
- n.position.copy(i), e.add(n);
1328
- }
1329
- if (!r.lighting.enableSunlight) return {
1330
- ambient: t,
1331
- hemisphere: n,
1332
- sun: null
1333
- };
1334
- let a = new D.DirectionalLight(r.lighting.sunlightColor ?? 16777215, r.lighting.sunlightIntensity), o = r.lighting.sunlightPosition;
1335
- return o && a.position.set(o.x, o.y, o.z), r.render.enableShadows ? (a.castShadow = true, a.shadow.mapSize.width = r.render.shadowMapSize || 2048, a.shadow.mapSize.height = r.render.shadowMapSize || 2048, a.shadow.bias = -1e-4, a.shadow.normalBias = .02, a.shadow.radius = 4, e.add(a), e.add(a.target), {
1336
- ambient: t,
1337
- hemisphere: n,
1338
- sun: a
1339
- }) : (e.add(a), {
1340
- ambient: t,
1341
- hemisphere: n,
1342
- sun: null
1343
- });
1344
- }
1345
- function Gn(e, r) {
1346
- let t = r.floor.size, n = new D.PlaneGeometry(t, t), a = typeof r.floor.color == "string" ? new D.Color(r.floor.color) : r.floor.color, o = new D.MeshStandardMaterial({
1347
- color: a,
1348
- roughness: r.floor.roughness,
1349
- metalness: r.floor.metalness,
1350
- side: D.DoubleSide
1351
- }), i = new D.Mesh(n, o);
1352
- i.userData.id = "floor", i.name = "floor";
1353
- let s = (r.environment?.sceneUp || ae).clone().normalize();
1354
- i.quaternion.setFromUnitVectors(new D.Vector3(0, 0, 1), s), i.position.set(0, 0, 0), r.floor.receiveShadow && r.render.enableShadows && (i.receiveShadow = true), e.add(i);
1355
- }
1356
- function jn(e, r) {
1357
- let t = r.parentElement, n = t ? t.clientWidth : window.innerWidth, a = t ? t.clientHeight : window.innerHeight, o = new D.PerspectiveCamera(e.camera.fov, n / a, e.camera.near, e.camera.far), i = e.camera.position;
1358
- return i && o.position.set(i.x, i.y, i.z), o;
1359
- }
1360
- function Wn(e, r, t) {
1361
- let n = new D.WebGLRenderer({
1362
- antialias: r.render.antialias,
1363
- canvas: e,
1364
- alpha: true,
1365
- powerPreference: "high-performance",
1366
- preserveDrawingBuffer: r.render.preserveDrawingBuffer,
1367
- logarithmicDepthBuffer: false
1368
- }), a = e.parentElement, o = a ? a.clientWidth : window.innerWidth, i = a ? a.clientHeight : window.innerHeight;
1369
- return a && (e.style.width = "100%", e.style.height = "100%", e.style.display = "block"), n.setSize(o, i, false), n.setPixelRatio(t), r.render.enableShadows && (n.shadowMap.enabled = true, n.shadowMap.type = D.VSMShadowMap), n.toneMapping = r.render.toneMapping, n.toneMappingExposure = r.render.toneMappingExposure ?? 1, n.outputColorSpace = D.SRGBColorSpace, n.sortObjects = true, n;
1370
- }
1371
- function $n(e, r, t, n) {
1372
- let a = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Map(), i = new D.Raycaster(), s = new D.Vector2(), l = new D.Vector2(), c = () => t.getActiveCamera(), u = (p) => {
1373
- let b = p;
1374
- for (; b;) {
1375
- if (!b.visible) return false;
1376
- b = b.parent;
1377
- }
1378
- return true;
1379
- }, d = () => {
1380
- let p = ee(r);
1381
- if (p.isEmpty()) {
1382
- m().warn("No objects to fit to view");
1383
- return;
1384
- }
1385
- t.frameBounds(p, false);
1386
- }, m$1 = typeof n.events.selectionColor == "string" ? new D.Color(n.events.selectionColor) : n.events.selectionColor instanceof D.Color ? n.events.selectionColor : new D.Color("#ff0000"), E = () => {
1387
- a.forEach((p) => {
1388
- let b = p;
1389
- if (o.has(p)) {
1390
- let R = o.get(p), v = b.material;
1391
- v instanceof D.Material ? v.dispose() : Array.isArray(v) && v.forEach((V) => V.dispose()), b.material = R, o.delete(p);
1392
- let S = p;
1393
- for (; S.parent;) S = S.parent;
1394
- S !== r && (R instanceof D.Material ? R.dispose() : R.forEach((V) => V.dispose()));
1395
- }
1396
- }), a.clear();
1397
- }, T = (p) => {
1398
- let b = p;
1399
- if (!(b.material instanceof D.Material)) return false;
1400
- o.set(p, b.material);
1401
- let R = b.material.clone();
1402
- return p instanceof D.Mesh && "emissive" in R ? R.emissive = m$1.clone() : "color" in R && (R.color = m$1.clone()), b.material = R, true;
1403
- }, f = () => {
1404
- let p = ee(r), b = p.isEmpty() ? 1 : p.getSize(new D.Vector3()).length();
1405
- i.params.Points.threshold = b * .01;
1406
- }, x = (p) => {
1407
- l.set(p.clientX, p.clientY);
1408
- }, H = (p) => {
1409
- let b = new D.Vector2(p.clientX, p.clientY);
1410
- if (l.distanceTo(b) > 5) return;
1411
- let R = e.getBoundingClientRect();
1412
- s.x = (p.clientX - R.left) / R.width * 2 - 1, s.y = -((p.clientY - R.top) / R.height) * 2 + 1, f(), i.setFromCamera(s, c());
1413
- let v = i.intersectObjects(r.children, true).filter((S) => u(S.object));
1414
- if (v.length > 0) {
1415
- let S = v[0].object;
1416
- a.has(S) || (E(), a.add(S), T(S), n.events?.onObjectSelected?.(S), S instanceof D.Mesh && Object.keys(S.userData).length > 0 && n.events?.onMeshMetadataClicked?.(S.userData));
1417
- } else E(), n.events?.onBackgroundClicked?.({
1418
- x: s.x,
1419
- y: s.y
1420
- });
1421
- }, g = (p) => {
1422
- let b = e.getBoundingClientRect();
1423
- s.x = (p.clientX - b.left) / b.width * 2 - 1, s.y = -((p.clientY - b.top) / b.height) * 2 + 1, f(), i.setFromCamera(s, c());
1424
- let R = i.intersectObjects(r.children, true).filter((V) => u(V.object));
1425
- if (R.length === 0) return;
1426
- let v = R[0].object;
1427
- if (n.events?.onMeshDoubleClicked?.(v), !n.events?.enableDoubleClickZoom) return;
1428
- let S = new D.Box3().setFromObject(v);
1429
- S.isEmpty() || t.frameBounds(S, true);
1430
- }, C = (p) => {
1431
- if (n.events?.enableKeyboardControls) switch (p.key.toLowerCase()) {
1432
- case "f":
1433
- p.preventDefault(), d();
1434
- break;
1435
- case "escape":
1436
- p.preventDefault(), E();
1437
- break;
1438
- case " ":
1439
- p.preventDefault(), d();
1440
- break;
1441
- }
1442
- };
1443
- return n.events?.enableClickToFocus && (e.addEventListener("mousedown", x), e.addEventListener("click", H), e.addEventListener("dblclick", g)), n.events?.enableKeyboardControls && (e.setAttribute("tabindex", "0"), e.addEventListener("keydown", C)), {
1444
- dispose: () => {
1445
- e.removeEventListener("mousedown", x), e.removeEventListener("click", H), e.removeEventListener("dblclick", g), e.removeEventListener("keydown", C), E();
1446
- },
1447
- fitToView: d,
1448
- clearSelection: E
1449
- };
1450
- }
1451
- function Yn(e, r, t) {
1452
- let n = new OrbitControls(e, r), a = t.camera.target;
1453
- return a && n.target.set(a.x, a.y, a.z), n.enableDamping = t.controls.enableDamping || false, n.dampingFactor = t.controls.dampingFactor || .05, n.autoRotate = t.controls.autoRotate || false, n.autoRotateSpeed = t.controls.autoRotateSpeed || .5, n.enableZoom = t.controls.enableZoom ?? true, n.enablePan = t.controls.enablePan ?? true, n.minDistance = t.controls.minDistance || .001, n.maxDistance = t.controls.maxDistance || Infinity, n.screenSpacePanning = false, n.maxPolarAngle = Math.PI, n.update(), n;
1454
- }
1455
- var Yo = [
1456
- "technical",
1457
- "studio",
1458
- "showcase"
1459
- ];
1460
- function ge(e, r, t, n = true) {
1461
- return {
1462
- x: e,
1463
- y: r,
1464
- z: t
1465
- };
1466
- }
1467
- var Kn = "#ffffff";
1468
- var ot = 12;
1469
- var Jn = 4e-4;
1470
- var Qn = 12;
1471
- var er = .05;
1472
- function at(e, r = {}) {
1473
- if (!e || e.length === 0) return [];
1474
- let { rhino: t, applyTransforms: n = true } = r, a = [];
1475
- for (let o of e) switch (o.kind) {
1476
- case "curve": {
1477
- let i = nr(o, t, n);
1478
- i && a.push(i);
1479
- break;
1480
- }
1481
- case "point": {
1482
- let i = rr(o, n);
1483
- i && a.push(i);
1484
- break;
1485
- }
1486
- default: {
1487
- let s = o;
1488
- m().warn(`Skipping unknown display item kind: ${String(s.kind)}`);
1489
- break;
1490
- }
1491
- }
1492
- return a;
1493
- }
1494
- var tr = 2;
1495
- function nr(e, r, t) {
1496
- if (!r) return m().warn("No rhino3dm instance provided; skipping curve display item."), null;
1497
- let n = or(e.json, r);
1498
- if (!n) return null;
1499
- let a;
1500
- try {
1501
- a = ar(n, t);
1502
- } catch (d) {
1503
- return m().warn("Failed to tessellate curve display item; skipping.", d), null;
1504
- } finally {
1505
- le(n);
1506
- }
1507
- if (a.length < 2) return null;
1508
- let o = [];
1509
- for (let d of a) o.push(d.x, d.y, d.z);
1510
- let i = new LineGeometry();
1511
- i.setPositions(o);
1512
- let s = it(e.color, e.opacity), l = new LineMaterial({ color: s.color }), c = l;
1513
- c.linewidth = e.width ?? tr, c.transparent = s.transparent, c.opacity = s.opacity;
1514
- let u = new Line2(i, l);
1515
- return u.computeLineDistances(), u.name = e.name, u.userData = {
1516
- source: "compute",
1517
- id: e.id,
1518
- layer: e.layer,
1519
- kind: "curve",
1520
- metadata: e.metadata
1521
- }, u;
1522
- }
1523
- function rr(e, r) {
1524
- let { position: t } = e;
1525
- if (!t || typeof t.X != "number" || !Number.isFinite(t.X) || typeof t.Y != "number" || !Number.isFinite(t.Y) || typeof t.Z != "number" || !Number.isFinite(t.Z)) return m().warn(`Skipping point display item with missing or non-finite position (id: ${String(e.id)}).`), null;
1526
- let { x: n, y: a, z: o } = ge(t.X, t.Y, t.Z, r), i = new D.BufferGeometry();
1527
- i.setAttribute("position", new D.Float32BufferAttribute([
1528
- n,
1529
- a,
1530
- o
1531
- ], 3));
1532
- let s = new D.PointsMaterial({
1533
- ...it(e.color, e.opacity),
1534
- size: 6,
1535
- sizeAttenuation: false
1536
- }), l = new D.Points(i, s);
1537
- return l.name = e.name, l.userData = {
1538
- source: "compute",
1539
- id: e.id,
1540
- layer: e.layer,
1541
- kind: "point",
1542
- metadata: e.metadata
1543
- }, l;
1544
- }
1545
- function le(e) {
1546
- e?.delete?.();
1547
- }
1548
- function or(e, r) {
1549
- try {
1550
- let t = JSON.parse(e), n = r.CommonObject.decode(t);
1551
- return n && typeof n.pointAt == "function" ? n : (le(n), m().warn("Decoded display-item JSON is not a curve; skipping."), null);
1552
- } catch (t) {
1553
- return m().warn("Failed to decode curve display item JSON:", t), null;
1554
- }
1555
- }
1556
- function ar(e, r) {
1557
- return ir(e, r) || sr(e, r);
1558
- }
1559
- function ir(e, r) {
1560
- if (!e.isPolyline()) return null;
1561
- let t = e.tryGetPolyline(), n = Array.isArray(t) ? t[1] : t;
1562
- if (!n || typeof n.count != "number" || n.count < 2) return le(n), null;
1563
- let a = [];
1564
- for (let o = 0; o < n.count; o++) {
1565
- let i = n.get(o), { x: s, y: l, z: c } = ge(i[0], i[1], i[2], r);
1566
- a.push(new D.Vector3(s, l, c));
1567
- }
1568
- return le(n), a;
1569
- }
1570
- function sr(e, r) {
1571
- let t = e.domain, n = t[0], o = t[1] - n, i = (d) => {
1572
- let m = e.pointAt(d), { x: E, y: T, z: f } = ge(m[0], m[1], m[2], r);
1573
- return new D.Vector3(E, T, f);
1574
- }, s = lr(e), l = n, c = i(n), u = [c];
1575
- for (let d = 0; d < ot; d++) {
1576
- let m = n + o * (d + 1) / ot, E = i(m);
1577
- xe(l, c, m, E, i, s, Qn, u), u.push(E), l = m, c = E;
1578
- }
1579
- return u;
1580
- }
1581
- function xe(e, r, t, n, a, o, i, s) {
1582
- if (i <= 0) return;
1583
- let l = (e + t) / 2, c = a(l), u = ur(c, r, n), d = cr(r, c, n);
1584
- u <= o && d <= er || (xe(e, r, l, c, a, o, i - 1, s), s.push(c), xe(l, c, t, n, a, o, i - 1, s));
1585
- }
1586
- function lr(e) {
1587
- let r = e.getBoundingBox(), t = r.min, n = r.max;
1588
- le(r);
1589
- let a = Math.hypot(n[0] - t[0], n[1] - t[1], n[2] - t[2]);
1590
- return Math.max(a * Jn, 1e-6);
1591
- }
1592
- function cr(e, r, t) {
1593
- let n = r.x - e.x, a = r.y - e.y, o = r.z - e.z, i = t.x - r.x, s = t.y - r.y, l = t.z - r.z, c = Math.sqrt(n * n + a * a + o * o), u = Math.sqrt(i * i + s * s + l * l);
1594
- if (c === 0 || u === 0) return 0;
1595
- let d = n * i + a * s + o * l, m = Math.max(-1, Math.min(1, d / (c * u)));
1596
- return Math.acos(m);
1597
- }
1598
- function ur(e, r, t) {
1599
- let n = t.x - r.x, a = t.y - r.y, o = t.z - r.z, i = n * n + a * a + o * o;
1600
- if (i === 0) return e.distanceTo(r);
1601
- let s = e.x - r.x, l = e.y - r.y, c = e.z - r.z, u = Math.max(0, Math.min(1, (s * n + l * a + c * o) / i)), d = s - n * u, m = l - a * u, E = c - o * u;
1602
- return Math.sqrt(d * d + m * m + E * E);
1603
- }
1604
- function it(e, r) {
1605
- let t = r ?? 1;
1606
- return {
1607
- color: new D.Color(e ?? Kn),
1608
- transparent: t < 1,
1609
- opacity: t
1610
- };
1611
- }
1612
- var st = 1096174675;
1613
- var mr = 1515605075;
1614
- var lt = 3;
1615
- var ct = 1;
1616
- var Ce = 1;
1617
- var pr = 2;
1618
- var fr = 4;
1619
- var Er = 8;
1620
- var hr = 16;
1621
- var aa = 0;
1622
- var gr = 1;
1623
- var ut = 12;
1624
- var dt = 56;
1625
- var yr = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1;
1626
- function we(e) {
1627
- if (!yr) throw new p("SLVA parsing requires a little-endian host: the zero-copy geometry readers view the wire bytes in host byte order.", l.ENVIRONMENT_ERROR);
1628
- let r = Hr(Rr(e)), t = new DataView(r.buffer, r.byteOffset, r.byteLength);
1629
- if (r.byteLength < ut) throw z("Blob too small to contain SLVA header.", {
1630
- expectedBytes: ut,
1631
- availableBytes: r.byteLength
1632
- });
1633
- let n = 0, a = t.getUint32(n, true);
1634
- if (n += 4, a !== 1096174675) throw z(`Invalid SLVA magic: 0x${a.toString(16)}`, {
1635
- expectedMagic: `0x${st.toString(16)}`,
1636
- actualMagic: `0x${a.toString(16)}`
1637
- });
1638
- let o = t.getUint32(n, true);
1639
- if (n += 4, o < 1 || o > 3) throw z(`Unsupported SLVA version: ${o}`, {
1640
- minSupportedVersion: 1,
1641
- maxSupportedVersion: 3,
1642
- actualVersion: o
1643
- });
1644
- let i = t.getUint32(n, true);
1645
- if (n += 4, n + i > r.byteLength) throw z("Insufficient data to read metadata JSON.", {
1646
- expectedBytes: i,
1647
- availableBytes: r.byteLength - n,
1648
- offset: n
1649
- });
1650
- let s = r.subarray(n, n + i);
1651
- n += i;
1652
- let l$1;
1653
- try {
1654
- l$1 = JSON.parse(xr(s));
1655
- } catch (J) {
1656
- throw z(`Failed to parse metadata JSON: ${J instanceof Error ? J.message : String(J)}`, { metadataLen: i });
1657
- }
1658
- if (n + dt > r.byteLength) throw z("Insufficient data to read geometry header.", {
1659
- expectedBytes: dt,
1660
- availableBytes: r.byteLength - n,
1661
- offset: n
1662
- });
1663
- let c = t.getUint32(n, true);
1664
- n += 4;
1665
- let u = t.getFloat64(n, true);
1666
- n += 8;
1667
- let d = t.getFloat64(n, true);
1668
- n += 8;
1669
- let m = t.getFloat64(n, true);
1670
- n += 8;
1671
- let E = t.getFloat64(n, true);
1672
- n += 8;
1673
- let T = t.getFloat64(n, true);
1674
- n += 8;
1675
- let f = t.getFloat64(n, true);
1676
- n += 8;
1677
- let x = t.getUint32(n, true);
1678
- n += 4;
1679
- let H = (c & 1) !== 0, g = (c & 4) !== 0, C = x * 3, p$1 = C * (H ? 4 : 2);
1680
- if (n + p$1 > r.byteLength) throw z("Insufficient data to read vertices.", {
1681
- expectedBytes: p$1,
1682
- availableBytes: r.byteLength - n,
1683
- offset: n,
1684
- useFloat32: H,
1685
- vertexCount: x
1686
- });
1687
- let b = r.byteOffset + n, R;
1688
- if (H ? R = pt(r.buffer, b, C) : g ? R = Mr(ve(r.buffer, b, C)) : R = vr(r.buffer, b, C), n += p$1, n + 4 > r.byteLength) throw z("Insufficient data to read index count.", {
1689
- expectedBytes: 4,
1690
- availableBytes: r.byteLength - n,
1691
- offset: n
1692
- });
1693
- let v = t.getUint32(n, true);
1694
- n += 4;
1695
- let S = (c & 2) !== 0, G = v * (S ? 2 : 4);
1696
- if (n + G > r.byteLength) throw z("Insufficient data to read indices.", {
1697
- expectedBytes: G,
1698
- availableBytes: r.byteLength - n,
1699
- offset: n,
1700
- indexCount: v,
1701
- useUint16Indices: S
1702
- });
1703
- let k = S ? ve(r.buffer, r.byteOffset + n, v) : Cr(r.buffer, r.byteOffset + n, v);
1704
- g && (k = k instanceof Uint16Array ? Ar(k) : Sr(k)), wr(k, x), n += G;
1705
- let X = null;
1706
- if ((c & 8) !== 0) {
1707
- let J = br(r, t, n, x, g);
1708
- X = J.uvs, n = J.offset;
1709
- }
1710
- let ne = null;
1711
- return c & 16 && (ne = Tr(r, n, x, g)), {
1712
- metadata: l$1,
1713
- flags: c,
1714
- vertices: R,
1715
- indices: k,
1716
- origin: [
1717
- u,
1718
- d,
1719
- m
1720
- ],
1721
- scale: [
1722
- E,
1723
- T,
1724
- f
1725
- ],
1726
- uvs: X,
1727
- colors: ne
1728
- };
1729
- }
1730
- var mt = 36;
1731
- function br(e, r, t, n, a) {
1732
- if (t + mt > e.byteLength) throw z("Insufficient data to read UV chunk header.", {
1733
- expectedBytes: mt,
1734
- availableBytes: e.byteLength - t,
1735
- offset: t
1736
- });
1737
- let o = r.getUint32(t, true);
1738
- t += 4;
1739
- let i = r.getFloat64(t, true);
1740
- t += 8;
1741
- let s = r.getFloat64(t, true);
1742
- t += 8;
1743
- let l = r.getFloat64(t, true);
1744
- t += 8;
1745
- let c = r.getFloat64(t, true);
1746
- t += 8;
1747
- let u = n * 2, d = o === 1, m = u * (d ? 4 : 2);
1748
- if (t + m > e.byteLength) throw z("Insufficient data to read UV chunk.", {
1749
- expectedBytes: m,
1750
- availableBytes: e.byteLength - t,
1751
- offset: t,
1752
- uvFormat: o,
1753
- vertexCount: n
1754
- });
1755
- let E = e.byteOffset + t, T;
1756
- if (d) T = pt(e.buffer, E, u).slice();
1757
- else {
1758
- let f = ve(e.buffer, E, u);
1759
- T = new Float32Array(u);
1760
- let x = 0, H = 0;
1761
- for (let g = 0; g < u; g += 2) a ? (x = x + K(f[g]) & 65535, H = H + K(f[g + 1]) & 65535) : (x = f[g], H = f[g + 1]), T[g] = i + x * l, T[g + 1] = s + H * c;
1762
- }
1763
- return {
1764
- uvs: T,
1765
- offset: t + m
1766
- };
1767
- }
1768
- function Tr(e, r, t, n) {
1769
- let a = t * 3;
1770
- if (r + a > e.byteLength) throw z("Insufficient data to read vertex-color chunk.", {
1771
- expectedBytes: a,
1772
- availableBytes: e.byteLength - r,
1773
- offset: r,
1774
- vertexCount: t
1775
- });
1776
- let o = e.subarray(r, r + a);
1777
- if (!n) return o.slice();
1778
- let i = new Uint8Array(a), s = 0, l = 0, c = 0;
1779
- for (let u = 0; u < a; u += 3) s = s + K(o[u]) & 255, l = l + K(o[u + 1]) & 255, c = c + K(o[u + 2]) & 255, i[u] = s, i[u + 1] = l, i[u + 2] = c;
1780
- return i;
1781
- }
1782
- function Rr(e) {
1783
- return typeof e == "string" ? x(e) : e instanceof Uint8Array ? e : new Uint8Array(e);
1784
- }
1785
- function Hr(e) {
1786
- if (e.byteLength < 8) return e;
1787
- let r = new DataView(e.buffer, e.byteOffset, e.byteLength);
1788
- if (r.getUint32(0, true) !== 1515605075) return e;
1789
- let t = r.getUint32(4, true), n = e.subarray(8), a = Math.max(n.byteLength * 1032 + 1024, 1 << 20);
1790
- if (t > a) throw z("SLVZ header declares an implausible uncompressed length", {
1791
- uncompressedLen: t,
1792
- deflatedBytes: n.byteLength,
1793
- maxPlausibleLen: a
1794
- });
1795
- let o;
1796
- try {
1797
- o = inflateSync(n, { out: new Uint8Array(t + 1) });
1798
- } catch (i) {
1799
- throw z(`Failed to inflate SLVZ blob: ${i instanceof Error ? i.message : String(i)}`, {
1800
- uncompressedLen: t,
1801
- deflatedBytes: n.byteLength
1802
- });
1803
- }
1804
- if (o.byteLength !== t) throw z("SLVZ payload inflated to a different size than the header declares.", {
1805
- declaredLen: t,
1806
- actualLen: o.byteLength,
1807
- deflatedBytes: n.byteLength
1808
- });
1809
- return o;
1810
- }
1811
- function xr(e) {
1812
- if (typeof TextDecoder < "u") return new TextDecoder("utf-8").decode(e);
1813
- if (typeof globalThis.Buffer < "u") return globalThis.Buffer.from(e).toString("utf-8");
1814
- throw new p("No UTF-8 decoder available in this environment.", l.INVALID_STATE);
1815
- }
1816
- function vr(e, r, t) {
1817
- if (t === 0) return /* @__PURE__ */ new Int16Array(0);
1818
- if (r % 2 === 0) return new Int16Array(e, r, t);
1819
- let n = new Uint8Array(t * 2);
1820
- return n.set(new Uint8Array(e, r, t * 2)), new Int16Array(n.buffer);
1821
- }
1822
- function pt(e, r, t) {
1823
- if (t === 0) return /* @__PURE__ */ new Float32Array(0);
1824
- if (r % 4 === 0) return new Float32Array(e, r, t);
1825
- let n = new Uint8Array(t * 4);
1826
- return n.set(new Uint8Array(e, r, t * 4)), new Float32Array(n.buffer);
1827
- }
1828
- function ve(e, r, t) {
1829
- if (t === 0) return /* @__PURE__ */ new Uint16Array(0);
1830
- if (r % 2 === 0) return new Uint16Array(e, r, t);
1831
- let n = new Uint8Array(t * 2);
1832
- return n.set(new Uint8Array(e, r, t * 2)), new Uint16Array(n.buffer);
1833
- }
1834
- function Cr(e, r, t) {
1835
- if (t === 0) return /* @__PURE__ */ new Uint32Array(0);
1836
- if (r % 4 === 0) return new Uint32Array(e, r, t);
1837
- let n = new Uint8Array(t * 4);
1838
- return n.set(new Uint8Array(e, r, t * 4)), new Uint32Array(n.buffer);
1839
- }
1840
- function wr(e, r) {
1841
- if (e.length !== 0 && !(e instanceof Uint16Array && r > 65535)) {
1842
- for (let t = 0; t < e.length; t++) if (e[t] >= r) throw z("Index out of range of vertexCount.", {
1843
- indexPosition: t,
1844
- indexValue: e[t],
1845
- vertexCount: r
1846
- });
1847
- }
1848
- }
1849
- function K(e) {
1850
- return e >>> 1 ^ -(e & 1);
1851
- }
1852
- function Mr(e) {
1853
- let r = new Int16Array(e.length), t = 0, n = 0, a = 0;
1854
- for (let o = 0; o < e.length; o += 3) t = t + K(e[o]) << 16 >> 16, n = n + K(e[o + 1]) << 16 >> 16, a = a + K(e[o + 2]) << 16 >> 16, r[o] = t, r[o + 1] = n, r[o + 2] = a;
1855
- return r;
1856
- }
1857
- function Ar(e) {
1858
- let r = new Uint16Array(e.length), t = 0;
1859
- for (let n = 0; n < e.length; n++) t = t + K(e[n]) & 65535, r[n] = t;
1860
- return r;
1861
- }
1862
- function Sr(e) {
1863
- let r = new Uint32Array(e.length), t = 0;
1864
- for (let n = 0; n < e.length; n++) t = t + K(e[n]) >>> 0, r[n] = t;
1865
- return r;
1866
- }
1867
- function z(e, r) {
1868
- return new p(e, l.VALIDATION_ERROR, { context: r });
1869
- }
1870
- async function ma(e, r) {
1871
- let { debug: t = false } = r ?? {}, n = t ? performance.now() : 0, a, o = performance.now();
1872
- try {
1873
- a = JSON.parse(e);
1874
- } catch (s) {
1875
- return m().error("Error parsing mesh batch envelope JSON:", s), [];
1876
- }
1877
- let i = performance.now() - o;
1878
- return await Me(a, r, {
1879
- parseTime: i,
1880
- perfStart: n
1881
- });
1882
- }
1883
- async function Me(e, r, t) {
1884
- let { mergeByMaterial: n = true, applyTransforms: a = true, debug: o = false, material: i } = r ?? {}, { parseTime: s = 0, perfStart: l = o ? performance.now() : 0 } = t ?? {};
1885
- if (!e.compressedData) return [];
1886
- let c = performance.now();
1887
- return ft(we(e.compressedData), {
1888
- mergeByMaterial: n,
1889
- applyTransforms: a,
1890
- debug: o,
1891
- material: i,
1892
- parseTime: s,
1893
- decodeTime: performance.now() - c,
1894
- perfStart: l,
1895
- blobBytes: o ? _r(e.compressedData) : 0,
1896
- fallback: {
1897
- materials: e.materials,
1898
- groups: e.groups,
1899
- sourceComponentId: e.sourceComponentId
1900
- }
1901
- });
1902
- }
1903
- async function pa(e, r) {
1904
- let { mergeByMaterial: t = true, applyTransforms: n = true, debug: a = false, material: o } = r ?? {}, i = a ? performance.now() : 0, s = performance.now(), l = we(e), c = performance.now() - s, u = e.byteLength;
1905
- return ft(l, {
1906
- mergeByMaterial: t,
1907
- applyTransforms: n,
1908
- debug: a,
1909
- material: o,
1910
- parseTime: 0,
1911
- decodeTime: c,
1912
- perfStart: i,
1913
- blobBytes: u
1914
- });
1915
- }
1916
- function ft(e, r) {
1917
- let { mergeByMaterial: t, applyTransforms: n, debug: a, material: o, parseTime: i, decodeTime: s, perfStart: l, blobBytes: c, fallback: u } = r, d = e.metadata.materials ?? u?.materials ?? [], m$2 = e.metadata.groups ?? u?.groups ?? [], E = u?.sourceComponentId ?? e.metadata.sourceComponentId, T = (e.flags & 1) !== 0;
1918
- Lr(m$2, d.length, e.vertices.length / 3, e.indices.length);
1919
- let f = T ? Or(e.vertices) : Ir(e.vertices, e.origin, e.scale);
1920
- if (a) {
1921
- let w = e.vertices.byteLength + e.indices.byteLength;
1922
- m().debug("Mesh Batch Stats:"), m().debug(` Materials: ${d.length} | Groups: ${m$2.length}`), m().debug(` Vertices: ${e.vertices.length / 3} | Indices: ${e.indices.length}`), m().debug(` Format: ${T ? "float32" : "int16 quantized"}`), m().debug(` Blob: ${(c / 1024 / 1024).toFixed(2)} MB | Geometry on wire: ${(w / 1024 / 1024).toFixed(2)} MB`);
1923
- }
1924
- let x = performance.now(), H = d.map((w) => Vr(w, {
1925
- vertexColors: e.colors != null,
1926
- appearance: o
1927
- })), g = [];
1928
- for (let w of m$2) if (t && w.meshes.length > 1) {
1929
- let p = kr(w, f, e.indices, H, e.uvs, e.colors);
1930
- p.userData.sourceComponentId = E ?? null, g.push(p);
1931
- } else {
1932
- let p = Ur(w, f, e.indices, H, e.uvs, e.colors);
1933
- for (let b of p) b.userData.sourceComponentId = E ?? null;
1934
- g.push(...p);
1935
- }
1936
- let C = performance.now() - x;
1937
- if (a) {
1938
- let w = performance.now() - l;
1939
- m().debug("Performance:"), i > 0 && m().debug(` Parse JSON: ${i.toFixed(2)}ms`), m().debug(` Decode binary: ${s.toFixed(2)}ms`), m().debug(` Create Meshes: ${C.toFixed(2)}ms`), m().debug(` Total: ${w.toFixed(2)}ms`);
1940
- }
1941
- return Promise.resolve(g);
1942
- }
1943
- function ce(e, r) {
1944
- return new p(e, l.VALIDATION_ERROR, { context: r });
1945
- }
1946
- function Lr(e, r, t, n) {
1947
- for (let a of e) {
1948
- if (!Number.isInteger(a.materialId) || a.materialId < 0 || a.materialId >= r) throw ce("Group materialId out of range of the materials array.", {
1949
- materialId: a.materialId,
1950
- materialCount: r
1951
- });
1952
- for (let o of a.meshes) {
1953
- let i = {
1954
- vertexStart: o.vertexStart,
1955
- vertexCount: o.vertexCount,
1956
- indexStart: o.indexStart,
1957
- indexCount: o.indexCount
1958
- };
1959
- for (let [s, l] of Object.entries(i)) if (!Number.isInteger(l) || l < 0) throw ce(`Mesh metadata field "${s}" must be a non-negative integer.`, {
1960
- meshName: o.name,
1961
- field: s,
1962
- value: l
1963
- });
1964
- if (o.vertexStart + o.vertexCount > t) throw ce("Mesh vertex window exceeds the batch vertex buffer.", {
1965
- meshName: o.name,
1966
- vertexStart: o.vertexStart,
1967
- vertexCount: o.vertexCount,
1968
- totalVertexCount: t
1969
- });
1970
- if (o.indexStart + o.indexCount > n) throw ce("Mesh index window exceeds the batch index buffer.", {
1971
- meshName: o.name,
1972
- indexStart: o.indexStart,
1973
- indexCount: o.indexCount,
1974
- totalIndexCount: n
1975
- });
1976
- }
1977
- }
1978
- }
1979
- function Et(e, r) {
1980
- if (e < r.vertexStart || e >= r.vertexStart + r.vertexCount) throw ce("Index references a vertex outside its mesh's vertex window.", {
1981
- meshName: r.name,
1982
- indexValue: e,
1983
- vertexStart: r.vertexStart,
1984
- vertexCount: r.vertexCount
1985
- });
1986
- }
1987
- function Ir(e, r, t, n) {
1988
- let a = new Float32Array(e.length), o = r[0], i = r[1], s = r[2], l = t[0], c = t[1], u = t[2];
1989
- for (let d = 0; d < e.length; d += 3) a[d] = o + (e[d] + 32767) * l, a[d + 1] = i + (e[d + 1] + 32767) * c, a[d + 2] = s + (e[d + 2] + 32767) * u;
1990
- return a;
1991
- }
1992
- function Or(e, r) {
1993
- return e;
1994
- }
1995
- var Dr = .5;
1996
- var Pr = .5;
1997
- var Fr = .3;
1998
- function Vr(e, r) {
1999
- let t = _e(e.color), n = r?.vertexColors ?? false, a = r?.appearance, o = new D.MeshPhysicalMaterial({
2000
- color: t,
2001
- metalness: e.metalness,
2002
- roughness: e.roughness,
2003
- opacity: e.opacity,
2004
- transparent: e.transparent,
2005
- vertexColors: n,
2006
- side: a?.cullBackfaces ? D.FrontSide : D.DoubleSide,
2007
- polygonOffset: true,
2008
- polygonOffsetFactor: .5,
2009
- polygonOffsetUnits: .5,
2010
- depthWrite: true,
2011
- depthTest: true
2012
- });
2013
- return a?.envMapIntensity != null && (o.envMapIntensity = a.envMapIntensity), e.metalness > Dr && (o.clearcoat = Pr, o.clearcoatRoughness = Fr), n && Br(o), e.map && nt(o, e.map), o;
2014
- }
2015
- function Br(e) {
2016
- e.onBeforeCompile = (r) => {
2017
- r.vertexShader = r.vertexShader.replace("#include <color_vertex>", `#include <color_vertex>
2018
- #if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA )
2019
- vColor.rgb = mix(
2020
- vColor.rgb / 12.92,
2021
- pow( ( vColor.rgb + 0.055 ) / 1.055, vec3( 2.4 ) ),
2022
- step( vec3( 0.04045 ), vColor.rgb )
2023
- );
2024
- #endif`);
2025
- };
2026
- }
2027
- function kr(e, r, t, n, a = null, o = null) {
2028
- let i = 0, s = 0;
2029
- for (let g of e.meshes) i += g.vertexCount, s += g.indexCount;
2030
- let l = new Float32Array(i * 3), c = new Uint32Array(s), u = a ? new Float32Array(i * 2) : null, d = o ? new Uint8Array(i * 3) : null, m = 0, E = 0;
2031
- for (let g of e.meshes) {
2032
- let C = g.vertexStart * 3, w = g.vertexCount * 3;
2033
- if (l.set(r.subarray(C, C + w), m * 3), u && a) {
2034
- let R = g.vertexStart * 2;
2035
- u.set(a.subarray(R, R + g.vertexCount * 2), m * 2);
2036
- }
2037
- d && o && d.set(o.subarray(C, C + w), m * 3);
2038
- let p = t.subarray(g.indexStart, g.indexStart + g.indexCount), b = m - g.vertexStart;
2039
- for (let R = 0; R < p.length; R++) {
2040
- let v = p[R];
2041
- Et(v, g), c[E + R] = v + b;
2042
- }
2043
- m += g.vertexCount, E += g.indexCount;
2044
- }
2045
- let T = new D.BufferGeometry();
2046
- T.setAttribute("position", new D.BufferAttribute(l, 3)), T.setIndex(new D.BufferAttribute(c, 1)), u && T.setAttribute("uv", new D.BufferAttribute(u, 2)), d && T.setAttribute("color", new D.BufferAttribute(d, 3, true)), T.computeVertexNormals();
2047
- let f = new D.Mesh(T, n[e.materialId]), x = e.meshes[0], H = e.meshes.map((g) => g.name).filter((g) => g && g.length > 0);
2048
- return f.name = H.length > 0 ? H[0] : `merged_material_${e.materialId}`, f.castShadow = true, f.receiveShadow = true, f.userData = {
2049
- source: "compute",
2050
- name: f.name,
2051
- layer: x?.layer ?? "",
2052
- originalIndex: x?.originalIndex ?? 0,
2053
- metadata: x?.metadata ?? {},
2054
- mergedFrom: e.meshes.slice(1).map((g) => ({
2055
- name: g.name,
2056
- layer: g.layer,
2057
- originalIndex: g.originalIndex
2058
- }))
2059
- }, f;
2060
- }
2061
- function Ur(e, r, t, n, a = null, o = null) {
2062
- let i = [];
2063
- for (let s of e.meshes) {
2064
- let l = s.vertexStart * 3, c = s.vertexCount * 3, u = r.slice(l, l + c), d = t.subarray(s.indexStart, s.indexStart + s.indexCount), m = new Uint32Array(d.length), E = s.vertexStart;
2065
- for (let x = 0; x < d.length; x++) {
2066
- let H = d[x];
2067
- Et(H, s), m[x] = H - E;
2068
- }
2069
- let T = new D.BufferGeometry();
2070
- if (T.setAttribute("position", new D.BufferAttribute(u, 3)), T.setIndex(new D.BufferAttribute(m, 1)), a) {
2071
- let x = s.vertexStart * 2, H = a.slice(x, x + s.vertexCount * 2);
2072
- T.setAttribute("uv", new D.BufferAttribute(H, 2));
2073
- }
2074
- if (o) {
2075
- let x = o.slice(l, l + c);
2076
- T.setAttribute("color", new D.BufferAttribute(x, 3, true));
2077
- }
2078
- T.computeVertexNormals();
2079
- let f = new D.Mesh(T, n[e.materialId]);
2080
- f.name = s.name, f.userData = {
2081
- source: "compute",
2082
- name: s.name,
2083
- layer: s.layer ?? "",
2084
- originalIndex: s.originalIndex,
2085
- metadata: s.metadata ?? {}
2086
- }, f.castShadow = true, f.receiveShadow = true, i.push(f);
2087
- }
2088
- return i;
2089
- }
2090
- function _r(e) {
2091
- return Math.floor(e.length * 3 / 4);
2092
- }
2093
- var ht = {
2094
- Angstroms: 1e-10,
2095
- Nanometers: 1e-9,
2096
- Microns: 1e-6,
2097
- Millimeters: .001,
2098
- Centimeters: .01,
2099
- Decimeters: .1,
2100
- Meters: 1,
2101
- Dekameters: 10,
2102
- Hectometers: 100,
2103
- Kilometers: 1e3,
2104
- Megameters: 1e6,
2105
- Gigameters: 1e9,
2106
- Microinches: 2.54e-8,
2107
- Mils: 254e-7,
2108
- Inches: .0254,
2109
- Feet: .3048,
2110
- Yards: .9144,
2111
- Miles: 1609.344,
2112
- NauticalMiles: 1852
2113
- };
2114
- var zr = "Display";
2115
- var Nr = "DisplayBatch";
2116
- function Gr(e) {
2117
- let r = e.split(".");
2118
- return r.includes(zr) || r.includes(Nr);
2119
- }
2120
- var gt = /* @__PURE__ */ new Set();
2121
- async function ba(e, r) {
2122
- let t = performance.now(), n = [], { allowScaling: a = true, allowAutoPosition: o = true, rhino: i, debug: s = false, parsing: l = {} } = r ?? {};
2123
- try {
2124
- return await Wr(e, n, a ? jr(e.modelunits) : 1, l, i, s), o && qr(n), n;
2125
- } catch (c) {
2126
- throw Zr(c, n), c;
2127
- } finally {
2128
- s && Jr(t);
2129
- }
2130
- }
2131
- function jr(e) {
2132
- let r = ht[e];
2133
- return r !== void 0 ? r : (gt.has(e) || (gt.add(e), m().warn(`Unknown Rhino model unit "${e}" \u2014 geometry will not be scaled (factor 1). Known units: ${Object.keys(ht).join(", ")}.`)), 1);
2134
- }
2135
- async function Wr(e, r, t, n, a, o) {
2136
- for (let i of e.values) {
2137
- let s = i.InnerTree;
2138
- for (let l in s) {
2139
- let c = s[l];
2140
- c && await $r(c, r, t, n, a, o);
2141
- }
2142
- }
2143
- }
2144
- async function $r(e, r, t, n, a, o) {
2145
- for (let i of e) {
2146
- if (!Gr(i.type)) continue;
2147
- let s = {
2148
- mergeByMaterial: true,
2149
- applyTransforms: true,
2150
- debug: false,
2151
- ...n
2152
- }, l = Yr(i.data);
2153
- if (!l) {
2154
- m().error("Error parsing display batch envelope: invalid JSON");
2155
- continue;
2156
- }
2157
- let c = await Me(l, s), u = at(l.items, {
2158
- rhino: a,
2159
- applyTransforms: s.applyTransforms
2160
- }), d = [...c, ...u];
2161
- if (t !== 1) for (let m of d) m.scale.set(t, t, t);
2162
- r.push(...d), o && m().debug(`Extracted ${c.length} meshes and ${u.length} items from batch`);
2163
- }
2164
- }
2165
- function Yr(e) {
2166
- return typeof e == "string" ? Xr(e) : e;
2167
- }
2168
- function Xr(e) {
2169
- try {
2170
- return JSON.parse(e);
2171
- } catch {
2172
- return;
2173
- }
2174
- }
2175
- function qr(e) {
2176
- if (e.length === 0) return;
2177
- ze(e, be(e).min.z, "z");
2178
- }
2179
- function Zr(e, r) {
2180
- m().error("An unexpected error occurred:", e), Kr(r);
2181
- }
2182
- function Kr(e) {
2183
- for (let r of e) {
2184
- let t = r;
2185
- t.geometry && t.geometry.dispose(), t.material && (Array.isArray(t.material) ? t.material.forEach((n) => n.dispose()) : t.material.dispose());
2186
- }
2187
- }
2188
- function Jr(e) {
2189
- let r = performance.now() - e;
2190
- m().info("Time to process meshes:", `${r.toFixed(2)}ms`);
2191
- }
2192
-
2193
- export { Ao as A, Ce as C, Er as E, Fn as F, Ge as G, Hn as H, Ke as K, Me as M, Ne as N, St as S, Wo as W, Xe as X, Yo as Y, _e as _, ht as a, aa as b, ct as c, de as d, be as e, fr as f, gr as g, hr as h, et as i, je as j, ba as k, lt as l, mr as m, an as n, at as o, pr as p, qe as q, ma as r, st as s, pa as t, po as u, tt as v, we as w, xn as x, no as y, ze as z };
2194
- //# sourceMappingURL=chunk-INP5HVA2.js-ncp7W0Gu.js.map