VTK/Examples/Cxx/PolyData/GeometryFilter
From KitwarePublic
This example demonstrates how to convert an unstructured grid to a polydata. Currently nothing is done with the resulting polydata. If someone has a good data set that demonstrates the conversion, please let us know.
GeometryFilter.cxx
#include <vtkVersion.h> #include <vtkSmartPointer.h> #include <vtkPolyData.h> #include <vtkUnstructuredGrid.h> #include <vtkCellArray.h> #include <vtkGeometryFilter.h> #include <vtkPointSource.h> int main(int, char *[]) { vtkSmartPointer<vtkUnstructuredGrid> unstructuredGrid = vtkSmartPointer<vtkUnstructuredGrid>::New(); vtkSmartPointer<vtkGeometryFilter> geometryFilter = vtkSmartPointer<vtkGeometryFilter>::New(); #if VTK_MAJOR_VERSION <= 5 geometryFilter->SetInput(unstructuredGrid); #else geometryFilter->SetInputData(unstructuredGrid); #endif geometryFilter->Update(); vtkPolyData* polydata = geometryFilter->GetOutput(); std::cout << "Output has " << polydata->GetNumberOfPoints() << " points." << std::endl; return EXIT_SUCCESS; }
CMakeLists.txt
cmake_minimum_required(VERSION 2.8) PROJECT(GeometryFilter) find_package(VTK REQUIRED) include(${VTK_USE_FILE}) if (APPLE) add_executable(GeometryFilter MACOSX_BUNDLE GeometryFilter.cxx) else() add_executable(GeometryFilter GeometryFilter.cxx) endif() if(VTK_LIBRARIES) target_link_libraries(GeometryFilter ${VTK_LIBRARIES}) else() target_link_libraries(GeometryFilter vtkHybrid ) endif()
Perform a Delaunay triangulation on a sphere. Show it in wireframe so one can see all of the internal edges. Then run the filter and show that the result is only the outer surface.