Browse Source

722爆炸演化相机重置

tangjunhao 1 month ago
parent
commit
1135f29382
1 changed files with 62 additions and 15 deletions
  1. 62 15
      src/view/index/explode.vue

+ 62 - 15
src/view/index/explode.vue

@@ -258,44 +258,91 @@ function generateTicks(numberOfTicks) {
     helper.setTickStrings(tickStrings)
   }
 }
+// function vtkShow() {
+//   // formInline.region="Pressure";
+//   console.log("执行了1111")
+//   const scalarBarActor = vtkObj.scalarBarActor
+//   const mapper = vtkObj.jgMapper
+//   const actor = vtkObj.jgActor
+//   const fcon = vtkObj.fcon
+//   // console.log(props.region)
+//   const scalarArray = fcon.scalar.get(formInline.value.region)
+//   if (!scalarArray || !fcon.polydata) {
+//     return
+//   }
+//   console.log(" fcon.polydata.getNumberOfPoints():",  fcon.polydata.getNumberOfPoints());
+//   const dataArray = vtkDataArray.newInstance({
+//     name: formInline.value.region,
+//     size: fcon.polydata.getNumberOfPoints()
+//   })
+//   // console.log(dataArray);
+//   dataArray.setData(scalarArray)
+//   fcon.polydata.getPointData().setScalars(dataArray)
+//   mapper.setInputData(fcon.polydata)
+//   getMinMax(scalarArray)
+//   mapper.setScalarRange(parseFloat(min.toFixed(3)), parseFloat(max.toFixed(3))) //设置范围
+//   // scalarBarActor.setAxisLabel(formInline.value.region)//英文
+//   scalarBarActor.setAxisLabel(formInline.value.name)//用中文
+
+//   mapper.clearColorArrays() //强制重建颜色
+//    actor.getProperty().setOpacity(count.value) //设置错误的透明度使得页面重新加载  不设置不刷新页面
+
+
+//   vtkObj.renderWindow.getRenderer().addActor(scalarBarActor)
+//   vtkObj.renderWindow.getRenderer().addActor(actor)
+
+//   vtkObj.renderWindow.getRenderer().resetCamera();
+//   vtkObj.renderWindow.getRenderWindow().render();
+//   vtkObj.renderWindow.resize();
+//   initFlag=true;
+// }
+
+let cameraInitialized = false; // 默认还未初始化相机
+
 function vtkShow() {
-  // formInline.region="Pressure";
-  console.log("执行了1111")
+  console.log("执行了 vtkShow");
   const scalarBarActor = vtkObj.scalarBarActor
   const mapper = vtkObj.jgMapper
   const actor = vtkObj.jgActor
   const fcon = vtkObj.fcon
-  // console.log(props.region)
+
   const scalarArray = fcon.scalar.get(formInline.value.region)
   if (!scalarArray || !fcon.polydata) {
     return
   }
-  console.log(" fcon.polydata.getNumberOfPoints():",  fcon.polydata.getNumberOfPoints());
+
   const dataArray = vtkDataArray.newInstance({
     name: formInline.value.region,
     size: fcon.polydata.getNumberOfPoints()
   })
-  // console.log(dataArray);
+
   dataArray.setData(scalarArray)
   fcon.polydata.getPointData().setScalars(dataArray)
   mapper.setInputData(fcon.polydata)
-  getMinMax(scalarArray)
-  mapper.setScalarRange(parseFloat(min.toFixed(3)), parseFloat(max.toFixed(3))) //设置范围
-  // scalarBarActor.setAxisLabel(formInline.value.region)//英文
-  scalarBarActor.setAxisLabel(formInline.value.name)//用中文
 
-  mapper.clearColorArrays() //强制重建颜色
-   actor.getProperty().setOpacity(count.value) //设置错误的透明度使得页面重新加载  不设置不刷新页面
+  getMinMax(scalarArray)
+  mapper.setScalarRange(parseFloat(min.toFixed(3)), parseFloat(max.toFixed(3)))
+  scalarBarActor.setAxisLabel(formInline.value.name)
 
+  mapper.clearColorArrays()
+  actor.getProperty().setOpacity(count.value)
 
   vtkObj.renderWindow.getRenderer().addActor(scalarBarActor)
   vtkObj.renderWindow.getRenderer().addActor(actor)
 
-  vtkObj.renderWindow.getRenderer().resetCamera();
-  vtkObj.renderWindow.getRenderWindow().render();
-  vtkObj.renderWindow.resize();
-  initFlag=true;
+  // 仅第一次调用 resetCamera
+  if (!cameraInitialized) {
+    vtkObj.renderWindow.getRenderer().resetCamera()
+    cameraInitialized = true
+  }
+
+  vtkObj.renderWindow.getRenderWindow().render()
+  vtkObj.renderWindow.resize()
+  initFlag = true
 }
+
+
+
 function getMinMax(scalars) {
   // console.log("getMinMax:",scalars);
   min = scalars[0]