huangxingxing 8 месяцев назад
Родитель
Сommit
1403a037a6
2 измененных файлов с 57 добавлено и 19 удалено
  1. BIN
      public/static/3d/fire.ply
  2. 57 19
      src/control/vtkModel.js

BIN
public/static/3d/fire.ply


+ 57 - 19
src/control/vtkModel.js

@@ -159,18 +159,11 @@ export class VtkModel {
     this.sensorobj={};
 
 
+    this.actorpipsites=[]; 
+    
+
+
 
-    //管道位置数据
-    const sphereSource = vtkSphereSource.newInstance({
-      center: [0, 0, 0],
-      radius: 4.0,
-    });
-    const pipsiteMapper = vtkMapper.newInstance();
-    this.actorpipsite = vtkActor.newInstance();
-    pipsiteMapper.setInputConnection(sphereSource.getOutputPort());
-    this.actorpipsite.setMapper(pipsiteMapper);
-    // this.actorpipsite.setPosition(parseFloat(node.x), parseFloat(node.y), parseFloat(node.z));
-    this.actorpipsite.getProperty().setColor(WHITE);
 
     this.jcdActors = []; //检测点数据
     this.jcreader = vtkPLYReader.newInstance();
@@ -406,11 +399,11 @@ delSensor(){
   mapper.setInputConnection(this.soureReader.getOutputPort());
   const actor = vtkActor.newInstance();
   actor.setPosition(x,y,z);
-  actor.getProperty().setColor(SOURECOLOR);
+  actor.getProperty().setColor(REA);
   actor.setMapper(mapper);
     // 旋转actor
-  actor.rotateY(45);// 绕y轴旋转
-  actor.setScale(20,20,20);//放大
+  actor.rotateZ(180);// 绕y轴旋转
+  actor.setScale(0.3,0.3,0.3);//放大
   this.soureActors.push(actor);
   // this.renderer.addActor(actor);
  }
@@ -473,27 +466,72 @@ removejc(){
 
   //显示所选择巷道位置
   addpipsite(pipe,site){
+    if(this.actorpipsites.length==0){
+      const  actorpipsite= vtkActor.newInstance();
+      //管道位置数据
+      const sphereSource = vtkSphereSource.newInstance({
+        center: [0, 0, 0],
+        radius: 4.0,
+      });
+      const pipsiteMapper = vtkMapper.newInstance();
+      pipsiteMapper.setInputConnection(sphereSource.getOutputPort());
+      actorpipsite.setMapper(pipsiteMapper);
+      actorpipsite.getProperty().setColor(WHITE);
+      this.actorpipsites.push(actorpipsite);
+    }
+    const actorpipsite =this.actorpipsites[0];  
     let point1 = this.pointByPipeNodeId(pipe.snId);
     let point2 = this.pointByPipeNodeId(pipe.enId);
-
     let py = site/(1-site);
     let pipsite_point=[
       (point1[0]+py*point2[0])/(1+py),
       (point1[1]+py*point2[1])/(1+py),
       (point1[2]+py*point2[2])/(1+py),
       ] 
-    this.actorpipsite.setPosition(pipsite_point);
-    this.renderer.addActor(this.actorpipsite);
+    actorpipsite.setPosition(pipsite_point);
+    this.renderer.addActor(actorpipsite);
     this.renderWindow.render();
   }
   
+  //显示所选择巷道位置
+  addpipsite2(pipe,site){
+    if(this.actorpipsites.length==0){
+      addpipsite(pipe,site);
+    }
+    if(this.actorpipsites.length==1){
+      const  actorpipsite= vtkActor.newInstance();
+      //管道位置数据
+      const sphereSource = vtkSphereSource.newInstance({
+        center: [0, 0, 0],
+        radius: 4.0,
+      });
+      const pipsiteMapper = vtkMapper.newInstance();
+      pipsiteMapper.setInputConnection(sphereSource.getOutputPort());
+      actorpipsite.setMapper(pipsiteMapper);
+      actorpipsite.getProperty().setColor(WHITE);
+      this.actorpipsites.push(actorpipsite);
+    }
+    const actorpipsite =this.actorpipsites[1];  
+    let point1 = this.pointByPipeNodeId(pipe.snId);
+    let point2 = this.pointByPipeNodeId(pipe.enId);
+    let py = site/(1-site);
+    let pipsite_point=[
+      (point1[0]+py*point2[0])/(1+py),
+      (point1[1]+py*point2[1])/(1+py),
+      (point1[2]+py*point2[2])/(1+py),
+      ] 
+    actorpipsite.setPosition(pipsite_point);
+    this.renderer.addActor(actorpipsite);
+    this.renderWindow.render();
+  }
   //移除所选择的巷道位置
   clearpipsite(){
-    this.renderer.removeActor(this.actorpipsite);
+    this.actorpipsites.forEach((actor)=>{
+      this.renderer.removeActor(actor);
+    });
   }
 // 安全路径显示
 safetypath(rows){
-
   this.renderWindowWith.resize();
    this.wayspath=rows;
     let nodes1 = [];