У меня есть неструктурированная сетка в VTK, которую я хочу визуализировать вместе с ее краевыми линиями. Я могу сделать это, используя vtkExtractEdges
, однако, линии краев всегда окрашены в синий цвет, независимо от того, что я делаю.
У меня есть рабочий код, который прекрасно рисует контуры сетки в желаемом цвете, и япопытался использовать по существу один и тот же код для ребер:
vtkSmartPointer<vtkOutlineFilter> outline = vtkSmartPointer<vtkOutlineFilter>::New();
vtkSmartPointer<vtkPolyDataMapper> outline_mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
vtkSmartPointer<vtkActor> outline_actor = vtkSmartPointer<vtkActor>::New();
outline->SetInput(grid);
outline_mapper->SetInputConnection(outline->GetOutputPort());
outline_actor->SetMapper(outline_mapper);
outline_actor->GetProperty()->SetColor(1.,1.,1.); // << works just fine here
renderer->AddActor(outline_actor);
vtkSmartPointer<vtkExtractEdges> edges = vtkSmartPointer<vtkExtractEdges>::New();
vtkSmartPointer<vtkPolyDataMapper> edges_mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
vtkSmartPointer<vtkActor> edges_actor = vtkSmartPointer<vtkActor>::New();
edges_mapper->SetInputConnection(edges->GetOutputPort());
edges_actor->SetMapper(edges_mapper);
edges_actor->GetProperty()->SetColor(1.,1.,1.); // << still stays blue here
renderer->AddActor(edges_actor);
Это озадачивает, тем более что класс, который я называю SetColor
on, равен vtkPolyDataMapper
, и после этого код идентичен для обоих случаев.
Кто-нибудь еще сталкивался с этой проблемой и знает решение?
До сих пор я нашел это: https://public.kitware.com/pipermail/vtkusers/1999-September/087677.html,, в котором кто-то предложил решить ее путем рисования труб, но вместо этого я надеюсь на чистое решение.
Версия VTK, с которой я работаю, - 5.6, и я не могу использовать другую для совместимости.