@volter/game-editor 0.5.129 → 0.5.131
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BUNDLED_NOTICES +22 -22
- package/catalog/entries/blender.json +2 -2
- package/catalog/entries/music.json +2 -2
- package/dist/.vite/manifest.json +2170 -2170
- package/dist/assets/{AssetBudgetPanel-zU9LQz7t.js → AssetBudgetPanel-xh6RYB5z.js} +3 -3
- package/dist/assets/{AudioViewer-BuIumvS8.js → AudioViewer-CGd4BxTl.js} +1 -1
- package/dist/assets/{CanvasBoardDocument-C_hhKnYC.js → CanvasBoardDocument-BuMpc0A-.js} +1 -1
- package/dist/assets/{CanvasSceneViewport-ksSPZOlc.js → CanvasSceneViewport-DMhu11L6.js} +1 -1
- package/dist/assets/{ColorInput-CHpAb52O.js → ColorInput-BRsj_y3k.js} +1 -1
- package/dist/assets/{ColorPicker-Cj7n9Kxl.js → ColorPicker-B6-MNUDk.js} +1 -1
- package/dist/assets/{EntityModelDocument-B7Ud_279.js → EntityModelDocument-BPNraRWs.js} +1 -1
- package/dist/assets/{EnvironmentAssetDocument-yGom_45-.js → EnvironmentAssetDocument-rkElVVnV.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-Cd0MV73-.js → GameplaySessionTimeline-DBtAiEcP.js} +1 -1
- package/dist/assets/{ImageViewer-CcUUUXNJ.js → ImageViewer-g2H7nQFG.js} +1 -1
- package/dist/assets/InspectorObjectPreview-D0fjTA2p.js +1 -0
- package/dist/assets/{JsonAssetDocument-Cyahk092.js → JsonAssetDocument-DPxzhzE5.js} +1 -1
- package/dist/assets/{LiveModuleDocument-CZgNwvQy.js → LiveModuleDocument-dtJEsKe6.js} +1 -1
- package/dist/assets/{LutAssetDocument-BCbAd-Z6.js → LutAssetDocument-BdeqLBmd.js} +1 -1
- package/dist/assets/{ModelAssetDocument-DCPMNFPS.js → ModelAssetDocument-DcmhvpMz.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-Bj2wN899.js → NonThreeAuthoringBootstrap-DpCebDsm.js} +1 -1
- package/dist/assets/{Object3DDocumentToolbar-CVPoo7Ba.js → Object3DDocumentToolbar-3iQkN2n9.js} +1 -1
- package/dist/assets/Object3DDocumentViewport-B3uvK8Py.js +2 -0
- package/dist/assets/{Object3DPreview-BVbUxKmH.js → Object3DPreview-C7ZP4njx.js} +1 -1
- package/dist/assets/{OnlineAssetDetail-7a6_tNJk.js → OnlineAssetDetail-CwYCSC1S.js} +1 -1
- package/dist/assets/{PlayBar-Cmml9m77.js → PlayBar-DQt9hxF8.js} +1 -1
- package/dist/assets/{QuarksAssetDocument-Cf6ov1uz.js → QuarksAssetDocument-B14F1jGm.js} +1 -1
- package/dist/assets/{ReactCanvasControls-DlFa-ACA.js → ReactCanvasControls-C2kGgPwR.js} +1 -1
- package/dist/assets/{RootSelectionOverlay-BzYz2ob2.js → RootSelectionOverlay-yz6-YlXy.js} +1 -1
- package/dist/assets/{ShaderAssetDocument-BHIygP3B.js → ShaderAssetDocument-CM2WthyM.js} +1 -1
- package/dist/assets/{ShadowEditor-D19zHDYi.js → ShadowEditor-CLsIYscR.js} +1 -1
- package/dist/assets/{SourceAssetViewer-IiFeRSfU.js → SourceAssetViewer-CL378jDP.js} +1 -1
- package/dist/assets/StageHost-DEb3AXsp.js +2 -0
- package/dist/assets/{StoryPreviewMount-BznKUCNI.js → StoryPreviewMount-B0VNXCpC.js} +1 -1
- package/dist/assets/{ThreeBoardDocument-CKCPXwDq.js → ThreeBoardDocument-BpDQyPmr.js} +2 -2
- package/dist/assets/{ThreeIsolationSceneContent-C1beSjX3.js → ThreeIsolationSceneContent-DYnvlzc-.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-CwbFFjfw.js → ToolObject3DPreview-CvzAmxiI.js} +1 -1
- package/dist/assets/{Toolbar-9O701nY-.js → Toolbar-B8ter8wh.js} +1 -1
- package/dist/assets/{TransientHint-0ES3rCAi.js → TransientHint-CD8G5JQC.js} +1 -1
- package/dist/assets/{VideoViewer-mF9y5CJx.js → VideoViewer-BFS_jlDX.js} +1 -1
- package/dist/assets/{ViewportShadingMenu-Bl09DInq.js → ViewportShadingMenu-Cls3jchz.js} +1 -1
- package/dist/assets/{active-ingest-Lfx46SVT.js → active-ingest-ZriS4I_t.js} +2 -2
- package/dist/assets/{animation-clock-Bx0PQrFI.js → animation-clock-Brfm38Ur.js} +1 -1
- package/dist/assets/{animation-mixers.service-DBwnNdey.js → animation-mixers.service-BuvR3YiA.js} +1 -1
- package/dist/assets/{animation-timeline.utility-5scbZH3A.js → animation-timeline.utility-BQrDjQaJ.js} +1 -1
- package/dist/assets/{asset-budget-asset.menu-BAsodLrT.js → asset-budget-asset.menu-CIy2U9ES.js} +1 -1
- package/dist/assets/{asset-budget.action-BxLOHl6M.js → asset-budget.action-BfFcG_Pv.js} +1 -1
- package/dist/assets/{asset-budget.document-gEs0TFUI.js → asset-budget.document-Lu6wPf4I.js} +1 -1
- package/dist/assets/{asset-budget.menu-DLKtNhbo.js → asset-budget.menu-OxhgEttz.js} +1 -1
- package/dist/assets/{asset-editor-persistence-DMRNecs7.js → asset-editor-persistence-B9ZLULJL.js} +1 -1
- package/dist/assets/{asset-loaders-D6LJNA5m.js → asset-loaders-CjZyIn2t.js} +1 -1
- package/dist/assets/{asset-preview-DPWGMtoN.js → asset-preview-vNs8rQu7.js} +1 -1
- package/dist/assets/{audio-unlock.service-zZPU9-cJ.js → audio-unlock.service-B31EGjEK.js} +1 -1
- package/dist/assets/{audio.utility-1ayYQ4bt.js → audio.utility-CXnYeJsI.js} +1 -1
- package/dist/assets/autoplay.service-xWlK0aqA.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-z6KoQamT.js → babylon-authoring-adapter-DnkMqiIH.js} +1 -1
- package/dist/assets/{binding-resolver--K9B2aXQ.js → binding-resolver-Ox60gB2F.js} +2 -2
- package/dist/assets/{blender-node-editor.document-Cbl3oe-Y.js → blender-node-editor.document-Nc1C1NOM.js} +1 -1
- package/dist/assets/{blender-properties-tab-BjcUgPFK.js → blender-properties-tab-YjJu6VN1.js} +1 -1
- package/dist/assets/blender-runtime-host-D52Z7WD1.js +7 -0
- package/dist/assets/{blender-runtime-skin-i6pRHo_x.js → blender-runtime-skin-Dp1EUYXH.js} +40 -40
- package/dist/assets/{blender-runtime.document-iznL9OIR.js → blender-runtime.document-BeVkeGjy.js} +7 -7
- package/dist/assets/{blender-screenshot.menu-DY45gH2v.js → blender-screenshot.menu-C0-noWRV.js} +1 -1
- package/dist/assets/{blender-timeline.document-DzI6KOwi.js → blender-timeline.document-DaFb7ktE.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-CQGNL-em.js → blender-uv-editor.document-CPndwhaM.js} +1 -1
- package/dist/assets/{blender-version.status-B-cFkEmZ.js → blender-version.status-CAoqefhE.js} +1 -1
- package/dist/assets/blender.command-wi-NF5xl.js +1 -0
- package/dist/assets/{board-guides-BRZrEdtv.js → board-guides-CKUsHmXR.js} +1 -1
- package/dist/assets/{bridge.command-BJz6FKqT.js → bridge.command-D_NM2Q0z.js} +3 -3
- package/dist/assets/{browserAll-Xq6kMmyy.js → browserAll-BHRzZ7xo.js} +1 -1
- package/dist/assets/{build-player.document-G0EP4-cV.js → build-player.document-DA8AYORo.js} +1 -1
- package/dist/assets/{build-profiles.document-C0z4JBId.js → build-profiles.document-D5Rr_aiV.js} +1 -1
- package/dist/assets/{build-progress.status-ZvaZuR-0.js → build-progress.status-Dnow0Q18.js} +1 -1
- package/dist/assets/{build-session-CymiRvjZ.js → build-session-BaS8m6z_.js} +1 -1
- package/dist/assets/{build.action-BBxTsXfE.js → build.action-CQFo7UVP.js} +1 -1
- package/dist/assets/{build.command-DT_Zjx0J.js → build.command-DoLbJQKk.js} +1 -1
- package/dist/assets/{build.header-CIpUEYXT.js → build.header-C85_8qIX.js} +1 -1
- package/dist/assets/{build.menu-BlTGELsH.js → build.menu-B7R2-w0i.js} +1 -1
- package/dist/assets/{build.service-AUScoZYu.js → build.service-gi06EZaN.js} +1 -1
- package/dist/assets/{camera-_xYhs96x.js → camera-DIOsZ5V4.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-CfU1WRe7.js → camera-runtime.inspector-BjE2fAo3.js} +1 -1
- package/dist/assets/{canvas-design-mount-B1zBhn_J.js → canvas-design-mount-DxATml9D.js} +3 -3
- package/dist/assets/{canvas-entry-runtime-Cg364i6A.js → canvas-entry-runtime-F_qiHxZA.js} +2 -2
- package/dist/assets/{canvas-preview-frames-BFU7tNhh.js → canvas-preview-frames-D3X5XV18.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-5kd3Krkr.js → canvas-story-capture.service-DX04l_Qz.js} +2 -2
- package/dist/assets/{capability-coverage-rUUpSzOn.js → capability-coverage-D7oFXsIG.js} +1 -1
- package/dist/assets/{collaboration-presence-DVqUskAb.js → collaboration-presence-CNRCnlr0.js} +1 -1
- package/dist/assets/{collider-BF-ZbxHV.js → collider-QUcqLUgt.js} +1 -1
- package/dist/assets/{component-board.service-C4T_W5t7.js → component-board.service-CGHWEUtH.js} +2 -2
- package/dist/assets/{component-board.service-BcwBF-zp.js → component-board.service-Co_RPB76.js} +2 -2
- package/dist/assets/{component-board.service-Bd1jmbus.js → component-board.service-Df1ef2HX.js} +2 -2
- package/dist/assets/{component-contracts.service-Cft1sJ-Z.js → component-contracts.service-DTW5qurI.js} +1 -1
- package/dist/assets/{component-instance-root-DktYaTot.js → component-instance-root-mnaUEFAg.js} +1 -1
- package/dist/assets/{component-verbs.command-DvuK_xvY.js → component-verbs.command-q9IdgQWj.js} +1 -1
- package/dist/assets/{component-verbs.service-DjMcC9H_.js → component-verbs.service-Dnes6VyR.js} +1 -1
- package/dist/assets/{config-DlwXFlyt.js → config-BN4Lmq46.js} +2 -2
- package/dist/assets/{configurations-CNjdXyJJ.js → configurations-DY2IiXpV.js} +1 -1
- package/dist/assets/{connection.status-Cew-NIBU.js → connection.status-D7I2dgv0.js} +1 -1
- package/dist/assets/{constraints.inspector-COs-kZwV.js → constraints.inspector-DAUjo3AH.js} +1 -1
- package/dist/assets/{content-bounds-CY_M6Fwr.js → content-bounds-D4k7pAaW.js} +1 -1
- package/dist/assets/{contract-system-adapters-C1bKdaVk.js → contract-system-adapters-BprRTe1B.js} +1 -1
- package/dist/assets/{coverage.service-DyHGtZYc.js → coverage.service-BpYDL-1r.js} +1 -1
- package/dist/assets/{create-runtime-CYU9IW7x.js → create-runtime-BGvJJko5.js} +1 -1
- package/dist/assets/{curve-BF_LI3jO.js → curve-VlX4I35S.js} +1 -1
- package/dist/assets/{data-asset-D71yCsQc.js → data-asset-Dhn0-GTH.js} +1 -1
- package/dist/assets/{data-ref-DlKbKxgc.js → data-ref-VzHXG1c6.js} +1 -1
- package/dist/assets/{debug-bridge-D1LqwyHH.js → debug-bridge-Z2gRt8Zc.js} +1 -1
- package/dist/assets/{debug-registry-BFq6QR4G.js → debug-registry-BkyhbW5o.js} +1 -1
- package/dist/assets/{deferred-ingest-play-sqaLv2U9.js → deferred-ingest-play-DaWGKxqL.js} +2 -2
- package/dist/assets/{design-time-canvas-mount-Cyaec5o_.js → design-time-canvas-mount--OqF2WkK.js} +2 -2
- package/dist/assets/{design-time-layers-BmljBngv.js → design-time-layers-ClmhMEAZ.js} +1 -1
- package/dist/assets/{design-time-mount.service-DkXbIUSV.js → design-time-mount.service-Dfu_ei5E.js} +2 -2
- package/dist/assets/{design-time-mount.service-DaEQZipp.js → design-time-mount.service-HNdgYB2u.js} +2 -2
- package/dist/assets/{design-time-react-mount-DiJOqmix.js → design-time-react-mount-CE9REYmk.js} +1 -1
- package/dist/assets/{document-preview-three-BGSnBaa1.js → document-preview-three-BjLceB54.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-DeA4Bi4o.js → dom-authoring-adapter-2DC91mxf.js} +1 -1
- package/dist/assets/{draco3d-Dt3Ei-m7.js → draco3d-DIIaAJ6n.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-CwOaP-3u.js → edit-mode-audio.service-2vi4I17L.js} +1 -1
- package/dist/assets/{edit-mode-authoring-Cm2rEFlJ.js → edit-mode-authoring-BPsFGjzM.js} +1 -1
- package/dist/assets/{edit-mode-networking.service-BC5B83fD.js → edit-mode-networking.service-Xz4iej7J.js} +1 -1
- package/dist/assets/{editor-api-B0Z7yvj8.js → editor-api-BxHqt4Xt.js} +1 -1
- package/dist/assets/{editor-layers-kBpG49pG.js → editor-layers-DmUg5T3_.js} +1 -1
- package/dist/assets/{editor-shell-store-C6VYP6ve.js → editor-shell-store-DPpSNDy1.js} +1 -1
- package/dist/assets/{entity-object-DiC6cpEd.js → entity-object-D_Xp6Gb3.js} +1 -1
- package/dist/assets/{extend-DXDb7AYu.js → extend-hvT5slS9.js} +1 -1
- package/dist/assets/{fork-menu-Cleuze1z.js → fork-menu-DguGrW0h.js} +1 -1
- package/dist/assets/{frame-debugger-store-B3YeiIrp.js → frame-debugger-store-DFC83QOT.js} +1 -1
- package/dist/assets/{game-contract-seams-Cfyg896y.js → game-contract-seams-gtbmw2C5.js} +1 -1
- package/dist/assets/{game-css-scope-transform-CWJpcOFq.js → game-css-scope-transform-D8WuwFPz.js} +1 -1
- package/dist/assets/{game-document.service-Dhy_L2WU.js → game-document.service-15rgKKaG.js} +1 -1
- package/dist/assets/{game-eval.command-C14hkRIz.js → game-eval.command-yJBOJP3U.js} +1 -1
- package/dist/assets/{game-module-access-Cb0rgQXR.js → game-module-access-Ce87kvq0.js} +1 -1
- package/dist/assets/{game-network-BuhrtQlJ.js → game-network-JCyWQ_Z7.js} +3 -3
- package/dist/assets/{gameplay-export-BMmWR4qO.js → gameplay-export-CRgCGRmp.js} +1 -1
- package/dist/assets/{gameplay-replay-Cgxltc0I.js → gameplay-replay-BDCki9XM.js} +1 -1
- package/dist/assets/{gameplay.command-BXkiGrY3.js → gameplay.command-DGkj6-7b.js} +1 -1
- package/dist/assets/{generation-jobs-Dti-NsGT.js → generation-jobs-CeDZdMpJ.js} +1 -1
- package/dist/assets/{generation.service-CUqMO_sv.js → generation.service-CcyUj9tv.js} +1 -1
- package/dist/assets/{generations-CEMzKgsY.js → generations-DXSmdpTV.js} +1 -1
- package/dist/assets/{generations.status-ClObpAPX.js → generations.status-DnZmkvkf.js} +1 -1
- package/dist/assets/{hierarchy-marks-BTgoMhKJ.js → hierarchy-marks-D2716vL4.js} +1 -1
- package/dist/assets/{hosted-asset-materialization-B1rqU0R3.js → hosted-asset-materialization-CPAT5jBN.js} +1 -1
- package/dist/assets/{index-BQhQTNuj.js → index-BcKb2YwA.js} +2 -2
- package/dist/assets/{index-BTj5ZDs3.js → index-BdTSTs-f.js} +1 -1
- package/dist/assets/{index-L-eheuNN.js → index-BwKzWHt8.js} +1 -1
- package/dist/assets/{index-Bir3FN9S.js → index-C67kVNvR.js} +1 -1
- package/dist/assets/{index-BZ9SChD2.js → index-CJaJOM8e.js} +1 -1
- package/dist/assets/{index-CfVh4Js-.js → index-Cl0YIFAW.js} +1 -1
- package/dist/assets/{index-9nYTVIws.js → index-D-G1ZsCu.js} +8 -8
- package/dist/assets/{index-DmRQLG00.js → index-DhjCepUi.js} +1 -1
- package/dist/assets/{index-D8ZZhAux.js → index-yqhgogAt.js} +1 -1
- package/dist/assets/{inference-diagnostics-71A-NHW0.js → inference-diagnostics-zGUPGK9h.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-R_sgEesV.js → ingest-boot-viewport-DIg0c-U7.js} +1 -1
- package/dist/assets/{ingest-siblings-Cw0Uh18c.js → ingest-siblings-CGrE4H95.js} +1 -1
- package/dist/assets/{ingest-source-persistence-DbuTxtMu.js → ingest-source-persistence-BQO1KGrh.js} +1 -1
- package/dist/assets/{ingest.service-DLFH4vr0.js → ingest.service-BnFMUzdM.js} +1 -1
- package/dist/assets/{inspect-3o2qSIRq.js → inspect-DH57N9OW.js} +1 -1
- package/dist/assets/instances.command-RcLpbQDx.js +1 -0
- package/dist/assets/{json-history-resource-C818aJwj.js → json-history-resource-CqxeO7Gw.js} +1 -1
- package/dist/assets/{layered-pick-D9xs5s8q.js → layered-pick-DcU2SccC.js} +1 -1
- package/dist/assets/{light-DmAkSp8r.js → light-wrMW5sx4.js} +1 -1
- package/dist/assets/{live-project-verbs-E-s8WH5m.js → live-project-verbs-tgkB8w44.js} +1 -1
- package/dist/assets/{machine.document-WaAig10j.js → machine.document-Bb0luUXi.js} +1 -1
- package/dist/assets/{machines.finder-DOuT11sq.js → machines.finder-DYtkwdqr.js} +1 -1
- package/dist/assets/{material-Dmhe3uX6.js → material-BXufoiSx.js} +1 -1
- package/dist/assets/{material-factory-D2dS8Frx.js → material-factory-IKt-e70d.js} +1 -1
- package/dist/assets/{mesh-C0P0KD9j.js → mesh-DADcxLdw.js} +1 -1
- package/dist/assets/{model-asset-sections.service-DuN8nZyK.js → model-asset-sections.service-DZSSiLGM.js} +1 -1
- package/dist/assets/{model-inspection-Dys9s7L6.js → model-inspection-C2s3OYXl.js} +1 -1
- package/dist/assets/{model-thumbnail-DXupO6bI.js → model-thumbnail-D5o-4B01.js} +1 -1
- package/dist/assets/{models.finder-DVEKCOHk.js → models.finder-B95VsZ65.js} +1 -1
- package/dist/assets/{module-mode-BygBdatu.js → module-mode-CxLLk1w7.js} +2 -2
- package/dist/assets/{mount-canvas-ingest-root-Cbgn79dS.js → mount-canvas-ingest-root-CcURJlfy.js} +2 -2
- package/dist/assets/{mount-dom-ingest-root-CXQpetbD.js → mount-dom-ingest-root-vFLT2G7J.js} +2 -2
- package/dist/assets/{mount-ingest-root-DUX3GfHM.js → mount-ingest-root-BXXdHb3k.js} +2 -2
- package/dist/assets/{mount-manifest-CD7uLAam.js → mount-manifest-CFPSbrdR.js} +1 -1
- package/dist/assets/{mount-three-ingest-root-D5BUSuP1.js → mount-three-ingest-root-C7EvPLpq.js} +1 -1
- package/dist/assets/{mounted-authoring-CHg17ilK.js → mounted-authoring-JufMUAA7.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-DWvv2V1k.js → mounted-story-viewport-source-CuAqEjCt.js} +1 -1
- package/dist/assets/{native-debug-module-lQJX-160.js → native-debug-module-D0JJ27BY.js} +1 -1
- package/dist/assets/{navigation-BVBawG9W.js → navigation-D-RA7j4R.js} +1 -1
- package/dist/assets/{navmesh.menu-CJDd0N9U.js → navmesh.menu-XArlggki.js} +1 -1
- package/dist/assets/{navmesh.service-3H_AsM8V.js → navmesh.service-CEqTZDij.js} +1 -1
- package/dist/assets/network-observer.service-D8qesWFc.js +1 -0
- package/dist/assets/{network.utility-CFfOHPIO.js → network.utility-HDe8PnKF.js} +1 -1
- package/dist/assets/{object3d-document-session-registry-D6-Tfc82.js → object3d-document-session-registry-D704QLST.js} +2 -2
- package/dist/assets/{oid-transform-CS4vS_7K.js → oid-transform-DnXrIY9C.js} +1 -1
- package/dist/assets/{particles-5E9qI-gh.js → particles-BFZUclym.js} +1 -1
- package/dist/assets/{pixi-authoring-adapter-B7lzpOiN.js → pixi-authoring-adapter-Ben-hgbd.js} +1 -1
- package/dist/assets/{pixi-live-write-target-B_0mlJ-W.js → pixi-live-write-target-tWUq0M3X.js} +1 -1
- package/dist/assets/{play.command-DXwe-naC.js → play.command-D2SoCCf3.js} +2 -2
- package/dist/assets/{presentation-CNsPSm6R.js → presentation-CZFcFjRY.js} +1 -1
- package/dist/assets/{product-CGnkd6iD.js → product-CEzZzRzZ.js} +1 -1
- package/dist/assets/{profiler.action-CJgUgLVa.js → profiler.action-DYnp-dIl.js} +1 -1
- package/dist/assets/{profiler.menu-r7vS6Yo1.js → profiler.menu-CB7AUXAU.js} +1 -1
- package/dist/assets/{profiler.utility-CoHWXo_c.js → profiler.utility-CPFc55To.js} +1 -1
- package/dist/assets/{project-authoring-session-CRVFBRc-.js → project-authoring-session-DrT2qJF0.js} +2 -2
- package/dist/assets/{properties-bone-constraints.inspector-CzmVcM5s.js → properties-bone-constraints.inspector-CfRTvy5p.js} +1 -1
- package/dist/assets/{properties-bone.inspector-BZmU33Jq.js → properties-bone.inspector-54MKrR72.js} +1 -1
- package/dist/assets/{properties-collection.inspector-D5E8xv7R.js → properties-collection.inspector-O6LuSXOQ.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-m1I_6ZEe.js → properties-constraints.inspector-DffyXZKu.js} +1 -1
- package/dist/assets/{properties-data.inspector-CHYtOay1.js → properties-data.inspector-DXaxMz2Y.js} +1 -1
- package/dist/assets/{properties-material.inspector-DD3Id-bK.js → properties-material.inspector-Cho8xdBI.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-DgFoyJ9g.js → properties-modifiers.inspector-CpbbR4Om.js} +1 -1
- package/dist/assets/{properties-object.inspector-ZKMUDqDb.js → properties-object.inspector-4h6NxwoN.js} +1 -1
- package/dist/assets/{properties-output.inspector-B_EiV17y.js → properties-output.inspector-DTRZDajI.js} +1 -1
- package/dist/assets/{properties-particles.inspector-Bp5t3sG5.js → properties-particles.inspector-BHMjkBKc.js} +1 -1
- package/dist/assets/{properties-physics.inspector-BvJ6FjLW.js → properties-physics.inspector-ghuF-m6r.js} +1 -1
- package/dist/assets/{properties-render.inspector-C0HhUqJV.js → properties-render.inspector-Dfn5HEKA.js} +1 -1
- package/dist/assets/{properties-scene.inspector-DvxB8SBY.js → properties-scene.inspector-CwBfzPo2.js} +1 -1
- package/dist/assets/{properties-texture.inspector-DQK_N2p0.js → properties-texture.inspector-BMthDuQl.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-CQimDF5e.js → properties-view-layer.inspector-Chf8fDV5.js} +1 -1
- package/dist/assets/{properties-world.inspector-Cbyj1FX6.js → properties-world.inspector-CBayv6ge.js} +1 -1
- package/dist/assets/{r3f-design-session-BSfF6B87.js → r3f-design-session-CDJXwu2Y.js} +2 -2
- package/dist/assets/{r3f-physics-binding-BNfJcrsE.js → r3f-physics-binding-1iL3sKy9.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-CN3frg1s.js → r3f-source-authoring-adapter-CLuLuxlA.js} +1 -1
- package/dist/assets/{react-canvas-navigation-DdSNr1eV.js → react-canvas-navigation-CcSJcL6p.js} +1 -1
- package/dist/assets/{react-inspector.service-BbtT2HsV.js → react-inspector.service-XcygzXLc.js} +1 -1
- package/dist/assets/{react-story-board-BT9vj0hE.js → react-story-board-CDFp2Cct.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-DE67kTw9.js → react-three-rapier.esm-CxC2iZi1.js} +1 -1
- package/dist/assets/{react-world-authoring-adapter-CW_LKdTk.js → react-world-authoring-adapter-DEywdLYs.js} +1 -1
- package/dist/assets/{realm-services-NnoNrbsM.js → realm-services-beTbtAPk.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-DRvTQC2t.js → reflection-probe-capture.inspector-CT9GR2Qo.js} +1 -1
- package/dist/assets/{registry-BYs8gLgr.js → registry-vCBeP859.js} +1 -1
- package/dist/assets/{relative-import-specifier-CAVq9YAo.js → relative-import-specifier-Bjlxchbq.js} +1 -1
- package/dist/assets/{render-env-B5aBdPRW.js → render-env-DayDp_Zd.js} +1 -1
- package/dist/assets/{render-features-Dro8D2hp.js → render-features-DBROmwn2.js} +1 -1
- package/dist/assets/{render-settings-GZy83cAX.js → render-settings-B0XqOFGb.js} +1 -1
- package/dist/assets/{resolve-three-D2L9I0Oc.js → resolve-three-DnH-tIDh.js} +3 -3
- package/dist/assets/{root-seam-contract-DhJmeQCY.js → root-seam-contract-DLYN34u3.js} +1 -1
- package/dist/assets/{run-selection-BkQCgqx8.js → run-selection-Dx1BGfLg.js} +1 -1
- package/dist/assets/{scene-capture-D1HDHgUb.js → scene-capture-1PoVj5hA.js} +1 -1
- package/dist/assets/{scene-document.service-CDkhd8nL.js → scene-document.service-65WoShrF.js} +2 -2
- package/dist/assets/{scene-framing-Bib_NZz8.js → scene-framing-4WatuvlF.js} +1 -1
- package/dist/assets/{seeded-random-DfGQ6n66.js → seeded-random-fLlojV69.js} +1 -1
- package/dist/assets/{setup-renderer-ayLSJRHD.js → setup-renderer-so5gtgSO.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-B_kkT_oM.js → source-object3d-authoring-adapter-ChS2o1Xx.js} +1 -1
- package/dist/assets/{source-persistence-backend-CTvhQwDl.js → source-persistence-backend-CkyQpGrG.js} +1 -1
- package/dist/assets/{stage-keyboard-BiNmyrcC.js → stage-keyboard-CU4X2l3G.js} +1 -1
- package/dist/assets/{stage-overlay-set-DQLl2s9p.js → stage-overlay-set-ODG73EVe.js} +1 -1
- package/dist/assets/{stage-presence-markers-DfVJAOvz.js → stage-presence-markers-C9wbwDQm.js} +1 -1
- package/dist/assets/{stage-transform-tools-D31L_IPe.js → stage-transform-tools-fEMi3oOg.js} +1 -1
- package/dist/assets/{standard-viewport-dressing-KeudiGw3.js → standard-viewport-dressing-Dk02sQp6.js} +1 -1
- package/dist/assets/{state-watch.action-CPN044HT.js → state-watch.action-BjK2g-lO.js} +1 -1
- package/dist/assets/{state-watch.menu-BflRXjsh.js → state-watch.menu-C_QVBV0s.js} +1 -1
- package/dist/assets/{state-watch.utility-Bqey3wQF.js → state-watch.utility-C7fzB-_q.js} +1 -1
- package/dist/assets/{story-capture-BzPUoVSA.js → story-capture-BnEt16UU.js} +1 -1
- package/dist/assets/{story-documents-B3tO-W0D.js → story-documents-B2G2lPjd.js} +1 -1
- package/dist/assets/{story-documents.service-BT7uy424.js → story-documents.service-8P8kl4Ql.js} +1 -1
- package/dist/assets/{story-documents.service-ChxLJ279.js → story-documents.service-DQFxdJmm.js} +1 -1
- package/dist/assets/{story-media-presence-D_0fuO18.js → story-media-presence-kmZ-iwzZ.js} +1 -1
- package/dist/assets/{story-pixi-preview-DwHwBn93.js → story-pixi-preview-CtR3hhsS.js} +1 -1
- package/dist/assets/{story-presentation-CSAikKBj.js → story-presentation-BAVcRFqV.js} +1 -1
- package/dist/assets/{story-three-preview-3zJJUEeK.js → story-three-preview-D_gLQCac.js} +2 -2
- package/dist/assets/{studio-environment-8rNw9hGx.js → studio-environment-WsKE4UBz.js} +1 -1
- package/dist/assets/{surface-state-bfly5eRp.js → surface-state-ByLry0WZ.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-mk2vEFn1.js → syntactic-prop-specs-CwYOcdaw.js} +1 -1
- package/dist/assets/{team-playtest.service-BsPtBJdT.js → team-playtest.service-4LEw3aP4.js} +1 -1
- package/dist/assets/{three-Cq9i0Lo_.js → three-7K4VDgM2.js} +1 -1
- package/dist/assets/{three-authoring-adapter--CDtc-SE.js → three-authoring-adapter-C0tYXQIE.js} +1 -1
- package/dist/assets/three-authoring.service-BEtgEHMU.js +2 -0
- package/dist/assets/{three-ingest-runtime-CDzGhpUC.js → three-ingest-runtime-DxkUEyMI.js} +1 -1
- package/dist/assets/{three-integration-w-zCKW8J.js → three-integration-D9IUaLET.js} +2 -2
- package/dist/assets/three-integration.service-B-qYVbhZ.js +1 -0
- package/dist/assets/{three-projection-core-CxFDvqEe.js → three-projection-core-B2MqU5b7.js} +1 -1
- package/dist/assets/{three-state-BHy0drOJ.js → three-state-B8zvveUf.js} +1 -1
- package/dist/assets/{three-story-capture.service-D8JgsxaP.js → three-story-capture.service-WoTH2p9_.js} +2 -2
- package/dist/assets/{three-story-model-uufCdHEL.js → three-story-model-5YWSi42m.js} +1 -1
- package/dist/assets/{three-viewport-presentation-ChXzMJQZ.js → three-viewport-presentation-BGKjVpHe.js} +1 -1
- package/dist/assets/{transform-mode-request-BUc943em.js → transform-mode-request-C58tmPGV.js} +1 -1
- package/dist/assets/{transport-strip-Q1C-g9BA.js → transport-strip-B12CdJs_.js} +1 -1
- package/dist/assets/transport.header-CAZGRLxQ.js +1 -0
- package/dist/assets/{tuples-DKGWjTy0.js → tuples-fjpPndGz.js} +1 -1
- package/dist/assets/{ui-board-document-D-VnJE6m.js → ui-board-document-CJbv1DAz.js} +2 -2
- package/dist/assets/{user-data-BQR8TLTV.js → user-data-DsFa4aua.js} +1 -1
- package/dist/assets/{utility-view-state-CI8DUyub.js → utility-view-state-DyaFLM90.js} +1 -1
- package/dist/assets/{viewport-door-3sS8tuxh.js → viewport-door-BMMTgy0S.js} +1 -1
- package/dist/assets/{viewport-root-presentation-D1HAou7A.js → viewport-root-presentation-D9R2VFTh.js} +1 -1
- package/dist/assets/{viewport-surface-status-QAiH2FdR.js → viewport-surface-status-D-2SRXNb.js} +1 -1
- package/dist/assets/{webworkerAll-BsJisO83.js → webworkerAll-B7uFCDja.js} +1 -1
- package/dist/assets/{workspace-arrangement-8FYR3_fQ.js → workspace-arrangement-CRcz3K9e.js} +1 -1
- package/dist/assets/{world-documents-BIjTeJpy.js → world-documents-B4omJ1Jx.js} +1 -1
- package/dist/assets/{world-root-stage-binding-dtFvIiVe.js → world-root-stage-binding-KrsZeZnq.js} +1 -1
- package/dist/assets/{xstate-animation-binding-DCEYnnM_.js → xstate-animation-binding-DvxI3pM9.js} +1 -1
- package/dist/assets/{xstate-animation-meta-SX2VmhFE.js → xstate-animation-meta-IEXUsrpt.js} +1 -1
- package/dist-node/cli.js +16 -16
- package/package.json +16 -16
- package/dist/assets/InspectorObjectPreview-B90Vut8e.js +0 -1
- package/dist/assets/Object3DDocumentViewport-S-eokiOr.js +0 -2
- package/dist/assets/StageHost-A77nKogt.js +0 -2
- package/dist/assets/autoplay.service-DWi0mQ06.js +0 -1
- package/dist/assets/blender-runtime-host-BnaYnPbE.js +0 -7
- package/dist/assets/blender.command-DYVT6Brx.js +0 -1
- package/dist/assets/instances.command-BCLwTYAu.js +0 -1
- package/dist/assets/network-observer.service-BgHgylkf.js +0 -1
- package/dist/assets/three-authoring.service-Ckj4Lbbp.js +0 -2
- package/dist/assets/three-integration.service-CKxTNTnz.js +0 -1
- package/dist/assets/transport.header-DMkwWnDF.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{dZ as b,d_ as u,u as o,v as c,w as n,x as l,c6 as r,c5 as m,c4 as f}from"./index-
|
|
1
|
+
import{dZ as b,d_ as u,u as o,v as c,w as n,x as l,c6 as r,c5 as m,c4 as f}from"./index-D-G1ZsCu.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";const d=o({clip:n().min(1).describe("Animation clip name this child plays"),threshold:r().describe("1D/2D blend position on the primary parameter axis"),thresholdY:r().optional().describe("2D blend position on the secondary parameter axis (2D blend trees only)"),weight:r().min(0).optional().describe('Explicit weight for "direct" blend trees (ignored by 1D/2D)')}).strict(),y=o({type:l("1D").describe("Interpolates linearly between sorted children by threshold"),parameter:n().min(1).describe("Context/selector value driving the blend"),children:c(d).min(2,"1D blend tree needs at least 2 children to interpolate between")}).strict(),v=o({type:l("2D").describe("Inverse-distance-weights children by (parameter, parameterY) position"),parameter:n().min(1).describe("Primary axis context/selector value"),parameterY:n().min(1).describe("Secondary axis context/selector value"),children:c(d.extend({thresholdY:r()})).min(1,"2D blend tree needs at least 1 child")}).strict(),g=o({type:l("direct").describe("Each child has an explicit weight, normalized to sum to 1"),parameter:n().default(""),children:c(d.extend({weight:r().min(0)})).min(1,"direct blend tree needs at least 1 child")}).strict(),A=b("type",[y,v,g]);function Y(e){return e}const p=o({duration:r().min(0).default(0).describe("Seconds to blend from the previously active clip into this state on entry, applied via native `AnimationAction.crossFadeTo`/`fadeIn` (E2). 0 = instant activation, no fade."),warp:m().default(!1).describe("Passed through to AnimationAction.crossFadeTo's `warp` param — linearly warps timeScale across the two clips during the blend so differing clip lengths line up. Default false.")}).strict().describe("Blend-in/out/crossfade timing for entering this state"),x=o({include:c(n().min(1)).min(1).optional().describe("Bone/object names whose complete descendant subtrees are retained"),exclude:c(n().min(1)).min(1).optional().describe("Bone/object names whose complete descendant subtrees are removed")}).strict().refine(e=>!!(e.include?.length||e.exclude?.length),{message:"boneMask needs at least one include or exclude bone name"}).describe("Filters animation tracks by named Object3D/Bone subtrees"),h={layer:n().min(1).optional().describe("Composition layer name; omitted means the single base layer"),weight:r().min(0).max(1).optional().describe("Layer weight multiplier from 0 to 1; defaults to 1"),blendMode:f(["override","additive"]).optional().describe("Native Three normal/override or additive action blending; defaults to override"),boneMask:x.optional().describe("Optional include/exclude filter applied to every clip track in this state")},w=o({clip:n().min(1).describe("Single clip to play while this XState state is active"),loop:m().default(!0).describe("Loop the clip (THREE.LoopRepeat) vs play once (THREE.LoopOnce, clamped on last frame)"),speed:r().positive().default(1).describe("Playback speed multiplier (AnimationAction.timeScale)"),crossfade:p.optional(),...h}).strict(),S=o({blendTree:A.describe("Multiple clips blended by a live context/selector-driven parameter"),crossfade:p.optional(),...h}).strict(),D=u([w,S]);function M(e){return"clip"in e}function $(e){return"blendTree"in e}class T extends Error{constructor(a,i,t){super(a),this.stateId=i,this.issues=t,this.name="AnimationMetaValidationError"}}function B(e,a){const i=D.safeParse(a);if(!i.success){const t=i.error.issues.map(s=>`${s.path.length?s.path.join("."):"(root)"}: ${s.message}`).join("; ");throw new T(`[xstate-animation] invalid meta.animation for state "${e}": ${t}`,e,i.error.issues)}return i.data}function R(e){const a=[],i=t=>{t.meta&&"animation"in t.meta&&t.meta.animation!==void 0&&a.push({stateId:t.id,meta:B(t.id,t.meta.animation)});for(const s of Object.values(t.states??{}))i(s)};return i(e),a}function H(e){return M(e)?[e.clip]:e.blendTree.children.map(a=>a.clip)}export{A as AnimationBlendTreeSchema,T as AnimationMetaValidationError,D as StateAnimationMetaSchema,Y as asBlendTreeDef,H as clipNamesOf,R as collectMachineAnimationMeta,$ as isBlendTreeAnimationMeta,M as isClipAnimationMeta,B as parseStateAnimationMeta};
|
package/dist-node/cli.js
CHANGED
|
@@ -2316,7 +2316,7 @@ import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
|
2316
2316
|
var package_default = {
|
|
2317
2317
|
name: "@volter/game-editor",
|
|
2318
2318
|
author: "Volter AI, Inc.",
|
|
2319
|
-
version: "0.5.
|
|
2319
|
+
version: "0.5.131",
|
|
2320
2320
|
publishConfig: {
|
|
2321
2321
|
access: "public"
|
|
2322
2322
|
},
|
|
@@ -2365,22 +2365,22 @@ var package_default = {
|
|
|
2365
2365
|
}
|
|
2366
2366
|
},
|
|
2367
2367
|
dependencies: {
|
|
2368
|
-
"@volter/editor-core": "0.5.
|
|
2369
|
-
"@volter/editor-game": "0.5.
|
|
2370
|
-
"@volter/editor-react": "0.5.
|
|
2371
|
-
"@volter/editor-threejs": "0.5.
|
|
2372
|
-
"@volter/editor-xstate": "0.5.
|
|
2373
|
-
"@volter/editor-blender": "0.1.
|
|
2374
|
-
"@volter/dawproject": "0.5.
|
|
2375
|
-
"@volter/editor-dawproject": "0.5.
|
|
2376
|
-
"@volter/blender-engine": "0.1.
|
|
2377
|
-
"@volter/editor-project": "0.5.
|
|
2378
|
-
"@volter/editor-sdk": "0.5.
|
|
2379
|
-
"@volter/editor-live": "0.5.
|
|
2380
|
-
"@volter/game-live": "0.5.
|
|
2368
|
+
"@volter/editor-core": "0.5.131",
|
|
2369
|
+
"@volter/editor-game": "0.5.131",
|
|
2370
|
+
"@volter/editor-react": "0.5.131",
|
|
2371
|
+
"@volter/editor-threejs": "0.5.131",
|
|
2372
|
+
"@volter/editor-xstate": "0.5.131",
|
|
2373
|
+
"@volter/editor-blender": "0.1.71",
|
|
2374
|
+
"@volter/dawproject": "0.5.131",
|
|
2375
|
+
"@volter/editor-dawproject": "0.5.131",
|
|
2376
|
+
"@volter/blender-engine": "0.1.69",
|
|
2377
|
+
"@volter/editor-project": "0.5.131",
|
|
2378
|
+
"@volter/editor-sdk": "0.5.131",
|
|
2379
|
+
"@volter/editor-live": "0.5.131",
|
|
2380
|
+
"@volter/game-live": "0.5.131",
|
|
2381
2381
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
2382
|
-
"@volter/game-runtime": "0.5.
|
|
2383
|
-
"@volter/threejs-runtime": "0.5.
|
|
2382
|
+
"@volter/game-runtime": "0.5.131",
|
|
2383
|
+
"@volter/threejs-runtime": "0.5.131",
|
|
2384
2384
|
undici: "7.29.1",
|
|
2385
2385
|
typescript: "5.9.3",
|
|
2386
2386
|
"@colyseus/schema": "^4.0.14",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volter/game-editor",
|
|
3
3
|
"author": "Volter AI, Inc.",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.131",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -50,22 +50,22 @@
|
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@volter/editor-core": "0.5.
|
|
54
|
-
"@volter/editor-game": "0.5.
|
|
55
|
-
"@volter/editor-react": "0.5.
|
|
56
|
-
"@volter/editor-threejs": "0.5.
|
|
57
|
-
"@volter/editor-xstate": "0.5.
|
|
58
|
-
"@volter/editor-blender": "0.1.
|
|
59
|
-
"@volter/dawproject": "0.5.
|
|
60
|
-
"@volter/editor-dawproject": "0.5.
|
|
61
|
-
"@volter/blender-engine": "0.1.
|
|
62
|
-
"@volter/editor-project": "0.5.
|
|
63
|
-
"@volter/editor-sdk": "0.5.
|
|
64
|
-
"@volter/editor-live": "0.5.
|
|
65
|
-
"@volter/game-live": "0.5.
|
|
53
|
+
"@volter/editor-core": "0.5.131",
|
|
54
|
+
"@volter/editor-game": "0.5.131",
|
|
55
|
+
"@volter/editor-react": "0.5.131",
|
|
56
|
+
"@volter/editor-threejs": "0.5.131",
|
|
57
|
+
"@volter/editor-xstate": "0.5.131",
|
|
58
|
+
"@volter/editor-blender": "0.1.71",
|
|
59
|
+
"@volter/dawproject": "0.5.131",
|
|
60
|
+
"@volter/editor-dawproject": "0.5.131",
|
|
61
|
+
"@volter/blender-engine": "0.1.69",
|
|
62
|
+
"@volter/editor-project": "0.5.131",
|
|
63
|
+
"@volter/editor-sdk": "0.5.131",
|
|
64
|
+
"@volter/editor-live": "0.5.131",
|
|
65
|
+
"@volter/game-live": "0.5.131",
|
|
66
66
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
67
|
-
"@volter/game-runtime": "0.5.
|
|
68
|
-
"@volter/threejs-runtime": "0.5.
|
|
67
|
+
"@volter/game-runtime": "0.5.131",
|
|
68
|
+
"@volter/threejs-runtime": "0.5.131",
|
|
69
69
|
"undici": "7.29.1",
|
|
70
70
|
"typescript": "5.9.3",
|
|
71
71
|
"@colyseus/schema": "^4.0.14",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as t}from"./jsx-runtime-DPjLkJKQ.js";import{Object3DSnapshotDocument as m}from"./EntityModelDocument-B7Ud_279.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./editor-shell-store-C6VYP6ve.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./Pass-D1MRT672.js";import"./editor-layers-kBpG49pG.js";import"./workspace-arrangement-8FYR3_fQ.js";import"./index-9nYTVIws.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./user-data-BQR8TLTV.js";import"./entity-object-DiC6cpEd.js";import"./three-contract-Dkt6PmWY.js";import"./live-mixers-B-bwLZ7c.js";import"./asset-preview-DPWGMtoN.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-BTgoMhKJ.js";import"./studio-environment-8rNw9hGx.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./bitmap-label-Ct4k6ehY.js";import"./StageHost-A77nKogt.js";import"./three-state-BHy0drOJ.js";import"./standard-viewport-dressing-KeudiGw3.js";import"./content-bounds-CY_M6Fwr.js";import"./preview-renderer-BrYNFV1p.js";import"./live-gesture-lock-DJbrjOqf.js";import"./three-integration-w-zCKW8J.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-D9xs5s8q.js";import"./root-stacking-BEd9ZvxC.js";import"./model-thumbnail-DXupO6bI.js";import"./object3d-document-session-registry-D6-Tfc82.js";import"./component-instance-root-DktYaTot.js";import"./viewport-door-3sS8tuxh.js";import"./model-inspection-Dys9s7L6.js";import"./three-viewport-presentation-ChXzMJQZ.js";import"./clip-planes-CnAI6DZn.js";import"./three-Cq9i0Lo_.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./scene-framing-Bib_NZz8.js";import"./source-object3d-authoring-adapter-B_kkT_oM.js";import"./three-projection-core-CxFDvqEe.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-Q1C-g9BA.js";import"./viewport-surface-status-QAiH2FdR.js";function ut({previewKey:o,object:r,displayName:i,fill:p=!1}){return t.jsx("div",{"data-testid":"inspector-object-preview",style:p?{position:"absolute",inset:0,overflow:"hidden"}:{width:"100%",height:220,minHeight:220,borderBottom:"1px solid var(--volter-structural-divider)",overflow:"hidden",position:"relative"},children:t.jsx(m,{documentId:`inspector-preview:${o}`,source:r,displayName:i,active:!0,chromeless:!0})})}export{ut as InspectorObjectPreview};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/StageHost-A77nKogt.js","assets/index-9nYTVIws.js","assets/index-nmcBqr7Y.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-D_NuPfjr.js","assets/jsx-runtime-DPjLkJKQ.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/three-state-BHy0drOJ.js","assets/editor-shell-store-C6VYP6ve.js","assets/output-pass-HurwNl0G.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/Pass-D1MRT672.js","assets/editor-layers-kBpG49pG.js","assets/workspace-arrangement-8FYR3_fQ.js","assets/user-data-BQR8TLTV.js","assets/entity-object-DiC6cpEd.js","assets/three-contract-Dkt6PmWY.js","assets/standard-viewport-dressing-KeudiGw3.js","assets/content-bounds-CY_M6Fwr.js","assets/hierarchy-marks-BTgoMhKJ.js","assets/environment-Dg-YaLsA.js","assets/RoomEnvironment-BkknvS_I.js","assets/EXRLoader-CITMBvGd.js","assets/HDRLoader-BTGuGhVo.js","assets/preview-renderer-BrYNFV1p.js","assets/renderer-ownership-BovSEcLv.js","assets/live-mixers-B-bwLZ7c.js","assets/live-gesture-lock-DJbrjOqf.js","assets/three-integration-w-zCKW8J.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/layered-pick-D9xs5s8q.js","assets/root-stacking-BEd9ZvxC.js","assets/model-thumbnail-DXupO6bI.js","assets/studio-environment-8rNw9hGx.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/object3d-document-session-registry-D6-Tfc82.js","assets/component-instance-root-DktYaTot.js","assets/viewport-door-3sS8tuxh.js","assets/asset-preview-DPWGMtoN.js","assets/bitmap-label-Ct4k6ehY.js","assets/model-inspection-Dys9s7L6.js","assets/three-viewport-presentation-ChXzMJQZ.js","assets/clip-planes-CnAI6DZn.js","assets/three-Cq9i0Lo_.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/OrbitControls-B13MKuwC.js","assets/LineSegments2-DN9pUfWA.js","assets/three.quarks.esm-C_HmSKXo.js","assets/scene-framing-Bib_NZz8.js","assets/source-object3d-authoring-adapter-B_kkT_oM.js","assets/three-projection-core-CxFDvqEe.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/transport-strip-Q1C-g9BA.js","assets/viewport-surface-status-QAiH2FdR.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{ak as r,_ as a}from"./index-9nYTVIws.js";import{a as o}from"./jsx-runtime-DPjLkJKQ.js";import{r as n}from"./index-nmcBqr7Y.js";import{V as c,O as u}from"./viewport-surface-status-QAiH2FdR.js";const s=n.lazy(async()=>({default:(await a(()=>import("./StageHost-A77nKogt.js").then(e=>e.S),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60]))).Object3DDocumentViewport}));function l(t){return i(t.documentId,t.chromeless),o.jsx(n.Suspense,{fallback:o.jsx(c,{testId:"object3d-document-loading",children:u}),children:o.jsx(s,{...t})})}function i(t,e=!1){n.useEffect(()=>{if(!e)return r(t)},[t,e])}export{l as O};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DHhMOs_s.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/stage-transform-tools-D31L_IPe.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-9nYTVIws.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/editor-shell-store-C6VYP6ve.js","assets/output-pass-HurwNl0G.js","assets/Pass-D1MRT672.js","assets/editor-layers-kBpG49pG.js","assets/workspace-arrangement-8FYR3_fQ.js","assets/user-data-BQR8TLTV.js","assets/entity-object-DiC6cpEd.js","assets/three-contract-Dkt6PmWY.js","assets/Toolbar-9O701nY-.js","assets/transform-mode-request-BUc943em.js","assets/three-state-BHy0drOJ.js","assets/standard-viewport-dressing-KeudiGw3.js","assets/content-bounds-CY_M6Fwr.js","assets/hierarchy-marks-BTgoMhKJ.js","assets/environment-Dg-YaLsA.js","assets/RoomEnvironment-BkknvS_I.js","assets/EXRLoader-CITMBvGd.js","assets/HDRLoader-BTGuGhVo.js","assets/preview-renderer-BrYNFV1p.js","assets/renderer-ownership-BovSEcLv.js","assets/live-mixers-B-bwLZ7c.js","assets/live-gesture-lock-DJbrjOqf.js","assets/three-integration-w-zCKW8J.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/layered-pick-D9xs5s8q.js","assets/root-stacking-BEd9ZvxC.js","assets/model-thumbnail-DXupO6bI.js","assets/studio-environment-8rNw9hGx.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/object3d-document-session-registry-D6-Tfc82.js","assets/component-instance-root-DktYaTot.js","assets/viewport-door-3sS8tuxh.js","assets/asset-preview-DPWGMtoN.js","assets/bitmap-label-Ct4k6ehY.js","assets/model-inspection-Dys9s7L6.js","assets/three-viewport-presentation-ChXzMJQZ.js","assets/clip-planes-CnAI6DZn.js","assets/three-Cq9i0Lo_.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/OrbitControls-B13MKuwC.js","assets/LineSegments2-DN9pUfWA.js","assets/three.quarks.esm-C_HmSKXo.js","assets/scene-framing-Bib_NZz8.js","assets/source-object3d-authoring-adapter-B_kkT_oM.js","assets/three-projection-core-CxFDvqEe.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/transport-strip-Q1C-g9BA.js","assets/viewport-surface-status-QAiH2FdR.js","assets/stage-overlay-set-DQLl2s9p.js","assets/TransientHint-0ES3rCAi.js","assets/ViewportShadingMenu-Bl09DInq.js","assets/stage-keyboard-BiNmyrcC.js","assets/camera-authoring-DYjhU5Zp.js","assets/stage-presence-markers-DfVJAOvz.js","assets/collaboration-presence-DVqUskAb.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{kQ as xr,ln as ur,kX as Ue,Z as as,eX as Hn,lt as Bn,_ as Je,G as zn,lu as _n,j1 as $s,bw as Ke,aM as Fe,a7 as xe,bz as Wn,bN as In,a6 as qe,lv as Nn,bP as $n,de as Gn,aL as cs,df as ls,lw as Gs,lx as Un,iX as qn,bq as mr,br as us,bs as Ze,al as Qe,er as Xn,ly as Yn,lz as Kn,a8 as Se,ak as Zn,lA as Qn,lB as Jn,lC as ei,lD as ti,lE as ri,hl as si,lF as ni,b5 as ii,lG as Us,aQ as oi,gM as ai,lH as hs,lI as ds,lJ as ps,b1 as fs,kP as ms,fC as gs,lK as ci,F as li,bu as ui,bt as vs,lL as hi,bK as di,j4 as pi,gm as ws,lM as fi,lN as mi,lO as gi,hg as vi,dI as wi,kY as bi,kO as yi,fX as Si,gg as xi,lP as bs,B as Pi,lQ as Ci,bR as ki}from"./index-9nYTVIws.js";import{a as d}from"./jsx-runtime-DPjLkJKQ.js";import{t as gr,a as Ei}from"./three-state-BHy0drOJ.js";import{i as H,b as Mi,a as Oi,w as Ri,c as ji,s as ys}from"./standard-viewport-dressing-KeudiGw3.js";import{r as f}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{a as vr}from"./content-bounds-CY_M6Fwr.js";import{EDITOR_LAYER as qs,isInEditorOwnedSubtree as Ti}from"./editor-layers-kBpG49pG.js";import{createStandardEnvironment as Vi}from"./environment-Dg-YaLsA.js";import{a as Ai}from"./preview-renderer-BrYNFV1p.js";import{s as Xs}from"./user-data-BQR8TLTV.js";import{s as Li,a as Fi}from"./live-mixers-B-bwLZ7c.js";import{n as Di,bh as Ft,N as Ys,M as Ks,dg as Zs,df as Qs,fo as B,_ as be,d5 as wr,d9 as Hi,L as Ss,I as br,ez as Bi,dp as xs,cj as yr,em as zi,cp as _i,c0 as Wi,aO as Ii,bX as Ni,fx as Ps,bi as $i,eu as Gi,cg as we,T as Ui,ej as Js,el as en,A as qi,d7 as Xi,eW as Cs,fd as ut,e6 as ks,cm as Es}from"./three.core-3arARmh6.js";import{l as Yi,w as Ki}from"./live-gesture-lock-DJbrjOqf.js";import{v as Zi}from"./output-pass-HurwNl0G.js";import{V as Qi,a as Ji}from"./three-integration-w-zCKW8J.js";import{a as De}from"./three-contract-Dkt6PmWY.js";import{d as Dt,f as eo}from"./model-inspection-Dys9s7L6.js";import{c as to,p as Lt,d as Ms,i as Os,r as ro,b as so,a as no,t as Rs,s as js,C as io,e as oo,f as ao,E as co}from"./three-viewport-presentation-ChXzMJQZ.js";import{s as Sr}from"./workspace-arrangement-8FYR3_fQ.js";import{a as lo,b as uo,L as ho}from"./LineSegments2-DN9pUfWA.js";import{s as po,o as fo,a as mo,b as go}from"./object3d-document-session-registry-D6-Tfc82.js";import{S as vo}from"./source-object3d-authoring-adapter-B_kkT_oM.js";import{s as wo,i as hr}from"./editor-presentation-activity-CqJH4G9t.js";import{r as Ts,c as Vs}from"./viewport-door-3sS8tuxh.js";import{T as bo}from"./transport-strip-Q1C-g9BA.js";import{V as yo,O as So}from"./viewport-surface-status-QAiH2FdR.js";import{t as tn}from"./editor-shell-store-C6VYP6ve.js";const rn=30;function sn(n,e,t){return n<e?e:n>t?t:n}function xo(n,e){const t=n.animations;if(t.length===0)return null;const s=new Di(n);let i=t[0];if(!i)return null;const a=o=>{s.stopAllAction();const u=s.clipAction(o);u.paused=!1,u.play(),i=o};a(i);const c=e.attach({id:n.uuid,label:n.name||i.name||"Clip",range:()=>({start:0,end:i?.duration??0,fps:rn}),seek:o=>{s.setTime(sn(o,0,i?.duration??0))},clips:()=>t.map(o=>({id:o.name,label:o.name})),setClip:o=>{const u=t.find(p=>p.name===o);u&&a(u)}});return()=>{c(),s.stopAllAction(),s.uncacheRoot(n)}}function Po(n,e){const t=Fi(n);if(!t)return null;let s=t.clips.values().next().value;if(!s)return null;const i=c=>{t.mixer.stopAllAction();const o=t.mixer.clipAction(c);o.paused=!1,o.play(),s=c};return e.attach({id:n.uuid,label:n.name||s.name||"Animation",range:()=>({start:0,end:s?.duration??0,fps:rn}),seek:c=>{t.mixer.setTime(sn(c,0,s?.duration??0))},clips:()=>[...t.clips.entries()].map(([c,o])=>({id:c,label:o.name||c})),setClip:c=>{const o=t.clips.get(c);o&&i(o)}})}function As(n,e,t={}){const s=new Map,i=()=>{const o=new Set;(typeof n=="function"?n():n)?.traverse(p=>{if(s.has(p.uuid)){o.add(p.uuid);return}const C=Po(p,e)??xo(p,e);C&&(s.set(p.uuid,C),o.add(p.uuid))});for(const[p,C]of[...s])o.has(p)||(C(),s.delete(p))};i();const a=t.rescanOnLiveMixers,c=a?Li(()=>{a()&&i()}):()=>{};return{refresh:i,dispose:()=>{c();for(const o of s.values())o();s.clear()}}}const je=()=>globalThis.performance?.now()??Date.now();function Co(n,e){return n.length===0?0:n[Math.min(n.length-1,Math.floor((n.length-1)*e))]??0}function ko(n=!1){const e=new Set,t=[],s=new Map,i=new Map,a=new Map;let c=[],o=[],u=n,p=!1,C=!1,w=0,P=0,S=0;const I=[];let z=0,E=0,k={gpuMs:null,drawCalls:0,triangles:0,geometries:0,textures:0,renderPasses:null},N={enabled:u,recording:C,fps:0,cpuMs:0,p95Ms:0,p99Ms:0,frames:[],phases:[],systems:[],components:[],render:k};function Q(){const y=t.at(-1),U=t.slice();let _;const Y=F=>(_??=U.map(Z=>Z.intervalMs).filter(Z=>Z>0).sort((Z,V)=>Z-V),Co(_,F));N={enabled:u,recording:C,fps:y?.intervalMs?1e3/y.intervalMs:0,cpuMs:y?.cpuMs??0,get p95Ms(){return Y(.95)},get p99Ms(){return Y(.99)},frames:U,phases:y?.phases??[],systems:[...i].map(([F,Z])=>({name:F,ms:Z})).sort((F,Z)=>Z.ms-F.ms),components:[...a].map(([F,Z])=>({name:F,ms:Z})).sort((F,Z)=>Z.ms-F.ms),render:k};for(const F of e)F()}return{get enabled(){return u},set enabled(y){u!==y&&(u=y,y&&!p&&(S=0),Q())},get telemetryEnabled(){return p},set telemetryEnabled(y){if(p===y)return;const U=!u&&!p;p=y,y&&U&&(S=0),Q()},get recording(){return C},startRecording(){const y=!u&&!p;u=!0,y&&(S=0),C=!0,t.length=0,Q()},stopRecording(){C=!1,Q()},clear(){t.length=0,Q()},beginFrame(){!u&&!p||(s.clear(),i.clear(),a.clear(),c=[],o=[],I.length=0,k={gpuMs:null,drawCalls:0,triangles:0,geometries:0,textures:0,renderPasses:null},P=je())},beginPhase(){u&&I.push(je())},endPhase(y){if(!u)return;const U=I.pop()??P,_=je()-U,Y=s.get(y);s.set(y,{ms:(Y?.ms??0)+_,startMs:Y?.startMs??U-P}),C&&performance.measure(`volter.phase.${y}`,{start:U,duration:_})},systemObserver:{beginSystem(){u&&(z=je())},endSystem(y,U,_){if(!u)return;const Y=je(),F=`${y} / ${U} / ${_}`;i.set(F,(i.get(F)??0)+Y-z),c.push({name:F,phase:U,startMs:z-P,ms:Y-z})}},beginComponent(){C&&(E=je())},endComponent(y,U=""){if(!C)return;const _=je();a.set(y,(a.get(y)??0)+_-E),o.push({name:y,phase:U,startMs:E-P,ms:_-E})},reportRender(y){u&&(k={gpuMs:y.gpuMs??k.gpuMs,drawCalls:k.drawCalls+y.drawCalls,triangles:k.triangles+y.triangles,geometries:k.geometries+y.geometries,textures:k.textures+y.textures,renderPasses:y.renderPasses===void 0?k.renderPasses:(k.renderPasses??0)+y.renderPasses})},endFrame(){if(!u&&!p)return;const y=je(),U=S===0?0:P-S;S=P;const _={id:++w,timestamp:y,intervalMs:U,cpuMs:y-P,phases:[...s].map(([Y,{ms:F,startMs:Z}])=>({name:Y,ms:F,startMs:Z})).sort((Y,F)=>F.ms-Y.ms),systems:c.slice(),components:o.slice(),render:{...k}};t.push(_),t.length>600&&t.splice(0,t.length-600),C&&performance.measure("volter.frame",{start:P,duration:_.cpuMs}),Q()},subscribe(y){return e.add(y),()=>{e.delete(y)}},getSnapshot(){return N},exportJSON(){return JSON.stringify({version:2,capturedAt:new Date().toISOString(),frames:t},null,2)}}}class Eo extends Ft{constructor(e,t){super(),this.bones=e;const s=new Set;for(const o of e){const u=o.parent;u?.isBone&&this.addSegment(u,o,s);for(const p of o.children)p.isBone&&this.addSegment(o,p,s)}this.linePositions=new Float32Array(Math.max(this.segments.length*6,6));const i=new lo;i.setPositions(this.linePositions),this.lineMaterial=new uo({color:t,linewidth:5,worldUnits:!1,depthTest:!1,depthWrite:!1,toneMapped:!1,alphaToCoverage:!0}),this.lines=new ho(i,this.lineMaterial),this.lines.onBeforeRender=o=>{o.getSize(this.lineMaterial.resolution)},this.lines.frustumCulled=!1,this.lines.renderOrder=1001,this.add(this.lines),this.pointPositions=new Float32Array(Math.max(e.length*3,3));const a=new Ys;a.setAttribute("position",new Ks(this.pointPositions,3));const c=new Zs({color:t,size:11,sizeAttenuation:!1,depthTest:!1,depthWrite:!1,toneMapped:!1});this.points=new Qs(a,c),this.points.frustumCulled=!1,this.points.renderOrder=1002,this.add(this.points),this.name="__object3d_document_bone_selection",Sr(this,"editorHelper",!0),this.traverse(o=>o.layers.set(qs)),this.update()}segments=[];linePositions;pointPositions;lines;lineMaterial;points;worldPosition=new B;setColor(e){this.lineMaterial.color.setHex(e),this.points.material.color.setHex(e)}update(){let e=0;for(const[i,a]of this.segments)i.getWorldPosition(this.worldPosition),this.linePositions.set(this.worldPosition.toArray(),e),a.getWorldPosition(this.worldPosition),this.linePositions.set(this.worldPosition.toArray(),e+3),e+=6;const t=this.lines.geometry.getAttribute("instanceStart");t&&(t.data.needsUpdate=!0),e=0;for(const i of this.bones)i.getWorldPosition(this.worldPosition),this.pointPositions.set(this.worldPosition.toArray(),e),e+=3;const s=this.points.geometry.getAttribute("position");s&&(s.needsUpdate=!0)}dispose(){this.lines.geometry.dispose(),this.lineMaterial.dispose(),this.points.geometry.dispose(),this.points.material.dispose()}addSegment(e,t,s){const i=`${e.uuid}:${t.uuid}`;s.has(i)||(s.add(i),this.segments.push([e,t]))}}const Mo="skeletons",dr=new be(58879),pr=new be(16756736);function Oo(n){const e=n.geometry.getAttribute("color");for(let s=0;s<e.count;s+=2)e.setXYZ(s,dr.r,dr.g,dr.b),s+1<e.count&&e.setXYZ(s+1,pr.r,pr.g,pr.b);e.needsUpdate=!0,n.renderOrder=999;const t=n.material;t.depthTest=!1,t.depthWrite=!1,t.toneMapped=!1,Sr(n,"editorHelper",!0),Sr(n,"editorHelperType",Mo),n.traverse(s=>s.layers.set(qs))}const Ro=1,jo=700,To=.001,Vo=Math.PI-.001,Ao=n=>n<.5?4*n*n*n:1-(-2*n+2)**3/2,Lo=n=>n;function Xe(n,e){return typeof n=="number"&&Number.isFinite(n)?n:e}const Ls={mode:"solid",background:"neutral",projection:"perspective",skeleton:!1,bounds:!1},Fs=1119773;class Fo{constructor(e,t,s,i,a,c,o=new be(2106410),u=null){this.documentId=e,this.root=t,this.scene=s,this.renderer=i,this.viewport=a,this.authoring=c,this.neutralBackground=o,this.frameBox=u,this.unsubscribeSelectionTheme=xr(i.domElement,this.syncSelectionTheme),a.orbitControls.addEventListener("start",this.cancelLookForHuman),this.unsubscribeRotateStart=a.onRotateStart(this.autoPerspective),this.unsubscribeAxisView=a.onAxisView(this.axisView)}profiler=ko();shading=new Qi;helpers=[];skeletonHelper=null;boundsHelper=null;boneSelectionHighlight=null;boneSelectionSignature="";composer=null;composerLoading=!1;disposed=!1;sceneRenderPass=null;selectionOutline=null;selectionOutlinePass=null;selectedObjects=[];selectionOrigins=null;renderWidth=1;renderHeight=1;orthographicCamera=new wr;captureAspect=null;cameraOverride=null;cameraViewSource=null;through=null;leaving=!1;viewMemo=null;throughPerspective=new Hi;throughOrthographic=new wr;beforeRender=null;state=Ls;version=0;listeners=new Set;unsubscribeSelectionTheme=()=>{};flight=null;flightPose=new B;topologyOverlay=null;topologyFollowers=[];unsubscribeRotateStart;unsubscribeAxisView;axisView=()=>(this.leaveCameraView(!1),this.settleFlight("superseded"),ur().autoPerspective&&this.setProjection("orthographic"),!0);autoPerspective=()=>{if(!ur().autoPerspective||this.cameraView()!==null||this.state.projection!=="orthographic")return;const e=this.viewport.camera,t=e.position.clone().sub(this.viewport.orbitControls.target),s=new B(0,1,0).applyQuaternion(e.quaternion);Dt(t,s)!==null&&this.setProjection("perspective")};replaceContent(e,t){H(),this.selectionOutline?.selection.clear(),this.selectedObjects=[],this.boneSelectionSignature="",this.clearBoneSelectionHighlight(),this.clearSkeletonHelper(),this.clearBoundsHelper(),this.clearTopologyOverlay(),this.root=e,this.authoring=t,this.state.mode==="wireframe"&&this.buildTopologyOverlay(),this.state.bounds&&(this.boundsHelper=new Ss(e,16757844),this.addHelper(this.boundsHelper,"bounds")),this.syncSelectionPresentation(),this.refreshSkeletonHelper(),this.notify()}cancelLookForHuman=()=>{this.settleFlight("human")};selectionColors=null;syncSelectionTheme=()=>{this.selectionColors=Ue(this.renderer.domElement);const e=this.selectionColors.visible;this.selectionOutline&&to(this.selectionOutline,Ue(this.renderer.domElement)),this.boneSelectionHighlight?.setColor(e)};subscribe=e=>(this.listeners.add(e),()=>this.listeners.delete(e));getSnapshot=()=>this.version;presentation(){return this.state}resolveFrameBounds(e="selection"){const t=e==="all"?[]:this.authoring?.selection?.get()??[];if(t.length>0){const s=new br;let i=!1;for(const a of t){const c=this.authoring?De(this.authoring.hierarchy,a):null;if(!c)continue;const o=vr(c);o.isEmpty()||(s.union(o),i=!0)}if(i)return s}return this.frameBox&&!this.frameBox.isEmpty()?this.frameBox:vr(this.root)}frame(e=1,t="selection"){this.leaveCameraView(!1);const s=this.resolveFrameBounds(t);if(s.isEmpty()){let u=0,p=0;return this.root.traverse(C=>{const w=C.geometry;w&&(u+=1,p+=w.getAttribute("position")?.count??0)}),as.warn(`frame: nothing to frame — root "${this.root.name}" (${this.root.children.length} children, ${u} meshes, ${p} positions), selection ${JSON.stringify(this.authoring?.selection?.get()??[])}, frameBox ${this.frameBox?this.frameBox.isEmpty()?"empty":"set":"none"}`,"document"),!1}this.settleFlight("superseded");const i=s.getCenter(new B),a=this.viewport.camera.position.clone().sub(this.viewport.orbitControls.target).normalize();a.lengthSq()===0&&a.set(.8,.5,-1).normalize();const c=Math.min(10,Math.max(.1,Xe(e,1))),o=Lt(s,this.viewport.camera,a)*c;return this.viewport.setPose(i.clone().addScaledVector(a,o),i),!0}orbit(e){return this.launchFlight(Xe(e.azimuth,0),Xe(e.elevation,0),Math.min(60,Math.max(0,Xe(e.duration,.6))),Ao)}turntable(e){const t=Xe(e.revolutions,1);return this.launchFlight(t*Math.PI*2,0,Math.min(60,Math.max(0,Xe(e.seconds,6))),Lo)}looking(){return this.flight!==null}launchFlight(e,t,s,i){this.settleFlight("superseded");const a=this.viewport.camera,c=this.viewport.orbitControls.target.clone(),o=new Bi().setFromVector3(a.position.clone().sub(c)),u=o.radius>1e-4?o.radius:Math.max(this.resolveFrameBounds().getSize(new B).length(),1),p={pivot:c,radius:u,startTheta:o.theta,startPhi:o.phi,deltaTheta:e,deltaPhi:-t,duration:s,ease:i,elapsed:0,theta:o.theta,phi:o.phi,settle:null};this.flight=p;const C=new Promise(w=>{p.settle=w});return this.applyFlightPose(p,0),s<=0&&this.settleFlight(null),C}applyFlightPose(e,t){const s=e.ease(t);e.theta=e.startTheta+e.deltaTheta*s,e.phi=Math.min(Vo,Math.max(To,e.startPhi+e.deltaPhi*s));const i=this.viewport.camera;i.position.setFromSphericalCoords(e.radius,e.phi,e.theta).add(e.pivot),this.viewport.orbitControls.target.copy(e.pivot),i.lookAt(e.pivot),i.updateMatrixWorld(),this.flightPose.copy(i.position)}advanceLook(e){const t=this.flight;if(!t)return;const s=Math.max(1e-4,t.radius*.001);if(this.viewport.camera.position.distanceToSquared(this.flightPose)>s*s){this.settleFlight("human");return}e>0&&Number.isFinite(e)&&(t.elapsed+=e);const i=t.duration<=0?1:Math.min(1,t.elapsed/t.duration);this.applyFlightPose(t,i),i>=1&&this.settleFlight(null)}settleFlight(e){const t=this.flight;if(!t)return;this.flight=null;const s={completed:e===null,azimuth:t.theta,elevation:Math.PI/2-t.phi,seconds:Math.min(t.elapsed,t.duration)};t.settle?.(e===null?s:{...s,cancelledBy:e})}select(e){H(),this.authoring&&Hn(this.authoring,[...e])}selection(){return[...this.authoring?.selection?.get()??[]]}idForObject(e){return this.authoring?.hierarchy.idForObject3D?.(e)??null}syncSelectionPresentation(){H();const e=(this.authoring?.selection?.get()??[]).map(i=>this.authoring?De(this.authoring.hierarchy,i):null).filter(i=>i!==null);if(this.selectedObjects=e,this.selectionOutline&&(Ms(this.selectionOutline,this.selectionOutlineWanted?e:[]),this.syncComposerOutput()),this.selectionOrigins){const i=Ue(this.renderer.domElement);this.selectionOrigins.update(e,{visible:i.visible,...i.active?{active:i.active.visible}:{}})}const t=e.filter(i=>!!i.isBone),s=t.map(i=>i.uuid).join("\0");s!==this.boneSelectionSignature&&(this.boneSelectionSignature=s,this.clearBoneSelectionHighlight(),t.length>0&&(this.boneSelectionHighlight=new Eo(t,Ue(this.renderer.domElement).visible),this.scene.add(this.boneSelectionHighlight)),this.refreshSkeletonHelper())}frameSelection(){return this.frameIds(this.authoring?.selection?.get()??[])}frameIds(e){this.leaveCameraView(!1),this.settleFlight("superseded");const t=e.map(s=>this.authoring?De(this.authoring.hierarchy,s):null).filter(s=>s!==null);return t.length===0?!1:t.every(s=>s.isBone)?(this.frameBones(t),!0):(this.viewport.focusOnMultiple(t),!0)}setViewPreset(e,t="bounds"){H(),this.leaveCameraView(!1),this.settleFlight("superseded");const s=eo(e);let i,a;if(t==="view")i=this.viewport.orbitControls.target.clone(),a=this.viewport.camera.position.distanceTo(i);else{const u=this.resolveFrameBounds();if(u.isEmpty())return;i=u.getCenter(new B),a=Lt(u,this.viewport.camera,s)}const c=i.clone().addScaledVector(s,a),o=e==="top"?{x:0,y:0,z:-1}:e==="bottom"?{x:0,y:0,z:1}:{x:0,y:1,z:0};this.viewport.setPose(c,i,void 0,o),this.setProjection(e==="isometric"?"perspective":"orthographic")}setCameraPose(e,t,s){H(),this.leaveCameraView(!1),this.settleFlight("superseded"),this.viewport.setPose(e,t,s)}cameraPose(){return{position:this.viewport.camera.position.toArray(),target:this.viewport.orbitControls.target.toArray(),fov:this.viewport.camera.fov}}camera(){if(this.cameraOverride)return this.cameraOverride;const e=this.drawnCamera();return this.viewport.setGizmoCamera(e===this.viewport.camera?null:e),e}drawnCamera(){const e=this.through?this.cameraView():null;return e?this.throughCamera(e):(this.through&&!this.leaving&&(this.leaving=!0,queueMicrotask(()=>{this.leaving=!1,this.through&&!this.cameraView()&&this.leaveCameraView(!1)})),this.state.projection==="perspective"?this.viewport.camera:(this.syncOrthographicCamera(),this.orthographicCamera))}setCameraViewSource(e){this.cameraViewSource!==e&&(this.cameraViewSource=e,e||this.leaveCameraView(!1),this.notify())}hasCameraView(){return this.cameraViewSource!==null}cameraView(){const e=this.through,t=this.cameraViewSource;if(!e||!t)return null;const s=this.renderer.domElement,i=this.captureAspect?{width:this.captureAspect,height:1}:{width:s.clientWidth,height:s.clientHeight},a=this.viewport.camera,c=e.locked?`${a.position.toArray().join(",")}|${a.quaternion.toArray().join(",")}`:"",o=`${e.camera}|${i.width}|${i.height}|${e.zoom}|${e.offset.join(",")}|${c}`;if(this.viewMemo?.key===o)return this.viewMemo.view;const u=t.view(e.camera,i,e.zoom,e.offset),p=u&&e.locked?{...u,position:a.position.toArray(),quaternion:a.quaternion.toArray()}:u;return this.viewMemo={key:o,view:p},queueMicrotask(()=>{this.viewMemo=null}),p}toggleCameraView(){if(this.through)return this.leaveCameraView(!0),!0;const e=this.cameraViewSource,t=e?.camera()??null;if(!e)return!1;if(t===null)return as.warn("camera view: No active camera — the scene has no camera to look through","document"),!1;H(),this.settleFlight("superseded");const s=this.viewport,i=s.orbitControls,a=i.enableDamping;return i.enableDamping=!1,i.update(),i.enableDamping=a,this.through={camera:t,zoom:e.zoom.opening,offset:[0,0],left:{position:s.camera.position.clone(),target:s.orbitControls.target.clone(),up:s.camera.up.clone(),projection:this.state.projection},release:this.captureCameraViewInput(),locked:!1},e.showing?.(t),this.notify(),!0}cameraViewLocked(){return!this.through||!this.cameraViewSource?.setPose?null:this.through.locked}toggleCameraViewLock(){const e=this.through,t=this.cameraViewSource;if(!(!e||!t?.setPose)){if(e.release(),e.locked=!e.locked,!e.locked)e.release=this.captureCameraViewInput();else{const s=this.cameraView(),i=this.viewport.orbitControls,a=this.viewport.camera;if(s){const E=new B(...s.position),k=new xs(...s.quaternion),N=e.left.position.distanceTo(e.left.target);a.up.set(0,1,0).applyQuaternion(k),a.position.copy(E),a.quaternion.copy(k),i.target.copy(E).addScaledVector(new B(0,0,-1).applyQuaternion(k),N),i.update()}const c=i.enabled;i.enabled=!0;const o=i.enableDamping;i.enableDamping=!1;const u=e.camera,p=E=>({position:a.position.toArray(),quaternion:a.quaternion.toArray(),final:E});let C=!1,w=null,P=!1;const S=E=>{if(C){w={...E,final:E.final||(w?.final??!1)};return}C=!0,w=null,Promise.resolve(t.setPose(u,E.position,E.quaternion,E.final)).catch(()=>{}).finally(()=>{C=!1,w&&S(w)})},I=()=>{P=!0,H(),this.notify(),S(p(!1))},z=()=>{P&&(P=!1,S(p(!0)))};i.addEventListener("change",I),i.addEventListener("end",z),e.release=()=>{z(),i.removeEventListener("change",I),i.removeEventListener("end",z),i.enabled=c,i.enableDamping=o}}this.viewMemo=null,H(),this.notify()}}cameraViewZoom(){return this.through?.zoom??null}setCameraViewZoom(e){const t=this.through,s=this.cameraViewSource;!t||!s||!Number.isFinite(e)||e<=0||(t.zoom=Math.min(s.zoom.max,Math.max(s.zoom.min,e)),H(),this.notify())}zoomCameraView(e){this.through&&this.setCameraViewZoom(this.through.zoom*e)}panCameraView(e,t){const s=this.through,i=this.cameraViewSource;if(!s||!i)return;const[a,c]=i.pan(s.offset,s.zoom,e,t);s.offset=[a,c],H(),this.notify()}leaveCameraView(e){const t=this.through;if(!t)return;const s=this.cameraView();t.release(),this.through=null,this.viewMemo=null,this.cameraViewSource?.showing?.(null),this.viewport.setGizmoCamera(null);const i=this.viewport;if(e)i.camera.position.copy(t.left.position),i.camera.up.copy(t.left.up),i.orbitControls.target.copy(t.left.target),this.state={...this.state,projection:t.left.projection};else if(s){const a=t.left.position.distanceTo(t.left.target),c=new B(...s.position),o=new xs(...s.quaternion),u=new B(0,0,-1).applyQuaternion(o);i.camera.up.set(0,1,0).applyQuaternion(o),i.camera.position.copy(c),i.orbitControls.target.copy(c).addScaledVector(u,a);const p=Dt(t.left.position.clone().sub(t.left.target),t.left.up)!==null,C=ur().autoPerspective&&p?"perspective":t.left.projection;this.state={...this.state,projection:C}}i.camera.lookAt(i.orbitControls.target),i.orbitControls.update(),H(),this.notify()}throughCamera(e){const{left:t,right:s,top:i,bottom:a}=e.window,c=this.viewport.camera.layers.mask;if(e.projection==="orthographic"){const u=this.throughOrthographic;return Object.assign(u,{left:t,right:s,top:i,bottom:a,near:e.near,far:e.far,zoom:1}),u.position.set(...e.position),u.quaternion.set(...e.quaternion),u.layers.mask=c,u.updateProjectionMatrix(),u.updateMatrixWorld(!0),u}const o=this.throughPerspective;return o.near=e.near,o.far=e.far,o.fov=yr.radToDeg(2*Math.atan((i-a)/2)),o.aspect=(s-t)/(i-a),o.zoom=1,o.position.set(...e.position),o.quaternion.set(...e.quaternion),o.layers.mask=c,o.projectionMatrix.makePerspective(t*e.near,s*e.near,i*e.near,a*e.near,e.near,e.far),o.projectionMatrixInverse.copy(o.projectionMatrix).invert(),o.updateMatrixWorld(!0),o}captureCameraViewInput(){const e=this.viewport.orbitControls,t=this.renderer.domElement,s=t.parentElement??t,i=e.enabled;e.enabled=!1;const a=o=>{o.target!==t||o.deltaY===0||(o.preventDefault(),this.zoomCameraView(o.deltaY<0?1.2:1/1.2))},c=o=>{if(o.target!==t)return;const u=e.mouseButtons;let p=[u.LEFT,u.MIDDLE,u.RIGHT][o.button]??null;const C=o.ctrlKey||o.metaKey||o.shiftKey;if(o.button===1&&(o.ctrlKey||o.metaKey)&&p===we.ROTATE?p=we.DOLLY:C&&p===we.ROTATE?p=we.PAN:C&&p===we.PAN&&(p=we.ROTATE),p===we.ROTATE){this.leaveCameraView(!1);return}if(p!==we.PAN&&p!==we.DOLLY)return;o.preventDefault();const w=t.getBoundingClientRect();let P=o.clientX,S=o.clientY;const I=this.through?.zoom??1,z=Math.max(5+o.clientY-w.top,1),E=N=>{if(p===we.PAN){this.panCameraView((N.clientX-P)/Math.max(w.width,1),(N.clientY-S)/Math.max(w.height,1)),P=N.clientX,S=N.clientY;return}const Q=Math.max(.01,2*((5+N.clientY-w.top)/z-1)+1);this.setCameraViewZoom(I/Q)},k=()=>{window.removeEventListener("pointermove",E),window.removeEventListener("pointerup",k),window.removeEventListener("pointercancel",k)};window.addEventListener("pointermove",E),window.addEventListener("pointerup",k),window.addEventListener("pointercancel",k)};return s.addEventListener("wheel",a,{capture:!0,passive:!1}),s.addEventListener("pointerdown",c,{capture:!0}),()=>{s.removeEventListener("wheel",a,{capture:!0}),s.removeEventListener("pointerdown",c,{capture:!0}),e.enabled=i}}projection(){return this.state.projection}setProjection(e){H(),this.state.projection!==e&&(this.state={...this.state,projection:e},this.notify())}setMode(e){H(),this.state.mode!==e&&(this.clearDiagnosticPresentation(),this.state={...this.state,mode:e},e==="uv"?this.scene.overrideMaterial=new zi({vertexShader:"varying vec2 vUv; void main(){ vUv=uv; gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.0); }",fragmentShader:"varying vec2 vUv; void main(){ gl_FragColor=vec4(vUv,0.0,1.0); }"}):e==="vertex-colors"?this.scene.overrideMaterial=new _i({vertexColors:!0}):e==="wireframe"&&this.buildTopologyOverlay(),this.notify())}buildTopologyOverlay(){const e=new Ft,t=[];this.root.updateMatrixWorld(!0),this.root.traverse(s=>{const i=s;if(!i.isMesh||!i.geometry)return;const a=new Wi(new Ii(i.geometry,Ro),new Ni({color:Fs,toneMapped:!1,transparent:!0,opacity:.85,depthTest:!1,depthWrite:!1}));a.matrixAutoUpdate=!1,a.matrixWorldAutoUpdate=!1,a.matrixWorld.copy(i.matrixWorld),a.frustumCulled=!1,a.renderOrder=2,e.add(a),t.push({line:a,source:i})}),t.length!==0&&(this.topologyOverlay=e,this.topologyFollowers=t,this.addHelper(e,"topology"))}syncTopologyOverlay(){this.topologyFollowers.some(({source:i})=>i.parent===null)&&(this.clearTopologyOverlay(),this.buildTopologyOverlay()),this.selectionColors??=Ue(this.renderer.domElement);const e=this.selectionColors,t=this.selectedObjects.at(-1)??null,s=(i,a)=>{for(let c=i;c;c=c.parent)if(c===a)return!0;return!1};for(const{line:i,source:a}of this.topologyFollowers){i.matrixWorld.copy(a.matrixWorld),i.visible=a.visible;const c=i.material,o=t!==null&&s(a,t),u=o||this.selectedObjects.some(C=>s(a,C)),p=o?e.active?.visible??e.visible:u?e.visible:null;c.color.setHex(p??Fs)}}clearTopologyOverlay(){for(const{line:s}of this.topologyFollowers.splice(0))s.geometry.dispose(),s.material.dispose();const e=this.topologyOverlay;if(this.topologyOverlay=null,!e)return;e.removeFromParent();const t=this.helpers.indexOf(e);t>=0&&this.helpers.splice(t,1)}setBounds(e){H(),this.state.bounds!==e&&(this.state={...this.state,bounds:e},e?(this.boundsHelper=new Ss(this.root,16757844),this.addHelper(this.boundsHelper,"bounds")):this.clearBoundsHelper(),this.notify())}setSkeleton(e){H(),this.state.skeleton!==e&&(this.state={...this.state,skeleton:e},this.refreshSkeletonHelper(),this.notify())}neutralBackgroundTexture(){return this.neutralBackground}setNeutralBackground(e){H();const t=this.scene.background,s=this.neutralBackground,i=t===s||t instanceof be&&s instanceof be&&t.equals(s);this.neutralBackground=e,i&&(this.scene.background=e)}setBackground(e){H(),this.state.background!==e&&(this.scene.background=e==="transparent"?null:this.neutralBackground,this.state={...this.state,background:e},this.notify())}resetPresentation(){H(),Bn(this.documentId),this.clearDiagnosticPresentation(),this.state=Ls,this.refreshSkeletonHelper(),this.clearBoundsHelper(),this.scene.background=this.neutralBackground,this.viewport.camera.up.set(0,1,0),this.frame(),this.notify()}setBeforeRender(e){this.beforeRender=e}presentedFrameWaiters=[];presentsFrames=!1;setPresentsFrames(e){this.presentsFrames=e,e||this.resolvePresentedFrame(null)}requestPresentedFrame(){return this.presentsFrames?new Promise(e=>{let t=!1;const s=i=>{t||(t=!0,e(i))};this.presentedFrameWaiters.push(s),H(),setTimeout(()=>s(null),jo)}):Promise.resolve(null)}needsFrame(){return this.flight!==null||this.presentedFrameWaiters.length>0}servePresentedFrame(){if(this.presentedFrameWaiters.length===0)return;const e=this.renderer.domElement,t=document.createElement("canvas");t.width=Math.max(1,e.width),t.height=Math.max(1,e.height);const s=t.getContext("2d");if(!s){this.resolvePresentedFrame(null);return}s.drawImage(e,0,0),this.resolvePresentedFrame(t)}resolvePresentedFrame(e){const t=this.presentedFrameWaiters;this.presentedFrameWaiters=[];for(const s of t)s(e)}render(e){this.beforeRender?.(),this.boneSelectionHighlight?.update();const t=this.camera(),s=this.state.mode;if(this.boundsHelper?.update(),this.selectionOrigins?.place(),s==="uv"||s==="vertex-colors"){e(t);return}if(s==="wireframe"&&this.topologyOverlay){if(this.syncTopologyOverlay(),this.xray.enabled&&this.xray.alpha<=0){const i=new Set;this.root.traverse(a=>{const c=a;if(c.isMesh)for(const o of Array.isArray(c.material)?c.material:[c.material])o?.visible&&(o.visible=!1,i.add(o))});try{e(t)}finally{for(const a of i)a.visible=!0}return}this.shading.render(this.scene,"clay",()=>e(t),Os);return}this.shading.render(this.scene,s,()=>e(t),Os)}renderViewport(e=0){this.advanceLook(e),this.ensureComposer(),this.render(t=>{const s=this.composer;if(!s){this.renderer.render(this.scene,t);return}s.setMainScene(this.scene),s.setMainCamera(t),s.render(e)})}resize(e,t){H(),this.renderWidth=Math.max(1,e),this.renderHeight=Math.max(1,t),this.composer?.setSize(this.renderWidth,this.renderHeight)}renderCapture(e,t){this.render(s=>{if(!t){e(s);return}const i=this.scene.background,a=this.renderer.getClearColor(new be),c=this.renderer.getClearAlpha();try{this.scene.background=null,this.renderer.setClearColor(0,0),e(s)}finally{this.scene.background=i,this.renderer.setClearColor(a,c)}})}captureImage(e=512){const t=typeof e=="number"?e:e.width,s=typeof e=="number"?e:e.height;if(!Number.isFinite(t)||t<1||!Number.isFinite(s)||s<1)return null;const i=Math.min(2048,Math.round(t)),a=Math.min(2048,Math.round(s)),c=i*2,o=a*2,u=new Ps(c,o,{type:$i}),p=new Ps(c,o),C=this.renderer.getRenderTarget(),w=this.renderer.getPixelRatio(),P=this.viewport.camera,S=P.aspect;try{this.captureAspect=i/a;const I=typeof e=="number"?void 0:e.camera;I?this.cameraOverride=I:(P.aspect=i/a,P.updateProjectionMatrix()),this.renderer.setPixelRatio(1),this.renderer.setRenderTarget(u),this.renderCapture(_=>this.renderSolidForCapture(_,u,c,o),typeof e!="number"&&e.transparent===!0),Zi(typeof e!="number"&&e.transparent===!0).render(this.renderer,p,u,0,!1);const z=c*4,E=new Uint8Array(z*o);this.renderer.readRenderTargetPixels(p,0,0,c,o,E);const k=document.createElement("canvas");k.width=c,k.height=o;const N=k.getContext("2d");if(!N)return null;const Q=N.createImageData(c,o);for(let _=0;_<o;_++){const Y=(o-1-_)*z,F=_*z;Q.data.set(E.subarray(Y,Y+z),F)}N.putImageData(Q,0,0);const y=document.createElement("canvas");y.width=i,y.height=a;const U=y.getContext("2d");return U?(U.drawImage(k,0,0,i,a),y.toDataURL("image/png")):null}finally{this.captureAspect=null,this.cameraOverride=null,P.aspect=S,P.updateProjectionMatrix(),this.renderer.setRenderTarget(C),this.renderer.setPixelRatio(w),this.composer?.setSize(this.renderWidth,this.renderHeight,!1),p.dispose(),u.dispose(),H()}}dispose(){this.disposed=!0,this.leaveCameraView(!1),this.selectionOrigins?.dispose(),this.selectionOrigins=null,this.settleFlight("closed"),this.viewport.orbitControls.removeEventListener("start",this.cancelLookForHuman),this.unsubscribeRotateStart(),this.unsubscribeAxisView(),this.unsubscribeSelectionTheme(),this.clearDiagnosticPresentation(),this.clearBoneSelectionHighlight(),this.clearBoundsHelper(),this.clearSkeletonHelper(),this.selectionOutline&&ro(this.renderer,this.selectionOutline,this.selectionOutlinePass),this.composer?.dispose(),this.sceneRenderPass=null,this.selectionOutline=null,this.selectionOutlinePass=null,this.composer=null,this.shading.dispose(),this.listeners.clear()}addHelper(e,t){e.name=`__object3d_document_${t}`,Xs(e,"editorHelper",!0),this.scene.add(e),this.helpers.push(e)}get selectionOutlineEnabled(){return this.selectionOutlineWanted}set selectionOutlineEnabled(e){e!==this.selectionOutlineWanted&&(this.selectionOutlineWanted=e,e?this.syncSelectionPresentation():(this.selectionOutline?.selection.clear(),this.syncComposerOutput()))}selectionOutlineWanted=!0;xray={enabled:!1,alpha:1};setXray(e){this.xray.enabled===e.enabled&&this.xray.alpha===e.alpha||(this.xray=e,H())}set selectionOriginsEnabled(e){e!==(this.selectionOrigins!==null)&&(e?(this.selectionOrigins=new Bo,this.scene.add(this.selectionOrigins),this.syncSelectionPresentation()):(this.selectionOrigins?.dispose(),this.selectionOrigins=null,H()))}ensureComposer(){this.selectionOutlineWanted&&(this.composer||this.composerLoading||this.disposed||(this.composerLoading=!0,Je(()=>import("./index-DHhMOs_s.js"),__vite__mapDeps([0,1,2])).then(e=>{if(this.composerLoading=!1,this.disposed||this.composer)return;const t=this.camera(),s=new e.EffectComposer(this.renderer);this.sceneRenderPass=new e.RenderPass(this.scene,t),s.addPass(this.sceneRenderPass),this.selectionOutline=so(e,this.renderer,this.scene,t,Ue(this.renderer.domElement)),this.syncSelectionTheme(),Ms(this.selectionOutline,this.selectedObjects),this.selectionOutlinePass=new e.EffectPass(t,this.selectionOutline),s.addPass(this.selectionOutlinePass),this.composer=s,this.syncComposerOutput(),s.setSize(this.renderWidth,this.renderHeight),H()}).catch(()=>{this.composerLoading=!1})))}renderSolidForCapture(e,t,s,i){const a=this.composer,c=(this.selectionOutline?.selection.size??0)>0;if(!a||!c||!this.sceneRenderPass||!this.selectionOutlinePass){this.renderer.render(this.scene,e);return}const o=this.renderWidth,u=this.renderHeight;try{this.sceneRenderPass.renderToScreen=!1,this.selectionOutlinePass.renderToScreen=!1,a.setSize(s,i,!1),this.sceneRenderPass.render(this.renderer,a.inputBuffer,a.outputBuffer,0),this.selectionOutlinePass.render(this.renderer,a.inputBuffer,t,0)}finally{a.setSize(o,u,!1),this.syncComposerOutput(),this.renderer.setRenderTarget(t)}}syncComposerOutput(){const e=(this.selectionOutline?.selection.size??0)>0;this.sceneRenderPass&&(this.sceneRenderPass.renderToScreen=!e),this.selectionOutlinePass&&(this.selectionOutlinePass.enabled=e,this.selectionOutlinePass.renderToScreen=e)}refreshSkeletonHelper(){const e=this.state.skeleton||this.boneSelectionHighlight!==null;e&&!this.skeletonHelper?(this.skeletonHelper=new Gi(this.root),Oo(this.skeletonHelper),this.scene.add(this.skeletonHelper)):e||this.clearSkeletonHelper()}clearSkeletonHelper(){this.skeletonHelper&&(this.skeletonHelper.removeFromParent(),this.skeletonHelper.dispose(),this.skeletonHelper=null)}clearBoneSelectionHighlight(){this.boneSelectionHighlight&&(this.boneSelectionHighlight.removeFromParent(),this.boneSelectionHighlight.dispose(),this.boneSelectionHighlight=null)}clearBoundsHelper(){if(!this.boundsHelper)return;const e=this.boundsHelper;this.boundsHelper=null;const t=this.helpers.indexOf(e);t>=0&&this.helpers.splice(t,1),e.removeFromParent(),e.geometry.dispose(),Array.isArray(e.material)?e.material.forEach(s=>{s.dispose()}):e.material.dispose()}frameBones(e){const t=new br,s=new B;for(const u of e){t.expandByPoint(u.getWorldPosition(s)),u.parent?.isBone&&t.expandByPoint(u.parent.getWorldPosition(s));for(const p of u.children)p.isBone&&t.expandByPoint(p.getWorldPosition(s))}const i=t.getCenter(new B),a=Math.max(t.getSize(new B).length(),.2);t.expandByScalar(a*.35);const c=this.viewport.camera.position.clone().sub(this.viewport.orbitControls.target).normalize(),o=Lt(t,this.viewport.camera,c);this.viewport.setPose(i.clone().addScaledVector(c,o),i)}syncOrthographicCamera(){const e=this.viewport.camera,t=this.viewport.orbitControls.target,s=Math.max(e.position.distanceTo(t),.001),i=Math.max(s*Math.tan(yr.degToRad(e.fov)/2),.001),a=Math.max(this.renderer.domElement.clientWidth,1),c=Math.max(this.renderer.domElement.clientHeight,1),o=this.captureAspect??a/c;this.orthographicCamera.left=-i*o,this.orthographicCamera.right=i*o,this.orthographicCamera.top=i,this.orthographicCamera.bottom=-i,this.orthographicCamera.near=e.near,this.orthographicCamera.far=e.far,this.orthographicCamera.position.copy(e.position),this.orthographicCamera.quaternion.copy(e.quaternion),this.orthographicCamera.up.copy(e.up),this.orthographicCamera.layers.mask=e.layers.mask,this.orthographicCamera.updateProjectionMatrix(),this.orthographicCamera.updateMatrixWorld(!0)}clearDiagnosticPresentation(){this.clearTopologyOverlay(),this.scene.overrideMaterial?.dispose(),this.scene.overrideMaterial=null;for(const e of this.helpers.splice(0)){e.removeFromParent();const t=e;t.geometry?.dispose();const s=t.material;Array.isArray(s)?s.forEach(i=>{i.dispose()}):s?.dispose()}}notify(){this.version++;for(const e of this.listeners)e()}}const Do=7;let ht=null;function Ho(){if(ht)return ht;const n=64,e=document.createElement("canvas");e.width=n,e.height=n;const t=e.getContext("2d");return t.beginPath(),t.arc(n/2,n/2,n/2-1,0,Math.PI*2),t.fillStyle="rgba(0, 0, 0, 0.75)",t.fill(),t.beginPath(),t.arc(n/2,n/2,n/2-8,0,Math.PI*2),t.fillStyle="#ffffff",t.fill(),ht=new Ui(e),ht.colorSpace=Js,ht}class Bo extends Qs{objects=[];origin=new B;constructor(){super(new Ys,new Zs({map:Ho(),size:Do,sizeAttenuation:!1,transparent:!0,alphaTest:.05,depthTest:!1,depthWrite:!1,toneMapped:!1})),this.name="volter:selection-origins",this.userData.editorHelper=!0,this.renderOrder=1e3,this.frustumCulled=!1,this.raycast=()=>{}}update(e,t){this.objects=e,this.material.color.setHex(e.length===1&&t.active!==void 0?t.active:t.visible),this.visible=e.length>0}place(){const e=this.objects.length;let t=this.geometry.getAttribute("position");(t===void 0||t.count<e)&&(this.geometry.dispose(),t=new Ks(new Float32Array(Math.max(e,8)*3),3),this.geometry.setAttribute("position",t)),this.geometry.setDrawRange(0,e),this.objects.forEach((s,i)=>{s.getWorldPosition(this.origin),t.setXYZ(i,this.origin.x,this.origin.y,this.origin.z)}),t.needsUpdate=!0}dispose(){this.removeFromParent(),this.geometry.dispose(),this.material.dispose()}}class zo{constructor(e){this.options=e}active=null;settling=!1;idleWaiters=new Set;begin(e){if(this.active||this.settling)return!1;try{const t=this.options.begin(e);return t?(this.active={pointerId:e.pointerId,gesture:t},!0):!1}catch(t){return this.options.reportError(t),!1}}update(e){if(!(!this.active||this.active.pointerId!==e.pointerId))try{this.active.gesture.update(e)}catch(t){this.cancelWithError(t)}}async commit(e){const t=this.take(e.pointerId);if(!t)return!1;this.settling=!0;try{return await t.commit(e),await this.options.persist(t.label),!0}catch(s){try{await t.cancel()}catch(i){return this.options.reportError({operationError:s,rollbackError:i}),!1}return this.options.reportError(s),!1}finally{this.settling=!1;for(const s of this.idleWaiters)s();this.idleWaiters.clear()}}async cancel(e){const t=this.take(e);if(!t)return!1;this.settling=!0;try{return await t.cancel(),!0}catch(s){return this.options.reportError(s),!1}finally{this.settling=!1;for(const s of this.idleWaiters)s();this.idleWaiters.clear()}}async settle(){this.active&&await this.cancel(),this.settling&&await new Promise(e=>this.idleWaiters.add(e))}hasActiveGesture(){return this.active!==null}take(e){if(!this.active||e!==void 0&&this.active.pointerId!==e)return null;const t=this.active.gesture;return this.active=null,t}async cancelWithError(e){const t=this.take();if(t){this.settling=!0;try{await t.cancel(),this.options.reportError(e)}catch(s){this.options.reportError({operationError:e,rollbackError:s})}finally{this.settling=!1;for(const s of this.idleWaiters)s();this.idleWaiters.clear()}}}}class _o{constructor(e,t){this.frame=e,this.releaseRenderer=t,this.unsubscribeActivity=wo(()=>this.syncActivity())}rafId=0;running=!1;disposed=!1;active=!1;unsubscribeActivity;get isDisposed(){return this.disposed}get isRunning(){return this.running}setActive(e){this.disposed||(this.active=e,this.syncActivity())}syncActivity(){this.active&&hr()?this.start():this.stop()}redraw(){this.running&&!this.disposed&&hr()&&this.guardedFrame(performance.now())}dispose(){this.stop(),!this.disposed&&(this.disposed=!0,this.unsubscribeActivity(),this.releaseRenderer())}start(){this.disposed||this.running||(this.running=!0,this.guardedFrame(performance.now(),!0),!(!this.running||this.disposed)&&(this.rafId=requestAnimationFrame(this.tick)))}lastFrameFailure=null;guardedFrame(e,t=!1){try{this.frame(e,t),this.lastFrameFailure=null}catch(s){const i=s instanceof Error?s.message:String(s);i!==this.lastFrameFailure&&(this.lastFrameFailure=i,console.error("[document renderer] a frame threw; the loop continues:",s))}}stop(){this.running=!1,this.rafId!==0&&(cancelAnimationFrame(this.rafId),this.rafId=0)}tick=e=>{if(!(!this.running||this.disposed)){if(!hr()){this.stop();return}this.guardedFrame(e),!(!this.running||this.disposed)&&(this.rafId=requestAnimationFrame(this.tick))}}}const Wo=new Set(["solid","clay","unlit","wireframe","normals","overdraw"]);function Io(n,e){return{read:()=>{const t=n.cameraPose;if(!t)return null;const{position:s,target:i}=t;return{camera:{position:{x:s.x,y:s.y,z:s.z},target:{x:i.x,y:i.y,z:i.z},...t.fov?{fov:t.fov}:{}},diagnostic:n.shadingMode,grid:zn(e)}},setDiagnostic:t=>Wo.has(t)?(n.setShadingMode(t),!0):!1,setCamera:t=>typeof t!="string"?(n.shell.setCameraPose(t.position,t.target,t.fov),!0):t==="isometric"?!1:(n.shell.setViewPreset(t),!0),frame:t=>t==="document"?!1:(n.shell.focusOnSelection(),!0)}}function No(n){const e=gr();return e?_n($s(e.shell,n)):"none"}const $o=f.lazy(()=>Je(()=>import("./stage-transform-tools-D31L_IPe.js"),__vite__mapDeps([3,4,5,6,7,8,9,10,11,12,13,14,15,1,2,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63])).then(n=>({default:n.ThreeStageTransformTools}))),Go=f.lazy(()=>Je(()=>import("./stage-transform-tools-D31L_IPe.js"),__vite__mapDeps([3,4,5,6,7,8,9,10,11,12,13,14,15,1,2,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63])).then(n=>({default:n.ThreeStageTransformControls})));function Ds(n){return{transformTools:()=>No(n),TransformTools:$o,TransformControls:Go}}class Uo{constructor(e,t,s){this.create=e,this.isOpen=t,this.subscribe=s}states=new Map;generations=new WeakMap;unsubscribe=null;claim(e){const t=this.states.get(e)??[];let s=t.find(i=>!i.inUse);return s||(s=this.create(e),t.push(s),this.states.set(e,t)),s.inUse=!0,this.generations.set(s,this.generation(s)+1),this.unsubscribe??=this.subscribe(()=>this.discardClosed()),s}generation(e){return this.generations.get(e)??0}release(e,t=this.generation(e)){this.generation(e)===t&&(e.inUse=!1,queueMicrotask(()=>this.discardClosed()))}retain(e,t,s){if(!this.isOpen(e.documentId)||!this.states.get(e.documentId)?.includes(e)||this.generation(e)!==s){t.dispose();return}const i=e.source;e.source=t,i!==t&&i?.dispose()}discardClosed(){const e=[];for(const[s,i]of this.states){if(this.isOpen(s))continue;const a=i.filter(c=>c.inUse);e.push(...i.filter(c=>!c.inUse)),a.length?this.states.set(s,a):this.states.delete(s)}this.states.size===0&&(this.unsubscribe?.(),this.unsubscribe=null);const t=[];for(const s of e){const i=s.source;s.source=null;try{i?.dispose()}catch(a){t.push(a)}}if(t.length)throw new AggregateError(t,"Retained document cleanup failed")}}const qo=f.lazy(async()=>({default:(await Je(()=>import("./stage-overlay-set-DQLl2s9p.js"),__vite__mapDeps([64,4,5,7,8,6,9,10,11,12,13,45,65,66,24,14,15,1,2,16,17,18,19,20,21,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63]))).StageOverlaySet}));function Xo(n){return d.jsx(f.Suspense,{fallback:null,children:d.jsx(qo,{...n})})}function Hs(n,e,t){if(e==="orthographic"){const s=Dt(n.camera.position.clone().sub(n.orbitControls.target),new B(0,1,0).applyQuaternion(n.camera.quaternion));return s!==null?s:t==="short"?"Iso":"Orthographic"}return t==="short"?"Persp":"Perspective"}const Yo=()=>()=>{},Bs=()=>0;function Ko({shell:n,documentId:e,label:t,kebab:s=!1}){const i=f.useSyncExternalStore(no,Rs,Rs);f.useSyncExternalStore(po,fo);const a=e?mo(e):null;f.useSyncExternalStore(a?.subscribe??Yo,a?.getSnapshot??Bs,a?.getSnapshot??Bs);const c=a?a.projection():i.projection,o=P=>{a?a.setProjection(P):js(P)},[u,p]=f.useState(!1),C=f.useRef(null);f.useEffect(()=>{if(!u)return;const P=S=>{C.current?.contains(S.target)||p(!1)};return document.addEventListener("mousedown",P),()=>document.removeEventListener("mousedown",P)},[u]);const w=P=>{if(a){a.setViewPreset(P,"view");return}js("orthographic"),n.setViewPreset(P)};return d.jsxs("div",{ref:C,className:"volter-viewport-popover-anchor",children:[t===void 0?d.jsx(Ke,{text:c==="perspective"?"Perspective":"Orthographic",children:d.jsx(Fe,{"aria-label":"Viewport views","aria-expanded":u,size:"comfortable",onClick:()=>p(P=>!P),children:d.jsx(xe,{icon:u?Wn:In,size:"md"})})}):d.jsxs(qe,{size:"comfortable",variant:"ghost","aria-label":"Viewport views","aria-expanded":u,"data-testid":"viewport-view-name",onClick:()=>p(P=>!P),children:[s?d.jsx(xe,{icon:Nn,size:"sm"}):null,t]}),u?d.jsx($n,{style:{minWidth:230},children:d.jsxs(Gn,{gap:3,children:[d.jsx(cs,{variant:"caption",tone:"muted",children:"Projection"}),d.jsxs(ls,{gap:1,children:[d.jsx(qe,{size:"compact",variant:c==="perspective"?"primary":"ghost",onClick:()=>o("perspective"),children:"Perspective"}),d.jsx(qe,{size:"compact",variant:c==="orthographic"?"primary":"ghost",onClick:()=>o("orthographic"),children:"Orthographic"})]}),d.jsx(cs,{variant:"caption",tone:"muted",children:"Axis View"}),d.jsxs(ls,{gap:1,children:[d.jsx(qe,{size:"compact",variant:"ghost",onClick:()=>w("top"),children:"Top"}),d.jsx(qe,{size:"compact",variant:"ghost",onClick:()=>w("front"),children:"Front"}),d.jsx(qe,{size:"compact",variant:"ghost",onClick:()=>w("right"),children:"Right"})]})]})}):null]})}const Zo=ao;function zs(n){return xr(null,n)}const Qo=()=>()=>{},_s=()=>0,Jo=5,ea=58;function ta(n,e){const t=e?.camera()??n.renderCamera,s=n.camera.position,i=n.orbitControls.target,a=t.isOrthographicCamera?nn(t,n,e):0;return[s.x,s.y,s.z,i.x,i.y,i.z,a].map(c=>c.toPrecision(6)).join(",")}function nn(n,e,t){const s=e.orbitControls.domElement,i=Math.max(1,t?.renderer.domElement.height??(s?.clientHeight??1)*(s?.ownerDocument.defaultView?.devicePixelRatio??1));return(n.top-n.bottom)/n.zoom/i}function ra({viewport:n,documentId:e,session:t,store:s,projection:i,displayName:a,objectName:c,statistics:o,subject:u,gridScale:p}){f.useSyncExternalStore(s.subscribe,s.getShellSnapshot??s.getSnapshot),f.useSyncExternalStore(f.useCallback(V=>{const D=n?.orbitControls;return D?.addEventListener("change",V),()=>D?.removeEventListener("change",V)},[n]),()=>n?ta(n,t):""),f.useSyncExternalStore(t?.subscribe??Qo,t?.getSnapshot??_s,t?.getSnapshot??_s);const C=f.useSyncExternalStore(zs,Gs),w=f.useSyncExternalStore(zs,Un),P=C&&!w?Qe.content.onAccent:Qe.content.primary,S=qn();f.useSyncExternalStore(mr,us,us);const I=Ze(e).overlays.navigationControls;if(!n)return null;const z=Dt(n.camera.position.clone().sub(n.orbitControls.target),new B(0,1,0).applyQuaternion(n.camera.quaternion))??"User",E=t?.projection()??i,k=t?.cameraView()??null,N=k?`Camera ${k.projection==="perspective"?"Perspective":"Orthographic"}`:`${z} ${E==="perspective"?"Perspective":"Orthographic"}`,Q=s.selectedEntityId,y=(Q===null?null:c(Q))||null,U=u??(y===null||y===a?a:`${a} | ${y}`),_=t?.camera()??n.renderCamera,Y=p&&!k&&z!=="User"&&_.isOrthographicCamera?p(nn(_,n,t)):null,F=V=>{V.preventDefault();const D=V.currentTarget;D.setPointerCapture(V.pointerId);const Pe=n.orbitControls.domElement?.getBoundingClientRect().top??0,Te=Math.max(5+V.clientY-Pe,1),le=n.camera,de=n.orbitControls.target,ue=le.position.clone().sub(de),re=!t&&n.renderCamera instanceof wr?n.renderCamera:null,ie=re?.zoom??1,Ve=t?.cameraViewZoom()??null,pe=fe=>{const He=5+fe.clientY-Pe,Ce=Math.max(.01,2*(He/Te-1)+1);Ve!==null&&t?.cameraView()?t.setCameraViewZoom(Ve/Ce):re?(re.zoom=ie/Ce,re.updateProjectionMatrix()):le.position.copy(de).addScaledVector(ue,Ce),n.orbitControls.update()},ee=()=>{D.removeEventListener("pointermove",pe),D.removeEventListener("pointerup",ee),D.removeEventListener("pointercancel",ee),D.removeEventListener("lostpointercapture",ee)};D.addEventListener("pointermove",pe),D.addEventListener("pointerup",ee),D.addEventListener("pointercancel",ee),D.addEventListener("lostpointercapture",ee)},Z=V=>{V.preventDefault();const D=V.currentTarget;D.setPointerCapture(V.pointerId);let Pe=V.clientX,Te=V.clientY;const le=new B,de=new B,ue=ie=>{const Ve=ie.clientX-Pe,pe=ie.clientY-Te;if(Pe=ie.clientX,Te=ie.clientY,t?.cameraView()){const tt=t.renderer.domElement;t.panCameraView(Ve/Math.max(tt.clientWidth,1),pe/Math.max(tt.clientHeight,1));return}const ee=n.camera,fe=n.orbitControls.target,He=ee.position.distanceTo(fe),Ce=Math.max(1,D.ownerDocument.defaultView?.innerHeight??1),et=2*He*Math.tan(yr.degToRad(ee.fov/2))/Ce;le.setFromMatrixColumn(ee.matrixWorld,0).multiplyScalar(-Ve*et),de.setFromMatrixColumn(ee.matrixWorld,1).multiplyScalar(pe*et),ee.position.add(le).add(de),fe.add(le).add(de),n.orbitControls.update()},re=()=>{D.removeEventListener("pointermove",ue),D.removeEventListener("pointerup",re),D.removeEventListener("pointercancel",re),D.removeEventListener("lostpointercapture",re)};D.addEventListener("pointermove",ue),D.addEventListener("pointerup",re),D.addEventListener("pointercancel",re),D.addEventListener("lostpointercapture",re)};return d.jsxs(d.Fragment,{children:[S.viewName==="text"&&s.showHelpers?d.jsxs("div",{"data-testid":"viewport-view-text","aria-hidden":"true",style:{position:"absolute",top:"var(--volter-space-3)",left:"calc(var(--volter-space-4) + var(--volter-control-comfortable-height) * 2 + var(--volter-space-4))",display:"flex",flexDirection:"column",gap:"var(--volter-space-1)",fontSize:"var(--volter-font-sm)",color:P,textShadow:"var(--volter-content-text-shadow, none)",pointerEvents:"none",userSelect:"none"},children:[d.jsx("span",{children:N}),d.jsx("span",{children:U}),Y?d.jsx("span",{"data-testid":"viewport-grid-scale",children:Y}):null,o&&o.length>0?d.jsx("div",{"data-testid":"viewport-statistics",style:{display:"grid",gridTemplateColumns:`${ea}px auto`,rowGap:"var(--volter-space-1)",marginTop:Xn[Jo]},children:o.map(V=>d.jsxs(f.Fragment,{children:[d.jsx("span",{children:V.label}),d.jsx("span",{children:V.value})]},V.id))}):null]}):null,S.viewName==="menu"?d.jsx("div",{className:"volter-viewport-view-pill",style:{position:"absolute",top:"var(--volter-viewport-overlay-top, var(--volter-space-4))",left:"var(--volter-stage-name-left, calc(var(--volter-space-4) + var(--volter-control-comfortable-height) * 2 + var(--volter-space-4)))",zIndex:"calc(var(--volter-z-dropdown, 1000) - 1)",pointerEvents:"auto"},children:d.jsx(Ko,{shell:s,documentId:e,label:Hs(n,E,"long"),kebab:!0})}):null,S.viewName==="gizmo"?d.jsxs("button",{type:"button","data-testid":"viewport-view-name",className:"volter-viewport-gizmo-label","aria-label":E==="perspective"?"Switch to orthographic":"Switch to perspective",onClick:()=>{const V=E==="perspective"?"orthographic":"perspective";t?t.setProjection(V):n.setProjection(V)},style:{position:"absolute",top:oo+4,right:io,transform:"translateX(50%)",display:"inline-flex",alignItems:"center",gap:"var(--volter-space-1)",padding:0,border:0,background:"none",fontSize:"var(--volter-font-sm)",color:P,textShadow:"var(--volter-content-text-shadow, none)",cursor:"pointer",pointerEvents:"auto"},children:[d.jsx(xe,{size:"xs",icon:E==="perspective"?Yn:Kn}),Hs(n,E,"short")]}):null,I&&s.showGizmos?d.jsxs("div",{"data-testid":"viewport-navigation",role:"toolbar","aria-label":"Navigation","aria-orientation":"vertical",className:"volter-chrome-island volter-viewport-navigation",style:{position:"absolute",top:Zo,right:"var(--volter-space-6)",display:"flex",flexDirection:"column",gap:"var(--volter-space-1)",padding:"var(--volter-space-1) 0",borderRadius:"var(--volter-radius-full)",background:"var(--volter-island-surface, var(--volter-surface-overlay))",pointerEvents:"auto"},children:[d.jsx(Ke,{text:"Zoom (drag)",children:d.jsx(Fe,{size:"comfortable","aria-label":"Zoom the view",onPointerDown:F,children:d.jsx(xe,{size:"2xl",icon:Se.viewport.zoomIn})})}),d.jsx(Ke,{text:"Pan (drag)",children:d.jsx(Fe,{size:"comfortable","aria-label":"Pan the view",onPointerDown:Z,children:d.jsx(xe,{size:"2xl",icon:Se.viewport.pan})})}),t?.hasCameraView()?d.jsx(Ke,{text:k?"Leave the camera view":"Look through the camera",children:d.jsx(Fe,{size:"comfortable","aria-label":"Toggle the camera view",onClick:()=>t.toggleCameraView(),children:d.jsx(xe,{size:"2xl",icon:k?Se.viewport.cameraView:Se.viewport.camera})})}):null,k&&t?.cameraViewLocked()!==null?d.jsx(Ke,{text:t?.cameraViewLocked()?"Unlock the camera from the view":"Lock the camera to the view",children:d.jsx(Fe,{size:"comfortable","aria-label":"Lock the camera to the view",onClick:()=>t?.toggleCameraViewLock(),children:d.jsx(xe,{size:"2xl",icon:t?.cameraViewLocked()?Se.viewport.cameraLocked:Se.viewport.cameraUnlocked})})}):null,k||S.viewName==="gizmo"?null:d.jsx(Ke,{text:E==="perspective"?"Orthographic":"Perspective",children:d.jsx(Fe,{size:"comfortable","aria-label":"Toggle perspective and orthographic",onClick:()=>{const V=E==="perspective"?"orthographic":"perspective";t?t.setProjection(V):n.setProjection(V)},children:d.jsx(xe,{size:"2xl",icon:E==="orthographic"?Se.viewport.projectionOrthographic:Se.viewport.projection})})})]}):null,k&&t?d.jsx(sa,{view:k,canvas:t.renderer.domElement,locked:t.cameraViewLocked()===!0}):null]})}function sa({view:n,canvas:e,locked:t}){const[s,i]=f.useState(null),[,a]=f.useState(0);f.useEffect(()=>{const E=new ResizeObserver(()=>a(k=>k+1));return E.observe(e),()=>E.disconnect()},[e]);const c=e.clientWidth,o=e.clientHeight,u=e.ownerDocument.defaultView?.devicePixelRatio??1,p=e.getBoundingClientRect(),C=s?.getBoundingClientRect(),w=1/u,P=n.frame.left*c-w,S=n.frame.top*o-w,I=n.frame.width*c+2*w,z=n.frame.height*o+2*w;return d.jsx("div",{ref:i,"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none"},children:C?d.jsxs("svg",{"data-testid":"viewport-camera-frame",width:c,height:o,style:{position:"absolute",left:p.left-C.left,top:p.top-C.top},children:[n.passepartout.opacity>0?d.jsx("path",{d:`M0 0H${c}V${o}H0Z M${P} ${S}V${S+z}H${P+I}V${S}Z`,fill:n.passepartout.color,fillOpacity:n.passepartout.opacity,fillRule:"evenodd"}):null,n.passepartout.opacity>0?d.jsx("rect",{x:P,y:S,width:I,height:z,fill:"none",stroke:n.border.solid,strokeWidth:w,shapeRendering:"crispEdges"}):null,d.jsx("rect",{x:P,y:S,width:I,height:z,fill:"none",stroke:n.border.dashed,strokeWidth:w,strokeDasharray:`${3*w} ${3*w}`,shapeRendering:"crispEdges"}),t?d.jsx("rect",{x:P-w,y:S-w,width:I+2*w,height:z+2*w,fill:"none",stroke:n.border.locked,strokeWidth:w,strokeDasharray:`${3*w} ${3*w}`,shapeRendering:"crispEdges"}):null]}):null})}const na=f.lazy(async()=>({default:(await Je(()=>import("./stage-keyboard-BiNmyrcC.js"),__vite__mapDeps([67,7,5,8,68,6,4,9,10,11,12,13,45,23]))).StageKeyboardBinding})),ia=n=>{const e=n.split(":");return(e[0]==="document"?e[1]:e[0])??n},Ws=()=>ki(),fr=12;function Is(n){if(!n)return null;const e=new br(new B(n.min[0],n.min[1],n.min[2]),new B(n.max[0],n.max[1],n.max[2]));return e.isEmpty()?null:e}const oa=500;function aa(n){return xr(null,n)}const ca=["solid","preview","rendered","clay","unlit","wireframe","matcap","normals","overdraw"];let la=0;const Ye=new Uo(n=>({documentId:n,store:tn(new Us),inUse:!1,source:null,camera:null,presentation:null,transport:null,contentSeconds:0,transportAdvances:0}),n=>oi().some(e=>e.descriptor.id===n),ai);function ua({canvasHostRef:n}){return d.jsx("div",{ref:n,style:{position:"absolute",inset:0}})}function ha(n,e,t,s,i){if(e==="inspector-preview"){const u=Ai();return u.canvas.setAttribute("aria-label",`${t} authoring viewport`),n.appendChild(u.canvas),{canvas:u.canvas,renderer:u.renderer,lease:u}}const a=Ji(s.width,s.height,i),{canvas:c,renderer:o}=a;return c.setAttribute("aria-label",`${t} authoring viewport`),n.appendChild(c),{canvas:c,renderer:o,lease:a}}class Ns{constructor(e,t,s){this.lane=e,this.surface=t,this.store=s??tn(new Us),this.transport=new Ci(this.store.shell)}scene=new en;store;cleanups=[];rendererSession=new _o((e,t)=>this.frame?.(e,t),()=>{});viewport=null;session=null;dressing=null;presentationRig=null;applyPresentation=null;backdropOverridden=!1;documentStudio=null;contentLights=[];contentHas={light:!1,"directional-light":!1};darkened=[];darkenContentLights(){for(const t of this.contentLights)t.visible&&(t.visible=!1,this.darkened.push(t));if(this.darkened.length===0)return 0;const e=this.darkened.length;return this.scene.onAfterRender=()=>{for(const t of this.darkened)t.visible=!0;this.darkened=[],this.scene.onAfterRender=()=>{}},e}defaultEnvironment=null;defaultBackground=null;adapter=null;presentationAdapter=null;content=null;frame=null;syncHostScene=null;presence=null;initialized=!1;contentSeconds=0;transportAdvances=0;users=0;closed=!1;released=!1;get isClosed(){return this.closed}transport;borrow(){this.users++;let e=!1;return()=>{e||(e=!0,this.users--,this.releaseIfClosed())}}close(){this.closed=!0,this.frame=null,this.syncHostScene=null,this.session?.setBeforeRender(null),this.session?.setPresentsFrames(!1),this.rendererSession.setActive(!1),this.content?.dispose(),this.transport.dispose(),this.releaseIfClosed()}releaseIfClosed(){if(!this.closed||this.users!==0||this.released)return;this.released=!0;const{lease:e,renderer:t,canvas:s}=this.surface;for(const i of[...this.cleanups.splice(0),()=>this.session?.dispose(),()=>this.viewport?.dispose(),()=>this.rendererSession.dispose(),()=>this.dressing?.dispose(),...e?[()=>e.release()]:[()=>t.dispose(),()=>t.forceContextLoss(),()=>s.remove()]])try{i()}catch(a){console.error("Object3D document cleanup failed.",a)}}}function on({documentId:n,sourcePath:e,build:t,displayName:s="Source Object3D",background:i,cameraDirection:a,persistence:c,documentSource:o,authoring:u,interaction:p,selectionOutline:C=!0,active:w=!0,audit:P=!0,chromeless:S=!1,modelSource:I,assetType:z,sourceAuthoring:E,dressing:k,rendererLane:N="own",onOpenNode:Q,frameBounds:y,openingFrameBounds:U,openingFit:_,openingView:Y,presentation:F,cameraView:Z,stageKind:V,statistics:D,subject:Pe,gridScale:Te,content:le}){const de=V??ia(n);f.useEffect(()=>{if(!S)return Zn(n)},[n,S]);const ue=Ei(Qn()),re=ue??gr(),ie=re?$s(re.shell,n,S?"embedded":"document"):null,Ve=f.useSyncExternalStore(aa,Gs),pe=ie!==null&&Jn(ie,Ve),ee=f.useRef(pe);ee.current=pe;const fe=ie!==null&&ei(ie),He=f.useRef(fe);He.current=fe;const Ce=ie!==null&&ti(ie),et=f.useRef(Ce);et.current=Ce;const tt=ri(),Ht=f.useRef(tt);Ht.current=tt;const Bt=f.useRef(null),zt=f.useRef(null),q=f.useRef(null),Ae=f.useRef(null);(!Ae.current||Ae.current.documentId!==n)&&(Ae.current&&Ye.release(Ae.current),Ae.current=Ye.claim(n)),f.useEffect(()=>{const R=Ae.current,me=Ye.generation(R);return()=>Ye.release(R,me)},[n]);const $=Ae.current,Be=le?.kind==="world-root",_t=w||Be,Pr=f.useRef(le?.kind==="world-root"?le.load:null);Pr.current=le?.kind==="world-root"?le.load:null;const[ze,Wt]=f.useState(_t);f.useEffect(()=>Wt(_t),[_t]);const It=f.useRef(C);f.useEffect(()=>{It.current=C;const R=q.current?.session;R&&(R.selectionOutlineEnabled=N!=="inspector-preview"&&C),q.current?.applyPresentation?.()},[C,N]);const Cr=f.useRef(Promise.resolve()),Nt=f.useRef(!1);f.useEffect(()=>{if(ze)return rt.current=!1,qt("building"),()=>{const R=q.current;if(R&&!Be){Nt.current=!dt.current;const me=R.store.cameraPose;$.camera=me&&R.viewport?{...me,up:R.viewport.camera.up.clone()}:null,$.presentation=R.session?.presentation()??null,$.transport=R.transport.snapshot(),$.contentSeconds=R.contentSeconds,$.transportAdvances=R.transportAdvances}mt.current=null,gt.current=null,ft.current=null,pt.current=null,R?.close(),q.current=null}},[n,N,$,ze,Be]);const kr=f.useRef(Q);kr.current=Q;const Er=f.useRef(y);Er.current=y;const Mr=f.useRef(U);Mr.current=U;const $t=f.useRef(Y);$t.current=Y;const Or=f.useRef(F);Or.current=F;const Rr=f.useRef(Z);Rr.current=Z;const dt=f.useRef(w);dt.current=w;const jr=f.useRef(w),Tr=f.useRef({build:t,sourcePath:e});f.useEffect(()=>{const R=Tr.current;Tr.current={build:t,sourcePath:e},!(R.build===t&&R.sourcePath===e)&&!ze&&$.source&&($.source.dispose(),$.source=null)},[t,$,e,ze]);const pt=f.useRef(null),rt=f.useRef(!1),ft=f.useRef(null),mt=f.useRef(null),gt=f.useRef(null),[Gt,oe]=f.useState(null),[Ut,qt]=f.useState("building"),[Vr,an]=f.useState(null),[cn,ln]=f.useState("mounting"),[un,hn]=f.useState([]),Ar=f.useRef(null),[Lr,dn]=f.useState("perspective"),[pn,Fr]=f.useState(null),vt=f.useRef(null);vt.current=pn;const Xt=a?.[0],Yt=a?.[1],Kt=a?.[2],st=I?.kind,Zt=I?.kind==="project-file"?I.path:void 0,wt=I?.kind==="entity"?I.entityId:void 0,Dr=k?.environment,Hr=k?.background,Br=k?.keyLight,Qt=k?.grid,nt=k?.viewLocked,Jt=k?.toneMapping;w&&si(n),f.useEffect(()=>{let R=!1;if(!ze)return;const me=async ke=>{const G=Bt.current,it=zt.current;if(!G||!it||q.current)return;const M=Ht.current;if(!M){oe("The world root needs the editor shell above it; this host has none.");return}const ot=await ke();if(R||q.current)return;an(()=>ot),hs();const r=new Ns("own",ot.mountWorldRootSurface(it,G,s),gr()??void 0);q.current=r,r.cleanups.push(ds(n,r.store.shell)),r.cleanups.push(ps(n,r.transport)),r.cleanups.push(Pi(n,{...Io(r.store,n),...Ds(n)}));const ae=ot.installWorldRootStage({store:r.store,documentId:n,container:G,canvas:r.surface.canvas,renderer:r.surface.renderer,stats:M,cameraPreview:()=>Ar.current,onMountStatus:ln,onRootIds:hn,runFrame:Ee=>Ts(n,Ee)});r.viewport=ae.viewport,r.frame=ae.frame,r.content={scene:ae.scene,settle:()=>Promise.resolve(),dispose:async()=>ae.dispose()};const j=As(()=>r.store.scene??ae.scene,r.transport,{rescanOnLiveMixers:()=>r.store.shell.playState==="stopped"});let se=0;r.cleanups.push(()=>j.dispose()),r.cleanups.push(r.store.shell.subscribe(()=>{if(r.store.shell.playState!=="stopped")return;const Ee=performance.now();Ee-se<oa||(se=Ee,j.refresh())})),r.cleanups.push(Vs({camera:ae.viewport.camera,drawCamera:()=>ae.viewport.renderCamera,orbit:ae.viewport.orbitControls,scene:ae.scene},ae.present,ae.setHelper,{documentId:n})),pt.current=r.rendererSession,r.initialized=!0,bs(),qt("ready"),r.rendererSession.setActive(!0)},mn=async()=>{for(await q.current?.content?.settle();Yi();)await Ki();if(R)return;const ke=Pr.current;if(ke)return me(ke);const G=Bt.current,it=zt.current;if(!G||!it)return;if(!t||e===void 0){oe("This stage shows `build` content and was given no `build()`/`sourcePath`.");return}let M;const ot=Ye.generation($);try{M=$.source??t(),$.source=null}catch(te){oe(te instanceof Error?te.message:String(te));return}try{q.current||(hs(),q.current=new Ns(N,ha(it,N,s,{width:Math.max(1,G.clientWidth),height:Math.max(1,G.clientHeight)},()=>{Wt(!1),window.setTimeout(()=>{dt.current&&Wt(!0)},0)}),$.store),q.current.contentSeconds=$.contentSeconds,q.current.transportAdvances=$.transportAdvances)}catch(te){throw M.dispose(),te}const r=q.current,ae=r.borrow(),{renderer:j,canvas:se,lease:Ee}=r.surface,T=r.store;S||(r.cleanups.push(ds(n,T.shell)),r.cleanups.push(ps(n,r.transport)));const yt=fs();yt&&T.shell.attachHistory(yt);const tr=N==="inspector-preview",_e=ee.current,_r=He.current,Wr=et.current,A=new en,St=M.root.parent;A.add(M.root),M.animations&&(M.root.animations=[...M.animations]);const rr={root:M.root,animations:M.root.animations};let We=null,Ie=null,Ne=null,Me=null,he=null,xt=null,Pt=null,Ct=null,kt=null,Et=null,sr=null,Ir=null,Nr=null,$r=!1,Mt=!1,Ot=null;const nr={scene:A,settle:()=>he?.settle()??Promise.resolve(),dispose:()=>{if(Ot)return Ot;Mt=!0;const te=Nt.current;return Nt.current=!1,xt&&G.removeEventListener("pointerdown",xt,!0),Pt&&G.removeEventListener("pointermove",Pt,!0),Ct&&G.removeEventListener("pointerup",Ct,!0),kt&&G.removeEventListener("pointercancel",kt,!0),Et&&window.removeEventListener("keydown",Et),sr?.(),sr=null,Ot=(async()=>{await he?.settle();const at=[];for(const Rt of[()=>Me?.dispose(),()=>Ie?.dispose?.(),()=>We?.dispose(),()=>A.removeFromParent(),()=>{te?Ye.retain($,M,ot):M.dispose()},ae])try{Rt()}catch(ge){at.push(ge)}at.length&&console.error("Object3D source cleanup failed.",...at)})(),Ot}};try{const te=async l=>{try{const m=rr;if(o&&!c){if(!m)throw new Error("Project history is unavailable; the edit was not saved.");const h=fs();if(!h)throw new Error("Project history is unavailable; the edit was not saved.");const v=o.serialize(m);if(v===null)return oe(null),!1;const g=await Ws().replaceSource(h,{file:o.path,source:v,label:l??o.label??`Edit ${s}`});return oe(null),g}if(!c)throw new Error("This Asset Lab document has no persistence binding.");if(!Ne||!m)throw new Error("Project history is unavailable; the edit was not saved.");const{persisted:x}=await(await Ne).commit(m,l);return oe(null),x}catch(m){throw oe(m instanceof Error?m.message:JSON.stringify(m)),m}};We=new vo(T,A,{documentId:n,title:s,sourcePath:e,documentKind:Wr?"asset":"source",audit:P,...M.hierarchyRoots?{hierarchyRoots:M.hierarchyRoots}:{},...st==="project-file"&&Zt?{modelSource:{kind:st,path:Zt}}:st==="entity"&&wt?{modelSource:{kind:st,entityId:wt}}:{}});const at={documentId:n,sourcePath:e,root:M.root,animations:M.root.animations,scene:A,defaultAdapter:We,commit:te};Ie=u?.(at)??null;const Rt=Ie?We:null;!Ie&&E&&(Ie=E({store:T,scene:A,...M.hierarchyRoots?{hierarchyRoots:M.hierarchyRoots}:{}}),We.dispose()),Ne=c&&yt?Ws().openPersistence({binding:c,document:rr,history:yt}):null,Ne&&Ne.catch(l=>{!Mt&&q.current?.content===nr&&oe(l instanceof Error?l.message:JSON.stringify(l))});const ge=Ie?.adapter??We;if(!r.dressing){j.outputColorSpace=Js,j.toneMapping=Jt??qi,j.shadowMap.enabled=!0,j.shadowMap.type=Xi,j.info.autoReset=!1,j.setPixelRatio(Math.min(window.devicePixelRatio,2)),_e&&j.setClearColor(0,0);const l=Dr===!1?null:Ee&&"environment"in Ee?Ee.environment():Vi(j),m=ms(se);r.dressing=Mi(r.scene,{environment:l,background:!_e&&i===void 0&&Hr!==!1,keyLight:!1,grid:Qt===!0,content:M.root}),!_e&&i!==void 0?r.scene.background=new be(i):!_e&&m.background!==null&&(r.scene.background=new be(m.background)),r.defaultEnvironment=r.scene.environment,r.defaultBackground=r.scene.background;{const x=new Oi(r.scene,H);r.presentationRig=x,gs(n,de);let h=r.store.shell.showHelpers;const v=()=>{const g=Ze(n);if(h=r.store.shell.showHelpers,x.apply(g,j,Jt),r.viewport?.setStageFunction(g.world,g.interaction),r.viewport?.setFieldOfView(g.camera.fov),r.viewport?.setSelectionMarks(g.overlays.selection),r.viewport?.setGridMajorEvery(g.overlays.grid.majorEvery),r.viewport?.setAxisLines(g.overlays.axes),r.viewport?.setNavigation(g.overlays.navigation),r.viewport?.setGridVisible(g.overlays.grid.visible&&h),r.session){const O=r.session.presentation().mode==="wireframe"&&g.xray.enabled&&g.xray.alpha<=0;r.session.selectionOutlineEnabled=!tr&&h&&It.current&&g.overlays.selection.outline&&!O,r.session.selectionOriginsEnabled=!tr&&h&&g.overlays.selection.origins,r.session.setXray(g.xray)}H()};r.applyPresentation=v,v(),r.cleanups.push(mr(v)),r.cleanups.push(r.store.shell.subscribe(()=>{r.store.shell.showHelpers!==h&&v()})),r.cleanups.push(ci(()=>{x.forgetFailedImages(),v()})),r.cleanups.push(()=>{x.dispose(),r.presentationRig===x&&(r.presentationRig=null)})}r.cleanups.push(()=>{r.defaultBackground instanceof Cs&&r.defaultBackground!==r.dressing?.backgroundTexture&&r.defaultBackground.dispose()})}const Gr=(l,m)=>{const x=r.adapter,h=r.viewport;if(!x||!h)return null;const v=se.getBoundingClientRect(),g=new ut((l-v.left)/Math.max(v.width,1)*2-1,-((m-v.top)/Math.max(v.height,1))*2+1),O=new ks;O.layers.enableAll(),O.params.Line2={threshold:4},O.setFromCamera(g,r.session?.camera()??h.camera);const K=r.presentationAdapter,ne=L=>{for(let W=L;W;W=W.parent){const J=K?.hierarchy.idForObject3D?.(W)??x.hierarchy.idForObject3D?.(W);if(J)return J}return null};let ve=null;for(const L of O.intersectObjects([...T.objectMap.values()],!0)){if(Ti(L.object))continue;const W=ne(L.object);if(W){ve={distance:L.distance,id:W};break}}const ye=h.visibleHelpers().filter(L=>L.userData.volterPickable===!0);for(const L of O.intersectObjects(ye,!0)){let W=null,J=!0;for(let Re=L.object;Re;Re=Re.parent)Re.visible||(J=!1),W??=Re.userData.volterPicksAs??null;if(!J)continue;const ce=W?ne(W):null;if(ce){(!ve||L.distance<ve.distance)&&(ve={distance:L.distance,id:ce});break}}return ve?.id??null};if(!r.viewport){r.viewport=new co(se,r.scene,T,G,{renderer:j,authoring:()=>r.adapter??ge,pick:Gr,drawCamera:()=>r.session?.camera()??r.viewport.camera,publishPickContext:!1,onProjectionChange:dn,chromeInsetPx:S||_r?0:fr,lightRig:!1}),Qt===!0&&r.viewport.grid.removeFromParent();const l=m=>{const x=Gr(m.clientX,m.clientY),h=x&&r.adapter?De(r.adapter.hierarchy,x):null;h&&kr.current?.(h)};G.addEventListener("dblclick",l),r.cleanups.push(()=>G.removeEventListener("dblclick",l))}const b=r.viewport;if(nt){const l=b.camera;r.scene.add(l);const m=new Ft;m.name="volter:document-studio",m.add(nt),l.add(m),r.documentStudio=m,r.cleanups.push(()=>{nt.removeFromParent(),m.removeFromParent(),r.documentStudio===m&&(r.documentStudio=null),l.removeFromParent()})}if(p){const l=new Ft;l.name="__object3d_document_overlay",Xs(l,"editorHelper",!0),A.add(l),Me=p.setup({root:M.root,scene:A,renderer:j,overlay:l,camera:()=>r.session?.camera()??b.camera,writable:c!==void 0||o!==void 0});const m=h=>{const v=se.getBoundingClientRect(),g=new ut((h.clientX-v.left)/Math.max(v.width,1)*2-1,-((h.clientY-v.top)/Math.max(v.height,1))*2+1),O=new ks;return O.layers.enableAll(),O.setFromCamera(g,r.session?.camera()??b.camera),{pointerId:h.pointerId,button:h.button,buttons:h.buttons,clientX:h.clientX,clientY:h.clientY,altKey:h.altKey,ctrlKey:h.ctrlKey,metaKey:h.metaKey,shiftKey:h.shiftKey,ray:O.ray.clone(),hits:O.intersectObjects([M.root,l],!0)}};he=new zo({begin:h=>{if(!c&&!o)throw new Error("This Asset Lab document has no persistence binding; project gestures are read-only.");return Me.begin(h)},persist:async h=>{await te(h)},reportError:h=>oe(h instanceof Error?h.message:JSON.stringify(h))});const x=h=>{h.preventDefault(),h.stopPropagation()};xt=h=>{h.target instanceof Element&&h.target.closest('[role="alert"], [role="toolbar"]')!==null||he?.begin(m(h))&&(x(h),h.isTrusted&&se.setPointerCapture?.(h.pointerId))},Pt=h=>{he?.hasActiveGesture()&&(x(h),he.update(m(h)))},Ct=h=>{he?.hasActiveGesture()&&(x(h),se.hasPointerCapture?.(h.pointerId)&&se.releasePointerCapture?.(h.pointerId),he.commit(m(h)))},kt=h=>{he?.hasActiveGesture()&&(x(h),he.cancel(h.pointerId))},Et=h=>{h.key!=="Escape"||!he?.hasActiveGesture()||(h.preventDefault(),he.cancel())},Ir=()=>{G.addEventListener("pointerdown",xt,!0),G.addEventListener("pointermove",Pt,!0),G.addEventListener("pointerup",Ct,!0),G.addEventListener("pointercancel",kt,!0),window.addEventListener("keydown",Et)}}const Le=r.content,Ur=[...T.shell.selectedEntityIds],ct=r.adapter,vn=r.presentationAdapter,wn=new Map(T.objectMap),$e=r.session?.root,bn=r.frame,yn=r.syncHostScene,Sn=mt.current,xn=gt.current,Pn=ft.current,qr=r.session?.neutralBackgroundTexture(),Cn=r.dressing.lights.map(l=>l.visible),kn=r.cleanups.length,En=r.initialized;if(Nr=()=>{A.removeFromParent(),St&&St.add(M.root),Le&&r.scene.add(Le.scene),r.adapter=ct,r.presentationAdapter=vn,r.content=Le,r.frame=bn,r.syncHostScene=yn,r.initialized=En;for(const l of r.cleanups.splice(kn))l();!$e&&r.session&&(r.session.dispose(),r.session=null),T.objectMap.clear();for(const[l,m]of wn)T.objectMap.set(l,m);Le&&T.bindScene(Le.scene,j,b.batchedRenderer,b.camera),$e&&ct&&r.session?.replaceContent($e,ct),mt.current=Sn,gt.current=xn,ft.current=Pn,vt.current=ct,Fr(ct),qr!==void 0&&r.session?.setNeutralBackground(qr),r.dressing?.lights.forEach((l,m)=>{l.visible=Cn[m]??!0}),$e&&(r.dressing?.frameContent($e),r.presentationRig?.placeFloor($e)),T.shell.selectMultiple(Ur),T.notifyIngestObjectMapEdit()},Le?.scene.removeFromParent(),r.scene.add(A),r.adapter=ge,r.presentationAdapter=Rt,r.content=nr,T.bindScene(A,j,b.batchedRenderer,b.camera),T.setOrbitTarget(b.orbitControls.target),T.objectMap.clear(),A.traverse(l=>{const m=Rt?.hierarchy.idForObject3D?.(l)??ge.hierarchy.idForObject3D?.(l);m&&T.objectMap.set(m,l)}),r.session)r.session.replaceContent(M.root,ge);else{const l=Is(Er.current),m=Is(Mr.current)??l,x=Ze(n).camera;b.setFieldOfView(x.fov);const h=$t.current,v=Xt!==void 0&&Yt!==void 0&&Kt!==void 0;if(!h&&!v){const g=b.orbitControls.target,O=b.camera.position.distanceTo(g);b.camera.position.copy(g).addScaledVector(new B(...x.opening).normalize(),O)}if(m||b.focusOn(M.root),h){const g=new B(...h.target),O=new B(...h.direction).normalize();b.camera.position.copy(g).addScaledVector(O,h.distance),b.camera.up.set(0,1,0),h.up&&b.camera.up.set(...h.up),b.orbitControls.target.copy(g)}else if(v){const g=m??vr(M.root),O=g.getCenter(new B),K=new B(Xt,Yt,Kt).normalize(),ne=Lt(g,b.camera,K)*Math.min(10,Math.max(.1,_??1));b.camera.position.copy(O).add(K.multiplyScalar(ne)),b.orbitControls.target.copy(O)}if(r.session=new Fo(n,M.root,r.scene,j,b,ge,_e?null:i===void 0?r.dressing.backgroundTexture:new be(i),l),r.session.selectionOutlineEnabled=!tr&&It.current,r.session.setCameraViewSource(Rr.current??null),r.applyPresentation?.(),$t.current?.projection==="orthographic"&&r.session.setProjection("orthographic"),!_e&&i===void 0&&r.dressing.backgroundTexture){const g=r.session;r.cleanups.push(Ri(()=>{const O=ms(se).background,K=r.defaultBackground;r.defaultBackground=O!==null?new be(O):ji(),g.neutralBackgroundTexture()===K&&g.setNeutralBackground(r.defaultBackground),K instanceof Cs&&K!==r.dressing?.backgroundTexture&&K.dispose()}))}}const lt=$.camera;lt&&(b.setPose(lt.position,lt.target,lt.fov||void 0,lt.up),b.setProjection(Lr),$.camera=null);const X=r.session;mt.current=rr,gt.current=Ne,ft.current=Me,vt.current=ge,Fr(ge);const ir=li(de)?.all?.lighting!==void 0||ui(de)?null:nt?{all:{lighting:{source:"studio",studioPreset:vs.id,auto:null}}}:Br===!1?{all:{lighting:{source:"scene"}}}:null,jt=Or.current??null;gs(n,de,ir&&jt?hi(ir,jt):jt??ir);const or=new Set(ca);let Xr;const Yr=()=>{const l=r.session?.presentation().mode;l!==Xr&&(Xr=l,r.applyPresentation?.()),!(l===void 0||!or.has(l))&&Ze(n).drawMode!==l&&di(n,{drawMode:l})},ar=jt?.drawMode??pi(n).drawMode;ar!==void 0&&or.has(ar)&&r.session&&r.session.setMode(ar),Yr();const Mn=r.session?.subscribe(Yr),On=mr(()=>{const l=r.session,m=Ze(n).drawMode;l&&l.presentation().mode!==m&&or.has(l.presentation().mode)&&l.setMode(m)});r.cleanups.push(()=>{Mn?.(),On()});const Tt=[];M.root.traverse(l=>{l.isLight&&Tt.push(l)});const Rn={light:Tt.length>0,"directional-light":Tt.some(l=>l.isDirectionalLight)};r.contentLights=Tt,r.contentHas=Rn,r.dressing.frameContent(M.root),r.presentationRig?.placeFloor(M.root),r.cleanups.push(T.shell.subscribe(()=>r.presentationRig?.placeFloor(M.root)));const Kr=new Set;T.shell.selectMultiple(Ur.filter(l=>{const m=T.objectMap.get(l)??De(ge.hierarchy,l);if(m===null&&!T.objectMap.has(l))return!1;const x=m??l;return Kr.has(x)?!1:(Kr.add(x),!0)})),T.notifyIngestObjectMapEdit(),X.syncSelectionPresentation(),Ir?.(),oe(null),S||ws(n);let Vt=A.background;X.setNeutralBackground(Vt??r.defaultBackground);const Ge=$.presentation;Ge&&(X.setMode(Ge.mode),X.setBackground(Ge.background),X.setProjection(Ge.projection),X.setSkeleton(Ge.skeleton),X.setBounds(Ge.bounds),$.presentation=null);const jn=()=>{r.viewport?.alignGridToView(X.camera(),j.domElement.width),r.scene.environment=A.environment??r.defaultEnvironment,r.scene.fog=A.fog,r.scene.environmentIntensity=A.environmentIntensity,r.scene.environmentRotation.copy(A.environmentRotation),r.scene.backgroundIntensity=A.backgroundIntensity,r.scene.backgroundBlurriness=A.backgroundBlurriness,r.scene.backgroundRotation.copy(A.backgroundRotation);const l=r.presentationRig;if(l){const m=l.resolveSource({...r.contentHas,environment:A.environment!==null}),x=l.environment();x&&(r.scene.environment=x.texture??r.defaultEnvironment,r.scene.environmentIntensity=x.intensity,r.scene.environmentRotation.set(0,x.rotation,0));const h=l.backdrop();h!=="keep"?(r.scene.background=h.value,r.scene.backgroundBlurriness=h.blur,r.scene.backgroundIntensity=h.intensity,r.scene.backgroundRotation.set(0,h.rotation,0),r.backdropOverridden=!0):r.backdropOverridden&&(r.scene.background=X.neutralBackgroundTexture(),r.scene.backgroundBlurriness=A.backgroundBlurriness,r.scene.backgroundIntensity=A.backgroundIntensity,r.backdropOverridden=!1);const v=m==="studio"&&l.presetId()===vs.id;r.documentStudio&&(r.documentStudio.visible=v);const g=m==="studio"&&!v||m==="preview"&&!l.sceneLightsShown()?r.darkenContentLights():0;l.update(X.camera()),fi(n,{source:m,presetId:l.presetId(),presetLights:l.lightsVisible(),documentStudio:r.documentStudio?r.documentStudio.visible:null,contentLights:r.contentLights.length,contentLightsDarkened:g,environmentIntensity:r.scene.environmentIntensity,environmentImage:l.imageReport().shown,environmentImagePending:l.imageReport().pending,toneMapping:String(j.toneMapping)})}Vt!==A.background&&(Vt=A.background,X.setNeutralBackground(Vt??r.defaultBackground))};r.syncHostScene=jn,X.setBeforeRender(()=>r.syncHostScene?.()),X.setPresentsFrames(!0);const Tn=l=>{Mt||!(l>0)||!Number.isFinite(l)||(r.contentSeconds+=l,r.transportAdvances++,M.update?.(l))},Vn=As(M.root,r.transport);r.cleanups.push(()=>Vn.dispose());const Oe=$.transport;Oe&&(Oe.activeSubject&&r.transport.setActiveSubject(Oe.activeSubject),r.transport.setLoop(Oe.range.loop),r.transport.setTimeScale(Oe.timeScale),r.transport.seek(Oe.time),Oe.playbackState==="playing"?r.transport.play():Oe.playbackState==="paused"&&r.transport.pause(),$.transport=null);let cr=performance.now();const Zr=typeof M.onChange=="function";let lr=!0;const At=()=>{lr=!0};if(Zr){const l=M.onChange(At),m=T.shell.subscribe(At),x=["pointerdown","pointermove","pointerup","pointerleave","wheel","keydown","keyup"];for(const h of x)G.addEventListener(h,At,{capture:!0,passive:!0});sr=()=>{l(),m();for(const h of x)G.removeEventListener(h,At,{capture:!0})}}let Qr=-1;const Jr=new Es,es=new Es,ts=new ut,rs=new ut;let ss,ns=null,is=Number.NaN;const An=l=>{if(!Zr||lr||l>0||ys()!==Qr||X.needsFrame()||r.presence?.live()||Me?.prepareFrame||Me?.update||(b.batchedRenderer.batches?.length??0)>0)return!0;const m=X.camera();return m.updateMatrixWorld(),j.getDrawingBufferSize(rs),!m.matrixWorld.equals(Jr)||!m.projectionMatrix.equals(es)||!rs.equals(ts)||r.scene.background!==ss||j.toneMapping!==ns||j.toneMappingExposure!==is},Ln=()=>{lr=!1,Qr=ys();const l=X.camera();Jr.copy(l.matrixWorld),es.copy(l.projectionMatrix),j.getDrawingBufferSize(ts),ss=r.scene.background,ns=j.toneMapping,is=j.toneMappingExposure},os=(l,m)=>{if(Mt||!j||!b)return;const x=j,h=b,v=X?.profiler;v?.beginFrame(),m&&(cr=l);const g=Math.min((l-cr)/1e3,.1);cr=l,v?.beginPhase();const O=r.transport.tick(g);if(O>0&&Tn(O),Me?.prepareFrame?.(g),Me?.update?.(g),v?.endPhase("animation"),v?.beginPhase(),r.presence?.syncMarkers(g),b.update(g),S||Ts(n,g),b.batchedRenderer.update(g),v?.endPhase("editor"),!m&&!An(O)){v?.endFrame();return}v?.beginPhase(),x.info.reset();const K=!rt.current&&mi()===n;K&&gi(n);const ne=K?Date.now():0,ve=r.scene.overrideMaterial,ye=X.presentation().mode;ye!=="uv"&&ye!=="vertex-colors"&&(r.scene.overrideMaterial=A.overrideMaterial);try{h.renderWithInfrastructure(()=>{X.renderViewport(g),h.renderViewCube(x)})}finally{r.scene.overrideMaterial=ve}X.servePresentedFrame(),Ln(),rt.current||(rt.current=!0,K&&vi("first-render",Date.now()-ne),wi(n),qt("ready")),v?.reportRender({gpuMs:null,drawCalls:x.info.render.calls,triangles:x.info.render.triangles,geometries:x.info.memory.geometries,textures:x.info.memory.textures}),v?.endPhase("render"),v?.endFrame();const L=Ht.current;if(L&&ue&&bi(ue.shell)===T.shell){const W=X.cameraPose();L.frameTime=g*1e3,L.fps=g>0?1/g:0,L.drawCalls=x.info.render.calls,L.triangles=x.info.render.triangles,L.cameraPosition.x=W.position[0],L.cameraPosition.y=W.position[1],L.cameraPosition.z=W.position[2],L.cameraTarget.x=W.target[0],L.cameraTarget.y=W.target[1],L.cameraTarget.z=W.target[2]}};r.frame=os;const Fn=l=>{if(!j)throw new Error("This stage has no renderer yet.");const m=j,x=m.getContext(),h=new Uint8Array(4),v=[];for(let J=0;J<=l;J++){const ce=performance.now();os(ce,!0),x.readPixels(0,0,1,1,x.RGBA,x.UNSIGNED_BYTE,h),J>0&&v.push(performance.now()-ce)}const g={calls:m.info.render.calls,triangles:m.info.render.triangles};let O=0,K=0;r.scene.traverseVisible(J=>{const ce=J;if(!ce.isMesh||!ce.geometry)return;O++;const Re=ce.geometry.getIndex(),Dn=Re?Re.count:ce.geometry.getAttribute("position")?.count??0;K+=Math.floor(Dn/3)*(ce.count??1)});const ne=[...v].sort((J,ce)=>J-ce),ve=J=>ne[Math.min(ne.length-1,Math.floor(J*ne.length))]??0,ye=m.getDrawingBufferSize(new ut),L=m.getPixelRatio(),W=J=>Math.round(J*100)/100;return{frames:l,medianMs:W(ve(.5)),p95Ms:W(ve(.95)),minMs:W(ne[0]??0),width:ye.x,height:ye.y,cssWidth:W(ye.x/L),cssHeight:W(ye.y/L),devicePixelRatio:L,drawn:g,scene:{meshes:O,triangles:K},drawMode:Ze(n).drawMode}};if(pt.current=r.rendererSession,!r.initialized){S||(r.cleanups.push(Vs({camera:b.camera,drawCamera:()=>r.session?.camera()??b.camera,orbit:b.orbitControls,scene:r.scene,frameCost:v=>Fn(v)},()=>null,(v,g)=>b.setHelper(v,g),{documentId:n})),Je(()=>import("./stage-presence-markers-DfVJAOvz.js"),__vite__mapDeps([69,4,5,7,8,9,10,6,11,12,13,26,27,18,2,70])).then(v=>{if(r.isClosed||q.current!==r||r.presence)return;const g=v.bindStagePresenceMarkers({scene:r.scene,store:T,documentId:n,container:G,canvas:se,viewport:b,readVisibleCameraPose:()=>{const O=r.session?.camera()??b.renderCamera,K=O.getWorldPosition(new B),ne=O.fov;return{position:K,target:b.orbitControls.target,fov:typeof ne=="number"?ne:0}}});r.presence=g,r.cleanups.push(()=>g.dispose())}),r.cleanups.push(go(X,Ds(n))),r.cleanups.push(yi({id:n,label:s,kind:Wr?"asset":"source",profiler:X.profiler}))),!S&&!_r&&r.cleanups.push(Si(n,()=>({adapter:r.adapter,nodeId:r.adapter?.selection?.get()[0]??null})));const l=S?`${n}#chromeless-${++la}`:n;r.cleanups.push(xi({id:l,label:s,contentClock:()=>r.contentSeconds,transportAdvances:()=>r.transportAdvances})),r.cleanups.push(T.shell.onViewportAction(v=>{switch(v.type){case"focus-selection":case"focus-scene":!r.session?.frame()&&r.session?.root&&b.focusOn(r.session.root);break;case"focus-entity":{const g=r.adapter?De(r.adapter.hierarchy,v.id):null;g&&b.focusOn(g);break}case"snap-selection-to-floor":b.snapSelectionToFloor();break;case"set-view-preset":r.session?r.session.setViewPreset(v.preset==="perspective"?"isometric":v.preset,"view"):b.setViewPreset(v.preset);break;case"toggle-camera-view":r.session?.toggleCameraView();break;case"frame-all":!r.session?.frame(1,"all")&&r.session?.root?b.focusOn(r.session.root):r.session||b.focusOnScene();break;case"zoom-view":r.session?.cameraView()&&!r.session.cameraViewLocked()?r.session.zoomCameraView(v.direction>0?1.2:1/1.2):b.zoomStep(v.direction);break;case"step-view":if(r.session?.cameraView()&&!r.session.cameraViewLocked())break;b.stepView(v.step);break;case"toggle-projection":{const g=r.session;if(g?.cameraView())break;const K=(g?g.projection():b.projection)==="perspective"?"orthographic":"perspective";g?g.setProjection(K):b.setProjection(K);break}case"set-camera-pose":b.setPose(v.position,v.target,v.fov);break}}));let m="";r.cleanups.push(T.shell.subscribe(()=>{b.objectMap=T.objectMap,b.syncFromStore(),r.session?.syncSelectionPresentation();const v=(r.adapter?.selection?.get()??[]).join("\0");v!==m&&(m=v,S||ws(n))}));const x=()=>{const v=Math.max(1,G.clientWidth),g=Math.max(1,G.clientHeight),O=j.getPixelRatio();(se.width!==Math.floor(v*O)||se.height!==Math.floor(g*O))&&j.setSize(v,g,!1),b.resize(v,g),r.session?.resize(v,g),r.rendererSession.redraw()},h=new ResizeObserver(x);h.observe(G),r.cleanups.push(()=>h.disconnect()),x(),r.initialized=!0,bs()}b.objectMap=T.objectMap,b.syncFromStore(),r.rendererSession.setActive(dt.current),r.rendererSession.redraw(),$r=!0,Le?.dispose()}catch(te){if(!$r)try{Nr?.()}finally{St&&M.root.parent===A&&St.add(M.root),nr.dispose()}console.error(`[object3d document] ${s}: source update failed`,te),oe(te instanceof Error?te.message:String(te))}},gn=Cr.current.then(mn);return Cr.current=gn.catch(ke=>{R||oe(ke instanceof Error?ke.message:String(ke))}),()=>{R=!0}},[u,i,t,Xt,Yt,Kt,s,n,pe,Hr,Dr,Qt,Br,nt,Jt,S,wt,st,Zt,p,c,o,N,$,ze,E,e,Be]),f.useEffect(()=>{const R=pt.current,me=w&&!jr.current;jr.current=w,R&&(me&&(rt.current=!1,ni(n)),R.setActive(w||Be))},[w,n,Be]);const bt=q.current,er=Ut==="ready"&&bt?.viewport?{store:bt.store,viewport:bt.viewport,canvas:bt.surface.canvas}:null,fn=f.useCallback(()=>{const R=vt.current;return R?{adapter:R,nodeId:R.selection?.get()[0]??R.hierarchy.roots()[0]?.id??null}:null},[]),zr=d.jsx("div",{"data-testid":"tool-object3d-authoring","data-volter-chromeless":S||void 0,className:pe?"volter-object3d-studio-stage":void 0,style:{position:S||fe?"relative":"absolute",...S?{width:"100%",height:"100%"}:fe?{flex:1,minHeight:0}:{inset:-fr},overflow:"hidden",background:pe?void 0:Qe.surface.raised,pointerEvents:"auto"},children:d.jsxs("div",{ref:Bt,style:{position:"absolute",inset:0,minHeight:0,overflow:"hidden"},children:[d.jsx(ua,{canvasHostRef:zt}),w&&er&&!S?d.jsx(f.Suspense,{fallback:null,children:d.jsx(na,{stage:er})}):null,ue&&!S?d.jsx(Xo,{store:ue,documentId:n,stage:er,active:w,chrome:"document"}):null,ue&&Vr?d.jsx(Vr.Overlays,{store:ue,documentId:n,cameraPreviewRef:Ar,mountStatus:cn,rootIds:un}):null,Gt&&d.jsx("div",{role:"alert",style:{position:"absolute",insetInline:0,top:0,display:"flex",justifyContent:"center",padding:"var(--volter-space-3)",pointerEvents:"none"},children:d.jsxs("div",{className:"volter-chrome-island",style:{display:"flex",alignItems:"center",gap:"var(--volter-space-3)",maxWidth:"80%",padding:"var(--volter-space-2) var(--volter-space-3)",borderRadius:"var(--volter-radius-md)",border:`var(--volter-stroke-resting) solid ${Qe.semantic.danger}`,background:Qe.surface.raised,color:Qe.semantic.danger,pointerEvents:"auto"},children:[d.jsx("span",{children:Gt}),d.jsx(Fe,{size:"compact","aria-label":"Dismiss",onClick:()=>oe(null),"data-testid":"object3d-document-error-dismiss",children:d.jsx(xe,{icon:Se.action.close})})]})}),!Gt&&Ut==="building"&&d.jsx(yo,{testId:"object3d-document-status",children:So}),d.jsx("div",{style:{position:"absolute",inset:S||fe?0:fr,pointerEvents:"none"},children:!S&&Ut==="ready"&&q.current&&d.jsx(ra,{viewport:q.current.viewport,documentId:n,session:q.current.session,store:q.current.store.shell,projection:Lr,displayName:s,...D?{statistics:D}:{},...Pe!==void 0?{subject:Pe}:{},...Te?{gridScale:Te}:{},objectName:R=>(me=>me?De(me.hierarchy,R)?.name:void 0)(q.current?.adapter)??q.current?.store.objectMap.get(R)?.name??null})})]})});return fe?d.jsx(ii,{documentId:n,active:w,type:z??(wt?"entity":"model"),title:s,status:e,selection:fn,fill:!0,children:d.jsxs("div",{className:"volter-object3d-asset-workspace",children:[zr,d.jsx(bo,{transport:q.current?.transport??null})]})}):zr}function da(n){return d.jsx(on,{...n})}const Ia=Object.freeze(Object.defineProperty({__proto__:null,Object3DDocumentViewport:on,ToolObject3DAuthoring:da},Symbol.toStringTag,{value:"Module"}));export{on as O,Ia as S,Ko as V,Hs as s,No as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{T as i,r as m}from"./index-9nYTVIws.js";import{e as p}from"./game-network-BuhrtQlJ.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"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-lQJX-160.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BFq6QR4G.js";import"./contract-system-adapters-C1bKdaVk.js";import"./game-contract-seams-Cfyg896y.js";import"./seeded-random-DfGQ6n66.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-DmeaOP4r.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-DzuOGwVB.js";import"./live-project-verbs-E-s8WH5m.js";import"./capability-coverage-rUUpSzOn.js";import"./edit-mode-authoring-Cm2rEFlJ.js";import"./json-history-resource-C818aJwj.js";import"./binding-resolver--K9B2aXQ.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-NnoNrbsM.js";import"./canvas-entry-runtime-Cg364i6A.js";import"./three-ingest-runtime-CDzGhpUC.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-Lfx46SVT.js";import"./ingest-source-persistence-DbuTxtMu.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-D1HAou7A.js";import"./mounted-authoring-CHg17ilK.js";import"./entity-object-DiC6cpEd.js";import"./user-data-BQR8TLTV.js";import"./workspace-arrangement-8FYR3_fQ.js";import"./three-contract-Dkt6PmWY.js";import"./three-Cq9i0Lo_.js";import"./editor-layers-kBpG49pG.js";import"./component-instance-root-DktYaTot.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter--CDtc-SE.js";import"./source-persistence-backend-CTvhQwDl.js";import"./three-projection-core-CxFDvqEe.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-BNfJcrsE.js";import"./deferred-ingest-play-sqaLv2U9.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CW_LKdTk.js";import"./board-guides-BRZrEdtv.js";import"./relative-import-specifier-CAVq9YAo.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-3o2qSIRq.js";import"./inference-diagnostics-71A-NHW0.js";import"./writer-tw6EcuVO.js";import"./three-state-BHy0drOJ.js";import"./editor-shell-store-C6VYP6ve.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-3sS8tuxh.js";import"./game-surface-defaults-D8S4cRxi.js";const Ut="workspace.service";function e(o){p().catch(t=>{m().console.error(`${o}: ${t instanceof Error?t.message:String(t)}`,"play")})}function bt(){let o,t=!1;const r=i(()=>{t||new URLSearchParams(window.location.search).get("play")==="1"&&(t=!0,o=window.setTimeout(()=>e("Could not enter requested Play mode"),0))});return()=>{o!==void 0&&window.clearTimeout(o),r()}}export{Ut as point,bt as start};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{r as E,ls as yt}from"./index-9nYTVIws.js";import{a as bt}from"./preview-renderer-BrYNFV1p.js";import{v as Mt}from"./output-pass-HurwNl0G.js";import{_ as vt,fx as Ue,bi as De,aC as xt,d7 as Et,ej as St,cP as be,el as kt,cm as Bt,cl as Ve,fo as ue,ex as Ct,d5 as At,d9 as It,cJ as jt,e as We}from"./three.core-3arARmh6.js";import{f as Tt}from"./clip-planes-CnAI6DZn.js";import{a as Lt}from"./content-bounds-CY_M6Fwr.js";const Ft=1024*1024,Ge={Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array},_t=async t=>Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",t)),e=>e.toString(16).padStart(2,"0")).join("");class $t{constructor(){this.buffers=null,this.offsets=[]}reset(){this.buffers=null,this.offsets=[]}async accept(e){try{if(e.kind==="begin"){if(this.buffers)throw new Error("A frame value is already arriving");if(!e.lengths.length||e.lengths.length>4096||e.lengths.reduce((s,o)=>s+o,0)>2*1024**3||e.lengths.some(s=>!Number.isSafeInteger(s)||s<0||s>1024**3))throw new Error("Invalid frame buffer lengths");this.buffers=e.lengths.map(s=>new Uint8Array(s)),this.offsets=e.lengths.map(()=>0);return}if(!this.buffers)throw new Error("Frame chunk arrived without its manifest");if(e.kind==="bytes"){const s=this.buffers[e.slot];if(!s||!Number.isSafeInteger(e.offset)||e.offset!==this.offsets[e.slot]||e.bytes.byteLength>Ft||!e.bytes.byteLength||e.offset+e.bytes.byteLength>s.byteLength)throw new Error("Frame chunk is out of order or exceeds its bound");if(await _t(e.bytes)!==e.sha256)throw new Error("Frame chunk digest mismatch");s.set(e.bytes,e.offset),this.offsets[e.slot]=e.offset+e.bytes.byteLength;return}if(e.kind!=="end")throw new Error("Unknown frame chunk");const n=this.buffers;if(n.some((s,o)=>s.length!==this.offsets[o]))throw new Error("Frame value is incomplete");const r=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(n[0]),(s,o)=>{if(!o||typeof o!="object"||!("$frameColumn"in o))return o;const a=n[o.$frameColumn],i=Ge[o.type];if(!Number.isSafeInteger(o.$frameColumn)||o.$frameColumn<1||!a||!Object.hasOwn(Ge,o.type)||!i||a.byteLength%i.BYTES_PER_ELEMENT)throw new Error("Invalid frame column descriptor");return new i(a.buffer)});return this.reset(),{value:r}}catch(n){throw this.reset(),n}}}const ze=4096;class Rt{#r;#o;#a=[];#n=new Map;#$=0;#h=null;#i=null;#l=!1;#S=!1;#k=e=>{!this.#S&&this.#y===0||(e.preventDefault(),e.returnValue="")};#f=new Map;#p=new Map;#w="engine-start";#B=null;#v=new Set;#g=null;#x=0;#C=0;#A=0;#c=null;#I=null;#u=null;constructor(e){this.#o=e,this.#r=new Worker(new URL("/assets/worker-CdXe6YZE.js",import.meta.url),{type:"module",name:"blender"}),globalThis.addEventListener?.("beforeunload",this.#k),this.#r.onmessage=n=>void this.#_(n.data),this.#r.onerror=n=>{const r=n.error,s=n.filename?` at ${n.filename}:${n.lineno}:${n.colno}`:"",o=r?.stack??r?.message??n.message,a=this.#a.length>0?`
|
|
2
|
-
Blender's last output:
|
|
3
|
-
${this.#a.join(`
|
|
4
|
-
`)}`:"",i=this.#u===null?null:Math.round(this.#u/1048576),c=i!==null&&i>=ze-16?`Blender ran out of memory: its heap reached ${i} MB of the in-tab engine's ${ze} MB, and this scene needs more. `:"",u=new Error(`${c}Blender worker failed: ${o||"the worker script did not load"}${s}${a}`);console.error(u.message);for(const l of[...this.#n.keys()])this.#m(l);for(const l of this.#n.values())l.reject(u);this.#n.clear(),this.terminate()}}#s=null;#d=null;get project(){return this.#s}get document(){return this.#d}get lastOutput(){return[...this.#a]}start(e,n){return this.#s!==null&&this.#s!==e?Promise.reject(new Error(`The Blender session is bound to ${this.#s}, not ${e}`)):n!==void 0&&this.#d!==null&&this.#d!==n?Promise.reject(new Error(`Blender resource conflict: the session holds ${this.#d}; cannot open ${n}`)):(this.#s=e,this.#d??=n??"models/model.blend",this.#h??=this.#e({op:"start",project:e,...n===void 0?{}:{document:n}}),this.#h)}#t(){return this.#s===null?Promise.reject(new Error("The Blender session has not been started with a project (blender-start)")):this.start(this.#s)}async execute(e,n=!0,r="Blender Python"){return await this.#t(),await this.#e({op:"execute",code:e,history:n,label:r})}async historyGesture(e){await this.#t(),await this.#e({op:e})}async historyStep(e,n){return await this.#t(),(await this.#e({op:"history-step",token:e,direction:n})).moved}async sceneInfo(){return await this.#t(),await this.#e({op:"scene-info"})}async objectInfo(e){return await this.#t(),await this.#e({op:"object-info",name:e})}async rna(e,n){return await this.#t(),await this.#e({op:"rna",path:e,...n===void 0?{}:{names:n}})}async rnaContext(e,n){return await this.#t(),await this.#e({op:"rna-context",...e===void 0?{}:{object:e},...n===void 0?{}:{collection:n}})}async rnaSet(e,n,r,s,o=!0){return await this.#t(),await this.#e({op:"rna-set",history:o,path:e,property:n,value:r,...s===void 0?{}:{index:s}})}async viewShading(e){await this.#t(),await this.#e({op:"view-shading",shading:e})}async outliner(e){return await this.#t(),await this.#e({op:"outliner",...e===void 0?{}:{selected:e}})}async nodeTree(e){return await this.#t(),await this.#e({op:"node-tree",...e?.path===void 0?{}:{path:e.path},...e?.material===void 0?{}:{material:e.material}})}async uvLayout(e){return await this.#t(),await this.#e({op:"uv-layout",...e?.object===void 0?{}:{object:e.object},...e?.uvLayer===void 0?{}:{uvLayer:e.uvLayer}})}async rig(e){return await this.#t(),await this.#e({op:"rig",...e?.object===void 0?{}:{object:e.object}})}async actionClip(e){return await this.#t(),await this.#e({op:"action-clip",...e?.object===void 0?{}:{object:e.object},...e?.bake===void 0?{}:{bake:e.bake}})}async outlinerSet(e,n,r){return await this.#t(),await this.#e({op:"outliner-set",path:e,column:n,value:r})}async present(){await this.#t(),await this.#e({op:"present"})}async screenshotView(e){return await this.#t(),await this.#e({op:"screenshot-view",maxSize:e})}async readFile(e){return await this.#t(),await this.#e({op:"read-file",path:e})}async writeFile(e,n){await this.#t(),await this.#e({op:"write-file",path:e,bytes:n})}async listFiles(e){return await this.#t(),await this.#e({op:"list-files",path:e})}get presented(){return this.#I}stop(){return this.#l?Promise.resolve():this.#i?this.#i:(this.#i=(async()=>{(this.#h?await this.#h.then(()=>!0,()=>!1):!1)&&await this.#e({op:"flush-document"},!0),this.terminate()})().catch(e=>{throw this.#i=null,e}),this.#i)}terminate(){if(this.#M(),this.#l)return;this.#l=!0,globalThis.removeEventListener?.("beforeunload",this.#k);const e=this.#E("terminating worker");try{this.#r.terminate()}finally{e()}const n=new Error("The Blender session was terminated");for(const r of[...this.#n.keys()])this.#m(r);for(const r of this.#n.values())r.reject(n);this.#n.clear();for(const r of this.#v)r()}metrics(e=performance.now()){let n=null,r=this.#x,s=this.#B,o=this.#C,a=this.#A;for(const[i,c]of this.#f){const u=e-c;(n===null||u>n)&&(n=u),u>r&&(r=u,s=this.#p.get(i)??null),u>=5e3&&(o+=1),u>=3e4&&(a+=1)}return{inFlightMs:n===null?null:Math.round(n),lastCallMs:this.#g===null?null:Math.round(this.#g),maxCallMs:this.#g===null&&n===null?null:Math.round(r),maxCallLabel:s,currentPhase:this.#y?this.#w:null,completedCalls:this.#j,callsOver5s:o,callsOver30s:a,lastCallWindow:this.#c,wasmMemoryMB:this.#u===null?null:Math.round(this.#u/1048576)}}#m(e){const n=this.#f.get(e);if(n===void 0)return;this.#f.delete(e);const r=this.#p.get(e)??null;this.#p.delete(e),this.#j++;const s=performance.now()-n;this.#g=s,s>this.#x&&(this.#x=s,this.#B=r),s>=5e3&&(this.#C+=1),s>=3e4&&(this.#A+=1),this.#c!==null&&this.#c.start===n&&(this.#c={start:n,end:n+s})}#j=0;#y=0;#T=Promise.resolve();#e(e,n=!1){if(this.#l||this.#i&&!n)return Promise.reject(new Error("The Blender session is stopping or terminated"));const r=performance.now();let s=()=>{};this.#y++;const o=this.#T.then(async()=>{const a=this.#E(`running worker ${e.op}`);s=()=>{this.#v.delete(s)&&a()},this.#v.add(s),this.#w=e.op;let i=await this.#L(e);for(;i?.load==="continue";)this.#w=i.phase,i=await this.#L({op:"load-next",token:i.token});return i?.load==="done"?i.value:i}).finally(()=>{this.#y--,s();const a=Math.round(performance.now()-r);try{a>=1e3&&this.#o.log?.("log",`@@VOLTER-WORK op=${e.op} totalMs=${a}`)}catch{}});return this.#T=o.then(()=>{},()=>{}),o}#L(e){if(this.#l)return Promise.reject(new Error("The Blender session is terminated"));const n=++this.#$;return new Promise((r,s)=>{this.#n.set(n,{resolve:r,reject:s});const o=performance.now();this.#f.set(n,o),this.#p.set(n,e.op==="load-next"?`load-next after ${this.#w}`:e.op),this.#c={start:o,end:null};try{this.#r.postMessage({...e,id:n})}catch(a){this.#n.delete(n),this.#m(n),s(a instanceof Error?a:new Error(String(a)))}})}#E(e){try{const n=this.#o.work?.(e);return()=>{try{n?.()}catch{}}}catch{return()=>{}}}#F=new $t;#b=null;#M(){this.#F.reset();const e=this.#b;if(this.#b=null,e)try{Promise.resolve(this.#o.stage?.({...e,abort:!0})).catch(()=>{})}catch{}}async#_(e){if("op"in e){if(e.op==="frame-stream"){try{const o=await this.#F.accept(e.chunk);if(o){const a=o.value;if(a.op==="present"){await this.#_({...a,id:e.id});return}if(a.op!=="stage"||!this.#o.stage)throw new Error("The presenter does not support staged Blender frames");this.#b={session:a.session,revision:a.revision},await this.#o.stage(a)}this.#r.postMessage({op:"present-result",id:e.id})}catch(o){this.#M(),this.#r.postMessage({op:"present-result",id:e.id,error:o instanceof Error?o.message:String(o)})}return}if(e.op==="document-dirty"){this.#S=e.dirty;return}if(e.op==="history"){this.#o.history?.(e.entries);return}if(e.op==="log"){this.#a.push(e.text),this.#a.length>12&&this.#a.shift(),this.#o.log?.(e.level,e.text);return}if(e.op==="memory"){this.#u=e.bytes;return}const r=e.frame;typeof r?.session=="string"&&typeof r.revision=="number"&&(this.#I={session:r.session,revision:r.revision});const s=this.#E("presenting worker frame");try{const o=await this.#o.present(e.frame,e.description,e.capture);this.#b=null,this.#r.postMessage({op:"present-result",id:e.id,...o?.capture===void 0?{}:{capture:o.capture},...o!=null&&"held"in o?{held:o.held}:{}})}catch(o){this.#M(),this.#r.postMessage({op:"present-result",id:e.id,error:o instanceof Error?o.message:String(o)})}finally{s()}return}"error"in e&&this.#M();const n=this.#n.get(e.id);n&&(this.#n.delete(e.id),this.#m(e.id),"error"in e?n.reject(new Error(e.error)):n.resolve(e.result))}}const Ot="/assets/agx-base-srgb-BjWZJgrZ.lut",Nt="/assets/agx-look-medium-high-contrast-D5F_ob1L.lut",Pt="/assets/agx-look-punchy-dxsnycNs.lut",Ut="/assets/filmic-srgb-Ct35FIH6.lut",L=new Float64Array(12),qe=[0,0,0],O=new Float64Array(3),H=new Float64Array(3),F=new Int8Array([1,0,0,1,1,0,0,1,2,1,0,0,1,0,1,0,2,1,0,0,1,1,0,1,2,0,1,0,0,1,0,1,1,2,1,0,0,1,0,0,1,1,1,2,0,0,1,0,1,1,0,1,0,2]);function Dt(t,e,n){return t>e?e>n?0:t>n?1:2:n>e?3:n>t?4:5}function Je(t,e,n,r,s){const o=e*e,a=Math.min(1,Math.max(0,n))*(e-1),i=Math.min(1,Math.max(0,r))*(e-1),c=Math.min(1,Math.max(0,s))*(e-1),u=Math.min(Math.floor(a),e-2),l=Math.min(Math.floor(i),e-2),d=Math.min(Math.floor(c),e-2),S=a-u,m=i-l,k=c-d,b=(h,g,T,I)=>{const w=(u+g+(l+T)*e+(d+I)*o)*3;L[h]=t[w]/65535,L[h+1]=t[w+1]/65535,L[h+2]=t[w+2]/65535};b(0,0,0,0),b(9,1,1,1),O[0]=S,O[1]=m,O[2]=k;const p=Dt(S,m,k)*9;b(3,F[p],F[p+1],F[p+2]),b(6,F[p+3],F[p+4],F[p+5]);const A=O[F[p+6]],v=O[F[p+7]],f=O[F[p+8]];for(let h=0;h<3;h++){const g=L[h];qe[h]=g+A*(L[3+h]-g)+v*(L[6+h]-L[3+h])+f*(L[9+h]-L[6+h])}return qe}function X(t){const e=t&32768?-1:1,n=t>>10&31,r=t&1023;return n===0?e*2**-24*r:n===31?r?Number.NaN:e*Number.POSITIVE_INFINITY:e*2**(n-15)*(1+r/1024)}function je(t,e,n,r){const s=new Uint8ClampedArray(e*4);for(let o=0;o<e;o++){const a=o*4,i=X(t[a+3]),c=i===0?n:n/i;H[0]=X(t[a])*c,H[1]=X(t[a+1])*c,H[2]=X(t[a+2])*c;const u=r(H);s[a]=Math.round(u[0]*255),s[a+1]=Math.round(u[1]*255),s[a+2]=Math.round(u[2]*255),s[a+3]=Math.round(Math.min(1,Math.max(0,i))*255)}return s}function Vt(t){return new URL(Object.assign({"./agx-base-srgb.lut":Ot,"./agx-look-medium-high-contrast.lut":Nt,"./agx-look-punchy.lut":Pt,"./filmic-srgb.lut":Ut})[`./${t.replace(/\.lut$/,"")}.lut`],import.meta.url)}const Wt=57,_=-12.47393,Qe=12.5260688117,Gt=[[.4123908,.3575843,.1804808],[.212639,.7151687,.0721923],[.0193308,.1191948,.9505322]],zt=[[1.5250528,-.3159135,-.1226583],[-.5091526,1.3333274,.1382844],[.0957153,.0508974,.7879558]];function He(t,e,n){const r=e[0],s=e[1],o=e[2];n[0]=t[0][0]*r+t[0][1]*s+t[0][2]*o,n[1]=t[1][0]*r+t[1][1]*s+t[1][2]*o,n[2]=t[2][0]*r+t[2][1]*s+t[2][2]*o}const Y=new Float64Array(3),Xe=new Float64Array(3),Z=[0,0,0];function de(t){const e=Math.min(1,Math.max(0,t));return e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055}function et(t,e,n,r){return Je(t,Wt,e,n,r)}function qt(t,e){He(Gt,e,Xe),He(zt,Xe,Y);const n=Qe-_,r=et(t,(Math.log2(Math.max(Y[0],1e-10))-_)/n,(Math.log2(Math.max(Y[1],1e-10))-_)/n,(Math.log2(Math.max(Y[2],1e-10))-_)/n);return Z[0]=de(Math.max(0,r[0])**2.4),Z[1]=de(Math.max(0,r[1])**2.4),Z[2]=de(Math.max(0,r[2])**2.4),Z}const Ht={"AgX - Medium High Contrast":"agx-look-medium-high-contrast.lut","AgX - Punchy":"agx-look-punchy.lut"};function Xt(t,e){const n=Qe-_;return et(t,(Math.log2(Math.max(e[0],1e-10))-_)/n,(Math.log2(Math.max(e[1],1e-10))-_)/n,(Math.log2(Math.max(e[2],1e-10))-_)/n)}function Yt(t,e,n,r={}){const s=r.exposure??1,o=r.composedLook===!0?Xt:qt;return je(e,n,s,a=>o(t,a))}const tt=33,Me=tt**3*3,ve=4096,he=-12.473931188,fe=25;function pe(t,e){const n=Math.min(1,Math.max(0,e))*(ve-1),r=Math.min(Math.floor(n),ve-2),s=n-r;return((1-s)*t[Me+r]+s*t[Me+r+1])/65535}const K=[0,0,0];function Zt(t,e){const n=Je(t,tt,(Math.log2(Math.max(e[0],1e-10))-he)/fe,(Math.log2(Math.max(e[1],1e-10))-he)/fe,(Math.log2(Math.max(e[2],1e-10))-he)/fe);return K[0]=pe(t,n[0]/.66),K[1]=pe(t,n[1]/.66),K[2]=pe(t,n[2]/.66),K}function Kt(t,e,n,r){if(t.length!==Me+ve)throw new Error("Invalid Blender Filmic display table");return je(e,n,r,s=>Zt(t,s))}const W=2.4,$=.055,nt=$/(W-1),Jt=1/(W/(1+$)*((nt+$)/(1+$))**(W-1)),Qt=((nt+$)/(1+$))**W;function we(t){return t>0?t<Qt?t*Jt:(1+$)*t**(1/W)-$:0}const J=[0,0,0];function en(t){return J[0]=we(t[0]),J[1]=we(t[1]),J[2]=we(t[2]),J}function tn(t,e,n){return je(t,e,n,en)}function rt(t,e,n,r){if(!Number.isFinite(n.width)||!Number.isFinite(n.height)||n.width<1||n.height<1)throw new Error("Scene capture requires finite positive dimensions");const s=Math.min(2048,Math.round(n.width)),o=Math.min(2048,Math.round(n.height)),a=r?1:2,i=s*a,c=o*a,u=bt(),l=u.renderer,d={target:l.getRenderTarget(),toneMapping:l.toneMapping,exposure:l.toneMappingExposure,colorSpace:l.outputColorSpace,shadows:l.shadowMap.enabled,shadowType:l.shadowMap.type,clearColor:l.getClearColor(new vt),clearAlpha:l.getClearAlpha(),background:t.background};let S,m,k=!1;try{S=new Ue(i,c,{type:De}),n.effect&&(S.depthTexture=new xt(i,c)),l.shadowMap.enabled=!0,l.shadowMap.type=Et,l.outputColorSpace=St,l.toneMapping=n.toneMapping??be,l.toneMappingExposure=n.exposure??1,l.setClearColor(0,n.transparent?0:1),n.transparent&&(t.background=null),l.setRenderTarget(S),l.clear(),l.render(t,e);const b=n.effect?.render(l,S,t,e)??S;if(b.texture.type!==De||b.width!==i||b.height!==c)throw new Error("Scene capture effect must return a same-size half-float target");if(r){const w=new Uint16Array(i*c*4);return l.readRenderTargetPixels(b,0,0,i,c,w),k=!0,{pixels:w,width:s,height:o}}m=new Ue(i,c),Mt(n.transparent===!0).render(l,m,b,0,!1);const p=new Uint8Array(i*c*4);l.readRenderTargetPixels(m,0,0,i,c,p);const A=document.createElement("canvas");A.width=i,A.height=c;const v=A.getContext("2d");if(!v)throw new Error("Scene capture could not create an image canvas");const f=v.createImageData(i,c),h=i*4;for(let w=0;w<c;w++)f.data.set(p.subarray((c-1-w)*h,(c-w)*h),w*h);v.putImageData(f,0,0);const g=document.createElement("canvas");g.width=s,g.height=o;const T=g.getContext("2d");if(!T)throw new Error("Scene capture could not create an output canvas");T.drawImage(A,0,0,s,o);const I=g.toDataURL("image/png");return k=!0,I}finally{t.background=d.background,l.setRenderTarget(d.target),l.toneMapping=d.toneMapping,l.toneMappingExposure=d.exposure,l.outputColorSpace=d.colorSpace,l.shadowMap.enabled=d.shadows,l.shadowMap.type=d.shadowType,l.setClearColor(d.clearColor,d.clearAlpha),m?.dispose(),S?.dispose(),u.release({discard:!k})}}function nn(t,e,n){return rt(t,e,n,!0)}function rn(t,e,n){return rt(t,e,n,!1)}const on=t=>typeof t=="object"&&t!==null&&typeof t.subscribeFrames=="function"&&typeof t.objectForBlenderName=="function"&&typeof t.blenderObjectName=="function"&&typeof t.blenderSelection=="function"&&typeof t.setStageMode=="function";function Te(){const t=E().documents.context(ct());return on(t)?t:null}function sn(){return Te()?.blenderSelection()??{selected:[],active:null}}const an={tree:null,byId:new Map,parentOf:new Map,error:null,loading:!1};let xe=an,ot=0;const Ee=new Set;let U=null,ae=null,Le="",D=null;function ln(t){const e=new Map,n=new Map,r=(s,o)=>{e.set(s.id,s),n.set(s.id,o);for(const a of s.children)r(a,s.id)};for(const s of t?.rows??[])r(s,null);return{byId:e,parentOf:n}}function ee(t){xe={...xe,...t},ot+=1;for(const e of[...Ee])e()}function Ln(t){return Ee.add(t),()=>{Ee.delete(t)}}function Fn(){return ot}function _n(){return xe}function Fe(t){D!==t&&(D=t,setTimeout(()=>{D===t&&(D=null,st(t===""?[]:t.split("\0")))},0))}let ge=0,Se=Promise.resolve();function st(t){const e=cn(t);return Se=e,e}async function cn(t){const e=t.join("\0"),n=++ge;ae=e,Le=e,ee({loading:!0});try{const r=await Mn(t);if(n!==ge)return;Te()?.setStageMode(r?.mode??null),ee({tree:r,...ln(r),loading:!1,error:null})}catch(r){if(n!==ge)return;ee({loading:!1,error:at(r)})}}function un(){ae=null,Fe(Le);for(const t of[...ke])t()}const ke=new Set;function $n(t){return _e(),ke.add(t),()=>{ke.delete(t)}}let Q=!1,me=null;function _e(){const t=Te();if(U!==null&&me===t)return;U!==null&&(U(),U=null,me=null);const e=t;if(e!==null){U=e.subscribeFrames(un),me=e;return}Q||(Q=!0,E().documents.waitForContext(ct()).then(()=>{Q=!1,_e()}).catch(()=>{Q=!1}))}function Rn(t){if(!C())return;_e();const e=[...t].sort().join("\0");ae!==e&&Fe(e)}async function dn(t){if(!C())return;D=null;let e=st([...t].sort());for(;;){if(await e,Se===e)return;e=Se}}async function On(t,e,n){try{return await dt(t,e,n),ae=null,Fe(Le),!0}catch(r){return ee({error:at(r)}),!1}}function at(t){return t instanceof Error?t.message:String(t)}const hn={transform:{cx:0,cy:0,zoom:1},looked:null,refusal:null,size:{w:0,h:0},framedAt:0,drawn:[]};let Be=hn,$e=0;const oe=new Set;let it=0;function ye(){return Be}function Nn(){return $e}function Pn(t){return oe.add(t),()=>{oe.delete(t)}}function V(t){Be={...Be,...t},$e+=1;for(const e of[...oe])e()}function fn(){it+=1,$e+=1;for(const t of[...oe])t()}function Un(){return it}function N(t){V({refusal:t})}const Ye=new Map;function pn(t){let e=Ye.get(t);return e||(e=fetch(Vt(t)).then(async n=>{if(!n.ok)throw new Error(`Blender display table ${t}: ${n.status} ${n.statusText}`);return new Uint16Array(await n.arrayBuffer())}),Ye.set(t,e)),e}function wn(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return new Uint16Array(n.buffer,n.byteOffset,n.byteLength>>1)}async function lt(t,e){const n=e.look??"None",r=e.toneMapping==="filmic",s=e.toneMapping==="none";if(!s&&e.toneMapping!=="agx"&&!r)throw new Error("Blender's Khronos PBR Neutral view transform has no scene-linear implementation in the browser, so it cannot resolve a composited or scene-referred frame (implemented: Standard, AgX, Filmic)");const o=s?null:r?"filmic-srgb.lut":n==="None"?"agx-base-srgb.lut":Ht[n];if(o===void 0)throw new Error(`Blender display transform has no table for look ${n}`);const a=o?await pn(o):null,i=e.linearInput,c=i?{pixels:wn(i.base64),width:i.width,height:i.height}:t;if(!c)throw new Error("Blender display transform requires a linear capture");const{pixels:u,width:l,height:d}=c,S=s?tn(u,l*d,e.exposure):r?Kt(a,u,l*d,e.exposure):Yt(a,u,l*d,{exposure:e.exposure,composedLook:n!=="None"}),m=document.createElement("canvas");m.width=l,m.height=d;const k=m.getContext("2d");if(!k)throw new Error("Blender display transform could not create its image canvas");const b=k.createImageData(l,d),p=l*4;for(let f=0;f<d;f++){const h=(d-1-f)*p;b.data.set(S.subarray(h,h+p),f*p)}k.putImageData(b,0,0);const A=m.toDataURL("image/png"),v={base64:A.slice(A.indexOf(",")+1),mimeType:"image/png"};if(e.linear===!0){const f=new Uint8Array(u.buffer,u.byteOffset,u.byteLength);let h="";for(let g=0;g<f.length;g+=32768)h+=String.fromCharCode(...f.subarray(g,g+32768));v.linearBase64=btoa(h),v.linearWidth=l,v.linearHeight=d}return v}async function gn(t,e,n,r,s=()=>{}){const o={none:be,agx:We,neutral:jt,filmic:be};await n.prepare(e),s();const a={effect:n.effect,width:r.width,height:r.height,transparent:r.transparent===!0,toneMapping:o[r.toneMapping]??We,exposure:r.exposure},i=r.toneMapping==="agx"||r.toneMapping==="filmic"||r.linear===!0?await lt(nn(t,e,a),r):null;if(s(),i)return i;const c=rn(t,e,a);if(!c)throw new Error("Blender render could not capture its image");return{base64:c.slice(c.indexOf(",")+1),mimeType:"image/png"}}const mn="document:blender:runtime";let x=null,Ze=0;function Dn(t){const e=++Ze;return x=t,P(),()=>{Ze===e&&(x=null,P())}}function te(){const t=y?.document,e=E().documents.activeId(),n=e?.startsWith("document:model:")?e.slice(15):x?.blend;return!n||!t||n===t?null:`Blender is editing ${t}; ${n} is not open. Return to ${t} before editing.`}function j(){return x?.documentId??mn}function ct(){return j()}async function Vn(t,e){const n=E();if(!n.session.open())throw new Error("Opening a model requires an open project session.");const r=n.projectLocalState.projectRootPath();if(r===null)throw new Error("Opening a model requires a project path.");if(x!==t||n.documents.activeId()!==t.documentId)return!1;const s=M(),o=s.start(r,t.blend);if(e(),await o,x!==t)return!1;const a=(await se()).snapshot();if(x!==t)return!1;const i=s.presented;return(!a||!i||a.session!==i.session||a.revision!==i.revision)&&await s.present(),x===t}function C(){return y?.project!=null&&te()===null}let ut=0;const Ce=new Set;function Wn(){return ut}function Gn(t){return Ce.add(t),()=>{Ce.delete(t)}}function P(){ut+=1;for(const t of[...Ce])t()}async function zn(t,e){return C()?M().rna(t,e):null}async function qn(t,e){return C()?M().rnaContext(t,e):null}async function yn(t,e,n,r,s=!0){if(!C())return null;const o=await M().rnaSet(t,e,n,r,s);return P(),o}async function Hn(t){C()&&await M().viewShading(t)}async function bn(t,e=!0,n="Blender Python"){const r=await M().execute(t,e,n);P();const s=/^Error executing code:/.exec(r);return{text:r,executed:s===null,result:s===null?r.replace(/^Code executed successfully: ?/,""):"",error:s===null?null:r.replace(/^Error executing code: ?/,"")}}function Xn(){M().historyGesture("history-begin").catch(t=>E().console.error(`Could not begin Blender undo gesture: ${String(t)}`,"blender-history"))}async function Yn(){await M().historyGesture("history-end")}async function Mn(t){return C()?M().outliner(t):null}async function Zn(t){return C()?M().nodeTree(t):null}async function Kn(t){return C()?M().uvLayout(t):null}async function Jn(t){return C()?M().rig(t):null}async function Qn(t){return C()?M().actionClip(t):null}async function dt(t,e,n){if(!C())return null;const r=await M().outlinerSet(t,e,n);return P(),r}const vn={view:"blender-node-view",title:"Node Editor",verbs:[["state",void 0],["look",void 0],["view-all","Node Editor: Frame All"],["zoom",void 0],["pan",void 0],["move",void 0],["link",void 0],["set-value",void 0],["use-nodes",void 0],["collapse-panel",void 0]].map(([t,e])=>({id:t,...e?{title:e}:{},run:n=>ht({...n,action:t})}))};function ht(t){const e=typeof t.action=="string"?t.action:"state";switch(e){case"state":break;case"look":V({looked:typeof t.node=="string"?t.node:null,refusal:null});break;case"view-all":fn(),V({refusal:null});break;case"zoom":{const n=typeof t.zoom=="number"?t.zoom:1;V({transform:{...ye().transform,zoom:n},refusal:null});break}case"pan":{const n=ye().transform;V({transform:{...n,cx:typeof t.cx=="number"?t.cx:n.cx,cy:typeof t.cy=="number"?t.cy:n.cy},refusal:null});break}case"move":N(`Moving "${String(t.node??"a node")}" writes Node.location — editing parity is not the program.`);break;case"link":N("Dragging between sockets would make a link — editing parity is not the program.");break;case"set-value":N(`Changing "${String(t.socket??"a socket")}" writes the socket's default_value — editing parity is not the program.`);break;case"use-nodes":N("Use Nodes writes Material.use_nodes — editing parity is not the program.");break;case"collapse-panel":N(`Collapsing "${String(t.panel??"a panel")}" writes the panel's is_collapsed — editing parity is not the program.`);break;default:N(`blender-node-view: no action "${e}" — state, look, view-all, zoom, pan, and the refusals move, link, set-value, use-nodes, collapse-panel.`)}return ye()}let y=null;const ne=new Set;function ft(){ne.size&&E().history.invalidate([...ne]),ne.clear()}let Ae=null,Ke=!1;function re(t){try{const e=E().session.beginWork(`Blender: ${t}`);return()=>{try{e()}catch{}}}catch{return()=>{}}}function Ie(){const t=re("invalidating history and releasing runtime");try{ft(),Ae?.abort(),Ae=null,y?.terminate(),y=null,pt=null}finally{t()}}function xn(){Ke||(Ke=!0,E().session.onBeforeClose(async()=>{await y?.stop(),Ie()}),E().session.onEnded(Ie))}let pt=null;const En=t=>typeof t=="object"&&t!==null&&typeof t.applyFrame=="function"&&typeof t.stageFrame=="function"&&typeof t.snapshot=="function"&&typeof t.captureSnapshot=="function"&&typeof t.recordPresentation=="function"&&typeof t.recordPhotograph=="function";async function se(){const{documents:t}=E(),e=Date.now()+15e3;let n=j();for(;;){n=j();const r=await t.waitForContext(n,Math.max(0,Math.min(250,e-Date.now())));if(En(r))return r;if(Date.now()>=e)break}throw new Error(`The Blender Model document is not open, or the open one is not a Model this engine can present to (it must answer stageFrame, applyFrame, captureSnapshot, recordPresentation and recordPhotograph): nothing published a presentable view as ${n} within 15 s (bound model: ${x?.documentId??"none"}). Open the Model document first (\`volter blender-mcp\` opens it before its first call).`)}function M(){const t=te();if(t)throw new Error(t);if(y!==null)return y;xn();const e=new AbortController;Ae=e;let n=!1,r=null;y=new Rt({work:re,history:o=>{const a=y;if(!a)throw new Error("Blender history arrived before its runtime");for(const i of o){if("reset"in i){ft();continue}if(!i.resource)throw new Error("A Blender edit has no document resource");ne.add(i.resource);const c=async u=>{if(y!==a)throw new Error("This Blender history belongs to a closed worker");const l=await a.historyStep(i.id,u);return P(),await dn(sn().selected),l};E().history.record({id:i.id,label:i.label,resources:[i.resource],document:j(),undo:()=>c("undo"),redo:()=>c("redo")})}},stage:async o=>{if(o.abort){r?.stageFrame(o),r=null;return}const a=te();if(a)throw new Error(a);if(x===null)return;const i=j(),c=await se();if(e.signal.throwIfAborted(),j()!==i)throw new Error("Blender document changed during frame transfer");r=c,c.stageFrame(o)},present:async(o,a,i)=>{const c=te();if(c)throw new Error(c);if(x===null){if(i?.render)throw new Error("Rendering a Blender frame needs the Model document open; nothing is presenting.");return{}}const u=j(),l=re("waiting for Model presenter");let d;try{d=await se()}finally{l()}if(e.signal.throwIfAborted(),j()!==u)throw new Error("Blender document changed before its frame could be presented");const S=re("applying frame to Model"),m=(()=>{try{return d.applyFrame(o)}finally{S()}})(),k=typeof m=="object"&&m!==null&&"held"in m,b=k?m.held:null,p=w=>({...w===void 0?{}:{capture:w},...k?{held:b}:{}});if(d.recordPresentation(a),!i||(pt=i,!i.render))return p(void 0);const A=d.snapshot(),v=()=>{if(e.signal.throwIfAborted(),j()!==u||d.snapshot()!==A)throw new Error("Blender capture document or source revision changed before completion")};if(i.render.linearInput){const w=await lt(null,i.render);return v(),p(w)}const{render:f,position:h,target:g,up:T}=i;if(!h||!g||!T)throw new Error("A Blender render capture must carry the scene camera position, target and up");if(n)throw new Error("A Blender render capture is already in progress");const I=d.captureSnapshot();n=!0,e.signal.addEventListener("abort",I.dispose,{once:!0});try{v();const w=new kt;w.add(I.root),w.updateMatrixWorld(!0);const G=I.root.matrixWorld,ie=new Bt().copy(G).invert(),wt=new Ve().setFromMatrix4(G),gt=new Ve().setFromMatrix4(ie),le=new ue(h[0],h[1],h[2]).applyMatrix4(G),Re=new ue(g[0],g[1],g[2]).applyMatrix4(G),Oe=new ue(T[0],T[1],T[2]).applyMatrix3(wt),ce=Math.min(2048,Math.round(f.width))/Math.min(2048,Math.round(f.height)),Ne=Lt(I.root).getBoundingSphere(new Ct),z=Tt(le.distanceTo(Ne.center),Ne.radius);let R;if(f.orthographic){const q=f.fov/2;R=new At(-q*ce,q*ce,q,-q,z.near,z.far)}else R=new It(f.fov,ce,z.near,z.far);R.up.copy(Oe),R.position.copy(le),R.lookAt(Re),R.updateMatrixWorld(!0);const Pe={position:le.clone().applyMatrix4(ie).toArray(),target:Re.clone().applyMatrix4(ie).toArray(),up:Oe.clone().applyMatrix3(gt).toArray()};d.recordPhotograph({sent:{position:h,target:g,up:T},photographed:Pe,render:{width:f.width,height:f.height,fov:f.fov,orthographic:f.orthographic}});const mt=await gn(w,R,I,f,v);return p({...mt,camera:Pe})}finally{n=!1,e.signal.removeEventListener("abort",I.dispose),I.dispose()}},log:(o,a)=>console[o](`[blender] ${a}`)});const s=y;return E().session.reportWorkerCallMeter("Blender",()=>s.metrics()),y}const Sn="models/model.blend",B=(t,e)=>{const n=t[e];if(typeof n!="string")throw new Error(`${String(t.type)} requires a string "${e}"`);return n};async function kn(t){const e=E().projectLocalState.projectRootPath();if(e===null)return{};let n;try{n=await t.execute(`import bpy
|
|
5
|
-
print(bpy.data.filepath)
|
|
6
|
-
`,!1)}catch{return{}}if(/^Error executing code:/m.test(n))return{};const r=n.replace(/^Code executed successfully:/,"").split(`
|
|
7
|
-
`).map(o=>o.trim()).filter(o=>o.startsWith("/")).pop()??"";if(r==="")return{};const s=e.endsWith("/")?e:`${e}/`;return r.startsWith(s)?{document:r.slice(s.length)}:{}}async function er(t){const e=E();if(t.type==="blender-status")return{ok:!0,data:{started:y?.project!=null,document:e.documents.context(j())!==void 0,instancing:y?.project!=null?(await se()).drawStatistics():null,lastOutput:y?.lastOutput??[]}};if(!e.session.open())return{ok:!1,error:`${t.type} needs an open project session; this editor page has none.`};try{const n=t.type==="blender-start"?B(t,"project"):null;let r=typeof t.document=="string"?t.document:void 0;if((t.type==="blender-stop"||t.type==="blender-start"&&t.fresh===!0)&&(await y?.stop(),Ie(),t.type==="blender-stop"))return{ok:!0,data:{stopped:!0}};if(t.type==="blender-start"&&!e.documents.context(j())){const o=await e.project.documentTable(),a=o.entries.filter(l=>l.kind==="model"),i=r!==void 0?a.find(l=>l.source?.path===r):a.find(l=>l.id===(x?.entryId??o.default))??(a.length===1?a[0]:void 0);if(!i)return{ok:!1,error:r!==void 0?`No declared Model document names ${r}.`:`Choose a Model document before starting Blender. Available: ${a.map(l=>l.id).join(", ")||"(none)"}.`};const c=i.id;if(r=i.source?.path,!await e.workspace.open({kind:"document",id:c}))return{ok:!1,error:`blender-start could not open the Blender Model document ${c}: nothing in this editor opens that document (the Model document ships with @volter/editor-blender).`}}const s=M();switch(t.type){case"blender-start":{const o=r!==void 0?r:x?.blend??Sn;return{ok:!0,data:{...await s.start(n,o)}}}case"blender-execute":return{ok:!0,data:{result:(await bn(B(t,"code"))).text}};case"blender-scene-info":return{ok:!0,data:{result:await s.sceneInfo()}};case"blender-object-info":return{ok:!0,data:{result:await s.objectInfo(B(t,"name"))}};case"blender-rna":{const o=typeof t.names=="number"?t.names:void 0;return{ok:!0,data:{result:await s.rna(B(t,"path"),o)}}}case"blender-rna-context":{const o=typeof t.object=="string"?t.object:void 0,a=typeof t.collection=="string"?t.collection:void 0;return{ok:!0,data:{result:await s.rnaContext(o,a)}}}case"blender-rna-set":{const o=typeof t.index=="number"?t.index:void 0;return{ok:!0,data:{result:await yn(B(t,"path"),B(t,"property"),t.value,o)}}}case"blender-outliner":{const o=Array.isArray(t.selected)?t.selected.filter(a=>typeof a=="string"):void 0;return{ok:!0,data:{result:await s.outliner(o)}}}case"blender-node-tree":return{ok:!0,data:{result:await s.nodeTree({...typeof t.path=="string"?{path:t.path}:{},...typeof t.material=="string"?{material:t.material}:{}})}};case"blender-uv-layout":return{ok:!0,data:{result:await s.uvLayout({...typeof t.object=="string"?{object:t.object}:{},...typeof t.uvLayer=="string"?{uvLayer:t.uvLayer}:{}})}};case"blender-rig":return{ok:!0,data:{result:await s.rig({...typeof t.object=="string"?{object:t.object}:{}})}};case"blender-action-clip":return{ok:!0,data:{result:await s.actionClip({...typeof t.object=="string"?{object:t.object}:{},...typeof t.bake=="boolean"?{bake:t.bake}:{}})}};case"blender-node-view":{const o=typeof t.action=="string"?t.action:"state";return{ok:!0,data:{result:vn.verbs.some(i=>i.id===o)?yt("blender-node-view",o,t):ht(t)}}}case"blender-outliner-set":return{ok:!0,data:{result:await dt(B(t,"path"),B(t,"column"),t.value!==!1)}};case"blender-screenshot-view":{const o=typeof t.maxSize=="number"?t.maxSize:1e3,a={kind:"document",id:x?.entryId??"blender:runtime"};return{ok:!0,data:{...await s.screenshotView(o),document:a}}}case"blender-read-file":{const o=await s.readFile(B(t,"path")),a=B(t,"transferId"),i=await fetch(`/__editor/blender-file?id=${encodeURIComponent(a)}`,{method:"POST",headers:{"content-type":"application/octet-stream"},body:new Blob([o])});return i.ok?{ok:!0,data:{bytes:o.length}}:{ok:!1,error:`Transfer ${a} was refused: ${i.status}`}}case"blender-write-file":{const o=atob(B(t,"base64")),a=Uint8Array.from(o,i=>i.charCodeAt(0));return await s.writeFile(B(t,"path"),a),{ok:!0,data:{written:a.length}}}case"blender-list-files":{const o=await s.listFiles(B(t,"path")),a=s.presented;return{ok:!0,data:{entries:o,...a?{session:a.session,revision:a.revision}:{},...await kn(s)}}}}return{ok:!1,error:`Unknown Blender command ${t.type}`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}export{Xn as A,On as B,Rn as C,bn as D,Te as E,Dn as F,Vn as G,Hn as H,vn as N,Pn as a,Wn as b,V as c,ye as d,Zn as e,Un as f,Qn as g,er as h,Jn as i,Kn as j,_n as k,ct as l,C as m,Nn as n,P as o,qn as p,zn as q,N as r,Gn as s,yn as t,$n as u,Ln as v,dn as w,sn as x,Fn as y,Yn as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as t}from"./blender-runtime-host-BnaYnPbE.js";import"./index-9nYTVIws.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"./preview-renderer-BrYNFV1p.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./renderer-ownership-BovSEcLv.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./clip-planes-CnAI6DZn.js";import"./content-bounds-CY_M6Fwr.js";import"./hierarchy-marks-BTgoMhKJ.js";import"./workspace-arrangement-8FYR3_fQ.js";const D="workspace.command",e=(o,n)=>({...n===void 0?{}:{timeoutMs:n},derivedRefresh:o,handle:r=>t(r)}),E={"blender-start":e("none",12e4),"blender-stop":e("none",30*6e4),"blender-execute":e("always",30*6e4),"blender-scene-info":e("none",6e4),"blender-object-info":e("none",6e4),"blender-screenshot-view":e("always",6e4),"blender-read-file":e("none",6e4),"blender-write-file":e("none",6e4),"blender-list-files":e("none",6e4),"blender-rna":e("none",6e4),"blender-rna-context":e("none",6e4),"blender-rna-set":e("always",6e4),"blender-outliner":e("none",6e4),"blender-node-tree":e("none",6e4),"blender-uv-layout":e("none",6e4),"blender-rig":e("none",6e4),"blender-action-clip":e("none",12e4),"blender-node-view":e("none"),"blender-outliner-set":e("always",6e4),"blender-status":e("none")};export{E as commands,D as point};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ah as m}from"./index-9nYTVIws.js";import{b as p,a as e,c as n,s}from"./game-network-BuhrtQlJ.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"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-lQJX-160.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BFq6QR4G.js";import"./contract-system-adapters-C1bKdaVk.js";import"./game-contract-seams-Cfyg896y.js";import"./seeded-random-DfGQ6n66.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-DmeaOP4r.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-DzuOGwVB.js";import"./live-project-verbs-E-s8WH5m.js";import"./capability-coverage-rUUpSzOn.js";import"./edit-mode-authoring-Cm2rEFlJ.js";import"./json-history-resource-C818aJwj.js";import"./binding-resolver--K9B2aXQ.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-NnoNrbsM.js";import"./canvas-entry-runtime-Cg364i6A.js";import"./three-ingest-runtime-CDzGhpUC.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-Lfx46SVT.js";import"./ingest-source-persistence-DbuTxtMu.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-D1HAou7A.js";import"./mounted-authoring-CHg17ilK.js";import"./entity-object-DiC6cpEd.js";import"./user-data-BQR8TLTV.js";import"./workspace-arrangement-8FYR3_fQ.js";import"./three-contract-Dkt6PmWY.js";import"./three-Cq9i0Lo_.js";import"./editor-layers-kBpG49pG.js";import"./component-instance-root-DktYaTot.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter--CDtc-SE.js";import"./source-persistence-backend-CTvhQwDl.js";import"./three-projection-core-CxFDvqEe.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-BNfJcrsE.js";import"./deferred-ingest-play-sqaLv2U9.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CW_LKdTk.js";import"./board-guides-BRZrEdtv.js";import"./relative-import-specifier-CAVq9YAo.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-3o2qSIRq.js";import"./inference-diagnostics-71A-NHW0.js";import"./writer-tw6EcuVO.js";import"./three-state-BHy0drOJ.js";import"./editor-shell-store-C6VYP6ve.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-3sS8tuxh.js";import"./game-surface-defaults-D8S4cRxi.js";const zt="workspace.command",a=()=>({ok:!1,error:"not in play mode — start play before using the debug seam"}),Bt={"set-instance-count":{derivedRefresh:"always",handle:o=>{if(!e())return a();const r=o.names;if(Array.isArray(r)&&r.every(i=>typeof i=="string"))return r.length<1?{ok:!1,error:'set-instance-count "names" must have at least one entry.'}:(n(r),{ok:!0});const t=o.count;return typeof t!="number"||!Number.isFinite(t)||t<1?{ok:!1,error:`set-instance-count requires a whole "count" >= 1 (or a "names" array), got ${String(t)}.`}:(s(Math.floor(t)-1),{ok:!0})}},"list-instances":{derivedRefresh:"if-content-changed",handle:()=>({ok:!0,data:{instances:m(),named:p()}})}};export{Bt as commands,zt as point};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as t}from"./game-network-BuhrtQlJ.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-9nYTVIws.js";import"./index-nmcBqr7Y.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"./native-debug-module-lQJX-160.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BFq6QR4G.js";import"./contract-system-adapters-C1bKdaVk.js";import"./game-contract-seams-Cfyg896y.js";import"./seeded-random-DfGQ6n66.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-DmeaOP4r.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-DzuOGwVB.js";import"./live-project-verbs-E-s8WH5m.js";import"./capability-coverage-rUUpSzOn.js";import"./edit-mode-authoring-Cm2rEFlJ.js";import"./json-history-resource-C818aJwj.js";import"./binding-resolver--K9B2aXQ.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-NnoNrbsM.js";import"./canvas-entry-runtime-Cg364i6A.js";import"./three-ingest-runtime-CDzGhpUC.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-Lfx46SVT.js";import"./ingest-source-persistence-DbuTxtMu.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-D1HAou7A.js";import"./mounted-authoring-CHg17ilK.js";import"./entity-object-DiC6cpEd.js";import"./user-data-BQR8TLTV.js";import"./workspace-arrangement-8FYR3_fQ.js";import"./three-contract-Dkt6PmWY.js";import"./three-Cq9i0Lo_.js";import"./editor-layers-kBpG49pG.js";import"./component-instance-root-DktYaTot.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter--CDtc-SE.js";import"./source-persistence-backend-CTvhQwDl.js";import"./three-projection-core-CxFDvqEe.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-BNfJcrsE.js";import"./deferred-ingest-play-sqaLv2U9.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CW_LKdTk.js";import"./board-guides-BRZrEdtv.js";import"./relative-import-specifier-CAVq9YAo.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-3o2qSIRq.js";import"./inference-diagnostics-71A-NHW0.js";import"./writer-tw6EcuVO.js";import"./three-state-BHy0drOJ.js";import"./editor-shell-store-C6VYP6ve.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-3sS8tuxh.js";import"./game-surface-defaults-D8S4cRxi.js";const zt="workspace.service";function At(){t()}export{zt as point,At as start};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/r3f-design-session-BSfF6B87.js","assets/index-9nYTVIws.js","assets/index-nmcBqr7Y.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-D_NuPfjr.js","assets/jsx-runtime-DPjLkJKQ.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/edit-mode-authoring-Cm2rEFlJ.js","assets/game-network-BuhrtQlJ.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-lQJX-160.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-BFq6QR4G.js","assets/contract-system-adapters-C1bKdaVk.js","assets/game-contract-seams-Cfyg896y.js","assets/seeded-random-DfGQ6n66.js","assets/game-audio-BeCyd0Ha.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-DmeaOP4r.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/index-DzuOGwVB.js","assets/live-project-verbs-E-s8WH5m.js","assets/capability-coverage-rUUpSzOn.js","assets/json-history-resource-C818aJwj.js","assets/binding-resolver--K9B2aXQ.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-NnoNrbsM.js","assets/canvas-entry-runtime-Cg364i6A.js","assets/three-ingest-runtime-CDzGhpUC.js","assets/EffectComposer-BEAt0PtQ.js","assets/CopyShader-BzTUYzf6.js","assets/ShaderPass-DTnDQXm0.js","assets/Pass-D1MRT672.js","assets/CSS3DRenderer-BsAqfavI.js","assets/relative-path-guard-GiM7Lsz8.js","assets/react-root-BHA-cdrW.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/active-ingest-Lfx46SVT.js","assets/ingest-source-persistence-DbuTxtMu.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-D1HAou7A.js","assets/mounted-authoring-CHg17ilK.js","assets/entity-object-DiC6cpEd.js","assets/user-data-BQR8TLTV.js","assets/workspace-arrangement-8FYR3_fQ.js","assets/three-contract-Dkt6PmWY.js","assets/three-Cq9i0Lo_.js","assets/editor-layers-kBpG49pG.js","assets/component-instance-root-DktYaTot.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter--CDtc-SE.js","assets/source-persistence-backend-CTvhQwDl.js","assets/three-projection-core-CxFDvqEe.js","assets/body-marks-C1LxJtQb.js","assets/user-data-CODoGZqA.js","assets/object-marks-BnvSuCTt.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-BNfJcrsE.js","assets/deferred-ingest-play-sqaLv2U9.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-CW_LKdTk.js","assets/board-guides-BRZrEdtv.js","assets/relative-import-specifier-CAVq9YAo.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-3o2qSIRq.js","assets/inference-diagnostics-71A-NHW0.js","assets/writer-tw6EcuVO.js","assets/three-state-BHy0drOJ.js","assets/editor-shell-store-C6VYP6ve.js","assets/output-pass-HurwNl0G.js","assets/viewport-door-3sS8tuxh.js","assets/game-surface-defaults-D8S4cRxi.js","assets/scene-framing-Bib_NZz8.js","assets/assets-BcrMQHRv.js","assets/loader-BTUKnX5Q.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/create-runtime-CYU9IW7x.js","assets/binding-Bmxqznjk.js","assets/root-stacking-BEd9ZvxC.js","assets/setup-renderer-ayLSJRHD.js","assets/index-DHhMOs_s.js","assets/defaults-DKiBJCPN.js","assets/render-settings-GZy83cAX.js","assets/render-features-Dro8D2hp.js","assets/loop-gate-report-N52EWFGD.js","assets/system-slot-E2mEdiih.js","assets/performance-profiler-CMbwGBuk.js","assets/live-gesture-lock-DJbrjOqf.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{_ as s,aF as n}from"./index-9nYTVIws.js";import{r as a}from"./design-time-mount-registry-DUpXCg1U.js";import{q as c}from"./edit-mode-authoring-Cm2rEFlJ.js";import{a as u}from"./json-history-resource-C818aJwj.js";import{o as h}from"./three-authoring-adapter--CDtc-SE.js";import{t as i}from"./editor-shell-store-C6VYP6ve.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"./component-instance-root-DktYaTot.js";import"./user-data-BQR8TLTV.js";import"./workspace-arrangement-8FYR3_fQ.js";import"./source-persistence-backend-CTvhQwDl.js";import"./ingest-source-persistence-DbuTxtMu.js";import"./three-projection-core-CxFDvqEe.js";import"./editor-layers-kBpG49pG.js";import"./three-Cq9i0Lo_.js";import"./entity-object-DiC6cpEd.js";import"./three-contract-Dkt6PmWY.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three.core-3arARmh6.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./r3f-physics-binding-BNfJcrsE.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./Pass-D1MRT672.js";const U="workspace.service";function X(){const r=s(()=>import("./r3f-design-session-BSfF6B87.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99]));r.catch(()=>{});const m=n("three",(t,o)=>h(i(t),()=>i(t).scene,o,u(o))),e=a({kind:"three",owner:"@volter/editor-game/three/three-authoring",async mountWorldRootSession(t){const o=t,{mountR3FDesignSession:p}=await r;return p(o.store,o.composite,o.renderer)}});return c(),()=>{e(),m()}}export{U as point,X as start};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as r}from"./three-integration-w-zCKW8J.js";import"./index-9nYTVIws.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"./host-hierarchy-objects-BV3WqU2w.js";import"./renderer-ownership-BovSEcLv.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./preview-renderer-BrYNFV1p.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./layered-pick-D9xs5s8q.js";import"./root-stacking-BEd9ZvxC.js";import"./user-data-BQR8TLTV.js";import"./workspace-arrangement-8FYR3_fQ.js";import"./model-thumbnail-DXupO6bI.js";import"./studio-environment-8rNw9hGx.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./object3d-document-session-registry-D6-Tfc82.js";import"./three-state-BHy0drOJ.js";import"./editor-shell-store-C6VYP6ve.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./editor-layers-kBpG49pG.js";import"./entity-object-DiC6cpEd.js";import"./three-contract-Dkt6PmWY.js";import"./hierarchy-marks-BTgoMhKJ.js";import"./component-instance-root-DktYaTot.js";import"./viewport-door-3sS8tuxh.js";import"./content-bounds-CY_M6Fwr.js";import"./asset-preview-DPWGMtoN.js";import"./bitmap-label-Ct4k6ehY.js";const Q="workspace.service";function R(){return r()}export{Q as point,R as start};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as o}from"./jsx-runtime-DPjLkJKQ.js";import{r as t}from"./index-9nYTVIws.js";import{r as m}from"./index-nmcBqr7Y.js";import{P as p}from"./PlayBar-Cmml9m77.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-D_NuPfjr.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./configurations-CNjdXyJJ.js";import"./run-selection-BkQCgqx8.js";import"./game-network-BuhrtQlJ.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-lQJX-160.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BFq6QR4G.js";import"./contract-system-adapters-C1bKdaVk.js";import"./game-contract-seams-Cfyg896y.js";import"./seeded-random-DfGQ6n66.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-DmeaOP4r.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-DzuOGwVB.js";import"./live-project-verbs-E-s8WH5m.js";import"./capability-coverage-rUUpSzOn.js";import"./edit-mode-authoring-Cm2rEFlJ.js";import"./json-history-resource-C818aJwj.js";import"./binding-resolver--K9B2aXQ.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-NnoNrbsM.js";import"./canvas-entry-runtime-Cg364i6A.js";import"./three-ingest-runtime-CDzGhpUC.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-Lfx46SVT.js";import"./ingest-source-persistence-DbuTxtMu.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-D1HAou7A.js";import"./mounted-authoring-CHg17ilK.js";import"./entity-object-DiC6cpEd.js";import"./user-data-BQR8TLTV.js";import"./workspace-arrangement-8FYR3_fQ.js";import"./three-contract-Dkt6PmWY.js";import"./three-Cq9i0Lo_.js";import"./editor-layers-kBpG49pG.js";import"./component-instance-root-DktYaTot.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter--CDtc-SE.js";import"./source-persistence-backend-CTvhQwDl.js";import"./three-projection-core-CxFDvqEe.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-BNfJcrsE.js";import"./deferred-ingest-play-sqaLv2U9.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CW_LKdTk.js";import"./board-guides-BRZrEdtv.js";import"./relative-import-specifier-CAVq9YAo.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-3o2qSIRq.js";import"./inference-diagnostics-71A-NHW0.js";import"./writer-tw6EcuVO.js";import"./three-state-BHy0drOJ.js";import"./editor-shell-store-C6VYP6ve.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-3sS8tuxh.js";import"./game-surface-defaults-D8S4cRxi.js";const Dr="workspace.header",Fr=0;function Gr(){const{project:r}=t();return m.useSyncExternalStore(r.subscribe,r.mounts,r.mounts)?o.jsx(p,{}):null}export{Gr as default,Fr as order,Dr as point};
|