@volter/game-editor 0.5.65 → 0.5.66

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 (544) hide show
  1. package/BUNDLED_NOTICES +1962 -363
  2. package/catalog/entries/bake.json +0 -1
  3. package/catalog/entries/blender.json +2 -2
  4. package/catalog/entries/reflections.json +2 -4
  5. package/catalog/project-source/src/lib/bake/asset-seed.ts +1 -2
  6. package/catalog/project-source/src/lib/bake/clip-layering.ts +3 -4
  7. package/catalog/project-source/src/lib/bake/gltf-bake.ts +1 -1
  8. package/catalog/project-source/src/lib/bake/params.ts +3 -5
  9. package/catalog/project-source/src/lib/bake/rest-relative-animation.ts +2 -3
  10. package/dist/.vite/manifest.json +2406 -2182
  11. package/dist/assets/{AssetBudgetPanel-J9--TZPU.js → AssetBudgetPanel-csYWK2H4.js} +8 -8
  12. package/dist/assets/{AudioViewer-CR7333fe.js → AudioViewer-BH_LUYs5.js} +1 -1
  13. package/dist/assets/{BVHLoader-6bQIXhMX.js → BVHLoader-Jkzh8hMf.js} +1 -1
  14. package/dist/assets/BufferGeometryUtils-CAbuTPOA.js +1 -0
  15. package/dist/assets/{CCDIKSolver-CD7vLpsK.js → CCDIKSolver-D4NvkJ8d.js} +1 -1
  16. package/dist/assets/{CSS3DRenderer-CL7ABLVK.js → CSS3DRenderer-CAS2WZZy.js} +1 -1
  17. package/dist/assets/CanvasSceneViewport-BlsRTk-X.js +1 -0
  18. package/dist/assets/ColladaLoader-DxYB89DA.js +3 -0
  19. package/dist/assets/{ColorInput-DQBNrW-K.js → ColorInput-CPQNsDf1.js} +1 -1
  20. package/dist/assets/{ConvexGeometry-CAzXlPVG.js → ConvexGeometry-Dinf-sev.js} +1 -1
  21. package/dist/assets/{ConvexHull-BINCESFp.js → ConvexHull-CrJ8FY-w.js} +1 -1
  22. package/dist/assets/{DecalGeometry-160KRdfg.js → DecalGeometry-owkbefLa.js} +1 -1
  23. package/dist/assets/EffectComposer-BHDH-NLz.js +1 -0
  24. package/dist/assets/EntityModelDocument-DuQivdvc.js +1 -0
  25. package/dist/assets/EnvironmentAssetDocument-CnTEMn3A.js +1 -0
  26. package/dist/assets/FBXLoader-BMUbIhtE.js +1 -0
  27. package/dist/assets/Fbo-DrK7CWlB.js +1 -0
  28. package/dist/assets/{FontLoader-CvGoVI5a.js → FontLoader-BR_K6Baw.js} +2 -2
  29. package/dist/assets/GLTFExporter-BZqAQJbw.js +1 -0
  30. package/dist/assets/{GameplaySessionTimeline-B52W3FVZ.js → GameplaySessionTimeline-Crqwv2fP.js} +1 -1
  31. package/dist/assets/Gltf-7cVbZUzT.js +2 -0
  32. package/dist/assets/ImageViewer-BkFie7Hm.js +1 -0
  33. package/dist/assets/InspectorObjectPreview-Dl3tyJBn.js +1 -0
  34. package/dist/assets/JsonAssetDocument-BUFzubHM.js +2 -0
  35. package/dist/assets/{LineSegments2-CsOpKSiM.js → LineSegments2-Cicm_Hu1.js} +2 -2
  36. package/dist/assets/LiveModuleDocument-C3OQxiba.js +1 -0
  37. package/dist/assets/LutAssetDocument-DVzd1RZ9.js +1 -0
  38. package/dist/assets/{MTLLoader-_Xzd4_0p.js → MTLLoader-Bg_grNiT.js} +2 -2
  39. package/dist/assets/{MarchingCubes-Bsp4wrzd.js → MarchingCubes-a78AL3HB.js} +1 -1
  40. package/dist/assets/MeshBVH-BCSLNEeP.js +1 -0
  41. package/dist/assets/ModelAssetDocument-pN84goRT.js +1 -0
  42. package/dist/assets/{NonThreeAuthoringBootstrap-C3woOMxX.js → NonThreeAuthoringBootstrap-BKNejRiW.js} +1 -1
  43. package/dist/assets/{OBJLoader-BhIC6Hwo.js → OBJLoader-BiwzVj5b.js} +2 -2
  44. package/dist/assets/Object3DDocumentToolbar-D5Bg5FEf.js +1 -0
  45. package/dist/assets/Object3DDocumentViewport-DFHqru3a.js +2 -0
  46. package/dist/assets/Object3DPreview-BTtZ-41z.js +2 -0
  47. package/dist/assets/OnlineAssetDetail-BAqozdAp.js +1 -0
  48. package/dist/assets/{OrbitControls-DLpayAaK.js → OrbitControls-CzKVCORl.js} +1 -1
  49. package/dist/assets/{OrbitControls-CM3bPray.js → OrbitControls-CzTRRI7x.js} +1 -1
  50. package/dist/assets/{OrthographicCamera-bQozawrh.js → OrthographicCamera-CSDDsvu7.js} +1 -1
  51. package/dist/assets/{PLYLoader-DYQqs5Ik.js → PLYLoader-QxrxxMpE.js} +2 -2
  52. package/dist/assets/{PerspectiveCamera-CQ2lh01o.js → PerspectiveCamera-DzD_NfVh.js} +1 -1
  53. package/dist/assets/PlayBar-qVJpgwJt.js +2 -0
  54. package/dist/assets/QuarksAssetDocument-B4vBlUsS.js +2 -0
  55. package/dist/assets/RGBELoader-WQ7xZofE.js +1 -0
  56. package/dist/assets/RectAreaLightUniformsLib-CwcuoVqt.js +1 -0
  57. package/dist/assets/{RenderPass-DPrn-Uky.js → RenderPass-C_CeQNdh.js} +1 -1
  58. package/dist/assets/{ResolutionPicker-C67vs1F3.js → ResolutionPicker-DpHVJxn5.js} +1 -1
  59. package/dist/assets/RootSelectionOverlay-BxvsunO4.js +1 -0
  60. package/dist/assets/{RoundedBox-BDGBg6QZ.js → RoundedBox-B_cZ0NFy.js} +1 -1
  61. package/dist/assets/{RoundedBoxGeometry-CyUuYPfW.js → RoundedBoxGeometry-Y4rcSIvX.js} +1 -1
  62. package/dist/assets/STLLoader-Bej_Nkpr.js +1 -0
  63. package/dist/assets/{SelectionBox-D_75KrNW.js → SelectionBox-Cn9vm7f9.js} +1 -1
  64. package/dist/assets/ShaderAssetDocument-Dx2x8CLr.js +12 -0
  65. package/dist/assets/{ShaderPass-QYRpPuFJ.js → ShaderPass-qtkA7CQ8.js} +1 -1
  66. package/dist/assets/{ShadowEditor-DkImwu1Y.js → ShadowEditor-BEIUkrHL.js} +1 -1
  67. package/dist/assets/SimplifyModifier-D2EesGr2.js +1 -0
  68. package/dist/assets/{SkeletonUtils-Cps8GOC6.js → SkeletonUtils-C8ayciDc.js} +1 -1
  69. package/dist/assets/{Sky-CQKCgYDs.js → Sky-BBpnAJZV.js} +1 -1
  70. package/dist/assets/SourceAssetViewer-BpMbbuy6.js +1 -0
  71. package/dist/assets/StageHost-lB8f---y.js +2 -0
  72. package/dist/assets/{StoryPreviewMount-DjyxRCXu.js → StoryPreviewMount-BIfxmkYh.js} +1 -1
  73. package/dist/assets/{TDSLoader-D_T8XJ81.js → TDSLoader-rHl5Uwc0.js} +1 -1
  74. package/dist/assets/{TextGeometry-DOWAEUV0.js → TextGeometry-BRHSufuM.js} +1 -1
  75. package/dist/assets/ThreeBoardDocument-BHV92Ia3.js +2 -0
  76. package/dist/assets/{ThreeIsolationSceneContent-C8C8whSF.js → ThreeIsolationSceneContent-BqtgDHBK.js} +1 -1
  77. package/dist/assets/{ToolObject3DPreview-BRoDWe4Q.js → ToolObject3DPreview-CcaPJTyH.js} +1 -1
  78. package/dist/assets/Toolbar-keHcSvDD.js +1 -0
  79. package/dist/assets/{TrackballControls-DfznuQTh.js → TrackballControls-Cce-6Ff5.js} +1 -1
  80. package/dist/assets/{TransientHint-BB1fwrvK.js → TransientHint-Dlslh3oX.js} +1 -1
  81. package/dist/assets/{UnrealBloomPass-CR-cS_K5.js → UnrealBloomPass-DiseEiFK.js} +2 -2
  82. package/dist/assets/{VideoViewer-C6kocgIU.js → VideoViewer-naGSXHd6.js} +1 -1
  83. package/dist/assets/ViewportShadingMenu-C7Hdhtca.js +1 -0
  84. package/dist/assets/{active-ingest-CT6jSGhr.js → active-ingest-DEgq9JiA.js} +3 -3
  85. package/dist/assets/{animation-clock-CnjZqfJp.js → animation-clock-lTIb6nk3.js} +1 -1
  86. package/dist/assets/animation-mixers.service-2O2rVwQf.js +1 -0
  87. package/dist/assets/asset-budget-asset.menu-9NhdHAC9.js +1 -0
  88. package/dist/assets/asset-budget.action-yg6-luUJ.js +1 -0
  89. package/dist/assets/asset-budget.document-B46_VFqa.js +1 -0
  90. package/dist/assets/asset-budget.menu-DuH07N-e.js +1 -0
  91. package/dist/assets/{asset-editor-persistence-BBaONOJt.js → asset-editor-persistence-BVtzjadu.js} +1 -1
  92. package/dist/assets/{asset-loaders-BOy5Ss8k.js → asset-loaders-BxG1LykH.js} +2 -2
  93. package/dist/assets/{assets-BuSoGjBX.js → assets-Do88ZdV_.js} +1 -1
  94. package/dist/assets/{audio-unlock.service-CfUgUQVy.js → audio-unlock.service-BJH0mWvX.js} +1 -1
  95. package/dist/assets/{audio.utility-C6K6jem8.js → audio.utility-Cp4aVYFU.js} +1 -1
  96. package/dist/assets/autoplay.service-FxpRy7Ev.js +1 -0
  97. package/dist/assets/{babylon-authoring-adapter-CL02gWDn.js → babylon-authoring-adapter-B_8iE8fK.js} +1 -1
  98. package/dist/assets/{binding-resolver-Dsh-6Vor.js → binding-resolver-BWwG10zJ.js} +2 -2
  99. package/dist/assets/blender-emscripten-engine-CEsWgnR7.js +2 -0
  100. package/dist/assets/{blender-node-editor.document-iIDkB9sI.js → blender-node-editor.document-DTgwy8KC.js} +1 -1
  101. package/dist/assets/blender-properties-tab-DWSJpkxq.js +3 -0
  102. package/dist/assets/blender-runtime-host-OGjPjTrG.js +4 -0
  103. package/dist/assets/{blender-runtime-skin-DyQ9B6CR.js → blender-runtime-skin-DymtXlpt.js} +37 -39
  104. package/dist/assets/blender-runtime.document-CzH2ohHR.js +8 -0
  105. package/dist/assets/{blender-timeline.document-77fx96N7.js → blender-timeline.document-BRy_QPHt.js} +1 -1
  106. package/dist/assets/{blender-uv-editor.document-fsT7B4gV.js → blender-uv-editor.document-D-AbUCqz.js} +1 -1
  107. package/dist/assets/{blender-version.status-o6dBm3n6.js → blender-version.status-B7flzX_7.js} +1 -1
  108. package/dist/assets/{blender-wali-engine-wTOcrOMC.js → blender-wali-engine-D3iKpzn9.js} +1 -1
  109. package/dist/assets/blender.command-BVHtgTQy.js +1 -0
  110. package/dist/assets/blender.environment-CG-pC7sk.js +1 -0
  111. package/dist/assets/{blender.style-Dcem5f_T.js → blender.style-CxfbTFcE.js} +1 -1
  112. package/dist/assets/{board-guides-DziKSTss.js → board-guides-C3usUZZk.js} +1 -1
  113. package/dist/assets/body-marks-D8iaje6y.js +1 -0
  114. package/dist/assets/bridge.command-BF9u6r0A.js +3 -0
  115. package/dist/assets/browserAll-38aBu-cf.js +1 -0
  116. package/dist/assets/{build-profiles.document-kW8iw8Xj.js → build-profiles.document-DO7oNRuo.js} +2 -2
  117. package/dist/assets/{build-progress.status-BNRLytg2.js → build-progress.status-COeNVhYd.js} +1 -1
  118. package/dist/assets/{build-session-C_sg3CEn.js → build-session-IWIriS5P.js} +1 -1
  119. package/dist/assets/{build.action-lYjTLb7K.js → build.action-DlkFvZf6.js} +1 -1
  120. package/dist/assets/{build.command-DIGgUPU_.js → build.command-DPqQIYj_.js} +1 -1
  121. package/dist/assets/{build.header-CKajx5U3.js → build.header-CNLG-pV8.js} +1 -1
  122. package/dist/assets/{build.menu-BdU0QXny.js → build.menu-hUlH6loi.js} +1 -1
  123. package/dist/assets/{build.service-CbBAyeu3.js → build.service-C86Td3_9.js} +1 -1
  124. package/dist/assets/{camera-KEsKvOL7.js → camera-CKbyBXMe.js} +1 -1
  125. package/dist/assets/camera-authoring-Ci3KnE-W.js +1 -0
  126. package/dist/assets/{camera-runtime.inspector-B7unX4g1.js → camera-runtime.inspector-DdR3P2BF.js} +1 -1
  127. package/dist/assets/canvas-entry-runtime-E5YjSgre.js +2 -0
  128. package/dist/assets/canvas-preview-frames-CiAx7dpV.js +1 -0
  129. package/dist/assets/{capability-coverage-Czas4C18.js → capability-coverage-CfUeULDN.js} +5 -5
  130. package/dist/assets/city-EkhAOo5s.exr +0 -0
  131. package/dist/assets/{collaboration-presence-DLoZ7EA3.js → collaboration-presence-CSLFNT7m.js} +1 -1
  132. package/dist/assets/{collider-Bw0mXlsW.js → collider-DRSaLRM9.js} +1 -1
  133. package/dist/assets/{component-board.service-DCwcUssB.js → component-board.service-B7Sv8b7m.js} +2 -2
  134. package/dist/assets/component-board.service-B8UHw8dn.js +2 -0
  135. package/dist/assets/component-contracts.service-LFGekycZ.js +1 -0
  136. package/dist/assets/{component-verbs.command-7xzfjGMZ.js → component-verbs.command-D4SvFjfG.js} +1 -1
  137. package/dist/assets/component-verbs.service-TGvWxf2b.js +1 -0
  138. package/dist/assets/{config-CEZk921y.js → config-DB_RH-hO.js} +3 -3
  139. package/dist/assets/{configurations-DTBMdaTL.js → configurations-C2qgJNnW.js} +1 -1
  140. package/dist/assets/{connection.status-BifnQdOs.js → connection.status-CG7X2brL.js} +1 -1
  141. package/dist/assets/{console-bridge-CHcb-xk5.js → console-bridge-B5Ltae37.js} +1 -1
  142. package/dist/assets/{constraint-De8f1Uiq.js → constraint-C_Jj7dXy.js} +1 -1
  143. package/dist/assets/constraints.inspector-D6QZJS4b.js +1 -0
  144. package/dist/assets/courtyard-DqlebbpC.exr +0 -0
  145. package/dist/assets/coverage.service-Clo86874.js +3 -0
  146. package/dist/assets/{create-runtime-CVCc1BDx.js → create-runtime-lmA910XT.js} +1 -1
  147. package/dist/assets/{curve-7Q79VgU4.js → curve-6-TR6dNb.js} +1 -1
  148. package/dist/assets/{data-asset-4hjS642k.js → data-asset-BNbd309U.js} +1 -1
  149. package/dist/assets/{data-ref-CQI28C0D.js → data-ref-Dvmd7eb1.js} +1 -1
  150. package/dist/assets/{debug-bridge-CCohG-d-.js → debug-bridge-BUNhgyY6.js} +1 -1
  151. package/dist/assets/{debug-registry-Dgvitx8M.js → debug-registry-B3Cnne3x.js} +1 -1
  152. package/dist/assets/deferred-ingest-play-7V8OrW3e.js +2 -0
  153. package/dist/assets/design-time-layers-g9VS6amb.js +1 -0
  154. package/dist/assets/design-time-mount.service-HtMr_vBd.js +2 -0
  155. package/dist/assets/design-time-react-mount-Dx6fJ-Hg.js +1 -0
  156. package/dist/assets/{directional-shadow-fit-BVkOKAv2.js → directional-shadow-fit-Cjz_Eg2b.js} +1 -1
  157. package/dist/assets/{document-preview-three-Kbg2GCLm.js → document-preview-three-C3y0syYQ.js} +1 -1
  158. package/dist/assets/{dom-authoring-adapter-CY8C7f4T.js → dom-authoring-adapter-CEeFyatF.js} +1 -1
  159. package/dist/assets/{draco3d-BBUTcNkz.js → draco3d-FKy0apkb.js} +1 -1
  160. package/dist/assets/drei-asset-caches-jJoHXbTj.js +2 -0
  161. package/dist/assets/{edit-mode-audio.service-Bzetwd5B.js → edit-mode-audio.service-DZTnrW6t.js} +1 -1
  162. package/dist/assets/edit-mode-authoring-D_BiHCQj.js +1 -0
  163. package/dist/assets/{edit-mode-networking.service-YCX6RRb_.js → edit-mode-networking.service-BzMI2VxO.js} +1 -1
  164. package/dist/assets/editor-api-Bzmo0o8_.js +1 -0
  165. package/dist/assets/{entry-adjudication-Cq8Yeb74.js → entry-adjudication-BYy7TXOB.js} +1 -1
  166. package/dist/assets/{events-156d8d12.esm-ErOhDXXB.js → events-156d8d12.esm-C734MYnx.js} +7 -7
  167. package/dist/assets/{extend-B-eOccUm.js → extend-CLG0ymiX.js} +1 -1
  168. package/dist/assets/forest-P_CQY3b_.exr +0 -0
  169. package/dist/assets/fork-menu-De7HU6_H.js +1 -0
  170. package/dist/assets/{frame-debugger-store-D1Mf_5up.js → frame-debugger-store-BZgIOlU6.js} +1 -1
  171. package/dist/assets/{game-DHOZVb-7.js → game-D5EJoILQ.js} +1 -1
  172. package/dist/assets/{game-contract-seams-a5YXejOu.js → game-contract-seams-TCpIMmHP.js} +1 -1
  173. package/dist/assets/{game-css-scope-transform-Eng4wS8E.js → game-css-scope-transform-NbpajQr-.js} +1 -1
  174. package/dist/assets/game-document.service-6eRlrI-d.js +1 -0
  175. package/dist/assets/game-eval.command-hKnSMlX0.js +2 -0
  176. package/dist/assets/{game-input-seams-CIQdetRw.js → game-input-seams-BC6xhZy3.js} +1 -1
  177. package/dist/assets/{game-module-access-B2mFxv-i.js → game-module-access-ry3xb1Ix.js} +1 -1
  178. package/dist/assets/{gameplay-export-BoKXm51x.js → gameplay-export-DiLQuPpn.js} +1 -1
  179. package/dist/assets/gameplay-replay-Bsre-1K8.js +1 -0
  180. package/dist/assets/{gameplay-rng-trap-CTNhm-UW.js → gameplay-rng-trap-BhRx_CtU.js} +1 -1
  181. package/dist/assets/gameplay.command-BqiyGn-I.js +1 -0
  182. package/dist/assets/{generation-jobs-BQrXbGp_.js → generation-jobs-BYcpgeGk.js} +1 -1
  183. package/dist/assets/generation.service-O81IqA-6.js +1 -0
  184. package/dist/assets/{generations-DzUogZsM.js → generations-CsGQ3twi.js} +1 -1
  185. package/dist/assets/{generations.status-CgOUBCum.js → generations.status-C3YU0_ml.js} +1 -1
  186. package/dist/assets/godot.style-DxJaFWOP.js +1 -0
  187. package/dist/assets/godot.view-BFsHk8b2.js +1 -0
  188. package/dist/assets/{hosted-asset-materialization-CiIvWkGU.js → hosted-asset-materialization-Bk-plQF6.js} +2 -2
  189. package/dist/assets/{ibl-override-material-BlmCxFKq.js → ibl-override-material-BhbGwgS1.js} +1 -1
  190. package/dist/assets/{index-mjWQmGhM.js → index-0n9eSzwT.js} +1 -1
  191. package/dist/assets/index-B4bmKkgY.css +1 -0
  192. package/dist/assets/index-BLo2LE8C.js +3404 -0
  193. package/dist/assets/index-BWW4-DBH.js +1 -0
  194. package/dist/assets/index-CLcsjKUs.js +1 -0
  195. package/dist/assets/index-CU5YUq-x.js +134 -0
  196. package/dist/assets/{index-DUpHH6JR.js → index-Cb6o_Td_.js} +1 -1
  197. package/dist/assets/index-Ckxb31Yz.js +1500 -0
  198. package/dist/assets/index-CnpsJMao.js +1 -0
  199. package/dist/assets/index-Cr23XhNm.js +1 -0
  200. package/dist/assets/index-DO1rWQ_r.js +487 -0
  201. package/dist/assets/{index-BcCBqgM_.js → index-DUh02lTr.js} +1 -1
  202. package/dist/assets/index-DXEHfb0b.js +1 -0
  203. package/dist/assets/{index-V1R-e5Bd.js → index-wRCvCebM.js} +1 -1
  204. package/dist/assets/{inference-diagnostics-Dhmtfbq_.js → inference-diagnostics-YW0yJkKx.js} +1 -1
  205. package/dist/assets/{ingest-BbYMC2vQ.js → ingest-BlQnR7s3.js} +1 -1
  206. package/dist/assets/ingest-boot-viewport-uG9jQ1zm.js +1 -0
  207. package/dist/assets/ingest-siblings-DRQXSWax.js +1 -0
  208. package/dist/assets/{ingest-source-persistence-C_6Hiyra.js → ingest-source-persistence-DH6ioCOu.js} +1 -1
  209. package/dist/assets/{ingest.service-BTDnQfM1.js → ingest.service-GeaWMaZX.js} +1 -1
  210. package/dist/assets/{input-manager-DH_hGW6d.js → input-manager-Cxx3RJgG.js} +1 -1
  211. package/dist/assets/{input-router-BNQvtIqw.js → input-router-FzxO5ld6.js} +1 -1
  212. package/dist/assets/{inspect-BZfi3mmo.js → inspect-BRgDdtVk.js} +1 -1
  213. package/dist/assets/instances.command-CFOMPSj3.js +1 -0
  214. package/dist/assets/{instruments-CKR02Y8I.js → instruments-IKn-vvNb.js} +1 -1
  215. package/dist/assets/interior-Bo_lba15.exr +0 -0
  216. package/dist/assets/{json-history-resource-BbxllWfV.js → json-history-resource-r-9q_hxP.js} +1 -1
  217. package/dist/assets/{light-D-_wsKTq.js → light-CFAor97k.js} +1 -1
  218. package/dist/assets/light-camera-factory-D1sgz3YB.js +1 -0
  219. package/dist/assets/live-mixers-BRkRHd6g.js +1 -0
  220. package/dist/assets/{loader-CaF_I7Yt.js → loader-BbMsvIxP.js} +1 -1
  221. package/dist/assets/machine.document-CgmsOh-s.js +24 -0
  222. package/dist/assets/machines.finder-nxiCgQc2.js +1 -0
  223. package/dist/assets/matcap-texture-Dh65bX5V.js +1 -0
  224. package/dist/assets/{material-CpAdjDxn.js → material-D5kXEZWQ.js} +1 -1
  225. package/dist/assets/{material-factory-Bz6h__6g.js → material-factory-0Qb0VuZ5.js} +1 -1
  226. package/dist/assets/material-preview.view-DqNcpd_b.js +1 -0
  227. package/dist/assets/{mesh-B3WPtNKO.js → mesh-BKPgNTwh.js} +1 -1
  228. package/dist/assets/{mesh-shadow-CZnXrw_l.js → mesh-shadow-BDQP4mHs.js} +1 -1
  229. package/dist/assets/model-asset-sections.service-DWPLmkqa.js +1 -0
  230. package/dist/assets/model-inspection-Cxfg_Fei.js +1 -0
  231. package/dist/assets/model.layout-BpZE1W9V.js +1 -0
  232. package/dist/assets/{models.finder-G2jQgIRu.js → models.finder-DHW17ZEa.js} +1 -1
  233. package/dist/assets/module-mode-CRfHyIMS.js +2 -0
  234. package/dist/assets/mount-canvas-ingest-root-BZZ8M3Lu.js +2 -0
  235. package/dist/assets/mount-dom-ingest-root-D1GV6Jjt.js +2 -0
  236. package/dist/assets/{mount-game-6t9cKNo4.js → mount-game-F9e76auh.js} +1 -1
  237. package/dist/assets/mount-ingest-root-B5D-Lmmk.js +2 -0
  238. package/dist/assets/{mount-manifest-CGVxhmAw.js → mount-manifest-cYRhgHfo.js} +1 -1
  239. package/dist/assets/mount-three-ingest-root-BNnouaBn.js +1 -0
  240. package/dist/assets/{mounted-authoring-Dmg5xmhP.js → mounted-authoring-TIN5EnCb.js} +1 -1
  241. package/dist/assets/{mounted-story-viewport-source-DjP6RA9U.js → mounted-story-viewport-source-CAlEmE0_.js} +1 -1
  242. package/dist/assets/{native-debug-module-CWicoSGD.js → native-debug-module-j-MekcLS.js} +1 -1
  243. package/dist/assets/{navigation-CIiCx-SM.js → navigation-DmR1BDVo.js} +1 -1
  244. package/dist/assets/{navmesh.menu-CAKiH8PW.js → navmesh.menu-FhL1pGx1.js} +1 -1
  245. package/dist/assets/{navmesh.service-jgDWlgj1.js → navmesh.service-usyDeJlm.js} +1 -1
  246. package/dist/assets/{network.utility-CEu5nHf7.js → network.utility-BPh4hTmh.js} +1 -1
  247. package/dist/assets/night-CvV4Gybt.exr +0 -0
  248. package/dist/assets/{object3d-authoring-subject-CH5sI2oP.js → object3d-authoring-subject-CyE4rQ2A.js} +1 -1
  249. package/dist/assets/oid-transform-BOqL6YH6.js +2 -0
  250. package/dist/assets/{particles-Y626p22p.js → particles-C47L-dda.js} +1 -1
  251. package/dist/assets/particles-factory-CRqPLdS7.js +1 -0
  252. package/dist/assets/pixi-authoring-adapter-C5Ikqj5-.js +1 -0
  253. package/dist/assets/{pixi-live-write-target-DuWydlWb.js → pixi-live-write-target-OWBk79dp.js} +1 -1
  254. package/dist/assets/pixi-primitive-D5igywJ_.js +1 -0
  255. package/dist/assets/pixi-react-root-factory-9lZ0Yz-n.js +1 -0
  256. package/dist/assets/play-mode-DomOvQie.js +22 -0
  257. package/dist/assets/play.command-DoqjH-Pp.js +2 -0
  258. package/dist/assets/{playtest-BXIL1JEF.js → playtest-BnFenMBW.js} +1 -1
  259. package/dist/assets/{pose-guard-6Osb2cFu.js → pose-guard-Bb3gZOzk.js} +1 -1
  260. package/dist/assets/{product-DFhyARJj.js → product-CTDJoVo5.js} +1 -1
  261. package/dist/assets/{profiler.action-CaXJDp3t.js → profiler.action-C_OFGkDw.js} +1 -1
  262. package/dist/assets/{profiler.menu-BIMF6Bi4.js → profiler.menu-BJbnVoo4.js} +1 -1
  263. package/dist/assets/{profiler.utility-BExw9wBO.js → profiler.utility-qpfhuwRw.js} +1 -1
  264. package/dist/assets/project-authoring-session-BV-MM8Fl.js +2 -0
  265. package/dist/assets/{project-provenance-BoP3nrle.js → project-provenance-4ldz-EOG.js} +1 -1
  266. package/dist/assets/{properties-bone-constraints.inspector-ByT6p7S-.js → properties-bone-constraints.inspector-C-ByIdg1.js} +1 -1
  267. package/dist/assets/{properties-bone.inspector-z4qJwKO5.js → properties-bone.inspector-CXY0xCQB.js} +1 -1
  268. package/dist/assets/{properties-collection.inspector-D0_3ijWU.js → properties-collection.inspector-DIfkZAel.js} +1 -1
  269. package/dist/assets/{properties-constraints.inspector-CESzjuls.js → properties-constraints.inspector-BaunL5nT.js} +1 -1
  270. package/dist/assets/{properties-data.inspector-hG8Wgyzb.js → properties-data.inspector-DQD-jfO2.js} +1 -1
  271. package/dist/assets/{properties-material.inspector-CzY0JCQ6.js → properties-material.inspector-A0HZ4SX6.js} +1 -1
  272. package/dist/assets/{properties-modifiers.inspector-3dDhwf7g.js → properties-modifiers.inspector-GUnVhVwZ.js} +1 -1
  273. package/dist/assets/{properties-object.inspector-CiarfxkT.js → properties-object.inspector-Chsfa4Xa.js} +1 -1
  274. package/dist/assets/{properties-output.inspector-DKJxmKSD.js → properties-output.inspector-U7ZmD0Me.js} +1 -1
  275. package/dist/assets/{properties-particles.inspector-CCEdYWGm.js → properties-particles.inspector-umkW-OlI.js} +1 -1
  276. package/dist/assets/{properties-physics.inspector-B2c0KUyA.js → properties-physics.inspector-CLVBlWwL.js} +1 -1
  277. package/dist/assets/{properties-render.inspector-Bcm0HLRW.js → properties-render.inspector-D0u9taKy.js} +1 -1
  278. package/dist/assets/{properties-scene.inspector-PIM_eTb_.js → properties-scene.inspector-JwGCZQAx.js} +1 -1
  279. package/dist/assets/{properties-texture.inspector-CgFlnyr8.js → properties-texture.inspector-B1vC28pw.js} +1 -1
  280. package/dist/assets/{properties-view-layer.inspector-DGjF_Aqo.js → properties-view-layer.inspector-BuUKyBFp.js} +1 -1
  281. package/dist/assets/{properties-world.inspector-CrMvaRvB.js → properties-world.inspector-VXUj4dT4.js} +1 -1
  282. package/dist/assets/r3f-design-session-qJ2v5SrB.js +2 -0
  283. package/dist/assets/r3f-physics-binding-C8OqNRG2.js +1 -0
  284. package/dist/assets/{r3f-root-factory-z9llD1OU.js → r3f-root-factory-DjGnbU4n.js} +1 -1
  285. package/dist/assets/r3f-source-authoring-adapter-CG9heazM.js +12 -0
  286. package/dist/assets/{rapier-physics-bridge-CMoeVo3Y.js → rapier-physics-bridge-B-EK7KYV.js} +1 -1
  287. package/dist/assets/react-inspector.service-DWeXDHJq.js +1 -0
  288. package/dist/assets/{react-root-CEz5NTck.js → react-root-DGLRLr-F.js} +1 -1
  289. package/dist/assets/react-story-board-CSqHY0Cg.js +1 -0
  290. package/dist/assets/{react-three-fiber.esm-CycrbDlA.js → react-three-fiber.esm-BxIoqVh1.js} +1 -1
  291. package/dist/assets/{react-three-rapier.esm-CEfKpvxT.js → react-three-rapier.esm-BYzLhdSV.js} +1 -1
  292. package/dist/assets/react-world-authoring-adapter-BMT9kLWU.js +1 -0
  293. package/dist/assets/{realm-services-CobQsq_X.js → realm-services-D25JHoqD.js} +1 -1
  294. package/dist/assets/{reflection-probe-Don-M3Fj.js → reflection-probe-CqXWlicu.js} +1 -1
  295. package/dist/assets/{reflection-probe-capture.inspector-CmFUoJCx.js → reflection-probe-capture.inspector-B7Qa30vB.js} +1 -1
  296. package/dist/assets/regions-DWeEBnE2.js +1 -0
  297. package/dist/assets/{register-render-vitals-BiZk29b2.js → register-render-vitals-BO7x64kR.js} +1 -1
  298. package/dist/assets/{registry-02YZjMNp.js → registry-DlTluc4x.js} +1 -1
  299. package/dist/assets/{render-audio-control-vMRlePWb.js → render-audio-control-DCa_bOBI.js} +1 -1
  300. package/dist/assets/{render-batch-system-0vq7p0VC.js → render-batch-system-CzCp9YKM.js} +1 -1
  301. package/dist/assets/{render-control-Df3yTiyr.js → render-control-BNQr1eNO.js} +1 -1
  302. package/dist/assets/{render-env-D2IV2x5k.js → render-env-emvlfeTG.js} +1 -1
  303. package/dist/assets/{render-features-CPQ_e568.js → render-features-COF7MSQ9.js} +1 -1
  304. package/dist/assets/{render-settings-Bw4W9SYF.js → render-settings-C_kIMq8Y.js} +1 -1
  305. package/dist/assets/{resolve-three-SZE_WWUM.js → resolve-three-C-nx-QdA.js} +13 -13
  306. package/dist/assets/{root-seam-contract-Z0VWX3Bk.js → root-seam-contract-C7GOxf5x.js} +1 -1
  307. package/dist/assets/{run-ticks-settled-C4ksViyA.js → run-ticks-settled-B0cTtmhQ.js} +1 -1
  308. package/dist/assets/{scene-capture-CGYF-Viw.js → scene-capture-CLOc7GXc.js} +1 -1
  309. package/dist/assets/{scene-capture-BQKzU0NT.js → scene-capture-D10Nxkvp.js} +1 -1
  310. package/dist/assets/scene-document.service-B7kAVTko.js +2 -0
  311. package/dist/assets/{scene-framing-Cat0GtyJ.js → scene-framing-50N7SKuX.js} +1 -1
  312. package/dist/assets/{scene-index-B6BZOHMk.js → scene-index-Bce459yu.js} +1 -1
  313. package/dist/assets/{scene-query-C7_N-TpI.js → scene-query-IUZhw6pA.js} +1 -1
  314. package/dist/assets/{schema-kl9-2B_J.js → schema-Iy-mbzll.js} +1 -1
  315. package/dist/assets/sculpt.layout-D-K5cLw6.js +1 -0
  316. package/dist/assets/{seeded-random-i3mtgBKZ.js → seeded-random-CN0scLZj.js} +1 -1
  317. package/dist/assets/{session-CZ5JPg-z.js → session-CsR0lApe.js} +24 -15
  318. package/dist/assets/{setup-audio-S8GQF91f.js → setup-audio-BJ18gvXZ.js} +1 -1
  319. package/dist/assets/setup-particles-B6H-GbAA.js +1 -0
  320. package/dist/assets/{setup-physics-BeZ7-LKD.js → setup-physics-GugbTT0J.js} +1 -1
  321. package/dist/assets/{setup-renderer-DVXaSGin.js → setup-renderer-wt_a-p8r.js} +20 -20
  322. package/dist/assets/shading.layout-CZZHKBer.js +1 -0
  323. package/dist/assets/{sim-clock-CLflx7kg.js → sim-clock-DEfbb_-P.js} +1 -1
  324. package/dist/assets/{soft-particle-depth-DGvfQDi1.js → soft-particle-depth-CKUS1j0Y.js} +1 -1
  325. package/dist/assets/source-object3d-authoring-adapter-CfHQLFAL.js +1 -0
  326. package/dist/assets/{source-persistence-backend-C-aR-B_Y.js → source-persistence-backend-_-JMEXxE.js} +1 -1
  327. package/dist/assets/{spark-renderer-lifecycle-ynWESJcv.js → spark-renderer-lifecycle-9mnMW3Z4.js} +1 -1
  328. package/dist/assets/{spark.module-4pXQoz5d.js → spark.module-CXth-y_a.js} +1 -1
  329. package/dist/assets/stage-keyboard-C0FdDLOQ.js +1 -0
  330. package/dist/assets/stage-overlay-set-CwhCzbOy.js +1 -0
  331. package/dist/assets/stage-presence-markers-DVMDKiB-.js +1 -0
  332. package/dist/assets/stage-transform-tools-B09Z7v0o.js +1 -0
  333. package/dist/assets/standard-viewport-dressing-GUUr6GuK.js +20 -0
  334. package/dist/assets/{state-watch.action-BOvQR2qt.js → state-watch.action-CgF8qoFC.js} +1 -1
  335. package/dist/assets/{state-watch.menu-CNLvDeeY.js → state-watch.menu-CIMncESW.js} +1 -1
  336. package/dist/assets/{state-watch.utility-Bg1tTTQU.js → state-watch.utility-zTHkUALC.js} +1 -1
  337. package/dist/assets/static-batch-advisor-DqfXWRUq.js +1 -0
  338. package/dist/assets/story-capture-COQgezzl.js +1 -0
  339. package/dist/assets/story-documents-DQ0KORmd.js +3 -0
  340. package/dist/assets/story-documents.service-DOSaqPqv.js +1 -0
  341. package/dist/assets/story-documents.service-Gb7oUkbg.js +1 -0
  342. package/dist/assets/{story-media-presence-BHzk2IV5.js → story-media-presence-nW3zJqKv.js} +1 -1
  343. package/dist/assets/story-pixi-preview-COPTEsHo.js +1 -0
  344. package/dist/assets/story-presentation-CxADj5oz.js +1 -0
  345. package/dist/assets/{story-three-preview-BHEDZzcl.js → story-three-preview-C9W__8Or.js} +2 -2
  346. package/dist/assets/{structural-ids-Dc-7rEwi.js → structural-ids-CblajJQK.js} +1 -1
  347. package/dist/assets/studio-CysTBGIb.exr +0 -0
  348. package/dist/assets/sunrise-Dj0psFrf.exr +0 -0
  349. package/dist/assets/sunset-Bw3x2Bot.exr +0 -0
  350. package/dist/assets/{surface-state-DaxyruCj.js → surface-state-BAUJu6GY.js} +1 -1
  351. package/dist/assets/{system-runner-DkOjxEBt.js → system-runner-D_DtVrer.js} +1 -1
  352. package/dist/assets/team-playtest.service--79O6xkx.js +1 -0
  353. package/dist/assets/{three-CDSueJyJ.js → three-DSsr_Lvp.js} +1 -1
  354. package/dist/assets/{three-authoring-adapter-CmSQ3Vui.js → three-authoring-adapter-Yqsank46.js} +1 -1
  355. package/dist/assets/three-authoring.service-BDos-bRt.js +2 -0
  356. package/dist/assets/{three-ingest-runtime-QzDYk6tU.js → three-ingest-runtime-DWijtqQ8.js} +1 -1
  357. package/dist/assets/{three-projection-core-BmKMZ-nf.js → three-projection-core-kubBTx0s.js} +1 -1
  358. package/dist/assets/three-story-model-BraQFA9h.js +1 -0
  359. package/dist/assets/three-viewport-presentation-BL7Uc2i6.js +1 -0
  360. package/dist/assets/{three.module-D396a9Mn.js → three.module-IFn-4i31.js} +1 -1
  361. package/dist/assets/three.quarks.esm-CRKGjKAH.js +1039 -0
  362. package/dist/assets/transform-mode-request-Cu7ewbtr.js +1 -0
  363. package/dist/assets/{transform-writer-BhBBTx33.js → transform-writer-DXxrI4t7.js} +1 -1
  364. package/dist/assets/transport.header-CeND8Vzh.js +1 -0
  365. package/dist/assets/{trigger-volume-BNK2XzPL.js → trigger-volume-BCVRS3NM.js} +1 -1
  366. package/dist/assets/{tuples-CIQ4Bn1U.js → tuples-DKDGrN1t.js} +1 -1
  367. package/dist/assets/ui-board-document-DD2CAEAo.js +2 -0
  368. package/dist/assets/unity.style-vCmLw4gI.js +1 -0
  369. package/dist/assets/unity.view-DIn2S6Do.js +1 -0
  370. package/dist/assets/unreal.style-BQn-HhOX.js +1 -0
  371. package/dist/assets/unreal.view-adNBETZK.js +1 -0
  372. package/dist/assets/user-data-CZqsJDk-.js +1 -0
  373. package/dist/assets/{utility-view-state-BHypxA33.js → utility-view-state-DYJY8V8O.js} +1 -1
  374. package/dist/assets/uv-editing.layout-A8RA-cbM.js +1 -0
  375. package/dist/assets/{vgai-shared-three-Bc5PvpLM.js → vgai-shared-three-D_RAEumG.js} +1 -1
  376. package/dist/assets/{viewport-root-presentation-CWsE56K6.js → viewport-root-presentation-C9M98VNM.js} +1 -1
  377. package/dist/assets/{viewport-shading-BuA88e_A.js → viewport-shading-BzcvgJhK.js} +1 -1
  378. package/dist/assets/viewport-shading-boundary-CBvvzS-p.js +84 -0
  379. package/dist/assets/{viewport-surface-status-B3om4Kcf.js → viewport-surface-status-BFmnWp7z.js} +1 -1
  380. package/dist/assets/voxel-surface-ROWYug7H.js +1 -0
  381. package/dist/assets/webgl-frame-capture-CRKX73E9.js +1 -0
  382. package/dist/assets/webworkerAll-CehoCtFb.js +1 -0
  383. package/dist/assets/{worker-UrMcrc5_.js → worker-B7zhIsFh.js} +2 -2
  384. package/dist/assets/world-documents-DErHq15h.js +1 -0
  385. package/dist/assets/world-root-stage-binding-BIymcQ4K.js +1 -0
  386. package/dist/assets/{world-state-BWG-IcOd.js → world-state-ZGDGY_Xl.js} +1 -1
  387. package/dist/assets/{writer-B-KovzkA.js → writer-BPbm4_my.js} +5 -5
  388. package/dist/assets/xstate-animation-binding-Cvd4JbEY.js +1 -0
  389. package/dist/assets/{xstate-animation-meta-Q3u9zh_m.js → xstate-animation-meta-B3OZR8Q2.js} +1 -1
  390. package/dist/vgai-shared-three.json +1 -1
  391. package/dist-node/cli.js +317 -73
  392. package/dist-node/create.js +59 -19
  393. package/package.json +16 -13
  394. package/src/index.ts +6 -0
  395. package/template/.agents/skills/vgai-3d-models/SKILL.md +3 -3
  396. package/template/.agents/skills/vgai-threejs-authoring/SKILL.md +4 -9
  397. package/template/.claude/skills/vgai-3d-models/SKILL.md +3 -3
  398. package/template/.claude/skills/vgai-threejs-authoring/SKILL.md +4 -9
  399. package/template/.github/skills/vgai-3d-models/SKILL.md +3 -3
  400. package/template/.github/skills/vgai-threejs-authoring/SKILL.md +4 -9
  401. package/template/AGENTS.md +1 -1
  402. package/template/check-idioms.ts +4 -5
  403. package/template/package.json +9 -9
  404. package/template/tsconfig.json +1 -0
  405. package/template/vgai.adapter.ts +1 -0
  406. package/template-dotfiles/gitignore +2 -0
  407. package/workbench/src/media/game-cover.css +1 -1
  408. package/catalog/project-source/src/lib/bake/mesh-slice.ts +0 -157
  409. package/dist/assets/BufferGeometryUtils-Nz37EVXf.js +0 -1
  410. package/dist/assets/CanvasSceneViewport-Bpi6gVTC.js +0 -1
  411. package/dist/assets/ColladaLoader-aVOPIsCh.js +0 -3
  412. package/dist/assets/EXRLoader-Cdans_oJ.js +0 -1
  413. package/dist/assets/EffectComposer-DQxfsXBZ.js +0 -1
  414. package/dist/assets/EntityModelDocument-Ccvw66N9.js +0 -1
  415. package/dist/assets/EnvironmentAssetDocument-Dg-Qq6O6.js +0 -1
  416. package/dist/assets/FBXLoader-B4MoUtAn.js +0 -1
  417. package/dist/assets/Fbo-Dz-Soul3.js +0 -1
  418. package/dist/assets/GLTFExporter-HgrCle4L.js +0 -1
  419. package/dist/assets/Gltf-UHVWKz65.js +0 -2
  420. package/dist/assets/HDRLoader-THU88oVD.js +0 -5
  421. package/dist/assets/ImageViewer-Tn7s_MnW.js +0 -1
  422. package/dist/assets/InspectorObjectPreview-CVejvLRg.js +0 -1
  423. package/dist/assets/JsonAssetDocument-C7VGcLhu.js +0 -3
  424. package/dist/assets/MeshBVH-BiDHDcu-.js +0 -1
  425. package/dist/assets/ModelAssetDocument-F5GACirk.js +0 -1
  426. package/dist/assets/Object3DDocumentViewport-DB7T0NTl.js +0 -2
  427. package/dist/assets/Object3DPreview-DL8oi7Xs.js +0 -2
  428. package/dist/assets/OnlineAssetDetail-C6z9RvYK.js +0 -2
  429. package/dist/assets/PlayBar-BR-Vg3Jb.js +0 -2
  430. package/dist/assets/RGBELoader-BgBcQv8j.js +0 -1
  431. package/dist/assets/RectAreaLightUniformsLib-CMMoWfll.js +0 -1
  432. package/dist/assets/RootSelectionOverlay-BZPlxmXU.js +0 -1
  433. package/dist/assets/STLLoader-Dyv3lsxY.js +0 -1
  434. package/dist/assets/SimplifyModifier-C8ayvRzd.js +0 -1
  435. package/dist/assets/SourceAssetViewer-2SWQoUut.js +0 -12
  436. package/dist/assets/StageHost-BN-IoTef.js +0 -2
  437. package/dist/assets/ThreeBoardDocument-CVncZyIq.js +0 -2
  438. package/dist/assets/asset-budget-asset.menu-Di3KiQCd.js +0 -1
  439. package/dist/assets/asset-budget.action-DCzzcuTh.js +0 -1
  440. package/dist/assets/asset-budget.document-BWU8wnVW.js +0 -1
  441. package/dist/assets/asset-budget.menu-BGZpT_31.js +0 -1
  442. package/dist/assets/autoplay.service-BZBGNSvt.js +0 -1
  443. package/dist/assets/blender-emscripten-engine-9ZIRYNhe.js +0 -2
  444. package/dist/assets/blender-properties-tab-C5CyPydi.js +0 -3
  445. package/dist/assets/blender-runtime-host-BpBwGv7r.js +0 -4
  446. package/dist/assets/blender-runtime.document-lIYhhPtv.js +0 -8
  447. package/dist/assets/blender.command-BtJeWk-A.js +0 -1
  448. package/dist/assets/body-marks-h_xDxiDE.js +0 -1
  449. package/dist/assets/bridge.command-o5gDNEwa.js +0 -3
  450. package/dist/assets/browserAll-DeWblVez.js +0 -1
  451. package/dist/assets/canvas-entry-runtime-SfBxaR9M.js +0 -2
  452. package/dist/assets/component-board.service-DidCyM4O.js +0 -2
  453. package/dist/assets/component-verbs.service-Bv9jId3q.js +0 -1
  454. package/dist/assets/constraints.inspector-B9U9Yj-u.js +0 -1
  455. package/dist/assets/coverage.service-VTX5Mcsx.js +0 -3
  456. package/dist/assets/deferred-ingest-play-DCJi_Pgu.js +0 -2
  457. package/dist/assets/design-time-layers-wYgOTgni.js +0 -1
  458. package/dist/assets/design-time-mount.service-BzY21e1F.js +0 -2
  459. package/dist/assets/design-time-react-mount-DM9WLrF2.js +0 -1
  460. package/dist/assets/edit-mode-authoring-B47TfLqu.js +0 -1
  461. package/dist/assets/editor-api-BoJIcyZG.js +0 -1
  462. package/dist/assets/fflate.module-DPuTF8aG.js +0 -6
  463. package/dist/assets/fork-menu-BoVyw2Wu.js +0 -1
  464. package/dist/assets/game-document.service-DbRfx2V0.js +0 -1
  465. package/dist/assets/game-eval.command-D-7Dxbj_.js +0 -2
  466. package/dist/assets/gameplay-replay-e5umMlXv.js +0 -1
  467. package/dist/assets/gameplay.command-DxcVYX6F.js +0 -1
  468. package/dist/assets/generation.service-CDIgObuw.js +0 -1
  469. package/dist/assets/index-96FBF1Oj.js +0 -1
  470. package/dist/assets/index-BAWkB0dv.js +0 -1
  471. package/dist/assets/index-BDnS2b6S.js +0 -1
  472. package/dist/assets/index-BjTCPEQ7.js +0 -134
  473. package/dist/assets/index-CVCb_ImQ.js +0 -1
  474. package/dist/assets/index-CZd9o7Lu.js +0 -1
  475. package/dist/assets/index-D2fNXpHa.css +0 -1
  476. package/dist/assets/index-GIL7oGEO.js +0 -4894
  477. package/dist/assets/index-OrYXPk3Z.js +0 -487
  478. package/dist/assets/ingest-boot-viewport-D5rI_Kk_.js +0 -1
  479. package/dist/assets/ingest-siblings-Bop2kqVl.js +0 -1
  480. package/dist/assets/instances.command-D6UkZNO8.js +0 -1
  481. package/dist/assets/light-camera-factory-CWbbe9gI.js +0 -1
  482. package/dist/assets/live-behaviors-Bxq49Maz.js +0 -1
  483. package/dist/assets/matcap-texture-CVfalpWT.js +0 -1
  484. package/dist/assets/model-asset-sections.service-CHhFS3ZX.js +0 -1
  485. package/dist/assets/model.layout-BJUEQYUI.js +0 -1
  486. package/dist/assets/module-mode-DVBLT9d-.js +0 -2
  487. package/dist/assets/mount-canvas-ingest-root-DDuAWf_C.js +0 -2
  488. package/dist/assets/mount-dom-ingest-root-D_EiBgpn.js +0 -2
  489. package/dist/assets/mount-ingest-root-glv2SSWf.js +0 -2
  490. package/dist/assets/mount-three-ingest-root-hrUt9VVU.js +0 -1
  491. package/dist/assets/particles-factory-DnLOHXT8.js +0 -1
  492. package/dist/assets/pasteboard-materialize-BqSS4QzV.js +0 -20
  493. package/dist/assets/pasteboard.action-DU3UHtJG.js +0 -2
  494. package/dist/assets/pixi-authoring-adapter-CjibysC3.js +0 -1
  495. package/dist/assets/pixi-primitive-DlWbUPN9.js +0 -1
  496. package/dist/assets/pixi-react-root-factory-DYsznYRQ.js +0 -1
  497. package/dist/assets/play-mode-BFU2PCkG.js +0 -22
  498. package/dist/assets/play.command-BpqqLqkq.js +0 -2
  499. package/dist/assets/project-authoring-session-Bnt6icLr.js +0 -2
  500. package/dist/assets/r3f-design-session-D-4yyDO9.js +0 -2
  501. package/dist/assets/r3f-physics-binding-BBo8oma9.js +0 -1
  502. package/dist/assets/r3f-source-authoring-adapter-w6Bc60K-.js +0 -13
  503. package/dist/assets/react-inspector.service-B_neRnSK.js +0 -1
  504. package/dist/assets/react-story-board-BDDwiE2H.js +0 -1
  505. package/dist/assets/react-world-authoring-adapter-DmrwM3py.js +0 -1
  506. package/dist/assets/runtime-inspection-l2iFQSsg.js +0 -1
  507. package/dist/assets/scene-document.service-qkDjUrlP.js +0 -2
  508. package/dist/assets/sculpt.layout-zJF55yCR.js +0 -1
  509. package/dist/assets/setup-particles-GCXlnkj_.js +0 -1
  510. package/dist/assets/shading.layout-DULYZV6M.js +0 -1
  511. package/dist/assets/source-object3d-authoring-adapter-B-L6Ha6f.js +0 -1
  512. package/dist/assets/stage-invalidation-DBg3C3Ta.js +0 -1
  513. package/dist/assets/stage-keyboard-n-5kKH-m.js +0 -1
  514. package/dist/assets/stage-overlay-set-B9zp2sLB.js +0 -1
  515. package/dist/assets/stage-presence-markers-DiGI6A45.js +0 -1
  516. package/dist/assets/standard-viewport-dressing-CzjAe_0A.js +0 -7
  517. package/dist/assets/static-batch-advisor-B13QEH7d.js +0 -1
  518. package/dist/assets/story-capture-_gC8dXV-.js +0 -1
  519. package/dist/assets/story-documents--TDLaPeL.js +0 -3
  520. package/dist/assets/story-documents.service-BiS_YbNQ.js +0 -1
  521. package/dist/assets/story-documents.service-CxOPYJ2j.js +0 -1
  522. package/dist/assets/story-pixi-preview-BUrOJZXS.js +0 -1
  523. package/dist/assets/story-presentation-j2AVN-mK.js +0 -1
  524. package/dist/assets/team-playtest.service-DqOinFVA.js +0 -1
  525. package/dist/assets/three-authoring.service-iuHLwtf1.js +0 -2
  526. package/dist/assets/three-viewport-presentation-QBQpSdMh.js +0 -1
  527. package/dist/assets/three.quarks.esm-B1C61jGo.js +0 -1039
  528. package/dist/assets/transport.header-B-6HQlU2.js +0 -1
  529. package/dist/assets/ui-board-document-Bwtt--xp.js +0 -2
  530. package/dist/assets/use-live-actor-state-DErbWQWF.js +0 -1
  531. package/dist/assets/user-data-BB2Of6Ht.js +0 -1
  532. package/dist/assets/uv-editing.layout-BEKHxmHw.js +0 -1
  533. package/dist/assets/viewport-shading-boundary-B_-_gABg.js +0 -82
  534. package/dist/assets/voxel-surface-DtcsSWRL.js +0 -1
  535. package/dist/assets/webgl-frame-capture-FlF9zQmW.js +0 -1
  536. package/dist/assets/webworkerAll-CM2o_dnz.js +0 -1
  537. package/dist/assets/world-documents-147tiFZe.js +0 -1
  538. package/dist/assets/world-root-stage-binding-vwTrtBz6.js +0 -1
  539. package/dist/assets/xstate-animation-binding-Brd0NST6.js +0 -1
  540. package/dist/assets/xstate-behavior.action-B8UluFBK.js +0 -1
  541. package/dist/assets/xstate-behavior.document-CKAsE45I.js +0 -1
  542. package/dist/assets/xstate-behavior.inspector-vJJyuifc.js +0 -1
  543. package/dist/assets/xstate-behavior.menu-BXbPICIh.js +0 -1
  544. package/dist/assets/xstate-inspection-BsZv8LS9.js +0 -1
@@ -0,0 +1 @@
1
+ import{CameraDescriptorSchema as n}from"./camera-CKbyBXMe.js";import{ColliderDescriptorSchema as D}from"./collider-DRSaLRM9.js";import{LightDescriptorSchema as g}from"./light-CFAor97k.js";import{MaterialDescriptorSchema as P}from"./material-D5kXEZWQ.js";import{MeshDescriptorSchema as C}from"./mesh-BKPgNTwh.js";import{ParticlesDescriptorSchema as u}from"./particles-C47L-dda.js";import{PostProcessingDescriptorSchema as E,RenderEnvironmentSchema as L,ToneMappingDescriptorSchema as Q}from"./render-env-emvlfeTG.js";import{QuatSchema as V,TransformSchema as b,Vec3Schema as j}from"./tuples-DKDGrN1t.js";import"./index-Ckxb31Yz.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-IFn-4i31.js";import"./render-features-COF7MSQ9.js";export{n as CameraDescriptorSchema,D as ColliderDescriptorSchema,g as LightDescriptorSchema,P as MaterialDescriptorSchema,C as MeshDescriptorSchema,u as ParticlesDescriptorSchema,E as PostProcessingDescriptorSchema,V as QuatSchema,L as RenderEnvironmentSchema,Q as ToneMappingDescriptorSchema,b as TransformSchema,j as Vec3Schema};
@@ -0,0 +1 @@
1
+ import{ab as nt,bD as st,ap as ot,f7 as E,bB as U,a5 as at,ig as rt,ih as it}from"./index-Ckxb31Yz.js";import{ii as wt,ij as Rt,ik as Ft,aR as Ct,bE as Nt,il as kt,im as _t,io as Lt,ip as Ot,iq as Bt,ir as Gt,is as Pt,eX as $t,it as Ht,fc as Vt,iu as zt,iv as Wt,iw as Kt,ix as Jt,e1 as Ut,iy as qt,cc as Yt,a6 as Xt,eE as Qt,cb as Zt,gZ as te,iz as ee,iA as ne,bT as se,iB as oe,iC as ae,iD as re,fa as ie,fs as ce,iE as ue,ft as le,iF as de,dG as pe,iG as fe,bV as me,dO as he,iH as xe,iI as Ee,iJ as ge,dP as Se,ff as je,g3 as Te,ac as be,bZ as De,hp as ye,hq as Me,iK as Ie,aS as ve,iL as Ae,aT as we,c2 as Re,iM as Fe,dF as Ce,dN as Ne,eP as ke,iN as _e,iO as Le,aa as Oe,fd as Be,i3 as Ge,iP as Pe,gG as $e,iQ as He,bU as Ve,iR as ze,iS as We,eG as Ke,iT as Je,iU as Ue,iV as qe,iW as Ye,iX as Xe,eC as Qe,eD as Ze,iY as tn,iZ as en,i_ as nn,i$ as sn,eJ as on,j0 as an,j1 as rn,j2 as cn,j3 as un,j4 as ln,a7 as dn,j5 as pn,j6 as fn,j7 as mn,j8 as hn,j9 as xn,ja as En,eK as gn,jb as Sn,jc as jn,eH as Tn,jd as bn,je as Dn,jf as yn,e2 as Mn,jg as In,jh as vn,ji as An,jj as wn,jk as Rn,jl as Fn,jm as Cn,f8 as Nn,jn as kn,jo as _n,jp as Ln,jq as On,jr as Bn,js as Gn,eL as Pn,jt as $n,ju as Hn,jv as Vn,fe as zn,jw as Wn,jx as Kn,jy as Jn,jz as Un,dU as qn,eF as Yn,jA as Xn,jB as Qn,jC as Zn,eI as ts,jD as es,aY as ns,bC as ss,jE as os,jF as as,jG as rs,dT as is}from"./index-Ckxb31Yz.js";import{C as us}from"./ColorInput-CPQNsDf1.js";import{a as p}from"./jsx-runtime-DPjLkJKQ.js";import{r as T}from"./index-nmcBqr7Y.js";import{A as ds,k as ps,B as fs,a as ms,l as hs,C as xs,D as Es,m as gs,F as Ss,h as js,G as Ts,n as bs,Q as Ds,S as ys,f as Ms,o as Is,T as vs,d as As,c as ws,g as Rs,i as Fs,j as Cs,b as Ns,p as ks,e as _s,u as Ls,q as Os}from"./ShadowEditor-BEIUkrHL.js";import"./index-CtzuWnCS.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./three.module-IFn-4i31.js";function Dt({preview:t,children:e,...r}){const[o,a]=T.useState(!1),l=T.useRef(null),c=T.useId(),s=()=>a(!1),d=i=>{l.current=i,a(!0)};let h=e;if(T.isValidElement(e)){const i=[e.props["aria-describedby"],o?c:null].filter(Boolean).join(" ");h=T.cloneElement(e,i?{"aria-describedby":i}:{})}return p.jsxs("span",{className:"vgai-tooltip-anchor",onMouseEnter:i=>d(i.currentTarget),onMouseLeave:s,onFocusCapture:i=>d(i.currentTarget),onBlurCapture:i=>{i.currentTarget.contains(i.relatedTarget)||s()},onKeyDown:i=>{i.key!=="Escape"||!o||(i.preventDefault(),i.stopPropagation(),s())},children:[h,o&&l.current&&p.jsx(nt,{...r,anchorRef:l,id:c,role:"tooltip",autoFocusFirst:!1,onDismiss:s,children:t})]})}function yt({value:t,onCommit:e,style:r,disabled:o=!1}){const a=t===void 0?"":JSON.stringify(t),[l,c]=T.useState(a),[s,d]=T.useState(!1),h=T.useRef(!1);T.useEffect(()=>{c(a),d(!1)},[a]);const i=()=>{if(h.current){h.current=!1;return}if(l===a){d(!1);return}let m;try{m=JSON.parse(l)}catch{d(!0);return}d(!1),e(m)};return p.jsxs("div",{children:[p.jsx(st,{"data-testid":"json-input","aria-invalid":s||void 0,"data-tone":s?"danger":void 0,disabled:o,value:l,onChange:m=>{c(m.target.value),s&&d(!1)},onBlur:i,onKeyDown:m=>{m.key==="Enter"?i():m.key==="Escape"&&(h.current=!0,c(a),d(!1),m.target.blur())},style:r,title:s?"Not valid JSON — nothing written. Fix the JSON or press Escape to revert.":void 0}),s&&p.jsx("div",{"data-testid":"json-input-error",style:{fontSize:"var(--vgai-font-sm)",color:ot.semantic.danger,marginTop:2},children:"Not valid JSON — nothing written. Fix the JSON or press Escape to revert."})]})}function v(t,e){return e+1<t.length?t[e+1].start:1}function ct(t){const e=t.map(o=>({time:o.start,value:o.function.p0})),r=t[t.length-1];return r&&e.push({time:1,value:r.function.p3}),e}function G(t){return t.map(e=>({start:e.start,function:{...e.function}}))}const B=.01;function C(t,e,r,o){const a=G(t),l=a.length;if(e<0||e>l)return a;if(e<l){const c=a[e],s=o-c.function.p0;if(c.function.p0=o,c.function.p1+=s,e>0){const d=a[e-1],h=o-d.function.p3;d.function.p3=o,d.function.p2+=h;const i=d.start+B,m=v(a,e)-B;c.start=Math.min(m,Math.max(i,r))}}else{const c=a[l-1],s=o-c.function.p3;c.function.p3=o,c.function.p2+=s}return a}function q(t,e,r,o){const a=G(t);return r==="out"&&e<a.length?a[e].function.p1=o:r==="in"&&e>0&&e<=a.length&&(a[e-1].function.p2=o),a}function D(t,e,r){return t+(e-t)*r}function Mt(t,e){for(let r=0;r<t.length;r++){const o=t[r].start,a=v(t,r);if(e>=o&&e<=a){const l=a>o?(e-o)/(a-o):0,{p0:c,p1:s,p2:d,p3:h}=t[r].function,i=D(c,s,l),m=D(s,d,l),g=D(d,h,l),M=D(i,m,l),I=D(m,g,l);return D(M,I,l)}}return 0}function ut(t,e){for(let r=0;r<t.length;r++){const o=t[r].start,a=v(t,r);if(e<=o+B||e>=a-B||e<o||e>a)continue;const l=(e-o)/(a-o),{p0:c,p1:s,p2:d,p3:h}=t[r].function,i=D(c,s,l),m=D(s,d,l),g=D(d,h,l),M=D(i,m,l),I=D(m,g,l),b=D(M,I,l),S=G(t);return S.splice(r,1,{start:o,function:{p0:c,p1:i,p2:M,p3:b}},{start:e,function:{p0:b,p1:I,p2:g,p3:h}}),S}return t}function Y(t,e){if(e<=0||e>=t.length)return t;const r=t[e-1],o=t[e],a=o.start-r.start,l=v(t,e)-o.start,c=a+l;if(c<=0)return t;const s=r.function,d=o.function,h={start:r.start,function:{p0:s.p0,p1:s.p0+(s.p1-s.p0)*(a>0?c/a:1),p2:d.p3+(d.p2-d.p3)*(l>0?c/l:1),p3:d.p3}},i=G(t);return i.splice(e-1,2,h),i}function lt(t){let e=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;for(const o of t)for(const a of[o.function.p0,o.function.p1,o.function.p2,o.function.p3])a<e&&(e=a),a>r&&(r=a);return!Number.isFinite(e)||!Number.isFinite(r)?{min:0,max:1}:{min:e,max:r}}const N=34,X=6,W=6,dt=14,O=260;function pt(t){return Math.abs(t)>=100?t.toFixed(0):Math.abs(t)>=1?String(Math.round(t*100)/100):String(Math.round(t*1e3)/1e3)}function It({value:t,onChange:e,onChangeEnd:r,disabled:o,height:a=90,color:l,testId:c="curve-editor"}){const[s,d]=T.useState(0),h=T.useRef(null),i=T.useRef(null),m=T.useMemo(()=>ct(t),[t]),g=T.useMemo(()=>{const{min:n,max:u}=lt(t);if(u-n<1e-6)return{min:n-1,max:u+1};const f=(u-n)*.1;return{min:n-f,max:u+f}},[t]),M=O-N-X,I=a-W-dt,b=n=>N+n*M,S=n=>W+(1-(n-g.min)/(g.max-g.min))*I,Q=n=>Math.max(0,Math.min(1,(n-N)/M)),Z=n=>g.min+(1-(n-W)/I)*(g.max-g.min),P=n=>{const u=h.current?.getBoundingClientRect();if(!u)return{t:0,v:0};const f=(n.clientX-u.left)/u.width*O,j=(n.clientY-u.top)/u.height*a;return{t:Q(f),v:Z(j)}},tt=T.useMemo(()=>{if(t.length===0)return"";let n=`M ${b(t[0].start)} ${S(t[0].function.p0)}`;for(let u=0;u<t.length;u++){const f=t[u],j=v(t,u),y=j-f.start;n+=` C ${b(f.start+y/3)} ${S(f.function.p1)}, ${b(f.start+2*y/3)} ${S(f.function.p2)}, ${b(j)} ${S(f.function.p3)}`}return n},[t,g,a]),A=n=>rt({onChange:e,onChangeEnd:r},n),$=n=>it({onChange:e},n),H=(n,u)=>{if(o)return;n.preventDefault(),n.stopPropagation(),i.current=t;const f=y=>{const{t:F,v:z}=P(y),L=u(i.current??t,F,z);i.current=L,$(L)},j=y=>{const{t:F,v:z}=P(y),L=u(i.current??t,F,z);i.current=null,A(L),window.removeEventListener("pointermove",f),window.removeEventListener("pointerup",j)};window.addEventListener("pointermove",f),window.addEventListener("pointerup",j)},K=l??E.accent,J=t.length,x=m[s],V=s>0&&s<J,k=s<J?t[s]:void 0,_=s>0?t[s-1]:void 0,w=k?{x:b(k.start+(v(t,s)-k.start)/3),y:S(k.function.p1)}:null,R=_?{x:b(_.start+(v(t,s-1)-_.start)*2/3),y:S(_.function.p2)}:null,et=[g.min,(g.min+g.max)/2,g.max];return p.jsxs("div",{"data-testid":c,children:[p.jsxs("svg",{ref:h,"data-testid":`${c}-plot`,viewBox:`0 0 ${O} ${a}`,style:{width:"100%",height:a,display:"block",background:E.inputBg,border:`1px solid ${E.border}`,borderRadius:E.radiusSmall,touchAction:"none",outline:"none"},tabIndex:0,role:"application","aria-label":"Curve editor",onKeyDown:n=>{(n.key==="Delete"||n.key==="Backspace")&&V&&!o&&(n.preventDefault(),A(Y(t,s)),d(Math.max(0,s-1)))},onDoubleClick:n=>{if(o)return;const{t:u}=P(n),f=ut(t,u);f!==t&&(A(f),d(f.findIndex(j=>Math.abs(j.start-u)<1e-6)))},children:[et.map(n=>p.jsxs("g",{children:[p.jsx("line",{x1:N,x2:O-X,y1:S(n),y2:S(n),stroke:E.border,strokeWidth:.5}),p.jsx("text",{x:N-3,y:S(n)+2.5,fontSize:7,fill:E.textMuted,textAnchor:"end",children:pt(n)})]},n)),[0,.5,1].map(n=>p.jsx("text",{x:b(n),y:a-3,fontSize:7,fill:E.textMuted,textAnchor:"middle",children:n},n)),p.jsx("path",{d:tt,fill:"none",stroke:K,strokeWidth:1.5}),x&&w&&p.jsxs("g",{children:[p.jsx("line",{x1:b(x.time),y1:S(x.value),x2:w.x,y2:w.y,stroke:E.textMuted,strokeDasharray:"2 2",strokeWidth:.75}),p.jsx("circle",{"data-testid":`${c}-tangent-out`,cx:w.x,cy:w.y,r:3,fill:E.surface,stroke:E.textMuted,style:{cursor:o?"not-allowed":"ns-resize"},onPointerDown:n=>H(n,(u,f,j)=>q(u,s,"out",j))})]}),x&&R&&p.jsxs("g",{children:[p.jsx("line",{x1:b(x.time),y1:S(x.value),x2:R.x,y2:R.y,stroke:E.textMuted,strokeDasharray:"2 2",strokeWidth:.75}),p.jsx("circle",{"data-testid":`${c}-tangent-in`,cx:R.x,cy:R.y,r:3,fill:E.surface,stroke:E.textMuted,style:{cursor:o?"not-allowed":"ns-resize"},onPointerDown:n=>H(n,(u,f,j)=>q(u,s,"in",j))})]}),m.map((n,u)=>p.jsx("circle",{"data-testid":`${c}-key-${u}`,cx:b(n.time),cy:S(n.value),r:4,fill:u===s?E.accent:E.surface,stroke:u===s?E.onAccent:K,strokeWidth:1.25,style:{cursor:o?"not-allowed":"move"},onPointerDown:f=>{d(u),H(f,(j,y,F)=>C(j,u,y,F))}},u))]}),p.jsxs("div",{style:{display:"flex",gap:4,alignItems:"center",marginTop:3},children:[p.jsxs("span",{style:{fontSize:9,color:E.textMuted,flex:"0 0 auto"},children:["Key ",s+1,"/",m.length]}),p.jsx(U,{label:"t",value:x?Math.round(x.time*1e3)/1e3:null,step:.05,testId:`${c}-key-time`,onChange:n=>{x&&$(C(t,s,n,x.value))},onChangeEnd:n=>{x&&A(C(t,s,n,x.value))}}),p.jsx(U,{label:"v",value:x?Math.round(x.value*1e3)/1e3:null,step:.05,testId:`${c}-key-value`,onChange:n=>{x&&$(C(t,s,x.time,n))},onChangeEnd:n=>{x&&A(C(t,s,x.time,n))}}),p.jsx(at,{type:"button",variant:"ghost",size:"compact","data-testid":`${c}-delete-key`,disabled:!V||o===!0,"aria-label":"Delete curve key",title:V?"Delete key":"Endpoint keys cannot be deleted",onClick:()=>{A(Y(t,s)),d(Math.max(0,s-1))},children:"×"})]})]})}export{wt as Actions,ds as AlignmentGrid,ps as AnchorPresets,nt as AnchoredMenu,Rt as AssetSlotPicker,fs as BorderEditor,ms as BorderRadiusEditor,at as Button,Ft as CLASSIC_MATERIAL,Ct as Checkbox,us as ColorInput,hs as ColorPicker,xs as ColorSwatch,Nt as ColorSwatchInput,It as CurveEditor,kt as DEFAULT_ICON_SET_ID,Es as DEFAULT_SHADOW,gs as DEFAULT_TEXT_SHADOW,_t as Dialog,Lt as DialogBody,Ot as DialogField,Bt as DialogFieldLabel,Gt as DialogFooter,Pt as DialogHeader,$t as DisclosureIcon,Ht as Divider,Vt as DraftTextInput,zt as DropIndicator,Wt as EDITOR_MATERIALS,Kt as EDITOR_MATERIAL_IDS,Jt as EDITOR_REGION_NAMES,Ut as EDITOR_THEME_CLASS,qt as EditorBadge,Yt as EditorBanner,Xt as EditorIcon,Qt as EditorListButton,Zt as EditorPopover,te as EditorSurface,ee as EditorTab,ne as EditorTabList,se as EditorToolbar,oe as EditorTree,ae as EditorTreeRow,re as FONT,ie as FONT_MONO,ce as FieldGroup,ue as FieldLabel,le as FieldRow,de as FileInput,Ss as FilterEditor,pe as FloatingToolbar,js as FontPicker,fe as GLASS_MATERIAL,Ts as GradientEditor,bs as GradientStopsTrack,Dt as HoverPreview,me as IconButton,he as Inline,xe as InteractiveEditScopeContext,Ee as JoinedField,ge as JoinedFieldSuffix,yt as JsonInput,Se as Keycap,je as LABEL_COL_WIDTH,Te as Menu,be as MenuItem,De as MenuSeparator,ye as MenuSubmenu,Me as MenuTrigger,U as NumberInput,Ie as Panel,Ds as QuarksGradientEditor,ve as RangeInput,Ae as ResizeHandle,ys as ScrubbableInput,we as SectionHeader,Re as Select,Ms as ShadowEditor,Is as ShadowListEditor,Fe as Spacer,Ce as SplitButtonGroup,Ne as Stack,ke as StateSurface,E as THEME,_e as TONE_ERROR,Le as TONE_WARNING,Oe as Text,Be as TextArea,st as TextInput,vs as TextShadowEditor,Ge as ThemeRootPortal,Pe as ToggleButton,$e as ToolbarDivider,He as ToolbarGroup,Ve as Tooltip,ze as TreeDisclosureIcon,We as Vec3Input,Ke as accent,Je as accentMuted,Ue as activeIconGlyph,qe as activeIconSetSnapshot,Ye as applyEditorTheme,Xe as areaEmbossValue,Qe as bg,Ze as border,tn as chromeSize,en as clampRectToViewport,nn as composeEditorAppearance,As as composeFilter,ws as composeGradient,Rs as composeShadows,sn as controlSize,ct as curveKeys,lt as curveValueRange,on as danger,an as dangerFaint,rn as dangerMuted,Y as deleteKey,cn as dynamic,un as dynamicBg,ln as editorIconSets,dn as editorIcons,pn as editorMaterials,fn as editorThemeVariables,mn as editorThemes,hn as fieldLabelStyle,it as fireChange,rt as fireEnd,xn as focusFirstMenuItem,En as focusRing,gn as fontMono,Sn as fontSans,jn as fontSize,Tn as fontSizeVar,bn as fontWeight,Dn as glassDarkEditorTheme,yn as glassDarkLiteEditorTheme,Mn as graphiteDarkEditorTheme,In as graphiteNeutralEditorTheme,vn as groupLabelStyle,An as iconSize,wn as isEditorIconSetId,Rn as isEditorMaterialId,Fn as isEditorThemeId,Fs as isUniformBorder,Cs as isUniformRadius,Cn as lineHeight,Nn as lineHeightVar,kn as liquidGlassEditorTheme,_n as liquidGlassLiteEditorTheme,Ln as midnightHighContrastEditorTheme,On as motion,Bn as motionVar,C as moveKey,q as moveTangent,Ns as parseFilterFunctions,ks as parseGradient,Gn as parseNumericValue,_s as parseShadows,Pn as radius,$n as regionRowAltValue,Hn as registerContributedIconSet,Vn as registerContributedMaterial,zn as rowStyle,Mt as sampleCurve,Wn as scrim,v as segmentEnd,Kn as selection,Jn as setActiveIconSet,Un as shadow,qn as space,Yn as spaceVar,ut as splitAt,Xn as strokeWidth,Qn as subscribeEditorMaterials,Zn as subscribeIconSets,ts as success,es as successMuted,ns as text,ot as themeVars,Ls as uniformBorder,Os as uniformRadius,ss as useInteractiveEditScope,os as usesGlassMaterial,as as warn,rs as warnMuted,is as zIndex};
@@ -0,0 +1,134 @@
1
+ import{V as $,R as Rn,G as Qt,g as Je,M as Ve,a as kt,bf as ut,bg as _t,n as wn,al as Qe,aC as me,ay as Jt,ax as On,aU as Oe,v as Ge,aY as ze,o as Ln,aZ as Re,aW as tr,bp as nr,z as er,x as rr}from"./three.module-IFn-4i31.js";import{M as or,E as Gn}from"./MeshBVH-BCSLNEeP.js";const $e=1e-6,ir=$e*.5,ke=Math.pow(10,-Math.log10($e)),ar=ir*ke;function Tt(d){return~~(d*ke+ar)}function hr(d){return`${Tt(d.x)},${Tt(d.y)}`}function Fn(d){return`${Tt(d.x)},${Tt(d.y)},${Tt(d.z)}`}function cr(d){return`${Tt(d.x)},${Tt(d.y)},${Tt(d.z)},${Tt(d.w)}`}function fe(d,r,h){h.direction.subVectors(r,d).normalize();const p=d.dot(h.direction);return h.origin.copy(d).addScaledVector(h.direction,-p),h}function Le(){return typeof SharedArrayBuffer<"u"}function sr(d){if(d.buffer instanceof SharedArrayBuffer)return d;const r=d.constructor,h=d.buffer,p=new SharedArrayBuffer(h.byteLength),y=new Uint8Array(h);return new Uint8Array(p).set(y,0),new r(p)}function gr(d){return d.index?d.index.count:d.attributes.position.count}function mt(d){return gr(d)/3}const lr=1e-8,vr=new $;function pr(d){return~~(d/3)}function ur(d){return d%3}function jn(d,r){return d.start-r.start}function Hn(d,r){return vr.subVectors(r,d.origin).dot(d.direction)}function yr(d,r,h,p=lr){d.sort(jn),r.sort(jn);for(let x=0;x<d.length;x++){const I=d[x];for(let v=0;v<r.length;v++){const o=r[v];if(!(o.start>I.end)){if(I.end<o.start||o.end<I.start)continue;if(I.start<=o.start&&I.end>=o.end)w(o.end,I.end)||d.splice(x+1,0,{start:o.end,end:I.end,index:I.index}),I.end=o.start,o.start=0,o.end=0;else if(I.start>=o.start&&I.end<=o.end)w(I.end,o.end)||r.splice(v+1,0,{start:I.end,end:o.end,index:o.index}),o.end=I.start,I.start=0,I.end=0;else if(I.start<=o.start&&I.end<=o.end){const g=I.end;I.end=o.start,o.start=g}else if(I.start>=o.start&&I.end>=o.end){const g=o.end;o.end=I.start,I.start=g}else throw new Error}if(h.has(I.index)||h.set(I.index,[]),h.has(o.index)||h.set(o.index,[]),h.get(I.index).push(o.index),h.get(o.index).push(I.index),T(o)&&(r.splice(v,1),v--),T(I)){d.splice(x,1),x--;break}}}y(d),y(r);function y(x){for(let I=0;I<x.length;I++)T(x[I])&&(x.splice(I,1),I--)}function w(x,I){return Math.abs(I-x)<p}function T(x){return Math.abs(x.end-x.start)<p}}const Un=1e-5,qn=1e-4;class wr{constructor(){this._rays=[]}addRay(r){this._rays.push(r)}findClosestRay(r){const h=this._rays,p=r.clone();p.direction.multiplyScalar(-1);let y=1/0,w=null;for(let I=0,v=h.length;I<v;I++){const o=h[I];if(T(o,r)&&T(o,p))continue;const g=x(o,r),u=x(o,p),A=Math.min(g,u);A<y&&(y=A,w=o)}return w;function T(I,v){const o=I.origin.distanceTo(v.origin)>Un;return I.direction.angleTo(v.direction)>qn||o}function x(I,v){const o=I.origin.distanceTo(v.origin),g=I.direction.angleTo(v.direction);return o/Un+g/qn}}}const bn=new $,dn=new $,tn=new Rn;function xr(d,r,h){const p=d.attributes,y=d.index,w=p.position,T=new Map,x=new Map,I=Array.from(r),v=new wr;for(let o=0,g=I.length;o<g;o++){const u=I[o],A=pr(u),E=ur(u);let M=3*A+E,S=3*A+(E+1)%3;y&&(M=y.getX(M),S=y.getX(S)),bn.fromBufferAttribute(w,M),dn.fromBufferAttribute(w,S),fe(bn,dn,tn);let C,P=v.findClosestRay(tn);P===null&&(P=tn.clone(),v.addRay(P)),x.has(P)||x.set(P,{forward:[],reverse:[],ray:P}),C=x.get(P);let e=Hn(P,bn),n=Hn(P,dn);e>n&&([e,n]=[n,e]),tn.direction.dot(P.direction)<0?C.reverse.push({start:e,end:n,index:u}):C.forward.push({start:e,end:n,index:u})}return x.forEach(({forward:o,reverse:g},u)=>{yr(o,g,T,h),o.length===0&&g.length===0&&x.delete(u)}),{disjointConnectivityMap:T,fragmentMap:x}}const br=new Je,_n=new $,dr=new Qt,In=["","",""];class _r{constructor(){this.data=null,this.disjointConnections=null,this.unmatchedDisjointEdges=null,this.unmatchedEdges=-1,this.matchedEdges=-1,this.useDrawRange=!0,this.useAllAttributes=!1,this.matchDisjointEdges=!1,this.degenerateEpsilon=1e-8}getSiblingTriangleIndex(r,h){const p=this.data[r*3+h];return p===-1?-1:~~(p/3)}getSiblingEdgeIndex(r,h){const p=this.data[r*3+h];return p===-1?-1:p%3}getDisjointSiblingTriangleIndices(r,h){const p=r*3+h,y=this.disjointConnections.get(p);return y?y.map(w=>~~(w/3)):[]}getDisjointSiblingEdgeIndices(r,h){const p=r*3+h,y=this.disjointConnections.get(p);return y?y.map(w=>w%3):[]}isFullyConnected(){return this.unmatchedEdges===0}updateFrom(r){const{useAllAttributes:h,useDrawRange:p,matchDisjointEdges:y,degenerateEpsilon:w}=this,T=h?e:P,x=new Map,{attributes:I}=r,v=h?Object.keys(I):null,o=r.index,g=I.position;let u=mt(r);const A=u;let E=0;p&&(E=r.drawRange.start,r.drawRange.count!==1/0&&(u=~~(r.drawRange.count/3)));let M=this.data;(!M||M.length<3*A)&&(M=new Int32Array(3*A)),M.fill(-1);let S=0,C=new Set;for(let n=E,i=u*3+E;n<i;n+=3){const t=n;for(let D=0;D<3;D++){let b=t+D;o&&(b=o.getX(b)),In[D]=T(b)}for(let D=0;D<3;D++){const b=(D+1)%3,a=In[D],c=In[b],s=`${c}_${a}`;if(x.has(s)){const l=t+D,_=x.get(s);M[l]=_,M[_]=l,x.delete(s),S+=2,C.delete(_)}else{const l=`${a}_${c}`,_=t+D;x.set(l,_),C.add(_)}}}if(y){const{fragmentMap:n,disjointConnectivityMap:i}=xr(r,C,w);C.clear(),n.forEach(({forward:t,reverse:D})=>{t.forEach(({index:b})=>C.add(b)),D.forEach(({index:b})=>C.add(b))}),this.unmatchedDisjointEdges=n,this.disjointConnections=i,S=u*3-C.size}this.matchedEdges=S,this.unmatchedEdges=C.size,this.data=M;function P(n){return _n.fromBufferAttribute(g,n),Fn(_n)}function e(n){let i="";for(let t=0,D=v.length;t<D;t++){const b=I[v[t]];let a;switch(b.itemSize){case 1:a=Tt(b.getX(n));break;case 2:a=hr(br.fromBufferAttribute(b,n));break;case 3:a=Fn(_n.fromBufferAttribute(b,n));break;case 4:a=cr(dr.fromBufferAttribute(b,n));break}i!==""&&(i+="|"),i+=a}return i}}}class zn extends Ve{constructor(...r){super(...r),this.isBrush=!0,this._previousMatrix=new kt,this._previousMatrix.elements.fill(0),this._halfEdges=null,this._boundsTree=null,this._groupIndices=null,this._hash=null}markUpdated(){this._previousMatrix.copy(this.matrix)}isDirty(){const{matrix:r,_previousMatrix:h}=this,p=r.elements,y=h.elements;for(let w=0;w<16;w++)if(p[w]!==y[w])return!0;return!1}prepareGeometry(){const r=this.geometry,h=r.attributes,p=Le(),y=r.index,w=r.attributes.position,T=y?`${y.uuid}_${y.count}_${y.version}`:"-1_-1_-1",x=`${w.uuid}_${w.count}_${w.version}`,I=`${r.uuid}_${T}_${x}`;if(this._hash===I)return;if(this._hash=I,p)for(const u in h){const A=h[u];if(A.isInterleavedBufferAttribute)throw new Error("Brush: InterleavedBufferAttributes are not supported.");A.array=sr(A.array)}r.boundsTree=new or(r,{maxLeafSize:3,indirect:!0,useSharedArrayBuffer:p}),r.halfEdges||(r.halfEdges=new _r),r.halfEdges.updateFrom(r);const v=mt(r);(!r.groupIndices||r.groupIndices.length!==v)&&(r.groupIndices=new Uint16Array(v));const o=r.groupIndices,g=r.groups;for(let u=0,A=g.length;u<A;u++){const{start:E,count:M}=g[u];for(let S=E/3,C=(E+M)/3;S<C;S++)o[S]=u}}disposeCacheData(){const{geometry:r}=this;r.halfEdges=null,r.boundsTree=null,r.groupIndices=null}}var Ir=Object.getOwnPropertyNames,yt=(d,r)=>function(){return r||(0,d[Ir(d)[0]])((r={exports:{}}).exports,r),r.exports},xn=yt({"node_modules/binary-search-bounds/search-bounds.js"(d,r){function h(I,v,o,g,u){for(var A=u+1;g<=u;){var E=g+u>>>1,M=I[E],S=o!==void 0?o(M,v):M-v;S>=0?(A=E,u=E-1):g=E+1}return A}function p(I,v,o,g,u){for(var A=u+1;g<=u;){var E=g+u>>>1,M=I[E],S=o!==void 0?o(M,v):M-v;S>0?(A=E,u=E-1):g=E+1}return A}function y(I,v,o,g,u){for(var A=g-1;g<=u;){var E=g+u>>>1,M=I[E],S=o!==void 0?o(M,v):M-v;S<0?(A=E,g=E+1):u=E-1}return A}function w(I,v,o,g,u){for(var A=g-1;g<=u;){var E=g+u>>>1,M=I[E],S=o!==void 0?o(M,v):M-v;S<=0?(A=E,g=E+1):u=E-1}return A}function T(I,v,o,g,u){for(;g<=u;){var A=g+u>>>1,E=I[A],M=o!==void 0?o(E,v):E-v;if(M===0)return A;M<=0?g=A+1:u=A-1}return-1}function x(I,v,o,g,u,A){return typeof o=="function"?A(I,v,o,g===void 0?0:g|0,u===void 0?I.length-1:u|0):A(I,v,void 0,o===void 0?0:o|0,g===void 0?I.length-1:g|0)}r.exports={ge:function(I,v,o,g,u){return x(I,v,o,g,u,h)},gt:function(I,v,o,g,u){return x(I,v,o,g,u,p)},lt:function(I,v,o,g,u){return x(I,v,o,g,u,y)},le:function(I,v,o,g,u){return x(I,v,o,g,u,w)},eq:function(I,v,o,g,u){return x(I,v,o,g,u,T)}}}}),$n=yt({"node_modules/two-product/two-product.js"(d,r){r.exports=p;var h=+(Math.pow(2,27)+1);function p(y,w,T){var x=y*w,I=h*y,v=I-y,o=I-v,g=y-o,u=h*w,A=u-w,E=u-A,M=w-E,S=x-o*E,C=S-g*E,P=C-o*M,e=g*M-P;return T?(T[0]=e,T[1]=x,T):[e,x]}}}),Fe=yt({"node_modules/robust-sum/robust-sum.js"(d,r){r.exports=p;function h(y,w){var T=y+w,x=T-y,I=T-x,v=w-x,o=y-I,g=o+v;return g?[g,T]:[T]}function p(y,w){var T=y.length|0,x=w.length|0;if(T===1&&x===1)return h(y[0],w[0]);var I=T+x,v=new Array(I),o=0,g=0,u=0,A=Math.abs,E=y[g],M=A(E),S=w[u],C=A(S),P,e;M<C?(e=E,g+=1,g<T&&(E=y[g],M=A(E))):(e=S,u+=1,u<x&&(S=w[u],C=A(S))),g<T&&M<C||u>=x?(P=E,g+=1,g<T&&(E=y[g],M=A(E))):(P=S,u+=1,u<x&&(S=w[u],C=A(S)));for(var n=P+e,i=n-P,t=e-i,D=t,b=n,a,c,s,l,_;g<T&&u<x;)M<C?(P=E,g+=1,g<T&&(E=y[g],M=A(E))):(P=S,u+=1,u<x&&(S=w[u],C=A(S))),e=D,n=P+e,i=n-P,t=e-i,t&&(v[o++]=t),a=b+n,c=a-b,s=a-c,l=n-c,_=b-s,D=_+l,b=a;for(;g<T;)P=E,e=D,n=P+e,i=n-P,t=e-i,t&&(v[o++]=t),a=b+n,c=a-b,s=a-c,l=n-c,_=b-s,D=_+l,b=a,g+=1,g<T&&(E=y[g]);for(;u<x;)P=S,e=D,n=P+e,i=n-P,t=e-i,t&&(v[o++]=t),a=b+n,c=a-b,s=a-c,l=n-c,_=b-s,D=_+l,b=a,u+=1,u<x&&(S=w[u]);return D&&(v[o++]=D),b&&(v[o++]=b),o||(v[o++]=0),v.length=o,v}}}),Ar=yt({"node_modules/two-sum/two-sum.js"(d,r){r.exports=h;function h(p,y,w){var T=p+y,x=T-p,I=T-x,v=y-x,o=p-I;return w?(w[0]=o+v,w[1]=T,w):[o+v,T]}}}),je=yt({"node_modules/robust-scale/robust-scale.js"(d,r){var h=$n(),p=Ar();r.exports=y;function y(w,T){var x=w.length;if(x===1){var I=h(w[0],T);return I[0]?I:[I[1]]}var v=new Array(2*x),o=[.1,.1],g=[.1,.1],u=0;h(w[0],T,o),o[0]&&(v[u++]=o[0]);for(var A=1;A<x;++A){h(w[A],T,g);var E=o[1];p(E,g[0],o),o[0]&&(v[u++]=o[0]);var M=g[1],S=o[1],C=M+S,P=C-M,e=S-P;o[1]=C,e&&(v[u++]=e)}return o[1]&&(v[u++]=o[1]),u===0&&(v[u++]=0),v.length=u,v}}}),He=yt({"node_modules/robust-subtract/robust-diff.js"(d,r){r.exports=p;function h(y,w){var T=y+w,x=T-y,I=T-x,v=w-x,o=y-I,g=o+v;return g?[g,T]:[T]}function p(y,w){var T=y.length|0,x=w.length|0;if(T===1&&x===1)return h(y[0],-w[0]);var I=T+x,v=new Array(I),o=0,g=0,u=0,A=Math.abs,E=y[g],M=A(E),S=-w[u],C=A(S),P,e;M<C?(e=E,g+=1,g<T&&(E=y[g],M=A(E))):(e=S,u+=1,u<x&&(S=-w[u],C=A(S))),g<T&&M<C||u>=x?(P=E,g+=1,g<T&&(E=y[g],M=A(E))):(P=S,u+=1,u<x&&(S=-w[u],C=A(S)));for(var n=P+e,i=n-P,t=e-i,D=t,b=n,a,c,s,l,_;g<T&&u<x;)M<C?(P=E,g+=1,g<T&&(E=y[g],M=A(E))):(P=S,u+=1,u<x&&(S=-w[u],C=A(S))),e=D,n=P+e,i=n-P,t=e-i,t&&(v[o++]=t),a=b+n,c=a-b,s=a-c,l=n-c,_=b-s,D=_+l,b=a;for(;g<T;)P=E,e=D,n=P+e,i=n-P,t=e-i,t&&(v[o++]=t),a=b+n,c=a-b,s=a-c,l=n-c,_=b-s,D=_+l,b=a,g+=1,g<T&&(E=y[g]);for(;u<x;)P=S,e=D,n=P+e,i=n-P,t=e-i,t&&(v[o++]=t),a=b+n,c=a-b,s=a-c,l=n-c,_=b-s,D=_+l,b=a,u+=1,u<x&&(S=-w[u]);return D&&(v[o++]=D),b&&(v[o++]=b),o||(v[o++]=0),v.length=o,v}}}),Tr=yt({"node_modules/robust-orientation/orientation.js"(d,r){var h=$n(),p=Fe(),y=je(),w=He(),T=5,x=11102230246251565e-32,I=(3+16*x)*x,v=(7+56*x)*x;function o(n,i,t,D){return function(a,c,s){var l=n(n(i(c[1],s[0]),i(-s[1],c[0])),n(i(a[1],c[0]),i(-c[1],a[0]))),_=n(i(a[1],s[0]),i(-s[1],a[0])),G=D(l,_);return G[G.length-1]}}function g(n,i,t,D){return function(a,c,s,l){var _=n(n(t(n(i(s[1],l[0]),i(-l[1],s[0])),c[2]),n(t(n(i(c[1],l[0]),i(-l[1],c[0])),-s[2]),t(n(i(c[1],s[0]),i(-s[1],c[0])),l[2]))),n(t(n(i(c[1],l[0]),i(-l[1],c[0])),a[2]),n(t(n(i(a[1],l[0]),i(-l[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),l[2])))),G=n(n(t(n(i(s[1],l[0]),i(-l[1],s[0])),a[2]),n(t(n(i(a[1],l[0]),i(-l[1],a[0])),-s[2]),t(n(i(a[1],s[0]),i(-s[1],a[0])),l[2]))),n(t(n(i(c[1],s[0]),i(-s[1],c[0])),a[2]),n(t(n(i(a[1],s[0]),i(-s[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),s[2])))),N=D(_,G);return N[N.length-1]}}function u(n,i,t,D){return function(a,c,s,l,_){var G=n(n(n(t(n(t(n(i(l[1],_[0]),i(-_[1],l[0])),s[2]),n(t(n(i(s[1],_[0]),i(-_[1],s[0])),-l[2]),t(n(i(s[1],l[0]),i(-l[1],s[0])),_[2]))),c[3]),n(t(n(t(n(i(l[1],_[0]),i(-_[1],l[0])),c[2]),n(t(n(i(c[1],_[0]),i(-_[1],c[0])),-l[2]),t(n(i(c[1],l[0]),i(-l[1],c[0])),_[2]))),-s[3]),t(n(t(n(i(s[1],_[0]),i(-_[1],s[0])),c[2]),n(t(n(i(c[1],_[0]),i(-_[1],c[0])),-s[2]),t(n(i(c[1],s[0]),i(-s[1],c[0])),_[2]))),l[3]))),n(t(n(t(n(i(s[1],l[0]),i(-l[1],s[0])),c[2]),n(t(n(i(c[1],l[0]),i(-l[1],c[0])),-s[2]),t(n(i(c[1],s[0]),i(-s[1],c[0])),l[2]))),-_[3]),n(t(n(t(n(i(l[1],_[0]),i(-_[1],l[0])),c[2]),n(t(n(i(c[1],_[0]),i(-_[1],c[0])),-l[2]),t(n(i(c[1],l[0]),i(-l[1],c[0])),_[2]))),a[3]),t(n(t(n(i(l[1],_[0]),i(-_[1],l[0])),a[2]),n(t(n(i(a[1],_[0]),i(-_[1],a[0])),-l[2]),t(n(i(a[1],l[0]),i(-l[1],a[0])),_[2]))),-c[3])))),n(n(t(n(t(n(i(c[1],_[0]),i(-_[1],c[0])),a[2]),n(t(n(i(a[1],_[0]),i(-_[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),_[2]))),l[3]),n(t(n(t(n(i(c[1],l[0]),i(-l[1],c[0])),a[2]),n(t(n(i(a[1],l[0]),i(-l[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),l[2]))),-_[3]),t(n(t(n(i(s[1],l[0]),i(-l[1],s[0])),c[2]),n(t(n(i(c[1],l[0]),i(-l[1],c[0])),-s[2]),t(n(i(c[1],s[0]),i(-s[1],c[0])),l[2]))),a[3]))),n(t(n(t(n(i(s[1],l[0]),i(-l[1],s[0])),a[2]),n(t(n(i(a[1],l[0]),i(-l[1],a[0])),-s[2]),t(n(i(a[1],s[0]),i(-s[1],a[0])),l[2]))),-c[3]),n(t(n(t(n(i(c[1],l[0]),i(-l[1],c[0])),a[2]),n(t(n(i(a[1],l[0]),i(-l[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),l[2]))),s[3]),t(n(t(n(i(c[1],s[0]),i(-s[1],c[0])),a[2]),n(t(n(i(a[1],s[0]),i(-s[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),s[2]))),-l[3]))))),N=n(n(n(t(n(t(n(i(l[1],_[0]),i(-_[1],l[0])),s[2]),n(t(n(i(s[1],_[0]),i(-_[1],s[0])),-l[2]),t(n(i(s[1],l[0]),i(-l[1],s[0])),_[2]))),a[3]),t(n(t(n(i(l[1],_[0]),i(-_[1],l[0])),a[2]),n(t(n(i(a[1],_[0]),i(-_[1],a[0])),-l[2]),t(n(i(a[1],l[0]),i(-l[1],a[0])),_[2]))),-s[3])),n(t(n(t(n(i(s[1],_[0]),i(-_[1],s[0])),a[2]),n(t(n(i(a[1],_[0]),i(-_[1],a[0])),-s[2]),t(n(i(a[1],s[0]),i(-s[1],a[0])),_[2]))),l[3]),t(n(t(n(i(s[1],l[0]),i(-l[1],s[0])),a[2]),n(t(n(i(a[1],l[0]),i(-l[1],a[0])),-s[2]),t(n(i(a[1],s[0]),i(-s[1],a[0])),l[2]))),-_[3]))),n(n(t(n(t(n(i(s[1],_[0]),i(-_[1],s[0])),c[2]),n(t(n(i(c[1],_[0]),i(-_[1],c[0])),-s[2]),t(n(i(c[1],s[0]),i(-s[1],c[0])),_[2]))),a[3]),t(n(t(n(i(s[1],_[0]),i(-_[1],s[0])),a[2]),n(t(n(i(a[1],_[0]),i(-_[1],a[0])),-s[2]),t(n(i(a[1],s[0]),i(-s[1],a[0])),_[2]))),-c[3])),n(t(n(t(n(i(c[1],_[0]),i(-_[1],c[0])),a[2]),n(t(n(i(a[1],_[0]),i(-_[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),_[2]))),s[3]),t(n(t(n(i(c[1],s[0]),i(-s[1],c[0])),a[2]),n(t(n(i(a[1],s[0]),i(-s[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),s[2]))),-_[3])))),O=D(G,N);return O[O.length-1]}}function A(n){var i=n===3?o:n===4?g:u;return i(p,h,y,w)}var E=A(3),M=A(4),S=[function(){return 0},function(){return 0},function(i,t){return t[0]-i[0]},function(i,t,D){var b=(i[1]-D[1])*(t[0]-D[0]),a=(i[0]-D[0])*(t[1]-D[1]),c=b-a,s;if(b>0){if(a<=0)return c;s=b+a}else if(b<0){if(a>=0)return c;s=-(b+a)}else return c;var l=I*s;return c>=l||c<=-l?c:E(i,t,D)},function(i,t,D,b){var a=i[0]-b[0],c=t[0]-b[0],s=D[0]-b[0],l=i[1]-b[1],_=t[1]-b[1],G=D[1]-b[1],N=i[2]-b[2],O=t[2]-b[2],B=D[2]-b[2],V=c*G,z=s*_,Q=s*l,R=a*G,k=a*_,F=c*l,f=N*(V-z)+O*(Q-R)+B*(k-F),j=(Math.abs(V)+Math.abs(z))*Math.abs(N)+(Math.abs(Q)+Math.abs(R))*Math.abs(O)+(Math.abs(k)+Math.abs(F))*Math.abs(B),nt=v*j;return f>nt||-f>nt?f:M(i,t,D,b)}];function C(n){var i=S[n.length];return i||(i=S[n.length]=A(n.length)),i.apply(void 0,n)}function P(n,i,t,D,b,a,c){return function(l,_,G,N,O){switch(arguments.length){case 0:case 1:return 0;case 2:return D(l,_);case 3:return b(l,_,G);case 4:return a(l,_,G,N);case 5:return c(l,_,G,N,O)}for(var B=new Array(arguments.length),V=0;V<arguments.length;++V)B[V]=arguments[V];return n(B)}}function e(){for(;S.length<=T;)S.push(A(S.length));r.exports=P.apply(void 0,[C].concat(S));for(var n=0;n<=T;++n)r.exports[n]=S[n]}e()}}),Er=yt({"node_modules/cdt2d/lib/monotone.js"(d,r){var h=xn(),p=Tr()[3],y=0,w=1,T=2;r.exports=M;function x(S,C,P,e,n){this.a=S,this.b=C,this.idx=P,this.lowerIds=e,this.upperIds=n}function I(S,C,P,e){this.a=S,this.b=C,this.type=P,this.idx=e}function v(S,C){var P=S.a[0]-C.a[0]||S.a[1]-C.a[1]||S.type-C.type;return P||S.type!==y&&(P=p(S.a,S.b,C.b),P)?P:S.idx-C.idx}function o(S,C){return p(S.a,S.b,C)}function g(S,C,P,e,n){for(var i=h.lt(C,e,o),t=h.gt(C,e,o),D=i;D<t;++D){for(var b=C[D],a=b.lowerIds,s=a.length;s>1&&p(P[a[s-2]],P[a[s-1]],e)>0;)S.push([a[s-1],a[s-2],n]),s-=1;a.length=s,a.push(n);for(var c=b.upperIds,s=c.length;s>1&&p(P[c[s-2]],P[c[s-1]],e)<0;)S.push([c[s-2],c[s-1],n]),s-=1;c.length=s,c.push(n)}}function u(S,C){var P;return S.a[0]<C.a[0]?P=p(S.a,S.b,C.a):P=p(C.b,C.a,S.a),P||(C.b[0]<S.b[0]?P=p(S.a,S.b,C.b):P=p(C.b,C.a,S.b),P||S.idx-C.idx)}function A(S,C,P){var e=h.le(S,P,u),n=S[e],i=n.upperIds,t=i[i.length-1];n.upperIds=[t],S.splice(e+1,0,new x(P.a,P.b,P.idx,[t],i))}function E(S,C,P){var e=P.a;P.a=P.b,P.b=e;var n=h.eq(S,P,u),i=S[n],t=S[n-1];t.upperIds=i.upperIds,S.splice(n,1)}function M(S,C){for(var P=S.length,e=C.length,n=[],i=0;i<P;++i)n.push(new I(S[i],null,y,i));for(var i=0;i<e;++i){var t=C[i],D=S[t[0]],b=S[t[1]];D[0]<b[0]?n.push(new I(D,b,T,i),new I(b,D,w,i)):D[0]>b[0]&&n.push(new I(b,D,T,i),new I(D,b,w,i))}n.sort(v);for(var a=n[0].a[0]-(1+Math.abs(n[0].a[0]))*Math.pow(2,-52),c=[new x([a,1],[a,0],-1,[],[])],s=[],i=0,l=n.length;i<l;++i){var _=n[i],G=_.type;G===y?g(s,c,S,_.a,_.idx):G===T?A(c,S,_):E(c,S,_)}return s}}}),Sr=yt({"node_modules/cdt2d/lib/triangulation.js"(d,r){var h=xn();r.exports=T;function p(x,I){this.stars=x,this.edges=I}var y=p.prototype;function w(x,I,v){for(var o=1,g=x.length;o<g;o+=2)if(x[o-1]===I&&x[o]===v){x[o-1]=x[g-2],x[o]=x[g-1],x.length=g-2;return}}y.isConstraint=(function(){var x=[0,0];function I(v,o){return v[0]-o[0]||v[1]-o[1]}return function(v,o){return x[0]=Math.min(v,o),x[1]=Math.max(v,o),h.eq(this.edges,x,I)>=0}})(),y.removeTriangle=function(x,I,v){var o=this.stars;w(o[x],I,v),w(o[I],v,x),w(o[v],x,I)},y.addTriangle=function(x,I,v){var o=this.stars;o[x].push(I,v),o[I].push(v,x),o[v].push(x,I)},y.opposite=function(x,I){for(var v=this.stars[I],o=1,g=v.length;o<g;o+=2)if(v[o]===x)return v[o-1];return-1},y.flip=function(x,I){var v=this.opposite(x,I),o=this.opposite(I,x);this.removeTriangle(x,I,v),this.removeTriangle(I,x,o),this.addTriangle(x,o,v),this.addTriangle(I,v,o)},y.edges=function(){for(var x=this.stars,I=[],v=0,o=x.length;v<o;++v)for(var g=x[v],u=0,A=g.length;u<A;u+=2)I.push([g[u],g[u+1]]);return I},y.cells=function(){for(var x=this.stars,I=[],v=0,o=x.length;v<o;++v)for(var g=x[v],u=0,A=g.length;u<A;u+=2){var E=g[u],M=g[u+1];v<Math.min(E,M)&&I.push([v,E,M])}return I};function T(x,I){for(var v=new Array(x),o=0;o<x;++o)v[o]=[];return new p(v,I)}}}),Mr=yt({"node_modules/robust-in-sphere/in-sphere.js"(d,r){var h=$n(),p=Fe(),y=He(),w=je(),T=6;function x(e){var n=e===3?g:e===4?u:e===5?A:E;return n(p,y,h,w)}function I(){return 0}function v(){return 0}function o(){return 0}function g(e,n,i,t){function D(b,a,c){var s=i(b[0],b[0]),l=t(s,a[0]),_=t(s,c[0]),G=i(a[0],a[0]),N=t(G,b[0]),O=t(G,c[0]),B=i(c[0],c[0]),V=t(B,b[0]),z=t(B,a[0]),Q=e(n(z,O),n(N,l)),R=n(V,_),k=n(Q,R);return k[k.length-1]}return D}function u(e,n,i,t){function D(b,a,c,s){var l=e(i(b[0],b[0]),i(b[1],b[1])),_=t(l,a[0]),G=t(l,c[0]),N=t(l,s[0]),O=e(i(a[0],a[0]),i(a[1],a[1])),B=t(O,b[0]),V=t(O,c[0]),z=t(O,s[0]),Q=e(i(c[0],c[0]),i(c[1],c[1])),R=t(Q,b[0]),k=t(Q,a[0]),F=t(Q,s[0]),f=e(i(s[0],s[0]),i(s[1],s[1])),j=t(f,b[0]),nt=t(f,a[0]),H=t(f,c[0]),q=e(e(t(n(H,F),a[1]),e(t(n(nt,z),-c[1]),t(n(k,V),s[1]))),e(t(n(nt,z),b[1]),e(t(n(j,N),-a[1]),t(n(B,_),s[1])))),L=e(e(t(n(H,F),b[1]),e(t(n(j,N),-c[1]),t(n(R,G),s[1]))),e(t(n(k,V),b[1]),e(t(n(R,G),-a[1]),t(n(B,_),c[1])))),U=n(q,L);return U[U.length-1]}return D}function A(e,n,i,t){function D(b,a,c,s,l){var _=e(i(b[0],b[0]),e(i(b[1],b[1]),i(b[2],b[2]))),G=t(_,a[0]),N=t(_,c[0]),O=t(_,s[0]),B=t(_,l[0]),V=e(i(a[0],a[0]),e(i(a[1],a[1]),i(a[2],a[2]))),z=t(V,b[0]),Q=t(V,c[0]),R=t(V,s[0]),k=t(V,l[0]),F=e(i(c[0],c[0]),e(i(c[1],c[1]),i(c[2],c[2]))),f=t(F,b[0]),j=t(F,a[0]),nt=t(F,s[0]),H=t(F,l[0]),q=e(i(s[0],s[0]),e(i(s[1],s[1]),i(s[2],s[2]))),L=t(q,b[0]),U=t(q,a[0]),X=t(q,c[0]),wt=t(q,l[0]),J=e(i(l[0],l[0]),e(i(l[1],l[1]),i(l[2],l[2]))),W=t(J,b[0]),K=t(J,a[0]),Y=t(J,c[0]),Z=t(J,s[0]),Nt=e(e(e(t(e(t(n(Z,wt),c[1]),e(t(n(Y,H),-s[1]),t(n(X,nt),l[1]))),a[2]),e(t(e(t(n(Z,wt),a[1]),e(t(n(K,k),-s[1]),t(n(U,R),l[1]))),-c[2]),t(e(t(n(Y,H),a[1]),e(t(n(K,k),-c[1]),t(n(j,Q),l[1]))),s[2]))),e(t(e(t(n(X,nt),a[1]),e(t(n(U,R),-c[1]),t(n(j,Q),s[1]))),-l[2]),e(t(e(t(n(Z,wt),a[1]),e(t(n(K,k),-s[1]),t(n(U,R),l[1]))),b[2]),t(e(t(n(Z,wt),b[1]),e(t(n(W,B),-s[1]),t(n(L,O),l[1]))),-a[2])))),e(e(t(e(t(n(K,k),b[1]),e(t(n(W,B),-a[1]),t(n(z,G),l[1]))),s[2]),e(t(e(t(n(U,R),b[1]),e(t(n(L,O),-a[1]),t(n(z,G),s[1]))),-l[2]),t(e(t(n(X,nt),a[1]),e(t(n(U,R),-c[1]),t(n(j,Q),s[1]))),b[2]))),e(t(e(t(n(X,nt),b[1]),e(t(n(L,O),-c[1]),t(n(f,N),s[1]))),-a[2]),e(t(e(t(n(U,R),b[1]),e(t(n(L,O),-a[1]),t(n(z,G),s[1]))),c[2]),t(e(t(n(j,Q),b[1]),e(t(n(f,N),-a[1]),t(n(z,G),c[1]))),-s[2]))))),tt=e(e(e(t(e(t(n(Z,wt),c[1]),e(t(n(Y,H),-s[1]),t(n(X,nt),l[1]))),b[2]),t(e(t(n(Z,wt),b[1]),e(t(n(W,B),-s[1]),t(n(L,O),l[1]))),-c[2])),e(t(e(t(n(Y,H),b[1]),e(t(n(W,B),-c[1]),t(n(f,N),l[1]))),s[2]),t(e(t(n(X,nt),b[1]),e(t(n(L,O),-c[1]),t(n(f,N),s[1]))),-l[2]))),e(e(t(e(t(n(Y,H),a[1]),e(t(n(K,k),-c[1]),t(n(j,Q),l[1]))),b[2]),t(e(t(n(Y,H),b[1]),e(t(n(W,B),-c[1]),t(n(f,N),l[1]))),-a[2])),e(t(e(t(n(K,k),b[1]),e(t(n(W,B),-a[1]),t(n(z,G),l[1]))),c[2]),t(e(t(n(j,Q),b[1]),e(t(n(f,N),-a[1]),t(n(z,G),c[1]))),-l[2])))),m=n(Nt,tt);return m[m.length-1]}return D}function E(e,n,i,t){function D(b,a,c,s,l,_){var G=e(e(i(b[0],b[0]),i(b[1],b[1])),e(i(b[2],b[2]),i(b[3],b[3]))),N=t(G,a[0]),O=t(G,c[0]),B=t(G,s[0]),V=t(G,l[0]),z=t(G,_[0]),Q=e(e(i(a[0],a[0]),i(a[1],a[1])),e(i(a[2],a[2]),i(a[3],a[3]))),R=t(Q,b[0]),k=t(Q,c[0]),F=t(Q,s[0]),f=t(Q,l[0]),j=t(Q,_[0]),nt=e(e(i(c[0],c[0]),i(c[1],c[1])),e(i(c[2],c[2]),i(c[3],c[3]))),H=t(nt,b[0]),q=t(nt,a[0]),L=t(nt,s[0]),U=t(nt,l[0]),X=t(nt,_[0]),wt=e(e(i(s[0],s[0]),i(s[1],s[1])),e(i(s[2],s[2]),i(s[3],s[3]))),J=t(wt,b[0]),W=t(wt,a[0]),K=t(wt,c[0]),Y=t(wt,l[0]),Z=t(wt,_[0]),Nt=e(e(i(l[0],l[0]),i(l[1],l[1])),e(i(l[2],l[2]),i(l[3],l[3]))),tt=t(Nt,b[0]),m=t(Nt,a[0]),et=t(Nt,c[0]),rt=t(Nt,s[0]),ot=t(Nt,_[0]),Xt=e(e(i(_[0],_[0]),i(_[1],_[1])),e(i(_[2],_[2]),i(_[3],_[3]))),it=t(Xt,b[0]),at=t(Xt,a[0]),ht=t(Xt,c[0]),ct=t(Xt,s[0]),st=t(Xt,l[0]),Ye=e(e(e(t(e(e(t(e(t(n(st,ot),s[1]),e(t(n(ct,Z),-l[1]),t(n(rt,Y),_[1]))),c[2]),t(e(t(n(st,ot),c[1]),e(t(n(ht,X),-l[1]),t(n(et,U),_[1]))),-s[2])),e(t(e(t(n(ct,Z),c[1]),e(t(n(ht,X),-s[1]),t(n(K,L),_[1]))),l[2]),t(e(t(n(rt,Y),c[1]),e(t(n(et,U),-s[1]),t(n(K,L),l[1]))),-_[2]))),a[3]),e(t(e(e(t(e(t(n(st,ot),s[1]),e(t(n(ct,Z),-l[1]),t(n(rt,Y),_[1]))),a[2]),t(e(t(n(st,ot),a[1]),e(t(n(at,j),-l[1]),t(n(m,f),_[1]))),-s[2])),e(t(e(t(n(ct,Z),a[1]),e(t(n(at,j),-s[1]),t(n(W,F),_[1]))),l[2]),t(e(t(n(rt,Y),a[1]),e(t(n(m,f),-s[1]),t(n(W,F),l[1]))),-_[2]))),-c[3]),t(e(e(t(e(t(n(st,ot),c[1]),e(t(n(ht,X),-l[1]),t(n(et,U),_[1]))),a[2]),t(e(t(n(st,ot),a[1]),e(t(n(at,j),-l[1]),t(n(m,f),_[1]))),-c[2])),e(t(e(t(n(ht,X),a[1]),e(t(n(at,j),-c[1]),t(n(q,k),_[1]))),l[2]),t(e(t(n(et,U),a[1]),e(t(n(m,f),-c[1]),t(n(q,k),l[1]))),-_[2]))),s[3]))),e(e(t(e(e(t(e(t(n(ct,Z),c[1]),e(t(n(ht,X),-s[1]),t(n(K,L),_[1]))),a[2]),t(e(t(n(ct,Z),a[1]),e(t(n(at,j),-s[1]),t(n(W,F),_[1]))),-c[2])),e(t(e(t(n(ht,X),a[1]),e(t(n(at,j),-c[1]),t(n(q,k),_[1]))),s[2]),t(e(t(n(K,L),a[1]),e(t(n(W,F),-c[1]),t(n(q,k),s[1]))),-_[2]))),-l[3]),t(e(e(t(e(t(n(rt,Y),c[1]),e(t(n(et,U),-s[1]),t(n(K,L),l[1]))),a[2]),t(e(t(n(rt,Y),a[1]),e(t(n(m,f),-s[1]),t(n(W,F),l[1]))),-c[2])),e(t(e(t(n(et,U),a[1]),e(t(n(m,f),-c[1]),t(n(q,k),l[1]))),s[2]),t(e(t(n(K,L),a[1]),e(t(n(W,F),-c[1]),t(n(q,k),s[1]))),-l[2]))),_[3])),e(t(e(e(t(e(t(n(st,ot),s[1]),e(t(n(ct,Z),-l[1]),t(n(rt,Y),_[1]))),a[2]),t(e(t(n(st,ot),a[1]),e(t(n(at,j),-l[1]),t(n(m,f),_[1]))),-s[2])),e(t(e(t(n(ct,Z),a[1]),e(t(n(at,j),-s[1]),t(n(W,F),_[1]))),l[2]),t(e(t(n(rt,Y),a[1]),e(t(n(m,f),-s[1]),t(n(W,F),l[1]))),-_[2]))),b[3]),t(e(e(t(e(t(n(st,ot),s[1]),e(t(n(ct,Z),-l[1]),t(n(rt,Y),_[1]))),b[2]),t(e(t(n(st,ot),b[1]),e(t(n(it,z),-l[1]),t(n(tt,V),_[1]))),-s[2])),e(t(e(t(n(ct,Z),b[1]),e(t(n(it,z),-s[1]),t(n(J,B),_[1]))),l[2]),t(e(t(n(rt,Y),b[1]),e(t(n(tt,V),-s[1]),t(n(J,B),l[1]))),-_[2]))),-a[3])))),e(e(e(t(e(e(t(e(t(n(st,ot),a[1]),e(t(n(at,j),-l[1]),t(n(m,f),_[1]))),b[2]),t(e(t(n(st,ot),b[1]),e(t(n(it,z),-l[1]),t(n(tt,V),_[1]))),-a[2])),e(t(e(t(n(at,j),b[1]),e(t(n(it,z),-a[1]),t(n(R,N),_[1]))),l[2]),t(e(t(n(m,f),b[1]),e(t(n(tt,V),-a[1]),t(n(R,N),l[1]))),-_[2]))),s[3]),t(e(e(t(e(t(n(ct,Z),a[1]),e(t(n(at,j),-s[1]),t(n(W,F),_[1]))),b[2]),t(e(t(n(ct,Z),b[1]),e(t(n(it,z),-s[1]),t(n(J,B),_[1]))),-a[2])),e(t(e(t(n(at,j),b[1]),e(t(n(it,z),-a[1]),t(n(R,N),_[1]))),s[2]),t(e(t(n(W,F),b[1]),e(t(n(J,B),-a[1]),t(n(R,N),s[1]))),-_[2]))),-l[3])),e(t(e(e(t(e(t(n(rt,Y),a[1]),e(t(n(m,f),-s[1]),t(n(W,F),l[1]))),b[2]),t(e(t(n(rt,Y),b[1]),e(t(n(tt,V),-s[1]),t(n(J,B),l[1]))),-a[2])),e(t(e(t(n(m,f),b[1]),e(t(n(tt,V),-a[1]),t(n(R,N),l[1]))),s[2]),t(e(t(n(W,F),b[1]),e(t(n(J,B),-a[1]),t(n(R,N),s[1]))),-l[2]))),_[3]),t(e(e(t(e(t(n(ct,Z),c[1]),e(t(n(ht,X),-s[1]),t(n(K,L),_[1]))),a[2]),t(e(t(n(ct,Z),a[1]),e(t(n(at,j),-s[1]),t(n(W,F),_[1]))),-c[2])),e(t(e(t(n(ht,X),a[1]),e(t(n(at,j),-c[1]),t(n(q,k),_[1]))),s[2]),t(e(t(n(K,L),a[1]),e(t(n(W,F),-c[1]),t(n(q,k),s[1]))),-_[2]))),b[3]))),e(e(t(e(e(t(e(t(n(ct,Z),c[1]),e(t(n(ht,X),-s[1]),t(n(K,L),_[1]))),b[2]),t(e(t(n(ct,Z),b[1]),e(t(n(it,z),-s[1]),t(n(J,B),_[1]))),-c[2])),e(t(e(t(n(ht,X),b[1]),e(t(n(it,z),-c[1]),t(n(H,O),_[1]))),s[2]),t(e(t(n(K,L),b[1]),e(t(n(J,B),-c[1]),t(n(H,O),s[1]))),-_[2]))),-a[3]),t(e(e(t(e(t(n(ct,Z),a[1]),e(t(n(at,j),-s[1]),t(n(W,F),_[1]))),b[2]),t(e(t(n(ct,Z),b[1]),e(t(n(it,z),-s[1]),t(n(J,B),_[1]))),-a[2])),e(t(e(t(n(at,j),b[1]),e(t(n(it,z),-a[1]),t(n(R,N),_[1]))),s[2]),t(e(t(n(W,F),b[1]),e(t(n(J,B),-a[1]),t(n(R,N),s[1]))),-_[2]))),c[3])),e(t(e(e(t(e(t(n(ht,X),a[1]),e(t(n(at,j),-c[1]),t(n(q,k),_[1]))),b[2]),t(e(t(n(ht,X),b[1]),e(t(n(it,z),-c[1]),t(n(H,O),_[1]))),-a[2])),e(t(e(t(n(at,j),b[1]),e(t(n(it,z),-a[1]),t(n(R,N),_[1]))),c[2]),t(e(t(n(q,k),b[1]),e(t(n(H,O),-a[1]),t(n(R,N),c[1]))),-_[2]))),-s[3]),t(e(e(t(e(t(n(K,L),a[1]),e(t(n(W,F),-c[1]),t(n(q,k),s[1]))),b[2]),t(e(t(n(K,L),b[1]),e(t(n(J,B),-c[1]),t(n(H,O),s[1]))),-a[2])),e(t(e(t(n(W,F),b[1]),e(t(n(J,B),-a[1]),t(n(R,N),s[1]))),c[2]),t(e(t(n(q,k),b[1]),e(t(n(H,O),-a[1]),t(n(R,N),c[1]))),-s[2]))),_[3]))))),Ze=e(e(e(t(e(e(t(e(t(n(st,ot),s[1]),e(t(n(ct,Z),-l[1]),t(n(rt,Y),_[1]))),c[2]),t(e(t(n(st,ot),c[1]),e(t(n(ht,X),-l[1]),t(n(et,U),_[1]))),-s[2])),e(t(e(t(n(ct,Z),c[1]),e(t(n(ht,X),-s[1]),t(n(K,L),_[1]))),l[2]),t(e(t(n(rt,Y),c[1]),e(t(n(et,U),-s[1]),t(n(K,L),l[1]))),-_[2]))),b[3]),e(t(e(e(t(e(t(n(st,ot),s[1]),e(t(n(ct,Z),-l[1]),t(n(rt,Y),_[1]))),b[2]),t(e(t(n(st,ot),b[1]),e(t(n(it,z),-l[1]),t(n(tt,V),_[1]))),-s[2])),e(t(e(t(n(ct,Z),b[1]),e(t(n(it,z),-s[1]),t(n(J,B),_[1]))),l[2]),t(e(t(n(rt,Y),b[1]),e(t(n(tt,V),-s[1]),t(n(J,B),l[1]))),-_[2]))),-c[3]),t(e(e(t(e(t(n(st,ot),c[1]),e(t(n(ht,X),-l[1]),t(n(et,U),_[1]))),b[2]),t(e(t(n(st,ot),b[1]),e(t(n(it,z),-l[1]),t(n(tt,V),_[1]))),-c[2])),e(t(e(t(n(ht,X),b[1]),e(t(n(it,z),-c[1]),t(n(H,O),_[1]))),l[2]),t(e(t(n(et,U),b[1]),e(t(n(tt,V),-c[1]),t(n(H,O),l[1]))),-_[2]))),s[3]))),e(e(t(e(e(t(e(t(n(ct,Z),c[1]),e(t(n(ht,X),-s[1]),t(n(K,L),_[1]))),b[2]),t(e(t(n(ct,Z),b[1]),e(t(n(it,z),-s[1]),t(n(J,B),_[1]))),-c[2])),e(t(e(t(n(ht,X),b[1]),e(t(n(it,z),-c[1]),t(n(H,O),_[1]))),s[2]),t(e(t(n(K,L),b[1]),e(t(n(J,B),-c[1]),t(n(H,O),s[1]))),-_[2]))),-l[3]),t(e(e(t(e(t(n(rt,Y),c[1]),e(t(n(et,U),-s[1]),t(n(K,L),l[1]))),b[2]),t(e(t(n(rt,Y),b[1]),e(t(n(tt,V),-s[1]),t(n(J,B),l[1]))),-c[2])),e(t(e(t(n(et,U),b[1]),e(t(n(tt,V),-c[1]),t(n(H,O),l[1]))),s[2]),t(e(t(n(K,L),b[1]),e(t(n(J,B),-c[1]),t(n(H,O),s[1]))),-l[2]))),_[3])),e(t(e(e(t(e(t(n(st,ot),c[1]),e(t(n(ht,X),-l[1]),t(n(et,U),_[1]))),a[2]),t(e(t(n(st,ot),a[1]),e(t(n(at,j),-l[1]),t(n(m,f),_[1]))),-c[2])),e(t(e(t(n(ht,X),a[1]),e(t(n(at,j),-c[1]),t(n(q,k),_[1]))),l[2]),t(e(t(n(et,U),a[1]),e(t(n(m,f),-c[1]),t(n(q,k),l[1]))),-_[2]))),b[3]),t(e(e(t(e(t(n(st,ot),c[1]),e(t(n(ht,X),-l[1]),t(n(et,U),_[1]))),b[2]),t(e(t(n(st,ot),b[1]),e(t(n(it,z),-l[1]),t(n(tt,V),_[1]))),-c[2])),e(t(e(t(n(ht,X),b[1]),e(t(n(it,z),-c[1]),t(n(H,O),_[1]))),l[2]),t(e(t(n(et,U),b[1]),e(t(n(tt,V),-c[1]),t(n(H,O),l[1]))),-_[2]))),-a[3])))),e(e(e(t(e(e(t(e(t(n(st,ot),a[1]),e(t(n(at,j),-l[1]),t(n(m,f),_[1]))),b[2]),t(e(t(n(st,ot),b[1]),e(t(n(it,z),-l[1]),t(n(tt,V),_[1]))),-a[2])),e(t(e(t(n(at,j),b[1]),e(t(n(it,z),-a[1]),t(n(R,N),_[1]))),l[2]),t(e(t(n(m,f),b[1]),e(t(n(tt,V),-a[1]),t(n(R,N),l[1]))),-_[2]))),c[3]),t(e(e(t(e(t(n(ht,X),a[1]),e(t(n(at,j),-c[1]),t(n(q,k),_[1]))),b[2]),t(e(t(n(ht,X),b[1]),e(t(n(it,z),-c[1]),t(n(H,O),_[1]))),-a[2])),e(t(e(t(n(at,j),b[1]),e(t(n(it,z),-a[1]),t(n(R,N),_[1]))),c[2]),t(e(t(n(q,k),b[1]),e(t(n(H,O),-a[1]),t(n(R,N),c[1]))),-_[2]))),-l[3])),e(t(e(e(t(e(t(n(et,U),a[1]),e(t(n(m,f),-c[1]),t(n(q,k),l[1]))),b[2]),t(e(t(n(et,U),b[1]),e(t(n(tt,V),-c[1]),t(n(H,O),l[1]))),-a[2])),e(t(e(t(n(m,f),b[1]),e(t(n(tt,V),-a[1]),t(n(R,N),l[1]))),c[2]),t(e(t(n(q,k),b[1]),e(t(n(H,O),-a[1]),t(n(R,N),c[1]))),-l[2]))),_[3]),t(e(e(t(e(t(n(rt,Y),c[1]),e(t(n(et,U),-s[1]),t(n(K,L),l[1]))),a[2]),t(e(t(n(rt,Y),a[1]),e(t(n(m,f),-s[1]),t(n(W,F),l[1]))),-c[2])),e(t(e(t(n(et,U),a[1]),e(t(n(m,f),-c[1]),t(n(q,k),l[1]))),s[2]),t(e(t(n(K,L),a[1]),e(t(n(W,F),-c[1]),t(n(q,k),s[1]))),-l[2]))),b[3]))),e(e(t(e(e(t(e(t(n(rt,Y),c[1]),e(t(n(et,U),-s[1]),t(n(K,L),l[1]))),b[2]),t(e(t(n(rt,Y),b[1]),e(t(n(tt,V),-s[1]),t(n(J,B),l[1]))),-c[2])),e(t(e(t(n(et,U),b[1]),e(t(n(tt,V),-c[1]),t(n(H,O),l[1]))),s[2]),t(e(t(n(K,L),b[1]),e(t(n(J,B),-c[1]),t(n(H,O),s[1]))),-l[2]))),-a[3]),t(e(e(t(e(t(n(rt,Y),a[1]),e(t(n(m,f),-s[1]),t(n(W,F),l[1]))),b[2]),t(e(t(n(rt,Y),b[1]),e(t(n(tt,V),-s[1]),t(n(J,B),l[1]))),-a[2])),e(t(e(t(n(m,f),b[1]),e(t(n(tt,V),-a[1]),t(n(R,N),l[1]))),s[2]),t(e(t(n(W,F),b[1]),e(t(n(J,B),-a[1]),t(n(R,N),s[1]))),-l[2]))),c[3])),e(t(e(e(t(e(t(n(et,U),a[1]),e(t(n(m,f),-c[1]),t(n(q,k),l[1]))),b[2]),t(e(t(n(et,U),b[1]),e(t(n(tt,V),-c[1]),t(n(H,O),l[1]))),-a[2])),e(t(e(t(n(m,f),b[1]),e(t(n(tt,V),-a[1]),t(n(R,N),l[1]))),c[2]),t(e(t(n(q,k),b[1]),e(t(n(H,O),-a[1]),t(n(R,N),c[1]))),-l[2]))),-s[3]),t(e(e(t(e(t(n(K,L),a[1]),e(t(n(W,F),-c[1]),t(n(q,k),s[1]))),b[2]),t(e(t(n(K,L),b[1]),e(t(n(J,B),-c[1]),t(n(H,O),s[1]))),-a[2])),e(t(e(t(n(W,F),b[1]),e(t(n(J,B),-a[1]),t(n(R,N),s[1]))),c[2]),t(e(t(n(q,k),b[1]),e(t(n(H,O),-a[1]),t(n(R,N),c[1]))),-s[2]))),l[3]))))),fn=n(Ye,Ze);return fn[fn.length-1]}return D}var M=[I,v,o];function S(e){var n=M[e.length];return n||(n=M[e.length]=x(e.length)),n.apply(void 0,e)}function C(e,n,i,t,D,b,a,c){function s(l,_,G,N,O,B){switch(arguments.length){case 0:case 1:return 0;case 2:return t(l,_);case 3:return D(l,_,G);case 4:return b(l,_,G,N);case 5:return a(l,_,G,N,O);case 6:return c(l,_,G,N,O,B)}for(var V=new Array(arguments.length),z=0;z<arguments.length;++z)V[z]=arguments[z];return e(V)}return s}function P(){for(;M.length<=T;)M.push(x(M.length));r.exports=C.apply(void 0,[S].concat(M));for(var e=0;e<=T;++e)r.exports[e]=M[e]}P()}}),Pr=yt({"node_modules/cdt2d/lib/delaunay.js"(d,r){var h=Mr()[4];xn(),r.exports=y;function p(w,T,x,I,v,o){var g=T.opposite(I,v);if(!(g<0)){if(v<I){var u=I;I=v,v=u,u=o,o=g,g=u}T.isConstraint(I,v)||h(w[I],w[v],w[o],w[g])<0&&x.push(I,v)}}function y(w,T){for(var x=[],I=w.length,v=T.stars,o=0;o<I;++o)for(var g=v[o],u=1;u<g.length;u+=2){var A=g[u];if(!(A<o)&&!T.isConstraint(o,A)){for(var E=g[u-1],M=-1,S=1;S<g.length;S+=2)if(g[S-1]===A){M=g[S];break}M<0||h(w[o],w[A],w[E],w[M])<0&&x.push(o,A)}}for(;x.length>0;){for(var A=x.pop(),o=x.pop(),E=-1,M=-1,g=v[o],C=1;C<g.length;C+=2){var P=g[C-1],e=g[C];P===A?M=e:e===A&&(E=P)}E<0||M<0||h(w[o],w[A],w[E],w[M])>=0||(T.flip(o,A),p(w,T,x,E,o,M),p(w,T,x,o,M,E),p(w,T,x,M,A,E),p(w,T,x,A,E,M))}}}}),Cr=yt({"node_modules/cdt2d/lib/filter.js"(d,r){var h=xn();r.exports=I;function p(v,o,g,u,A,E,M){this.cells=v,this.neighbor=o,this.flags=u,this.constraint=g,this.active=A,this.next=E,this.boundary=M}var y=p.prototype;function w(v,o){return v[0]-o[0]||v[1]-o[1]||v[2]-o[2]}y.locate=(function(){var v=[0,0,0];return function(o,g,u){var A=o,E=g,M=u;return g<u?g<o&&(A=g,E=u,M=o):u<o&&(A=u,E=o,M=g),A<0?-1:(v[0]=A,v[1]=E,v[2]=M,h.eq(this.cells,v,w))}})();function T(v,o){for(var g=v.cells(),u=g.length,A=0;A<u;++A){var E=g[A],M=E[0],S=E[1],C=E[2];S<C?S<M&&(E[0]=S,E[1]=C,E[2]=M):C<M&&(E[0]=C,E[1]=M,E[2]=S)}g.sort(w);for(var P=new Array(u),A=0;A<P.length;++A)P[A]=0;var e=[],n=[],i=new Array(3*u),t=new Array(3*u),D=null;o&&(D=[]);for(var b=new p(g,i,t,P,e,n,D),A=0;A<u;++A)for(var E=g[A],a=0;a<3;++a){var M=E[a],S=E[(a+1)%3],c=i[3*A+a]=b.locate(S,M,v.opposite(S,M)),s=t[3*A+a]=v.isConstraint(M,S);c<0&&(s?n.push(A):(e.push(A),P[A]=1),o&&D.push([S,M,-1]))}return b}function x(v,o,g){for(var u=0,A=0;A<v.length;++A)o[A]===g&&(v[u++]=v[A]);return v.length=u,v}function I(v,o,g){var u=T(v,g);if(o===0)return g?u.cells.concat(u.boundary):u.cells;for(var A=1,E=u.active,M=u.next,S=u.flags,C=u.cells,P=u.constraint,e=u.neighbor;E.length>0||M.length>0;){for(;E.length>0;){var n=E.pop();if(S[n]!==-A){S[n]=A,C[n];for(var i=0;i<3;++i){var t=e[3*n+i];t>=0&&S[t]===0&&(P[3*n+i]?M.push(t):(E.push(t),S[t]=A))}}}var D=M;M=E,E=D,M.length=0,A=-A}var b=x(C,S,o);return g?b.concat(u.boundary):b}}}),Dr=yt({"node_modules/cdt2d/cdt2d.js"(d,r){var h=Er(),p=Sr(),y=Pr(),w=Cr();r.exports=o;function T(g){return[Math.min(g[0],g[1]),Math.max(g[0],g[1])]}function x(g,u){return g[0]-u[0]||g[1]-u[1]}function I(g){return g.map(T).sort(x)}function v(g,u,A){return u in g?g[u]:A}function o(g,u,A){Array.isArray(u)?(A=A||{},u=u||[]):(A=u||{},u=[]);var E=!!v(A,"delaunay",!0),M=!!v(A,"interior",!0),S=!!v(A,"exterior",!0),C=!!v(A,"infinity",!1);if(!M&&!S||g.length===0)return[];var P=h(g,u);if(E||M!==S||C){for(var e=p(g.length,I(u)),n=0;n<P.length;++n){var i=P[n];e.addTriangle(i[0],i[1],i[2])}return E&&y(g,e),S?M?C?w(e,0,C):e.cells():w(e,1,C):w(e,-1)}else return P}}});const Br=Dr();class $t{constructor(r){this.createFn=r,this._pool=[],this._index=0}getInstance(){return this._index>=this._pool.length&&this._pool.push(this.createFn()),this._pool[this._index++]}clear(){this._index=0}reset(){this._pool.length=0,this._index=0}}const Xn=1e-16,Nr=1e-16,zt=new $,Wn=new $,Kn=new $t(()=>({param:0,index:0})),Vr=new $t(()=>new $);function Or(d,r,h,p){Kn.clear(),r.length=0,h.length=0;for(let v=0,o=d.length;v<o;v++){const g=d[v];I(g.start),I(g.end)}for(let v=0,o=d.length;v<o;v++){const g=d[v];for(let u=v+1;u<o;u++){const A=d[u];g.distanceSqToLine3(A,zt,Wn)<Xn*p&&I(Wn)}}const y=[];for(let v=0,o=d.length;v<o;v++){y.length=0;const g=d[v];for(let u=0,A=r.length;u<A;u++){const E=r[u],M=g.closestPointToPointParameter(E,!0);if(g.at(M,zt),E.distanceToSquared(zt)<Xn*p){const S=Kn.getInstance();S.param=M,S.index=u,y.push(S)}}y.sort(x);for(let u=0,A=y.length-1;u<A;u++){const E=y[u].index,M=y[u+1].index;E!==M&&h.push([E,M])}}const w=new Set;let T=0;for(let v=0,o=h.length;v<o;v++){const g=h[v],u=Math.min(g[0],g[1]),A=Math.max(g[0],g[1]),E=u+","+A;w.has(E)||(w.add(E),h[T++]=g)}h.length=T;function x(v,o){return v.param-o.param}function I(v){for(let o=0;o<r.length;o++){const g=r[o];if(v===g||v.distanceToSquared(g)<Nr*p)return o}return r.push(Vr.getInstance().copy(v)),r.length-1}}class Yn{constructor(){this.trianglePool=new $t(()=>new Gn),this.linePool=new $t(()=>new ut),this.triangles=[],this.triangleIndices=[],this.constrainedEdges=[],this.triangleConnectivity=[],this.normal=new $,this.projOrigin=new $,this.projU=new $,this.projV=new $,this.baseTri=new Gn,this.baseIndices=new Array(3)}initialize(r,h=null,p=null,y=null){this.reset();const{normal:w,baseTri:T,projU:x,projV:I,projOrigin:v,constrainedEdges:o,linePool:g,baseIndices:u}=this;r.getNormal(w),T.copy(r),T.update(),u[0]=h,u[1]=p,u[2]=y,o.length=0;const A=g.getInstance();A.start.copy(T.a),A.end.copy(T.b);const E=g.getInstance();E.start.copy(T.b),E.end.copy(T.c);const M=g.getInstance();M.start.copy(T.c),M.end.copy(T.a),o.push(A,E,M),v.copy(T.a),x.subVectors(T.b,T.a).normalize(),I.crossVectors(w,x).normalize()}addConstraintEdge(r){const{constrainedEdges:h,linePool:p}=this,y=p.getInstance().copy(r);h.push(y)}_to2D(r,h){const{projOrigin:p,projU:y,projV:w}=this;return zt.subVectors(r,p),h.set(zt.dot(y),zt.dot(w),0)}_from2D(r,h,p){const{projOrigin:y,projU:w,projV:T}=this;return p.copy(y).addScaledVector(w,r).addScaledVector(T,h),p}triangulate(){const{triangles:r,trianglePool:h,triangleConnectivity:p,triangleIndices:y,linePool:w,baseTri:T,constrainedEdges:x,baseIndices:I}=this;r.length=0,h.clear();const v=[];for(let C=0,P=x.length;C<P;C++){const e=x[C],n=w.getInstance();this._to2D(e.start,n.start),this._to2D(e.end,n.end),v.push(n)}let o=0;for(let C=0;C<3;C++){const P=this._to2D(T.points[C],zt);o=Math.max(o,Math.abs(P.x),Math.abs(P.y))}const g=[],u=[];Or(v,g,u,o);const A=[];for(let C=0,P=g.length;C<P;C++){const e=g[C];A.push([e.x,e.y])}const E=Br(A,u,{exterior:!1}),M=new Map;for(let C=0,P=u.length;C<P;C++){const e=u[C];M.set(`${e[0]}_${e[1]}`,-1),M.set(`${e[1]}_${e[0]}`,-1)}const S=`${I[0]}_${I[1]}_${I[2]}_`;for(let C=0,P=E.length;C<P;C++){const e=E[C],[n,i,t]=e,D=h.getInstance();this._from2D(A[n][0],A[n][1],D.a),this._from2D(A[i][0],A[i][1],D.b),this._from2D(A[t][0],A[t][1],D.c),r.push(D);const b=[];p.push(b);const a=[];y.push(a);for(let c=0;c<3;c++){const s=e[c];a.push(s<3?I[s]:S+s);const l=e[(c+1)%3],_=`${s}_${l}`;if(M.has(_)){const G=M.get(_);G!==-1&&(b.push(G),p[G].push(C))}else{const G=`${l}_${s}`;M.set(G,C)}}}}reset(){this.trianglePool.clear(),this.linePool.clear(),this.triangles.length=0,this.triangleIndices.length=0,this.triangleConnectivity.length=0,this.constrainedEdges.length=0}}const Gr=1e-14,An=new $,Zn=new $,Jn=new $;function Dt(d,r=Gr){An.subVectors(d.b,d.a),Zn.subVectors(d.c,d.a),Jn.subVectors(d.b,d.c);const h=An.angleTo(Zn),p=An.angleTo(Jn),y=Math.PI-h-p;return Math.abs(h)<r||Math.abs(p)<r||Math.abs(y)<r||d.a.distanceToSquared(d.b)<r||d.a.distanceToSquared(d.c)<r||d.b.distanceToSquared(d.c)<r}const Tn=1e-10,Wt=1e-10,Et=new ut,gt=new ut,St=new $,Qn=new $,mn=new $,nn=new wn,En=new Gn;class te{constructor(){this.trianglePool=new $t(()=>new _t),this.triangles=[],this.normal=new $}initialize(r){this.reset();const{triangles:h,trianglePool:p,normal:y}=this;if(Array.isArray(r))for(let w=0,T=r.length;w<T;w++){const x=r[w];if(w===0)x.getNormal(y);else if(Math.abs(1-x.getNormal(St).dot(y))>Tn)throw new Error("Triangle Splitter: Cannot initialize with triangles that have different normals.");const I=p.getInstance();I.copy(x),h.push(I)}else{r.getNormal(y);const w=p.getInstance();w.copy(r),h.push(w)}}splitByTriangle(r,h){const{triangles:p}=this;if(h){for(let w=0,T=p.length;w<T;w++){const x=p[w];x.coplanarCount=0}const y=[r.a,r.b,r.c];for(let w=0;w<3;w++){const T=(w+1)%3,x=y[w],I=y[T];r.getNormal(Qn).normalize(),St.subVectors(I,x).normalize(),mn.crossVectors(Qn,St),nn.setFromNormalAndCoplanarPoint(mn,x),this.splitByPlane(nn,r)}}else r.getPlane(nn),this.splitByPlane(nn,r)}splitByPlane(r,h){const{triangles:p,trianglePool:y}=this;En.copy(h),En.needsUpdate=!0;for(let w=0,T=p.length;w<T;w++){const x=p[w];if(!En.intersectsTriangle(x,Et,!0))continue;const{a:I,b:v,c:o}=x;let g=0,u=-1,A=!1,E=[],M=[];const S=[I,v,o];for(let C=0;C<3;C++){const P=(C+1)%3;Et.start.copy(S[C]),Et.end.copy(S[P]);const e=r.distanceToPoint(Et.start),n=r.distanceToPoint(Et.end);if(Math.abs(e)<Wt&&Math.abs(n)<Wt){A=!0;break}if(e>0?E.push(C):M.push(C),Math.abs(e)<Wt)continue;let i=!!r.intersectLine(Et,St);!i&&Math.abs(n)<Wt&&(St.copy(Et.end),i=!0),i&&!(St.distanceTo(Et.start)<Tn)&&(St.distanceTo(Et.end)<Tn&&(u=C),g===0?gt.start.copy(St):gt.end.copy(St),g++)}if(!A&&g===2&&gt.distance()>Wt)if(u!==-1){u=(u+1)%3;let C=0;C===u&&(C=(C+1)%3);let P=C+1;P===u&&(P=(P+1)%3);const e=y.getInstance();e.a.copy(S[P]),e.b.copy(gt.end),e.c.copy(gt.start),Dt(e)||p.push(e),x.a.copy(S[C]),x.b.copy(gt.start),x.c.copy(gt.end),Dt(x)&&(p.splice(w,1),w--,T--)}else{const C=E.length>=2?M[0]:E[0];if(C===0){let t=gt.start;gt.start=gt.end,gt.end=t}const P=(C+1)%3,e=(C+2)%3,n=y.getInstance(),i=y.getInstance();S[P].distanceToSquared(gt.start)<S[e].distanceToSquared(gt.end)?(n.a.copy(S[P]),n.b.copy(gt.start),n.c.copy(gt.end),i.a.copy(S[P]),i.b.copy(S[e]),i.c.copy(gt.start)):(n.a.copy(S[e]),n.b.copy(gt.start),n.c.copy(gt.end),i.a.copy(S[P]),i.b.copy(S[e]),i.c.copy(gt.end)),x.a.copy(S[C]),x.b.copy(gt.end),x.c.copy(gt.start),Dt(n)||p.push(n),Dt(i)||p.push(i),Dt(x)&&(p.splice(w,1),w--,T--)}else g===3&&console.warn("TriangleClipper: Coplanar clip not handled")}}reset(){this.triangles.length=0,this.trianglePool.clear()}}class ne{constructor(){this.coplanarSet=new Map,this.intersectionSet=new Map,this.edgeSet=new Map,this.ids=[]}add(r,h,p=!1){const{intersectionSet:y,coplanarSet:w,ids:T}=this;y.has(r)||(y.set(r,[]),T.push(r)),y.get(r).push(h),p&&(w.has(r)||w.set(r,new Set),w.get(r).add(h))}addIntersectionEdge(r,h){const{edgeSet:p}=this;p.has(r)||p.set(r,new Set),p.get(r).add(h)}getIntersectionEdges(r){return this.edgeSet.get(r)||null}}const Ue=0,zr=1,Rr=2,$r=3,kr=4,qe=5,Xe=6,Sn=1e-10,fr=1e-15,Lr=1e-10,Fr=1e-10,ee=new ut,ft=new ut,re=new $,oe=new $,ie=new $,Mn=new wn,Ut=new $,yn=new $;function jr(d,r){d.getNormal(Ut),r.getNormal(yn);const h=Ut.dot(yn);if(Math.abs(1-Math.abs(h))>=Lr)return!1;const p=Ut.dot(d.a),y=Ut.dot(r.a);return Math.abs(p-y)<Fr}function ae(d,r,h,p){let y=0,w=1;d.delta(re);const T=[r.a,r.b,r.c];for(let x=0;x<3;x++){const I=T[x],v=T[(x+1)%3];oe.subVectors(v,I),ie.crossVectors(h,oe),Mn.setFromNormalAndCoplanarPoint(ie,I);const o=Mn.distanceToPoint(d.start),g=Mn.normal.dot(re);if(Math.abs(g)<fr){if(o<-Sn)return null;continue}const u=-o/g;if(g>0?y=Math.max(y,u):w=Math.min(w,u),y>w+Sn)return null}return w-y<Sn?null:(d.at(y,p.start),d.at(w,p.end),p)}function he(d,r,h){let p=0;d.getNormal(Ut),r.getNormal(yn);const y=[r.a,r.b,r.c];for(let T=0;T<3;T++){ft.start.copy(y[T]),ft.end.copy(y[(T+1)%3]);const x=ae(ft,d,Ut,ee);x!==null&&(p>=h.length&&h.push(new ut),h[p].copy(x),p++)}const w=[d.a,d.b,d.c];for(let T=0;T<3;T++){ft.start.copy(w[T]),ft.end.copy(w[(T+1)%3]);const x=ae(ft,r,yn,ee);x!==null&&(p>=h.length&&h.push(new ut),h[p].copy(x),p++)}return p}const Lt=new Rn,ce=new kt,en=new ut,Pn=[],rn=new $t(()=>new ut),jt=-1,Ht=1,vn=-2,pn=2,Zt=0,Vt=1,kn=2;let un=null;function se(d){un=d}function We(d,r,h=null){d.getMidpoint(Lt.origin),d.getNormal(Lt.direction),h&&(Lt.origin.applyMatrix4(h),Lt.direction.transformDirection(h));const p=r.raycastFirst(Lt,Qe);return!!(p&&Lt.direction.dot(p.face.normal)>0)?jt:Ht}function Hr(d,r){const h=new ne,p=new ne;return rn.clear(),ce.copy(d.matrixWorld).invert().multiply(r.matrixWorld),d.geometry.boundsTree.bvhcast(r.geometry.boundsTree,ce,{intersectsTriangles(y,w,T,x){if(!Dt(y)&&!Dt(w)){const v=(jr(y,w)?he(y,w,Pn):0)>2;if(v||y.intersectsTriangle(w,en,!0)){const g=d.geometry.boundsTree.resolveTriangleIndex(T),u=r.geometry.boundsTree.resolveTriangleIndex(x);if(h.add(g,u,v),p.add(u,g,v),v){const A=he(y,w,Pn);for(let E=0;E<A;E++){const M=rn.getInstance().copy(Pn[E]);h.addIntersectionEdge(g,M),p.addIntersectionEdge(u,M)}}else{const A=rn.getInstance().copy(en),E=rn.getInstance().copy(en);h.addIntersectionEdge(g,A),p.addIntersectionEdge(u,E)}un&&(un.addEdge(en),un.addIntersectingTriangles(T,y,x,w))}}return!1}}),{aIntersections:h,bIntersections:p}}function Ke(d,r,h=!1){switch(d){case Ue:if(r===Ht||r===pn&&!h)return Vt;break;case zr:if(h){if(r===jt)return Zt}else if(r===Ht||r===vn)return Vt;break;case Rr:if(h){if(r===Ht||r===vn)return Vt}else if(r===jt)return Zt;break;case kr:if(r===jt)return Zt;if(r===Ht)return Vt;break;case $r:if(r===jt||r===pn&&!h)return Vt;break;case qe:if(!h&&(r===Ht||r===vn))return Vt;break;case Xe:if(!h&&(r===jt||r===pn))return Vt;break;default:throw new Error(`Unrecognized CSG operation enum "${d}".`)}return kn}class Ur{constructor(r){this.triangle=new _t().copy(r),this.intersects={}}addTriangle(r,h){this.intersects[r]=new _t().copy(h)}getIntersectArray(){const r=[],{intersects:h}=this;for(const p in h)r.push(h[p]);return r}}class ge{constructor(){this.data={}}addTriangleIntersection(r,h,p,y){const{data:w}=this;w[r]||(w[r]=new Ur(h)),w[r].addTriangle(p,y)}getTrianglesAsArray(r=null){const{data:h}=this,p=[];if(r!==null)r in h&&p.push(h[r].triangle);else for(const y in h)p.push(h[y].triangle);return p}getTriangleIndices(){return Object.keys(this.data).map(r=>parseInt(r))}getIntersectionIndices(r){const{data:h}=this;return h[r]?Object.keys(h[r].intersects).map(p=>parseInt(p)):[]}getIntersectionsAsArray(r=null,h=null){const{data:p}=this,y=new Set,w=[],T=x=>{if(p[x])if(h!==null)p[x].intersects[h]&&w.push(p[x].intersects[h]);else{const I=p[x].intersects;for(const v in I)y.has(v)||(y.add(v),w.push(I[v]))}};if(r!==null)T(r);else for(const x in p)T(x);return w}reset(){this.data={}}}class qr{constructor(){this.enabled=!1,this.triangleIntersectsA=new ge,this.triangleIntersectsB=new ge,this.intersectionEdges=[]}addIntersectingTriangles(r,h,p,y){const{triangleIntersectsA:w,triangleIntersectsB:T}=this;w.addTriangleIntersection(r,h,p,y),T.addTriangleIntersection(p,y,r,h)}addEdge(r){this.intersectionEdges.push(r.clone())}reset(){this.triangleIntersectsA.reset(),this.triangleIntersectsB.reset(),this.intersectionEdges=[]}init(){this.enabled&&(this.reset(),se(this))}complete(){this.enabled&&se(null)}}const pt=new kt,Ot=new kt,vt=new kt,Ct=new me,xt=new _t,Gt=new _t,bt=new _t,Pt=new _t,Rt=[],At=[],on=new Set,le=new $,ve=new $,pe=new $t(()=>new _t),ue=new $,an=[];function Xr(d,r,h,p,y,w={}){const{useGroups:T=!0}=w,{aIntersections:x,bIntersections:I}=Hr(d,r),v=[];let o=null,g;return g=T?0:-1,we(d,r,x,h,!1,y,g),ye(d,r,x,h,!1,p,y,g),h.findIndex(A=>A!==Xe&&A!==qe)!==-1&&(y.forEach(A=>A.clearIndexMap()),g=T?d.geometry.groups.length||1:-1,we(r,d,I,h,!0,y,g),ye(r,d,I,h,!0,p,y,g)),y.forEach(A=>A.clearIndexMap()),Rt.length=0,{groups:v,materials:o}}function ye(d,r,h,p,y,w,T,x=0){pt.copy(r.matrixWorld).invert().multiply(d.matrixWorld),Ot.copy(pt).invert(),y?vt.copy(pt):vt.identity();const I=vt.determinant()<0;Ct.getNormalMatrix(vt).multiplyScalar(I?-1:1);const v=d.geometry.groupIndices,o=d.geometry.index,g=d.geometry.attributes.position,u=r.geometry.boundsTree,A=r.geometry.index,E=r.geometry.attributes.position,M=h.ids;for(let S=0,C=M.length;S<C;S++){const P=M[S],e=x===-1?0:v[P]+x,n=3*P;let i=n+0,t=n+1,D=n+2;o&&(i=o.getX(i),t=o.getX(t),D=o.getX(D)),xt.a.fromBufferAttribute(g,i),xt.b.fromBufferAttribute(g,t),xt.c.fromBufferAttribute(g,D),y&&(xt.a.applyMatrix4(pt),xt.b.applyMatrix4(pt),xt.c.applyMatrix4(pt)),w.reset(),w.initialize(xt,i,t,D),an.length=0,pe.clear(),xt.getNormal(ve);const b=h.coplanarSet.get(P);if(b)for(const l of b){const _=3*l;let G=_+0,N=_+1,O=_+2;A&&(G=A.getX(G),N=A.getX(N),O=A.getX(O));const B=pe.getInstance();B.a.fromBufferAttribute(E,G),B.b.fromBufferAttribute(E,N),B.c.fromBufferAttribute(E,O),y||(B.a.applyMatrix4(Ot),B.b.applyMatrix4(Ot),B.c.applyMatrix4(Ot)),an.push(B)}if(w.addConstraintEdge){const l=h.getIntersectionEdges(P);if(l)for(const _ of l)w.addConstraintEdge(_);w.triangulate()}else{const _=h.intersectionSet.get(P);for(let G=0,N=_.length;G<N;G++){const O=_[G],B=b&&b.has(O),V=3*O;let z=V+0,Q=V+1,R=V+2;A&&(z=A.getX(z),Q=A.getX(Q),R=A.getX(R)),Gt.a.fromBufferAttribute(E,z),Gt.b.fromBufferAttribute(E,Q),Gt.c.fromBufferAttribute(E,R),y||(Gt.a.applyMatrix4(Ot),Gt.b.applyMatrix4(Ot),Gt.c.applyMatrix4(Ot)),w.splitByTriangle(Gt,B)}}const{triangles:a,triangleIndices:c=[],triangleConnectivity:s=[]}=w;for(let l=0,_=T.length;l<_;l++)T[l].initInterpolatedAttributeData(d.geometry,vt,Ct,i,t,D);on.clear();for(let l=0,_=a.length;l<_;l++){if(on.has(l))continue;const G=a[l],N=y?null:pt;let O=null;G.getMidpoint(le);for(let B=0,V=an.length;B<V;B++){const z=an[B];if(z.containsPoint(le)){z.getNormal(ue),O=ve.dot(ue)>0?pn:vn;break}}O===null&&(O=We(G,u,N)),Rt.length=0,At.length=0;for(let B=0,V=p.length;B<V;B++){const z=Ke(p[B],O,y);z!==kn&&(Rt.push(z),At.push(T[B]))}if(At.length!==0){const B=[l];for(;B.length>0;){const V=B.pop();if(on.has(V))continue;on.add(V);const z=c[V];let Q=null,R=null,k=null;z&&(Q=z[0],R=z[1],k=z[2]);const F=a[V];xt.getBarycoord(F.a,Pt.a),xt.getBarycoord(F.b,Pt.b),xt.getBarycoord(F.c,Pt.c);for(let f=0,j=At.length;f<j;f++){const nt=At[f],q=Rt[f]===Zt,L=I!==q;nt.appendInterpolatedAttributeData(e,Pt.a,Q,L),L?(nt.appendInterpolatedAttributeData(e,Pt.c,k,L),nt.appendInterpolatedAttributeData(e,Pt.b,R,L)):(nt.appendInterpolatedAttributeData(e,Pt.b,R,L),nt.appendInterpolatedAttributeData(e,Pt.c,k,L))}}}}}return M.length}function we(d,r,h,p,y,w,T=0){pt.copy(r.matrixWorld).invert().multiply(d.matrixWorld),y?vt.copy(pt):vt.identity();const x=vt.determinant()<0;Ct.getNormalMatrix(vt).multiplyScalar(x?-1:1);const I=r.geometry.boundsTree,v=d.geometry.groupIndices,o=d.geometry.index,u=d.geometry.attributes.position,A=[],E=d.geometry.halfEdges,M=new Set(h.ids),S=mt(d.geometry);for(let C=0;C<S&&M.size!==S;C++){if(M.has(C))continue;M.add(C),A.push(C);const P=3*C;let e=P+0,n=P+1,i=P+2;o&&(e=o.getX(e),n=o.getX(n),i=o.getX(i)),bt.a.fromBufferAttribute(u,e),bt.b.fromBufferAttribute(u,n),bt.c.fromBufferAttribute(u,i),y&&(bt.a.applyMatrix4(pt),bt.b.applyMatrix4(pt),bt.c.applyMatrix4(pt));const t=We(bt,I,y?null:pt);Rt.length=0,At.length=0;for(let D=0,b=p.length;D<b;D++){const a=Ke(p[D],t,y);a!==kn&&(Rt.push(a),At.push(w[D]))}for(;A.length>0;){const D=A.pop();for(let b=0;b<3;b++){const a=E.getSiblingTriangleIndex(D,b);a!==-1&&!M.has(a)&&(A.push(a),M.add(a))}if(At.length!==0){const b=3*D;let a=b+0,c=b+1,s=b+2;o&&(a=o.getX(a),c=o.getX(c),s=o.getX(s));const l=T===-1?0:v[D]+T;if(bt.a.fromBufferAttribute(u,a),bt.b.fromBufferAttribute(u,c),bt.c.fromBufferAttribute(u,s),!Dt(bt))for(let _=0,G=At.length;_<G;_++){const N=At[_],V=Rt[_]===Zt!==x;N.appendIndexFromGeometry(d.geometry,vt,Ct,l,a,V),V?(N.appendIndexFromGeometry(d.geometry,vt,Ct,l,s,V),N.appendIndexFromGeometry(d.geometry,vt,Ct,l,c,V)):(N.appendIndexFromGeometry(d.geometry,vt,Ct,l,c,V),N.appendIndexFromGeometry(d.geometry,vt,Ct,l,s,V))}}}}}function Wr(d){return d=~~d,d+4-d%4}class Kr{constructor(r,h=500){this.expansionFactor=1.5,this.type=r,this.length=0,this.array=null,this.setSize(h)}setType(r){if(r===this.type)return;if(this.length!==0)throw new Error("TypeBackedArray: Cannot change the type while there is used data in the buffer.");const h=this.array.buffer;this.array=new r(h),this.type=r}setSize(r){if(this.array&&r===this.array.length)return;const h=this.type,p=Le()?SharedArrayBuffer:ArrayBuffer,y=new h(new p(Wr(r*h.BYTES_PER_ELEMENT)));this.array&&y.set(this.array,0),this.array=y}expand(){const{array:r,expansionFactor:h}=this;this.setSize(r.length*h)}push(...r){let{array:h,length:p}=this;p+r.length>h.length&&(this.expand(),h=this.array);for(let y=0,w=r.length;y<w;y++)h[p+y]=r[y];this.length+=r.length}clear(){this.length=0}}const lt=new $,Cn=new $,Dn=new $,Bn=new $,hn=new Qt,Yr=new Qt,Zr=new Qt,Jr=new Qt;function Qr(d,r,h,p,y,w=!1,T=!1){return y.set(0,0,0,0).addScaledVector(d,p.x).addScaledVector(r,p.y).addScaledVector(h,p.z),w&&y.normalize(),T&&y.multiplyScalar(-1),y}function xe(d,r,h){switch(r){case 1:h.push(d.x);break;case 2:h.push(d.x,d.y);break;case 3:h.push(d.x,d.y,d.z);break;case 4:h.push(d.x,d.y,d.z,d.w);break}}class Nn extends Kr{get count(){return this.length/this.itemSize}constructor(...r){super(...r),this.itemSize=1,this.normalized=!1}}class mr{constructor(){this.attributeData={},this.groupIndices=[],this.forwardIndexMap=new Map,this.invertedIndexMap=new Map,this.interpolatedFields={}}initFromGeometry(r,h){this.clear();const{attributeData:p}=this,y=r.attributes;for(let w=0,T=h.length;w<T;w++){const x=h[w],I=y[x],v=I.array.constructor;p[x]||(p[x]=new Nn(v)),p[x].setType(v),p[x].itemSize=I.itemSize,p[x].normalized=I.normalized}for(const w in p.attributes)h.includes(w)||p.delete(w)}initInterpolatedAttributeData(r,h,p,y,w,T){const{attributeData:x,interpolatedFields:I}=this,{attributes:v}=r;for(const o in x){const g=v[o];if(!g)throw new Error(`CSG Operations: Attribute ${o} not available on geometry.`);let u,A,E;if(o==="position"?(u=Cn.fromBufferAttribute(g,y).applyMatrix4(h),A=Dn.fromBufferAttribute(g,w).applyMatrix4(h),E=Bn.fromBufferAttribute(g,T).applyMatrix4(h)):o==="normal"?(u=Cn.fromBufferAttribute(g,y).applyNormalMatrix(p),A=Dn.fromBufferAttribute(g,w).applyNormalMatrix(p),E=Bn.fromBufferAttribute(g,T).applyNormalMatrix(p)):o==="tangent"?(u=Cn.fromBufferAttribute(g,y).transformDirection(h),A=Dn.fromBufferAttribute(g,w).transformDirection(h),E=Bn.fromBufferAttribute(g,T).transformDirection(h)):(u=Yr.fromBufferAttribute(g,y),A=Zr.fromBufferAttribute(g,w),E=Jr.fromBufferAttribute(g,T)),!I[o])I[o]=[u.clone(),A.clone(),E.clone()];else{const M=I[o];M[0].copy(u),M[1].copy(A),M[2].copy(E)}}}appendInterpolatedAttributeData(r,h,p=null,y=!1){const{groupIndices:w,attributeData:T,interpolatedFields:x,forwardIndexMap:I,invertedIndexMap:v}=this;for(;w.length<=r;)w.push(new Nn(Uint32Array));const o=y?v:I,g=w[r];if(p!==null&&o.has(p))g.push(o.get(p));else{o.set(p,T.position.count),g.push(T.position.count);for(const u in x){const A=T[u],E=u==="normal"||u==="tangent",M=y&&E,S=A.itemSize,[C,P,e]=x[u];Qr(C,P,e,h,hn,E,M),xe(hn,S,A)}}}appendIndexFromGeometry(r,h,p,y,w,T=!1){const{groupIndices:x,attributeData:I,forwardIndexMap:v,invertedIndexMap:o}=this;for(;x.length<=y;)x.push(new Nn(Uint32Array));const g=T?o:v,u=x[y];if(w!==null&&g.has(w))u.push(g.get(w));else{g.set(w,I.position.count),u.push(I.position.count);const{attributes:A}=r;for(const E in I){const M=I[E],S=A[E];if(!S)throw new Error(`CSG Operations: Attribute ${E} not available on geometry.`);const C=S.itemSize;E==="position"?(lt.fromBufferAttribute(S,w).applyMatrix4(h),M.push(lt.x,lt.y,lt.z)):E==="normal"?(lt.fromBufferAttribute(S,w).applyNormalMatrix(p),T&&lt.multiplyScalar(-1),M.push(lt.x,lt.y,lt.z)):E==="tangent"?(lt.fromBufferAttribute(S,w).transformDirection(h),T&&lt.multiplyScalar(-1),M.push(lt.x,lt.y,lt.z)):(hn.fromBufferAttribute(S,w),xe(hn,C,M))}}}buildGeometry(r,h){let p=!1;const{groupIndices:y,attributeData:w}=this,{attributes:T,index:x}=r;for(const o in w){const g=w[o],{type:u,itemSize:A,normalized:E,length:M,count:S}=g,C=g.array.buffer;let P=T[o];(!P||P.count<S||P.array.type!==u)&&(P=new Jt(new u(M),A,E),r.setAttribute(o,P),p=!0),P.array.set(new u(C,0,M),0),P.needsUpdate=!0}const I=y.reduce((o,g)=>g.count+o,0);(!r.index||x.count<I||x.array.type!==Uint32Array)&&(r.setIndex(new Jt(new Uint32Array(I),1)),p=!0),r.clearGroups();let v=0;for(let o=0,g=Math.min(h.length,y.length);o<g;o++){const{index:u,materialIndex:A}=h[o],{count:E}=y[u],M=y[u].array.buffer;E!==0&&(r.index.array.set(new Uint32Array(M,0,E),v),r.addGroup(v,E,A),v+=E)}r.setDrawRange(0,v),r.boundsTree=null,r.boundingBox=null,r.boundingSphere=null,p&&r.dispose()}clearIndexMap(){this.forwardIndexMap.clear(),this.invertedIndexMap.clear()}clear(){const{groupIndices:r,attributeData:h}=this;this.interpolatedFields={};for(const p in h)h[p].clear();r.forEach(p=>{p.clear()}),this.clearIndexMap()}}function to(d,r){for(const h in d.attributes)r.includes(h)||(d.deleteAttribute(h),d.dispose());return d}function no(d,r){const h=[];for(let p=0,y=d.length;p<y;p++){const w=d[p],T=r[w.materialIndex];h.push({...w,materialIndex:r.indexOf(T)})}return h}function eo(d,r){const h=[],p=new Map;for(let y=0,w=d.length;y<w;y++){const T=d[y];p.has(T.materialIndex)||(p.set(T.materialIndex,h.length),h.push(r[T.materialIndex])),T.materialIndex=p.get(T.materialIndex)}return h}function ro(d){for(let r=0;r<d.length-1;r++){const h=d[r],p=d[r+1];if(h.materialIndex===p.materialIndex){const y=h.start,w=p.start+p.count;p.start=y,p.count=w-y,d.splice(r,1),r--}}}function be(d,r){let h=r;return Array.isArray(r)||(h=[],d.forEach(p=>{h[p.materialIndex]=r})),h}class po{get useCDTClipping(){return this.triangleSplitter instanceof Yn}set useCDTClipping(r){r!==this.useCDTClipping&&(this.triangleSplitter=r?new Yn:new te)}constructor(){this.triangleSplitter=new te,this.geometryBuilders=[],this.attributes=["position","uv","normal"],this.useGroups=!0,this.consolidateGroups=!0,this.removeUnusedMaterials=!0,this.debug=new qr}getGroupRanges(r){return!this.useGroups||r.groups.length===0?[{start:0,count:1/0,materialIndex:0}]:r.groups.map(p=>({...p}))}evaluate(r,h,p,y=new zn){let w=!0;if(Array.isArray(p)||(p=[p]),Array.isArray(y)||(y=[y],w=!1),y.length!==p.length)throw new Error("Evaluator: operations and target array passed as different sizes.");r.prepareGeometry(),h.prepareGeometry();const{triangleSplitter:T,geometryBuilders:x,attributes:I,useGroups:v,consolidateGroups:o,removeUnusedMaterials:g,debug:u}=this;for(;x.length<y.length;)x.push(new mr);y.forEach((e,n)=>{x[n].initFromGeometry(r.geometry,I),to(e.geometry,I)}),u.init(),Xr(r,h,p,T,x,{useGroups:v}),u.complete();const A=this.getGroupRanges(r.geometry),E=be(A,r.material),M=this.getGroupRanges(h.geometry),S=be(M,h.material);M.forEach(e=>e.materialIndex+=E.length);const C=[...E,...S];let P=[...A,...M].map((e,n)=>({...e,index:n}));return v?v&&o&&(P=no(P,C),P.sort((e,n)=>e.materialIndex-n.materialIndex)):P=[{start:0,count:1/0,index:0,materialIndex:0}],y.forEach((e,n)=>{const i=e.geometry;x[n].buildGeometry(i,P),r.matrixWorld.decompose(e.position,e.quaternion,e.scale),e.updateMatrix(),e.matrixWorld.copy(r.matrixWorld),v?(e.material=C,o&&ro(i.groups),g&&(e.material=eo(i.groups,C))):e.material=C[0]}),w?y:y[0]}evaluateHierarchy(r,h=new zn){r.updateMatrixWorld(!0);const p=(w,T)=>{const x=w.children;for(let I=0,v=x.length;I<v;I++){const o=x[I];o.isOperationGroup?p(o,T):T(o)}},y=w=>{const T=w.children;let x=!1;for(let v=0,o=T.length;v<o;v++){const g=T[v];x=y(g)||x}const I=w.isDirty();if(I&&w.markUpdated(),x&&!w.isOperationGroup){let v;return p(w,o=>{v?v=this.evaluate(v,o,o.operation):v=this.evaluate(w,o,o.operation)}),w._cachedGeometry=v.geometry,w._cachedMaterials=v.material,!0}else return x||I};return y(r),h.geometry=r._cachedGeometry,h.material=r._cachedMaterials,h}reset(){this.triangleSplitter.reset()}}class uo extends zn{constructor(...r){super(...r),this.isOperation=!0,this.operation=Ue,this._cachedGeometry=new On,this._cachedMaterials=null,this._previousOperation=null}markUpdated(){super.markUpdated(),this._previousOperation=this.operation}isDirty(){return this.operation!==this._previousOperation||super.isDirty()}insertBefore(r){const h=this.parent,p=h.children.indexOf(this);h.children.splice(p,0,r)}insertAfter(r){const h=this.parent,p=h.children.indexOf(this);h.children.splice(p+1,0,r)}}class yo extends Oe{constructor(){super(),this.isOperationGroup=!0,this._previousMatrix=new kt}markUpdated(){this._previousMatrix.copy(this.matrix)}isDirty(){const{matrix:r,_previousMatrix:h}=this,p=r.elements,y=h.elements;for(let w=0;w<16;w++)if(p[w]!==y[w])return!0;return!1}}function oo(d){if(!/varying\s+vec3\s+wPosition/.test(d.vertexShader))return d.vertexShader=`
2
+ varying vec3 wPosition;
3
+ ${d.vertexShader}
4
+ `.replace(/#include <displacementmap_vertex>/,r=>`${r}
5
+ wPosition = (modelMatrix * vec4( transformed, 1.0 )).xyz;
6
+ `),d.fragmentShader=`
7
+ varying vec3 wPosition;
8
+ ${d.fragmentShader}
9
+ `,d}function io(d){return d.uniforms={...d.uniforms,checkerboardColor:{value:new Ge(1118481)}},oo(d),d.defines={CSG_GRID:1},d.fragmentShader=d.fragmentShader.replace(/#include <common>/,r=>`
10
+ ${r}
11
+
12
+ uniform vec3 checkerboardColor;
13
+ float getCheckerboard( vec2 p, float scale ) {
14
+
15
+ p /= scale;
16
+ p += vec2( 0.5 );
17
+
18
+ vec2 line = mod( p, 2.0 ) - vec2( 1.0 );
19
+ line = abs( line );
20
+
21
+ vec2 pWidth = fwidth( line );
22
+ vec2 value = smoothstep( 0.5 - pWidth / 2.0, 0.5 + pWidth / 2.0, line );
23
+ float result = value.x * value.y + ( 1.0 - value.x ) * ( 1.0 - value.y );
24
+
25
+ return result;
26
+
27
+ }
28
+
29
+ float getGrid( vec2 p, float scale, float thickness ) {
30
+
31
+ p /= 0.5 * scale;
32
+
33
+ vec2 stride = mod( p, 2.0 ) - vec2( 1.0 );
34
+ stride = abs( stride );
35
+
36
+ vec2 pWidth = fwidth( p );
37
+ vec2 line = smoothstep( 1.0 - pWidth / 2.0, 1.0 + pWidth / 2.0, stride + thickness * pWidth );
38
+
39
+ return max( line.x, line.y );
40
+
41
+ }
42
+
43
+ vec3 getFaceColor( vec2 p, vec3 color ) {
44
+
45
+ float checkLarge = getCheckerboard( p, 1.0 );
46
+ float checkSmall = abs( getCheckerboard( p, 0.1 ) );
47
+ float lines = getGrid( p, 10.0, 1.0 );
48
+
49
+ vec3 checkColor = mix(
50
+ vec3( 0.7 ) * color,
51
+ vec3( 1.0 ) * color,
52
+ checkSmall * 0.4 + checkLarge * 0.6
53
+ );
54
+
55
+ vec3 gridColor = vec3( 1.0 );
56
+
57
+ return mix( checkColor, gridColor, lines );
58
+
59
+ }
60
+
61
+ float angleBetween( vec3 a, vec3 b ) {
62
+
63
+ return acos( abs( dot( a, b ) ) );
64
+
65
+ }
66
+
67
+ vec3 planeProject( vec3 norm, vec3 other ) {
68
+
69
+ float d = dot( norm, other );
70
+ return normalize( other - norm * d );
71
+
72
+ }
73
+
74
+ vec3 getBlendFactors( vec3 norm ) {
75
+
76
+ vec3 xVec = vec3( 1.0, 0.0, 0.0 );
77
+ vec3 yVec = vec3( 0.0, 1.0, 0.0 );
78
+ vec3 zVec = vec3( 0.0, 0.0, 1.0 );
79
+
80
+ vec3 projX = planeProject( xVec, norm );
81
+ vec3 projY = planeProject( yVec, norm );
82
+ vec3 projZ = planeProject( zVec, norm );
83
+
84
+ float xAngle = max(
85
+ angleBetween( xVec, projY ),
86
+ angleBetween( xVec, projZ )
87
+ );
88
+
89
+ float yAngle = max(
90
+ angleBetween( yVec, projX ),
91
+ angleBetween( yVec, projZ )
92
+ );
93
+
94
+ float zAngle = max(
95
+ angleBetween( zVec, projX ),
96
+ angleBetween( zVec, projY )
97
+ );
98
+
99
+ return vec3( xAngle, yAngle, zAngle ) / ( 0.5 * PI );
100
+
101
+ }
102
+ `).replace(/#include <normal_fragment_maps>/,r=>`${r}
103
+ #if CSG_GRID
104
+ {
105
+
106
+ vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
107
+
108
+ float yCont = abs( dot( vec3( 0.0, 1.0, 0.0 ), worldNormal ) );
109
+ float zCont = abs( dot( vec3( 0.0, 0.0, 1.0 ), worldNormal ) );
110
+ float xCont = abs( dot( vec3( 1.0, 0.0, 0.0 ), worldNormal ) );
111
+
112
+ vec3 factors = getBlendFactors( worldNormal );
113
+ factors = smoothstep( vec3( 0.475 ), vec3( 0.525 ), vec3( 1.0 ) - factors );
114
+
115
+ float weight = factors.x + factors.y + factors.z;
116
+ factors /= weight;
117
+
118
+ vec3 color =
119
+ getFaceColor( wPosition.yz, diffuseColor.rgb ) * factors.x +
120
+ getFaceColor( wPosition.xz, diffuseColor.rgb ) * factors.y +
121
+ getFaceColor( wPosition.xy, diffuseColor.rgb ) * factors.z;
122
+
123
+ diffuseColor.rgb = color;
124
+
125
+ }
126
+ #endif
127
+ `),d}class wo extends ze{get enableGrid(){return!!this._enableGrid}set enableGrid(r){this._enableGrid!==r&&(this._enableGrid=r,this.needsUpdate=!0)}constructor(...r){super(...r),this.enableGrid=!0}onBeforeCompile(r){io(r),r.defines.CSG_GRID=Number(this.enableGrid)}customProgramCacheKey(){return this.enableGrid.toString()}}function ao(...d){function r(h){return`new THREE.Vector3( ${h.x}, ${h.y}, ${h.z} )`}return d.map(h=>`
128
+ new THREE.Triangle(
129
+ ${r(h.a)},
130
+ ${r(h.b)},
131
+ ${r(h.c)},
132
+ )
133
+ `.trim())}function xo(...d){console.log(ao(...d).join(`,
134
+ `))}function bo(d){const r=d.attributes.position,h=new Float32Array(r.count*3),p=new Ge;for(let y=0,w=h.length;y<w;y+=9)p.setHSL(Math.random(),Ln.lerp(.5,1,Math.random()),Ln.lerp(.5,.75,Math.random())),h[y+0]=p.r,h[y+1]=p.g,h[y+2]=p.b,h[y+3]=p.r,h[y+4]=p.g,h[y+5]=p.b,h[y+6]=p.r,h[y+7]=p.g,h[y+8]=p.b;d.setAttribute("color",new Jt(h,3))}class _o extends Oe{get color(){return this._mesh.material.color}get side(){return this._mesh.material.side}set side(r){this._mesh.material.side=r}constructor(r=[]){super();const h=new On,p=new On;this._mesh=new Ve(h,new ze({flatShading:!0,transparent:!0,opacity:.25,depthWrite:!1})),this._lines=new Re(p,new tr),this._mesh.material.color=this._lines.material.color,this._lines.frustumCulled=!1,this._mesh.frustumCulled=!1,this.add(this._lines,this._mesh),this.setTriangles(r)}setTriangles(r){const h=new Float32Array(9*r.length),p=new Float32Array(18*r.length);for(let y=0,w=r.length;y<w;y++){const T=9*y,x=18*y,I=r[y];I.a.toArray(h,T+0),I.b.toArray(h,T+3),I.c.toArray(h,T+6),I.a.toArray(p,x+0),I.b.toArray(p,x+3),I.b.toArray(p,x+6),I.c.toArray(p,x+9),I.c.toArray(p,x+12),I.a.toArray(p,x+15)}this._mesh.geometry.dispose(),this._mesh.geometry.setAttribute("position",new Jt(h,3)),this._lines.geometry.dispose(),this._lines.geometry.setAttribute("position",new Jt(p,3))}}class ho extends Re{get color(){return this.material.color}constructor(r=[]){super(),this.frustumCulled=!1,this.setEdges(r)}setEdges(r){const{geometry:h}=this,p=r.flatMap(y=>[y.start,y.end]);h.dispose(),h.deleteAttribute("position"),h.setFromPoints(p)}}const de=new kt;class Io extends nr{get color(){return this.material.color}constructor(r=1e3,h=[]){super(new er(.025),new rr,r),this.frustumCulled=!1,this.setPoints(h)}setPoints(r){for(let h=0,p=r.length;h<p;h++){const y=r[h];de.makeTranslation(y.x,y.y,y.z),this.setMatrixAt(h,de)}this.count=r.length}}const Bt=["a","b","c"],Mt=new _t,Kt=new _t,Ft=new $,Yt=new $,_e=new $,Ie=new $,cn=new $,sn=new $,Ae=new $,Te=new $,qt=new $,Ee=new $,Se=new $,Me=new $,Pe=new wn,Ce=new wn,gn=new $,dt=new Rn,Vn=new ut;function ln(d,r,h){const p=3*r;let y=p+0,w=p+1,T=p+2;const x=d.index,I=d.attributes.position;return x&&(y=x.getX(y),w=x.getX(w),T=x.getX(T)),h.a.fromBufferAttribute(I,y),h.b.fromBufferAttribute(I,w),h.c.fromBufferAttribute(I,T),h}function co(d,r,h,p,y){const w=(r+1)%3,T=d[Bt[r]],x=d[Bt[w]],I=(p+1)%3,v=h[Bt[p]],o=h[Bt[I]];fe(T,x,dt);let g=qt.subVectors(T,dt.origin).dot(dt.direction),u=qt.subVectors(x,dt.origin).dot(dt.direction);g>u&&([g,u]=[u,g]);let A=qt.subVectors(v,dt.origin).dot(dt.direction),E=qt.subVectors(o,dt.origin).dot(dt.direction);A>E&&([A,E]=[E,A]);const M=Math.max(g,A),S=Math.min(u,E);dt.at(M,y.start),dt.at(S,y.end)}class Ao extends ho{constructor(r=null,h=null){super(),this.straightEdges=!1,this.displayDisconnectedEdges=!1,r&&h&&this.setHalfEdges(r,h)}setHalfEdges(r,h){const{straightEdges:p,displayDisconnectedEdges:y}=this,w=[],T=r.drawRange.start;let x=mt(r);if(r.drawRange.count!==1/0&&(x=~~(r.drawRange.count/3)),y)if(h.unmatchedDisjointEdges)h.unmatchedDisjointEdges.forEach(({forward:v,reverse:o,ray:g})=>{[...v,...o].forEach(({start:u,end:A})=>{const E=new ut;g.at(u,E.start),g.at(A,E.end),w.push(E)})});else for(let v=T;v<x;v++){ln(r,v,Mt);for(let o=0;o<3;o++)if(h.getSiblingTriangleIndex(v,o)===-1){const u=(o+1)%3,A=Mt[Bt[o]],E=Mt[Bt[u]],M=new ut;M.start.copy(A),M.end.copy(E),w.push(M)}}else for(let v=T;v<x;v++){ln(r,v,Mt);for(let o=0;o<3;o++){const g=h.getSiblingTriangleIndex(v,o);if(g===-1)continue;ln(r,g,Kt);const u=(o+1)%3,A=Mt[Bt[o]],E=Mt[Bt[u]];gn.lerpVectors(A,E,.5),I(Mt,Kt,gn)}if(h.disjointConnections)for(let o=0;o<3;o++){const g=h.getDisjointSiblingTriangleIndices(v,o),u=h.getDisjointSiblingEdgeIndices(v,o);for(let A=0;A<g.length;A++){const E=g[A],M=u[A];ln(r,E,Kt),co(Mt,o,Kt,M,Vn),gn.lerpVectors(Vn.start,Vn.end,.5),I(Mt,Kt,gn)}}}super.setEdges(w);function I(v,o,g){v.getMidpoint(Ft),o.getMidpoint(Yt),v.getPlane(Pe),o.getPlane(Ce);const u=new ut;u.start.copy(Ft),p?(Pe.projectPoint(Yt,_e),Ce.projectPoint(Ft,Ie),cn.subVectors(_e,Ft),sn.subVectors(Ie,Yt),Ae.subVectors(g,Ft),Te.subVectors(g,Yt),cn.dot(Ae)<0&&cn.multiplyScalar(-1),sn.dot(Te)<0&&sn.multiplyScalar(-1),qt.addVectors(Ft,cn),Ee.addVectors(Yt,sn),v.closestPointToPoint(qt,Se),o.closestPointToPoint(Ee,Me),u.end.lerpVectors(Se,Me,.5)):u.end.copy(g),w.push(u)}}}const It=new _t,De=new $,Be=new $;function To(d){let r,h;d.isBufferGeometry?(r=d,h=null):(r=d.geometry,h=Math.abs(d.matrixWorld.determinant()-1)<1e-15?null:d.matrixWorld);const p=r.index,y=r.attributes.position,w=r.drawRange,T=Math.min(mt(r),w.count/3);It.setFromAttributeAndIndices(y,0,1,2),Ne(It,h),It.getNormal(De),It.getMidpoint(Be).add(De);let x=0;const I=w.start/3;for(let v=I,o=I+T;v<o;v++){let g=3*v+0,u=3*v+1,A=3*v+2;p&&(g=p.getX(g),u=p.getX(u),A=p.getX(A)),It.setFromAttributeAndIndices(y,g,u,A),Ne(It,h),go(It,Be),x+=so(It.a,It.b,It.c)}return Math.abs(x)}function so(d,r,h){const p=h.x*r.y*d.z,y=r.x*h.y*d.z,w=h.x*d.y*r.z,T=d.x*h.y*r.z,x=r.x*d.y*h.z,I=d.x*r.y*h.z;return 1/6*(-p+y+w-T-x+I)}function go(d,r){d.a.sub(r),d.b.sub(r),d.c.sub(r)}function Ne(d,r=null){r!==null&&(d.a.applyMatrix4(r),d.b.applyMatrix4(r),d.c.applyMatrix4(r))}export{Ue as ADDITION,zn as Brush,Yn as CDTTriangleSplitter,kr as DIFFERENCE,ho as EdgesHelper,po as Evaluator,wo as GridMaterial,Xe as HOLLOW_INTERSECTION,qe as HOLLOW_SUBTRACTION,Ao as HalfEdgeHelper,_r as HalfEdgeMap,$r as INTERSECTION,te as LegacyTriangleSplitter,uo as Operation,yo as OperationGroup,Io as PointsHelper,Rr as REVERSE_SUBTRACTION,zr as SUBTRACTION,_o as TriangleSetHelper,To as computeMeshVolume,bo as generateRandomTriangleColors,ao as getTriangleDefinitions,xo as logTriangleDefinitions};
@@ -1,4 +1,4 @@
1
- import{_ as Ie}from"./extends-CF3RwP-h.js";import{r as A,a as Vn}from"./index-nmcBqr7Y.js";import{a as Jy}from"./client-DNXj_opT.js";import{V as W,ap as bi,g as Be,x as ci,ar as Bi,b4 as ql,q as wr,a as we,Q as rt,aF as Ln,o as Hu,a0 as vi,C as qe,aQ as Pn,r as Ze,M as ze,bt as ev,i as Ir,R as Ti,Z as si,a2 as Ns,a5 as Xt,aB as Ji,aC as Ai,aV as nn,s as xn,h as hi,ao as Ar,U as Yo,B as cr,cG as Zx,bj as Hr,O as yi,t as Vu,z as ta,aZ as ul,bJ as Qn,aY as $i,bh as It,y as an,cs as Rr,H as tv,ct as Xl,m as Th,aX as jo,u as Yt,cH as wh,G as Jx,a4 as Fi,k as ni,a3 as S0,aE as e4,bl as t4,bk as iv,cc as i4,ak as ia,b2 as n4,al as ks,e as _r,am as Wn,as as cn,a$ as bh,bX as C0,E as nv,b6 as Zm,bq as Eu,bH as Jm,bG as s4,D as r4,bS as sv,b5 as o4,bU as a4,cd as l4,d as c4,b as u4,c as h4,cf as f4,bm as ur,bu as Wu,cI as rv,a7 as Gi,av as T0,cJ as eg,Y as Ms,N as No,K as fi,cK as d4,cL as m4,cM as g4,cN as p4,cO as A4,cP as y4,cQ as v4,cR as E4,cS as x4,J as ov,_ as zo,cT as I4,ce as _4,b8 as S4,cU as Rh,aM as w0,c0 as Id,c1 as Qo,c2 as C4,bZ as _d,bi as Fs,cV as T4,cW as w4,cX as av,f as b4,cY as R4,cZ as D4,ad as lv,ab as cv,aT as Go,aU as xu,$ as pn,a9 as Ku,cv as L4,c_ as uv,bM as P4,c$ as hv,aG as Iu,ai as Wr,aH as Yu,aJ as fv,d0 as M4,w as br,a1 as dv,d1 as b0,d2 as B4,j as mv,af as gv,c5 as pv,aS as R0,aK as Av,aq as _u,bR as k4,p as Fl,c8 as ou,ca as Sd,c9 as yv,aO as vv,c6 as F4,A as O4,aA as U4,bK as Ev,F as xv,ch as N4,a_ as z4,bY as Su,W as Q4,X as Cd,L as G4,aI as tg,d3 as $4,an as H4,bd as V4,b7 as W4,d4 as Dh,d5 as K4,d6 as Lh,d7 as Y4,d8 as j4,a6 as q4}from"./three.module-D396a9Mn.js";import{u as ue,d as He,I as X4,r as Td,G as Ei,s as ir,J as Z4,K as ju,e as xi,p as Kn,w as Xr,F as J4,n as Iv,m as D0,L as eI}from"./events-156d8d12.esm-ErOhDXXB.js";import{v as Ol,d as _v,C as tI,u as MM}from"./Gltf-UHVWKz65.js";import{G as HF}from"./Gltf-UHVWKz65.js";import{m as iI,t as nI}from"./BufferGeometryUtils-Nz37EVXf.js";import{OrthographicCamera as sI}from"./OrthographicCamera-bQozawrh.js";import{PerspectiveCamera as WF}from"./PerspectiveCamera-CQ2lh01o.js";import{E as na,M as rI}from"./OrbitControls-DLpayAaK.js";import{O as YF}from"./OrbitControls-DLpayAaK.js";import{_ as Sv}from"./index-GIL7oGEO.js";import{g as oI}from"./_commonjsHelpers-D6-XlEtG.js";import{u as ds}from"./Fbo-Dz-Soul3.js";import{F as qF}from"./Fbo-Dz-Soul3.js";import{RoundedBox as ZF,RoundedBoxGeometry as JF}from"./RoundedBox-BDGBg6QZ.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-bQE2NA0D.js";import"./index-CtzuWnCS.js";import"./index-FUuS4qwW.js";const Ul=new W,L0=new W,aI=new W,ig=new Be;function lI(r,e,t){const i=Ul.setFromMatrixPosition(r.matrixWorld);i.project(e);const n=t.width/2,s=t.height/2;return[i.x*n+n,-(i.y*s)+s]}function cI(r,e){const t=Ul.setFromMatrixPosition(r.matrixWorld),i=L0.setFromMatrixPosition(e.matrixWorld),n=t.sub(i),s=e.getWorldDirection(aI);return n.angleTo(s)>Math.PI/2}function uI(r,e,t,i){const n=Ul.setFromMatrixPosition(r.matrixWorld),s=n.clone();s.project(e),ig.set(s.x,s.y),t.setFromCamera(ig,e);const o=t.intersectObjects(i,!0);if(o.length){const a=o[0].distance;return n.distanceTo(t.ray.origin)<a}return!0}function hI(r,e){if(e instanceof Bi)return e.zoom;if(e instanceof ci){const t=Ul.setFromMatrixPosition(r.matrixWorld),i=L0.setFromMatrixPosition(e.matrixWorld),n=e.fov*Math.PI/180,s=t.distanceTo(i);return 1/(2*Math.tan(n/2)*s)}else return 1}function fI(r,e,t){if(e instanceof ci||e instanceof Bi){const i=Ul.setFromMatrixPosition(r.matrixWorld),n=L0.setFromMatrixPosition(e.matrixWorld),s=i.distanceTo(n),o=(t[1]-t[0])/(e.far-e.near),a=t[1]-o*e.far;return Math.round(o*s+a)}}const wd=r=>Math.abs(r)<1e-10?0:r;function Cv(r,e,t=""){let i="matrix3d(";for(let n=0;n!==16;n++)i+=wd(e[n]*r.elements[n])+(n!==15?",":")");return t+i}const dI=(r=>e=>Cv(e,r))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),mI=(r=>(e,t)=>Cv(e,r(t),"translate(-50%,-50%)"))(r=>[1/r,1/r,1/r,1,-1/r,-1/r,-1/r,-1,1/r,1/r,1/r,1,1,1,1,1]);function gI(r){return r&&typeof r=="object"&&"current"in r}const qu=A.forwardRef(({children:r,eps:e=.001,style:t,className:i,prepend:n,center:s,fullscreen:o,portal:a,distanceFactor:l,sprite:c=!1,transform:u=!1,occlude:h,onOcclude:f,castShadow:d,receiveShadow:g,material:m,geometry:p,zIndexRange:E=[16777271,0],calculatePosition:v=lI,as:y="div",wrapperClass:x,pointerEvents:I="auto",..._},S)=>{const{gl:C,camera:w,scene:T,size:D,raycaster:b,events:R,viewport:P}=ue(),[O]=A.useState(()=>document.createElement(y)),Q=A.useRef(null),V=A.useRef(null),Y=A.useRef(0),k=A.useRef([0,0]),G=A.useRef(null),M=A.useRef(null),H=a?.current||R.connected||C.domElement.parentNode,K=A.useRef(null),N=A.useRef(!1),z=A.useMemo(()=>h&&h!=="blending"||Array.isArray(h)&&h.length&&gI(h[0]),[h]);A.useLayoutEffect(()=>{const ee=C.domElement;h&&h==="blending"?(ee.style.zIndex=`${Math.floor(E[0]/2)}`,ee.style.position="absolute",ee.style.pointerEvents="none"):(ee.style.zIndex=null,ee.style.position=null,ee.style.pointerEvents=null)},[h]),A.useLayoutEffect(()=>{if(V.current){const ee=Q.current=Jy.createRoot(O);if(T.updateMatrixWorld(),u)O.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const Z=v(V.current,w,D);O.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${Z[0]}px,${Z[1]}px,0);transform-origin:0 0;`}return H&&(n?H.prepend(O):H.appendChild(O)),()=>{H&&H.removeChild(O),ee.unmount()}}},[H,u]),A.useLayoutEffect(()=>{x&&(O.className=x)},[x]);const B=A.useMemo(()=>u?{position:"absolute",top:0,left:0,width:D.width,height:D.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:s?"translate3d(-50%,-50%,0)":"none",...o&&{top:-D.height/2,left:-D.width/2,width:D.width,height:D.height},...t},[t,s,o,D,u]),F=A.useMemo(()=>({position:"absolute",pointerEvents:I}),[I]);A.useLayoutEffect(()=>{if(N.current=!1,u){var ee;(ee=Q.current)==null||ee.render(A.createElement("div",{ref:G,style:B},A.createElement("div",{ref:M,style:F},A.createElement("div",{ref:S,className:i,style:t,children:r}))))}else{var Z;(Z=Q.current)==null||Z.render(A.createElement("div",{ref:S,style:B,className:i,children:r}))}});const U=A.useRef(!0);He(ee=>{if(V.current){w.updateMatrixWorld(),V.current.updateWorldMatrix(!0,!1);const Z=u?k.current:v(V.current,w,D);if(u||Math.abs(Y.current-w.zoom)>e||Math.abs(k.current[0]-Z[0])>e||Math.abs(k.current[1]-Z[1])>e){const ne=cI(V.current,w);let ce=!1;z&&(Array.isArray(h)?ce=h.map(le=>le.current):h!=="blending"&&(ce=[T]));const me=U.current;if(ce){const le=uI(V.current,w,b,ce);U.current=le&&!ne}else U.current=!ne;me!==U.current&&(f?f(!U.current):O.style.display=U.current?"block":"none");const re=Math.floor(E[0]/2),te=h?z?[E[0],re]:[re-1,0]:E;if(O.style.zIndex=`${fI(V.current,w,te)}`,u){const[le,se]=[D.width/2,D.height/2],X=w.projectionMatrix.elements[5]*se,{isOrthographicCamera:j,top:oe,left:pe,bottom:_e,right:Ce}=w,ye=dI(w.matrixWorldInverse),Ne=j?`scale(${X})translate(${wd(-(Ce+pe)/2)}px,${wd((oe+_e)/2)}px)`:`translateZ(${X}px)`;let Te=V.current.matrixWorld;c&&(Te=w.matrixWorldInverse.clone().transpose().copyPosition(Te).scale(V.current.scale),Te.elements[3]=Te.elements[7]=Te.elements[11]=0,Te.elements[15]=1),O.style.width=D.width+"px",O.style.height=D.height+"px",O.style.perspective=j?"":`${X}px`,G.current&&M.current&&(G.current.style.transform=`${Ne}${ye}translate(${le}px,${se}px)`,M.current.style.transform=mI(Te,1/((l||10)/400)))}else{const le=l===void 0?1:hI(V.current,w)*l;O.style.transform=`translate3d(${Z[0]}px,${Z[1]}px,0) scale(${le})`}k.current=Z,Y.current=w.zoom}}if(!z&&K.current&&!N.current)if(u){if(G.current){const Z=G.current.children[0];if(Z!=null&&Z.clientWidth&&Z!=null&&Z.clientHeight){const{isOrthographicCamera:ne}=w;if(ne||p)_.scale&&(Array.isArray(_.scale)?_.scale instanceof W?K.current.scale.copy(_.scale.clone().divideScalar(1)):K.current.scale.set(1/_.scale[0],1/_.scale[1],1/_.scale[2]):K.current.scale.setScalar(1/_.scale));else{const ce=(l||10)/400,me=Z.clientWidth*ce,re=Z.clientHeight*ce;K.current.scale.set(me,re,1)}N.current=!0}}}else{const Z=O.children[0];if(Z!=null&&Z.clientWidth&&Z!=null&&Z.clientHeight){const ne=1/P.factor,ce=Z.clientWidth*ne,me=Z.clientHeight*ne;K.current.scale.set(ce,me,1),N.current=!0}K.current.lookAt(ee.camera.position)}});const J=A.useMemo(()=>({vertexShader:u?void 0:`
1
+ import{_ as Ie}from"./extends-CF3RwP-h.js";import{r as A,a as Vn}from"./index-nmcBqr7Y.js";import{a as Jy}from"./client-DNXj_opT.js";import{V as W,al as bi,g as Be,u as ci,an as Bi,b1 as ql,n as wr,a as we,Q as rt,aC as Ln,m as Hu,G as vi,v as qe,aN as Pn,o as Ze,M as ze,bp as ev,ah as Ir,ab as Ti,a2 as si,I as Ns,K as Xt,ax as Ji,ay as Ai,aS as nn,p as xn,h as hi,ak as Ar,U as Yo,B as cr,cI as Zx,bg as Hr,O as yi,q as Vu,x as ta,aW as ul,bG as Qn,aV as $i,be as It,w as an,ct as Rr,z as tv,cu as Xl,k as Th,aU as jo,j as Yt,cJ as wh,bO as Jx,J as Fi,a0 as ni,N as S0,aB as e4,bi as t4,bh as iv,ce as i4,ae as ia,a$ as n4,af as ks,e as _r,ag as Wn,ao as cn,aY as bh,b_ as C0,E as nv,b3 as Zm,i as Eu,bE as Jm,bD as s4,bA as r4,bV as sv,b2 as o4,bK as a4,cf as l4,d as c4,b as u4,c as h4,ch as f4,bj as ur,bq as Wu,cK as rv,Y as Gi,ar as T0,cL as eg,ai as Ms,az as No,ac as fi,cM as d4,cN as m4,cO as g4,cP as p4,cQ as A4,cR as y4,cS as v4,cT as E4,cU as x4,bZ as ov,bP as zo,cV as I4,cg as _4,b5 as S4,cW as Rh,aJ as w0,c2 as Id,c3 as Qo,c4 as C4,c0 as _d,bf as Fs,cX as T4,cY as w4,cZ as av,f as b4,c_ as R4,c$ as D4,a4 as lv,a1 as cv,aQ as Go,aR as xu,F as pn,_ as Ku,cw as L4,d0 as uv,bJ as P4,d1 as hv,aD as Iu,aa as Wr,aE as Yu,aG as fv,d2 as M4,t as br,H as dv,d3 as b0,d4 as B4,r as mv,a7 as gv,c7 as pv,aP as R0,aH as Av,am as _u,bU as k4,R as Fl,ca as ou,cc as Sd,cb as yv,aL as vv,c8 as F4,A as O4,aw as U4,bH as Ev,y as xv,bN as N4,aX as z4,b$ as Su,W as Q4,a5 as Cd,L as G4,aF as tg,d5 as $4,aj as H4,ba as V4,b4 as W4,d6 as Dh,d7 as K4,d8 as Lh,d9 as Y4,da as j4,X as q4}from"./three.module-IFn-4i31.js";import{u as ue,d as He,I as X4,r as Td,G as Ei,s as ir,J as Z4,K as ju,e as xi,p as Kn,w as Xr,F as J4,n as Iv,m as D0,L as eI}from"./events-156d8d12.esm-C734MYnx.js";import{v as Ol,d as _v,C as tI,u as MM}from"./Gltf-7cVbZUzT.js";import{G as HF}from"./Gltf-7cVbZUzT.js";import{m as iI,t as nI}from"./BufferGeometryUtils-CAbuTPOA.js";import{OrthographicCamera as sI}from"./OrthographicCamera-CSDDsvu7.js";import{PerspectiveCamera as WF}from"./PerspectiveCamera-DzD_NfVh.js";import{E as na,M as rI}from"./OrbitControls-CzKVCORl.js";import{O as YF}from"./OrbitControls-CzKVCORl.js";import{_ as Sv}from"./index-Ckxb31Yz.js";import{g as oI}from"./_commonjsHelpers-D6-XlEtG.js";import{u as ds}from"./Fbo-DrK7CWlB.js";import{F as qF}from"./Fbo-DrK7CWlB.js";import{RoundedBox as ZF,RoundedBoxGeometry as JF}from"./RoundedBox-B_cZ0NFy.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-bQE2NA0D.js";import"./index-CtzuWnCS.js";import"./index-FUuS4qwW.js";const Ul=new W,L0=new W,aI=new W,ig=new Be;function lI(r,e,t){const i=Ul.setFromMatrixPosition(r.matrixWorld);i.project(e);const n=t.width/2,s=t.height/2;return[i.x*n+n,-(i.y*s)+s]}function cI(r,e){const t=Ul.setFromMatrixPosition(r.matrixWorld),i=L0.setFromMatrixPosition(e.matrixWorld),n=t.sub(i),s=e.getWorldDirection(aI);return n.angleTo(s)>Math.PI/2}function uI(r,e,t,i){const n=Ul.setFromMatrixPosition(r.matrixWorld),s=n.clone();s.project(e),ig.set(s.x,s.y),t.setFromCamera(ig,e);const o=t.intersectObjects(i,!0);if(o.length){const a=o[0].distance;return n.distanceTo(t.ray.origin)<a}return!0}function hI(r,e){if(e instanceof Bi)return e.zoom;if(e instanceof ci){const t=Ul.setFromMatrixPosition(r.matrixWorld),i=L0.setFromMatrixPosition(e.matrixWorld),n=e.fov*Math.PI/180,s=t.distanceTo(i);return 1/(2*Math.tan(n/2)*s)}else return 1}function fI(r,e,t){if(e instanceof ci||e instanceof Bi){const i=Ul.setFromMatrixPosition(r.matrixWorld),n=L0.setFromMatrixPosition(e.matrixWorld),s=i.distanceTo(n),o=(t[1]-t[0])/(e.far-e.near),a=t[1]-o*e.far;return Math.round(o*s+a)}}const wd=r=>Math.abs(r)<1e-10?0:r;function Cv(r,e,t=""){let i="matrix3d(";for(let n=0;n!==16;n++)i+=wd(e[n]*r.elements[n])+(n!==15?",":")");return t+i}const dI=(r=>e=>Cv(e,r))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),mI=(r=>(e,t)=>Cv(e,r(t),"translate(-50%,-50%)"))(r=>[1/r,1/r,1/r,1,-1/r,-1/r,-1/r,-1,1/r,1/r,1/r,1,1,1,1,1]);function gI(r){return r&&typeof r=="object"&&"current"in r}const qu=A.forwardRef(({children:r,eps:e=.001,style:t,className:i,prepend:n,center:s,fullscreen:o,portal:a,distanceFactor:l,sprite:c=!1,transform:u=!1,occlude:h,onOcclude:f,castShadow:d,receiveShadow:g,material:m,geometry:p,zIndexRange:E=[16777271,0],calculatePosition:v=lI,as:y="div",wrapperClass:x,pointerEvents:I="auto",..._},S)=>{const{gl:C,camera:w,scene:T,size:D,raycaster:b,events:R,viewport:P}=ue(),[O]=A.useState(()=>document.createElement(y)),Q=A.useRef(null),V=A.useRef(null),Y=A.useRef(0),k=A.useRef([0,0]),G=A.useRef(null),M=A.useRef(null),H=a?.current||R.connected||C.domElement.parentNode,K=A.useRef(null),N=A.useRef(!1),z=A.useMemo(()=>h&&h!=="blending"||Array.isArray(h)&&h.length&&gI(h[0]),[h]);A.useLayoutEffect(()=>{const ee=C.domElement;h&&h==="blending"?(ee.style.zIndex=`${Math.floor(E[0]/2)}`,ee.style.position="absolute",ee.style.pointerEvents="none"):(ee.style.zIndex=null,ee.style.position=null,ee.style.pointerEvents=null)},[h]),A.useLayoutEffect(()=>{if(V.current){const ee=Q.current=Jy.createRoot(O);if(T.updateMatrixWorld(),u)O.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const Z=v(V.current,w,D);O.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${Z[0]}px,${Z[1]}px,0);transform-origin:0 0;`}return H&&(n?H.prepend(O):H.appendChild(O)),()=>{H&&H.removeChild(O),ee.unmount()}}},[H,u]),A.useLayoutEffect(()=>{x&&(O.className=x)},[x]);const B=A.useMemo(()=>u?{position:"absolute",top:0,left:0,width:D.width,height:D.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:s?"translate3d(-50%,-50%,0)":"none",...o&&{top:-D.height/2,left:-D.width/2,width:D.width,height:D.height},...t},[t,s,o,D,u]),F=A.useMemo(()=>({position:"absolute",pointerEvents:I}),[I]);A.useLayoutEffect(()=>{if(N.current=!1,u){var ee;(ee=Q.current)==null||ee.render(A.createElement("div",{ref:G,style:B},A.createElement("div",{ref:M,style:F},A.createElement("div",{ref:S,className:i,style:t,children:r}))))}else{var Z;(Z=Q.current)==null||Z.render(A.createElement("div",{ref:S,style:B,className:i,children:r}))}});const U=A.useRef(!0);He(ee=>{if(V.current){w.updateMatrixWorld(),V.current.updateWorldMatrix(!0,!1);const Z=u?k.current:v(V.current,w,D);if(u||Math.abs(Y.current-w.zoom)>e||Math.abs(k.current[0]-Z[0])>e||Math.abs(k.current[1]-Z[1])>e){const ne=cI(V.current,w);let ce=!1;z&&(Array.isArray(h)?ce=h.map(le=>le.current):h!=="blending"&&(ce=[T]));const me=U.current;if(ce){const le=uI(V.current,w,b,ce);U.current=le&&!ne}else U.current=!ne;me!==U.current&&(f?f(!U.current):O.style.display=U.current?"block":"none");const re=Math.floor(E[0]/2),te=h?z?[E[0],re]:[re-1,0]:E;if(O.style.zIndex=`${fI(V.current,w,te)}`,u){const[le,se]=[D.width/2,D.height/2],X=w.projectionMatrix.elements[5]*se,{isOrthographicCamera:j,top:oe,left:pe,bottom:_e,right:Ce}=w,ye=dI(w.matrixWorldInverse),Ne=j?`scale(${X})translate(${wd(-(Ce+pe)/2)}px,${wd((oe+_e)/2)}px)`:`translateZ(${X}px)`;let Te=V.current.matrixWorld;c&&(Te=w.matrixWorldInverse.clone().transpose().copyPosition(Te).scale(V.current.scale),Te.elements[3]=Te.elements[7]=Te.elements[11]=0,Te.elements[15]=1),O.style.width=D.width+"px",O.style.height=D.height+"px",O.style.perspective=j?"":`${X}px`,G.current&&M.current&&(G.current.style.transform=`${Ne}${ye}translate(${le}px,${se}px)`,M.current.style.transform=mI(Te,1/((l||10)/400)))}else{const le=l===void 0?1:hI(V.current,w)*l;O.style.transform=`translate3d(${Z[0]}px,${Z[1]}px,0) scale(${le})`}k.current=Z,Y.current=w.zoom}}if(!z&&K.current&&!N.current)if(u){if(G.current){const Z=G.current.children[0];if(Z!=null&&Z.clientWidth&&Z!=null&&Z.clientHeight){const{isOrthographicCamera:ne}=w;if(ne||p)_.scale&&(Array.isArray(_.scale)?_.scale instanceof W?K.current.scale.copy(_.scale.clone().divideScalar(1)):K.current.scale.set(1/_.scale[0],1/_.scale[1],1/_.scale[2]):K.current.scale.setScalar(1/_.scale));else{const ce=(l||10)/400,me=Z.clientWidth*ce,re=Z.clientHeight*ce;K.current.scale.set(me,re,1)}N.current=!0}}}else{const Z=O.children[0];if(Z!=null&&Z.clientWidth&&Z!=null&&Z.clientHeight){const ne=1/P.factor,ce=Z.clientWidth*ne,me=Z.clientHeight*ne;K.current.scale.set(ce,me,1),N.current=!0}K.current.lookAt(ee.camera.position)}});const J=A.useMemo(()=>({vertexShader:u?void 0:`
2
2
  /*
3
3
  This shader is from the THREE's SpriteMaterial.
4
4
  We need to turn the backing plane into a Sprite