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.
- package/dist/components/PropertyPanel/TransformTab.vue.d.ts +28 -0
- package/dist/components/PropertyPanel/UserDataTab.vue.d.ts +7 -0
- package/dist/components/{PropertyPanel.vue.d.ts → PropertyPanel/index.vue.d.ts} +2 -3
- package/dist/endset_three_editor.css +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/three/addHandle.d.ts +28 -2
- package/dist/three/index.d.ts +11 -0
- package/dist/three-editor.cjs.js +3 -2
- package/dist/three-editor.cjs.js.map +1 -1
- package/dist/three-editor.es.js +2453 -1726
- package/dist/three-editor.es.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* 添加一个蓝色的正方体,位置在地面上方 0.5 单位
|
|
8
|
+
*/
|
|
7
9
|
export declare function addBox(): THREE.Mesh<THREE.BoxGeometry, THREE.MeshStandardMaterial, THREE.Object3DEventMap>;
|
|
8
|
-
/**
|
|
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
|
* 导入后自动标记所有节点为可移动,并居中放置
|
package/dist/three/index.d.ts
CHANGED
|
@@ -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 - 要添加的模型对象
|