endset_three_editor 0.10.37 → 0.10.39
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/endset_three_editor.css +1 -1
- package/dist/three/addHandle.d.ts +21 -0
- package/dist/three/index.d.ts +28 -1
- package/dist/three-editor.cjs.js +15 -15
- package/dist/three-editor.cjs.js.map +1 -1
- package/dist/three-editor.es.js +1773 -1722
- package/dist/three-editor.es.js.map +1 -1
- package/package.json +1 -1
|
@@ -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}.property-group[data-v-52981d9f]{margin-bottom:20px;border-bottom:1px solid #1a2a36;padding-bottom:12px}.property-group label[data-v-52981d9f]{font-weight:700;display:block;margin-bottom:8px;color:#f1c40f}.property-group .row[data-v-52981d9f]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.property-group .row span[data-v-52981d9f]{width:20px;text-align:right}.property-group .row input[data-v-52981d9f]{flex:1;min-width:0;box-sizing:border-box;background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:4px 8px;border-radius:4px}.light-group .intensity-input[data-v-52981d9f]{width:48px;background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:2px 6px;border-radius:4px;text-align:center;flex:0 0 auto}.water-group .color-row[data-v-52981d9f]{display:flex;align-items:center;gap:8px}.water-group .color-row .slider-label[data-v-52981d9f]{width:50px;font-size:12px;color:#95a5a6}.water-group .color-row .color-picker[data-v-52981d9f]{width:40px;height:32px;padding:0;border:1px solid #3e5a6b;border-radius:4px;background:none;cursor:pointer;-webkit-appearance:none}.water-group .color-row .color-picker[data-v-52981d9f]::-webkit-color-swatch-wrapper{padding:2px}.water-group .color-row .color-picker[data-v-52981d9f]::-webkit-color-swatch{border:none;border-radius:2px}.water-group .color-row .color-text-input[data-v-52981d9f]{width:80px;background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:4px 8px;border-radius:4px;font-size:12px;font-family:monospace}.water-group .toggle-row[data-v-52981d9f]{display:flex;align-items:center;gap:8px;margin-top:8px}.water-group .toggle-row .slider-label[data-v-52981d9f]{width:50px;font-size:12px;color:#95a5a6;flex-shrink:0}.water-group .toggle-row .switch[data-v-52981d9f]{position:relative;display:inline-block;width:38px;height:20px;flex-shrink:0}.water-group .toggle-row .switch input[data-v-52981d9f]{opacity:0;width:0;height:0}.water-group .toggle-row .switch input:checked+.slider[data-v-52981d9f]{background:#27ae60}.water-group .toggle-row .switch input:checked+.slider[data-v-52981d9f]:before{transform:translate(18px)}.water-group .toggle-row .switch .slider[data-v-52981d9f]{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#555f6b;border-radius:20px;transition:background .2s}.water-group .toggle-row .switch .slider[data-v-52981d9f]:before{content:"";position:absolute;width:16px;height:16px;left:2px;top:2px;background:#fff;border-radius:50%;transition:transform .2s}.water-group .toggle-row .toggle-hint[data-v-52981d9f]{font-size:11px;color:#7f8c8d;flex:1}.material-group .color-row[data-v-52981d9f]{display:flex;align-items:center;gap:8px;margin-bottom:8px}.material-group .color-row .slider-label[data-v-52981d9f]{width:60px;font-size:12px;color:#95a5a6}.material-group .color-row .color-picker[data-v-52981d9f]{width:40px;height:32px;padding:0;border:1px solid #3e5a6b;border-radius:4px;background:none;cursor:pointer;-webkit-appearance:none}.material-group .color-row .color-picker[data-v-52981d9f]::-webkit-color-swatch-wrapper{padding:2px}.material-group .color-row .color-picker[data-v-52981d9f]::-webkit-color-swatch{border:none;border-radius:2px}.material-group .color-row .color-text-input[data-v-52981d9f]{width:80px;background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:4px 8px;border-radius:4px;font-size:12px;font-family:monospace}.material-group .slider-row[data-v-52981d9f]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.material-group .slider-row .slider-label[data-v-52981d9f]{width:60px;font-size:12px;color:#95a5a6}.material-group .slider-row input[type=range][data-v-52981d9f]{flex:1;height:4px;-webkit-appearance:none;background:#1e2a36;border-radius:2px;outline:none}.material-group .slider-row input[type=range][data-v-52981d9f]::-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-52981d9f]{width:36px;font-size:12px;text-align:center;color:#ecf0f1}.material-group .texture-row[data-v-52981d9f]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.material-group .texture-row .slider-label[data-v-52981d9f]{width:60px;font-size:12px;color:#95a5a6;flex-shrink:0}.material-group .texture-row .texture-controls[data-v-52981d9f]{display:flex;align-items:center;gap:4px;flex:1}.material-group .texture-row .texture-upload-btn[data-v-52981d9f]{flex:1;display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;background:#2980b9;color:#fff;border-radius:4px;font-size:11px;cursor:pointer;transition:background .2s;white-space:nowrap;overflow:hidden}.material-group .texture-row .texture-upload-btn[data-v-52981d9f]:hover{background:#3498db}.material-group .texture-row .texture-upload-btn .texture-file-input[data-v-52981d9f]{display:none}.material-group .texture-row .texture-upload-btn .texture-filename[data-v-52981d9f]{overflow:hidden;text-overflow:ellipsis;max-width:100px}.material-group .texture-row .texture-modify-btn[data-v-52981d9f]{flex:1;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#2c3e50;border:1px solid #3e5a6b;color:#ecf0f1;border-radius:4px;font-size:11px;cursor:pointer;transition:background .2s,border-color .2s;white-space:nowrap;overflow:hidden}.material-group .texture-row .texture-modify-btn[data-v-52981d9f]:hover{background:#3e5a6b;border-color:#f1c40f}.material-group .texture-row .texture-modify-btn .texture-file-input[data-v-52981d9f]{display:none}.material-group .texture-row .texture-modify-btn .texture-filename[data-v-52981d9f]{overflow:hidden;text-overflow:ellipsis;max-width:80px}.material-group .texture-row .texture-modify-btn .modify-hint[data-v-52981d9f]{flex-shrink:0;font-size:10px;color:#f1c40f;border:1px solid #f1c40f;border-radius:3px;padding:0 4px;line-height:1.4}.material-group .texture-row .texture-remove-btn[data-v-52981d9f]{flex:0 0 22px;height:22px;border:none;border-radius:3px;background:#c0392b;color:#fff;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.material-group .texture-row .texture-remove-btn[data-v-52981d9f]:hover{background:#e74c3c}.material-group .material-hint[data-v-52981d9f]{margin-top:6px;font-size:12px;color:#e67e22}.userdata-group .userdata-add-row[data-v-4e117415]{display:flex;gap:4px;margin-bottom:10px}.userdata-group .userdata-add-row .ud-input[data-v-4e117415]{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-4e117415]::placeholder{color:#5a7a8a}.userdata-group .userdata-add-row .ud-textarea[data-v-4e117415]{resize:none;min-height:28px;max-height:28px;line-height:1.4;font-family:inherit}.userdata-group .userdata-add-row .ud-btn[data-v-4e117415]{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-4e117415]{background:#27ae60;color:#fff}.userdata-group .userdata-add-row .ud-btn.add-btn[data-v-4e117415]:hover{background:#2ecc71}.userdata-group .userdata-list[data-v-4e117415]{display:flex;flex-direction:column;gap:4px}.userdata-group .userdata-list .userdata-item[data-v-4e117415]{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-4e117415]{background:#1a1f2a;border-color:#3e5a6b}.userdata-group .userdata-list .userdata-item .ud-key[data-v-4e117415]{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-4e117415]{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-4e117415]{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-4e117415]{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-4e117415]{flex-direction:column;align-items:stretch;gap:4px;padding:6px}.userdata-group .userdata-list .userdata-item .ud-json-error[data-v-4e117415]{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-4e117415]{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-4e117415]:focus{outline:none;border-color:#f1c40f}.userdata-group .userdata-list .userdata-item .ud-json-textarea.has-error[data-v-4e117415]{border-color:#e6b32a}.userdata-group .userdata-list .userdata-item .ud-json-actions[data-v-4e117415]{display:flex;gap:4px;justify-content:flex-end}.userdata-group .userdata-list .userdata-item .ud-btn[data-v-4e117415]{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-4e117415]{background:#c0392b;color:#fff}.userdata-group .userdata-list .userdata-item .ud-btn.del-btn[data-v-4e117415]:hover{background:#e74c3c}.userdata-group .userdata-list .userdata-item .ud-btn.apply-btn[data-v-4e117415]{background:#27ae60;color:#fff}.userdata-group .userdata-list .userdata-item .ud-btn.apply-btn[data-v-4e117415]:hover{background:#2ecc71}.userdata-group .userdata-list .userdata-item .ud-btn.cancel-btn[data-v-4e117415]{background:#7f8c8d;color:#fff}.userdata-group .userdata-list .userdata-item .ud-btn.cancel-btn[data-v-4e117415]:hover{background:#95a5a6}.userdata-group .userdata-list .userdata-item .ud-btn.edit-json-btn[data-v-4e117415]{flex:0 0 22px;height:22px;background:#2980b9;color:#fff}.userdata-group .userdata-list .userdata-item .ud-btn.edit-json-btn[data-v-4e117415]:hover{background:#3498db}.userdata-group .get-camera-btn[data-v-4e117415]{border-radius:4px;background-color:#3e5a6b;margin-top:10px;font-size:12px;color:#c2cde2}.userdata-group .userdata-empty[data-v-4e117415]{font-size:12px;color:#5a7a8a;text-align:center;padding:8px 0;font-style:italic}.datapanel-tab .dp-section[data-v-b4c7c7dc]{margin-bottom:12px}.datapanel-tab .dp-section .dp-label-sm[data-v-b4c7c7dc]{display:block;font-size:12px;color:#8af;margin-bottom:4px}.datapanel-tab .dp-input[data-v-b4c7c7dc]{background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:4px 6px;border-radius:4px;font-size:12px;width:100%;box-sizing:border-box}.datapanel-tab .dp-input[data-v-b4c7c7dc]::placeholder{color:#5a7a8a}.datapanel-tab .dp-input[data-v-b4c7c7dc]:focus{outline:none;border-color:#f1c40f}.datapanel-tab .dp-input-sm[data-v-b4c7c7dc]{flex:2;min-width:0}.datapanel-tab .dp-input-xs[data-v-b4c7c7dc]{flex:1;min-width:0}.datapanel-tab .dp-input-number[data-v-b4c7c7dc]{width:70px;flex:none;text-align:center}.datapanel-tab .dp-list[data-v-b4c7c7dc]{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.datapanel-tab .dp-list .dp-item[data-v-b4c7c7dc],.datapanel-tab .dp-add-row[data-v-b4c7c7dc]{display:flex;gap:4px;align-items:center}.datapanel-tab .dp-visibility-row[data-v-b4c7c7dc]{display:flex;align-items:center;gap:10px;padding:4px 0}.datapanel-tab .dp-visibility-row .dp-visibility-text[data-v-b4c7c7dc]{font-size:12px;color:#95a5a6}.datapanel-tab .dp-toggle[data-v-b4c7c7dc]{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}.datapanel-tab .dp-toggle input[data-v-b4c7c7dc]{opacity:0;width:0;height:0}.datapanel-tab .dp-toggle .dp-toggle-slider[data-v-b4c7c7dc]{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#3e5a6b;border-radius:22px;transition:background-color .3s}.datapanel-tab .dp-toggle .dp-toggle-slider[data-v-b4c7c7dc]:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background-color:#ecf0f1;border-radius:50%;transition:transform .3s}.datapanel-tab .dp-toggle input:checked+.dp-toggle-slider[data-v-b4c7c7dc]{background-color:#27ae60}.datapanel-tab .dp-toggle input:checked+.dp-toggle-slider[data-v-b4c7c7dc]:before{transform:translate(18px)}.datapanel-tab .dp-size-row[data-v-b4c7c7dc]{display:flex;align-items:center;gap:8px;padding:4px 0}.datapanel-tab .dp-size-row .dp-range-label[data-v-b4c7c7dc]{font-size:11px;color:#7a9aab;flex-shrink:0}.datapanel-tab .dp-size-row .dp-range[data-v-b4c7c7dc]{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:#3e5a6b;border-radius:2px;outline:none;cursor:pointer}.datapanel-tab .dp-size-row .dp-range[data-v-b4c7c7dc]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:#5dade2;border-radius:50%;cursor:pointer;transition:background .2s}.datapanel-tab .dp-size-row .dp-range[data-v-b4c7c7dc]::-webkit-slider-thumb:hover{background:#88c8f7}.datapanel-tab .dp-size-row .dp-range[data-v-b4c7c7dc]::-moz-range-thumb{width:14px;height:14px;background:#5dade2;border-radius:50%;border:none;cursor:pointer}.datapanel-tab .dp-size-row .dp-size-value[data-v-b4c7c7dc]{font-size:12px;color:#5dade2;min-width:24px;text-align:right;font-weight:600}.datapanel-tab .dp-btn[data-v-b4c7c7dc]{flex:0 0 24px;height:24px;border:none;border-radius:4px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:background .2s;line-height:1}.datapanel-tab .dp-btn.dp-btn-add[data-v-b4c7c7dc]{background:#27ae60;color:#fff}.datapanel-tab .dp-btn.dp-btn-add[data-v-b4c7c7dc]:hover{background:#2ecc71}.datapanel-tab .dp-btn.dp-btn-del[data-v-b4c7c7dc]{background:#c0392b;color:#fff}.datapanel-tab .dp-btn.dp-btn-del[data-v-b4c7c7dc]:hover{background:#e74c3c}.property-panel[data-v-7acd33b7]{width:380px;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-7acd33b7]{margin-top:0;text-align:center}.property-panel .property-group[data-v-7acd33b7]{margin-bottom:20px;border-bottom:1px solid #1a2a36;padding-bottom:12px}.property-panel .property-group label[data-v-7acd33b7]{font-weight:700;display:block;margin-bottom:8px;color:#f1c40f}.empty[data-v-7acd33b7]{text-align:center;color:#95a5a6}.tree-group .tree-container[data-v-7acd33b7]{height:200px;overflow-y:auto;background:#1a2a36;border-radius:4px;padding:4px 0}.tree-empty[data-v-7acd33b7]{padding:8px 10px;color:#95a5a6;font-style:italic}.object-name-row[data-v-7acd33b7]{display:flex;align-items:center;gap:8px;margin-bottom:14px}.object-name-row label[data-v-7acd33b7]{flex-shrink:0;color:#95a5a6;font-size:12px}.object-name-row .object-name-input[data-v-7acd33b7]{flex:1;min-width:0;background:#1e2a36;border:1px solid #3e5a6b;border-radius:4px;color:#ecf0f1;font-size:13px;padding:6px 8px;outline:none;box-sizing:border-box}.object-name-row .object-name-input[data-v-7acd33b7]:focus{border-color:#f1c40f}.object-name-row .object-name-input[data-v-7acd33b7]::placeholder{color:#6c7a89}.tabs[data-v-7acd33b7]{display:flex;gap:0;border-bottom:2px solid #1a2a36;margin-bottom:16px}.tabs .tab-btn[data-v-7acd33b7]{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-7acd33b7]:hover{color:#ecf0f1}.tabs .tab-btn.active[data-v-7acd33b7]{color:#f1c40f;border-bottom-color:#f1c40f}.tab-content[data-v-7acd33b7]{height:calc(100% - 430px);overflow-y:auto;overflow-x:hidden}.transform-mode-row[data-v-7acd33b7]{display:flex;gap:4px}.transform-mode-row .mode-btn[data-v-7acd33b7]{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-7acd33b7]:hover{background:#2c3e50;color:#ecf0f1}.transform-mode-row .mode-btn.active[data-v-7acd33b7]{background:#3e5a6b;color:#f1c40f;border-color:#f1c40f}.script-editor[data-v-7acd33b7]{margin-top:12px;border-top:1px dashed #3e5a6b;padding-top:12px}.script-editor .script-editor-header[data-v-7acd33b7]{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.script-editor .script-editor-header .script-collapse-arrow[data-v-7acd33b7]{flex:0 0 auto;color:#95a5a6;font-size:10px;line-height:1}.script-editor .script-editor-header .script-title[data-v-7acd33b7]{color:#95a5a6;font-size:12px;flex:1}.script-editor .script-editor-header:hover .script-title[data-v-7acd33b7],.script-editor .script-editor-header:hover .script-collapse-arrow[data-v-7acd33b7]{color:#ecf0f1}.script-editor .script-editor-header .add-script-btn[data-v-7acd33b7]{padding:4px 10px;background:#27ae60;border:none;border-radius:4px;color:#fff;font-size:12px;cursor:pointer;white-space:nowrap;transition:background .2s}.script-editor .script-editor-header .add-script-btn[data-v-7acd33b7]:hover{background:#2ecc71}.script-editor .script-item[data-v-7acd33b7]{margin-bottom:10px;background:#1e2a36;border:1px solid #3e5a6b;border-radius:4px;padding:8px}.script-editor .script-item .script-item-header[data-v-7acd33b7]{display:flex;align-items:center;gap:6px;margin-bottom:6px}.script-editor .script-item .script-item-header .script-name-input[data-v-7acd33b7]{flex:1;min-width:0;background:#2c3e50;border:1px solid #3e5a6b;border-radius:4px;color:#ecf0f1;font-size:12px;padding:4px 8px;outline:none;box-sizing:border-box}.script-editor .script-item .script-item-header .script-name-input[data-v-7acd33b7]:focus{border-color:#f1c40f}.script-editor .script-item .script-item-header .script-name-input[data-v-7acd33b7]::placeholder{color:#6c7a89}.script-editor .script-item .script-item-header .script-del-btn[data-v-7acd33b7]{flex:0 0 24px;width:24px;height:24px;border:none;border-radius:3px;background:#c0392b;color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.script-editor .script-item .script-item-header .script-del-btn[data-v-7acd33b7]:hover{background:#e74c3c}.script-editor .script-item .script-code-input[data-v-7acd33b7]{width:100%;box-sizing:border-box;background:#12181f;border:1px solid #3e5a6b;border-radius:4px;color:#9fdc9f;font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.5;padding:6px 8px;resize:vertical;outline:none}.script-editor .script-item .script-code-input[data-v-7acd33b7]:focus{border-color:#f1c40f}.script-editor .script-item .script-code-input[data-v-7acd33b7]::placeholder{color:#5b6b7a}.script-editor .script-empty[data-v-7acd33b7]{color:#95a5a6;font-size:12px;font-style:italic}.property-panel[data-v-7acd33b7],.tree-container[data-v-7acd33b7]{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.top-bar[data-v-9cee44a7]{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-9cee44a7]{display:flex;gap:12px;align-items:center}.top-bar .left-section .dropdown-wrapper[data-v-9cee44a7]{position:relative;display:inline-block}.top-bar .left-section .dropdown-wrapper .menu-btn[data-v-9cee44a7]{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-9cee44a7]:hover{background:#2a4050}.top-bar .left-section .dropdown-wrapper .dropdown-menu[data-v-9cee44a7]{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-9cee44a7]{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-9cee44a7]:hover{background:#3e5a6b}.top-bar .left-section .dropdown-wrapper .dropdown-menu .menu-item.sub-trigger[data-v-9cee44a7]{display:flex;justify-content:space-between;align-items:center;position:relative}.top-bar .left-section .dropdown-wrapper .dropdown-menu .menu-divider[data-v-9cee44a7]{height:1px;background:#3e5a6b;margin:4px 8px}.top-bar .left-section .dropdown-wrapper .sub-menu[data-v-9cee44a7]{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-9cee44a7]{display:flex;align-items:center}.top-bar .app-title[data-v-9cee44a7]{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}.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999}.loading-overlay .loading-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.3);border-top-color:#8af;border-radius:50%;animation:spin .8s linear infinite}.loading-overlay .loading-text{margin-top:16px;color:#ecf0f1;font-size:16px;letter-spacing:1px}@keyframes spin{to{transform:rotate(360deg)}}.app-layout[data-v-79b9d552]{display:flex;flex-direction:column;height:100%;width:100%}.editor-container[data-v-79b9d552]{display:flex;width:100%}.editor-container-mode-edit[data-v-79b9d552]{height:calc(100% - 80px)}.editor-container-mode-run[data-v-79b9d552]{height:100%}.canvas[data-v-79b9d552]{height:100%;background-color:transparent;position:relative}.canvas-mode-edit[data-v-79b9d552]{width:calc(100% - 380px)}.canvas-mode-run[data-v-79b9d552]{width:100%}.script-bar[data-v-79b9d552]{position:absolute;bottom:14px;left:50%;transform:translate(-50%);z-index:30;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.62em;max-width:90%;padding:.62em 1.08em;background:#1a2a36d1;border:.08em solid #3e5a6b;border-radius:.77em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 2px 12px #00000059;-webkit-user-select:none;user-select:none;box-sizing:border-box;pointer-events:auto}.script-bar .script-trigger-btn[data-v-79b9d552]{padding:.38em 1.08em;background:#2980b9;border:none;border-radius:.38em;color:#fff;font-size:1em;line-height:1.4;cursor:pointer;white-space:nowrap;transition:background .2s,transform .1s}.script-bar .script-trigger-btn[data-v-79b9d552]:hover{background:#3498db}.script-bar .script-trigger-btn[data-v-79b9d552]:active{transform:scale(.95)}
|
|
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-bf551e95]{margin-bottom:20px;border-bottom:1px solid #1a2a36;padding-bottom:12px}.property-group label[data-v-bf551e95]{font-weight:700;display:block;margin-bottom:8px;color:#f1c40f}.property-group .row[data-v-bf551e95]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.property-group .row span[data-v-bf551e95]{width:20px;text-align:right}.property-group .row input[data-v-bf551e95]{flex:1;min-width:0;box-sizing:border-box;background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:4px 8px;border-radius:4px}.light-group .intensity-input[data-v-bf551e95]{width:48px;background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:2px 6px;border-radius:4px;text-align:center;flex:0 0 auto}.water-group .color-row[data-v-bf551e95]{display:flex;align-items:center;gap:8px}.water-group .color-row .slider-label[data-v-bf551e95]{width:50px;font-size:12px;color:#95a5a6}.water-group .color-row .color-picker[data-v-bf551e95]{width:40px;height:32px;padding:0;border:1px solid #3e5a6b;border-radius:4px;background:none;cursor:pointer;-webkit-appearance:none}.water-group .color-row .color-picker[data-v-bf551e95]::-webkit-color-swatch-wrapper{padding:2px}.water-group .color-row .color-picker[data-v-bf551e95]::-webkit-color-swatch{border:none;border-radius:2px}.water-group .color-row .color-text-input[data-v-bf551e95]{width:80px;background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:4px 8px;border-radius:4px;font-size:12px;font-family:monospace}.water-group .toggle-row[data-v-bf551e95]{display:flex;align-items:center;gap:8px;margin-top:8px}.water-group .toggle-row .slider-label[data-v-bf551e95]{width:50px;font-size:12px;color:#95a5a6;flex-shrink:0}.water-group .toggle-row .switch[data-v-bf551e95]{position:relative;display:inline-block;width:38px;height:20px;flex-shrink:0}.water-group .toggle-row .switch input[data-v-bf551e95]{opacity:0;width:0;height:0}.water-group .toggle-row .switch input:checked+.slider[data-v-bf551e95]{background:#27ae60}.water-group .toggle-row .switch input:checked+.slider[data-v-bf551e95]:before{transform:translate(18px)}.water-group .toggle-row .switch .slider[data-v-bf551e95]{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#555f6b;border-radius:20px;transition:background .2s}.water-group .toggle-row .switch .slider[data-v-bf551e95]:before{content:"";position:absolute;width:16px;height:16px;left:2px;top:2px;background:#fff;border-radius:50%;transition:transform .2s}.water-group .toggle-row .toggle-hint[data-v-bf551e95]{font-size:11px;color:#7f8c8d;flex:1}.material-group .color-row[data-v-bf551e95]{display:flex;align-items:center;gap:8px;margin-bottom:8px}.material-group .color-row .slider-label[data-v-bf551e95]{width:60px;font-size:12px;color:#95a5a6}.material-group .color-row .color-picker[data-v-bf551e95]{width:40px;height:32px;padding:0;border:1px solid #3e5a6b;border-radius:4px;background:none;cursor:pointer;-webkit-appearance:none}.material-group .color-row .color-picker[data-v-bf551e95]::-webkit-color-swatch-wrapper{padding:2px}.material-group .color-row .color-picker[data-v-bf551e95]::-webkit-color-swatch{border:none;border-radius:2px}.material-group .color-row .color-text-input[data-v-bf551e95]{width:80px;background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:4px 8px;border-radius:4px;font-size:12px;font-family:monospace}.material-group .slider-row[data-v-bf551e95]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.material-group .slider-row .slider-label[data-v-bf551e95]{width:60px;font-size:12px;color:#95a5a6}.material-group .slider-row input[type=range][data-v-bf551e95]{flex:1;height:4px;-webkit-appearance:none;background:#1e2a36;border-radius:2px;outline:none}.material-group .slider-row input[type=range][data-v-bf551e95]::-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-bf551e95]{width:36px;font-size:12px;text-align:center;color:#ecf0f1}.material-group .texture-row[data-v-bf551e95]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.material-group .texture-row .slider-label[data-v-bf551e95]{width:60px;font-size:12px;color:#95a5a6;flex-shrink:0}.material-group .texture-row .texture-controls[data-v-bf551e95]{display:flex;align-items:center;gap:4px;flex:1}.material-group .texture-row .texture-upload-btn[data-v-bf551e95]{flex:1;display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;background:#2980b9;color:#fff;border-radius:4px;font-size:11px;cursor:pointer;transition:background .2s;white-space:nowrap;overflow:hidden}.material-group .texture-row .texture-upload-btn[data-v-bf551e95]:hover{background:#3498db}.material-group .texture-row .texture-upload-btn .texture-file-input[data-v-bf551e95]{display:none}.material-group .texture-row .texture-upload-btn .texture-filename[data-v-bf551e95]{overflow:hidden;text-overflow:ellipsis;max-width:100px}.material-group .texture-row .texture-modify-btn[data-v-bf551e95]{flex:1;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#2c3e50;border:1px solid #3e5a6b;color:#ecf0f1;border-radius:4px;font-size:11px;cursor:pointer;transition:background .2s,border-color .2s;white-space:nowrap;overflow:hidden}.material-group .texture-row .texture-modify-btn[data-v-bf551e95]:hover{background:#3e5a6b;border-color:#f1c40f}.material-group .texture-row .texture-modify-btn .texture-file-input[data-v-bf551e95]{display:none}.material-group .texture-row .texture-modify-btn .texture-filename[data-v-bf551e95]{overflow:hidden;text-overflow:ellipsis;max-width:80px}.material-group .texture-row .texture-modify-btn .modify-hint[data-v-bf551e95]{flex-shrink:0;font-size:10px;color:#f1c40f;border:1px solid #f1c40f;border-radius:3px;padding:0 4px;line-height:1.4}.material-group .texture-row .texture-remove-btn[data-v-bf551e95]{flex:0 0 22px;height:22px;border:none;border-radius:3px;background:#c0392b;color:#fff;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.material-group .texture-row .texture-remove-btn[data-v-bf551e95]:hover{background:#e74c3c}.material-group .material-hint[data-v-bf551e95]{margin-top:6px;font-size:12px;color:#e67e22}.userdata-group .userdata-add-row[data-v-4e117415]{display:flex;gap:4px;margin-bottom:10px}.userdata-group .userdata-add-row .ud-input[data-v-4e117415]{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-4e117415]::placeholder{color:#5a7a8a}.userdata-group .userdata-add-row .ud-textarea[data-v-4e117415]{resize:none;min-height:28px;max-height:28px;line-height:1.4;font-family:inherit}.userdata-group .userdata-add-row .ud-btn[data-v-4e117415]{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-4e117415]{background:#27ae60;color:#fff}.userdata-group .userdata-add-row .ud-btn.add-btn[data-v-4e117415]:hover{background:#2ecc71}.userdata-group .userdata-list[data-v-4e117415]{display:flex;flex-direction:column;gap:4px}.userdata-group .userdata-list .userdata-item[data-v-4e117415]{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-4e117415]{background:#1a1f2a;border-color:#3e5a6b}.userdata-group .userdata-list .userdata-item .ud-key[data-v-4e117415]{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-4e117415]{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-4e117415]{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-4e117415]{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-4e117415]{flex-direction:column;align-items:stretch;gap:4px;padding:6px}.userdata-group .userdata-list .userdata-item .ud-json-error[data-v-4e117415]{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-4e117415]{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-4e117415]:focus{outline:none;border-color:#f1c40f}.userdata-group .userdata-list .userdata-item .ud-json-textarea.has-error[data-v-4e117415]{border-color:#e6b32a}.userdata-group .userdata-list .userdata-item .ud-json-actions[data-v-4e117415]{display:flex;gap:4px;justify-content:flex-end}.userdata-group .userdata-list .userdata-item .ud-btn[data-v-4e117415]{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-4e117415]{background:#c0392b;color:#fff}.userdata-group .userdata-list .userdata-item .ud-btn.del-btn[data-v-4e117415]:hover{background:#e74c3c}.userdata-group .userdata-list .userdata-item .ud-btn.apply-btn[data-v-4e117415]{background:#27ae60;color:#fff}.userdata-group .userdata-list .userdata-item .ud-btn.apply-btn[data-v-4e117415]:hover{background:#2ecc71}.userdata-group .userdata-list .userdata-item .ud-btn.cancel-btn[data-v-4e117415]{background:#7f8c8d;color:#fff}.userdata-group .userdata-list .userdata-item .ud-btn.cancel-btn[data-v-4e117415]:hover{background:#95a5a6}.userdata-group .userdata-list .userdata-item .ud-btn.edit-json-btn[data-v-4e117415]{flex:0 0 22px;height:22px;background:#2980b9;color:#fff}.userdata-group .userdata-list .userdata-item .ud-btn.edit-json-btn[data-v-4e117415]:hover{background:#3498db}.userdata-group .get-camera-btn[data-v-4e117415]{border-radius:4px;background-color:#3e5a6b;margin-top:10px;font-size:12px;color:#c2cde2}.userdata-group .userdata-empty[data-v-4e117415]{font-size:12px;color:#5a7a8a;text-align:center;padding:8px 0;font-style:italic}.datapanel-tab .dp-section[data-v-b4c7c7dc]{margin-bottom:12px}.datapanel-tab .dp-section .dp-label-sm[data-v-b4c7c7dc]{display:block;font-size:12px;color:#8af;margin-bottom:4px}.datapanel-tab .dp-input[data-v-b4c7c7dc]{background:#1e2a36;border:1px solid #3e5a6b;color:#ecf0f1;padding:4px 6px;border-radius:4px;font-size:12px;width:100%;box-sizing:border-box}.datapanel-tab .dp-input[data-v-b4c7c7dc]::placeholder{color:#5a7a8a}.datapanel-tab .dp-input[data-v-b4c7c7dc]:focus{outline:none;border-color:#f1c40f}.datapanel-tab .dp-input-sm[data-v-b4c7c7dc]{flex:2;min-width:0}.datapanel-tab .dp-input-xs[data-v-b4c7c7dc]{flex:1;min-width:0}.datapanel-tab .dp-input-number[data-v-b4c7c7dc]{width:70px;flex:none;text-align:center}.datapanel-tab .dp-list[data-v-b4c7c7dc]{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.datapanel-tab .dp-list .dp-item[data-v-b4c7c7dc],.datapanel-tab .dp-add-row[data-v-b4c7c7dc]{display:flex;gap:4px;align-items:center}.datapanel-tab .dp-visibility-row[data-v-b4c7c7dc]{display:flex;align-items:center;gap:10px;padding:4px 0}.datapanel-tab .dp-visibility-row .dp-visibility-text[data-v-b4c7c7dc]{font-size:12px;color:#95a5a6}.datapanel-tab .dp-toggle[data-v-b4c7c7dc]{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}.datapanel-tab .dp-toggle input[data-v-b4c7c7dc]{opacity:0;width:0;height:0}.datapanel-tab .dp-toggle .dp-toggle-slider[data-v-b4c7c7dc]{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#3e5a6b;border-radius:22px;transition:background-color .3s}.datapanel-tab .dp-toggle .dp-toggle-slider[data-v-b4c7c7dc]:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background-color:#ecf0f1;border-radius:50%;transition:transform .3s}.datapanel-tab .dp-toggle input:checked+.dp-toggle-slider[data-v-b4c7c7dc]{background-color:#27ae60}.datapanel-tab .dp-toggle input:checked+.dp-toggle-slider[data-v-b4c7c7dc]:before{transform:translate(18px)}.datapanel-tab .dp-size-row[data-v-b4c7c7dc]{display:flex;align-items:center;gap:8px;padding:4px 0}.datapanel-tab .dp-size-row .dp-range-label[data-v-b4c7c7dc]{font-size:11px;color:#7a9aab;flex-shrink:0}.datapanel-tab .dp-size-row .dp-range[data-v-b4c7c7dc]{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:#3e5a6b;border-radius:2px;outline:none;cursor:pointer}.datapanel-tab .dp-size-row .dp-range[data-v-b4c7c7dc]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:#5dade2;border-radius:50%;cursor:pointer;transition:background .2s}.datapanel-tab .dp-size-row .dp-range[data-v-b4c7c7dc]::-webkit-slider-thumb:hover{background:#88c8f7}.datapanel-tab .dp-size-row .dp-range[data-v-b4c7c7dc]::-moz-range-thumb{width:14px;height:14px;background:#5dade2;border-radius:50%;border:none;cursor:pointer}.datapanel-tab .dp-size-row .dp-size-value[data-v-b4c7c7dc]{font-size:12px;color:#5dade2;min-width:24px;text-align:right;font-weight:600}.datapanel-tab .dp-btn[data-v-b4c7c7dc]{flex:0 0 24px;height:24px;border:none;border-radius:4px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:background .2s;line-height:1}.datapanel-tab .dp-btn.dp-btn-add[data-v-b4c7c7dc]{background:#27ae60;color:#fff}.datapanel-tab .dp-btn.dp-btn-add[data-v-b4c7c7dc]:hover{background:#2ecc71}.datapanel-tab .dp-btn.dp-btn-del[data-v-b4c7c7dc]{background:#c0392b;color:#fff}.datapanel-tab .dp-btn.dp-btn-del[data-v-b4c7c7dc]:hover{background:#e74c3c}.property-panel[data-v-7acd33b7]{width:380px;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-7acd33b7]{margin-top:0;text-align:center}.property-panel .property-group[data-v-7acd33b7]{margin-bottom:20px;border-bottom:1px solid #1a2a36;padding-bottom:12px}.property-panel .property-group label[data-v-7acd33b7]{font-weight:700;display:block;margin-bottom:8px;color:#f1c40f}.empty[data-v-7acd33b7]{text-align:center;color:#95a5a6}.tree-group .tree-container[data-v-7acd33b7]{height:200px;overflow-y:auto;background:#1a2a36;border-radius:4px;padding:4px 0}.tree-empty[data-v-7acd33b7]{padding:8px 10px;color:#95a5a6;font-style:italic}.object-name-row[data-v-7acd33b7]{display:flex;align-items:center;gap:8px;margin-bottom:14px}.object-name-row label[data-v-7acd33b7]{flex-shrink:0;color:#95a5a6;font-size:12px}.object-name-row .object-name-input[data-v-7acd33b7]{flex:1;min-width:0;background:#1e2a36;border:1px solid #3e5a6b;border-radius:4px;color:#ecf0f1;font-size:13px;padding:6px 8px;outline:none;box-sizing:border-box}.object-name-row .object-name-input[data-v-7acd33b7]:focus{border-color:#f1c40f}.object-name-row .object-name-input[data-v-7acd33b7]::placeholder{color:#6c7a89}.tabs[data-v-7acd33b7]{display:flex;gap:0;border-bottom:2px solid #1a2a36;margin-bottom:16px}.tabs .tab-btn[data-v-7acd33b7]{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-7acd33b7]:hover{color:#ecf0f1}.tabs .tab-btn.active[data-v-7acd33b7]{color:#f1c40f;border-bottom-color:#f1c40f}.tab-content[data-v-7acd33b7]{height:calc(100% - 430px);overflow-y:auto;overflow-x:hidden}.transform-mode-row[data-v-7acd33b7]{display:flex;gap:4px}.transform-mode-row .mode-btn[data-v-7acd33b7]{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-7acd33b7]:hover{background:#2c3e50;color:#ecf0f1}.transform-mode-row .mode-btn.active[data-v-7acd33b7]{background:#3e5a6b;color:#f1c40f;border-color:#f1c40f}.script-editor[data-v-7acd33b7]{margin-top:12px;border-top:1px dashed #3e5a6b;padding-top:12px}.script-editor .script-editor-header[data-v-7acd33b7]{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.script-editor .script-editor-header .script-collapse-arrow[data-v-7acd33b7]{flex:0 0 auto;color:#95a5a6;font-size:10px;line-height:1}.script-editor .script-editor-header .script-title[data-v-7acd33b7]{color:#95a5a6;font-size:12px;flex:1}.script-editor .script-editor-header:hover .script-title[data-v-7acd33b7],.script-editor .script-editor-header:hover .script-collapse-arrow[data-v-7acd33b7]{color:#ecf0f1}.script-editor .script-editor-header .add-script-btn[data-v-7acd33b7]{padding:4px 10px;background:#27ae60;border:none;border-radius:4px;color:#fff;font-size:12px;cursor:pointer;white-space:nowrap;transition:background .2s}.script-editor .script-editor-header .add-script-btn[data-v-7acd33b7]:hover{background:#2ecc71}.script-editor .script-item[data-v-7acd33b7]{margin-bottom:10px;background:#1e2a36;border:1px solid #3e5a6b;border-radius:4px;padding:8px}.script-editor .script-item .script-item-header[data-v-7acd33b7]{display:flex;align-items:center;gap:6px;margin-bottom:6px}.script-editor .script-item .script-item-header .script-name-input[data-v-7acd33b7]{flex:1;min-width:0;background:#2c3e50;border:1px solid #3e5a6b;border-radius:4px;color:#ecf0f1;font-size:12px;padding:4px 8px;outline:none;box-sizing:border-box}.script-editor .script-item .script-item-header .script-name-input[data-v-7acd33b7]:focus{border-color:#f1c40f}.script-editor .script-item .script-item-header .script-name-input[data-v-7acd33b7]::placeholder{color:#6c7a89}.script-editor .script-item .script-item-header .script-del-btn[data-v-7acd33b7]{flex:0 0 24px;width:24px;height:24px;border:none;border-radius:3px;background:#c0392b;color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.script-editor .script-item .script-item-header .script-del-btn[data-v-7acd33b7]:hover{background:#e74c3c}.script-editor .script-item .script-code-input[data-v-7acd33b7]{width:100%;box-sizing:border-box;background:#12181f;border:1px solid #3e5a6b;border-radius:4px;color:#9fdc9f;font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.5;padding:6px 8px;resize:vertical;outline:none}.script-editor .script-item .script-code-input[data-v-7acd33b7]:focus{border-color:#f1c40f}.script-editor .script-item .script-code-input[data-v-7acd33b7]::placeholder{color:#5b6b7a}.script-editor .script-empty[data-v-7acd33b7]{color:#95a5a6;font-size:12px;font-style:italic}.property-panel[data-v-7acd33b7],.tree-container[data-v-7acd33b7]{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.top-bar[data-v-9cee44a7]{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-9cee44a7]{display:flex;gap:12px;align-items:center}.top-bar .left-section .dropdown-wrapper[data-v-9cee44a7]{position:relative;display:inline-block}.top-bar .left-section .dropdown-wrapper .menu-btn[data-v-9cee44a7]{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-9cee44a7]:hover{background:#2a4050}.top-bar .left-section .dropdown-wrapper .dropdown-menu[data-v-9cee44a7]{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-9cee44a7]{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-9cee44a7]:hover{background:#3e5a6b}.top-bar .left-section .dropdown-wrapper .dropdown-menu .menu-item.sub-trigger[data-v-9cee44a7]{display:flex;justify-content:space-between;align-items:center;position:relative}.top-bar .left-section .dropdown-wrapper .dropdown-menu .menu-divider[data-v-9cee44a7]{height:1px;background:#3e5a6b;margin:4px 8px}.top-bar .left-section .dropdown-wrapper .sub-menu[data-v-9cee44a7]{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-9cee44a7]{display:flex;align-items:center}.top-bar .app-title[data-v-9cee44a7]{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}.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999}.loading-overlay .loading-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.3);border-top-color:#8af;border-radius:50%;animation:spin .8s linear infinite}.loading-overlay .loading-text{margin-top:16px;color:#ecf0f1;font-size:16px;letter-spacing:1px}@keyframes spin{to{transform:rotate(360deg)}}.app-layout[data-v-79b9d552]{display:flex;flex-direction:column;height:100%;width:100%}.editor-container[data-v-79b9d552]{display:flex;width:100%}.editor-container-mode-edit[data-v-79b9d552]{height:calc(100% - 80px)}.editor-container-mode-run[data-v-79b9d552]{height:100%}.canvas[data-v-79b9d552]{height:100%;background-color:transparent;position:relative}.canvas-mode-edit[data-v-79b9d552]{width:calc(100% - 380px)}.canvas-mode-run[data-v-79b9d552]{width:100%}.script-bar[data-v-79b9d552]{position:absolute;bottom:14px;left:50%;transform:translate(-50%);z-index:30;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.62em;max-width:90%;padding:.62em 1.08em;background:#1a2a36d1;border:.08em solid #3e5a6b;border-radius:.77em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 2px 12px #00000059;-webkit-user-select:none;user-select:none;box-sizing:border-box;pointer-events:auto}.script-bar .script-trigger-btn[data-v-79b9d552]{padding:.38em 1.08em;background:#2980b9;border:none;border-radius:.38em;color:#fff;font-size:1em;line-height:1.4;cursor:pointer;white-space:nowrap;transition:background .2s,transform .1s}.script-bar .script-trigger-btn[data-v-79b9d552]:hover{background:#3498db}.script-bar .script-trigger-btn[data-v-79b9d552]:active{transform:scale(.95)}
|
|
@@ -42,6 +42,27 @@ export declare function addWaterCylinder(options?: {
|
|
|
42
42
|
/** 浑浊度(Water.js alpha,0~1,越大越浑浊),默认 WATER_DEFAULT_ALPHA */
|
|
43
43
|
alpha?: number;
|
|
44
44
|
}): Water;
|
|
45
|
+
/**
|
|
46
|
+
* 切换 Water.js 水体的"不透明 / 半透明"模式。
|
|
47
|
+
*
|
|
48
|
+
* - `opaque = true`(默认):`transparent = false` + `depthWrite = true` → 水体进入**不透明队列**。
|
|
49
|
+
* 此时水体是"实心水面",遮挡关系完全由几何深度逐像素决定,与半透明模型不再互相"洗淡":
|
|
50
|
+
* · 半透明模型(如 0.7 外墙)在水体前面 → 模型按自身 alpha 混合在水面之上,
|
|
51
|
+
* 观感与不重叠处完全一致(0.7 就是 0.7),水体会透过模型显示(0.7 × 水面)
|
|
52
|
+
* · 半透明模型在水体后面 → 被水面按深度正确挡住
|
|
53
|
+
* 代价:看不到水面以下的物体("物体可置于水中"的效果消失);浑浊度(alpha) 不再有视觉效果。
|
|
54
|
+
*
|
|
55
|
+
* - `opaque = false`:半透明模式(透明队列 + `depthWrite = false`),
|
|
56
|
+
* 由浑浊度决定通透度,可以看见水面下的物体;
|
|
57
|
+
* 与水体重叠的半透明模型会被水体的 alpha 压低(数值关系见 WATER_RENDER_ORDER / WATER_DEFAULT_ALPHA 注释)。
|
|
58
|
+
*
|
|
59
|
+
* 说明:`transparent` 决定进入哪个渲染队列、`depthWrite` 决定是否写深度缓冲,
|
|
60
|
+
* 两者都是渲染状态(每帧读取),切换后立即生效,无需 `needsUpdate` 重编译着色器。
|
|
61
|
+
*
|
|
62
|
+
* @param water - Water.js 水体 Mesh
|
|
63
|
+
* @param opaque - true 不透明 / false 半透明
|
|
64
|
+
*/
|
|
65
|
+
export declare function setWaterOpacity(water: any, opaque: boolean): void;
|
|
45
66
|
/**
|
|
46
67
|
* 切换 Water.js 水体的实时反射(性能优化)
|
|
47
68
|
* - 开:正常实时反射(每帧多渲染一次反射场景,开销大)
|
package/dist/three/index.d.ts
CHANGED
|
@@ -30,9 +30,34 @@ import * as THREE from "three";
|
|
|
30
30
|
*
|
|
31
31
|
* 注意:
|
|
32
32
|
* - 只影响透明队列内部的先后,不改变不透明物体的遮挡关系(不透明物体先绘制);
|
|
33
|
-
* -
|
|
33
|
+
* - 半透明材质自引入 TRANSPARENT_DEPTH_WRITE 起统一写深度(见该常量注释):遮挡关系由逐像素
|
|
34
|
+
* 深度测试裁决,因此不会出现"谁把谁按深度剔除、整块消失";本常量只负责"同为半透明、
|
|
35
|
+
* 深度相当或互相重叠时"的绘制先后。
|
|
34
36
|
*/
|
|
35
37
|
export declare const WATER_RENDER_ORDER = 1;
|
|
38
|
+
/**
|
|
39
|
+
* 半透明材质是否写深度缓冲(true = 写深度,默认;false = 旧行为:半透明不写深度)。
|
|
40
|
+
*
|
|
41
|
+
* three 的绘制顺序是「不透明 → 透明」,透明物体排在最后绘制。半透明材质「不写深度」时有两个后果:
|
|
42
|
+
* ① 挡不住别人:任何更近的不透明几何都会把它按像素剔除
|
|
43
|
+
* (窗框、窗芯板、室内楼板、水面都会在它身上"抠"掉一块);
|
|
44
|
+
* ② 也漏了自己:同队列(`renderOrder` 相同)的另一个透明物体只要被排在它之后绘制,就直接盖在它上面。
|
|
45
|
+
* 而先后由「几何包围球中心的相机投影深度」决定(见 `WebGLRenderLists.js` / `WebGLRenderer.js`
|
|
46
|
+
* 的 projectObject),外壳这类"几何铺满整栋楼、包围球中心却落在楼中心"的模型,
|
|
47
|
+
* 转一点点视角先后就会翻转 —— 典型表现:墙上的窗户有时"贴"在外墙外沿/窗洞侧壁上、
|
|
48
|
+
* 被墙沿一条斜线切断,稍微转一下视角又恢复正常。
|
|
49
|
+
*
|
|
50
|
+
* 取 true(当前值):半透明外壳**能按几何深度正确遮挡** —— 遮挡关系由逐像素深度测试裁决,
|
|
51
|
+
* 与透明队列内的绘制先后无关,因此不再随视角翻转。
|
|
52
|
+
* 代价:位于外壳**后面**的半透明物体会被按深度剔除。水体已改为"不透明实心水面"
|
|
53
|
+
* (`setWaterOpacity(water, true)`,不进透明队列),所以该代价主要落在建筑另一侧的透明玻璃件上;
|
|
54
|
+
* 若确实需要"透过外壳看到后面的半透明物体",把本常量改回 false 即可整体恢复旧行为
|
|
55
|
+
* (下面三处赋值点都读这个常量,不需要逐个改)。
|
|
56
|
+
*
|
|
57
|
+
* 说明:`transparent` / `depthWrite` 都是渲染状态(每帧读取),改完对已存在的材质
|
|
58
|
+
* 需要 `needsUpdate = true` 触发重编译(见各赋值点)。
|
|
59
|
+
*/
|
|
60
|
+
export declare const TRANSPARENT_DEPTH_WRITE = true;
|
|
36
61
|
/**
|
|
37
62
|
* 初始化编辑器,挂载到指定 DOM 容器
|
|
38
63
|
* @param container - 编辑器挂载的 DOM 元素
|
|
@@ -246,6 +271,8 @@ export declare function loadSceneFromJSON(json: string | object, mode?: string,
|
|
|
246
271
|
timeScale: number;
|
|
247
272
|
/** 浑浊度(Water.js alpha uniform,0~1,越大越浑浊) */
|
|
248
273
|
alpha?: number;
|
|
274
|
+
/** 是否不透明模式(true = 实心水面,按深度遮挡;false = 半透明可透过水面看物体) */
|
|
275
|
+
opaque?: boolean;
|
|
249
276
|
/** 实时反射开关(false = 关闭反射以降低性能) */
|
|
250
277
|
reflection?: boolean;
|
|
251
278
|
}[], textures?: Record<string, {
|