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