对已有的浮点型数据,用VTK进行重构并建立拓扑结构。
基本流程:
m_vtkPointsSel = vtkSmartPointer<vtkPoints>::New();
m_vtkCellArraySel = vtkSmartPointer<vtkCellArray>::New();
m_vtkPolyLineSel = vtkSmartPointer<vtkPolyLine>::New();
m_vtkPolyDataSel = vtkSmartPointer<vtkPolyData>::New();
m_vtkMapperSel = vtkSmartPointer<vtkPolyDataMapper>::New();
m_vtkActorSel = vtkSmartPointer<vtkActor>::New();
1.添加点points
double dx[3] = { 0 };
dx[2] = dz0;
dx[1] = dy0;
dx[0] = dx0;
m_vtkPointsSel->InsertNextPoint(dx);
2.设置形状(直线/三角形/其他)
m_vtkPolyLineSel->GetPointIds()->SetNumberOfIds(5);
for (int i = 0; i < 4; i++)
m_vtkPolyLineSel->GetPointIds()->SetId(i, i);
m_vtkPolyLineSel->GetPointIds()->SetId(4, 0);
3.添加单元cell
m_vtkCellArraySel->InsertNextCell(m_vtkPolyLineSel);//把形状放入cell
m_vtkPointsSel->Modified(); //相当于update已做的修改
m_vtkCellArraySel->Modified();
4.把点和单元添加到polyData
m_vtkPolyDataSel->SetPoints(m_vtkPointsSel);
m_vtkPolyDataSel->SetLines(m_vtkCellArraySel);
5.把polyData添加到Mapper并刷新render
m_vtkMapperSel->SetInputData(m_vtkPolyDataSel);
this->RenderWindow->Render();