|
@@ -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();
|
|
|
+
|
|
|
|
|
|
|
|
|
}
|