vtkオブジェクトvtkVectorTextを使用してテキストをレンダリングしようとしています。単一の3Dロケーションでうまく動作します。私が必要とするのは、3dテキストをいくつかの3d(vtkPoint)ポイントの上に置くことです。私はvtkTextActor3dでそれをやろうとしましたが、各テキストオブジェクトに別々のアクタが必要で、10kのアクタで終わってしまいました。VTK - 単一のアクタで複数の3Dテキストオブジェクトをレンダリングする方法
またappendFilterを適用してvtkVectorText配列を作成し、appendFilterのオブジェクトから構造化されていないグリッドを取得し、それをpolydataに変換して、非構造化グリッドを目的のポイント位置にレンダリングしました。これを行う最良の方法が何であるかわからないので、何も表示されません。
誰かがこれを手伝ってくれますか?ここで
は最後の部分から私のコードです:
vtkSmartPointer<vtkAppendFilter> appendFilter = vtkSmartPointer<vtkAppendFilter>::New();
//for each point
for (int i = 0; i < N;i++) {
vtkSmartPointer<vtkVectorText> vecText = vtkSmartPointer<vtkVectorText>::New();
vecText->SetText("My text, needs to appear multiple times");
vecText->Update();
appendFilter->AddInputData(vecText->GetOutput());
appendFilter->Update();
}
vtkSmartPointer<vtkUnstructuredGrid> unstructuredGrid = appendFilter->GetOutput();
unstructuredGrid->Allocate(N);
unstructuredGrid->SetPoints(points);
vtkSmartPointer<vtkGeometryFilter> geometryFilter = vtkSmartPointer<vtkGeometryFilter>::New();
geometryFilter->SetInputData(unstructuredGrid);
geometryFilter->Update();
vtkSmartPointer<vtkPolyDataMapper> textMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
textMapper->SetInputConnection(geometryFilter->GetOutputPort());
vtkSmartPointer<vtkActor> textActor = vtkSmartPointer<vtkActor>::New();
textActor->SetMapper(textMapper);
textActor->GetProperty()->SetColor(0, 1, 0);
renderer->AddActor(textActor);