huangxingxing 1 жил өмнө
parent
commit
3b2d8d9817

+ 54 - 4
src/control/vtkModel.js

@@ -36,6 +36,7 @@ export class VtkModel {
     this.isSelectPipe = false;
     //管道节点选择对象
     this.selectObj = null;
+
     //结果选择的点数据
     this.selectJgPointId=0;
     this.validNodes = [];//节点数据
@@ -71,7 +72,9 @@ export class VtkModel {
     this.apiSpecificRenderWindow = this.interactor.getView();
     this.hardwareSelector = this.apiSpecificRenderWindow.getSelector();
     this.hardwareSelector.setCaptureZValues(true);
-    this.hardwareSelector.setFieldAssociation(FieldAssociations.FIELD_ASSOCIATION_POINTS);
+    // this.hardwareSelector.setFieldAssociation(FieldAssociations.FIELD_ASSOCIATION_POINTS);
+    this.hardwareSelector.setFieldAssociation(FieldAssociations.FIELD_ASSOCIATION_CELLS);
+
     document.addEventListener("mousemove", throttleMouseHandler);
 
     //结果数据
@@ -264,6 +267,43 @@ export class VtkModel {
     this.modelShow();
     this.isJg = false; //不显示结果
   }
+  //选中指定点
+  selectByNodeId(nid){
+    console.log("selectByNodeId",nid);
+    if(this.isSelectNode){
+      if (this.lastActor != null) {
+        this.lastActor.getProperty().setColor(WHITE);
+      }
+      this.nodeActors.forEach(nodeActor=>{
+        if(nid==nodeActor.node.id){
+          nodeActor.actor.getProperty().setColor(GREEN);
+         
+          this.renderWindow.render();
+          this.lastActor=nodeActor.actor;
+          this.selectObj=nodeActor.node;
+          return;
+        }
+      });
+    }
+  }
+  //选中指定管道
+  selectByPipeId(pid){
+    console.log("selectByPipeId",pid);
+    if(this.isSelectPipe){
+      if (this.lastActor != null) {
+        this.lastActor.getProperty().setColor(WHITE);
+      }
+      this.pipeActors.forEach(pipeActor=>{
+        if(pid==pipeActor.pipe.id){
+          pipeActor.actor.getProperty().setColor(GREEN);
+          this.renderWindow.render();
+          this.lastActor=pipeActor.actor;
+          this.selectObj=pipeActor.node;
+          return;
+        }
+      });
+    }
+  }
 }
 
 function pickOnMouseEvent(event) {
@@ -335,10 +375,15 @@ function processSelections(selections) {
   });
 
   if (vtkmodel.isJg) {//结果数据选择cell
-    //选择Cell
+    if( vtkmodel.hardwareSelector.getFieldAssociation() ===
+       FieldAssociations.FIELD_ASSOCIATION_POINTS){//选择点
+
+    }else{
+       //选择Cell
     const input = prop.getMapper().getInputData();
     if (!input.getCells()) {
       input.buildCells();
+      // return;
     }
     const cellPoints = input.getCellPoints(attributeID);
     if (cellPoints) {
@@ -347,15 +392,20 @@ function processSelections(selections) {
       const points = Array.from(pointIds).map((pointId) =>
         input.getPoints().getPoint(pointId)
       );
-      // const scalarDataArray=input.getPointData().getScalars().getData();
+      const scalarDataArray=input.getPointData().getScalars().getData();
+      console.log(scalarDataArray[pointIds[0]]);//节点标量数据
       // pointIds.forEach(pointId=>{
       //   console.log(input.getPointData().getScalars().getName());
       //   console.log(scalarDataArray[pointId]);//节点标量数据
       // });
       vtkmodel.selectJgPointId =pointIds[0];
     }
+    }
+   
+  }else{
+    vtkmodel.renderWindow.render();
   }
-  vtkmodel.renderWindow.render();
+ 
 
  
 }

+ 14 - 10
src/view/components/InfoAnimation.vue

@@ -168,6 +168,7 @@ let timenum = ref(2);
 let aid = ref();
 let timing = ref(null);
 let timing2 = ref(null);
+313let jgSelectPointId=ref(0);
 const percentage = ref(20);
 const customColor = ref("#409eff");
 const tableRowClassName = ({ row, rowIndex }) => {
@@ -428,16 +429,19 @@ async function getMonitor() {
 //选择结果定时器
 function jgSelect(){
     timing2.value = setInterval(() => {//定时器
-      //  console.log("pointid",vtkmodel.selectJgPointId);//选择的点数据
-       //获取点对应的Scalar
-      selobj.value=[];
-      for (const key of fcon.scalar.keys()) {
-         selobj.value.push({
-           name:key,
-           value: fcon.scalar.get(key)[vtkmodel.selectJgPointId]
-         });
-       }
-      // console.log(vtkmodel.selectJgPointId,selobj.value)
+      if(jgSelectPointId.value!=vtkmodel.selectJgPointId){
+    //  console.log("pointid",vtkmodel.selectJgPointId);//选择的点数据
+          //获取点对应的Scalar
+          jgSelectPointId.value=vtkmodel.selectJgPointId;
+          selobj.value=[];
+          for (const key of fcon.scalar.keys()) {
+            selobj.value.push({
+              name:key,
+              value: fcon.scalar.get(key)[vtkmodel.selectJgPointId]
+            });
+          }
+          console.log(vtkmodel.selectJgPointId,selobj.value)
+      }
   }, 1000);
 }
 //获取任务信息

+ 3 - 0
src/view/components/InfoVtkmodel.vue

@@ -87,7 +87,10 @@ function lineShow() {
   });
   vtkmodel.modelInit(validNodes.value, pipes.value);
   // vtkmodel.selectNodes();
+  // vtkmodel.selectByNodeId(178);
   // vtkmodel.selectPipes();
+  // vtkmodel.selectByPipeId(253);
+
 }
 </script>
 <style scoped>