VTK/Tutorials/TriangleGeometryVertices: Difference between revisions
From KitwarePublic
Jump to navigationJump to search
Daviddoria (talk | contribs) mNo edit summary |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 44: | Line 44: | ||
vtkSmartPointer<vtkXMLPolyDataWriter> writer = vtkSmartPointer<vtkXMLPolyDataWriter>::New(); | vtkSmartPointer<vtkXMLPolyDataWriter> writer = vtkSmartPointer<vtkXMLPolyDataWriter>::New(); | ||
writer->SetFileName ( "TriangleVerts.vtp" ); | writer->SetFileName ( "TriangleVerts.vtp" ); | ||
#if VTK_MAJOR_VERSION <= 5 | |||
writer->SetInput ( polydata ); | writer->SetInput ( polydata ); | ||
#else | |||
writer->SetInputData ( polydata ); | |||
#endif | |||
writer->Write(); | writer->Write(); | ||
Line 56: | Line 60: | ||
cmake_minimum_required(VERSION 2.6) | cmake_minimum_required(VERSION 2.6) | ||
project(TriangleVertices) | |||
find_package(VTK REQUIRED) | |||
include(${VTK_USE_FILE}) | |||
add_executable(TriangleVertices TriangleVertices.cxx) | |||
if(VTK_LIBRARIES) | |||
target_link_libraries(TriangleVertices ${VTK_LIBRARIES}) | |||
else() | |||
target_link_libraries(TriangleVertices vtkHybrid) | |||
endif() | |||
</source> | </source> |
Latest revision as of 19:18, 25 April 2014
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
<source lang="cpp">
- 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" );
- if VTK_MAJOR_VERSION <= 5
writer->SetInput ( polydata );
- else
writer->SetInputData ( polydata );
- endif
writer->Write();
return EXIT_SUCCESS;
}
</source>
CMakeLists.txt
<source lang="cmake"> cmake_minimum_required(VERSION 2.6)
project(TriangleVertices)
find_package(VTK REQUIRED) include(${VTK_USE_FILE})
add_executable(TriangleVertices TriangleVertices.cxx) if(VTK_LIBRARIES)
target_link_libraries(TriangleVertices ${VTK_LIBRARIES})
else()
target_link_libraries(TriangleVertices vtkHybrid)
endif() </source>