endset_three_editor 0.2.7 → 0.3.1

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.
@@ -0,0 +1,28 @@
1
+ import { Object3D } from 'three';
2
+ type __VLS_Props = {
3
+ transform: {
4
+ position: {
5
+ x: number;
6
+ y: number;
7
+ z: number;
8
+ };
9
+ rotation: {
10
+ x: number;
11
+ y: number;
12
+ z: number;
13
+ };
14
+ scale: {
15
+ x: number;
16
+ y: number;
17
+ z: number;
18
+ };
19
+ };
20
+ selectedObject: Object3D | null;
21
+ };
22
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
23
+ propertyChange: () => any;
24
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
25
+ onPropertyChange?: (() => any) | undefined;
26
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
27
+ declare const _default: typeof __VLS_export;
28
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import { Object3D } from 'three';
2
+ type __VLS_Props = {
3
+ selectedObject: Object3D | null;
4
+ };
5
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -1,6 +1,5 @@
1
1
  import { Object3D } from 'three';
2
2
  type __VLS_Props = {
3
- /** 变换数据对象,包含 position, rotation, scale */
4
3
  transform: {
5
4
  position: {
6
5
  x: number;
@@ -18,19 +17,19 @@ type __VLS_Props = {
18
17
  z: number;
19
18
  };
20
19
  } | null;
21
- /** 顶层物体列表 */
22
20
  treeData: Object3D[];
23
- /** 当前选中的物体 */
24
21
  selectedObject: Object3D | null;
25
22
  };
26
23
  declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
27
24
  propertyChange: () => any;
28
25
  treeSelect: (obj: Object3D<import('three').Object3DEventMap>) => any;
29
26
  treeDelete: (obj: Object3D<import('three').Object3DEventMap>) => any;
27
+ transformModeChange: (mode: "translate" | "rotate" | "scale") => any;
30
28
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
31
29
  onPropertyChange?: (() => any) | undefined;
32
30
  onTreeSelect?: ((obj: Object3D<import('three').Object3DEventMap>) => any) | undefined;
33
31
  onTreeDelete?: ((obj: Object3D<import('three').Object3DEventMap>) => any) | undefined;
32
+ onTransformModeChange?: ((mode: "translate" | "rotate" | "scale") => any) | undefined;
34
33
  }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
35
34
  declare const _default: typeof __VLS_export;
36
35
  export default _default;
@@ -1 +1 @@
1
- .tree-node .tree-item[data-v-5ad9c842]{display:flex;align-items:center;padding:4px 10px;cursor:pointer;transition:background .15s}.tree-node .tree-item[data-v-5ad9c842]:hover{background:#2a4050}.tree-node .tree-item.selected[data-v-5ad9c842]{background:#3e5a6b}.tree-node .toggle-icon[data-v-5ad9c842]{cursor:pointer;width:20px;text-align:center;font-size:12px;-webkit-user-select:none;user-select:none}.tree-node .toggle-placeholder[data-v-5ad9c842]{width:20px;display:inline-block}.tree-node .tree-icon[data-v-5ad9c842]{margin-right:6px;font-size:14px}.tree-node .tree-name[data-v-5ad9c842]{flex:1;font-size:13px;-webkit-user-select:none;user-select:none}.tree-node .tree-delete[data-v-5ad9c842]{background:transparent;border:none;color:#e74c3c;font-size:16px;cursor:pointer;padding:0 4px;line-height:1}.tree-node .tree-delete[data-v-5ad9c842]:hover{color:#ff6b6b}.tree-children[data-v-5ad9c842]{padding-left:20px}.tabs[data-v-d75c643f]{display:flex;gap:0;border-bottom:2px solid #1a2a36;margin-bottom:16px}.tabs .tab-btn[data-v-d75c643f]{flex:1;padding:8px 12px;background:transparent;border:none;color:#95a5a6;font-size:13px;cursor:pointer;transition:color .2s,border-bottom .2s;border-bottom:2px solid transparent;margin-bottom:-2px}.tabs .tab-btn[data-v-d75c643f]:hover{color:#ecf0f1}.tabs .tab-btn.active[data-v-d75c643f]{color:#f1c40f;border-bottom-color:#f1c40f}.property-panel[data-v-d75c643f]{width:320px;height:100%;background:#2c3e50;color:#ecf0f1;padding:16px;box-sizing:border-box;border-left:1px solid #1a2a36;overflow-y:auto;font-size:14px}.property-panel h3[data-v-d75c643f]{margin-top:0;text-align:center}.property-panel .property-group[data-v-d75c643f]{margin-bottom:20px;border-bottom:1px solid #1a2a36;padding-bottom:12px}.property-panel .property-group label[data-v-d75c643f]{font-weight:700;display:block;margin-bottom:8px;color:#f1c40f}.property-panel .property-group .row[data-v-d75c643f]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.property-panel .property-group .row span[data-v-d75c643f]{width:20px;text-align:right}.property-panel .property-group .row input[data-v-d75c643f]{background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:4px 8px;border-radius:4px;width:48px}.property-panel .tab-content .material-group .slider-row[data-v-d75c643f]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.property-panel .tab-content .material-group .slider-row .slider-label[data-v-d75c643f]{width:50px;font-size:12px;color:#95a5a6}.property-panel .tab-content .material-group .slider-row input[type=range][data-v-d75c643f]{flex:1;height:4px;-webkit-appearance:none;background:#1e2a36;border-radius:2px;outline:none}.property-panel .tab-content .material-group .slider-row input[type=range][data-v-d75c643f]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:#f1c40f;cursor:pointer}.property-panel .tab-content .material-group .slider-row .slider-value[data-v-d75c643f]{width:36px;font-size:12px;text-align:center;color:#ecf0f1}.property-panel .tab-content .material-group .material-hint[data-v-d75c643f]{margin-top:6px;font-size:12px;color:#e67e22}.empty[data-v-d75c643f]{text-align:center;color:#95a5a6}.tree-group[data-v-d75c643f]{margin-top:10px}.tree-group .tree-container[data-v-d75c643f]{max-height:200px;overflow-y:auto;background:#1a2a36;border-radius:4px;padding:4px 0}.tree-empty[data-v-d75c643f]{padding:8px 10px;color:#95a5a6;font-style:italic}.top-bar[data-v-6bb4762f]{height:40px;background:#1a2a36;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid #2a4050;flex-shrink:0;-webkit-user-select:none;user-select:none}.top-bar .left-section[data-v-6bb4762f]{display:flex;gap:12px;align-items:center}.top-bar .left-section .dropdown-wrapper[data-v-6bb4762f]{position:relative;display:inline-block}.top-bar .left-section .dropdown-wrapper .menu-btn[data-v-6bb4762f]{background:transparent;border:none;color:#ecf0f1;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:14px;transition:background .2s}.top-bar .left-section .dropdown-wrapper .menu-btn[data-v-6bb4762f]:hover{background:#2a4050}.top-bar .left-section .dropdown-wrapper .dropdown-menu[data-v-6bb4762f]{position:absolute;top:100%;left:0;background:#2c3e50;border:1px solid #3e5a6b;border-radius:4px;min-width:140px;padding:4px 0;z-index:100;box-shadow:0 4px 12px #0000004d}.top-bar .left-section .dropdown-wrapper .dropdown-menu .menu-item[data-v-6bb4762f]{padding:6px 16px;color:#ecf0f1;cursor:pointer;font-size:13px;transition:background .15s;white-space:nowrap}.top-bar .left-section .dropdown-wrapper .dropdown-menu .menu-item[data-v-6bb4762f]:hover{background:#3e5a6b}.top-bar .left-section .dropdown-wrapper .dropdown-menu .menu-item.sub-trigger[data-v-6bb4762f]{display:flex;justify-content:space-between;align-items:center;position:relative}.top-bar .left-section .dropdown-wrapper .sub-menu[data-v-6bb4762f]{position:absolute;left:100%;top:0;background:#2c3e50;border:1px solid #3e5a6b;border-radius:4px;min-width:140px;padding:4px 0;z-index:101;box-shadow:0 4px 12px #0000004d}.top-bar .right-section[data-v-6bb4762f]{display:flex;align-items:center}.top-bar .app-title[data-v-6bb4762f]{color:#8af;font-size:16px;font-weight:500;letter-spacing:.5px}.bottom-bar[data-v-3427bb27]{height:40px;background:#1a2a36;border-top:1px solid #2a4050;display:flex;align-items:center;justify-content:space-between;padding:0 16px;flex-shrink:0;color:#95a5a6;font-size:13px;-webkit-user-select:none;user-select:none}.bottom-bar .status-left[data-v-3427bb27],.bottom-bar .status-right[data-v-3427bb27]{display:flex;gap:16px}.app-layout[data-v-dd20c794]{display:flex;flex-direction:column;height:100%;width:100%}.editor-container[data-v-dd20c794]{display:flex;width:100%}.editor-container-mode-edit[data-v-dd20c794]{height:calc(100% - 80px)}.editor-container-mode-run[data-v-dd20c794]{height:100%}.canvas[data-v-dd20c794]{height:100%;background-color:transparent;position:relative}.canvas-mode-edit[data-v-dd20c794]{width:calc(100% - 320px)}.canvas-mode-run[data-v-dd20c794]{width:100%}
1
+ .tree-node .tree-item[data-v-5ad9c842]{display:flex;align-items:center;padding:4px 10px;cursor:pointer;transition:background .15s}.tree-node .tree-item[data-v-5ad9c842]:hover{background:#2a4050}.tree-node .tree-item.selected[data-v-5ad9c842]{background:#3e5a6b}.tree-node .toggle-icon[data-v-5ad9c842]{cursor:pointer;width:20px;text-align:center;font-size:12px;-webkit-user-select:none;user-select:none}.tree-node .toggle-placeholder[data-v-5ad9c842]{width:20px;display:inline-block}.tree-node .tree-icon[data-v-5ad9c842]{margin-right:6px;font-size:14px}.tree-node .tree-name[data-v-5ad9c842]{flex:1;font-size:13px;-webkit-user-select:none;user-select:none}.tree-node .tree-delete[data-v-5ad9c842]{background:transparent;border:none;color:#e74c3c;font-size:16px;cursor:pointer;padding:0 4px;line-height:1}.tree-node .tree-delete[data-v-5ad9c842]:hover{color:#ff6b6b}.tree-children[data-v-5ad9c842]{padding-left:20px}.property-group[data-v-4cecf018]{margin-bottom:20px;border-bottom:1px solid #1a2a36;padding-bottom:12px}.property-group label[data-v-4cecf018]{font-weight:700;display:block;margin-bottom:8px;color:#f1c40f}.property-group .row[data-v-4cecf018]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.property-group .row span[data-v-4cecf018]{width:20px;text-align:right}.property-group .row input[data-v-4cecf018]{background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:4px 8px;border-radius:4px;width:48px}.light-group .intensity-input[data-v-4cecf018]{width:48px;background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:2px 6px;border-radius:4px;text-align:center;flex:0 0 auto}.material-group .slider-row[data-v-4cecf018]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.material-group .slider-row .slider-label[data-v-4cecf018]{width:50px;font-size:12px;color:#95a5a6}.material-group .slider-row input[type=range][data-v-4cecf018]{flex:1;height:4px;-webkit-appearance:none;background:#1e2a36;border-radius:2px;outline:none}.material-group .slider-row input[type=range][data-v-4cecf018]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:#f1c40f;cursor:pointer}.material-group .slider-row .slider-value[data-v-4cecf018]{width:36px;font-size:12px;text-align:center;color:#ecf0f1}.material-group .material-hint[data-v-4cecf018]{margin-top:6px;font-size:12px;color:#e67e22}.userdata-group .userdata-add-row[data-v-29e2eaf6]{display:flex;gap:4px;margin-bottom:10px}.userdata-group .userdata-add-row .ud-input[data-v-29e2eaf6]{flex:1;background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:4px 6px;border-radius:4px;font-size:12px;min-width:0}.userdata-group .userdata-add-row .ud-input[data-v-29e2eaf6]::placeholder{color:#5a7a8a}.userdata-group .userdata-add-row .ud-textarea[data-v-29e2eaf6]{resize:none;min-height:28px;max-height:28px;line-height:1.4;font-family:inherit}.userdata-group .userdata-add-row .ud-btn[data-v-29e2eaf6]{flex:0 0 28px;height:28px;border:none;border-radius:4px;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .2s}.userdata-group .userdata-add-row .ud-btn.add-btn[data-v-29e2eaf6]{background:#27ae60;color:#fff}.userdata-group .userdata-add-row .ud-btn.add-btn[data-v-29e2eaf6]:hover{background:#2ecc71}.userdata-group .userdata-list[data-v-29e2eaf6]{display:flex;flex-direction:column;gap:4px}.userdata-group .userdata-list .userdata-item[data-v-29e2eaf6]{display:flex;align-items:center;gap:4px;padding:3px 4px;background:#1a2a36;border-radius:4px;border:1px solid transparent}.userdata-group .userdata-list .userdata-item.readonly[data-v-29e2eaf6]{background:#1a1f2a;border-color:#3e5a6b}.userdata-group .userdata-list .userdata-item .ud-key[data-v-29e2eaf6]{flex:0 0 auto;min-width:60px;max-width:90px;font-size:11px;color:#f1c40f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.userdata-group .userdata-list .userdata-item .ud-value-input[data-v-29e2eaf6]{flex:1;min-width:0;background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:2px 4px;border-radius:3px;font-size:12px}.userdata-group .userdata-list .userdata-item .ud-value-readonly[data-v-29e2eaf6]{flex:1;font-size:11px;color:#95a5a6;padding:2px 4px;cursor:not-allowed}.userdata-group .userdata-list .userdata-item .ud-value-json-preview[data-v-29e2eaf6]{flex:1;min-width:0;font-size:11px;color:#bdc3c7;padding:2px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Courier New,Courier,monospace}.userdata-group .userdata-list .userdata-item.editing-json[data-v-29e2eaf6]{flex-direction:column;align-items:stretch;gap:4px;padding:6px}.userdata-group .userdata-list .userdata-item .ud-json-error[data-v-29e2eaf6]{font-size:10px;color:#e6b32a;padding:2px 4px;line-height:1.4;word-break:break-all}.userdata-group .userdata-list .userdata-item .ud-json-textarea[data-v-29e2eaf6]{width:100%;min-height:50px;background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:4px 6px;border-radius:4px;font-size:11px;font-family:Courier New,Courier,monospace;resize:vertical;box-sizing:border-box}.userdata-group .userdata-list .userdata-item .ud-json-textarea[data-v-29e2eaf6]:focus{outline:none;border-color:#f1c40f}.userdata-group .userdata-list .userdata-item .ud-json-textarea.has-error[data-v-29e2eaf6]{border-color:#e6b32a}.userdata-group .userdata-list .userdata-item .ud-json-actions[data-v-29e2eaf6]{display:flex;gap:4px;justify-content:flex-end}.userdata-group .userdata-list .userdata-item .ud-btn[data-v-29e2eaf6]{flex:0 0 22px;height:22px;border:none;border-radius:3px;cursor:pointer;font-size:11px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .2s}.userdata-group .userdata-list .userdata-item .ud-btn.del-btn[data-v-29e2eaf6]{background:#c0392b;color:#fff}.userdata-group .userdata-list .userdata-item .ud-btn.del-btn[data-v-29e2eaf6]:hover{background:#e74c3c}.userdata-group .userdata-list .userdata-item .ud-btn.apply-btn[data-v-29e2eaf6]{background:#27ae60;color:#fff}.userdata-group .userdata-list .userdata-item .ud-btn.apply-btn[data-v-29e2eaf6]:hover{background:#2ecc71}.userdata-group .userdata-list .userdata-item .ud-btn.cancel-btn[data-v-29e2eaf6]{background:#7f8c8d;color:#fff}.userdata-group .userdata-list .userdata-item .ud-btn.cancel-btn[data-v-29e2eaf6]:hover{background:#95a5a6}.userdata-group .userdata-list .userdata-item .ud-btn.edit-json-btn[data-v-29e2eaf6]{flex:0 0 22px;height:22px;background:#2980b9;color:#fff}.userdata-group .userdata-list .userdata-item .ud-btn.edit-json-btn[data-v-29e2eaf6]:hover{background:#3498db}.userdata-group .userdata-empty[data-v-29e2eaf6]{font-size:12px;color:#5a7a8a;text-align:center;padding:8px 0;font-style:italic}.property-panel[data-v-f001bf03]{width:320px;height:100%;background:#2c3e50;color:#ecf0f1;padding:16px;box-sizing:border-box;border-left:1px solid #1a2a36;overflow-y:auto;font-size:14px}.property-panel h3[data-v-f001bf03]{margin-top:0;text-align:center}.property-panel .property-group[data-v-f001bf03]{margin-bottom:20px;border-bottom:1px solid #1a2a36;padding-bottom:12px}.property-panel .property-group label[data-v-f001bf03]{font-weight:700;display:block;margin-bottom:8px;color:#f1c40f}.empty[data-v-f001bf03]{text-align:center;color:#95a5a6}.tree-group .tree-container[data-v-f001bf03]{height:200px;overflow-y:auto;background:#1a2a36;border-radius:4px;padding:4px 0}.tree-empty[data-v-f001bf03]{padding:8px 10px;color:#95a5a6;font-style:italic}.tabs[data-v-f001bf03]{display:flex;gap:0;border-bottom:2px solid #1a2a36;margin-bottom:16px}.tabs .tab-btn[data-v-f001bf03]{flex:1;padding:8px 12px;background:transparent;border:none;color:#95a5a6;font-size:13px;cursor:pointer;transition:color .2s,border-bottom .2s;border-bottom:2px solid transparent;margin-bottom:-2px}.tabs .tab-btn[data-v-f001bf03]:hover{color:#ecf0f1}.tabs .tab-btn.active[data-v-f001bf03]{color:#f1c40f;border-bottom-color:#f1c40f}.tab-content[data-v-f001bf03]{height:calc(100% - 430px);overflow-y:auto;overflow-x:hidden}.transform-mode-row[data-v-f001bf03]{display:flex;gap:4px}.transform-mode-row .mode-btn[data-v-f001bf03]{flex:1;padding:6px 8px;background:#1e2a36;border:1px solid #3e5a6b;color:#95a5a6;font-size:12px;border-radius:4px;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.transform-mode-row .mode-btn[data-v-f001bf03]:hover{background:#2c3e50;color:#ecf0f1}.transform-mode-row .mode-btn.active[data-v-f001bf03]{background:#3e5a6b;color:#f1c40f;border-color:#f1c40f}.property-panel[data-v-f001bf03],.tree-container[data-v-f001bf03]{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.top-bar[data-v-d738da51]{height:40px;background:#1a2a36;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid #2a4050;flex-shrink:0;-webkit-user-select:none;user-select:none}.top-bar .left-section[data-v-d738da51]{display:flex;gap:12px;align-items:center}.top-bar .left-section .dropdown-wrapper[data-v-d738da51]{position:relative;display:inline-block}.top-bar .left-section .dropdown-wrapper .menu-btn[data-v-d738da51]{background:transparent;border:none;color:#ecf0f1;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:14px;transition:background .2s}.top-bar .left-section .dropdown-wrapper .menu-btn[data-v-d738da51]:hover{background:#2a4050}.top-bar .left-section .dropdown-wrapper .dropdown-menu[data-v-d738da51]{position:absolute;top:100%;left:0;background:#2c3e50;border:1px solid #3e5a6b;border-radius:4px;min-width:140px;padding:4px 0;z-index:100;box-shadow:0 4px 12px #0000004d}.top-bar .left-section .dropdown-wrapper .dropdown-menu .menu-item[data-v-d738da51]{padding:6px 16px;color:#ecf0f1;cursor:pointer;font-size:13px;transition:background .15s;white-space:nowrap}.top-bar .left-section .dropdown-wrapper .dropdown-menu .menu-item[data-v-d738da51]:hover{background:#3e5a6b}.top-bar .left-section .dropdown-wrapper .dropdown-menu .menu-item.sub-trigger[data-v-d738da51]{display:flex;justify-content:space-between;align-items:center;position:relative}.top-bar .left-section .dropdown-wrapper .sub-menu[data-v-d738da51]{position:absolute;left:100%;top:0;background:#2c3e50;border:1px solid #3e5a6b;border-radius:4px;min-width:140px;padding:4px 0;z-index:101;box-shadow:0 4px 12px #0000004d}.top-bar .right-section[data-v-d738da51]{display:flex;align-items:center}.top-bar .app-title[data-v-d738da51]{color:#8af;font-size:16px;font-weight:500;letter-spacing:.5px}.bottom-bar[data-v-3427bb27]{height:40px;background:#1a2a36;border-top:1px solid #2a4050;display:flex;align-items:center;justify-content:space-between;padding:0 16px;flex-shrink:0;color:#95a5a6;font-size:13px;-webkit-user-select:none;user-select:none}.bottom-bar .status-left[data-v-3427bb27],.bottom-bar .status-right[data-v-3427bb27]{display:flex;gap:16px}.app-layout[data-v-3b2548fa]{display:flex;flex-direction:column;height:100%;width:100%;background-color:#333}.editor-container[data-v-3b2548fa]{display:flex;width:100%}.editor-container-mode-edit[data-v-3b2548fa]{height:calc(100% - 80px)}.editor-container-mode-run[data-v-3b2548fa]{height:100%}.canvas[data-v-3b2548fa]{height:100%;background-color:transparent;position:relative}.canvas-mode-edit[data-v-3b2548fa]{width:calc(100% - 320px)}.canvas-mode-run[data-v-3b2548fa]{width:100%}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { default as DrawingBoard } from './components/DrawingBoard.vue';
2
- export { default as PropertyPanel } from './components/PropertyPanel.vue';
2
+ export { default as PropertyPanel } from './components/PropertyPanel/index.vue';
3
3
  export { default as TopBar } from './components/TopBar.vue';
4
4
  export { default as BottomBar } from './components/BottomBar.vue';
5
5
  export { default as TreeItem } from './components/TreeItem.vue';
@@ -3,10 +3,36 @@
3
3
  * 所有模型均自动标记为可移动(isMovable = true)
4
4
  */
5
5
  import * as THREE from "three";
6
- /** 添加一个蓝色的正方体,位置在地面上方 0.5 单位 */
6
+ /**
7
+ * 添加一个蓝色的正方体,位置在地面上方 0.5 单位
8
+ */
7
9
  export declare function addBox(): THREE.Mesh<THREE.BoxGeometry, THREE.MeshStandardMaterial, THREE.Object3DEventMap>;
8
- /** 添加一个橙色的球体,位置在地面上方 0.6 单位 */
10
+ /**
11
+ * 添加一个橙色的球体,位置在地面上方 0.6 单位
12
+ */
9
13
  export declare function addSphere(): THREE.Mesh<THREE.SphereGeometry, THREE.MeshStandardMaterial, THREE.Object3DEventMap>;
14
+ /**
15
+ * 添加一个平行光
16
+ */
17
+ export declare function addDirectionalLight(): void;
18
+ /**
19
+ * 添加水面效果
20
+ */
21
+ /**
22
+ * 添加水纹法线贴图
23
+ */
24
+ export declare function addWaterPlane(options?: {
25
+ width?: number;
26
+ height?: number;
27
+ color?: string | number;
28
+ roughness?: number;
29
+ metalness?: number;
30
+ normalScale?: number;
31
+ repeatX?: number;
32
+ repeatY?: number;
33
+ speedX?: number;
34
+ speedY?: number;
35
+ }): void;
10
36
  /**
11
37
  * 从 File 对象导入 3D 模型(支持 .obj, .gltf, .glb)
12
38
  * 导入后自动标记所有节点为可移动,并居中放置
@@ -16,6 +16,17 @@ export declare function initEditor(container: HTMLElement, mode?: string, sceneD
16
16
  * @param obj - 要选中的物体
17
17
  */
18
18
  export declare function selectObject(obj: Object3D): void;
19
+ /**
20
+ * 设置变换控制器的模式
21
+ * @param mode - "translate" | "rotate" | "scale"
22
+ */
23
+ export declare function setTransformMode(mode: "translate" | "rotate" | "scale"): void;
24
+ /**
25
+ * 将相机平滑聚焦到指定物体
26
+ * @param objectId - 目标物体 id
27
+ * @param duration - 动画持续时间(毫秒),默认 500ms
28
+ */
29
+ export declare function focusOnObject(objectId: string, duration?: number): void;
19
30
  /**
20
31
  * 向场景添加一个模型(Object3D 及其子节点)
21
32
  * @param model - 要添加的模型对象