|
@@ -89,60 +89,59 @@ import vtkLookupTable from '@kitware/vtk.js/Common/Core/LookupTable';
|
|
|
import vtkDataArray from '@kitware/vtk.js/Common/Core/DataArray.js';
|
|
|
import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
|
|
|
import { I } from '@kitware/vtk.js/macros2.js'
|
|
|
- let time=3*60
|
|
|
- let listArray=reactive([
|
|
|
- {id:0,img:p1,name:'灾情演化'},
|
|
|
- {id:1,img:p2,name:'演化过程'},
|
|
|
- {id:2,img:p3,name:'动画'},
|
|
|
- {id:3,img:p4,name:'日志'},
|
|
|
- ]);
|
|
|
- let dialogVisible=ref(false);
|
|
|
- let num=ref(4)
|
|
|
- let starttime=ref(1);
|
|
|
- let endtime=ref(60);
|
|
|
- let timenum=ref(2)
|
|
|
- let isstop=ref(false)
|
|
|
- let arrvalue=reactive(['fire', 'Temperature'])
|
|
|
- let options=reactive( [
|
|
|
- {
|
|
|
- value: 'fire',
|
|
|
- label: '火灾',
|
|
|
- children: [{
|
|
|
- value: 'Temperature',
|
|
|
- label: '温度'
|
|
|
- }, {
|
|
|
- value: 'Pressure',
|
|
|
- label: '压强'
|
|
|
- }, {
|
|
|
- value: 'SO2',
|
|
|
- label: 'SO2'
|
|
|
- }, {
|
|
|
- value: 'CO2',
|
|
|
- label: 'CO2'
|
|
|
- }]
|
|
|
- },
|
|
|
- {
|
|
|
- value: 'Water',
|
|
|
- label: '水灾',
|
|
|
- children: [{
|
|
|
- value: 'Height',
|
|
|
- label: '水位高度源'
|
|
|
- }]
|
|
|
- },
|
|
|
- ])
|
|
|
- function add(id){
|
|
|
- if(id==2){
|
|
|
- dialogVisible.value=true
|
|
|
- }
|
|
|
- }
|
|
|
+let time=3*60
|
|
|
+let listArray=reactive([
|
|
|
+{id:0,img:p1,name:'灾情演化'},
|
|
|
+{id:1,img:p2,name:'演化过程'},
|
|
|
+{id:2,img:p3,name:'动画'},
|
|
|
+{id:3,img:p4,name:'日志'},
|
|
|
+]);
|
|
|
+let dialogVisible=ref(false);
|
|
|
+let num=ref(4)
|
|
|
+let starttime=ref(1);
|
|
|
+let endtime=ref(60);
|
|
|
+let timenum=ref(2)
|
|
|
+let isstop=ref(false)
|
|
|
+let arrvalue=reactive(['fire', 'Temperature'])
|
|
|
+let options=reactive( [
|
|
|
+ {
|
|
|
+ value: 'fire',
|
|
|
+ label: '火灾',
|
|
|
+ children: [{
|
|
|
+ value: 'Temperature',
|
|
|
+ label: '温度'
|
|
|
+ }, {
|
|
|
+ value: 'Pressure',
|
|
|
+ label: '压强'
|
|
|
+ }, {
|
|
|
+ value: 'SO2',
|
|
|
+ label: 'SO2'
|
|
|
+ }, {
|
|
|
+ value: 'CO2',
|
|
|
+ label: 'CO2'
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 'Water',
|
|
|
+ label: '水灾',
|
|
|
+ children: [{
|
|
|
+ value: 'Height',
|
|
|
+ label: '水位高度源'
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ ])
|
|
|
+function add(id){
|
|
|
+ if(id==2){
|
|
|
+ dialogVisible.value=true
|
|
|
+ }
|
|
|
+ }
|
|
|
// 响应式状态
|
|
|
const count = ref(0);
|
|
|
const opacity = ref(0.1);
|
|
|
-
|
|
|
-
|
|
|
const min=ref(0.0);
|
|
|
const max=ref(1.0);
|
|
|
-const scalarAll = ref([]);
|
|
|
+const scalarFAll = ref([]);//火灾标量
|
|
|
+const scalarWAll = ref([]);//水灾标量
|
|
|
/*
|
|
|
Temperature:温度
|
|
|
Pressure:压强
|
|
@@ -150,7 +149,7 @@ SO2:SO2
|
|
|
CO2:CO2
|
|
|
Height:水位高度
|
|
|
*/
|
|
|
-const scalarName = ref("CO2");
|
|
|
+// const scalarName = ref("CO2");
|
|
|
const filedir =ref("data/Fire/");
|
|
|
//const scalarName = ref("Height");
|
|
|
// filedir =ref("data/Water/");
|
|
@@ -191,24 +190,22 @@ function getMinMax(scalars){
|
|
|
console.log("max,min:",max.value,min.value);
|
|
|
}
|
|
|
//时间
|
|
|
- function sleep(numberMillis) {
|
|
|
-
|
|
|
- var now = new Date();
|
|
|
- var exitTime = now.getTime() + numberMillis;
|
|
|
- console.log(exitTime)
|
|
|
-
|
|
|
- }
|
|
|
+function sleep(numberMillis) {
|
|
|
+ var now = new Date();
|
|
|
+ var exitTime = now.getTime() + numberMillis;
|
|
|
+ console.log(exitTime);
|
|
|
+}
|
|
|
//联级选择
|
|
|
function handleChange(val){
|
|
|
- console.log(val[0])
|
|
|
- if(val[0]=='fire'){
|
|
|
- let fireval=val[1];
|
|
|
- let scalarName = ref(fireval);
|
|
|
- let filedir =ref("data/Fire/");
|
|
|
- }else{
|
|
|
-let scalarName = ref("Height");
|
|
|
-let filedir =ref("data/Water/");
|
|
|
- }
|
|
|
+// console.log(val[0])
|
|
|
+// if(val[0]=='fire'){
|
|
|
+// let fireval=val[1];
|
|
|
+// let scalarName = ref(fireval);
|
|
|
+// let filedir =ref("data/Fire/");
|
|
|
+// }else{
|
|
|
+// let scalarName = ref("Height");
|
|
|
+// let filedir =ref("data/Water/");
|
|
|
+// }
|
|
|
|
|
|
}
|
|
|
//暂停
|
|
@@ -234,12 +231,17 @@ function play(time){
|
|
|
if( isstop.value==true){
|
|
|
await sleep(time);
|
|
|
count.value++;
|
|
|
- const scalars=scalarAll.value[count.value];
|
|
|
+ var scalars;
|
|
|
+ if(arrvalue[0]=='fire'){
|
|
|
+ scalars=scalarFAll.value[count.value];
|
|
|
+ }else {
|
|
|
+ scalars=scalarWAll.value[count.value];
|
|
|
+ }
|
|
|
const polydata = mapper.getInputData();
|
|
|
- const scalarArray=scalars.get(scalarName.value);
|
|
|
+ const scalarArray=scalars.get(arrvalue[1]);
|
|
|
// console.log("scalarArray:",scalarArray);
|
|
|
const dataArray = vtkDataArray.newInstance({
|
|
|
- name:scalarName.value,
|
|
|
+ name:arrvalue[1],
|
|
|
size:polydata.getNumberOfPoints()
|
|
|
});
|
|
|
dataArray.setData(scalarArray);
|
|
@@ -258,12 +260,17 @@ function play(time){
|
|
|
function Prev(){
|
|
|
isstop.value=false;
|
|
|
count.value--;
|
|
|
- const scalars=scalarAll.value[count.value];
|
|
|
+ var scalars;
|
|
|
+ if(arrvalue[0]=='fire'){
|
|
|
+ scalars=scalarFAll.value[count.value];
|
|
|
+ }else {
|
|
|
+ scalars=scalarWAll.value[count.value];
|
|
|
+ }
|
|
|
const polydata = mapper.getInputData();
|
|
|
- const scalarArray=scalars.get(scalarName.value);
|
|
|
+ const scalarArray=scalars.get(arrvalue[1]);
|
|
|
// console.log("scalarArray:",scalarArray);
|
|
|
const dataArray = vtkDataArray.newInstance({
|
|
|
- name:scalarName.value,
|
|
|
+ name:arrvalue[1],
|
|
|
size:polydata.getNumberOfPoints()
|
|
|
});
|
|
|
dataArray.setData(scalarArray);
|
|
@@ -275,14 +282,21 @@ function Prev(){
|
|
|
}
|
|
|
// 用来修改状态、触发更新的函数
|
|
|
function increment() {
|
|
|
+
|
|
|
+ console.log(arrvalue);
|
|
|
isstop.value=false;
|
|
|
count.value++;
|
|
|
- const scalars=scalarAll.value[count.value];
|
|
|
+ var scalars;
|
|
|
+ if(arrvalue[0]=='fire'){
|
|
|
+ scalars=scalarFAll.value[count.value];
|
|
|
+ }else {
|
|
|
+ scalars=scalarWAll.value[count.value];
|
|
|
+ }
|
|
|
const polydata = mapper.getInputData();
|
|
|
- const scalarArray=scalars.get(scalarName.value);
|
|
|
+ const scalarArray=scalars.get(arrvalue[1]);
|
|
|
// console.log("scalarArray:",scalarArray);
|
|
|
const dataArray = vtkDataArray.newInstance({
|
|
|
- name:scalarName.value,
|
|
|
+ name:arrvalue[1],
|
|
|
size:polydata.getNumberOfPoints()
|
|
|
});
|
|
|
dataArray.setData(scalarArray);
|
|
@@ -294,11 +308,20 @@ function increment() {
|
|
|
}
|
|
|
//加载所有 标量数据
|
|
|
function loadScalarAll(){
|
|
|
+ //水灾
|
|
|
for (let index = 0; index <= 60; index++) {
|
|
|
const reader = vtkUnstructuredDataReader.newInstance();
|
|
|
- reader.setUrl(filedir.value+'POST'+index+'.vtk').then(() => {
|
|
|
+ reader.setUrl("data/Water/"+'POST'+index+'.vtk').then(() => {
|
|
|
const scalars = reader.getOutputData(1);
|
|
|
- scalarAll.value[index]=scalars;
|
|
|
+ scalarWAll.value[index]=scalars;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ //火灾
|
|
|
+ for (let index = 0; index <= 60; index++) {
|
|
|
+ const reader = vtkUnstructuredDataReader.newInstance();
|
|
|
+ reader.setUrl("data/Fire/"+'POST'+index+'.vtk').then(() => {
|
|
|
+ const scalars = reader.getOutputData(1);
|
|
|
+ scalarFAll.value[index]=scalars;
|
|
|
});
|
|
|
}
|
|
|
// console.log("scalarAll.value:",scalarAll.value);
|
|
@@ -341,14 +364,14 @@ onMounted(() => {
|
|
|
// fullScreenRenderer.setBackground([0,0,0]);
|
|
|
|
|
|
// const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance();
|
|
|
-
|
|
|
+ console.log("arrvalue:",arrvalue)
|
|
|
reader.setUrl(filedir.value+'POST1.vtk').then(() => {
|
|
|
const polydata = reader.getOutputData(0);
|
|
|
const scalars = reader.getOutputData(1);
|
|
|
- const scalarArray=scalars.get(scalarName.value);
|
|
|
+ const scalarArray=scalars.get(arrvalue[1]);
|
|
|
console.log("scalarArray:",scalarArray);
|
|
|
const dataArray = vtkDataArray.newInstance({
|
|
|
- name:scalarName.value,
|
|
|
+ name:arrvalue[1],
|
|
|
size:polydata.getNumberOfPoints()
|
|
|
});
|
|
|
dataArray.setData(scalarArray);
|
|
@@ -367,7 +390,7 @@ onMounted(() => {
|
|
|
console.log("lut:",lut.getRange());
|
|
|
// Change the number of ticks (TODO: add numberOfTicks to ScalarBarActor)
|
|
|
scalarBarActor.setGenerateTicks(generateTicks(5));
|
|
|
- scalarBarActor.setAxisLabel(scalarName.value);
|
|
|
+ scalarBarActor.setAxisLabel(arrvalue[1]);
|
|
|
scalarBarActor.setDrawAboveRangeSwatch(true);
|
|
|
|
|
|
//修改设条颜色
|