我编写了一个代码,将多个3d点绘制为球体。我想在3D中的每个球体附近添加一些文字,以提及有关每个点的一些信息。但我有vtkPoints来存储没有GetOutputPort的积分位置,我需要在labelMApper中(并且还使用glyph3d制作球体)
vtkSmartPointer<vtkLabeledDataMapper> labelMapper = vtkSmartPointer<vtkLabeledDataMapper>::New();
labelMapper->SetInputConnection( vtkpoints->GetOutputPort() ); // No GetOutputPort()
vtkSmartPointer<vtkActor2D> labelActor = vtkSmartPointer<vtkActor2D>::New();
labelActor->SetMapper(labelMapper);
renderer->AddActor(labelActor);
答案 0 :(得分:2)
您应该从点构造一个vtkPolyData,并将其设置为标签映射器的输入。
这样的事情:
vtkNew<vtkPolyData> labelPolyData;
labelPolyData->SetPoints(labelPoints);
labelMapper->SetInput(labelPolyData); // Note: If you're using VTK from master (6.x), this is SetInputData(...)
renderer->AddActor2D(labelActor);