在VTK中表示线条的数据集是vtkPolyLine. 将其添加到vtkPolyMapper,然后在添加到vtkActor中进行渲染就可以看到一个线条。但如果要表示多个线条,则一个vtkPolyLine是无法满足需求的。此时有两个思路来处理:
1)创建多个vtkPolyLine来表示线条。渲染过程,可以选择用多个vtkActor来分别渲染每一个vtkPolyLine。
2)使用vtkCellArray集合来保存所有的vtkPolyLine, 渲染过程,使用一个vtkActor对一个vtkCellArray集合渲染。
方法二,由于只创建了一个actor,相对较为简洁,也方便管理。这里做一个详细介绍:代码如下:
//初始化数据集
vtkSmartPointer<vtkPoints> points = //点集
vtkSmartPointer<vtkPoints>::New();
vtkSmartPointer<vtkCellArray> polyLines = //单元集
vtkSmartPointer<vtkCellArray>::New();
vtkSmartPointer<vtkIntArray> branchIdData =
vtkSmartPointer<vtkIntArray>::New();
for(auto branch : branches)