添加材质切换,调节功能

This commit is contained in:
2025-04-14 16:37:17 +08:00
parent 0855f15a5c
commit 0929d5b80c
35 changed files with 1144 additions and 372 deletions

View File

@@ -1,41 +1,32 @@
<template>
<div ref="container" style="width: 800px;height: 800px;"></div>
{{ CurGeometryName }}
<div v-for="geo in geometries">
<button @click="changeGeometry(geo[0])">{{ geo[0] }}</button>
</div>
<CfFlex class="material-view">
<div ref="container" style="width: 100%; height: 100%; flex: 3; box-sizing: border-box;" />
<MaterialAdjuster style="flex: 1;overflow-y: auto; width: 100%; height: 100%; box-sizing: border-box;" />
</CfFlex>
</template>
<script setup lang="ts">
import { onMounted, useTemplateRef } from 'vue';
import { MaterialEditor } from '../common/MaterialEditor';
import { PhysicalMaterialRecord } from 'webcad_ue4_api';
import MaterialAdjuster from './MaterialAdjuster.vue';
import { useScene } from '../stores/sceneStore';
import CfFlex from './CfFlex.vue';
const scene = useScene();
const container = useTemplateRef<HTMLElement>('container');
let editor:MaterialEditor = MaterialEditor.GetInstance();
const geometries = editor.Geometrys;
const material = new PhysicalMaterialRecord();
const CurGeometryName = editor.CurGeometryName;
onMounted(() => {
editor.SetViewer(container.value);
editor.setMaterial(material);
scene.Initial(container.value);
});
const view = editor.Viewer;
view.OnSize(800, 800);
view.ZoomAll();
view.Zoom(2.1);
})
</script>
function changeGeometry(geoName:string) {
CurGeometryName.value = geoName;
let geo = editor.Geometrys.get(CurGeometryName.value);
if (geo) {
editor.ShowMesh.geometry = geo;
editor.Viewer.UpdateRender();
}
<style scoped>
.material-view
{
width: 100%;
height: 100vh;
box-sizing: border-box;
padding: 0;
margin: 0;
overflow: hidden;
}
</script>
</style>