Как установить границы для 3d-карты в vtk c ++?

У меня много линий и плоскостей, которые находятся, например, вокруг (0,5, 0,5, 0,5) точки. Также у меня есть область, где они имеют значение, это куб. И линии, самолеты имеют возможность пересекать эту область и находиться за ее пределами. Могу ли я скрыть часть всех элементов и части элементов, которые не входят в мою область? Есть ли у Vtk возможность сделать это очень просто? Или мне нужно сделать это самому? Я хочу написать, например, SetBounds (bounds), и после этого все, что не включено в куб, исчезнет.

0

Решение

Попробуйте использовать vtkClipDataSet с функцией клипа, установленной на vtkBox. Наконец, визуализируйте выходные данные из фильтра vtkClipDataSet.

vtkNew<vtkBox> box;
box->SetBounds(.....); // set the bounds of interest.

vtkNew<vtkClipDataSet> clipper;
clipper->SetInputConnection(....); // set to your data producer
clipper->SetClipFunction(box.GetPointer());

// since clipper will produce an unstructured grid, apply the following to
// extract a  polydata from it.
vtkNew<vtkGeometryFilter> geomFilter;
geomFilter->SetInputConnection(clipper->GetOutputPort());

// now, this can be connected to the mapper.
vtkNew<vtkPolyDataMapper> mapper;
mapper->SetInputConnection(geomFilter->GetOutputPort());
0

Другие решения


По вопросам рекламы [email protected]