fix(Edit): 跟随SDK变更:修改Viewer初始化配置中Edit的数据结构

This commit is contained in:
ErSan 2025-11-05 00:03:04 +08:00
parent 88d6076a83
commit d17c5a25a3
5 changed files with 21 additions and 6 deletions

View File

@ -176,7 +176,6 @@ export default class ViewPort {
this._three.transformControls = new TransformControls(this._three.camera, this._three.renderer.domElement); this._three.transformControls = new TransformControls(this._three.camera, this._three.renderer.domElement);
let transformControls = this._three.transformControls; let transformControls = this._three.transformControls;
transformControls.addEventListener('change', () => { transformControls.addEventListener('change', () => {
transformControls.updateMatrixWorld();
const object = transformControls.object; const object = transformControls.object;
if (object !== undefined) { if (object !== undefined) {
this._three.box.setFromObject(object, true); this._three.box.setFromObject(object, true);
@ -232,10 +231,11 @@ export default class ViewPort {
//controls.enabled = true; //controls.enabled = true;
this.loop() this.loop()
}); });
transformControls.traverse(child => { const gizmo = transformControls.getHelper();
gizmo.traverse(child => {
child.userData.isTransformControls = true; child.userData.isTransformControls = true;
}) })
this._three.sceneHelpers.add(transformControls); this._three.sceneHelpers.add(gizmo);
//相关方法 //相关方法
const attachObject = (object) => { const attachObject = (object) => {

View File

@ -377,7 +377,7 @@ function handleContextmenuSelect(key: string) {
onMounted(async () => { onMounted(async () => {
// signalnextTickviewer // signalnextTickviewer
Hooks.useAddOnceSignal("viewerInitCompleted",(viewer) => { Hooks.useAddOnceSignal("viewerInitCompleted",(viewer) => {
if(viewer.enableEdit){ if(viewer.edit?.enabled){
contextmenuOptions.push({ contextmenuOptions.push({
label: t("home.Delete"), label: t("home.Delete"),
key: 'delete' key: 'delete'

View File

@ -45,7 +45,7 @@
<!-- 辅助 --> <!-- 辅助 -->
<n-form-item :label="t('layout.sider.sceneConfig.Helpers')"> <n-form-item :label="t('layout.sider.sceneConfig.Helpers')">
<n-switch size="small" v-model:value="helpers" <n-switch size="small" v-model:value="helpers"
@update:value="Hooks.useDispatchSignal('showHelpersChanged',helpers)"/> @update:value="handleShowHelpers"/>
</n-form-item> </n-form-item>
</n-form> </n-form>
</template> </template>
@ -144,4 +144,14 @@ function onBackgroundChanged() {
function onEnvironmentChanged() { function onEnvironmentChanged() {
Hooks.useDispatchSignal("sceneEnvironmentChanged", toRaw(environmentSelect.value), toRaw(environmentTexture.value)); Hooks.useDispatchSignal("sceneEnvironmentChanged", toRaw(environmentSelect.value), toRaw(environmentTexture.value));
} }
function handleShowHelpers(){
window.viewer.edit = {
enabled: helpers.value,
helpers: true,
gizmo: true
}
window.viewer.render();
}
</script> </script>

View File

@ -38,7 +38,9 @@ onMounted(async () => {
window.viewer = new Viewer({ window.viewer = new Viewer({
container: viewportRef.value, container: viewportRef.value,
enableEdit:true, edit: {
enabled: true
},
request: { request: {
baseUrl:"/file/static/" baseUrl:"/file/static/"
} }

View File

@ -34,6 +34,9 @@ onMounted(async () => {
window.viewer = new Viewer({ window.viewer = new Viewer({
container: viewportRef.value, container: viewportRef.value,
edit: {
enabled: false,
},
grid:{ grid:{
enabled:false, enabled:false,
}, },