VTK/Tutorials/TriangleGeometryVertices
From KitwarePublic
This example writes the coordinates of the corners of a triangle to a vtp file. There is now geometry (points) as well as topology (vertices). If you open this file in Paraview, you will now see the points immediately.
TriangleVertices.cxx
#include <vtkCellArray.h> #include <vtkSmartPointer.h> #include <vtkPoints.h> #include <vtkXMLPolyDataWriter.h> #include <vtkPolyData.h> int main(int argc, char *argv[]) { //Setup point coordinates double X[3] = {1.0, 0.0, 0.0}; double Y[3] = {0.0, 0.0, 1.0}; double Z[3] = {0.0, 0.0, 0.0}; //Create points and add a vertex at each point. Really what you are doing is adding //cells to the polydata, and the cells only contain 1 element, so they are, by definition, //0-D topology (vertices). vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New(); vtkSmartPointer<vtkCellArray> vertices = vtkSmartPointer<vtkCellArray>::New(); for ( unsigned int i = 0; i < 3; ++i ) { //Declare a variable to store the index of the point that gets added. This behaves just like an unsigned int. vtkIdType pid[1]; //Add a point to the polydata and save its index, which we will use to create the vertex on that point. pid[0] = points->InsertNextPoint ( X[i], Y[i], Z[i] ); //create a vertex cell on the point that was just added. vertices->InsertNextCell ( 1,pid ); } //create a polydata object vtkSmartPointer<vtkPolyData> polydata = vtkSmartPointer<vtkPolyData>::New(); //set the points and vertices we created as the geometry and topology of the polydata polydata->SetPoints ( points ); polydata->SetVerts ( vertices ); //write the polydata to a file vtkSmartPointer<vtkXMLPolyDataWriter> writer = vtkSmartPointer<vtkXMLPolyDataWriter>::New(); writer->SetFileName ( "TriangleVerts.vtp" ); writer->SetInput ( polydata ); writer->Write(); return EXIT_SUCCESS; }
CMakeLists.txt
cmake_minimum_required(VERSION 2.6) PROJECT(TriangleVertices) FIND_PACKAGE(VTK REQUIRED) INCLUDE(${VTK_USE_FILE}) ADD_EXECUTABLE(TriangleVertices TriangleVertices.cxx) TARGET_LINK_LIBRARIES(TriangleVertices vtkHybrid)