huangxingxing 9 mēneši atpakaļ
vecāks
revīzija
525d2a679e
2 mainītis faili ar 33 papildinājumiem un 6 dzēšanām
  1. 32 6
      src/control/vtkModel.js
  2. 1 0
      src/view/components/SetPipe.vue

+ 32 - 6
src/control/vtkModel.js

@@ -148,15 +148,41 @@ export class VtkModel {
 
 
     //管道位置数据
-    // this.actorpipsite = vtkActor.newInstance();
-    // this.actorpipsite.getProperty().setRepresentation(Representation.POINTS); //点   
-    // this.actorpipsite.getProperty().setColor(WHITE);
-    // this.actorpipsite.getProperty().setPointSize(2);
-    // this.actorpipsite.setMapper(this.mapper);
-    // vtkmodel.selectObj
+    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);
 
+  }
 
+  //显示所选择巷道位置
+  addpipsite(pipe,site){
+    let point1 = this.pointByPipeNodeId(pipe.snId);
+    let point2 = this.pointByPipeNodeId(pipe.enId);
+    console.log(point1[0],point2[0],site,(point1[0]+point2[0])*site);
+
+    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);
+    this.renderWindow.render();
+  }
+  
+  //移除所选择的巷道位置
+  clearpipsite(){
+    this.renderer.removeActor(this.actorpipsite);
   }
+
   waysInit(ways) {
     this.renderWindowWith.resize();
     this.ways = ways;

+ 1 - 0
src/view/components/SetPipe.vue

@@ -112,6 +112,7 @@ function jgSelect(){
 }else{
    console.log(selectObj.value);
    msg.value=selectObj.value;
+   vtkmodel.addpipsite(selectObj.value,0.2);
 }
   }, 200);
 }